diff options
| author | Ben Culkin <scorpress@gmail.com> | 2022-09-27 19:18:09 -0400 |
|---|---|---|
| committer | Ben Culkin <scorpress@gmail.com> | 2022-09-27 19:18:09 -0400 |
| commit | 02af075e89fbdeb22575f235a3acb2607e0b4edf (patch) | |
| tree | bf31e1157732b1c421522301cf4d2a8ee7f4e3fb /JPratt/src/main/java | |
| parent | cea3e47938322b97c318dea38dc0d649e196dc1b (diff) | |
Minor changes
Diffstat (limited to 'JPratt/src/main/java')
12 files changed, 21 insertions, 14 deletions
diff --git a/JPratt/src/main/java/bjc/pratt/blocks/GrammarParseBlock.java b/JPratt/src/main/java/bjc/pratt/blocks/GrammarParseBlock.java index 3f79665..b0a3844 100644 --- a/JPratt/src/main/java/bjc/pratt/blocks/GrammarParseBlock.java +++ b/JPratt/src/main/java/bjc/pratt/blocks/GrammarParseBlock.java @@ -5,7 +5,6 @@ import java.util.function.Function; import bjc.pratt.ParserContext; import bjc.pratt.PrattParser; import bjc.pratt.commands.CommandResult; -import bjc.pratt.commands.CommandResult.Status; import bjc.pratt.tokens.Token; import bjc.pratt.tokens.TokenStream; import bjc.data.Tree; diff --git a/JPratt/src/main/java/bjc/pratt/blocks/ParseBlock.java b/JPratt/src/main/java/bjc/pratt/blocks/ParseBlock.java index fede096..aa2fa2e 100644 --- a/JPratt/src/main/java/bjc/pratt/blocks/ParseBlock.java +++ b/JPratt/src/main/java/bjc/pratt/blocks/ParseBlock.java @@ -2,8 +2,6 @@ package bjc.pratt.blocks; import bjc.pratt.ParserContext; import bjc.pratt.commands.CommandResult; -import bjc.pratt.tokens.Token; -import bjc.data.Tree; import bjc.utils.parserutils.ParserException; /** diff --git a/JPratt/src/main/java/bjc/pratt/blocks/TriggeredParseBlock.java b/JPratt/src/main/java/bjc/pratt/blocks/TriggeredParseBlock.java index df17595..d404eea 100644 --- a/JPratt/src/main/java/bjc/pratt/blocks/TriggeredParseBlock.java +++ b/JPratt/src/main/java/bjc/pratt/blocks/TriggeredParseBlock.java @@ -5,8 +5,6 @@ import java.util.function.UnaryOperator; import bjc.pratt.ParserContext; import bjc.pratt.commands.CommandResult; import bjc.pratt.commands.CommandResult.Status; -import bjc.pratt.tokens.Token; -import bjc.data.Tree; import bjc.utils.parserutils.ParserException; /** diff --git a/JPratt/src/main/java/bjc/pratt/commands/AbstractInitialCommand.java b/JPratt/src/main/java/bjc/pratt/commands/AbstractInitialCommand.java index 48f9ba7..3e4f3a9 100644 --- a/JPratt/src/main/java/bjc/pratt/commands/AbstractInitialCommand.java +++ b/JPratt/src/main/java/bjc/pratt/commands/AbstractInitialCommand.java @@ -2,7 +2,6 @@ package bjc.pratt.commands; import bjc.pratt.ParserContext; import bjc.pratt.tokens.Token; -import bjc.data.Tree; import bjc.utils.parserutils.ParserException; /** diff --git a/JPratt/src/main/java/bjc/pratt/commands/InitialCommand.java b/JPratt/src/main/java/bjc/pratt/commands/InitialCommand.java index ba544b4..0cfa290 100644 --- a/JPratt/src/main/java/bjc/pratt/commands/InitialCommand.java +++ b/JPratt/src/main/java/bjc/pratt/commands/InitialCommand.java @@ -2,7 +2,6 @@ package bjc.pratt.commands; import bjc.pratt.ParserContext; import bjc.pratt.tokens.Token; -import bjc.data.Tree; import bjc.utils.parserutils.ParserException; /** diff --git a/JPratt/src/main/java/bjc/pratt/commands/impls/BlockInitialCommand.java b/JPratt/src/main/java/bjc/pratt/commands/impls/BlockInitialCommand.java index 1d54996..07d9a76 100644 --- a/JPratt/src/main/java/bjc/pratt/commands/impls/BlockInitialCommand.java +++ b/JPratt/src/main/java/bjc/pratt/commands/impls/BlockInitialCommand.java @@ -5,7 +5,6 @@ import bjc.pratt.blocks.ParseBlock; import bjc.pratt.commands.AbstractInitialCommand; import bjc.pratt.commands.CommandResult; import bjc.pratt.tokens.Token; -import bjc.data.Tree; import bjc.utils.parserutils.ParserException; /** diff --git a/JPratt/src/main/java/bjc/pratt/commands/impls/DefaultInitialCommand.java b/JPratt/src/main/java/bjc/pratt/commands/impls/DefaultInitialCommand.java index 2dfc576..8d28b57 100644 --- a/JPratt/src/main/java/bjc/pratt/commands/impls/DefaultInitialCommand.java +++ b/JPratt/src/main/java/bjc/pratt/commands/impls/DefaultInitialCommand.java @@ -4,7 +4,6 @@ import bjc.pratt.ParserContext; import bjc.pratt.commands.CommandResult; import bjc.pratt.commands.InitialCommand; import bjc.pratt.tokens.Token; -import bjc.data.Tree; import bjc.utils.parserutils.ParserException; /** diff --git a/JPratt/src/main/java/bjc/pratt/commands/impls/DenestingCommand.java b/JPratt/src/main/java/bjc/pratt/commands/impls/DenestingCommand.java index 4935c81..de39e0b 100644 --- a/JPratt/src/main/java/bjc/pratt/commands/impls/DenestingCommand.java +++ b/JPratt/src/main/java/bjc/pratt/commands/impls/DenestingCommand.java @@ -6,7 +6,6 @@ import bjc.pratt.commands.CommandResult; import bjc.pratt.commands.CommandResult.Status; import bjc.pratt.commands.InitialCommand; import bjc.pratt.tokens.Token; -import bjc.data.Tree; import bjc.utils.parserutils.ParserException; /** diff --git a/JPratt/src/main/java/bjc/pratt/commands/impls/InitialCommands.java b/JPratt/src/main/java/bjc/pratt/commands/impls/InitialCommands.java index 9801788..bfc4e4f 100644 --- a/JPratt/src/main/java/bjc/pratt/commands/impls/InitialCommands.java +++ b/JPratt/src/main/java/bjc/pratt/commands/impls/InitialCommands.java @@ -9,8 +9,6 @@ import java.util.function.UnaryOperator; import bjc.pratt.blocks.ParseBlock; import bjc.pratt.commands.InitialCommand; import bjc.pratt.tokens.Token; -import bjc.utils.parserutils.ParserException; -import bjc.data.SimpleTree; import bjc.data.Tree; /** @@ -211,6 +209,6 @@ public class InitialCommands { * @return A command that implements a panfix operator */ public static <K, V, C> InitialCommand<K, V, C> panfix(final int precedence, final K term, final Token<K, V> marker) { - return new PanfixCommand<K, V, C>(marker, term, precedence); + return new PanfixCommand<>(marker, term, precedence); } }
\ No newline at end of file diff --git a/JPratt/src/main/java/bjc/pratt/commands/impls/LeafCommand.java b/JPratt/src/main/java/bjc/pratt/commands/impls/LeafCommand.java index c702323..20fb3d4 100644 --- a/JPratt/src/main/java/bjc/pratt/commands/impls/LeafCommand.java +++ b/JPratt/src/main/java/bjc/pratt/commands/impls/LeafCommand.java @@ -4,7 +4,6 @@ import bjc.pratt.ParserContext; import bjc.pratt.commands.CommandResult; import bjc.pratt.commands.InitialCommand; import bjc.pratt.tokens.Token; -import bjc.data.Tree; import bjc.data.SimpleTree; import bjc.utils.parserutils.ParserException; diff --git a/JPratt/src/main/java/bjc/pratt/commands/impls/PanfixCommand.java b/JPratt/src/main/java/bjc/pratt/commands/impls/PanfixCommand.java index 06e69c1..04ad370 100644 --- a/JPratt/src/main/java/bjc/pratt/commands/impls/PanfixCommand.java +++ b/JPratt/src/main/java/bjc/pratt/commands/impls/PanfixCommand.java @@ -9,11 +9,26 @@ import bjc.pratt.commands.CommandResult.Status; import bjc.pratt.tokens.Token; import bjc.utils.parserutils.ParserException; +/** + * Represents a 'panfix' command, one where the operator is repeated prefix, infix and postfix. + * @author bjcul + * + * @param <K> The key type of the token + * @param <V> The value type of the token + * @param <C> The context type of the parser + */ public final class PanfixCommand<K, V, C> implements InitialCommand<K, V, C> { private final Token<K, V> marker; private final K term; private final int precedence; + /** + * Create a new panfix command. + * + * @param marker The marker token. + * @param term The value to use as the root of the result-tree + * @param precedence The precedence for this command + */ public PanfixCommand(Token<K, V> marker, K term, int precedence) { this.marker = marker; this.term = term; diff --git a/JPratt/src/main/java/bjc/pratt/tokens/StringTokenStream.java b/JPratt/src/main/java/bjc/pratt/tokens/StringTokenStream.java index 8c7fcec..70876f2 100644 --- a/JPratt/src/main/java/bjc/pratt/tokens/StringTokenStream.java +++ b/JPratt/src/main/java/bjc/pratt/tokens/StringTokenStream.java @@ -33,6 +33,9 @@ public class StringTokenStream extends TokenStream<String, String> { @Override public Token<String, String> current() { + // Prime stream if necessary + if (curr == null) + return next(); return curr; } @@ -70,6 +73,8 @@ public class StringTokenStream extends TokenStream<String, String> { @Override public void rollback() { iter.rollback(); + + curr = iter.current(); } @Override |
