2
我正在嘗試爲某些算術表達式創建適當的語法。我的表達式的有效標記如下:算術表達式語法
'+', '-', '/', '*'
和'**'
冪。表達式還可以包含符號和函數。這些函數可以有多個參數,其中一些可能是可選的。從我從表達式解析中記得的很少,我必須想出一個不是左遞歸的語法,並且還保留了操作符關聯性。
因此,這裏是我想出了,搜索(雖然不知道關聯)的一點點後:
E = T Eopt
Eopt = '+' T Eopt | '-' T Eopt | ε
T = F Topt
Topt = '*' F Topt | '/' F Topt | ε
F = Number | '(' E ')'
可以在很多教科書中找到。上述語法需要做什麼修改,以便它可以修改權力標記('**')以及符號和函數?
請不要指向我flex/yacc等謝謝。
P應該適應符號和函數嗎? – John 2011-06-07 16:21:51
@John:是的。添加... | ID | ID'('')'| ID'('args')'給P;添加新規則ARGS =表達式| ARGS','表達; – 2011-06-07 17:14:07