{%
#include<stdio.h>
#include<stdlib.h>
%}
%token ID NUM IF THEN LE GE EQ NE OR AND ELSE
%right '='
%left AND OR
%left '<' '>' LE GE EQ NE
%left '+''-'
%left '*''/'
%right UMINUS
%left '!'
%%
上面提到的代码是一个简单的IF ELSE
程序的yacc部分。
%right
和%left
是什么意思?
%left '+' '-'
在下方,所以%left '*' '/'
的优先级高于+ 和 -
。 - Ani