cost 64 ms
define 語句僅在 Lark 語法中緊跟賦值時才有效

[英]define statement only works if followed by an assignment in Lark grammar

我正在用 Lark 創建一個解析器。 對於我運行的大多數測試,解析器工作正常,但因 define 關鍵字而失敗。 只有在它后面有一個賦值時它才有效。 define a = 10工作正常,但define b不被視為 define 語句。 這是 Lark 解析器:import lark # ... ...

如何修復我的 DSL 語法以解析問題陳述?

[英]How can I fix my DSL grammar to parse a problem statement?

我的任務是為已經使用了 20 多年的遺留 DSL 創建語法。 原來的解析器是用一堆正則表達式編寫的,所以有人告訴我。 語法通常是“如果這個變量是 n 那么將該變量設置為 m”的風格。 我的語法幾乎適用於所有情況,但有幾個地方由於(錯誤)使用了&& (邏輯與)運算符而出現問題。 我的 ...

如何將任何終端字符串與 Python Lark 解析器中的正則表達式匹配以及 /.+/> 的含義?

[英]How to match any terminal string with a regex in the Python Lark Parser and the meaning of /.+/>?

問題 TLDR:我想匹配任何東西,但/.+?/似乎不起作用,為什么? 我有以下超級簡單的語法和代碼: from lark import Lark, Tree parser: Lark = Lark(r""" rterm: "(___hole 0" anything ")" ...

解析下一行 Lark 時遇到問題

[英]Trouble parsing next line Lark

這是怎么回事。 所以,我很難讓解析器正確接受不止一行。 最終,如果我給解析器提供一個像“S={1,2,3};”這樣的字符串它工作正常,但我給它提供了多個字符串,比如 "S={1,2,3}; X={0};" 它沒有正確解析。 我收到的錯誤是UnexpectedCharacters: No te ...

用於生成序列的 DSL

[英]DSL for generating sequences

試圖創建 DSL 來生成序列……這是我到目前為止所做的: 這是 DSL 的樣子: 我在 expr... 中遇到 expr 問題? 這失敗了: ...

如何將 EOL(換行符)與 Lark 匹配?

[英]how does one match EOL (newline) with lark?

我正在使用帶有 python 的雲雀解析器。 我想使用 EOL 作為語法的一部分,因為它是面向行的。 當我嘗試將正則表達式放入匹配 EOL 時出現錯誤。 我看到一些這樣的例子: 但他們不適合我。 這是我的代碼: 這是我得到的錯誤: ...

解析沒有結束標記的元素/字段,非貪婪正則表達式的問題,自定義詞法分析器的使用

[英]Parsing elements/fields without end marker, problems with non-greedy regex, usage of a custom lexer

我希望能夠解析 Textile 標記語言( https://textile-lang.com/ )中的文件,以便將其轉換為 LaTeX。 我擁有的文件有點像 Textile 的擴展,因為它添加了字段和腳注。 下面給出了一個示例文件。 test.textile 要解析文件,我有以下解析器。 解析器. ...

對雲雀語法中標記優先級的混淆

[英]Confusion around priority of tokens in lark grammar

繼較早的問題之后,我對/.+/正則表達式行的優先級感到有些困惑; 我希望下面的測試能夠產生 相反,我得到: ...

用 Lark 語法識別多行部分

[英]recognizing multi-line sections with lark grammar

我正在嘗試編寫一個簡單的語法來解析具有多行部分的文本。我無法理解如何去做。 這是我到目前為止寫的語法 - 在這里將不勝感激。 ps:我意識到雲雀對於這個問題來說太過分了,但這只是我試圖解析的一個非常簡化的版本。 ...

匹配任意玩家名稱

[英]Matching arbitrary player names

我正在使用雲雀,但不知道如何匹配所有玩家的名字,因為他們可能對雲雀規則很復雜? 示例模式是"Seat {number}: {player} ({chips} in chips)" ,我也想要每一行的所有值。 ...

為什么 python 的 open() 函數會破壞我的 utf-8 文件?

[英]Why does python's open() function mangle my utf-8 files?

這是一個奇怪的問題,可能是由於 python 更新,因為它昨天運行良好,沒有任何變化。 開始了: 我有一個程序可以打開 utf-8 文件(使用重音字符等,而不僅僅是 ansi 字符)。 當我使用open(file, encoding="utf-8-sig").read()非ansi 字符會被破壞, ...

為什么我們需要指定標准的 Lark lexer 才能捕獲注釋終端?

[英]Why do we need to specify the standard Lark lexer to be able to catch comment terminals?

我正在開發一個基於 Lark 的項目,我需要能夠“捕捉”正在解析的代碼中的注釋。 但是,在沒有明確指定標准詞法分析器的情況下使用標准詞法分析器時,它不起作用。 我從Lark recipes 中獲取了第二個示例,並將其修改為使用默認解析器並解析類似 C++ 的單行注釋: 如果我沒有lexer= ...

使用 Lark 解析獲取下一個可能的標記

[英]Getting next possible tokens with lark parsing

我想知道是否有辦法通過 Lark 解析獲得給定字符串和給定語法的下一個可能的標記。 例如,如果我有語法。 我輸入字符串“my_variable =” 下一個可能的標記是"apple", "banana" or "orange" 。 是否有任何內置功能可以幫助我實現這一目標? ...

Lark:如何只挑選一些圖案

[英]Lark : how to pick only some patterns

我想從文本文件中只提取一些結構化模式。 例如,在下面的文本中: 我只想隔離'foo FUNC1;'。 我試圖將雲雀解析器與以下解析器一起使用 但是“任何東西”這個代號涵蓋了所有內容。 有沒有辦法讓它不貪心? 這樣令牌'foo'可以捕獲給定的模式? ...

如何從 lark-parser 樹中獲取變量名列表?

[英]How can I get a list of variable names from a lark-parser Tree?

我正在使用 python 3.8.5 和 lark-parser 0.11.2。 我有一個關於訪客的問題。 我有一個滿足我需求的語法,Lark 工作得很好。 我有一種情況,在某些情況下,我想評估返回的解析樹並對其進行掃描以獲取出現在樹中的變量名稱列表,該列表可能為空。 一個示例表達式是: 表達式的 ...

有沒有辦法讓終端匹配除特定關鍵字之外的每個名稱?

[英]Is there a way to make a Terminal match every NAME except for specific keywords?

我正在使用 lark 來解析一些文本,並且需要一種方法來匹配其中沒有某些關鍵字的NAME 。 我在終端中列出了關鍵字我只是不確定如何制作我需要使用它的終端。 這是我格式化關鍵字的方式 對此的所有幫助表示贊賞! ...

從 lark-parser 返回的 AST 中刪除正則表達式終端

[英]Removal of regex terminal from AST returned by lark-parser

我有興趣使用lark解析網站爬蟲的典型 output 。 這是基於我自己的 github 網站的一些示例 output 的示例: 我正在使用以下語法: 在結果樹上調用pretty會產生以下結果: 這看起來沒問題,但我不想在我的樹中包含終端bar 。 我怎樣才能做到這一點? 我瀏覽了文檔並嘗試使用下划 ...


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