如何为 java/jsf 代码制作自己的解析器?

2024-02-11

嗨,我想制作自己的“解析器”,例如:计算 (4+(3-4^2))*2 或 解析java、jsf、html代码。

其实我也做过类似的事情,但是我觉得不太好。

有什么对我好的吗?我尝试阅读更多内容,但我有点困惑,LL、LR、AST、BNF、javacc yacc 等:)。当我想计算 4+ 时,我不知道该走哪条路......

或者如果我想解析java,jsf代码并从中生成一些东西(另一个java代码)

有没有像 ast 这样总体上足够好的东西?或者我可以同时使用的东西?

谢谢你的帮助。


首先,您必须了解有关解析的一切都基于grammars.

语法根据如何以基本单元分解文本以及如何以某种有意义的方式堆叠这些单元来描述您想要实现的语言。您可能还想寻找token, 非终结符, terminal概念。

LL 和 LR 之间的差异可以有两种:实现差异和语法编写差异。如果您使用标准工具,则只需要了解第二部分。

我通常使用 LL(自上而下)语法。即使使用自定义代码,它们的编写和实现也更简单。 LR 语法理论上涵盖了更多种类的语言,但在正常情况下,当您需要一些正确的错误检测时,它们只是一个障碍。

一些随机指针:

  • javacc(java,LL),
  • antlr(java,LL),
  • yepp(斯马泰菲尔,LL),
  • bison(C、LR、GNU版本的尊者yacc)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 java/jsf 代码制作自己的解析器? 的相关文章

随机推荐