Class NaryToBinaryRule
java.lang.Object
com.singularsys.extensions.rewrite.AbstractRewrite
com.singularsys.extensions.rewrite.NaryToBinaryRule
- All Implemented Interfaces:
RewriteRuleI,JepComponent,Serializable
Converts
NaryBinaryFunction functions with multiple
arguments to nested binary functions.
e.g. +(a,b,c) -> (a+b)+c.
If the function has an operators
it must have either left (a+b)+c right binding a=(b=c) Operator.isRightBinding()
Functions without operators assumed to be left associative.
This rule is the inverse of BinaryToNaryRule and the two should not be used together.
#see @link Operator#isLeftBinding()- Since:
- Jep 4.1 extensions 2.2
- See Also:
-
Field Summary
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionapply(ASTFunNode node, List<Node> children) Rewrites the nodebooleantest(ASTFunNode node, List<Node> children) Returns true if node needs to be rewritten, according to this rule.Methods inherited from class com.singularsys.extensions.rewrite.AbstractRewrite
getLightWeightInstance, init, toString
-
Constructor Details
-
NaryToBinaryRule
public NaryToBinaryRule()
-
-
Method Details
-
test
Description copied from interface:RewriteRuleIReturns true if node needs to be rewritten, according to this rule.- Throws:
ParseException- if for some reason rewriting cannot be performed.
-
apply
Description copied from interface:RewriteRuleIRewrites the node- Throws:
ParseException
-