Class TRS<V>
java.lang.Object
io.jenetics.ext.rewriting.TRS<V>
- All Implemented Interfaces:
TreeRewriter<V>, Serializable
This class represents a Tree Rewrite System, which consists of a set of
Tree Rewrite Rules.
final TRS<String> trs = TRS.parse(
"add(0,$x) -> $x",
"add(S($x),$y) -> S(add($x,$y))",
"mul(0,$x) -> 0",
"mul(S($x),$y) -> add(mul($x,$y),$y)"
);
// Converting the input tree into its normal form.
final TreeNode<String> tree = TreeNode.parse("add(S(0),S(mul(S(0),S(S(0)))))");
trs.rewrite(tree);
assert tree.equals(TreeNode.parse("S(S(S(S(0))))"));
- Since:
- 5.0
- Version:
- 5.0
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionTRS(ISeq<TreeRewriteRule<V>> rules) Create a new TRS from the given rewrite rules. -
Method Summary
Modifier and TypeMethodDescriptionbooleaninthashCode()<B> TRS<B> MapsthisTRS from typeVto typeB.Create a new TRS from the given rewrite rules.static <V> TRS<V> Create a new TRS from the given rewrite rules and type mapper.intApplies the rewriting to the given (mutable)tree.toString()Methods inherited from interface TreeRewriter
rewrite
-
Constructor Details
-
TRS
Create a new TRS from the given rewrite rules.- Parameters:
rules- the rewrite rules the TRS consists of- Throws:
NullPointerException- if the givenrulesarenullIllegalArgumentException- if the givenrulessequence is empty
-
-
Method Details
-
rewrite
Description copied from interface:TreeRewriterApplies the rewriting to the given (mutable)tree. The tree rewrite is done in place. Via thelimitparameter, the termination of the tree-rewrite process can be guaranteed.- Specified by:
rewritein interfaceTreeRewriter<V>- Parameters:
tree- the tree to be rewrittenlimit- the maximal number this rewrite rule is applied to the given tree. This guarantees the termination of the rewrite method.- Returns:
- the number of rewrites applied to the input
tree
-
map
MapsthisTRS from typeVto typeB.- Type Parameters:
B- the target type- Parameters:
mapper- the type mapper- Returns:
- a new TRS for the mapped type
- Throws:
NullPointerException- if themapperisnull
-
hashCode
-
equals
-
toString
-
parse
Create a new TRS from the given rewrite rules and type mapper.- Type Parameters:
V- the tree value type the rewriter is working on- Parameters:
mapper- the tree value type mapperrules- the rewrite rules- Returns:
- a new TRS
- Throws:
NullPointerException- if one of the arguments isnullIllegalArgumentException- if the givenrulessequence is empty
-
parse
Create a new TRS from the given rewrite rules.- Parameters:
rules- the rewrite rules- Returns:
- a new TRS
- Throws:
NullPointerException- if one of the arguments isnullIllegalArgumentException- if the givenrulessequence is empty
-