ANTLR模糊引用
当我编译下面的ANTLR语法文件时ANTLR模糊引用,antlr,Antlr,当我编译下面的ANTLR语法文件时 conditional_expression : (logical_or_expression -> logical_or_expression) ('?' expression ':' rhs=conditional_expression -> ^('?' $conditional_expression expression $rhs))? ; 我收到以下错误消息 错误(132):nesC.g:769:109:引用$condit
conditional_expression
: (logical_or_expression -> logical_or_expression) ('?' expression ':' rhs=conditional_expression -> ^('?' $conditional_expression expression $rhs))?
;
我收到以下错误消息
错误(132):nesC.g:769:109:引用$conditional_表达式为
模棱两可的;规则条件_表达式包含规则和
在产品中引用(关联封闭规则)
有人能告诉我解决这个问题的办法吗?谢谢。:-) ANTLR无法确定您所说的
$conditional_expression
是指规则本身,还是您标记的$rhs
conditional_expression // <--- this one?
: (logical_or_expression -> logical_or_expression)
('?' expression ':' rhs=conditional_expression -> ^('?' $conditional_expression expression $rhs))?
// ^
// |
// +--- or this one?
;
但这不也会对你有好处吗:
conditional_expression
: (e=logical_or_expression -> logical_or_expression)
('?' if_true=expression ':' if_false=expression -> ^('?' $e $if_true $if_false))?
;
或:
?
conditional_expression
: (e=logical_or_expression -> logical_or_expression)
('?' if_true=expression ':' if_false=expression -> ^('?' $e $if_true $if_false))?
;
conditional_expression
: (e=logical_or_expression -> logical_or_expression)
('?' if_true=conditional_expression ':' if_false=conditional_expression -> ^('?' $e $if_true $if_false))?
;