public class NodeInliningHelper
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static interface |
NodeInliningHelper.PentaFunction<A,B,C,D,E,R> |
static interface |
NodeInliningHelper.QuadFunction<A,B,C,D,R> |
static interface |
NodeInliningHelper.TriFunction<A,B,C,R> |
Constructor and Description |
---|
NodeInliningHelper() |
Modifier and Type | Method and Description |
---|---|
static <A extends IExpressionNode,B extends IExpressionNode,C extends IExpressionNode,D extends IExpressionNode,E extends IExpressionNode,R extends IExpressionNode> |
tryInline(R node,
A nodeA,
B nodeB,
C nodeC,
D nodeD,
E nodeE,
NodeInliningHelper.PentaFunction<A,B,C,D,E,R> changer,
NodeInliningHelper.PentaFunction<A,B,C,D,E,R> inlinedChanger) |
static <A extends IExpressionNode,B extends IExpressionNode,C extends IExpressionNode,D extends IExpressionNode,R extends IExpressionNode> |
tryInline(R node,
A nodeA,
B nodeB,
C nodeC,
D nodeD,
NodeInliningHelper.QuadFunction<A,B,C,D,R> changer,
NodeInliningHelper.QuadFunction<A,B,C,D,R> inlinedChanger) |
static <A extends IExpressionNode,B extends IExpressionNode,C extends IExpressionNode,R extends IExpressionNode> |
tryInline(R node,
A nodeA,
B nodeB,
C nodeC,
NodeInliningHelper.TriFunction<A,B,C,R> changer,
NodeInliningHelper.TriFunction<A,B,C,R> inlinedChanger) |
static <F extends IExpressionNode,T extends IExpressionNode> |
tryInline(T node,
F subNode,
java.util.function.Function<F,T> changer,
java.util.function.Function<F,T> inlinedChanger)
Attempts to inline a specified node with only 1 input (a unary node)
|
static <L extends IExpressionNode,R extends IExpressionNode,T extends IExpressionNode> |
tryInline(T node,
L subNodeLeft,
R subNodeRight,
java.util.function.BiFunction<L,R,T> changer,
java.util.function.BiFunction<L,R,T> inlinedChanger) |
public static <F extends IExpressionNode,T extends IExpressionNode> T tryInline(T node, F subNode, java.util.function.Function<F,T> changer, java.util.function.Function<F,T> inlinedChanger)
node
- The node that is attempting to inline itselfsubNode
- The sub-node that should be inlinedchanger
- A function that will take in the inlined sub node and produce an inlined version of the node
attempting to inline itself.inlinedChanger
- A changer that should return an immutable node from the inlined version.public static <L extends IExpressionNode,R extends IExpressionNode,T extends IExpressionNode> T tryInline(T node, L subNodeLeft, R subNodeRight, java.util.function.BiFunction<L,R,T> changer, java.util.function.BiFunction<L,R,T> inlinedChanger)
public static <A extends IExpressionNode,B extends IExpressionNode,C extends IExpressionNode,R extends IExpressionNode> R tryInline(R node, A nodeA, B nodeB, C nodeC, NodeInliningHelper.TriFunction<A,B,C,R> changer, NodeInliningHelper.TriFunction<A,B,C,R> inlinedChanger)
public static <A extends IExpressionNode,B extends IExpressionNode,C extends IExpressionNode,D extends IExpressionNode,R extends IExpressionNode> R tryInline(R node, A nodeA, B nodeB, C nodeC, D nodeD, NodeInliningHelper.QuadFunction<A,B,C,D,R> changer, NodeInliningHelper.QuadFunction<A,B,C,D,R> inlinedChanger)
public static <A extends IExpressionNode,B extends IExpressionNode,C extends IExpressionNode,D extends IExpressionNode,E extends IExpressionNode,R extends IExpressionNode> R tryInline(R node, A nodeA, B nodeB, C nodeC, D nodeD, E nodeE, NodeInliningHelper.PentaFunction<A,B,C,D,E,R> changer, NodeInliningHelper.PentaFunction<A,B,C,D,E,R> inlinedChanger)