簡體   English   中英

在百靈鳥 python 中檢索令牌

[英]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 | ARGUMENTarg: ARGUMENT ("," arg)*等價。

*表示:匹配 0 個或更多實例。 使用這種表示法,Lark 會將元素視為一個列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM