<commit_before>package Values {
	import UI.ColorText;
	import UI.HighlightFormat;
	/**
	 * ...
	 * @author Nicholas "PleasingFungus" Feinberg
	 */
	public class InstructionValue extends Value {
		
		public var operation:OpcodeValue;
		public var sourceArg:NumericValue;
		public var targetArg:NumericValue;
		public var destArg:NumericValue;
		public var comment:String;
		public var commentFormat:HighlightFormat;
		public function InstructionValue(Operation:OpcodeValue, SourceArg:int, TargetArg:int, DestArg:int,
										 Comment:String = null, CommentFormat:HighlightFormat = null) {
			operation = Operation;
			sourceArg = new NumericValue(SourceArg);
			targetArg = new NumericValue(TargetArg);
			destArg = new NumericValue(DestArg);
			
			comment = Comment;
			commentFormat = CommentFormat;
		}
		
		override public function toString():String {
			switch (operation) {
				case OpcodeValue.OP_SET:
					return operation.getName()+" R" + destArg + " = " + sourceArg;
				case OpcodeValue.OP_ADD:
					return operation.getName()+" R" + destArg + " = R" + sourceArg + "+R" + targetArg;
				case OpcodeValue.OP_SUB:
					return operation.getName()+" R" + destArg + " = R" + sourceArg + "-R" + targetArg;
				case OpcodeValue.OP_MUL:
					return operation.getName()+" R" + destArg + " = R" + sourceArg + "*R" + targetArg;
				case OpcodeValue.OP_DIV:
					return operation.getName()+" R" + destArg + " = R" + sourceArg + "/R" + targetArg;
				case OpcodeValue.OP_SAV:
					return operation.getName()+" M[R" + targetArg + "] = R" + sourceArg;
				case OpcodeValue.OP_LD:
					return operation.getName()+ " R" + destArg +" = M[R" + targetArg + "]";
				case OpcodeValue.OP_JMP:
					return operation.getName() + " OVER " + destArg;
				case OpcodeValue.OP_BEQ:
					return operation.getName() + " R" + sourceArg +"=R"+targetArg + " OVER " + destArg;
				
				case OpcodeValue.OP_SAVI:<commit_msg>Instruction values never output null; output unknown instead<commit_after>package Values {
	import UI.ColorText;
	import UI.HighlightFormat;
	/**
	 * ...
	 * @author Nicholas "PleasingFungus" Feinberg
	 */
	public class InstructionValue extends Value {
		
		public var operation:OpcodeValue;
		public var sourceArg:Value;
		public var targetArg:Value;
		public var destArg:Value;
		public var comment:String;
		public var commentFormat:HighlightFormat;
		public function InstructionValue(Operation:OpcodeValue, SourceArg:int, TargetArg:int, DestArg:int,
										 Comment:String = null, CommentFormat:HighlightFormat = null) {
			operation = Operation;
			sourceArg = numberToValue(SourceArg);
			targetArg = numberToValue(TargetArg);
			destArg = numberToValue(DestArg);
			
			comment = Comment;
			commentFormat = CommentFormat;
		}
		
		private function numberToValue(n:int):Value {
			if (n == C.INT_NULL)
				return U.V_UNKNOWN;
			return new NumericValue(n);
		}
		
		override public function toString():String {
			switch (operation) {
				case OpcodeValue.OP_SET:
					return operation.getName()+" R" + destArg + " = " + sourceArg;
				case OpcodeValue.OP_ADD:
					return operation.getName()+" R" + destArg + " = R" + sourceArg + "+R" + targetArg;
				case OpcodeValue.OP_SUB:
					return operation.getName()+" R" + destArg + " = R" + sourceArg + "-R" + targetArg;
				case OpcodeValue.OP_MUL:
					return operation.getName()+" R" + destArg + " = R" + sourceArg + "*R" + targetArg;
				case OpcodeValue.OP_DIV:
					return operation.getName()+" R" + destArg + " = R" + sourceArg + "/R" + targetArg;
				case OpcodeValue.OP_SAV:
					return operation.getName()+" M[R" + targetArg + "] = R" + sourceArg;
				case OpcodeValue.OP_LD:
					return operation.getName()+ " R" + destArg +" = M[R" + targetArg + "]";
				case OpcodeValue.OP_JMP:
					return operation.getName() + " OVER " + destArg;
				case OpcodeValue.OP_BEQ:
					return operation.getName() + " R" + sourceArg +"=R"+targetArg + " OVER " + destArg;
				
				case OpcodeValue.OP_SAVI:
{'fraction_non_alphanumeric': 0.12515802781289506, 'fraction_numerical': 0.0, 'mean_word_length': 3.643192488262911, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2622121', 'n_tokens_mistral': 1490, 'n_tokens_neox': 1239, 'n_words': 302}