0
ネスト可能な条件について説明します。再帰的ルールで{}でマッチした空の要素を無視する
ここfoo AND bar
AST:
[
"foo",
[
[
"AND",
[
"bar",
[]
]
]
]
]
しかし、後に空のリストがある私のようなラインを持つASTを生成することができます
expr = (/[_a-zA-Z][a-zA-Z0-9_-]*/) ;
condop = ("AND" | "OR") ;
condition = expr { condop condition } ;
start = condition ;
:ここでは私が働いているものです"bar"は条件ルールが最後に合致したと思うので、空の文字列の価値がある "condop condition"。ドキュメントhttps://pypi.python.org/pypi/grako/3.16.0によれば、{}は空のリストを生成します。
これを防ぐ方法はありますか?