回 帖 发 新 帖 刷新版面

主题:布尔表达式文法求思路

为布尔表达式编写一文法,包含常量true,false,算符and or not以及'(', ')',
要求    (1).or优先级 < and优先级 < not优先级
        (2).该文法没有二义性。

   上面是如题的要求,我想没有二义性则应该让算符保持左结合或者右结合,可以设定:and or左结合,not右结合,优先级的处理以递归的层次来处理,层次越底则优先级越高,可是对自己写的(如下)一点把握也没有,也不知如何改善。
所以渴望大家的指点,说说该文法的思路。等待...

   G(N,T,P,S)     T = {or,and,(,),not};   S = BoolExp;
   P:
       BoolExp -> BoolExp Orop AndExp | AndExp 
       Orop -> or
       AndExp -> AndExp  Andop NotExp | NotExp
       Andop -> and
       NotExp -> Notop BoolExp | (BoolExp) | Boolconst
       Notop -> not
       Boolconst -> true | false

回复列表 (共2个回复)

沙发

思考中...

板凳

to fly999: 
   不是高手我!

to all:
   都来说说咯!

我来回复

您尚未登录,请登录后再回复。点此登录或注册