你好,我有很多错误"决定可以匹配输入这样的"和我的 结合语法,我尝试解决这些问题,但我没有成功。能够 谁来帮帮我?谢谢!
options{ k=1; language= Java; output= AST;
}
prog : exp
;
exp : lval
| 'NIL'
| INT
| 'STRING'
| '(' exp_seq ')'
| ID ST
| lval ':=' exp
|'IF' exp 'THEN' exp EL
| 'WHILE' exp 'DO' exp
| 'FOR' ID ':=' exp 'TO' exp 'DO' exp
| 'BREAK'
| 'LET' decs 'IN' exp_seq 'END'
|compor
;
ST : '(' args ')'
| '{' rcd '}'
| '[' exp ']' 'OF' exp
;
EL : 'ELSE' exp
|
;
/*
exp_t : expp exp_t
|
;
OP : '*'
| '/'
| '-'
| '+'
| '>'
| '<'
| '>='
| '<='
| '&'
| '|'
| '='
| '<>'
;
*/
exp_seq :
| exp exp_seq_t
;
exp_seq_t :
| ';' exp exp_seq_t
;
decs :
| tydec decs
| vardec decs
| fundec decs
;
tydec : 'TYPE' ID '=' ty
;
ty : ID
| '{' tyfs '}'
| 'ARRAY' 'OF' ID
;
tyfs :
| ID ':' ID tyfs_t
;
tyfs_t :
| ',' ID ':' ID tyfs_t
;
vardec : 'var' ID var_t
;
var_t : ':=' exp
| ':' ID ':=' exp
;
fundec : 'FUNCTION' ID '(' tyfs ')' Func_t
;
Func_t : '=' exp
| ',' ID '='exp
;
args : exp args_t
|
;
args_t :
| ','exp args_t
;
rcd : ID '='exp rcd_t
|
;
rcd_t :
| ',' 'ID' '='exp rcd_t
;
lval : ID
| T lval_t
;
T : '.' ID
| '[' exp ']'
;
lval_t : T lval_t
|
;
INT : '0'..'9'+ ;
ID : ( 'a'..'z'| 'A' .. 'Z')+ ;
/* STRING : ( 'a'..'z'| 'A' .. 'Z')+ ; */
/* DIV :'/' ;
MUL:'*' ;
MINUS : '-' ;
PLUS : '+' ;
OR : ('|');
AND: ('&');
LE : '<=' ;
GE : '>=' ;
GT :'>' ;
LT :'<' ;
EQ: '=';
OPINCONNU :'<>'; */
atom : '('exp')'
| INT
| ID var_t
;
compor: compend or_bis?
;
or_bis :'|' compend
;
compend : comp compend_bis?
;
compend_bis: '&' comp
;
comp : add comp_bis?
;
comp_bis :'<=' add
|'>=' add
|'>' add
|'<' add
|'=' add
|'<>' add
;
add : mult add_bis*
;
add_bis :'+'mult
|'-'mult
;
mult : neg mult_bis*
;
mult_bis : '*' neg
| '/' neg
;
neg : ('-')? atom
;
/*
MUL DIV
PLUS MINUS
OR LE GE LT GT OPINCONNU EQ AND */
NOT_WS: ~('\...\ ' |' '| '\t' | '\n' | '\r'); ##
错误:[决定可以匹配输入,例如&#34; T&#34;使用多个 备选方案:1,7结果,替代方案7被禁用 输入决策可以匹配输入,例如&#34;&#39;(&#39;&#34;使用多个 替代方案:5,13因此,替代方案13被禁用 输入决策可以匹配输入,例如&#34; ID&#34;使用多个 替代方案:1,6,7,13因此,替代方案6,7,13 禁用该输入[01:03:59]警告(200):tiger.g:15:9: 决策可以匹配输入,例如&#34; INT&#34;使用多种选择: 3,13因此,对于该输入禁用了替代方案13 [01:03:59]错误(201):tiger.g:15:9:以下替代方案可以 永远不会匹配:6,7
决策可以匹配输入,例如&#34;&#39; |&#39;&#34;使用多种选择: 1,2因此,对于该输入禁用了备选方案2 决策可以匹配输入,例如&#34;&#39;&amp;&#39;&#34;使用多种选择: 1,2因此,对于该输入禁用了备选方案2 决策可以匹配输入,例如&#34;&#39;&lt; =&#39;&#34;使用多种选择: 1,2因此,对于该输入禁用了备选方案2 决策可以匹配输入,例如&#34;&#39;&lt;&gt;&#39;&#34;使用多种选择: 1,2因此,对于该输入禁用了备选方案2 决策可以匹配输入,例如&#34;&#39;&lt;&#39;&#34;使用多种选择: 1,2因此,对于该输入禁用了备选方案2 决策可以匹配输入,例如&#34;&#39; =&#39;&#34;使用多种选择: 1,2因此,对于该输入禁用了备选方案2 决策可以匹配输入,例如&#34;&#39;&gt; =&#39;&#34;使用多种选择: 1,2因此,对于该输入禁用了备选方案2 决策可以匹配输入,例如&#34;&#39;&gt;&#39;&#34;使用多种选择: 1,2因此,对于该输入禁用了备选方案2 决策可以匹配输入,例如&#34;&#39; +&#39;&#34;使用多种选择: 1,2因此,对于该输入禁用了备选方案2 决策可以匹配输入,例如&#34;&#39; - &#39;&#34;使用多种选择: 1,2因此,对于该输入禁用了备选方案2 [01:03:59]警告(200):tiger.g:225:13:决定可以匹配我
输入&#34;&#39; *&#39;&#34;使用多种选择:1,2 结果,替代(s)2被禁用该输入 决策可以匹配输入,例如&#34;&#39; /&#39;&#34;使用多种选择:1,2 结果,替代(s)2被禁用该输入 [决定可以匹配输入,例如&#34; T&#34;使用多种替代方案:1,7 结果,对该输入禁用了替代方案7 决策可以匹配输入,例如&#34;&#39;(&#39;&#34;使用多种替代方案:5,13 结果,对于该输入禁用了替代方案13 决策可以匹配输入,例如&#34; ID&#34;使用多种选择:1,6,7,13 结果,对于该输入禁用了替代方案6,7,13 决策可以匹配输入,例如&#34; INT&#34;使用多种选择:3,13 结果,对于该输入禁用了替代方案13以下替代方案永远不能匹配:6,7
决策可以匹配输入,例如&#34;&#39; |&#39;&#34;使用多种选择:1,2 结果,替代(s)2被禁用该输入 决策可以匹配输入,例如&#34;&#39;&amp;&#39;&#34;使用多种选择:1,2 结果,替代(s)2被禁用该输入 决策可以匹配输入,例如&#34;&#39;&lt; =&#39;&#34;使用多种选择:1,2 结果,替代(s)2被禁用该输入 决策可以匹配输入,例如&#34;&#39;&lt;&gt;&#39;&#34;使用多种选择:1,2 结果,替代(s)2被禁用该输入 决策可以匹配输入,例如&#34;&#39;&lt;&#39;&#34;使用多种选择:1,2 结果,替代(s)2被禁用该输入 决策可以匹配输入,例如&#34;&#39; =&#39;&#34;使用多种选择:1,2 结果,替代(s)2被禁用该输入 决策可以匹配输入,例如&#34;&#39;&gt; =&#39;&#34;使用多种选择:1,2 结果,替代(s)2被禁用该输入 决策可以匹配输入,例如&#34;&#39;&gt;&#39;&#34;使用多种选择:1,2 结果,替代(s)2被禁用该输入 决策可以匹配输入,例如&#34;&#39; +&#39;&#34;使用多种选择:1,2 结果,替代(s)2被禁用该输入 决策可以匹配输入,例如&#34;&#39; - &#39;&#34;使用多种选择:1,2 结果,替代(s)2被禁用该输入 决策可以匹配输入,例如&#34;&#39; *&#39;&#34;使用多种选择:1,2 结果,替代(s)2被禁用该输入 决策可以匹配输入,例如&#34;&#39; /&#39;&#34;使用多种选择:1,2 结果,替代(s)2被禁用该输入 对未定义规则的引用:exp 对未定义规则的引用:exp 对未定义规则的引用:exp 对未定义规则的引用:exp 对未定义规则的引用:exp 对未定义规则的引用:rcd 对未定义规则的引用:exp