@Override public SSeqTypeIR findType(PType type) throws org.overture.ast.analysis.AnalysisException { SSeqType seqType = transAssistant.getInfo().getTcFactory().createPTypeAssistant().getSeq(type); return seqType != null ? (SSeqTypeIR) seqType.apply(transAssistant.getInfo().getTypeVisitor(), transAssistant.getInfo()) : null; } });
/** * Called by the {@link AMapSeqStateDesignator} node from {@link AMapSeqStateDesignator#apply(IAnalysis)}. * @param node the calling {@link AMapSeqStateDesignator} node */ public void caseAMapSeqStateDesignator(AMapSeqStateDesignator node) throws AnalysisException { _visitedNodes.add(node); inAMapSeqStateDesignator(node); if(node.getType() != null && !_visitedNodes.contains(node.getType())) { node.getType().apply(this); } if(node.getMapseq() != null && !_visitedNodes.contains(node.getMapseq())) { node.getMapseq().apply(this); } if(node.getExp() != null && !_visitedNodes.contains(node.getExp())) { node.getExp().apply(this); } if(node.getMapType() != null && !_visitedNodes.contains(node.getMapType())) { node.getMapType().apply(this); } if(node.getSeqType() != null && !_visitedNodes.contains(node.getSeqType())) { node.getSeqType().apply(this); } outAMapSeqStateDesignator(node); }
/** * Called by the {@link AMapSeqStateDesignator} node from {@link AMapSeqStateDesignator#apply(IAnalysis)}. * @param node the calling {@link AMapSeqStateDesignator} node */ public void caseAMapSeqStateDesignator(AMapSeqStateDesignator node, Q question) throws AnalysisException { _visitedNodes.add(node); inAMapSeqStateDesignator(node, question); if(node.getType() != null && !_visitedNodes.contains(node.getType())) { node.getType().apply(this, question); } if(node.getMapseq() != null && !_visitedNodes.contains(node.getMapseq())) { node.getMapseq().apply(this, question); } if(node.getExp() != null && !_visitedNodes.contains(node.getExp())) { node.getExp().apply(this, question); } if(node.getMapType() != null && !_visitedNodes.contains(node.getMapType())) { node.getMapType().apply(this, question); } if(node.getSeqType() != null && !_visitedNodes.contains(node.getSeqType())) { node.getSeqType().apply(this, question); } outAMapSeqStateDesignator(node, question); }
/** * Called by the {@link AForPatternBindStm} node from {@link AForPatternBindStm#apply(IAnalysis)}. * @param node the calling {@link AForPatternBindStm} node */ public void caseAForPatternBindStm(AForPatternBindStm node) throws AnalysisException { _visitedNodes.add(node); inAForPatternBindStm(node); if(node.getType() != null && !_visitedNodes.contains(node.getType())) { node.getType().apply(this); } if(node.getPatternBind() != null && !_visitedNodes.contains(node.getPatternBind())) { node.getPatternBind().apply(this); } if(node.getExp() != null && !_visitedNodes.contains(node.getExp())) { node.getExp().apply(this); } if(node.getStatement() != null && !_visitedNodes.contains(node.getStatement())) { node.getStatement().apply(this); } if(node.getSeqType() != null && !_visitedNodes.contains(node.getSeqType())) { node.getSeqType().apply(this); } outAForPatternBindStm(node); }
/** * Called by the {@link AForPatternBindStm} node from {@link AForPatternBindStm#apply(IPOFAnalysis)}. * @param node the calling {@link AForPatternBindStm} node */ public void caseAForPatternBindStm(AForPatternBindStm node) throws AnalysisException { _visitedNodes.add(node); inAForPatternBindStm(node); if(node.getType() != null && !_visitedNodes.contains(node.getType())) { node.getType().apply(this); } if(node.getPatternBind() != null && !_visitedNodes.contains(node.getPatternBind())) { node.getPatternBind().apply(this); } if(node.getExp() != null && !_visitedNodes.contains(node.getExp())) { node.getExp().apply(this); } if(node.getStatement() != null && !_visitedNodes.contains(node.getStatement())) { node.getStatement().apply(this); } if(node.getSeqType() != null && !_visitedNodes.contains(node.getSeqType())) { node.getSeqType().apply(this); } outAForPatternBindStm(node); }
/** * Called by the {@link AForPatternBindStm} node from {@link AForPatternBindStm#apply(IAnalysis)}. * @param node the calling {@link AForPatternBindStm} node */ public void caseAForPatternBindStm(AForPatternBindStm node, Q question) throws AnalysisException { _visitedNodes.add(node); inAForPatternBindStm(node, question); if(node.getType() != null && !_visitedNodes.contains(node.getType())) { node.getType().apply(this, question); } if(node.getPatternBind() != null && !_visitedNodes.contains(node.getPatternBind())) { node.getPatternBind().apply(this, question); } if(node.getExp() != null && !_visitedNodes.contains(node.getExp())) { node.getExp().apply(this, question); } if(node.getStatement() != null && !_visitedNodes.contains(node.getStatement())) { node.getStatement().apply(this, question); } if(node.getSeqType() != null && !_visitedNodes.contains(node.getSeqType())) { node.getSeqType().apply(this, question); } outAForPatternBindStm(node, question); }
/** * Called by the {@link AMapSeqStateDesignator} node from {@link AMapSeqStateDesignator#apply(IPOFAnalysis)}. * @param node the calling {@link AMapSeqStateDesignator} node */ public void caseAMapSeqStateDesignator(AMapSeqStateDesignator node) throws AnalysisException { _visitedNodes.add(node); inAMapSeqStateDesignator(node); if(node.getType() != null && !_visitedNodes.contains(node.getType())) { node.getType().apply(this); } if(node.getMapseq() != null && !_visitedNodes.contains(node.getMapseq())) { node.getMapseq().apply(this); } if(node.getExp() != null && !_visitedNodes.contains(node.getExp())) { node.getExp().apply(this); } if(node.getMapType() != null && !_visitedNodes.contains(node.getMapType())) { node.getMapType().apply(this); } if(node.getSeqType() != null && !_visitedNodes.contains(node.getSeqType())) { node.getSeqType().apply(this); } outAMapSeqStateDesignator(node); }
@Override public PType defaultSSeqType(SSeqType type, Newquestion question) throws AnalysisException { if (type.getResolved()) { return type; } else { type.setResolved(true); } try { type.setSeqof(af.createPTypeAssistant().typeResolve(type.getSeqof(), question.root, question.rootVisitor, question.question)); if (question.root != null) { question.root.setInfinite(false); // Could be empty } return type; } catch (TypeCheckException e) { type.apply(af.getTypeUnresolver()); throw e; } }
mergeReturns(retVal,node.getSeqType().apply(this));
node.getSeqType().apply(this, question);
node.getSeqType().apply(this);
node.getSeqType().apply(this);
mergeReturns(retVal,node.getSeqType().apply(this, question));
mergeReturns(retVal,node.getSeqType().apply(this));
mergeReturns(retVal,node.getSeqType().apply(this, question));
public SSeqTypeIR getSeqTypeCloned(STypeIR typeCg) throws AnalysisException { if (typeCg instanceof SSeqTypeIR) { SSeqTypeIR seqTypeCg = (SSeqTypeIR) typeCg; return seqTypeCg.clone(); } else { SourceNode sourceNode = typeCg.getSourceNode(); if (sourceNode != null && sourceNode.getVdmNode() instanceof PType) { PType vdmType = (PType) sourceNode.getVdmNode(); SSeqType seqType = info.getTcFactory().createPTypeAssistant().getSeq(vdmType); try { typeCg = seqType.apply(info.getTypeVisitor(), info); return (SSeqTypeIR) typeCg; } catch (org.overture.ast.analysis.AnalysisException e) { } } throw new AnalysisException("Exptected sequence type. Got: " + typeCg); } }
mergeReturns(retVal,node.getSeqType().apply(this, question));
mergeReturns(retVal,node.getSeqType().apply(this));
@Override public void inAElemsUnaryExpIR(AElemsUnaryExpIR node) throws AnalysisException { if (handleUnaryExp(node)) { SExpIR exp = node.getExp(); PType vdmType = (PType) exp.getType().getSourceNode().getVdmNode(); SSeqType seqType = transAssistant.getInfo().getTcFactory().createPTypeAssistant().getSeq(vdmType); try { STypeIR typeCg = seqType.apply(transAssistant.getInfo().getTypeVisitor(), transAssistant.getInfo()); if (typeCg instanceof SSeqTypeIR) { correctTypes(exp, typeCg); } } catch (org.overture.ast.analysis.AnalysisException e) { } } }
return seqType.apply(question.getTypeVisitor(), question);