Products/ylang

ENBF - Expression

swJman 2025. 10. 22. 21:22
LValue -> Id | PostfixExp '.' Id | PostfixExp '[' Exp ']'
AssignOp -> '=' | '+=' | '-=' | '*=' | '/=' | '%=' | '<<=' | '>>=' | '&=' | '|=' | '^='
Args -> Exp {',' Exp}

Exp -> AssignExp
AssignExp -> OrExp | LValue AssignOp AssignExp
OrExp -> AndExp | OrExp '||' AndExp
AndExp   -> BitOrExp | AndExp '&&' BitOrExp
BitOrExp -> BitXorExp | BitOrExp '|' BitXorExp
BitXorExp-> BitAndExp | BitXorExp '^' BitAndExp
BitAndExp-> EqualExp | BitAndExp '&' EqualExp
EqualExp -> RelExp | EqualExp ('==' | '!=') RelExp
RelExp   -> ShiftExp | RelExp ('<' | '<=' | '>' | '>=') ShiftExp
ShiftExp -> AddExp | ShiftExp ('<<' | '>>') AddExp
AddExp   -> MulExp | AddExp ('+' | '-') MulExp
MulExp   -> UnaryExp | MulExp ('*' | '/' | '%') PrefixExp
PrefixExp -> ('!' | '~' | '+' | '-') PrefixExp | PostfixExp
PostfixExp → PrimaryExp { '(' [Args] ')' | '[' Exp ']' | '.' Id }
PrimaryExp -> '('Exp')' | Id | Literal