示例#1
0
        public void RemoveClosures(Node_FunctionDecl root)
        {
            AC_FunctionDeclTree acFunctionDeclTree = new AC_FunctionDeclTree();

            var fillFunctionDeclarationsInfoVisiter = new FillFunctionDeclarationsInfoVisitor(acFunctionDeclTree);

            fillFunctionDeclarationsInfoVisiter.Visit(root);

            var fillFunctionCallsInfoVisiter = new FillFunctionCallsInfoVisitor(acFunctionDeclTree);

            fillFunctionCallsInfoVisiter.Visit(root);

            RemoveClosures(acFunctionDeclTree.FunctionsTable[root]);
            UpFunctions(root, acFunctionDeclTree.FunctionsTable.Values);
        }
示例#2
0
 public FillFunctionDeclarationsInfoVisitor(AC_FunctionDeclTree functionDeclTree)
 {
     this.AC_FunctionDeclTree = functionDeclTree;
 }