簡體   English   中英

算術表達式語法

[英]Arithmetic expression grammar

我正在嘗試為一些算術表達式創建一個合適的語法。 我的表達式的有效標記如下:

'+', '-', '/', '*''**'表示冪。 表達式還可以包含符號和函數。 這些函數可以采用多個 arguments,其中一些可能是可選的。 從我對表達式解析的記憶中,我必須想出一個不是左遞歸並且還保留運算符關聯性的語法。

所以這是我想出的,經過一番搜索(雖然不確定關聯性):

E = T Eopt
Eopt = '+' T Eopt | '-' T Eopt | ε 
T = F Topt
Topt = '*' F Topt | '/' F Topt | ε
F = Number | '(' E ')' 

這可以在許多教科書中找到。 上述語法需要進行哪些更改,以便它可以容納權力標記('**')以及符號和函數?

請不要將我指向 flex/yacc 等。謝謝。

您快到了。 變化從 F 開始:

E = T Eopt
Eopt = '+' T Eopt | '-' T Eopt | ε 
T = F Topt
Topt = '*' F Topt | '/' F Topt | ε
F = P Fopt
Fopt = '**' P Fopt | ε
P = Number | '(' E ')'

這假設您的標記器區分***

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM