public class Blank extends ExprImpl implements IPattern
_
")Modifier and Type | Field and Description |
---|---|
protected IExpr |
fCondition
The expression which should check this pattern
|
ASTID, BLANKID, COMPLEXID, DOUBLECOMPLEXID, DOUBLEID, FRACTIONID, INTEGERID, METHODSYMBOLID, PATTERNID, STRINGID, SYMBOLID
Constructor and Description |
---|
Blank() |
Blank(IExpr condition) |
Blank(IExpr condition,
boolean def) |
Modifier and Type | Method and Description |
---|---|
<T> T |
accept(IVisitor<T> visitor)
Accept a visitor with return type T
|
boolean |
accept(IVisitorBoolean visitor)
Accept a visitor with return type
boolean |
int |
accept(IVisitorInt visitor)
Accept a visitor with return type
int |
long |
accept(IVisitorLong visitor)
Accept a visitor with return type
long |
int[] |
addPattern(PatternMap patternMap,
java.util.Map<IExpr,java.lang.Integer> patternIndexMap)
Add this pattern to the given
patternMap and patternIndexMap . |
int |
compareTo(IExpr expr)
Compares this expression with the specified expression for order.
|
boolean |
equals(java.lang.Object obj)
Test if this is equal to b.
|
boolean |
equivalent(IPatternObject patternObject,
PatternMap pm1,
PatternMap pm2)
Check if the two left-hand-side pattern expressions are equivalent.
|
java.lang.String |
fullFormString()
Return the
FullForm() of this expression |
IExpr |
getCondition()
Get the associated condition if available
|
int |
getEvalFlags()
Get the flags which should be set in an AST structure, if the structure contains a pattern or pattern sequence.
|
int |
getIndex(PatternMap pm)
Get the pattern-matchers index in the
PatternMap |
ISymbol |
getSymbol()
Get the associated symbol for this pattern-object
|
int |
hashCode()
Hashcode of this Element.
|
ISymbol |
head()
If this object is an instance of
IAST get the first element
(offset 0) of the IAST list (i.e. get(0) ). |
int |
hierarchy()
A unique integer ID for the implementation of this expression
|
java.lang.String |
internalJavaString(boolean symbolsAsFactoryMethod,
int depth,
boolean useOperators)
Return the internal Java form of this expression.
|
boolean |
isBlank()
Test if this expression is a
Blank[] object |
boolean |
isCase(IExpr that)
Groovy operator overloading
|
boolean |
isConditionMatched(IExpr expr,
PatternMap patternMap)
Return
true , if the expression fullfills the patterns
additional condition |
boolean |
isFreeOfPatterns()
Returns
true , if all of the elements in the
subexpressions or the expression itself, are no pattern objects. |
boolean |
isPatternDefault()
Return
true , if the expression is a pattern object with an
associated default value (for example 0 is the default value
for the addition expression x_+y_. |
boolean |
isPatternExpr()
Test if this expression or a subexpression is a pattern object.
|
boolean |
matchPattern(IExpr expr,
PatternMap patternMap)
Check if this pattern object matches the given
expr . |
java.lang.String |
toString() |
static IPattern |
valueOf() |
static IPattern |
valueOf(IExpr condition) |
IExpr |
variables2Slots(java.util.Map<IExpr,IExpr> map,
java.util.Collection<IExpr> variableCollector)
Convert the variables (i.e. expressions of type
ISymbol
which aren't constants) in this expression into Slot[] s. |
$div, $minus, $plus, $times, $up, abs, and, apply, apply, asType, conjugate, copy, dec, divide, egcd, evalComplex, evalDouble, evalNumber, evalSignedNumber, factory, gcd, getAt, inc, internalFormString, internalScalaString, inverse, leafCount, leaves, minus, mod, multiply, negate, negative, opposite, optional, or, plus, power, power, remainder, replaceAll, replaceAll, replacePart, replaceRepeated, replaceRepeated, replaceRepeated, replaceSlots, signum, subtract, sum, times, topHead, toScript, toScriptFactory
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
$div, $minus, $plus, $times, $up, and, apply, apply, asType, dec, divide, evalComplex, evalDouble, evalNumber, evalSignedNumber, evaluate, evaluateHead, getAt, getField, ifPresent, inc, internalFormString, internalScalaString, inverse, isAllExpanded, isAnd, isArcCos, isArcCosh, isArcSin, isArcSinh, isArcTan, isArcTanh, isAST, isAST, isAST, isAST, isAST, isAST, isAST, isASTSizeGE, isAtom, isComplex, isComplexInfinity, isComplexNumeric, isCondition, isConstant, isCos, isCosh, isDerivative, isDirectedInfinity, isE, isExpanded, isFalse, isFlatAST, isFraction, isFree, isFree, isFree, isFreeAST, isFreeAST, isFunction, isGEOrdered, isGTOrdered, isIndeterminate, isInfinity, isInteger, isIntegerResult, isLEOrdered, isList, isListOfLists, isLog, isLTOrdered, isMatrix, isMember, isMember, isMinusOne, isModule, isNegative, isNegativeInfinity, isNegativeResult, isNonNegativeResult, isNot, isNumber, isNumEqualInteger, isNumEqualRational, isNumeric, isNumericFunction, isNumericMode, isNumIntValue, isOne, isONE, isOr, isOrderlessAST, isPattern, isPatternSequence, isPi, isPlus, isPlusTimesPower, isPolynomial, isPolynomial, isPolynomialOfMaxDegree, isPositive, isPositiveResult, isPower, isPresent, isRational, isRationalResult, isRationalValue, isRealResult, isRuleAST, isSame, isSame, isSequence, isSignedNumber, isSin, isSinh, isSlot, isSlotSequence, isSpan, isSymbol, isTan, isTanh, isTimes, isTrue, isUnit, isValue, isVariable, isVector, isZero, isZERO, leafCount, leaves, minus, mod, multiply, multiply, negative, ofNullable, opposite, optional, or, orElse, orElseGet, orElseThrow, plus, power, power, reciprocal, replaceAll, replaceAll, replacePart, replaceRepeated, replaceRepeated, replaceSlots, signum, subtract, sum, times, timesDistributed, topHead
protected final IExpr fCondition
public Blank()
public Blank(IExpr condition)
public Blank(IExpr condition, boolean def)
public static IPattern valueOf()
public int[] addPattern(PatternMap patternMap, java.util.Map<IExpr,java.lang.Integer> patternIndexMap)
IPatternObject
patternMap
and patternIndexMap
.addPattern
in interface IPatternObject
patternMap
- a map from a pattern to a possibly found value during pattern-matching.patternIndexMap
- a map from the pattern symbol to the intern array indexpublic <T> T accept(IVisitor<T> visitor)
public boolean accept(IVisitorBoolean visitor)
boolean
public int accept(IVisitorInt visitor)
int
public long accept(IVisitorLong visitor)
long
public int compareTo(IExpr expr)
IExpr
public boolean equivalent(IPatternObject patternObject, PatternMap pm1, PatternMap pm2)
f[x_,y_]
is equivalent to f[a_,b_]
)equivalent
in interface IPatternObject
patternObject
- pm1
- pm2
- public boolean equals(java.lang.Object obj)
edu.jas.structure.Element
equals
in interface edu.jas.structure.Element<IExpr>
equals
in class java.lang.Object
public boolean matchPattern(IExpr expr, PatternMap patternMap)
IPatternObject
expr
.matchPattern
in interface IPatternObject
expr
- the expression which should be matched.patternMap
- a map from a pattern to a possibly found value during pattern-matching.public IExpr getCondition()
IPatternObject
getCondition
in interface IPatternObject
null
if no condition is associated.public int getIndex(PatternMap pm)
IPatternObject
PatternMap
getIndex
in interface IPatternObject
pm
- the PatternMap from which we determine the index.public int getEvalFlags()
IPatternObject
getEvalFlags
in interface IPatternObject
public ISymbol getSymbol()
IPatternObject
getSymbol
in interface IPatternObject
public int hashCode()
edu.jas.structure.Element
hashCode
in interface edu.jas.structure.Element<IExpr>
hashCode
in class java.lang.Object
public ISymbol head()
ExprImpl
IAST
get the first element
(offset 0) of the IAST
list (i.e. get(0) ).public int hierarchy()
IExpr
public boolean isBlank()
Blank[]
objectpublic boolean isCase(IExpr that)
public boolean isPatternDefault()
true
, if the expression is a pattern object with an
associated default value (for example 0
is the default value
for the addition expression x_+y_.
)isPatternDefault
in interface IExpr
public final boolean isPatternExpr()
IAST
with flag
IAST.CONTAINS_PATTERN_EXPR
.isPatternExpr
in interface IExpr
public boolean isFreeOfPatterns()
true
, if all of the elements in the
subexpressions or the expression itself, are no pattern objects.isFreeOfPatterns
in interface IExpr
true
if the expression contains no
IPatternObject
.public boolean isConditionMatched(IExpr expr, PatternMap patternMap)
IPattern
true
, if the expression fullfills the patterns
additional conditionisConditionMatched
in interface IPattern
public java.lang.String internalJavaString(boolean symbolsAsFactoryMethod, int depth, boolean useOperators)
ExprImpl
internalJavaString
in interface IExpr
internalJavaString
in class ExprImpl
symbolsAsFactoryMethod
- if true
use the F.symbol()
method,
otherwise print the symbol name.depth
- the recursion depth of this call. 0
indicates
"recurse without a limit".useOperators
- use operators instead of function names for representation of
Plus, Times, Power,...public java.lang.String fullFormString()
IExpr
FullForm()
of this expressionfullFormString
in interface IExpr
fullFormString
in class ExprImpl
public java.lang.String toString()
toString
in class java.lang.Object
public IExpr variables2Slots(java.util.Map<IExpr,IExpr> map, java.util.Collection<IExpr> variableCollector)
ISymbol
which aren't constants) in this expression into Slot[] s.variables2Slots
in interface IExpr
variables2Slots
in class ExprImpl
map
- for every given symbol argument return the associated unique
slot from this mapvariableCollector
- collects the variables which are used in the replacement
processF.NIL
if no variable symbol was found.