@Override
	public int compareTo(AssemblyParseMachine that) {
		int result;

		result = this.pos - that.pos;
		if (result != 0) {
			return result;
		}

		result = AsmUtil.compareInOrder(this.stack, that.stack);
		if (result != 0) {
			return result;
		}

		result = AsmUtil.compareInOrder(this.output, that.output);
		if (result != 0) {
			return result;
		}
		if (this.accepted & !that.accepted) {
			return 1;
		}
		if (!this.accepted & that.accepted) {
			return -1;
		}
		result = (this.error - that.error);
		if (result != 0) {
			return result;
		}
		return 0;
	}
Construct a new parse state

@param parser the parser driving this machine
@param input the full input line
@param pos the position in the line identifying the next characters to parse
@param lastTok
@param symbols
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/parse/AssemblyParseMachine.java