From 9940d873a202e7a20ce61eecf1faebc5c15dab5a Mon Sep 17 00:00:00 2001 From: student Date: Thu, 15 Feb 2018 11:00:46 -0500 Subject: Prepare for AST creation --- .../bjc/pratt/examples/lang/LangEvaluator.java | 32 ---------------------- .../bjc/pratt/examples/lang/PrattParserTest.java | 4 +-- .../java/bjc/pratt/examples/lang/ast/LangAST.java | 17 ++++++++++++ .../lang/evaluator/EvaluatorException.java | 13 +++++++++ .../examples/lang/evaluator/LangEvaluator.java | 16 +++++++++++ .../pratt/examples/lang/evaluator/LangResult.java | 5 ++++ .../bjc/pratt/examples/lang/tokens/LangToken.java | 17 ------------ 7 files changed, 53 insertions(+), 51 deletions(-) delete mode 100644 JPratt/src/examples/java/bjc/pratt/examples/lang/LangEvaluator.java create mode 100644 JPratt/src/examples/java/bjc/pratt/examples/lang/ast/LangAST.java create mode 100644 JPratt/src/examples/java/bjc/pratt/examples/lang/evaluator/EvaluatorException.java create mode 100644 JPratt/src/examples/java/bjc/pratt/examples/lang/evaluator/LangEvaluator.java create mode 100644 JPratt/src/examples/java/bjc/pratt/examples/lang/evaluator/LangResult.java delete mode 100644 JPratt/src/examples/java/bjc/pratt/examples/lang/tokens/LangToken.java (limited to 'JPratt/src/examples/java/bjc/pratt') diff --git a/JPratt/src/examples/java/bjc/pratt/examples/lang/LangEvaluator.java b/JPratt/src/examples/java/bjc/pratt/examples/lang/LangEvaluator.java deleted file mode 100644 index bf4c8d0..0000000 --- a/JPratt/src/examples/java/bjc/pratt/examples/lang/LangEvaluator.java +++ /dev/null @@ -1,32 +0,0 @@ -package bjc.pratt.examples.lang; - -import bjc.pratt.examples.lang.tokens.LangToken; -import bjc.utils.data.ITree; - -public class LangEvaluator { - public static class EvaluatorException extends RuntimeException { - private static final long serialVersionUID = -8610585421069729811L; - - public EvaluatorException(String message, Throwable cause) { - super(message, cause); - } - - public EvaluatorException(String message) { - super(message); - } - } - - public static class LangResult { - - } - - public LangResult evaluate(ITree ast) { - ITree evaluatedTree = ast.topDownTransform(LangToken::getEvaluationStrategy, this::evaluateNode); - - return evaluatedTree.getHead().toResult(); - } - - private ITree evaluateNode(ITree node) { - return node; - } -} \ No newline at end of file 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 1baff5c..e9b0b1a 100644 --- a/JPratt/src/examples/java/bjc/pratt/examples/lang/PrattParserTest.java +++ b/JPratt/src/examples/java/bjc/pratt/examples/lang/PrattParserTest.java @@ -28,7 +28,7 @@ import java.util.function.UnaryOperator; import bjc.pratt.PrattParser; import bjc.pratt.commands.InitialCommand; import bjc.pratt.commands.NonInitialCommand; -import bjc.pratt.examples.lang.tokens.LangToken; +import bjc.pratt.examples.lang.ast.LangAST; import bjc.pratt.tokens.StringToken; import bjc.pratt.tokens.StringTokenStream; import bjc.pratt.tokens.Token; @@ -143,7 +143,7 @@ public class PrattParserTest { System.out.printf("\nParsed expression:\n%s", rawTree); - final ITree tokenTree = rawTree.rebuildTree(LangToken::fromToken, LangToken::fromToken); + final ITree tokenTree = rawTree.rebuildTree(LangAST::fromToken, LangAST::fromToken); System.out.printf("\nAST-ized expression:\n%s", tokenTree); } catch (final ParserException pex) { diff --git a/JPratt/src/examples/java/bjc/pratt/examples/lang/ast/LangAST.java b/JPratt/src/examples/java/bjc/pratt/examples/lang/ast/LangAST.java new file mode 100644 index 0000000..b5ea551 --- /dev/null +++ b/JPratt/src/examples/java/bjc/pratt/examples/lang/ast/LangAST.java @@ -0,0 +1,17 @@ +package bjc.pratt.examples.lang.ast; + +import bjc.pratt.examples.lang.evaluator.LangResult; +import bjc.pratt.tokens.Token; +import bjc.utils.data.TopDownTransformResult; + +public interface LangAST { + LangResult toResult(); + + static LangAST fromToken(Token token) { + return null; + } + + default TopDownTransformResult getEvaluationStrategy() { + return TopDownTransformResult.PUSHDOWN; + } +} \ No newline at end of file diff --git a/JPratt/src/examples/java/bjc/pratt/examples/lang/evaluator/EvaluatorException.java b/JPratt/src/examples/java/bjc/pratt/examples/lang/evaluator/EvaluatorException.java new file mode 100644 index 0000000..56fc719 --- /dev/null +++ b/JPratt/src/examples/java/bjc/pratt/examples/lang/evaluator/EvaluatorException.java @@ -0,0 +1,13 @@ +package bjc.pratt.examples.lang.evaluator; + +public class EvaluatorException extends RuntimeException { + private static final long serialVersionUID = -8610585421069729811L; + + public EvaluatorException(String message, Throwable cause) { + super(message, cause); + } + + public EvaluatorException(String message) { + super(message); + } +} \ No newline at end of file diff --git a/JPratt/src/examples/java/bjc/pratt/examples/lang/evaluator/LangEvaluator.java b/JPratt/src/examples/java/bjc/pratt/examples/lang/evaluator/LangEvaluator.java new file mode 100644 index 0000000..7ce1939 --- /dev/null +++ b/JPratt/src/examples/java/bjc/pratt/examples/lang/evaluator/LangEvaluator.java @@ -0,0 +1,16 @@ +package bjc.pratt.examples.lang.evaluator; + +import bjc.pratt.examples.lang.ast.LangAST; +import bjc.utils.data.ITree; + +public class LangEvaluator { + public LangResult evaluate(ITree ast) { + ITree evaluatedTree = ast.topDownTransform(LangAST::getEvaluationStrategy, this::evaluateNode); + + return evaluatedTree.getHead().toResult(); + } + + private ITree evaluateNode(ITree node) { + return node; + } +} \ No newline at end of file diff --git a/JPratt/src/examples/java/bjc/pratt/examples/lang/evaluator/LangResult.java b/JPratt/src/examples/java/bjc/pratt/examples/lang/evaluator/LangResult.java new file mode 100644 index 0000000..06b3471 --- /dev/null +++ b/JPratt/src/examples/java/bjc/pratt/examples/lang/evaluator/LangResult.java @@ -0,0 +1,5 @@ +package bjc.pratt.examples.lang.evaluator; + +public class LangResult { + +} \ No newline at end of file diff --git a/JPratt/src/examples/java/bjc/pratt/examples/lang/tokens/LangToken.java b/JPratt/src/examples/java/bjc/pratt/examples/lang/tokens/LangToken.java deleted file mode 100644 index 1230430..0000000 --- a/JPratt/src/examples/java/bjc/pratt/examples/lang/tokens/LangToken.java +++ /dev/null @@ -1,17 +0,0 @@ -package bjc.pratt.examples.lang.tokens; - -import bjc.pratt.examples.lang.LangEvaluator.LangResult; -import bjc.pratt.tokens.Token; -import bjc.utils.data.TopDownTransformResult; - -public interface LangToken { - LangResult toResult(); - - static LangToken fromToken(Token token) { - return null; - } - - default TopDownTransformResult getEvaluationStrategy() { - return TopDownTransformResult.PUSHDOWN; - } -} \ No newline at end of file -- cgit v1.2.3