如何解析科特林代码?
how to parse kotlin code?
我需要分析 kotlin 文件代码,以检测关键字 "data" 和“?”。
问题是我找不到任何像 JavaParser 这样的库。
我不需要强大的工具,只需要 return 我知道行数的东西。
有什么想法吗?
您需要找到一个 Kotlin 解析器,或者编写您自己的解析器。
对于这个解析子集,你可以作弊,因为 data
是一个关键字,所以如果你看到数据的每一侧都没有字母,你就知道它是关键字。
对于?
,这取决于你想要什么意思,猫王可以通过点来检测,否则如果?
旁边是一个字母,请尝试可空的意思。
见此[0] Kotlin代码解析相关讨论。他们谈论使用antlr v4语法来解析Kotlin代码。
我用antlr4做的。我创建了一个开源库:
https://github.com/sarahBuisson/kotlin-parser
<dependency
<groupId>com.github.sarahbuisson</groupId>
<artifactId>kotlin-parser</artifactId>
</dependency>
我还没有为它编写 Kotlin 语言语法。
不过我已经在Kotlin中实现了一个解析器,id是有什么用的。
它是 Kotlin 通用代码,因此适用于任何目标平台。
这里有文章,代码在github。
https://medium.com/@dr.david.h.akehurst/agl-your-dsl-in-the-web-c9f54595691b
您可以尝试 Kastree——将 Kotlin 源代码作为一组 AST 对象进行操作的简单库。
除了其他答案中提到的工具,这里还有一个可能对其他人有用的工具:
我需要分析 kotlin 文件代码,以检测关键字 "data" 和“?”。
问题是我找不到任何像 JavaParser 这样的库。 我不需要强大的工具,只需要 return 我知道行数的东西。
有什么想法吗?
您需要找到一个 Kotlin 解析器,或者编写您自己的解析器。
对于这个解析子集,你可以作弊,因为 data
是一个关键字,所以如果你看到数据的每一侧都没有字母,你就知道它是关键字。
对于?
,这取决于你想要什么意思,猫王可以通过点来检测,否则如果?
旁边是一个字母,请尝试可空的意思。
见此[0] Kotlin代码解析相关讨论。他们谈论使用antlr v4语法来解析Kotlin代码。
我用antlr4做的。我创建了一个开源库: https://github.com/sarahBuisson/kotlin-parser
<dependency
<groupId>com.github.sarahbuisson</groupId>
<artifactId>kotlin-parser</artifactId>
</dependency>
我还没有为它编写 Kotlin 语言语法。
不过我已经在Kotlin中实现了一个解析器,id是有什么用的。
它是 Kotlin 通用代码,因此适用于任何目标平台。
这里有文章,代码在github。
https://medium.com/@dr.david.h.akehurst/agl-your-dsl-in-the-web-c9f54595691b
您可以尝试 Kastree——将 Kotlin 源代码作为一组 AST 对象进行操作的简单库。
除了其他答案中提到的工具,这里还有一个可能对其他人有用的工具: