From 8e87516a302172c02db36f2e26137c397a235d48 Mon Sep 17 00:00:00 2001 From: bjculkin Date: Wed, 28 Mar 2018 14:46:12 -0400 Subject: Add pipeline operator. Inspired from javascript --- .../bjc/pratt/examples/lang/PrattParserTest.java | 29 +++++++++++----------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'JPratt/src/examples') 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 f2fa778..91d5b26 100644 --- a/JPratt/src/examples/java/bjc/pratt/examples/lang/PrattParserTest.java +++ b/JPratt/src/examples/java/bjc/pratt/examples/lang/PrattParserTest.java @@ -1,17 +1,7 @@ package bjc.pratt.examples.lang; -import static bjc.pratt.commands.impls.InitialCommands.delimited; -import static bjc.pratt.commands.impls.InitialCommands.grouping; -import static bjc.pratt.commands.impls.InitialCommands.leaf; -import static bjc.pratt.commands.impls.InitialCommands.preTernary; -import static bjc.pratt.commands.impls.InitialCommands.unary; -import static bjc.pratt.commands.impls.NonInitialCommands.chain; -import static bjc.pratt.commands.impls.NonInitialCommands.infixLeft; -import static bjc.pratt.commands.impls.NonInitialCommands.infixNon; -import static bjc.pratt.commands.impls.NonInitialCommands.infixRight; -import static bjc.pratt.commands.impls.NonInitialCommands.postCircumfix; -import static bjc.pratt.commands.impls.NonInitialCommands.postfix; -import static bjc.pratt.commands.impls.NonInitialCommands.ternary; +import static bjc.pratt.commands.impls.InitialCommands.*; +import static bjc.pratt.commands.impls.NonInitialCommands.*; import static bjc.pratt.tokens.StringToken.litToken; import static bjc.utils.functypes.ID.id; @@ -64,8 +54,11 @@ public class PrattParserTest { ops.add("!!!"); - ops.addAll(Arrays.asList("->", "=>")); ops.add(":="); + + ops.add("|>"); + + ops.addAll(Arrays.asList("->", "=>")); ops.addAll(Arrays.asList("||", "&&")); ops.addAll(Arrays.asList("<=", ">=")); @@ -92,8 +85,11 @@ public class PrattParserTest { final ConfigurableTokenSplitter lo = new ConfigurableTokenSplitter(true); - lo.addSimpleDelimiters("->"); lo.addSimpleDelimiters(":="); + + lo.addSimpleDelimiters("|>"); + + lo.addSimpleDelimiters("->, =>"); lo.addSimpleDelimiters("||", "&&"); lo.addSimpleDelimiters("<=", ">="); @@ -258,6 +254,11 @@ public class PrattParserTest { */ parser.addNonInitialCommand("->", infixRight(11)); + /* + * Pipeline operator. + */ + parser.addNonInitialCommand("|>", infixLeft(12)); + /* * Non-short circuiting condtionals. */ -- cgit v1.2.3