Package org.oristool.lello.ast
Class Brackets
java.lang.Object
org.oristool.lello.ast.Expression
org.oristool.lello.ast.Brackets
Represents an expression enclosed in brackets. It does not have any
particular behavior but it allows to determine how an expression was
parenthesized before being parsed; also, it allows to add redundant
parenthesis to an expression which is being formatted in order to enforce a
certain evaluation order in a program which will take as input that formatted
expression.
-
Field Summary
Fields inherited from class org.oristool.lello.ast.Expression
EPSILON
-
Constructor Summary
ConstructorDescriptionBrackets
(List<Expression> expressions) Initializes a new vector, which is a list of expressions enclosed in brackets.Brackets
(Expression enclosed) Initializes a new expression in brackets. -
Method Summary
Modifier and TypeMethodDescriptioncopy()
Creates a copy of this object.Evaluates this expression using the specified variable bindings.format
(FormatVisitor visitor) Formats this expression.getExpr()
Retrieves the enclosed expression.Retrieves the enclosed expressions, which are the components of the vector.isOne()
Checks whether this expression is equal to 1 (with respect to the EPSILON tolerance).isZero()
Checks whether this expression is equal to 0 (with respect to the EPSILON tolerance).simplify
(Bindings bindings, SymbolicVisitor visitor) Tries to simplify this expression.toString()
Retrieves the names of all the variables appearing in this expression.Methods inherited from class org.oristool.lello.ast.Expression
isOneNumber, isOneNumber, isZeroNumber, isZeroNumber
-
Constructor Details
-
Brackets
Initializes a new expression in brackets.- Parameters:
enclosed
- The enclosed expression.
-
Brackets
Initializes a new vector, which is a list of expressions enclosed in brackets.- Parameters:
expressions
- The enclosed expressions (vector components).
-
-
Method Details
-
getExpr
Retrieves the enclosed expression. If this object actually represents a vector an exception will be thrown.- Returns:
- The enclosed expression.
-
getExpressions
Retrieves the enclosed expressions, which are the components of the vector. This method will never throw an exception, however it should be used only when this object is being considered with the semantics of a vector.- Returns:
- The enclosed expressions (vector components).
-
eval
Description copied from class:Expression
Evaluates this expression using the specified variable bindings. Calling this method does not alter this expression.It is important to note that this method will not attempt any kind of simplification on the expression, which means that all the variables appearing in it must be either bound or correspond to Java static fields defined somewhere; if this is not the case an exception will be thrown.
- Specified by:
eval
in classExpression
- Parameters:
bindings
- Variable bindings.- Returns:
- The value of the expression.
-
simplify
Description copied from class:Expression
Tries to simplify this expression. Calling this method does not alter this expression.This method will not throw an exception if some variables appearing in the expression are not bound. However it may still be able to cancel a variable, if an appropriate rule is found.
- Specified by:
simplify
in classExpression
- Parameters:
bindings
- Variable bindings.visitor
- The visitor implementing the simplification rules.- Returns:
- A simplified expression if an appropriate rule was found, the same expression otherwise.
-
isZero
Description copied from class:Expression
Checks whether this expression is equal to 0 (with respect to the EPSILON tolerance).To decrease the probability that this method will return DONTKNOW, simplify or eval should be preventively called on this expression.
- Specified by:
isZero
in classExpression
- Returns:
- YES if this expression is equal to 0, NO if it is not, DONTKNOW if it is not known.
-
isOne
Description copied from class:Expression
Checks whether this expression is equal to 1 (with respect to the EPSILON tolerance).To decrease the probability that this method will return DONTKNOW, simplify or eval should be preventively called on this expression.
- Specified by:
isOne
in classExpression
- Returns:
- YES if this expression is equal to 1, NO if it is not, DONTKNOW if it is not known.
-
variables
Description copied from class:Expression
Retrieves the names of all the variables appearing in this expression.- Specified by:
variables
in classExpression
- Returns:
- set of variables
-
copy
Creates a copy of this object.- Specified by:
copy
in classExpression
- Returns:
- a copy
-
format
Description copied from class:Expression
Formats this expression.- Overrides:
format
in classExpression
- Parameters:
visitor
- The visitor implementing the formatting rules.- Returns:
- The formatted string.
-
toString
- Overrides:
toString
in classExpression
-