我的语法有一个优先问题,我没有更多的想法来解决它。
我正在使用Lark
事情是这样的(我已经尽可能地简化了问题):
from lark import Lark
parser = Lark(r"""
start: set | set_mul
set_mul: [nb] set
set: [nb] "foo"
nb: INT "x"
%import common.INT
%import common.WS
%ignore WS
""", start='start')
input = "3xfoo"
p = parser.parse(input)
print(p.pretty())
输出是:
start
set_mul
set
nb 3
但我想要的是:
start
set_mul
nb 3
set
我试图在我的规则中优先考虑,但它不起作用。
你知道我需要改变什么才能让它工作吗?
谢谢