/** * * @param numerator * @return */ public static PatternSequence valueOf(final Symbol symbol, final IExpr check) { PatternSequence p = new PatternSequence(); p.fSymbol = symbol; p.fCondition = check; return p; }
/** * Create a <code>BlankSequence[condition]</code> pattern object for pattern-matching and term rewriting * * @param condition * additional condition which should be checked in pattern-matching * @return IPattern */ public static PatternSequence $bs(final IExpr condition) { return org.matheclipse.core.expression.PatternSequence.valueOf(null, condition, false); }
return buffer.toString(); return toString();
@Override public boolean matchPatternSequence(final IAST sequence, PatternMap patternMap) { if (!isConditionMatchedSequence(sequence, patternMap)) { return false; } if (sequence.size() == 1 && !isNullSequence()) { return false; } IExpr value = patternMap.getValue(this); if (value != null) { return sequence.equals(value); } patternMap.setValue(this, sequence); return true; }
/** * Check if the two left-hand-side pattern expressions are equivalent. (i.e. <code>f[x_,y_]</code> is equivalent to * <code>f[a_,b_]</code> ) * * @param patternExpr2 * @param pm1 * @param pm2 * @return */ @Override public boolean equivalent(final IPatternObject patternExpr2, final PatternMap pm1, PatternMap pm2) { if (this == patternExpr2) { return true; } if (patternExpr2 instanceof PatternSequence) { // test if the pattern indices are equal final IPatternSequence p2 = (IPatternSequence) patternExpr2; if (getIndex(pm1) != p2.getIndex(pm2)) { return false; } // test if the "check" expressions are equal final Object o1 = getHeadTest(); final Object o2 = p2.getHeadTest(); if ((o1 == null) || (o2 == null)) { return o1 == o2; } return o1.equals(o2); } return false; }
@Override public boolean matchPattern(final IExpr expr, PatternMap patternMap) { IAST sequence = F.Sequence(expr); return matchPatternSequence(sequence, patternMap); }
return (hierarchy() - (obj).hierarchy());
return buffer.toString(); return toString();
/** * Create a pattern for pattern-matching and term rewriting * * @param symbol * @param check * additional condition which should be checked in pattern-matching * @return IPattern */ public static IPatternSequence $ps(final ISymbol symbol, final IExpr check) { return PatternSequence.valueOf(symbol, check, false); }
/** * */ public static PatternSequence valueOf(final Symbol symbol, final IExpr check, final boolean def) { PatternSequence p = new PatternSequence(); p.fSymbol = symbol; p.fCondition = check; p.fDefault = def; return p; }
public static PatternSequence valueOf(final Symbol symbol) { PatternSequence p = new PatternSequence(); p.fSymbol = symbol; p.fCondition = null; return p; }
/** * Create a <code>BlankNullSequence[condition]</code> pattern object for pattern-matching and term rewriting * * @param condition * additional condition which should be checked in pattern-matching * @return IPattern */ public static PatternSequence $bns(final IExpr condition) { return org.matheclipse.core.expression.PatternSequence.valueOf(null, condition, false); }
/** * * @param numerator * @return */ public static PatternSequence valueOf(final ISymbol symbol, final IExpr check, boolean zeroArgsAllowed) { PatternSequence p = new PatternSequence(); p.fSymbol = symbol; p.fCondition = check; p.fZeroArgsAllowed = zeroArgsAllowed; return p; }
/** * Create a pattern for pattern-matching and term rewriting * * @param symbol * @return IPattern */ public static IPatternSequence $ps(final ISymbol symbol) { return PatternSequence.valueOf(symbol, false); }
/** * @param nullAllowed * TODO * */ public static PatternSequence valueOf(final ISymbol symbol, final IExpr check, final boolean def, boolean zeroArgsAllowed) { PatternSequence p = new PatternSequence(); p.fSymbol = symbol; p.fCondition = check; p.fDefault = def; p.fZeroArgsAllowed = zeroArgsAllowed; return p; }
/** * * @param symbol * @param zeroArgsAllowed * if <code>true</code> 0 argument sequences are allowed for this pattern * @return */ public static IPatternSequence $ps(final ISymbol symbol, boolean zeroArgsAllowed) { return PatternSequence.valueOf(symbol, zeroArgsAllowed); }
/** * Create a pattern for pattern-matching and term rewriting * * @param symbol * @param check * additional condition which should be checked in pattern-matching * @return IPattern */ public static IPatternSequence $ps(final ISymbol symbol, final IExpr check) { if (symbol == null) { return PatternSequence.valueOf(null, check); } return PatternSequence.valueOf((Symbol) symbol, check); }
public static PatternSequence valueOf(final ISymbol symbol, boolean zeroArgsAllowed) { return valueOf(symbol, null, zeroArgsAllowed); }
/** * Create a pattern for pattern-matching and term rewriting * * @param symbol * @param check * additional condition which should be checked in pattern-matching * @param def * if <code>true</code>, the pattern can match to a default value associated with the AST's head the * pattern is used in. * @param zeroArgsAllowed * if <code>true</code> 0 argument sequences are allowed for this pattern * @return IPattern */ public static IPatternSequence $ps(final ISymbol symbol, final IExpr check, final boolean def, boolean zeroArgsAllowed) { return PatternSequence.valueOf(symbol, check, def, zeroArgsAllowed); }