我想用空格缩进创建一个非常简单的语法。每行由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。
答案 0 :(得分:1)
这是可能的。您所要做的就是定义规则并跳过它。
你走了:
Ignore : (' ' | '\t' | '\n' | '\r')+ {skip();};
或者如果您需要识别\ n或\ r
Ignore : (' ' | '\t')+ {skip();};
将此添加到您的gramar中,将忽略所有空格和制表符。