Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
Coca
提交
9cb87ddd
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 搜索 >>
未验证
提交
9cb87ddd
编写于
1月 13, 2020
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: [go] add basic handle for params & return type
上级
a845410a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
32 addition
and
9 deletion
+32
-9
pkg/domain/trial/code_function.go
pkg/domain/trial/code_function.go
+1
-1
trial/cocago/cocago_parser.go
trial/cocago/cocago_parser.go
+31
-8
未找到文件。
pkg/domain/trial/code_function.go
浏览文件 @
9cb87ddd
...
...
@@ -3,7 +3,7 @@ package trial
type
CodeFunction
struct
{
Name
string
ReturnTypes
[]
CodeProperty
Parameters
[]
CodeP
arameter
Parameters
[]
CodeP
roperty
MethodCalls
[]
CodeMethodCall
Override
bool
Annotations
[]
CodeAnnotation
...
...
trial/cocago/cocago_parser.go
浏览文件 @
9cb87ddd
...
...
@@ -14,7 +14,6 @@ import (
var
currentPackage
*
trial
.
CodePackage
type
CocagoParser
struct
{
}
func
NewCocagoParser
()
*
CocagoParser
{
...
...
@@ -37,7 +36,7 @@ func (n *CocagoParser) ProcessFile(fileName string) trial.CodeFile {
return
*
codeFile
}
func
(
n
*
CocagoParser
)
Visitor
(
f
*
ast
.
File
,
fset
*
token
.
FileSet
,
fileName
string
)
*
trial
.
CodeFile
{
func
(
n
*
CocagoParser
)
Visitor
(
f
*
ast
.
File
,
fset
*
token
.
FileSet
,
fileName
string
)
*
trial
.
CodeFile
{
var
currentStruct
trial
.
CodeDataStruct
var
currentFile
trial
.
CodeFile
currentFile
.
FullName
=
fileName
...
...
@@ -64,7 +63,9 @@ func (n *CocagoParser)Visitor(f *ast.File, fset *token.FileSet, fileName string)
}
func
BuildFunction
(
currentStruct
trial
.
CodeDataStruct
,
x
*
ast
.
FuncDecl
,
currentFile
trial
.
CodeFile
)
{
funcName
:=
x
.
Name
.
String
()
codeFunc
:=
&
trial
.
CodeFunction
{
Name
:
x
.
Name
.
String
(),
}
recv
:=
""
for
_
,
item
:=
range
x
.
Recv
.
List
{
switch
x
:=
item
.
Type
.
(
type
)
{
...
...
@@ -73,16 +74,38 @@ func BuildFunction(currentStruct trial.CodeDataStruct, x *ast.FuncDecl, currentF
}
}
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
...
)
}
if
recv
!=
""
{
}
else
{
member
:=
trial
.
CodeMember
{
DataStructID
:
currentStruct
.
Name
,
Type
:
"function"
,
Name
:
funcName
,
}
}
func
BuildFieldToProperty
(
fieldList
[]
*
ast
.
Field
)
[]
trial
.
CodeProperty
{
var
properties
[]
trial
.
CodeProperty
for
_
,
field
:=
range
fieldList
{
typeName
,
typeType
:=
BuildPropertyField
(
field
)
property
:=
trial
.
CodeProperty
{
Modifiers
:
nil
,
Name
:
field
.
Names
[
0
]
.
String
(),
TypeType
:
typeType
,
TypeName
:
typeName
,
}
currentFile
.
Members
=
append
(
currentFile
.
Members
,
member
)
properties
=
append
(
properties
,
property
)
}
return
properties
}
func
BuildStructType
(
currentStruct
trial
.
CodeDataStruct
,
x
*
ast
.
StructType
,
currentFile
*
trial
.
CodeFile
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录