我是Antlr的新手,需要为遗留汇编代码编写解析器,可能在固定列中包含行号。此外,某些列具有重要意义 - 无论是评论,延续还是等等。我如何检测这些?
举一些例子:
000001 proc proc1
000002 *评论
* comment without line numbers
continuation marker set ==> X
Arbitrary text as continuation
由于 XAN
答案 0 :(得分:0)
在编写Antlr语法来解析Cobol源代码时,我遇到过类似的问题。 Cobol有一些像你的特性(固定列,列很重要等)。
我发现这个问题的唯一解决方案:"预处理"输入并将其转换为Antlr可以解析而没有问题的一些内容!
Ex:在Cobol中,第7列中的星号表示该行是注释行;我把它(星号本身)更改为">>"并在我的语法中指明">>"表示此行是注释行。