ll

    -1熱度

    1回答

    我正在嘗試使用BNF和LL分析器在C中重新編寫shell。 否則,我需要知道 '|'的shell運算符的優先級是什麼, ,「< <」,「,」,「<」,「>>」,「>」,「&」,「;」 ? 有誰能提供給我嗎? 謝謝

    2熱度

    1回答

    我有一個語法 S ‐> S a | S b a | a | S b c S | S b c b | c S | c b 的這一部分,我需要使用它,以創建一些SD套,後來一解析表。 但是,在這之前,我應該將其轉換爲自上而下的可分析語法。 我的問題是你如何做到這一點?我知道你必須擺脫左遞歸,但我該如何去做呢? 我讀了維基百科的文章和大學的其他文章,但是我無法將自己的頭腦包裹在我應該怎麼做。 你能給

    4熱度

    1回答

    假設我們有以下CFG G: A -> A b A A -> a 這應該產生串 a,aba,ababa,abababa,等等。現在我想刪除左遞歸,以使其適用於預測性分析。龍書給出了以下規則來消除即時的左遞歸。 鑑於 A -> Aa | b 改寫爲 A -> b A' A' -> a A' | ε 如果我們簡單地從上面應用規則的語法,我們得到文法G': A -> a A'

    0熱度

    1回答

    我讀過LL解析器是一個自頂向下的解析器。所以從邏輯上講,我認爲我們從頂部到底部閱讀。 但是,從頂部到底部有很多讀取方法。 我在維基百科上找到了一個頁面,該頁面首先討論了深入講述樹型數據結構(二叉樹)中的過程。 否則,首先有三種深度:預購,按序,後序。 在我看來,我想我需要使用Post-Order,但如何確定? 如何知道哪種深度首先需要用於LL解析? 深入第一:https://en.wikipedi

    1熱度

    1回答

    可以說我有這個語法 E -> T+Ex | F T -> T*Fy | w F -> E | z | ε 現在我需要讓LL(1)。我一直在遵循這些步驟,但是我提出的解決方案似乎並不完全正確。 拳讓消除ε-製作 E -> T+Ex | F | T+x T -> T*Fy | w | T*y F -> E | z 現在,我們將消除週期 E -> T+Ex | T+x | z T ->

    0熱度

    1回答

    我正在使用TinyPG(它是LL1解析器生成器)解析lambda微積分。我試圖編寫一個規則來解析函數應用程序,如(a b)或(a b c)等等。 到目前爲止,我有這個規則(有點簡化): APPLICATION -> LPARENTHESES VARIABLE (SPACE+ VARIABLE)+ RPARENTHESES; 但是,這會導致解析,左後,右括號前有空格的一個術語:(a b)。我可以

    0熱度

    1回答

    我正在嘗試創建LL解析器。 但是我已經有了我的BNF語法,但是我必須在AST之前創建並且我有幾個問題。 AST和LL解析器有什麼區別? (因爲它們都是二叉樹) 如何從BNF語法創建AST? ( http://mariusbancila.ro/blog/2009/02/05/evaluating-expressions-part-3-building-the-ast/ 我對谷歌發現了這個教程,講解了

    0熱度

    1回答

    這對我來說真的很重要,所以請幫助我。 這是語法LL(1)? S -> LAB L -> d | ε A -> dA | Ba B -> Bb | ε 任何人都可以幫我用LL(1)解析表嗎? 我對嗎? first(S) = {a,b,d} first(L) = {d} first(A) = {b,d} first(B) = {b} follow(S) = {$} follow(

    2熱度

    1回答

    S→Y | 1X X→1X | 0 Y→Y 0 | 1X1 | 2X2 我不明白當有多個相同的符號時如何進行因式分解或替換。感謝您。

    -1熱度

    1回答

    我目前正在嘗試實現LL解析器,但我有一個問題。 需要我最多預測1個輸入令牌,以驗證用戶的輸入 在語法上是正確還是出於其他原因?