小编Kyl*_*ick的帖子

快乐的上下文依赖运算符优先级

我在这里有两个Happy代码片段,一个使用普通优先级规则,另一个使用依赖于上下文的优先级规则(这两个都在这里描述).

正常:

%left '+'
%left '*'
%%

Exp :: { Exp }
    : Exp '+' Exp { Plus $1 $3 }
    | Exp '*' Exp { Times $1 $3 }
    | var         { Var $1 }
Run Code Online (Sandbox Code Playgroud)

上下文相关的:

%left PLUS
%left TIMES
%%

Exp :: { Exp }
    : Exp '+' Exp %prec PLUS  { Plus $1 $3 }
    | Exp '*' Exp %prec TIMES { Times $1 $3 }
    | var                     { Var $1 }
Run Code Online (Sandbox Code Playgroud)

鉴于输入:

a * …
Run Code Online (Sandbox Code Playgroud)

parsing haskell happy

6
推荐指数
1
解决办法
293
查看次数

标签 统计

happy ×1

haskell ×1

parsing ×1