Esempio n. 1
0
        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.");
        }