|
@@ -4,6 +4,7 @@ import (
|
|
"cp/constant"
|
|
"cp/constant"
|
|
"cp/constant/enter"
|
|
"cp/constant/enter"
|
|
"cp/constant/operation"
|
|
"cp/constant/operation"
|
|
|
|
+ "cp/module"
|
|
"cp/node"
|
|
"cp/node"
|
|
"cp/object"
|
|
"cp/object"
|
|
"cp/statement"
|
|
"cp/statement"
|
|
@@ -197,12 +198,13 @@ func buildMod(r *Result) (nodeList []node.Node, objList []object.Object, root no
|
|
return nodeList, objList, root
|
|
return nodeList, objList, root
|
|
}
|
|
}
|
|
|
|
|
|
-func DoAST(r *Result) (ent node.Node, obj []object.Object) {
|
|
|
|
|
|
+func DoAST(r *Result) (mod *module.Module) {
|
|
nodeMap = make(map[string]node.Node)
|
|
nodeMap = make(map[string]node.Node)
|
|
objectMap = make(map[string]object.Object)
|
|
objectMap = make(map[string]object.Object)
|
|
- _, obj, ent = buildMod(r)
|
|
|
|
|
|
+ mod = new(module.Module)
|
|
|
|
+ mod.Nodes, mod.Objects, mod.Enter = buildMod(r)
|
|
fmt.Println(len(nodeMap), len(objectMap))
|
|
fmt.Println(len(nodeMap), len(objectMap))
|
|
nodeMap = nil
|
|
nodeMap = nil
|
|
objectMap = nil
|
|
objectMap = nil
|
|
- return ent, obj
|
|
|
|
|
|
+ return mod
|
|
}
|
|
}
|