diff options
Diffstat (limited to 'JPratt/src/examples/java')
3 files changed, 6 insertions, 110 deletions
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 7af16a0..34623c6 100644 --- a/JPratt/src/examples/java/bjc/pratt/examples/lang/PrattParserTest.java +++ b/JPratt/src/examples/java/bjc/pratt/examples/lang/PrattParserTest.java @@ -93,10 +93,10 @@ public class PrattParserTest { final ConfigurableTokenSplitter hi = new ConfigurableTokenSplitter(true); final ConfigurableTokenSplitter lo = new ConfigurableTokenSplitter(true); - hi.addSimpleDelimiters("->"); - hi.addSimpleDelimiters(":="); - hi.addSimpleDelimiters("||", "&&"); - hi.addSimpleDelimiters("<=", ">="); + lo.addSimpleDelimiters("->"); + lo.addSimpleDelimiters(":="); + lo.addSimpleDelimiters("||", "&&"); + lo.addSimpleDelimiters("<=", ">="); lo.addSimpleDelimiters("\u00B1"); // Unicode plus/minus lo.addSimpleDelimiters(".", ",", ";", ":"); @@ -109,12 +109,12 @@ public class PrattParserTest { lo.addMultiDelimiters("[", "]"); lo.addMultiDelimiters("{", "}"); - hi.compile(); + //hi.compile(); lo.compile(); nsplit.appendSplitters(hi, lo); - final ExcludingTokenSplitter excluder = new ExcludingTokenSplitter(nsplit); + final ExcludingTokenSplitter excluder = new ExcludingTokenSplitter(lo); excluder.addLiteralExclusions(reserved.toArray(new String[0])); diff --git a/JPratt/src/examples/java/bjc/pratt/examples/regex/Destringer.java b/JPratt/src/examples/java/bjc/pratt/examples/regex/Destringer.java deleted file mode 100644 index 7ba2d5b..0000000 --- a/JPratt/src/examples/java/bjc/pratt/examples/regex/Destringer.java +++ /dev/null @@ -1,31 +0,0 @@ -package bjc.pratt.examples.regex; - -import java.util.Iterator; -import java.util.Map; -import java.util.function.UnaryOperator; - -import bjc.utils.data.GeneratingIterator; - -final class Destringer implements UnaryOperator<String> { - private final Iterator<Integer> numbers; - public final Map<String, String> stringLiterals; - - public Destringer(final Map<String, String> literals) { - numbers = new GeneratingIterator<>(0, (num) -> num + 1, (val) -> true); - stringLiterals = literals; - } - - @Override - public String apply(final String token) { - if (token.startsWith("\"") && token.endsWith("\"")) { - final String symName = "stringLiteral" + Integer.toString(numbers.next()); - - final String dequotedString = token.substring(1, token.length() - 1); - stringLiterals.put(symName, dequotedString); - - return symName; - } - - return token; - } -}
\ No newline at end of file diff --git a/JPratt/src/examples/java/bjc/pratt/examples/regex/RegexGrammar.java b/JPratt/src/examples/java/bjc/pratt/examples/regex/RegexGrammar.java deleted file mode 100644 index 5bb606e..0000000 --- a/JPratt/src/examples/java/bjc/pratt/examples/regex/RegexGrammar.java +++ /dev/null @@ -1,73 +0,0 @@ -package bjc.pratt.examples.regex; - -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Scanner; - -import bjc.utils.funcdata.IList; -import bjc.utils.parserutils.TokenUtils.StringTokenSplitter; -import bjc.utils.parserutils.splitter.ChainTokenSplitter; -import bjc.utils.parserutils.splitter.ConfigurableTokenSplitter; -import bjc.utils.parserutils.splitter.TokenSplitter; -import bjc.utils.parserutils.splitter.TransformTokenSplitter; - -/** - * Grammar test for regular expressions. - * - * @author bjculkin - * - */ -public class RegexGrammar { - /** - * Main method. - * - * @param args - * Unused CLI arguments. - */ - public static void main(final String[] args) { - final Scanner scn = new Scanner(System.in); - - System.out.print("Enter text to parse (blank line to exit): "); - String ln = scn.nextLine().trim(); - - final Map<String, String> stringLiterals = new HashMap<>(); - - /* - * Build the token splitter - */ - final ChainTokenSplitter splitter = buildSplitter(stringLiterals); - - while (!ln.equals("")) { - final IList<String> quotelessTokens = splitter.split(ln); - - System.out.println("\nSplit tokens: " + quotelessTokens); - - System.out.print("\nEnter text to parse (blank line to exit): "); - ln = scn.nextLine().trim(); - } - - System.out.println("\nString table: "); - for (final Entry<String, String> entry : stringLiterals.entrySet()) { - System.out.printf("\t%s\t'%s'\n", entry.getKey(), entry.getValue()); - } - - scn.close(); - } - - private static ChainTokenSplitter buildSplitter(final Map<String, String> stringLiterals) { - final Destringer destringer = new Destringer(stringLiterals); - - final TokenSplitter dquoteSplitter = new StringTokenSplitter(); - final TokenSplitter dquoteRemover = new TransformTokenSplitter(dquoteSplitter, destringer); - - final ConfigurableTokenSplitter regexSplitter = new ConfigurableTokenSplitter(true); - regexSplitter.addSimpleDelimiters("+", "|"); - regexSplitter.compile(); - - final ChainTokenSplitter splitter = new ChainTokenSplitter(); - splitter.appendSplitters(dquoteRemover, regexSplitter); - - return splitter; - } -} |
