Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
Coca
提交
06ce2b63
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 搜索 >>
未验证
提交
06ce2b63
编写于
1月 13, 2020
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: rename build to append
上级
3cb2e493
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
18 deletion
+24
-18
trial/cocago/cocago_parser.go
trial/cocago/cocago_parser.go
+24
-18
未找到文件。
trial/cocago/cocago_parser.go
浏览文件 @
06ce2b63
...
@@ -52,9 +52,9 @@ func (n *CocagoParser) Visitor(f *ast.File, fset *token.FileSet, fileName string
...
@@ -52,9 +52,9 @@ func (n *CocagoParser) Visitor(f *ast.File, fset *token.FileSet, fileName string
currentStruct
=
trial
.
CodeDataStruct
{}
currentStruct
=
trial
.
CodeDataStruct
{}
currentStruct
.
Name
=
x
.
Name
.
String
()
currentStruct
.
Name
=
x
.
Name
.
String
()
case
*
ast
.
StructType
:
case
*
ast
.
StructType
:
Buil
dStructType
(
currentStruct
,
x
,
&
currentFile
)
Ad
dStructType
(
currentStruct
,
x
,
&
currentFile
)
case
*
ast
.
FuncDecl
:
case
*
ast
.
FuncDecl
:
Buil
dFunction
(
currentStruct
,
x
,
currentFile
)
Ad
dFunction
(
currentStruct
,
x
,
currentFile
)
}
}
return
true
return
true
})
})
...
@@ -62,10 +62,7 @@ func (n *CocagoParser) Visitor(f *ast.File, fset *token.FileSet, fileName string
...
@@ -62,10 +62,7 @@ func (n *CocagoParser) Visitor(f *ast.File, fset *token.FileSet, fileName string
return
&
currentFile
return
&
currentFile
}
}
func
BuildFunction
(
currentStruct
trial
.
CodeDataStruct
,
x
*
ast
.
FuncDecl
,
currentFile
trial
.
CodeFile
)
{
func
AddFunction
(
currentStruct
trial
.
CodeDataStruct
,
x
*
ast
.
FuncDecl
,
currentFile
trial
.
CodeFile
)
{
codeFunc
:=
&
trial
.
CodeFunction
{
Name
:
x
.
Name
.
String
(),
}
recv
:=
""
recv
:=
""
for
_
,
item
:=
range
x
.
Recv
.
List
{
for
_
,
item
:=
range
x
.
Recv
.
List
{
switch
x
:=
item
.
Type
.
(
type
)
{
switch
x
:=
item
.
Type
.
(
type
)
{
...
@@ -74,17 +71,7 @@ func BuildFunction(currentStruct trial.CodeDataStruct, x *ast.FuncDecl, currentF
...
@@ -74,17 +71,7 @@ func BuildFunction(currentStruct trial.CodeDataStruct, x *ast.FuncDecl, currentF
}
}
}
}
if
x
.
Type
.
Params
!=
nil
{
codeFunc
:=
BuildFunction
(
x
)
fieldList
:=
x
.
Type
.
Params
.
List
properties
:=
BuildFieldToProperty
(
fieldList
)
codeFunc
.
Parameters
=
append
(
codeFunc
.
Parameters
,
properties
...
)
}
if
x
.
Type
.
Results
!=
nil
{
fieldList
:=
x
.
Type
.
Results
.
List
properties
:=
BuildFieldToProperty
(
fieldList
)
codeFunc
.
ReturnTypes
=
append
(
codeFunc
.
Parameters
,
properties
...
)
}
if
recv
!=
""
{
if
recv
!=
""
{
member
:=
GetMemberFromFile
(
currentFile
,
recv
)
member
:=
GetMemberFromFile
(
currentFile
,
recv
)
...
@@ -99,6 +86,25 @@ func BuildFunction(currentStruct trial.CodeDataStruct, x *ast.FuncDecl, currentF
...
@@ -99,6 +86,25 @@ func BuildFunction(currentStruct trial.CodeDataStruct, x *ast.FuncDecl, currentF
}
}
}
}
func
BuildFunction
(
x
*
ast
.
FuncDecl
)
*
trial
.
CodeFunction
{
codeFunc
:=
&
trial
.
CodeFunction
{
Name
:
x
.
Name
.
String
(),
}
if
x
.
Type
.
Params
!=
nil
{
fieldList
:=
x
.
Type
.
Params
.
List
properties
:=
BuildFieldToProperty
(
fieldList
)
codeFunc
.
Parameters
=
append
(
codeFunc
.
Parameters
,
properties
...
)
}
if
x
.
Type
.
Results
!=
nil
{
fieldList
:=
x
.
Type
.
Results
.
List
properties
:=
BuildFieldToProperty
(
fieldList
)
codeFunc
.
ReturnTypes
=
append
(
codeFunc
.
Parameters
,
properties
...
)
}
return
codeFunc
}
func
createMember
()
{
func
createMember
()
{
}
}
...
@@ -128,7 +134,7 @@ func BuildFieldToProperty(fieldList []*ast.Field) []trial.CodeProperty {
...
@@ -128,7 +134,7 @@ func BuildFieldToProperty(fieldList []*ast.Field) []trial.CodeProperty {
return
properties
return
properties
}
}
func
Buil
dStructType
(
currentStruct
trial
.
CodeDataStruct
,
x
*
ast
.
StructType
,
currentFile
*
trial
.
CodeFile
)
{
func
Ad
dStructType
(
currentStruct
trial
.
CodeDataStruct
,
x
*
ast
.
StructType
,
currentFile
*
trial
.
CodeFile
)
{
member
:=
trial
.
CodeMember
{
member
:=
trial
.
CodeMember
{
DataStructID
:
currentStruct
.
Name
,
DataStructID
:
currentStruct
.
Name
,
Type
:
"struct"
,
Type
:
"struct"
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录