【发布时间】:2017-10-27 22:20:45
【问题描述】:
我正在使用 Python 3.4.2 学习 ANTLR4,我的目标只是在规则的 {} 内编写多行 Python 代码。当我定义解析器的规则时,我有以下代码块:
...
term
: term '*' fact
| term '/' fact
{
print('a')
}
| fact
{
print('b')
}
;
...
不编译并引发“print('a') IndentationError : unexpected indent”。我试图理解,我发现下面的代码块没有抛出任何错误:
...
term
: term '*' fact
| term '/' fact
{print('a')}
| fact
{
print('b')
}
;
...
当我使用一个操作数而不是两个操作数时,它的行为就好像没问题。
为什么?
我在互联网上进行了自己的搜索,但没有找到任何类似的案例。
【问题讨论】:
标签: python parsing antlr python-3.4 antlr4