@Nonnull
	public static IntermediateMappings parseEnigma(@Nonnull String mappingsText) throws InvalidMappingException {
		// COMMENT comment #ignored
		// CLASS BaseClass TargetClass
		//     FIELD baseField targetField baseDesc
		//     METHOD baseMethod targetMethod baseMethodDesc
		//         ARG baseArg targetArg #ignored
		//     CLASS 1 InnerClass
		//         FIELD innerField targetField innerDesc
		IntermediateMappings mappings = new IntermediateMappings();
		Deque<Pair<String, String>> currentClass = new ArrayDeque<>();

		int line = 1;
		for (int i = 0, len = mappingsText.length(); i < len; ) { // i incremented inside the loop
			// count \t
			int indent = 0;
			for (; i < len; i++) {
				char c = mappingsText.charAt(i);
				if (c == '\t') {
					indent++;
					continue;
				}
				break;
			}

			// parse line
			i = handleLine(line, indent, i, mappingsText, currentClass, mappings);

			// go to next line
			if (i < len) {
				char c = mappingsText.charAt(i);
				assert c == '\n' || c == '\r' : "Expected newline, got <" + c + "> (" + ((int) c) + ") @line " + line + " @char " + i;
				line++;
				if (c == '\r') {
					int ip1 = i + 1;
					if (ip1 < len && mappingsText.charAt(ip1) == '\n') {
						i++;
					}
				}
				i++;
			}
		}
		return mappings;
	}
@param mappingsText
		Text of the mappings to parse.

@return Intermediate mappings from parsed text.

@throws InvalidMappingException
		When reading the mappings encounters any failure.
recaf-core/src/main/java/software/coley/recaf/services/mapping/format/EnigmaMappings.java