7

我想用空格缩进创建一个非常简单的语法。每行由 1 个或多个单词组成,但像 python 一样缩进(4 个空格或一个制表符是一个缩进),并且缩进没有关闭,例如:

if something cool occurs
    do this
else
    otherwise do this
    loop around something
       each time doing this
       and do that
say good byte

不是读取每一行,而是计算缩进并手动构建一棵树,是否可以在 ANTLR 语法中完成所有这些操作?我的目标语言是Java。

4

1 回答 1

1

这个有可能。您所做的就是定义一个规则并让它被跳过。

干得好:

Ignore :  (' ' | '\t' | '\n' | '\r')+ {skip();}; 

或者如果您需要识别 \n 或 \r

Ignore :  (' ' | '\t')+ {skip();}; 

将此添加到您的语法中,所有空格和制表符都将被忽略。

于 2013-09-27T05:59:54.013 回答