【发布时间】:2020-10-26 08:16:49
【问题描述】:
我对 antlr 不是很熟悉。我使用的是第 4 版,并且我有一个语法,其中空格在某些部分并不重要(但它可能在其他部分中,或者更确切地说是运气)。
假设我们有以下语法
grammar Foo;
program : A* ;
A : ID '@' ID '(' IDList ')' ';' ;
ID : [a-zA-Z]+ ;
IDList : ID (',' IDList)* ;
WS : [ \t\r\n]+ -> skip ;
和一个测试输入
foo@bar(X,Y);
foo@baz ( z,Z) ;
第一行解析正确,而第二行解析不正确。 我不想用空白不相关的地方来破坏我的规则,因为我的实际语法比玩具示例更复杂。如果不清楚零件 ID '@'ID 不应该有空格。任何其他位置的空格都不重要。
【问题讨论】:
标签: parsing antlr4 removing-whitespace