Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
Chapi
提交
03ebe085
C
Chapi
项目概览
Phodal
/
Chapi
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Chapi
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
03ebe085
编写于
6月 02, 2020
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: fix decl issue
上级
8bd13ce5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
29 addition
and
30 deletion
+29
-30
chapi-ast-typescript/src/main/kotlin/chapi/ast/typescriptast/TypeScriptFullIdentListener.kt
...in/chapi/ast/typescriptast/TypeScriptFullIdentListener.kt
+29
-30
未找到文件。
chapi-ast-typescript/src/main/kotlin/chapi/ast/typescriptast/TypeScriptFullIdentListener.kt
浏览文件 @
03ebe085
...
...
@@ -66,24 +66,8 @@ class TypeScriptFullIdentListener(private var node: TSIdentify) : TypeScriptAstL
this
.
buildConstructorMethod
(
childCtx
as
TypeScriptParser
.
ConstructorDeclarationContext
)
currentNode
.
Functions
+=
codeFunction
}
"PropertyMemberDeclarationContext"
->
{
this
.
buildPropertyMember
(
childCtx
as
TypeScriptParser
.
PropertyMemberDeclarationContext
)
}
else
->
{
println
(
"handleClassBodyElements -> childElementType : $childElementType"
)
}
}
}
}
private
fun
buildPropertyMember
(
originCtx
:
TypeScriptParser
.
PropertyMemberDeclarationContext
)
{
val
childType
=
originCtx
::
class
.
java
.
simpleName
when
(
childType
)
{
"PropertyDeclarationExpressionContext"
->
{
val
ctx
=
originCtx
as
TypeScriptParser
.
PropertyDeclarationExpressionContext
val
isField
=
ctx
.
propertyName
()
!=
null
if
(
isField
)
{
"PropertyDeclarationExpressionContext"
->
{
val
ctx
=
childCtx
as
TypeScriptParser
.
PropertyDeclarationExpressionContext
val
codeField
=
CodeField
(
TypeValue
=
ctx
.
propertyName
().
text
)
...
...
@@ -98,20 +82,35 @@ class TypeScriptFullIdentListener(private var node: TSIdentify) : TypeScriptAstL
currentNode
.
Fields
+=
codeField
}
}
"MethodDeclarationExpressionContext"
->
{
val
ctx
=
originCtx
as
TypeScriptParser
.
MethodDeclarationExpressionContext
val
codeFunction
=
CodeFunction
(
Name
=
ctx
.
propertyName
().
text
,
Position
=
buildPosition
(
ctx
)
)
val
callSignCtx
=
ctx
.
callSignature
()
if
(
callSignCtx
.
typeAnnotation
()
!=
null
)
{
codeFunction
.
ReturnType
=
buildTypeAnnotation
(
callSignCtx
.
typeAnnotation
())
!!
"MethodDeclarationExpressionContext"
->
{
val
ctx
=
childCtx
as
TypeScriptParser
.
MethodDeclarationExpressionContext
val
codeFunction
=
CodeFunction
(
Name
=
ctx
.
propertyName
().
text
,
Position
=
buildPosition
(
ctx
)
)
val
callSignCtx
=
ctx
.
callSignature
()
if
(
callSignCtx
.
typeAnnotation
()
!=
null
)
{
codeFunction
.
ReturnType
=
buildTypeAnnotation
(
callSignCtx
.
typeAnnotation
())
!!
}
currentNode
.
Functions
+=
codeFunction
}
else
->
{
println
(
"handleClassBodyElements -> childElementType : $childElementType"
)
}
}
}
}
private
fun
buildPropertyMember
(
originCtx
:
TypeScriptParser
.
PropertyMemberDeclarationContext
)
{
val
childType
=
originCtx
::
class
.
java
.
simpleName
.
toString
()
currentNode
.
Functions
+=
codeFunction
print
(
childType
)
when
(
childType
)
{
else
->
{
println
(
"handleClassBody -> buildPropertyMember"
)
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录