[英]retrieve tokens in lark python
所以我使用 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')])])
更改arg: ARGUMENT","arg | ARGUMENT
arg: ARGUMENT","arg | ARGUMENT
到arg: ARGUMENT ("," arg)*
等價。
*
表示:匹配 0 個或更多實例。 使用這種表示法,Lark 會將元素視為一個列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.