[英]Make the Grammar LL
我已經浪費了兩倍的時間來轉換它,但我總是起床得到共同的前綴ID。
有誰可以向我解釋一下? 因為我正在努力為一個非常大的語法而且需要我的基礎知識清楚。
A,B,C,D是唯一的非終端設備。
A : ‘(‘ B ‘)’
| ID ASSIGN C
| C
C : C '+' D
| C '-' D
| D
D : ID
| ID '(' actuals ')'
| ID '(' ')'
| INT_LIT
| ‘(‘ C ‘)’
B : B ';' A | A
在LL中,生產不能有從同一終端開始的多個選項,因此如果願意,可以將這些公共部分拉入共享頭。 所以
D : ID
| ID '(' actuals ')'
| ID '(' ')'
| INT_LIT
| ‘(‘ C ‘)’
變成了一些東西
D : D_things_that_start_with_ID
| D_things_that_do_not_start_with_ID
哪里
D_things_that_start_with_ID :
ID D_things_that_follow_ID
D_things_that_follow_ID :
epsilon
| '(' actuals ')'
| '(' ')'
D_things_that_do_not_start_with_ID :
INT_LIT
| ‘(‘ C ‘)’
等等其他常見的引導符號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.