当前位置: 技术问答>linux和unix
Yacc的问题?
来源: 互联网 发布时间:2016-03-16
本文导语: 有以下几个问题不明白: 1.------------- Yacc中有定义优先级:如 %left '+' '-' %left '*' '/' 代表的是 *,/运算优先级高于+,-运算! 可以是我不明白的是: %left 代表什么意思? 什么时候用%left,什么时候用%right 为什么此处就能说...
有以下几个问题不明白:
1.-------------
Yacc中有定义优先级:如
%left '+' '-'
%left '*' '/'
代表的是 *,/运算优先级高于+,-运算!
可以是我不明白的是:
%left 代表什么意思?
什么时候用%left,什么时候用%right
为什么此处就能说明*,/运算优先级高于+,-运算了呢?
2.-------------
%nonassoc UMINUS代表什么意思呢?
expression %prec UMINUS这又代表什么意思呢?是不是代表expression 的优先级和UMINUS相等呀?那为什么我这样用的时候YACC是提示这里错误?为什么?
以上几个问题不明白,希望知道的朋友帮忙解释下!谢谢!!!!!
1.-------------
Yacc中有定义优先级:如
%left '+' '-'
%left '*' '/'
代表的是 *,/运算优先级高于+,-运算!
可以是我不明白的是:
%left 代表什么意思?
什么时候用%left,什么时候用%right
为什么此处就能说明*,/运算优先级高于+,-运算了呢?
2.-------------
%nonassoc UMINUS代表什么意思呢?
expression %prec UMINUS这又代表什么意思呢?是不是代表expression 的优先级和UMINUS相等呀?那为什么我这样用的时候YACC是提示这里错误?为什么?
以上几个问题不明白,希望知道的朋友帮忙解释下!谢谢!!!!!
|
1
left表示运算符是左结合的
right表示运算符是右结合的
定义得越晚 优先级就越高
left表示运算符是左结合的
right表示运算符是右结合的
定义得越晚 优先级就越高
|
http://blog.csdn.net/towerjt/archive/2008/04/03/2246365.aspx
这里面有你要的答案
这里面有你要的答案
|
|
好像没那么简单,呵呵.