我在语法vAttributeName和vClassName中声明了 String 变量,并为它们分配了标记的文本值:className和attributeName。当我使用一个通常应该在错误替代项中包含值的变量时,在另一个规则中,它在消息中返回 null ... 为什么我的变量不保留这些值?我该如何解决?
grammar TestExpression;
@parser::members {
String vAttributeName;
String vClassName;
}
/* SYNTAX RULES */
textInput : classifierContext ;
classifierContext : 'context' c=className attributeContext {vClassName = $c.text;};
attributeContext : '::' a=attributeName ':' dataType initDefinition {vAttributeName = $a.text;};
initDefinition : 'init' ':' initExpression ;
initExpression : boolExpression
| decimalExpression
| dateTimeExpression
| .+? {notifyErrorListeners("Corriger - "l'attribut "+vAttributeName+" de l'entité "+vClassName+" ne correspond pas");}
我正在尝试解析一个表达式,该表达式描述了一个具有假值属性的类。
我预期的消息是:“修复 -汽车实体的座位属性不匹配”。
但实际消息是:“修复 -空实体的空属性不匹配”。
回首忆惘然
蓝山帝景
随时随地看视频慕课网APP
相关分类