[英]Removing ambiguity from grammar
語法不明確:
E->紫外線| EBE | V | [E]
V-> a | b
U-> <| >
B->嗎? | ! | @
一些信息:
優先順序: ? <! <@,一元運算符(<,>)最高
二進制運算符?,!,@是右關聯的。
我的嘗試:
E->紫外線| EBT | V | [E]
T-> E
V-> a | b
U-> <| >
B->嗎? | B1
B1->! | B2
B2-> @
我不確定在轉換過程中是否遺漏了一些極端情況。 如果你們能指出一些錯誤並提供一些提示,我們將不勝感激。
E -> UV | EBE | V | [E] V -> a | b U -> < | > B -> ? | ! | @
優先順序: ? <! <@,一元運算符(<,>)最高。
二進制運算符?,!,@是右關聯的。
我對您的優先順序感到困惑,因為這意味着!
的優先級高於>
。
因此,假設此優先順序為:
a,b,<,>,?,!,@
我要指出的是,明確的語法主要是使用中間字符,通常要比使用歧義的語法更多,以確保達到到達特定終端符號的標准步驟,即每個字符串將具有相同的解析樹。 最高優先級意味着它是最接近最終非終端到終端符號轉換的轉換。
我的答案是:
E -> V?E | V!E | V@E | [E] //Right associativity = right recursive V-> <V | >V | E | T | a | b T-> a | b | E
但是,在不知道您的目標字符串和接受/不接受的情況下很難知道。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.