summaryrefslogtreecommitdiff
path: root/JPratt/src/main/java/bjc/pratt/commands/ChainCommand.java
diff options
context:
space:
mode:
authorbjculkin <bjculkin@WIT-136XG42.wvu-ad.wvu.edu>2017-04-12 10:46:51 -0400
committerbjculkin <bjculkin@WIT-136XG42.wvu-ad.wvu.edu>2017-04-12 10:46:51 -0400
commitf394306a4b65a3328551f9f6b8d4abff8bfd5b27 (patch)
tree08b0de69bf15ae49077851eecfa3ca2efbc9e736 /JPratt/src/main/java/bjc/pratt/commands/ChainCommand.java
parent694bed833470393ee00eae0a85bff0c6c90e692a (diff)
Package reorganization
Diffstat (limited to 'JPratt/src/main/java/bjc/pratt/commands/ChainCommand.java')
-rw-r--r--JPratt/src/main/java/bjc/pratt/commands/ChainCommand.java74
1 files changed, 0 insertions, 74 deletions
diff --git a/JPratt/src/main/java/bjc/pratt/commands/ChainCommand.java b/JPratt/src/main/java/bjc/pratt/commands/ChainCommand.java
deleted file mode 100644
index 4e471d0..0000000
--- a/JPratt/src/main/java/bjc/pratt/commands/ChainCommand.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package bjc.pratt.commands;
-
-import java.util.Set;
-
-import bjc.pratt.ParserContext;
-import bjc.pratt.Token;
-import bjc.utils.data.ITree;
-import bjc.utils.data.Tree;
-import bjc.utils.parserutils.ParserException;
-
-/**
- * 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 final Set<K> chainWith;
-
- private final Token<K, V> chain;
-
- /**
- * 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(final int precedence, final Set<K> chainSet, final Token<K, V> chainMarker) {
- super(precedence);
-
- chainWith = chainSet;
- chain = chainMarker;
- }
-
- @Override
- public ITree<Token<K, V>> denote(final ITree<Token<K, V>> operand, final Token<K, V> operator,
- final ParserContext<K, V, C> ctx) throws ParserException {
- final ITree<Token<K, V>> tree = ctx.parse.parseExpression(1 + leftBinding(), ctx.tokens, ctx.state,
- false);
-
- final ITree<Token<K, V>> res = new Tree<>(operator, operand, tree);
-
- if (chainWith.contains(ctx.tokens.current().getKey())) {
- final Token<K, V> tok = ctx.tokens.current();
- ctx.tokens.next();
-
- final ITree<Token<K, V>> other = denote(tree, tok,
- new ParserContext<>(ctx.tokens, ctx.parse, ctx.state));
-
- return new Tree<>(chain, res, other);
- }
-
- return res;
- }
-
- @Override
- public int nextBinding() {
- return leftBinding() - 1;
- }
-} \ No newline at end of file