lexer

    1熱度

    1回答

    我想從Adblock Plus規則轉換一組正則表達式到我可以從C++調用的優化函數。 我期待能夠使用像Ragel這樣的詞法分析生成器來做到這一點,但是當我嘗試使用一小套正則表達式時,內存使用率變得非常高> 30 GB,並且Ragel退出時沒有錯誤消息,也沒有生成輸出文件。 我包含玩具語法波紋管,我想了解我是否做了任何可以優化來解決問題的蠢事。 #include <string.h> namesp

    0熱度

    1回答

    您好我目前正在實施一個將XML文件分成標記的詞法分析器,我正在考慮將標記傳遞到分析器以創建更多有用的數據結構的方法 - 我目前的計劃是將它們存儲在一個數組列表中,並將其傳遞給解析器,每個令牌指向下一個的鏈接列表是否更適合?或者是能夠通過索引訪問令牌更容易爲解析器創建?或者這是一個糟糕的戰略? 另外,如果有人使用antlr,我知道它使用標記流將標記化輸入傳遞給解析器,解析器如果輸入有效則如何做出決定

    0熱度

    1回答

    我想匹配非空格字符,所以我定義的JFlex的柔性文件: %% Value = [\S]+ %% {Value} { return MyTokens.Value; } . { return MyTokens.BadCharacter; } 然後我嘗試生成的Java代碼來分析字符串「abc」,但我得到: BadCharacter(a) BadCharacter(b) BadC

    0熱度

    1回答

    我有以下2分產生的規則在EBNF: <CharLiteral> ::= ' " ' [ <Printable> ] ' " ' 和 <StringLiteral> ::= ' " ' { <Printable> } ' " ' 兩者有什麼區別? []意味着重複1次或多次,{}意味着0次或更多重複?

    0熱度

    1回答

    我想用MI寫一個GUI前端到gdb。目前我可以通過管道與gdb通信,但是GUI調試器應該能夠顯示源代碼並允許用戶使用他們的鼠標來檢查/修改數據。 問題是,爲了知道用戶指向什麼變量,我想我需要編寫一個解析器。但是,我不想實現整個詞法分析器和解析器。我如何在源代碼中獲取這些標識符的位置? [編輯] 總之,我希望用戶能夠通過將鼠標懸停在使用小鼠的變量來檢查一個變量的值,所以我來解析代碼知道哪裏每個變量出

    3熱度

    2回答

    我正在使用的DSL允許用戶定義「完整文本替換」變量。在解析代碼時,我們需要查找變量的值並從代碼中再次開始解析。 替換可以非常簡單(單個常量)或整個語句或代碼塊。 這是一個模擬語法,我希望能夠說明我的觀點。 grammar a; entry : (set_variable | print_line)* ; set_variable : 'SET' ID

    -3熱度

    1回答

    我寫一個詞法分析器和我使用一個數組來strore的關鍵字和保留字:我想使用 string keywords[20] = { "function", "if", "while", "halt", }; : bool isKeyword(string s) { return find(keywords.begin(), keywords.en

    0熱度

    3回答

    我被困我compilerproject的大學和有麻煩解析下面輸入 haupt() { while(i==2) { (5+2)*3 } } 這個語法: grammar Demo; @header { import java.util.List; import java.util.ArrayList; } program:

    1熱度

    1回答

    我是一個相當新的實現解析器,我想解析一個XML DTD文件來爲它生成一個上下文無關文法。我嘗試了pyparsing和yacc,但仍然可以得到任何結果。所以,如果有人能夠提供一些提示或示例代碼來編寫這樣的解析器,我將不勝感激。以下是DTD示例文件: <!DOCTYPE PcSpecs [ <!ELEMENT PCS (PC*)> <!ELEMENT PC (MODEL, PRICE, PROCE

    0熱度

    1回答

    顯然,我無法通過在島上的文法退出帖子識別錯誤的帖子推斷出我的問題的答案,所以我希望有人可以給我一個關於如何正確地做到這一點。 基本上,我試圖編寫一個包含proprocessor指令的語言。我將問題簡化爲一個非常簡單的例子。在我的例子lanuage,下面應該是有效的語法: @@some preprocessor text PRINT some regular text 當解析的代碼,我希望能夠