Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
Coca
提交
eea04448
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 搜索 >>
未验证
提交
eea04448
编写于
1月 18, 2020
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Revert "test: [go] add to add property supporT"
This reverts commit
db58278e
.
上级
db58278e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
13 addition
and
23 deletion
+13
-23
pkg/infrastructure/ast/cocago/cocago_builder.go
pkg/infrastructure/ast/cocago/cocago_builder.go
+13
-21
pkg/infrastructure/ast/cocago/cocago_parser.go
pkg/infrastructure/ast/cocago/cocago_parser.go
+0
-2
未找到文件。
pkg/infrastructure/ast/cocago/cocago_builder.go
浏览文件 @
eea04448
...
...
@@ -109,27 +109,22 @@ func BuildFieldToProperty(fieldList []*ast.Field) []CodeProperty {
return
properties
}
func
BuildMethodCall
(
codeFunc
*
CodeFunction
,
item
ast
.
Stmt
,
fields
[]
CodeField
,
localVars
[]
CodeProperty
,
imports
[]
CodeImport
,
packageName
string
)
([]
CodeProperty
,
*
CodeCall
)
{
func
BuildMethodCall
(
codeFunc
*
CodeFunction
,
item
ast
.
Stmt
,
fields
[]
CodeField
,
localVars
[]
CodeProperty
,
imports
[]
CodeImport
,
packageName
string
)
([]
CodeProperty
,
CodeCall
)
{
var
call
CodeCall
switch
it
:=
item
.
(
type
)
{
case
*
ast
.
ExprStmt
:
call
=
*
BuildMethodCallExprStmt
(
it
,
codeFunc
,
fields
,
imports
,
packageName
,
localVars
)
BuildMethodCallExprStmt
(
it
,
codeFunc
,
fields
,
imports
,
packageName
,
localVars
)
case
*
ast
.
DeferStmt
:
call
=
*
BuildCallFromExpr
(
it
.
Call
,
codeFunc
,
fields
,
imports
,
packageName
,
localVars
)
call
=
BuildCallFromExpr
(
it
.
Call
,
codeFunc
,
fields
,
imports
,
packageName
,
localVars
)
codeFunc
.
FunctionCalls
=
append
(
codeFunc
.
FunctionCalls
,
call
)
case
*
ast
.
AssignStmt
:
vars
:=
BuildLocalVars
(
it
)
localVars
=
vars
case
*
ast
.
ReturnStmt
:
for
_
,
result
:=
range
it
.
Results
{
expr
,
s
,
s2
:=
BuildExpr
(
result
)
fmt
.
Println
(
expr
,
s
,
s2
)
}
default
:
fmt
.
Fprintf
(
output
,
"methodCall %s
\n
"
,
reflect
.
TypeOf
(
it
))
}
return
localVars
,
&
call
return
localVars
,
call
}
func
BuildLocalVars
(
it
*
ast
.
AssignStmt
)
[]
CodeProperty
{
...
...
@@ -154,20 +149,17 @@ func BuildLocalVars(it *ast.AssignStmt) []CodeProperty {
return
vars
}
func
BuildMethodCallExprStmt
(
it
*
ast
.
ExprStmt
,
codeFunc
*
CodeFunction
,
fields
[]
CodeField
,
imports
[]
CodeImport
,
currentPackage
string
,
localVars
[]
CodeProperty
)
*
CodeCall
{
var
call
*
CodeCall
func
BuildMethodCallExprStmt
(
it
*
ast
.
ExprStmt
,
codeFunc
*
CodeFunction
,
fields
[]
CodeField
,
imports
[]
CodeImport
,
currentPackage
string
,
localVars
[]
CodeProperty
)
{
switch
expr
:=
it
.
X
.
(
type
)
{
case
*
ast
.
CallExpr
:
call
=
BuildCallFromExpr
(
expr
,
codeFunc
,
fields
,
imports
,
currentPackage
,
localVars
)
codeFunc
.
FunctionCalls
=
append
(
codeFunc
.
FunctionCalls
,
*
call
)
call
:=
BuildCallFromExpr
(
expr
,
nil
,
fields
,
imports
,
currentPackage
,
localVars
)
codeFunc
.
FunctionCalls
=
append
(
codeFunc
.
FunctionCalls
,
call
)
default
:
fmt
.
Fprintf
(
output
,
"BuildMethodCallExprStmt: %s
\n
"
,
reflect
.
TypeOf
(
expr
))
}
return
call
}
func
BuildCallFromExpr
(
expr
*
ast
.
CallExpr
,
codeFunc
*
CodeFunction
,
fields
[]
CodeField
,
imports
[]
CodeImport
,
currentPackage
string
,
localVars
[]
CodeProperty
)
*
CodeCall
{
func
BuildCallFromExpr
(
expr
*
ast
.
CallExpr
,
codeFunc
*
CodeFunction
,
fields
[]
CodeField
,
imports
[]
CodeImport
,
currentPackage
string
,
localVars
[]
CodeProperty
)
CodeCall
{
_
,
selector
,
selName
:=
BuildExpr
(
expr
.
Fun
.
(
ast
.
Expr
))
target
:=
ParseTarget
(
selector
,
fields
,
localVars
)
packageName
:=
getPackageName
(
target
,
imports
)
...
...
@@ -188,12 +180,13 @@ func BuildCallFromExpr(expr *ast.CallExpr, codeFunc *CodeFunction, fields []Code
for
_
,
item
:=
range
funcLit
.
Body
.
List
{
_
,
methodCall
:=
BuildMethodCall
(
codeFunc
,
item
,
fields
,
localVars
,
imports
,
packageName
)
fmt
.
Println
(
methodCall
)
fmt
.
Println
(
"..."
,
methodCall
)
if
methodCall
.
NodeName
!=
""
{
codeFunc
.
FunctionCalls
=
append
(
codeFunc
.
FunctionCalls
,
*
methodCall
)
fmt
.
Println
(
methodCall
.
NodeName
)
codeFunc
.
FunctionCalls
=
append
(
codeFunc
.
FunctionCalls
,
methodCall
)
}
}
}
}
_
,
value
,
kind
:=
BuildExpr
(
arg
.
(
ast
.
Expr
))
property
:=
&
CodeProperty
{
...
...
@@ -203,8 +196,7 @@ func BuildCallFromExpr(expr *ast.CallExpr, codeFunc *CodeFunction, fields []Code
call
.
Parameters
=
append
(
call
.
Parameters
,
*
property
)
}
return
&
call
return
call
}
func
getPackageName
(
target
string
,
imports
[]
CodeImport
)
string
{
...
...
pkg/infrastructure/ast/cocago/cocago_parser.go
浏览文件 @
eea04448
...
...
@@ -295,8 +295,6 @@ func BuildExpr(expr ast.Expr) (string, string, string) {
case
*
ast
.
FuncLit
:
// inner function
fmt
.
Println
(
x
.
Body
.
List
)
case
*
ast
.
BinaryExpr
:
//fmt.Println(x.Op)
default
:
fmt
.
Fprintf
(
output
,
"BuildExpr %s
\n
"
,
reflect
.
TypeOf
(
x
))
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录