@Override public PType caseAInstanceVariableDefinition( AInstanceVariableDefinition node) throws AnalysisException { return node.getType(); }
@Override public String caseAInstanceVariableDefinition( AInstanceVariableDefinition node, PrettyPrinterEnv question) throws AnalysisException { StringBuilder sb = new StringBuilder(question.getIdent()); sb.append(node.getName() + ":" + node.getType().apply(typePrinter, question) + (node.getExpression() != null ? " := " + node.getExpression() : "")); return sb.toString() + ";"; }
@Override public void caseAInstanceVariableDefinition( AInstanceVariableDefinition node, NewQuestion question) throws AnalysisException { try { node.setType(af.createPTypeAssistant().typeResolve(node.getType(), null, question.rootVisitor, question.question)); } catch (TypeCheckException e) { af.createPTypeAssistant().unResolve(node.getType()); throw e; } }
@Override public LexNameSet caseAInstanceVariableDefinition(AInstanceVariableDefinition node, FreeVarInfo info) throws AnalysisException { LexNameSet names = new LexNameSet(); names.addAll(node.getType().apply(this, info)); names.addAll(node.getExpression().apply(this, info)); return names; }
@Override public void caseAInstanceVariableDefinition( AInstanceVariableDefinition node) throws AnalysisException { handleNameToken(node, node.getName()); handleNameToken(node, node.getOldname()); node.getExpression().apply(this); node.getType().apply(this); }
public OpBodyEndContext(List<AInstanceVariableDefinition> state, IPogAssistantFactory af) { this.af = af; subs = new LinkedList<Substitution>(); for (AInstanceVariableDefinition i : state) { AVariableExp var_exp = new AVariableExp(); ILexNameToken it = i.getName(); String safename = it.getName() + "$"; ILexNameToken safeToken = new LexNameToken(it.getModule(), safename, it.getLocation().clone()); var_exp.setName(safeToken); var_exp.setType(i.getType().clone()); var_exp.setOriginal(i.getName().getName().toString()); subs.add(new Substitution(i.getOldname(), var_exp)); } }
public IProofObligationList caseAInstanceVariableDefinition( AInstanceVariableDefinition node, IPOContextStack question) throws AnalysisException { try { IProofObligationList obligations = new ProofObligationList(); PExp expression = node.getExpression(); PType type = node.getType(); PType expType = node.getExpType(); obligations.addAll(expression.apply(rootVisitor, question)); if (!assistantFactory.getTypeComparator().isSubType(question.checkType(expression, expType), type)) { TypeCompatibilityObligation sto = TypeCompatibilityObligation.newInstance(expression, type, expType, question, assistantFactory); if (sto != null) { obligations.add(sto); } } return obligations; } catch (Exception e) { throw new POException(node, e.getMessage()); } }
@Override public SDeclIR caseAInstanceVariableDefinition( AInstanceVariableDefinition node, IRInfo question) throws AnalysisException { String access = node.getAccess().getAccess().toString(); String name = node.getName().getName(); boolean isStatic = node.getAccess().getStatic() != null; boolean isFinal = false; STypeIR type = node.getType().apply(question.getTypeVisitor(), question); SExpIR exp = node.getExpression().apply(question.getExpVisitor(), question); return question.getDeclAssistant().constructField(access, name, isStatic, isFinal, type, exp); }
@Override public NameValuePairList caseAInstanceVariableDefinition( AInstanceVariableDefinition 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 (ValueException e) { VdmRuntimeError.abort(def.getLocation(), e); return null; } catch (AnalysisException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } }
return node.getType();