lexer

    0熱度

    2回答

    我聽說有一些使用C++編寫的類/庫可用於解析C/C++代碼。我需要的是從源文件中讀取所有函數並對它們進行比較,以瞭解它們之間的區別。我真的不知道我該怎麼做到這一點。我可以使用的只是頭文件/庫/類和沒有軟件解決方案。

    8熱度

    1回答

    With Marked我可以輕鬆地在執行期間覆蓋/添加/更改詞法分析規則,而且它非常棒! 例如,我可以強制使用哈希空間之間簽署的文本,使頭是這樣的: var lexer = new marked.Lexer(options); console.log(lexer); lexer.rules.heading = /^\s*(#{1,6})\s+([^\n]+?) *#* *(?:\n+|$)/

    2熱度

    1回答

    我正在學習如何使用「more」詞法分析器命令。我在ANTLR書所示的詞法語法,281頁輸入: lexer grammar Lexer_To_Test_More_Command ; LQUOTE : '"' -> more, mode(STR) ; WS : [ \t\r\n]+ -> skip ; mode STR ; STRING : '"' -> mode(DEFAULT_M

    0熱度

    2回答

    我知道詞法規則是匹配單詞而不是句子。但有可能做到這一點。因爲我的輸入有類似下面的格式 ADD FILE first-doc VERSION 1 TYPE sequential FIXED 23 BLOCK 23 MODE ebdic LABEL standard KEY REC_NR#09545 RULE DOMANI _ scorebestand MKC 和花葯輸入可以有一個像 ADD F

    1熱度

    1回答

    我是ANTLR的新手,我試圖編寫一個簡單的解析器。我用了一個有效的規則,但是當我運行TestRig(GRUN)與「無功」的規則-gui參數,並進入了這個: var myVar = 13 調試tolds我說:行1:0不匹配輸入「變種myVar的= 13' 期待‘變種’ 我不能讓什麼是錯的吧.. 下面的代碼: grammar Leaf; WS: (' '|'\t'|'\n'|'\r')+ -

    0熱度

    1回答

    我想使用幾個詞法分析模式,它們共享相當一部分規則。 「共享」規則也應該產生相同的標記。 到目前爲止,我必須這樣做,這是這樣的: Id : [a-z]+; // 50 other shared rules... mode otherMode; Id_otherMode : [a-z]+ {setType(Id);}; 有沒有更好的方式來做到這一點?

    0熱度

    1回答

    我正在學習韋克斯利韋默編程語言課程 lexer。 的音符在這裏 https://www.udacity.com/wiki/cs262/unit-2#quiz-rule-order {視頻,如果你願意看,最後40秒。} https://www.udacity.com/course/viewer#!/c-cs262/l-48713810/e-48652568/m-48676965 測驗: 當兩個標記定

    1熱度

    1回答

    所以我想打印的過程中詞法分析階段要訪問的語意,這裏的方法是這樣的代碼: public void parse(String inputFile) { InputStream is = System.in; if (inputFile != null) try { is = new FileInputStream(inputFile); AN

    1熱度

    1回答

    從書籍「最終ANTLR 4參考」開始工作,我試圖在Eclipse中運行ArrayInit.g4示例。我已經設法生成必要的java文件和其他文件,但是當我運行該示例並將值輸入到控制檯並按Enter時,沒有任何反應(第29和30頁)。 ArrayInit.g4 /** Grammars always start with a grammar header. This grammar is called

    1熱度

    2回答

    我正在用Java語法突出顯示編寫我自己的文本編輯器,目前它每次用戶輸入單個字符時都會簡單地解析並突出顯示當前行。雖然大概不是最有效的方式,但它足夠好並且不會引起任何明顯的性能問題。在僞Java中,這將是我的代碼的核心概念: public void textUpdated(String wholeText, int updateOffset, int updateLength) { int