grammar

    0熱度

    1回答

    我需要從這個建立解析嘗試/分析儀: x (x | "x+y")* x+ y 現在我有語法: S -> x A x B y A -> x A A -> x+y A A -> epsilon B -> x B B -> epsilon 和代碼如下所示: S() { if (token == 'x') { A(); if (token == 'x')

    3熱度

    1回答

    我想知道編程語言開發人員如何驗證並證明他們的語法是正確的。假設我爲一個新的語言創建了一個新的語法。我可以通過提供不同類型的測試程序來使用單元測試工具來測試我的語法。但是,我絕不會100%確保我的語法是正確的。語言開發人員如何確保他們的語法在現實世界中是正確的? 比方說,我用鉛筆和紙創建了一種新語言的語法。但是,我犯了一個錯誤,我的語法接受以+ + 2 + 2 +結尾的表達式。如果我沒有發現它的錯誤

    12熱度

    1回答

    對不起,我確信這個問題對於那些習慣於用解析器和語法進行遊戲的人來說似乎幾乎是愚蠢的,但這些對我而言是外國話題,而這正是我試圖輕鬆進入需要它們的實際案例。 我還想寫爲下面的「語言」,它包含了一個「特殊結構」尋找這樣的解析器: \command[ options ]{ contents } 的內容可以是任何東西,包括嵌套的命令,並且可以包含溢出的括號或反斜槓\{ \} \\。我意識到「任何事情」都

    0熱度

    1回答

    我懂得語法轉換爲DFA,但我無法將這個語法 S → 01A | B A → ε | 0A | 1A B → 01 | 1B 我如何轉換這種語法規則(S → 01A | B)到DFA規則?

    0熱度

    1回答

    我目前正在嘗試實現以文本電子表格作爲輸入(每個「單元」由選項卡分隔)的Antlr v4語法。語法支持引用其他單元格,包括在算術表達式中使用的引用。輸出與輸入相同,但所有表達式都已完成,每個引用都被引用的單元格的整數值替換。 例輸入: 1 9 5 4 3 A3 =A2+C3 6 輸出: 1 9 5 4 3 5 15 我不確定如何實現我的Java應用程序

    1熱度

    2回答

    所以,我正在爲我正在製作的語言做一個類似於Python的解釋器。現在我明白這不是一個小任務,我不期望它工作得很好或者做得很多,但我希望它具有一些基本功能(變量,函數,循環,if語句等)。 因此,目前我處於解釋器獲取文件並將其分割爲令牌列表的階段,現在我準備將這些令牌轉換爲AST。我打算用遞歸下降解析器來做到這一點,我相信我明白,但這是問題所在。比方說,我有以下輸入 1 + 2 * 3 這將輸出

    0熱度

    1回答

    我對語法比較陌生,想知道是否有人可以幫助我確定使用解析樹,下面的語法是如何模糊的?我知道它需要有兩個不同的字符串可以創建。 S -> (S)|SS|() 我可以高清它轉換爲Chomsky範式和greibach,但不確定性是令人費解的我這些。

    0熱度

    1回答

    我正在將Antlr語法文件升級到最新的Antlr4。 我已經轉換了大部分的文件,但堅持語法差異,我無法弄清楚。 3這樣的區別是: equationset: equation* EOF!; equation: variable ASSIGN expression -> ^(EQUATION variable expression) ; orExpression : andExpression

    1熱度

    1回答

    我想在我的網絡應用程序中使用基於瀏覽器的語音識別,並且我想用一個拼寫單詞(我的應用程序的名稱)給出一個「喚醒」命令方式與亞馬遜回聲一樣醒來,當你說「Alexa的」 我希望我可以把它作爲一個語法,但是這似乎並沒有工作(或我發音錯了!) 我的設置是這樣的(我使用鉻) console.log("Start Of Speech") var recognition = new webkitSpeechRe

    1熱度

    1回答

    我有以下javacc語法。 規則UnaryExpr創建實施java.util.function.Predicate<> options { static=false; DEBUG_PARSER=false; IGNORE_CASE=true; JDK_VERSION="1.8"; } (...) private Predicate<SAMRecord> UnaryExpr():