9.3.27 VariableDeclarationCS
在变量声明中,类型和初始化表达式是可选的。当这些事必须的情况下,它们就要被定义在一个使用变量声明的产生式规则中。
VariableDeclarationCS ::= simpleNameCS (‘:’ typeCS)? ( ‘=’ OclExpressionCS )?
抽象语法映射
VariableDeclarationCS.ast : VariableDeclaration
合成的属性
VariableDeclarationCS.ast.name = simpleNameCS.ast
VariableDeclarationCS.ast.initExpression = OclExpressionCS.ast
-- 根据抽象语法,良构的变量声明必须有一个类型
-- 值null用于在具体语法中没有给定类型的情况
-- 使用它的产生式规则需要检查这种类型
VariableDeclarationCS.ast.type = if typeCS->notEmpty() then
typeCS.ast
else if OclExpressionCS.ast.type->notEmpty() then
OclExpressionCS.ast.type
else
null
endif
endif
继承的属性
OclExpressionCS.env = VariableDeclarationCS.env
typeCS.env = VariableDeclarationCS.env
歧义消除规则
--none