public boolean isPublic(PAccessSpecifier access) { if (access instanceof AAccessSpecifierAccessSpecifier) { AAccessSpecifierAccessSpecifier a = (AAccessSpecifierAccessSpecifier) access; return a.getAccess() instanceof APublicAccess; } return false; }
public boolean isPrivate(AAccessSpecifierAccessSpecifier access) { return access.getAccess() instanceof APrivateAccess; }
public boolean isProtected(PAccessSpecifier access) { if (access instanceof AAccessSpecifierAccessSpecifier) { AAccessSpecifierAccessSpecifier a = (AAccessSpecifierAccessSpecifier) access; return a.getAccess() instanceof AProtectedAccess; } return false; }
public boolean isPublic(AAccessSpecifierAccessSpecifier access) { return access != null && access.getAccess() instanceof APublicAccess; }
/** * Called by the {@link AAccessSpecifierAccessSpecifier} node from {@link AAccessSpecifierAccessSpecifier#apply(IPOFAnalysis)}. * @param node the calling {@link AAccessSpecifierAccessSpecifier} node */ public void caseAAccessSpecifierAccessSpecifier(AAccessSpecifierAccessSpecifier node) throws AnalysisException { _visitedNodes.add(node); inAAccessSpecifierAccessSpecifier(node); if(node.getAccess() != null && !_visitedNodes.contains(node.getAccess())) { node.getAccess().apply(this); } if(node.getStatic() != null && !_visitedNodes.contains(node.getStatic())) { node.getStatic().apply(this); } if(node.getAsync() != null && !_visitedNodes.contains(node.getAsync())) { node.getAsync().apply(this); } outAAccessSpecifierAccessSpecifier(node); }
@Override public String caseATypeDefinition(ATypeDefinition node, PrettyPrinterEnv question) throws AnalysisException { StringBuilder sb = new StringBuilder(question.getIdent()); sb.append(node.getAccess().getAccess() + " "); sb.append(node.getName()); if (node.getType() instanceof ARecordInvariantType) { ARecordInvariantType record = (ARecordInvariantType) node.getType(); sb.append(" :: "); for (Iterator<AFieldField> itr = record.getFields().iterator(); itr.hasNext();) { if (itr.hasNext()) { sb.append("\n" + question.getIdent()); } sb.append(itr.next().apply(this, question)); } } else { sb.append(" = " + node.getType().apply(typePrinter, question)); } // + (node.getType() instanceof ARecordInvariantType ? " :: " // : " = ") + node.getType().apply(typePrinter, question)); return sb.toString() + ";"; }
/** * Called by the {@link AAccessSpecifierAccessSpecifier} node from {@link AAccessSpecifierAccessSpecifier#apply(IAnalysis)}. * @param node the calling {@link AAccessSpecifierAccessSpecifier} node */ public void caseAAccessSpecifierAccessSpecifier(AAccessSpecifierAccessSpecifier node, Q question) throws AnalysisException { _visitedNodes.add(node); inAAccessSpecifierAccessSpecifier(node, question); if(node.getAccess() != null && !_visitedNodes.contains(node.getAccess())) { node.getAccess().apply(this, question); } if(node.getStatic() != null && !_visitedNodes.contains(node.getStatic())) { node.getStatic().apply(this, question); } if(node.getAsync() != null && !_visitedNodes.contains(node.getAsync())) { node.getAsync().apply(this, question); } outAAccessSpecifierAccessSpecifier(node, question); }
/** * Called by the {@link AAccessSpecifierAccessSpecifier} node from {@link AAccessSpecifierAccessSpecifier#apply(IAnalysis)}. * @param node the calling {@link AAccessSpecifierAccessSpecifier} node */ public void caseAAccessSpecifierAccessSpecifier(AAccessSpecifierAccessSpecifier node) throws AnalysisException { _visitedNodes.add(node); inAAccessSpecifierAccessSpecifier(node); if(node.getAccess() != null && !_visitedNodes.contains(node.getAccess())) { node.getAccess().apply(this); } if(node.getStatic() != null && !_visitedNodes.contains(node.getStatic())) { node.getStatic().apply(this); } if(node.getAsync() != null && !_visitedNodes.contains(node.getAsync())) { node.getAsync().apply(this); } outAAccessSpecifierAccessSpecifier(node); }
public AAccessSpecifierAccessSpecifier getStatic(PDefinition d, boolean asStatic) { AAccessSpecifierAccessSpecifier paccess = d.getAccess(); if (paccess instanceof AAccessSpecifierAccessSpecifier) { return AstFactory.newAAccessSpecifierAccessSpecifier(paccess.getAccess().clone(), asStatic && paccess.getStatic() != null, paccess.getAsync() != null, false); } assert false : "PAccessSpecifier must be instance of AAccessSpecifierAccessSpecifier"; return null; }
/** * Called by the {@link AAccessSpecifierAccessSpecifier} node from {@link AAccessSpecifierAccessSpecifier#apply(IAnalysis)}. * @param node the calling {@link AAccessSpecifierAccessSpecifier} node */ public A caseAAccessSpecifierAccessSpecifier(AAccessSpecifierAccessSpecifier node) throws AnalysisException { _visitedNodes.add(node); A retVal = createNewReturnValue(node); mergeReturns(retVal,inAAccessSpecifierAccessSpecifier(node)); if(node.getAccess() != null && !_visitedNodes.contains(node.getAccess())) { mergeReturns(retVal,node.getAccess().apply(this)); } if(node.getStatic() != null && !_visitedNodes.contains(node.getStatic())) { mergeReturns(retVal,node.getStatic().apply(this)); } if(node.getAsync() != null && !_visitedNodes.contains(node.getAsync())) { mergeReturns(retVal,node.getAsync().apply(this)); } mergeReturns(retVal,outAAccessSpecifierAccessSpecifier(node)); return retVal; }
/** * Called by the {@link AAccessSpecifierAccessSpecifier} node from {@link AAccessSpecifierAccessSpecifier#apply(IAnalysis)}. * @param node the calling {@link AAccessSpecifierAccessSpecifier} node */ public A caseAAccessSpecifierAccessSpecifier(AAccessSpecifierAccessSpecifier node, Q question) throws AnalysisException { _visitedNodes.add(node); A retVal = createNewReturnValue(node, question); mergeReturns(retVal,inAAccessSpecifierAccessSpecifier(node, question)); if(node.getAccess() != null && !_visitedNodes.contains(node.getAccess())) { mergeReturns(retVal,node.getAccess().apply(this, question)); } if(node.getStatic() != null && !_visitedNodes.contains(node.getStatic())) { mergeReturns(retVal,node.getStatic().apply(this, question)); } if(node.getAsync() != null && !_visitedNodes.contains(node.getAsync())) { mergeReturns(retVal,node.getAsync().apply(this, question)); } mergeReturns(retVal,outAAccessSpecifierAccessSpecifier(node, question)); return retVal; }
if(!IRConstants.PUBLIC.equals(def.getAccess().getAccess().toString()))
@Override public SDeclIR caseAValueDefinition(AValueDefinition node, IRInfo question) throws AnalysisException { String access = node.getAccess().getAccess().toString(); String name = node.getPattern().toString(); boolean isStatic = true; boolean isFinal = true; PType type = node.getType(); PExp exp = node.getExpression(); STypeIR typeCg = type.apply(question.getTypeVisitor(), question); SExpIR expCg = exp.apply(question.getExpVisitor(), question); return question.getDeclAssistant().constructField(access, name, isStatic, isFinal, typeCg, expCg); }
@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 SDeclIR caseATypeDefinition(ATypeDefinition node, IRInfo question) throws AnalysisException { String access = node.getAccess().getAccess().toString(); PType type = node.getType(); SDeclIR declCg = type.apply(question.getDeclVisitor(), question); SDeclIR invCg = question.getSettings().generateInvariants() && node.getInvdef() != null ? node.getInvdef().apply(question.getDeclVisitor(), question) : null; ATypeDeclIR typeDecl = new ATypeDeclIR(); typeDecl.setAccess(access); typeDecl.setDecl(declCg); typeDecl.setInv(invCg); return typeDecl; }
private void setStaticDefinitions(SClassDefinition node, LinkedList<PDefinition> defs, Context initCtxt) { for (PDefinition d : defs) { if (af.createPDefinitionAssistant().isStatic(d) && af.createPDefinitionAssistant().isFunctionOrOperation(d) || af.createPDefinitionAssistant().isTypeDefinition(d)) { // Note function and operation values are not updatable. // Type invariants are implicitly static, but not updatable // The context here is just used for free variables, of // which there are none at static func/op creation... Context empty = new Context(af, node.getLocation(), "empty", null); NameValuePairList nvl = af.createPDefinitionAssistant().getNamedValues(d, empty); PAccess pAccess = d.getAccess().getAccess(); if (pAccess instanceof APrivateAccess || pAccess instanceof AProtectedAccess) { VdmRuntime.getNodeState(af, node).privateStaticValues.putAllNew(nvl); initCtxt.putList(nvl); } else if (pAccess instanceof APublicAccess) { VdmRuntime.getNodeState(af, node).publicStaticValues.putAllNew(nvl); initCtxt.putList(nvl); } } } }
PPattern invPattern = node.getInvPattern(); String accessCg = access.getAccess().toString(); String nameCg = name != null ? name.getName() : null; SDeclIR initDeclCg = initdef != null
public AMethodDeclIR initMethod(SOperationDefinition node, IRInfo question) throws AnalysisException String access = node.getAccess().getAccess().toString(); boolean isStatic = question.getTcFactory().createPDefinitionAssistant().isStatic(node); boolean isAsync = question.getTcFactory().createPAccessSpecifierAssistant().isAsync(node.getAccess());