【问题标题】:ANTLR: Space indentation?ANTLR:空格缩进?
【发布时间】:2012-08-30 21:17:29
【问题描述】:

我想创建一个非常简单的带有空格缩进的语法。每行由 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。

【问题讨论】:

标签: java antlr lexer


【解决方案1】:

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

给你:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多