refactor: refactor members

上级 24df0a84
package goapp
import (
"fmt"
"github.com/phodal/coca/pkg/domain/core_domain"
"github.com/phodal/coca/pkg/infrastructure/ast/cocago"
)
......@@ -18,10 +19,11 @@ func (g *GoIdentApp) Analysis(code string, fileName string) core_domain.CodeFile
return *parser.ProcessString(code, fileName, codeMembers)
}
func (g *GoIdentApp) IdentAnalysis(s string, file string) []core_domain.CodeMember {
//parser := cocago.NewCocagoParser()
//return parser.ProcessImports(code, fileName)
return nil
func (g *GoIdentApp) IdentAnalysis(code string, fileName string) []core_domain.CodeMember {
parser := cocago.NewCocagoParser()
codeFile := parser.IdentAnalysis(code, fileName)
fmt.Println(codeFile)
return codeFile.Members
}
func (g *GoIdentApp) SetExtensions(extension interface{}) {
......
......@@ -4,7 +4,7 @@ type CodeFile struct {
FullName string
PackageName string
Imports []CodeImport
Members []*CodeMember
Members []CodeMember
DataStructures []CodeDataStruct
Fields []CodeField
}
......@@ -59,29 +59,15 @@ func (n *CocagoParser) ProcessString(code string, fileName string, codeMembers [
return codeFile
}
func (n *CocagoParser) ProcessImports(code string, fileName string) []core_domain.CodeImport {
func (n *CocagoParser) IdentAnalysis(code string, fileName string) *core_domain.CodeFile {
fset := token.NewFileSet()
f, err := parser.ParseFile(fset, fileName, code, 0)
if err != nil {
panic(err)
}
imports := n.VisitorImport(f, fset, fileName)
return imports
}
func (n *CocagoParser) VisitorImport(f *ast.File, fset *token.FileSet, fileName string) []core_domain.CodeImport {
var imports []core_domain.CodeImport
ast.Inspect(f, func(n ast.Node) bool {
switch x := n.(type) {
case *ast.ImportSpec:
imp := BuildImport(x, fileName)
imports = append(imports, *imp)
}
return true
})
return imports
codeFile := n.Visitor(f, fset, fileName)
return codeFile
}
func (n *CocagoParser) Visitor(f *ast.File, fset *token.FileSet, fileName string) *core_domain.CodeFile {
......@@ -226,7 +212,7 @@ func AddInterface(x *ast.InterfaceType, ident string, codeFile *core_domain.Code
Type: "interface",
}
codeFile.Members = append(codeFile.Members, &member)
codeFile.Members = append(codeFile.Members, member)
return dataStruct
}
......@@ -252,7 +238,7 @@ func AddFunctionDecl(x *ast.FuncDecl, currentFile *core_domain.CodeFile) (*core_
}
member.FunctionNodes = append(member.FunctionNodes, *codeFunc)
currentFile.Members = append(currentFile.Members, member)
currentFile.Members = append(currentFile.Members, *member)
}
return codeFunc, recv
......@@ -326,7 +312,7 @@ func GetMemberFromFile(file core_domain.CodeFile, recv string) *core_domain.Code
var identMember *core_domain.CodeMember
for _, member := range file.Members {
if member.DataStructID == recv {
identMember = member
identMember = &member
}
}
return identMember
......@@ -356,5 +342,5 @@ func AddStructType(currentNodeName string, x *ast.StructType, currentFile *core_
if dsMap[currentNodeName] != nil {
dsMap[currentNodeName].InOutProperties = ioproperties
}
currentFile.Members = append(currentFile.Members, &member)
currentFile.Members = append(currentFile.Members, member)
}
......@@ -69,53 +69,6 @@
"StopLinePosition": 0
},
"ReturnType": ""
},
{
"Annotations": null,
"Extension": null,
"FunctionCalls": null,
"InnerFunctions": null,
"InnerStructures": null,
"IsConstructor": false,
"IsReturnNull": false,
"Modifiers": null,
"MultipleReturns": [
{
"Modifiers": null,
"ParamName": "is",
"Parameters": null,
"ReturnTypes": null,
"TypeType": "",
"TypeValue": "antlr.CharStream"
},
{
"Modifiers": null,
"ParamName": "",
"Parameters": null,
"ReturnTypes": null,
"TypeType": "Star",
"TypeValue": "parser.TypeScriptParser"
}
],
"Name": "processStream",
"Override": false,
"Parameters": [
{
"Modifiers": null,
"ParamName": "is",
"Parameters": null,
"ReturnTypes": null,
"TypeType": "",
"TypeValue": "antlr.CharStream"
}
],
"Position": {
"StartLine": 0,
"StartLinePosition": 0,
"StopLine": 0,
"StopLinePosition": 0
},
"ReturnType": ""
}
],
"ID": "",
......
......@@ -115,7 +115,7 @@ func (s *PythonIdentListener) EnterFuncdef(ctx *parser.FuncdefContext) {
currentDataStruct.Functions = append(currentDataStruct.Functions, function)
} else {
member.FunctionNodes = append(member.FunctionNodes, function)
currentCodeFile.Members = append(currentCodeFile.Members, member)
currentCodeFile.Members = append(currentCodeFile.Members, *member)
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册