未验证 提交 596f6393 编写于 作者: P Phodal HUANG

feat: add method call

上级 a9c7d652
package adapter
import (
. "../language/java"
. "./models"
"fmt"
)
var imports []string
var currentPkg = ""
var currentClz = ""
var methodCalls []JMethodCall
type JavaCallListener struct {
BaseJavaParserListener
}
func (s *JavaCallListener) EnterPackageDeclaration(ctx *PackageDeclarationContext) {
currentPkg = ctx.QualifiedName().GetText()
}
func (s *JavaCallListener) EnterImportDeclaration(ctx *ImportDeclarationContext) {
importText := ctx.QualifiedName().GetText()
imports = append(imports, importText)
}
func (s *JavaCallListener) EnterClassDeclaration(ctx *ClassDeclarationContext) {
currentClz = ctx.IDENTIFIER().GetText()
}
func (s *JavaCallListener) EnterInterfaceDeclaration(ctx *InterfaceDeclarationContext) {
currentClz = ctx.IDENTIFIER().GetText()
}
func (s *JavaCallListener) EnterInterfaceMethodDeclaration(ctx *InterfaceMethodDeclarationContext) {
methodName := ctx.IDENTIFIER().GetText()
currentMethodCall := &JMethodCall{currentPkg, currentClz, methodName}
methodCalls = append(methodCalls, *currentMethodCall)
}
func (s *JavaCallListener) EnterMethodDeclaration(ctx *MethodDeclarationContext) {
methodName := ctx.IDENTIFIER().GetText()
currentMethodCall := &JMethodCall{currentPkg, currentClz, methodName}
methodCalls = append(methodCalls, *currentMethodCall)
fmt.Println(methodCalls)
}
package models
type JMethodCall struct {
Pkg string
Dlz string
MethodName string
//methodCalls map[string]string
//tableOps map[string]string
}
package visitor;
import (
. "../language/java"
. "../../language/java"
"fmt"
)
......
......@@ -3,12 +3,12 @@ package main
import (
//"./cmd"
"fmt"
"github.com/antlr/antlr4/runtime/Go/antlr"
"os"
"path/filepath"
"strings"
. "./adapter"
. "./language/java"
)
......@@ -29,7 +29,9 @@ func analysisPath(codeDir string) {
parser := processFile(file)
context := parser.CompilationUnit()
fmt.Println(context)
listener := new(JavaCallListener)
antlr.NewParseTreeWalker().Walk(listener, context)
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册