antlr

    5熱度

    1回答

    我想在兩種語言之間編寫翻譯器,並且在互聯網上閱讀了一些內容後,我決定和ANTLR一起去。我必須從頭學習它,但除了消除左遞歸的一些麻煩之外,一切都很順利。 但是,今天有人告訴我要檢查一下基於Haskell的解析器生成器Happy。我沒有Haskell的知識,所以我可以使用一些建議,如果Happy比ANTLR好,並且值得學習。 具體而言,我所關心的是我的翻譯人員需要支持宏觀替代,我不知道ANTLR該怎

    6熱度

    2回答

    我是新來的解析器生成器,我想知道如何像JSP/ASP/PHP的嵌入式語言的ANTLR語法看起來像,但不幸的是ANTLR網站不提供任何這樣的語法文件。 更確切地說,我不知道如何定義一個匹配所有東西的AnyText標記(包括代碼塊外沒有任何含義的關鍵字),並且仍然能夠在塊內正確識別它們。 例如,下面的剪切應該被標記爲類似:AnyText,BlockBegin,Keyword,BlockEnd,AnyT

    1熱度

    1回答

    我需要解析一個關鍵字和運算符的布爾搜索字符串到SQL查詢中,以便從C#代碼執行。我認爲像ANTLR這樣的東西是我需要完成這項任務的,但我不知道如何去做。 有沒有什麼好的教程如何做到這一點?或者,也許我需要一個不同的工具? 下面是我的意思的一個例子。我需要的唯一操作員是AND和OR。我也想能夠使用括號。 輸入表達式:(藍色和綠色)OR黃色 輸出: SELECT * FROM表 WHERE(CONTA

    0熱度

    1回答

    比方說,我有一個像下面的兩個規則: printable_characters : '\u0020' .. '\uFFEF' ; newline_characters : '\n' | '\r' ; 現在,讓我們說,我想創建一個名爲printable_no_newlines新規則。我想減去newline_characters從printable_characters要做到這一點,像這樣: p

    1熱度

    5回答

    我正在開發一個逆向工程學校項目,該項目需要翻譯編譯C#項目的操作AST。 我在「將C#代碼翻譯成AST?」中看到過這篇文章。在這個網站上,但它看起來不像我正在尋找的那個。根據我所知道的,目前C#沒有提供像Java一樣的庫類:http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.isv/reference/api/or

    0熱度

    1回答

    我使用ANTLRWorks,並使用@header行動已指定我的Java包: @header {包com.xxx.xxx.xxx.compiler} 但是,當我生成java代碼時,它會生成到根src目錄而不是src/com/xxx/xxx/xxx/compiler。因此,它不會乾淨地編譯。 如何指定正確的目錄來生成代碼?

    1熱度

    1回答

    我想解析一個像a IN [3 .. 5[這樣的表達式,其中尖括號的方向決定間隔是包含還是獨佔。我想這被重寫到AST等 NODE-TYPE | +------------+-----------+ | | | variable lower-bound upper-bound 其中節點型是BTW_INCLUSIVE,BTW_EXCL_LOWER,

    9熱度

    3回答

    //創建一個從傳遞給我們的輸入流讀取的掃描器 CSLexer lexer = new CSLexer(new ANTLRFileStream(f)); tokens.TokenSource = lexer; // Create a parser that reads from the scanner CSParser parser = new CSParser(tokens); // sta

    1熱度

    1回答

    我們一直在使用正則表達式來滿足語法要求。但是,當模式開始遞歸時,需要支持大約20多種模式,並且維護RegEx變得非常困難。我們嘗試遷移到ANTLR,並審視了我們需要的以下兩個關鍵點。 性能 性能似乎是某些表達式遷移時的擔憂。對於某些表達式,使用已編譯程序集的RegEx大約快2倍或3倍。 可管理性 ANTLR語法似乎很容易管理和開發。適應新的表達式/結構比RegEx簡單得多。 有沒有人有類似的遷移經

    1熱度

    3回答

    我正在嘗試使用ILMerge將一些傳遞引用的程序集內部化爲程序集引用,以消除與我的項目中的其他傳遞依賴項的衝突。 特別,我引用Antlr3.StringTemplate(以下簡稱AS,可在這裏:http://www.stringtemplate.org/download.html)。它引用Antlr3.Runtime.Debug(ARD)和Antlr3.Runtime(AR)。 ARD本身也引用A