public override CILInstruction BuildNode(ParseTreeNode node) { var instructionNoneNode = node.GetChildInstructionNoneNode(); if (instructionNoneNode != null) { return(_instructionNoneBuilder.BuildNode(node)); } var instructionMethodNode = node.GetChildInstructionMethodNode(); if (instructionMethodNode != null) { return(_instructionMethodBuilder.BuildNode(node)); } var instructionStringNode = node.GetChildInstructionStringNode(); if (instructionStringNode != null) { return(_instructionStringBuilder.BuildNode(node)); } var instructionIntNode = node.GetChildInstructionIntNode(); if (instructionIntNode != null) { return(_instructionIntBuilder.BuildNode(node)); } var instructionBranchNode = node.GetChildInstructionBranchNode(); if (instructionBranchNode != null) { return(_instructionBranchBuilder.BuildNode(node)); } throw new ArgumentException("Cannot recognize instruction."); }