Я хотел бы описать вложенное условие. Вот то, что я работаю с:Игнорирование пустых элементов, соответствующих {} в рекурсивном правиле
expr = (/[_a-zA-Z][a-zA-Z0-9_-]*/) ;
condop = ("AND" | "OR") ;
condition = expr { condop condition } ;
start = condition ;
я могу генерировать AST с линиями как:
foo AND bar
Здесь АСТ:
[
"foo",
[
[
"AND",
[
"bar",
[]
]
]
]
]
Но есть пустой список после того, как «bar», потому что я предполагаю, что в последний раз, когда правило условия согласовано, «condop condition» стоит пустую строку. Согласно документам https://pypi.python.org/pypi/grako/3.16.0, {} генерирует пустой список.
Есть ли способ предотвратить это?