@Override public void caseILexNameToken(ILexNameToken node) throws AnalysisException { if (node.getOld()) { String module = node.getModule(); String name = OLD_PREFIX + node.getName(); ILexLocation loc = node.getLocation(); boolean old = node.getOld(); boolean expl = node.getExplicit(); ILexNameToken oldRepl = new LexNameToken(module, name, loc, old, expl); List<PType> typeQualifier = node.getTypeQualifier(); oldRepl.setTypeQualifier(typeQualifier); if (node.parent() != null) { node.parent().replaceChild(node, oldRepl); } else { log.error("Could not find parent of lex name token: " + node); } } } }
public String toString() { return "" + _name.getFullName() + " = " + _type/*.toDetailedString()*/ + (_invPattern == null ? "" : "\n\tinv " + _invPattern + " == " + _invExpression); }
@Override protected StringBuilder propertyResponse(ILexNameToken name, Value value, DBGPContextType context) throws UnsupportedEncodingException { String nameString = context == DBGPContextType.GLOBAL ? name.getModule() + "`" + name.getName() : name.getOld() ? name.getName() + "~" : name.getName(); return propertyResponse(nameString, name.getExplicit(true).toString(), name.getModule(), value); }
@Override public void caseILexNameToken(ILexNameToken node) throws AnalysisException { validateName(node.getName(), node.getLocation(), node.getModule()); }
public void correctNameToken(ILexNameToken nameToken) { String newModule = nameToken.getModule(); if (names.contains(nameToken.getModule())) { newModule = correctionPrefix + newModule; } String newName = nameToken.getName(); if (names.contains(nameToken.getName())) { newName = correctionPrefix + newName; } ILexLocation location = nameToken.getLocation(); boolean old = nameToken.getOld(); boolean explicit = nameToken.getExplicit(); LexNameToken replaceMent = new LexNameToken(newModule, newName, location, old, explicit); nameToken.parent().replaceChild(nameToken, replaceMent); }
private ILexNameToken nameFix(ILexNameToken name) LexNameToken rv = new LexNameToken(name.getModule(), name.getName(), name.getLocation(), name.isOld(), name.getExplicit()) rv.setTypeQualifier(name.getTypeQualifier()); return rv;
protected StringBuilder propertyResponse(ILexNameToken name, Value value, DBGPContextType context) throws UnsupportedEncodingException { return propertyResponse(name.getName(), name.getExplicit(true).toString(), name.getModule(), value.toString()); }
@Override public void inILexNameToken(ILexNameToken node) throws AnalysisException { names.add(node.getName()); } }
private LexNameToken consLexNameToken(ILexNameToken defName, String newName, String newModule) { LexNameToken newLexName = new LexNameToken(newModule, newName, defName.getLocation(), defName.getOld(), defName.getExplicit()); newLexName.setTypeQualifier(defName.getTypeQualifier()); return newLexName; } }
node.getField().getLocation().hit(); boolean endstop = breakpoint.catchReturn(ctxt); int arg = 0; for (PType argType: node.getField().getTypeQualifier()) if (argTypes.size() != node.getField().getTypeQualifier().size()) VdmRuntimeError.abort(node.getField().getLocation(), 4168, "Arguments do not match parameters: " + node.getField(), ctxt); ILexNameToken adjfield = node.getField().getModifiedName(argTypes); ObjectValue obj = node.getDesignator().apply(VdmRuntime.getStatementEvaluator(), ctxt).objectValue(ctxt); Value v = obj.get(adjfield, node.getExplicit()); VdmRuntimeError.abort(node.getField().getLocation(), 4035, "Object has no field: " + adjfield.getName(), ctxt);
@Override public void caseAExplicitOperationDefinition( AExplicitOperationDefinition node, NewQuestion question) throws AnalysisException { node.setType(af.createPTypeAssistant().typeResolve(node.getType(), null, question.rootVisitor, question.question)); if (question.question.env.isVDMPP()) { node.getName().setTypeQualifier(((AOperationType) node.getType()).getParameters()); if (node.getName().getName().equals(node.getClassDefinition().getName().getName())) { node.setIsConstructor(true); node.getClassDefinition().setHasContructors(true); } } if (node.getPrecondition() != null) { node.getPredef().apply(this, question); } if (node.getPostcondition() != null) { node.getPostdef().apply(this, question); } for (PPattern p : node.getParameterPatterns()) { af.createPPatternAssistant().typeResolve(p, question.rootVisitor, question.question); } }
public static AFieldExp newAFieldExp(PExp object, ILexNameToken field) { AFieldExp result = new AFieldExp(); result.setLocation(object.getLocation()); result.setObject(object); result.setField(new LexIdentifierToken(field.getName(), field.getOld(), field.getLocation())); result.setMemberName(field); result.getField().getLocation().executable(true); return result; }
/** * Generate an AVariableExp */ protected AVariableExp getVarExp(ILexNameToken name) { AVariableExp var = new AVariableExp(); var.setName(name.clone()); var.setOriginal(name.getFullName()); return var; }
@SuppressWarnings("deprecation") public TraceVariableStatement(TraceVariable var) { super(var.name.getLocation()); this.var = var; }
@Override public Collection<? extends PDefinition> caseAValueExport(AValueExport exp) throws AnalysisException { List<PDefinition> list = new Vector<PDefinition>(); for (ILexNameToken name : exp.getNameList()) { list.add(AstFactory.newALocalDefinition(name.getLocation(), name.clone(), NameScope.GLOBAL, exp.getExportType())); // new ALocalDefinition(name.location, NameScope.GLOBAL,true,null, // new AAccessSpecifierAccessSpecifier(new APublicAccess(),new TStatic(),null), // ((AValueExport)exp).getExportType(),true,name.clone())); } return list; }
opname.setTypeQualifier(new LinkedList<PType>()); opname.getLocation().hit(); PDefinition opdef = question.env.findName(opname, NameScope.NAMES);
public static AVariableExp newAVariableExp(ILexNameToken name) { AVariableExp result = new AVariableExp(); initExpression(result, name.getLocation()); result.setName(name); result.setOriginal(name.getFullName()); return result; }