@Override public void add(IExpr inputExpr, IExpr resultExpr, int recursionDepth, long iterationCounter, String hint) { if (iterationCounter == 0L) { addIfEmpty(inputExpr); add(resultExpr); } else { add(resultExpr); } } }
@Override public void tearDown(int recursionDepth) { popList(); }
public TraceStack(Predicate<IExpr> matcher, IAST list) { super(); fMatcher = matcher; fList = list; pushList(); }
fRecursionCounter++; if (fTraceMode) { fTraceStack.pushList(); fTraceStack.addIfEmpty(expr); fTraceStack.add(temp); if (temp != null) { if (fTraceMode) { fTraceStack.add(temp); fRecursionCounter--; if (fTraceMode) { fTraceStack.popList();
private IAST endTrace() { setTraceMode(false); IAST ast = ((TraceStack) fTraceStack).getList(); fTraceStack = null; if (ast.size() > 1) { return ast.getAST(1); } return ast; }
public void beginTrace(Predicate<IExpr> matcher, IAST list) { setTraceMode(true); fTraceStack = new TraceStack(matcher, list); }
/** * Add the expression to the internal trace list, if the trace matcher * returns <code>true</code> and the trace lit is empty. * * @param expr * an expression */ public void addIfEmpty(IExpr expr) { if (fTraceList.isAST0()) { add(expr); } }
public IAST endTrace() { setTraceMode(false); IAST ast = fTraceStack.getList(); fTraceStack = null; if (ast.size() > 1) { return ast.getAST(1); } return ast; }
private void beginTrace(Predicate<IExpr> matcher, IAST list) { setTraceMode(true); fTraceStack = new TraceStack(matcher, list); }
@Override public void setUp(IExpr inputExpr, int recursionDepth) { pushList(); // addIfEmpty(inputExpr); // add(resultExpr); }
public TraceStack(Predicate<IExpr> matcher, IAST list) { super(); fMatcher = matcher; fList = list; pushList(); }