小编Kyp*_*paz的帖子

使用云雀的语法优先

我的语法中有一个优先级问题,而且我没有其他解决方法。

我正在使用云雀

这是事情(我已尽力简化了问题):

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)

我试图将优先权放在我的规则中,但是没有用。

您是否知道我需要进行哪些更改才能使其正常工作?

谢谢

python grammar lark-parser

3
推荐指数
1
解决办法
773
查看次数

标签 统计

grammar ×1

lark-parser ×1

python ×1