Java到HTML解析器/状态机



我想创建一个应用程序,将输入的java代码转换为HTML格式的java代码,

例如:

public class ReadWithScanner

将成为

<span class="public">public</span> <span class="class">class</span> ReadWithScanner

然而,当涉及到参数和正则表达式时,它会变得相当复杂。现在我手头有一些时间,我希望编写自己的代码解析器。

我该如何开始?有没有任何教程或在线内容不仅可以帮助我写这篇文章,还可以帮助我理解它。

感谢

要获得解析复杂性方面的帮助,您需要依赖Java语言规范。

我似乎还记得,Java是一种LL(k)语言(例如,请参阅此处)。然而,尽管Java语言试图保持其"紧凑",但它仍然相当庞大和复杂。语法分布在整个文档中。这不是一个适合内心虚弱的人的项目。您可能会考虑使用Java解析工具(如Java前端)。

您需要做的是使用ANTLR,它已经有了用于解析Java的Java语法,然后您只需要提供自己的模板来从使用ANTLR生成的抽象语法树中输出您想要的任何内容。

如果您需要了解解析器的资源,我可以推荐免费下载的《编译器设计基础》。

它涵盖的不仅仅是解析器,但如果你阅读了前几章,你应该对lexer和解析器都有很好的基本理解。

我认为您需要一个词法分析器。我早期使用Flex词法分析器。它使用起来并不太复杂。如果需要解析分析的文本,可以使用bison c++bisoncpp.sourceforge.net/(C++需要和linux环境)

最新更新