public static AAssignmentDefinition newAAssignmentDefinition( ILexNameToken name, PType type, PExp exp) { AAssignmentDefinition result = new AAssignmentDefinition(); initDefinition(result, Pass.VALUES, name.getLocation(), name, NameScope.STATE); result.setType(type); result.setExpression(exp); result.getLocation().executable(false); return result; }
@Override public NameValuePairList caseAAssignmentDefinition( AAssignmentDefinition def, Context initialContext) throws AnalysisException { try { Value v = def.getExpression().apply(VdmRuntime.getExpressionEvaluator(), initialContext); if (!v.isUndefined()) { v = v.convertTo(def.getType(), initialContext); } return new NameValuePairList(new NameValuePair(def.getName(), v.getUpdatable(null))); } catch (AnalysisException e) { if (e instanceof ValueException) { VdmRuntimeError.abort(def.getLocation(), (ValueException) e); } return null; } }