所以我在 python 中使用 Lark 库来解析一些文本,我面临两个问题。我在文档中进行了搜索,但找不到从树中检索令牌的方法,第二个是我期待一棵具有多个令牌的树,但不是它,而是嵌套树,其中每棵树只有一个令牌。
这是我的代码:
l = Lark('''start: EXPERT "arguments with" arg _NL
EXPERT : /[a-zA-Z0-9]+/
ARGUMENT : /[a-zA-Z0-9]+/
arg: ARGUMENT","arg | ARGUMENT
%import common.WORD // imports from terminal library
%ignore " " // Disregard spaces in text
%import common.NEWLINE -> _NL
''',parser='lalr', lexer='contextual')
我得到的结果:
Tree(start, [Token(EXPERT, 'PC1'), Tree(arg, [Token(ARGUMENT, 'a'), Tree(arg, [Token(ARGUMENT, 'b'), Tree(arg, [Token(ARGUMENT, 'c')])])])])
我期待的结果:
Tree(start, [Token(EXPERT, 'PC1'), Tree(arg, [Token(ARGUMENT, 'a'),Token(ARGUMENT, 'b'),Token(ARGUMENT, 'c')])])