ambiguous-grammar

    1熱度

    1回答

    在Rascal中,爲什麼當在生產的可選部分的位置有佈局時,這會導致模糊性?例如。 "{ }"模糊爲Start1,而它從下面的語法中正確地解析爲Start2,我希望它會完全相同。 layout Layout = " "?; start syntax Start1 = "{" "c"? "}"; start syntax Start2 = "{" "c" "}

    2熱度

    1回答

    在以下兩個表達式請看: baz(Foo<Bar, Bar>(0)) baz(Foo < Bar, Bar > (0)) 不知道是什麼,baz,Foo和Bar是(baz可以是一個類型或方法,Foo和Bar可以是類型或變量),有沒有辦法明確<是代表類型參數列表還是小於運算符。 // two different outcomes, difference shown with parentheses

    0熱度

    1回答

    我想這個語法轉化爲明確的語法: S -> if E then S | if E then S else S | a E -> b 我發現了一個解決方案,它比我的解決方案比較複雜,但我不知道如果我的解決辦法是正確的: S -> if E then T else S | if E then S | a T -> if E then T else T

    0熱度

    1回答

    我想爲創建LL語法分析器(詞法分析)的目的編寫命題邏輯的語法。 我嘗試以下語法: F = F and F F = F or F F = F => F F = F <=> F F = not F F = (F) D = a ,但我發現它是模糊的。我嘗試了以下措施以消除模糊性: F = F and A F = A A = F or B A = B B = F => C B =

    1熱度

    1回答

    歧義語法定義爲, 「歧義語法是一種上下文無關文法,其中存在一個可以具有多於一個最左派生或分析樹的字符串。 我的疑問是, 1)如果語法有不止一個最右邊的衍生品,這是否使語法歧義? 2)如果語法有多個Right Most Derivatives,那麼這是否意味着它會有多個Left Most Derivative? 並且擁有多個Right大部分衍生產品對LL(1),LR(0)解析器,LR(1)解析器等的

    -1熱度

    1回答

    這個練習有點問題。 鑑於這種語法: S -> aX | X X -> aXb | b | eps a)所示,它是模糊的一個字符串 B)說什麼語言捕捉語法 三)改變語法和構建後裔解析器 我的解決方案: a)我給出了曖昧與字符串「AB」: - S -> aX -> ab - S -> X -> aXb -> ab 二)語法抓住了這個語言: L = {a^n b^n: n >= 0} U {

    2熱度

    1回答

    我想改變menhir輸出的行爲: 我希望它查找所有語法替代品,如果它找到任何,並將它們放在一個列表中,並讓我回到這ambigouus解釋。它不應該減少衝突,只是存儲它們。 在menhir的源代碼中,在我看來,我必須查看「Engine.ml」。得到的語法確定的標記作爲語法自動機的檢查點的狀態出現在變體類型項「Accepted v」中。這個內容是通過一個函數「accept env prod」找到的,它

    2熱度

    2回答

    我想證明這個語法不明確,但我不知道我該怎麼做。我必須使用分析樹嗎? S -> if E then S | if E then S else S | begin S L | print E L -> end | ; S L E -> i

    0熱度

    1回答

    歧義語法: E - > UV | EBE | V | [E] V - > a | b U - > < | > B - >? | ! | @ 一些信息: 優先順序:? <! < @,一元運算符(<,>)最高 二元運算符?,!,@是右關聯的。 E-> UV | 我的嘗試: E - > UV | EBT | V | [E] T→E V→a | b U - > < | > B - >? | B1 B1 -

    0熱度

    1回答

    我試圖解決這個問題,但我真的不知道如何開始。我希望得到一些幫助。 位運算符用於語言示於下表中的語法旁邊。操作符和語法規則按照從高到低的順序排列。字符a,b和c表示語言中的終端。 語法表: 表明語法是使用表達含糊:一個>> B^C 重寫語法,以便它是明確的。