我的语法中有一个优先级问题,而且我没有其他解决方法。
我正在使用云雀
这是事情(我已尽力简化了问题):
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())
Run Code Online (Sandbox Code Playgroud)
输出为:
start
set_mul
set
nb 3
Run Code Online (Sandbox Code Playgroud)
但是我想要的是:
start
set_mul
nb 3
set
Run Code Online (Sandbox Code Playgroud)
我试图将优先权放在我的规则中,但是没有用。
您是否知道我需要进行哪些更改才能使其正常工作?
谢谢