例如,如果我正在编写一个类似的parser.mly文件,并且我已经为表达式编写了这个文件
expr:
expr PLUS expr { Binop($1, Add, $3) }
| expr DIVIDE expr { Binop($1, Divide, $3) }
这和一样吗
expr:
expr DIVIDE expr { Binop($1, Divide, $3) }
| expr PLUS expr { Binop($1, Add, $3) }
就像我想我在问,在确定解析优先级时,垂直排列的顺序是否重要?
ocamlyacc和menhir都要求使用%left
、%right
和%nonassoc
声明显式声明优先级。生产顺序不相关。