lr

    0熱度

    1回答

    我似乎無法找到等價的LR語法: S→aSbS | bSaS | ε 其中我認爲識別字符串與'b'相同的數字比'b'。 這將是一個解決方法?是否有可能找到和LR語法呢? 在此先感謝! 編輯: 我發現什麼,我認爲是等效的語法,但我一直沒能證明這一點。 我想我需要證明原語法生成上面的語言,然後證明語言是爲以下等價語法生成的。但我不知道該怎麼做。我應該怎麼做? S→aBS | bAS | ε B→b |

    0熱度

    1回答

    我對這本教科書很難接受,而且我的教授認爲回答問題對已經知道進入課堂的材料的學生是不公平的(從這個人獲得的反饋是一個數據挖掘過程本身)。無論如何,我的問題圍繞着CFG(正式語言/函數式編程類)的派生。 Given a context free grammar that looks like: S-> a|B B-> b|C C-> c 找到最左邊的推導。是簡單的嗎?因爲S-> a是S->

    0熱度

    2回答

    我想寫入BNF形式的LR(1)的語法用於通過這兩個規則從The Complete Syntax of Lua描述的語言: parlist ::= namelist [`,´ `...´] | `...´ namelist ::= Name {`,´ Name} 我試圖下面的語法,但根據我使用的工具,兩者都是 「不LR(1)由於SHIFT-減少衝突」: parlist ::= namelist

    0熱度

    1回答

    The Grammar is: S→(L) ID L→S | L,S 我試圖計算CLOSURE和GOTO對給定的語法使用LR解析。 我們的老師解決了這個,但在第一個步驟,他沒有使用第二個生產L-->S|L,S,我不知道爲什麼。 所以我解決了同樣的例子,但在第一步uisng完整的語法。 由此,原單隻有9步驟,但我的是10步驟。 我的問題是,我的解決方案是否正確?我想我做了LR(1)。 1)解決方法講

    0熱度

    1回答

    我打算用野牛解析一些腳本語言移減少衝突,在這種語言,我可以寫類似下面的代碼: a = input() b = a + 1 function myfunc a = input() b = a + 1 end function 我發現,該塊 a = input() b = a + 1 其中進出函數定義的同時出現可以通過相同的規則stmts被減小,所以我寫如下代碼 %

    1熱度

    1回答

    我有以下語法: expr : factor op ; op : '+' factor op | // Blank rule for left-recursion elimination ; factor : NUM | '(' expr ')' ; NUM : ('0'..'9')+ ; 我公司供應2 + 3,使用expr的

    1熱度

    1回答

    考慮下面的語法 S -> aPbSQ | a Q -> tS | ε P -> r 雖然構建DFA,我們可以看到有一個應當包含項目 Q -> .tS Q -> . (epsilon as a blank string) 因爲t爲後續的狀態(Q)似乎有一個轉變 - 減少衝突。 我們可以總結語法的本質不是SLR(1)嗎?

    3熱度

    1回答

    我試圖使用檸檬分析器生成器生成分析器表,但運行lemon grammar.y時生成的.out文件僅包含自動機的狀態。 有沒有辦法讓非終端的goto表,不僅是自動機的狀態? 或者這隻能通過讀取生成的代碼來完成? 是否有其他工具可以生成動作和goto表? PS: 的.out文件(由檸檬產生)爲一個簡單的語法看起來像這樣: State 0: start ::= * e e :

    0熱度

    1回答

    當你有像這樣的語法: B: 'a' A 'a' | 'b' A 'b' A: 'a' 'a' | 'a' 的右%「A」的聲明引起aa.a不是因爲被接受在'。', 和%left'a'之間發生移位而不是減少aa.aa和ba.ab,因爲解析總是在點處減少。 這是不是很清楚,我如何找出根本的關聯聲明具有在令牌(「A」)沒有被直接地用作運營商這樣的情況下什麼樣的影響。

    0熱度

    1回答

    我已經編寫了一個LR(1)解析器,它可以成功地將我的語法語言中的字符串解析爲具體語法樹,但我現在試圖構造一個抽象語法樹。 我使用的是繼承的設計我的AST節點: struct ASTNode { virtual Type typeCheck() = 0; } struct IDNode : public ASTNode { string name; ... }