summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/commands/ChainCommand.java
diff options
context:
space:
mode:
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/commands/ChainCommand.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/commands/ChainCommand.java34
1 files changed, 30 insertions, 4 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/commands/ChainCommand.java b/BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/commands/ChainCommand.java
index aa85f75..1324586 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/commands/ChainCommand.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/parserutils/pratt/commands/ChainCommand.java
@@ -8,21 +8,47 @@ import bjc.utils.parserutils.pratt.Token;
import java.util.Set;
+/**
+ * Create a new chained operator.
+ *
+ * @author bjculkin
+ *
+ * @param <K>
+ * The key type of the tokens.
+ *
+ * @param <V>
+ * The value type of the tokens.
+ *
+ * @param <C>
+ * The state type of the parser.
+ */
public class ChainCommand<K, V, C> extends BinaryPostCommand<K, V, C> {
private Set<K> chainWith;
private Token<K, V> chain;
- public ChainCommand(int leftPower, Set<K> chainSet, Token<K, V> chainMarker) {
- super(leftPower);
+ /**
+ * Create a new chained operator.
+ *
+ * @param precedence
+ * The precedence of this operator.
+ *
+ * @param chainSet
+ * The operators to chain with.
+ *
+ * @param chainMarker
+ * The token to use as the node in the AST.
+ */
+ public ChainCommand(int precedence, Set<K> chainSet, Token<K, V> chainMarker) {
+ super(precedence);
chainWith = chainSet;
chain = chainMarker;
}
@Override
- public ITree<Token<K, V>> denote(ITree<Token<K, V>> operand, Token<K, V> operator,
- ParserContext<K, V, C> ctx) throws ParserException {
+ public ITree<Token<K, V>> denote(ITree<Token<K, V>> operand, Token<K, V> operator, ParserContext<K, V, C> ctx)
+ throws ParserException {
ITree<Token<K, V>> tree = ctx.parse.parseExpression(1 + leftBinding(), ctx.tokens, ctx.state, false);
ITree<Token<K, V>> res = new Tree<>(operator, operand, tree);