我需要在OCaml解析器中給予高優先級和左關聯性來運行應用程序。我有一大堆不同的令牌它如OCaml函數應用優先級和關聯性
%token LET REC EQ IN FUN ARROW
%token IF THEN ELSE
%token PLUS MINUS MUL DIV LT LE NE AND OR
%token LPAREN RPAREN
匹配,我給所有這些優先級和結合使用%left
,right
... 然而,由於exp
我使用,以配合ISN」噸令牌我不知道我會怎麼做,在這種情況下:
exp:
| exp exp { App($1,$2)}
我有所有我的exp
比賽,didnt讓一羣不同的EXP1 exp2s的等等,想知道它可能給exp
exp
最高優先級a nd左邊聯合它。
我張貼這在另一個論壇,我的課,並得到:
您可以將虛擬令牌的功能應用規則如下關聯:
rule: .... %precc DUMMY_FUN_APP
,然後用%左指定關聯性和虛擬標記。
但我不太確定這是什麼意思,所以如果有人能詳細說明這個問題或給我另一個很好的解決方案。
我結束了剛剛使用多個exprs版本,是的,我使用的是yacc –