go_ident_app.go 818 字节
Newer Older
1 2 3
package goapp

import (
P
Phodal Huang 已提交
4
	"fmt"
5 6 7 8 9
	"github.com/phodal/coca/pkg/domain/core_domain"
	"github.com/phodal/coca/pkg/infrastructure/ast/cocago"
)

type GoIdentApp struct {
P
Phodal Huang 已提交
10
	Extensions interface{}
11 12 13 14
}

func (g *GoIdentApp) Analysis(code string, fileName string) core_domain.CodeFile {
	parser := cocago.NewCocagoParser()
15
	var codeMembers []core_domain.CodeMember
P
Phodal Huang 已提交
16
	if g.Extensions != nil {
17
		codeMembers = g.Extensions.([]core_domain.CodeMember)
P
Phodal Huang 已提交
18
	}
19
	return 	*parser.ProcessString(code, fileName, codeMembers)
P
Phodal Huang 已提交
20 21
}

P
Phodal Huang 已提交
22 23 24 25 26
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
P
Phodal Huang 已提交
27
}
28

P
Phodal Huang 已提交
29 30
func (g *GoIdentApp) SetExtensions(extension interface{})  {
	g.Extensions = extension
31
}