-
- All Implemented Interfaces:
-
it.unibo.alchemist.expressions.interfaces.IExpression,java.io.Serializable,java.lang.Cloneable
public final class Expression implements IExpression
-
-
Constructor Summary
Constructors Constructor Description Expression(ITree tree)This constructor does not do any parsing, and thus is much faster than the other one. Expression(ITreeNode<out Object> n)Expression(String s)This constructor parses the String into an Expression.
-
Method Summary
Modifier and Type Method Description ITreegetAST()ITreeNode<out Object>getRootNode()ITreeNode<out Object>calculate(Map<HashString, ITreeNode<out Object>> map)ITreeNode<out Object>getLeftChildren()ITreeNode<out Object>getRightChildren()ObjectgetRootNodeData()TypegetRootNodeType()booleanmatches(IExpression expr, Map<HashString, ITreeNode<out Object>> matches)Tries to match this expression with expr. booleanmayMatch(IExpression expr)This match method test whether or not two expressions might match. booleansyntacticMatch(IExpression e)Runs a syntactic match against the e. StringtoString()ITreeupdateMatchedVar(Map<HashString, ITreeNode<out Object>> matches)-
-
Constructor Detail
-
Expression
Expression(ITree tree)
This constructor does not do any parsing, and thus is much faster than the other one.- Parameters:
tree- the ITree which represents this Expression
-
Expression
Expression(String s)
This constructor parses the String into an Expression.- Parameters:
s- The String representing the expression
-
-
Method Detail
-
getRootNode
ITreeNode<out Object> getRootNode()
-
calculate
ITreeNode<out Object> calculate(Map<HashString, ITreeNode<out Object>> map)
- Parameters:
map- the map of the matches.
-
getLeftChildren
ITreeNode<out Object> getLeftChildren()
-
getRightChildren
ITreeNode<out Object> getRightChildren()
-
getRootNodeData
Object getRootNodeData()
-
getRootNodeType
Type getRootNodeType()
-
matches
boolean matches(IExpression expr, Map<HashString, ITreeNode<out Object>> matches)
Tries to match this expression with expr. The matching rules are: (i) a variable matches everything; (ii) a constant value matches an identical constant value; (iii) a number matches an identical number or an operator, (iv) operators match everything but constants, (v) comparators match numbers and operators (verifying the values); (vi) expr type can't be comparator; (vii) add and rem operators work only with lists.
- Parameters:
expr- the expression to match
-
mayMatch
boolean mayMatch(IExpression expr)
This match method test whether or not two expressions might match. It can be used to evaluate dependencies in a general fashion, it does not check if all the relations are satisfied (e.g. if applying the comparators) but makes a sort of "type checking". If you want to compare two templates, this is the way to go.
- Parameters:
expr- the expression to verify the possibility of future matches
-
syntacticMatch
boolean syntacticMatch(IExpression e)
Runs a syntactic match against the e.
- Parameters:
e- the expression to match with
-
updateMatchedVar
ITree updateMatchedVar(Map<HashString, ITreeNode<out Object>> matches)
-
-
-
-