grammar

    1熱度

    3回答

    我目前正在嘗試爲編程語言編寫一個(非常)小的解釋器/編譯器。我已經爲該語言設置了語法,現在我需要寫下該語言的語法。我打算使用LL(1)解析器,因爲經過一些研究後,它似乎是最容易使用的。 我是這個領域的新手,但是從我收集的內容來看,強烈推薦使用BNF或EBNF來形式化語法。但是,似乎並非所有語法都適合使用LL(1)解析器來實現。因此,我想知道以LL(1)形式編寫文法的正確(或推薦)方法是什麼。 謝謝

    1熱度

    1回答

    是否所有的LR語法都可以轉換爲S語法的語法,因爲它們都是自下而上的語法? UPDATE 這是真的,從LR文法轉換一切歸於文法S-歸因語法?

    2熱度

    2回答

    我正在尋找一些方法來直接在VS2010中編輯antlr語法文件,並使用語法高亮顯示。 我已經使用antlrworks很多,但它有缺點,我必須單獨啓動antlrworks,然後瀏覽到我想要編輯的文件,執行更改並保存。對於小的修復,我不需要Antlrworks中的所有工具,但我仍然希望語法高亮。 但是我一直沒有能夠讓VS2010用正確的文件打開antlrworks,我發現沒有其他方法可以直接在VS20

    2熱度

    2回答

    我正在爲將使用Microsoft的Speech SDK進行語音識別的軟件構建GRXML語法。 標籤必須遵循標籤格式「properties-ms/1.0」,關於這個標籤我沒有找到任何特定的文檔(除了MSDN沒有回答我的問題)。 我主要關心的是對數字進行標記以便將諸如「一二三四」的識別文本轉換爲數字「1234」。這是想法: <rule id="CODE"> <item repeat="4">

    1熱度

    1回答

    我試圖爲個人項目創建一個布爾表達式語言/語法。用戶將能夠以類似Java的語法編寫一個字符串,併爲變量提供條件,這些變量將在稍後變量初始化時進行評估。 雨 例如,用戶可以輸入字符串 @FOO+7 > 4*([email protected]); 以後,當變量FOO被初始化和等於6,和BAR等於1,則表達式的計算結果爲13> 24,因此返回false 。 我使用ANTLRworks生成語法,雖然它

    2熱度

    1回答

    嘿! 我正在尋找解析一個變量函數表達式的ANTLR語法。它應該支持+, - ,/,^,特殊函數(如cos,sin)和常量(pi,e)和括號。我試圖自己寫,但我得到左遞歸警告。有沒有人有我可以入門的例子? 我想寫一些像 x+sin(5x + pi^3)/(15e cos(x)) 例如。 ANTLR語法是首選,但其他(E)BNF的例子將不勝感激。 最終我想用它與AST輸出。 THANX

    0熱度

    1回答

    作爲一個項目分配,我需要解析Java中的plain-C語法來生成AST輸出。作爲一啓動,我使用,我的語法文件中發現,在 http://java.net/projects/javacc/sources/svn/ 文件c.jj但我發現它只有語法和詞彙行動和解析C源沒有真正的語義。是否還有其他一些合併typedef,變量,構造函數,包含文件的源代碼?

    2熱度

    3回答

    我可以編寫一個用於在ANTLR中傳遞順序過程(CSP)的解析器嗎?我覺得它使用左遞歸就像在聲明中 VMS = (coin → (choc → VMS)) 完整的語言規範,可以在CSPM : A Reference Manua 找到,所以它不是一個LL語法。我對嗎?

    2熱度

    1回答

    我一直在關注這個人的教程(http://vimeo.com/groups/29150/videos/8137747),他們很棒;唯一的問題是,當我在我的語法文件中使用「$」符號時,就像他一樣,出現錯誤,我的語法不能編譯。例如我不能使用($channel = HIDDEN)。 我按照他的指導一步一步按照他的指示。有沒有人有同樣的問題?

    4熱度

    2回答

    我相信我很難理解輪班如何減少衝突的工作。我知道野牛可以向前看,所以我不明白我爲什麼會遇到這個問題。 在我的語言中,列表定義爲[]之間的一組數字或列表。 例如[] [1] [1 2] [1 [2] 3]都是有效的列表。 下面是導致問題的 value: num | stringValue | list ; list: LEFTBRACE RIGHTBRACE