private static GoBuildInfo parseBuildInfo(int pointerSize, Endian endian, String versionString,
			String moduleString, StructureDataType struct) throws IOException {
		String path = null;
		GoModuleInfo module = null;
		List<GoModuleInfo> deps = new ArrayList<>();
		List<GoBuildSettings> buildSettings = new ArrayList<>();

		String[] lines = moduleString.split("\n");
		for (int lineNum = 0; lineNum < lines.length; lineNum++) {
			String line = lines[lineNum];
			String replaceInfo =
				(lineNum + 1 < lines.length && lines[lineNum + 1].startsWith("=>\t"))
						? lines[++lineNum].substring(3)
						: null;

			if (line.isBlank()) {
				continue;
			}

			/*
			 * lines start with key of "path", "mod", "dep", "=>" (replacement info attached 
			 * to previous line), and "build"
			 */
			String[] lineParts = line.split("\t", 2);
			switch (lineParts[0]) {
				case "path":
					path = lineParts[1];
					break;
				case "mod": {
					GoModuleInfo replace =
						replaceInfo != null ? GoModuleInfo.fromString(replaceInfo, null) : null;
					module = GoModuleInfo.fromString(lineParts[1], replace);
					break;
				}
				case "dep": {
					GoModuleInfo dep = GoModuleInfo.fromString(lineParts[1], null);
					deps.add(dep);
					break;
				}
				case "build":
					GoBuildSettings build = GoBuildSettings.fromString(lineParts[1]);
					buildSettings.add(build);
					break;
			}
		}

		if (versionString.startsWith("go")) {
			versionString = versionString.substring(2); // skip the "go"
		}

		return new GoBuildInfo(pointerSize, endian, versionString, path, module, deps,
			buildSettings, struct);
	}
Returns a Golang "GOARCH" string created by a mapping from the Ghidra program's language (arch).

@param program {@link Program}
@return Golang "GOARCH" string
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/GoBuildInfo.java