@Override public TraceNode caseATraceDefinitionTerm(ATraceDefinitionTerm node, Context question) throws AnalysisException { AlternativeTraceNode newNode = new AlternativeTraceNode(); for (PTraceDefinition term : node.getList()) { newNode.alternatives.add(term.apply(THIS, question)); // newNode.alternatives.add(PTraceDefinitionAssistantInterpreter.expand(term, ctxt)); } return newNode; }
@Override public TraceNode caseABracketedExpressionTraceCoreDefinition( ABracketedExpressionTraceCoreDefinition core, Context ctxt) throws AnalysisException { // return ABracketedExpressionTraceCoreDefinitionAssitantInterpreter.expand(core, ctxt); SequenceTraceNode node = new SequenceTraceNode(); for (ATraceDefinitionTerm term : core.getTerms()) { // node.nodes.add(ATraceDefinitionTermAssistantInterpreter.expand(term, ctxt)); node.nodes.add(term.apply(THIS, ctxt)); } return node; }
/** * Returns a deep clone of this {@link ATraceDefinitionTerm} node. * @return a deep clone of this {@link ATraceDefinitionTerm} node */ public ATraceDefinitionTerm clone() { return new ATraceDefinitionTerm( cloneList(_list) ); }
public static ATraceDefinitionTerm newATraceDefinitionTerm( List<PTraceDefinition> term) { ATraceDefinitionTerm result = new ATraceDefinitionTerm(); result.setList(term); return result; }
/** * Creates a new complete constructor {@code ATraceDefinitionTerm} node with the given nodes as children. * @deprecated This method should not be used, use AstFactory instead. * The basic child nodes are removed from their previous parents. * @param list_ the {@link NodeList} node for the {@code list} child of this {@link ATraceDefinitionTerm} node */ public ATraceDefinitionTerm(List<? extends PTraceDefinition> list_) { super(); this.setList(list_); }
/** * Essentially this.toString().equals(o.toString()). **/ @Override public boolean equals(Object o) { if (o != null && o instanceof ATraceDefinitionTerm) { return toString().equals(o.toString()); } return false; }
@Override public PType caseABracketedExpressionTraceCoreDefinition( ABracketedExpressionTraceCoreDefinition node, TypeCheckInfo question) throws AnalysisException { for (ATraceDefinitionTerm term : node.getTerms()) { for (PTraceDefinition def : term.getList()) { def.apply(THIS, question); } } return null; }
/** * Called by the {@link ABracketedExpressionTraceCoreDefinition} node from {@link ABracketedExpressionTraceCoreDefinition#apply(IAnalysis)}. * @param node the calling {@link ABracketedExpressionTraceCoreDefinition} node */ public void caseABracketedExpressionTraceCoreDefinition(ABracketedExpressionTraceCoreDefinition node) throws AnalysisException { _visitedNodes.add(node); inABracketedExpressionTraceCoreDefinition(node); { List<ATraceDefinitionTerm> copy = new ArrayList<ATraceDefinitionTerm>(node.getTerms()); for( ATraceDefinitionTerm e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this); } } } outABracketedExpressionTraceCoreDefinition(node); }
/** * Creates a deep clone of this {@link ATraceDefinitionTerm} node while putting all * old node-new node relations in the map {@code oldToNewMap}. * @param oldToNewMap the map filled with the old node-new node relation * @return a deep clone of this {@link ATraceDefinitionTerm} node */ public ATraceDefinitionTerm clone(Map<INode,INode> oldToNewMap) { ATraceDefinitionTerm node = new ATraceDefinitionTerm( cloneList(_list, oldToNewMap) ); oldToNewMap.put(this, node); return node; }
/** * Called by the {@link ATraceDefinitionTerm} node from {@link ATraceDefinitionTerm#apply(IAnalysis)}. * @param node the calling {@link ATraceDefinitionTerm} node */ public void caseATraceDefinitionTerm(ATraceDefinitionTerm node, Q question) throws AnalysisException { _visitedNodes.add(node); inATraceDefinitionTerm(node, question); { List<PTraceDefinition> copy = new ArrayList<PTraceDefinition>(node.getList()); for( PTraceDefinition e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this, question); } } } outATraceDefinitionTerm(node, question); }
/** * Called by the {@link ABracketedExpressionTraceCoreDefinition} node from {@link ABracketedExpressionTraceCoreDefinition#apply(IAnalysis)}. * @param node the calling {@link ABracketedExpressionTraceCoreDefinition} node */ public void caseABracketedExpressionTraceCoreDefinition(ABracketedExpressionTraceCoreDefinition node, Q question) throws AnalysisException { _visitedNodes.add(node); inABracketedExpressionTraceCoreDefinition(node, question); { List<ATraceDefinitionTerm> copy = new ArrayList<ATraceDefinitionTerm>(node.getTerms()); for( ATraceDefinitionTerm e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this, question); } } } outABracketedExpressionTraceCoreDefinition(node, question); }
/** * Called by the {@link ATraceDefinitionTerm} node from {@link ATraceDefinitionTerm#apply(IAnalysis)}. * @param node the calling {@link ATraceDefinitionTerm} node */ public void caseATraceDefinitionTerm(ATraceDefinitionTerm node) throws AnalysisException { _visitedNodes.add(node); inATraceDefinitionTerm(node); { List<PTraceDefinition> copy = new ArrayList<PTraceDefinition>(node.getList()); for( PTraceDefinition e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this); } } } outATraceDefinitionTerm(node); }
/** * Called by the {@link ABracketedExpressionTraceCoreDefinition} node from {@link ABracketedExpressionTraceCoreDefinition#apply(IPOFAnalysis)}. * @param node the calling {@link ABracketedExpressionTraceCoreDefinition} node */ public void caseABracketedExpressionTraceCoreDefinition(ABracketedExpressionTraceCoreDefinition node) throws AnalysisException { _visitedNodes.add(node); inABracketedExpressionTraceCoreDefinition(node); { List<ATraceDefinitionTerm> copy = new ArrayList<ATraceDefinitionTerm>(node.getTerms()); for( ATraceDefinitionTerm e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this); } } } outABracketedExpressionTraceCoreDefinition(node); }
/** * Called by the {@link ATraceDefinitionTerm} node from {@link ATraceDefinitionTerm#apply(IPOFAnalysis)}. * @param node the calling {@link ATraceDefinitionTerm} node */ public void caseATraceDefinitionTerm(ATraceDefinitionTerm node) throws AnalysisException { _visitedNodes.add(node); inATraceDefinitionTerm(node); { List<PTraceDefinition> copy = new ArrayList<PTraceDefinition>(node.getList()); for( PTraceDefinition e : copy) { if(!_visitedNodes.contains(e)) { e.apply(this); } } } outATraceDefinitionTerm(node); }
@Override public STraceCoreDeclIR caseABracketedExpressionTraceCoreDefinition( ABracketedExpressionTraceCoreDefinition node, IRInfo question) throws AnalysisException { ABracketedExpTraceCoreDeclIR bracketTraceCoreDecl = new ABracketedExpTraceCoreDeclIR(); for (ATraceDefinitionTerm term : node.getTerms()) { STermIR termCg = term.apply(question.getTermVisitor(), question); if (termCg instanceof ATraceDeclTermIR) { bracketTraceCoreDecl.getTerms().add((ATraceDeclTermIR) termCg); } else { log.error("Expected term to be of type ATraceDeclTermIR. Got: " + termCg); } } return bracketTraceCoreDecl; }
@Override public STermIR caseATraceDefinitionTerm(ATraceDefinitionTerm node, IRInfo question) throws AnalysisException { ATraceDeclTermIR termCg = new ATraceDeclTermIR(); for (PTraceDefinition traceDef : node.getList()) { STraceDeclIR traceDefCg = traceDef.apply(question.getTraceDeclVisitor(), question); if (traceDefCg != null) { termCg.getTraceDecls().add(traceDefCg); } else { return null; } } return termCg; } }
public TestSequence getTests(ANamedTraceDefinition tracedef, Context ctxt, float subset, TraceReductionType type, long seed) throws Exception { SequenceTraceNode traces = new SequenceTraceNode(); for (ATraceDefinitionTerm term : tracedef.getTerms()) { traces.nodes.add(term.apply(af.getTraceExpander(), ctxt)); } TestSequence tests = traces.getTests(); if (tests.isEmpty()) { throw new Exception("Trace expansion generated no tests"); } if (subset < 1.0) { tests = new ReducedTestSequence(tests, subset, type, seed); } return tests; }
/** * Called by the {@link ATraceDefinitionTerm} node from {@link ATraceDefinitionTerm#apply(IAnalysis)}. * @param node the calling {@link ATraceDefinitionTerm} node */ public A caseATraceDefinitionTerm(ATraceDefinitionTerm node) throws AnalysisException { _visitedNodes.add(node); A retVal = createNewReturnValue(node); mergeReturns(retVal,inATraceDefinitionTerm(node)); { List<PTraceDefinition> copy = new ArrayList<PTraceDefinition>(node.getList()); for( PTraceDefinition e : copy) { if(!_visitedNodes.contains(e)) { mergeReturns(retVal,e.apply(this)); } } } mergeReturns(retVal,outATraceDefinitionTerm(node)); return retVal; }
/** * Called by the {@link ABracketedExpressionTraceCoreDefinition} node from {@link ABracketedExpressionTraceCoreDefinition#apply(IAnalysis)}. * @param node the calling {@link ABracketedExpressionTraceCoreDefinition} node */ public A caseABracketedExpressionTraceCoreDefinition(ABracketedExpressionTraceCoreDefinition node, Q question) throws AnalysisException { _visitedNodes.add(node); A retVal = createNewReturnValue(node, question); mergeReturns(retVal,inABracketedExpressionTraceCoreDefinition(node, question)); { List<ATraceDefinitionTerm> copy = new ArrayList<ATraceDefinitionTerm>(node.getTerms()); for( ATraceDefinitionTerm e : copy) { if(!_visitedNodes.contains(e)) { mergeReturns(retVal,e.apply(this, question)); } } } mergeReturns(retVal,outABracketedExpressionTraceCoreDefinition(node, question)); return retVal; }
/** * Called by the {@link ATraceDefinitionTerm} node from {@link ATraceDefinitionTerm#apply(IAnalysis)}. * @param node the calling {@link ATraceDefinitionTerm} node */ public A caseATraceDefinitionTerm(ATraceDefinitionTerm node, Q question) throws AnalysisException { _visitedNodes.add(node); A retVal = createNewReturnValue(node, question); mergeReturns(retVal,inATraceDefinitionTerm(node, question)); { List<PTraceDefinition> copy = new ArrayList<PTraceDefinition>(node.getList()); for( PTraceDefinition e : copy) { if(!_visitedNodes.contains(e)) { mergeReturns(retVal,e.apply(this, question)); } } } mergeReturns(retVal,outATraceDefinitionTerm(node, question)); return retVal; }