在一行中固定位置处使用令牌解析程序

Ant*_*vis 5 antlr4

我是Antlr的新手,需要为遗留汇编代码编写一个解析器,该代码可能包含固定列中的行号.此外,某些列具有重要意义 - 无论是注释,延续还是等等.如何检测这些?

举一些例子:

000001 proc proc1

000002*评论

  * comment without line numbers

            continuation marker set ==>               X

        Arbitrary text as continuation
Run Code Online (Sandbox Code Playgroud)

谢谢xAn

Nil*_*aim 0

在编写 Antlr 语法来解析 Cobol 源代码时,我遇到过类似的情况。Cobol 具有一些与您类似的特征(固定列、列显着等)。

我为这个问题找到的唯一解决方案:“预处理”输入并将其转换为 Antlr 可以毫无问题地解析的内容!

例如:在 Cobol 中,第 7 列中的星号表示该行是注释行;我将其(星号本身)更改为“>>”,并在语法中指定“>>”意味着该行是注释行。