ocaml 解析器中的优先级重要吗?

Does precedence matter in ocaml parser?

例如,如果我正在编写一个 parser.mly 文件,并且我为表达式编写了这个文件

expr:
    expr PLUS   expr { Binop(, Add,   )   }
  | expr DIVIDE expr { Binop(, Divide,   )   }

这会和

一样吗
expr:
    expr DIVIDE   expr { Binop(, Divide,   )   }
  | expr PLUS expr { Binop(, Add,   )   }

就像我想我问的是垂直列出的顺序在确定解析优先级时是否重要?

ocamlyacc 和 menhir 都要求您使用 %left%right%nonassoc 声明明确声明优先级。制作顺序不相关。