Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
Coca
提交
36e4b483
C
Coca
项目概览
Phodal
/
Coca
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Coca
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
36e4b483
编写于
10月 30, 2019
作者:
P
Phodal HUANG
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: refactor output
上级
5abd3e72
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
53 addition
and
29 deletion
+53
-29
adapter/call/JavaCallListener.go
adapter/call/JavaCallListener.go
+33
-19
adapter/models/JClassNode.go
adapter/models/JClassNode.go
+3
-2
adapter/models/JMethodCall.go
adapter/models/JMethodCall.go
+7
-8
utils/file_util.go
utils/file_util.go
+10
-0
未找到文件。
adapter/call/JavaCallListener.go
浏览文件 @
36e4b483
...
...
@@ -11,6 +11,7 @@ import (
var
imports
[]
string
var
currentPkg
string
var
currentClz
string
var
methods
[]
JMethod
var
methodCalls
[]
JMethodCall
var
currentMethodCall
*
JMethodCall
var
currentType
string
...
...
@@ -25,7 +26,7 @@ func NewJavaCallListener() *JavaCallListener {
currentClz
=
""
currentPkg
=
""
currentMethodCall
=
nil
method
Call
s
=
nil
methods
=
nil
return
&
JavaCallListener
{}
}
...
...
@@ -34,7 +35,7 @@ type JavaCallListener struct {
}
func
(
s
*
JavaCallListener
)
getNodeInfo
()
*
JClassNode
{
return
&
JClassNode
{
currentPkg
,
currentClz
,
currentType
,
methodCalls
}
return
&
JClassNode
{
currentPkg
,
currentClz
,
currentType
,
methods
,
methodCalls
}
}
func
(
s
*
JavaCallListener
)
EnterPackageDeclaration
(
ctx
*
PackageDeclarationContext
)
{
...
...
@@ -57,9 +58,15 @@ func (s *JavaCallListener) EnterInterfaceDeclaration(ctx *InterfaceDeclarationCo
}
func
(
s
*
JavaCallListener
)
EnterInterfaceMethodDeclaration
(
ctx
*
InterfaceMethodDeclarationContext
)
{
methodName
:=
ctx
.
IDENTIFIER
()
.
GetText
()
currentMethodCall
=
&
JMethodCall
{
currentPkg
,
currentClz
,
methodName
}
methodCalls
=
append
(
methodCalls
,
*
currentMethodCall
)
startLine
:=
ctx
.
GetStart
()
.
GetLine
()
startLinePosition
:=
ctx
.
GetStart
()
.
GetTokenSource
()
.
GetCharPositionInLine
()
stopLine
:=
ctx
.
GetStop
()
.
GetLine
()
stopLinePosition
:=
ctx
.
GetStop
()
.
GetTokenSource
()
.
GetCharPositionInLine
()
name
:=
ctx
.
IDENTIFIER
()
.
GetText
()
//XXX: find the start position of {, not public
method
:=
&
JMethod
{
name
,
startLine
,
startLinePosition
,
stopLine
,
stopLinePosition
}
methods
=
append
(
methods
,
*
method
)
}
func
(
s
*
JavaCallListener
)
EnterFormalParameter
(
ctx
*
FormalParameterContext
)
{
...
...
@@ -79,23 +86,30 @@ func (s *JavaCallListener) EnterLocalVariableDeclaration(ctx *LocalVariableDecla
}
func
(
s
*
JavaCallListener
)
EnterMethodDeclaration
(
ctx
*
MethodDeclarationContext
)
{
methodName
:=
ctx
.
IDENTIFIER
()
.
GetText
()
currentMethodCall
=
&
JMethodCall
{
currentPkg
,
currentClz
,
methodName
}
methodCalls
=
append
(
methodCalls
,
*
currentMethodCall
)
startLine
:=
ctx
.
GetStart
()
.
GetLine
()
startLinePosition
:=
ctx
.
GetStart
()
.
GetTokenSource
()
.
GetCharPositionInLine
()
stopLine
:=
ctx
.
GetStop
()
.
GetLine
()
stopLinePosition
:=
ctx
.
GetStop
()
.
GetTokenSource
()
.
GetCharPositionInLine
()
name
:=
ctx
.
IDENTIFIER
()
.
GetText
()
//XXX: find the start position of {, not public
method
:=
&
JMethod
{
name
,
startLine
,
startLinePosition
,
stopLine
,
stopLinePosition
}
methods
=
append
(
methods
,
*
method
)
}
func
(
s
*
JavaCallListener
)
EnterMethodCall
(
ctx
*
MethodCallContext
)
{
if
currentMethodCall
!=
nil
{
var
targetType
=
parseTargetType
(
ctx
);
callee
:=
ctx
.
GetChild
(
0
)
.
(
antlr
.
ParseTree
)
.
GetText
()
fullType
:=
warpTargetFullType
(
targetType
);
if
fullType
!=
""
{
currentMethodCall
.
AddMethodCall
(
fullType
,
callee
);
}
else
{
}
var
targetType
=
parseTargetType
(
ctx
);
callee
:=
ctx
.
GetChild
(
0
)
.
(
antlr
.
ParseTree
)
.
GetText
()
startLine
:=
ctx
.
GetStart
()
.
GetLine
()
startLinePosition
:=
ctx
.
GetStart
()
.
GetTokenSource
()
.
GetCharPositionInLine
()
stopLine
:=
ctx
.
GetStop
()
.
GetLine
()
stopLinePosition
:=
ctx
.
GetStop
()
.
GetTokenSource
()
.
GetCharPositionInLine
()
fullType
:=
warpTargetFullType
(
targetType
);
if
fullType
!=
""
{
jMethodCall
:=
&
JMethodCall
{
targetType
,
""
,
callee
,
startLine
,
startLinePosition
,
stopLine
,
stopLinePosition
}
methodCalls
=
append
(
methodCalls
,
*
jMethodCall
)
}
else
{
}
}
...
...
adapter/models/JClassNode.go
浏览文件 @
36e4b483
...
...
@@ -4,6 +4,7 @@ type JClassNode struct {
Package
string
Class
string
Type
string
Methods
[]
JMethod
MethodCalls
[]
JMethodCall
}
...
...
@@ -15,9 +16,9 @@ type JsonIdentifier struct {
}
func
NewClassNode
()
*
JClassNode
{
return
&
JClassNode
{
""
,
""
,
""
,
nil
}
return
&
JClassNode
{
""
,
""
,
""
,
nil
,
nil
}
}
func
NewJsonIdentifier
()
*
JsonIdentifier
{
return
&
JsonIdentifier
{
""
,
""
,
""
,
nil
}
}
\ No newline at end of file
}
adapter/models/JMethodCall.go
浏览文件 @
36e4b483
package
models
type
JMethodCall
struct
{
Pkg
string
Dlz
string
MethodName
string
//tableOps map[string]string
}
func
(
call
*
JMethodCall
)
AddMethodCall
(
targetType
string
,
method
string
)
{
//fmt.Println(targetType, "->", method)
Pkg
string
Dlz
string
MethodName
string
StartLine
int
StartLinePosition
int
StopLine
int
StopLinePosition
int
}
utils/file_util.go
浏览文件 @
36e4b483
...
...
@@ -3,9 +3,19 @@ package utils
import
(
"fmt"
"io"
"io/ioutil"
"os"
)
func
WriteFile
(
fileName
string
,
payload
string
)
{
_
=
ioutil
.
WriteFile
(
fileName
,
[]
byte
(
payload
),
0644
)
}
func
ReadFile
(
fileName
string
,
payload
string
)
[]
byte
{
contents
,
_
:=
ioutil
.
ReadFile
(
fileName
)
return
contents
}
func
CopyFile
(
src
,
dst
string
)
(
int64
,
error
)
{
sourceFileStat
,
err
:=
os
.
Stat
(
src
)
if
err
!=
nil
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录