From c3a5210cbcda9b5a80f37c31698e35ca6fb5a2d8 Mon Sep 17 00:00:00 2001 From: Ben Culkin Date: Sun, 25 Jun 2023 15:53:08 -0400 Subject: Minor cleanups --- .../bjc/pratt/examples/lang/PrattParserTest.java | 54 +++++++++++----------- .../java/bjc/pratt/blocks/GrammarParseBlock.java | 4 +- .../main/java/bjc/pratt/parsing/package-info.java | 1 + 3 files changed, 29 insertions(+), 30 deletions(-) create mode 100644 JPratt/src/main/java/bjc/pratt/parsing/package-info.java (limited to 'JPratt') diff --git a/JPratt/src/examples/java/bjc/pratt/examples/lang/PrattParserTest.java b/JPratt/src/examples/java/bjc/pratt/examples/lang/PrattParserTest.java index ac5aa12..a85b664 100644 --- a/JPratt/src/examples/java/bjc/pratt/examples/lang/PrattParserTest.java +++ b/JPratt/src/examples/java/bjc/pratt/examples/lang/PrattParserTest.java @@ -127,45 +127,43 @@ public class PrattParserTest { final TestContext ctx = new TestContext(); - final Scanner scn = new Scanner(System.in); + try (Scanner scn = new Scanner(System.in)) { + System.out.print("Enter a command (blank line to exit): "); + String ln = scn.nextLine(); - System.out.print("Enter a command (blank line to exit): "); - String ln = scn.nextLine(); + while (!ln.trim().equals("")) { + final Iterator> tokens = preprocessInput(ops, reserved, filtered, ln, ctx); - while (!ln.trim().equals("")) { - final Iterator> tokens = preprocessInput(ops, reserved, filtered, ln, ctx); + try { + final StringTokenStream tokenStream = new StringTokenStream(tokens); - try { - final StringTokenStream tokenStream = new StringTokenStream(tokens); + /* + * Prime stream. + */ + tokenStream.next(); - /* - * Prime stream. - */ - tokenStream.next(); + final CommandResult rawTree = parser.parseExpression(0, tokenStream, ctx, true); - final CommandResult rawTree = parser.parseExpression(0, tokenStream, ctx, true); + if (rawTree.status != Status.SUCCESS) { + System.out.println("Command parsing failed."); + } else { + if (!tokenStream.headIs("(end)")) { + System.out.println("\nMultiple expressions on line"); + } - if (rawTree.status != Status.SUCCESS) { - System.out.println("Command parsing failed."); - } else { - if (!tokenStream.headIs("(end)")) { - System.out.println("\nMultiple expressions on line"); + System.out.printf("\nParsed expression:\n%s", rawTree.success()); } - - System.out.printf("\nParsed expression:\n%s", rawTree.success()); + } catch (ParserException pex) { + pex.printStackTrace(); } - } catch (ParserException pex) { - pex.printStackTrace(); + + System.out.print("\nEnter a command (blank line to exit): "); + ln = scn.nextLine(); } - System.out.print("\nEnter a command (blank line to exit): "); - ln = scn.nextLine(); + System.out.println(); + System.out.printf("\nContext is: %s\n", ctx); } - - System.out.println(); - System.out.printf("\nContext is: %s\n", ctx); - - scn.close(); } private static Iterator> preprocessInput(final Set oops, final Set reservd, diff --git a/JPratt/src/main/java/bjc/pratt/blocks/GrammarParseBlock.java b/JPratt/src/main/java/bjc/pratt/blocks/GrammarParseBlock.java index b0a3844..b18c8c4 100644 --- a/JPratt/src/main/java/bjc/pratt/blocks/GrammarParseBlock.java +++ b/JPratt/src/main/java/bjc/pratt/blocks/GrammarParseBlock.java @@ -2,13 +2,13 @@ package bjc.pratt.blocks; import java.util.function.Function; +import bjc.data.Tree; import bjc.pratt.ParserContext; import bjc.pratt.PrattParser; import bjc.pratt.commands.CommandResult; import bjc.pratt.tokens.Token; import bjc.pratt.tokens.TokenStream; -import bjc.data.Tree; -import bjc.functypes.*; +import bjc.typeclasses.Isomorphism; import bjc.utils.parserutils.ParserException; /** diff --git a/JPratt/src/main/java/bjc/pratt/parsing/package-info.java b/JPratt/src/main/java/bjc/pratt/parsing/package-info.java new file mode 100644 index 0000000..e7f4fa8 --- /dev/null +++ b/JPratt/src/main/java/bjc/pratt/parsing/package-info.java @@ -0,0 +1 @@ +package bjc.pratt.parsing; \ No newline at end of file -- cgit v1.2.3