예제 #1
0
        public override void Init(AstContext context, ParseTreeNode treeNode)
        {
            base.Init(context, treeNode);
            var nodes            = treeNode.GetMappedChildNodes();
            var definitionOrStmt = nodes[0].ChildNodes;
            var importCount      = 0;
            var definitionCount  = 0;
            var stmtCount        = 0;

            foreach (var node in definitionOrStmt)
            {
                if (node.Term.Name[0] == '$')//Chapus medio alto para saber si es import
                {
                    ImportList.Add(AddChild("Import: " + importCount, node));
                    importCount++;
                }
                else if (node.Term.Name[0] == '#')//Chapus medio alto para saber si es definition
                {
                    DefinitonList.Add(AddChild("Definition: " + definitionCount, node));
                    definitionCount++;
                }
                else
                {
                    StmtList.Add(AddChild("stmt " + stmtCount, node));
                    stmtCount++;
                }
            }
        }
예제 #2
0
        public override void Init(AstContext context, ParseTreeNode treeNode)
        {
            base.Init(context, treeNode);
            var nodes = treeNode.GetMappedChildNodes();

            IdentifierNode = AddChild("class name: ", nodes[0]);
            var definitionOrStmt = nodes[1].ChildNodes;
            var i = 0;
            var j = 0;

            foreach (var node in definitionOrStmt)
            {
                if (node.Term.Name[0] == '#')//Chapus medio alto para saber si es definition
                {
                    DefinitonList.Add(AddChild("Definition: " + j, node));
                    j++;
                }
                else
                {
                    StmtList.Add(AddChild("stmt " + i, node));
                    i++;
                }
            }
        }