python像语法antlr用分号

时间:2014-03-11 11:34:13

标签: python antlr grammar

我正在尝试在antlr中为类似python的语言编写语法,语言如下:

if condition:
    if condition:
    pass;
        if condtion:
            pass;
        if condtion:
            pass;
pass;
if condtion:
    pass;

我的问题是我找不到带空格的块。所以我想知道是否有办法实现这一点而无需在语法中编写任何代码?

1 个答案:

答案 0 :(得分:1)

如果我没记错的话,我所做的就是在词法分析器中创建一堆空格,但当然需要在词法分析器中进行操作。

另一种处理此问题的方法是创建一个字符流处理器,它将不仅仅8位的Unicode 16字符发送给词法分析器。然后,使用特殊的位模式来指示字符实际上是嵌套深度。然后,词法分析器可以将INDENT和DEDENT令牌发送给解析器。