From c74cb8eaf454d9243b75e3770001d8d128356b28 Mon Sep 17 00:00:00 2001 From: "Benjamin J. Culkin" Date: Sun, 23 Jul 2017 22:58:58 -0300 Subject: Format --- dice-lang/src/bjc/dicelang/expr/Parser.java | 9 ++++++++- dice-lang/src/bjc/dicelang/expr/Shunter.java | 1 + dice-lang/src/bjc/dicelang/expr/Token.java | 7 +++++++ dice-lang/src/bjc/dicelang/expr/TokenType.java | 4 ++-- 4 files changed, 18 insertions(+), 3 deletions(-) (limited to 'dice-lang/src/bjc/dicelang/expr') diff --git a/dice-lang/src/bjc/dicelang/expr/Parser.java b/dice-lang/src/bjc/dicelang/expr/Parser.java index 90a6b38..b3f83a4 100644 --- a/dice-lang/src/bjc/dicelang/expr/Parser.java +++ b/dice-lang/src/bjc/dicelang/expr/Parser.java @@ -52,6 +52,7 @@ public class Parser { */ final Token[] infixTokens = lex.lexString(ln, toks); System.out.println("Lexed tokens: "); + for (final Token tok : infixTokens) { System.out.println("\t" + tok); } @@ -60,9 +61,11 @@ public class Parser { * Print out infix expression. */ System.out.print("Lexed expression: "); + for (final Token tok : infixTokens) { System.out.print(tok.toExpr() + " "); } + System.out.println(); System.out.println(); @@ -71,6 +74,7 @@ public class Parser { */ final Token[] postfixTokens = Shunter.shuntTokens(infixTokens); System.out.println("Lexed tokens: "); + for (final Token tok : postfixTokens) { System.out.println("\t" + tok); } @@ -79,14 +83,17 @@ public class Parser { * Print out postfix tokens. */ System.out.print("Shunted expression: "); + for (final Token tok : postfixTokens) { System.out.print(tok.toExpr() + " "); } + System.out.println(); System.out.println(); final FunctionalList tokList = new FunctionalList<>(Arrays.asList(postfixTokens)); - final ITree ast = TreeConstructor.constructTree(tokList, tok -> tok.typ.isOperator); + final ITree ast = TreeConstructor.constructTree(tokList, + tok -> tok.typ.isOperator); /* * Print the tree, then the canonical expression for it. diff --git a/dice-lang/src/bjc/dicelang/expr/Shunter.java b/dice-lang/src/bjc/dicelang/expr/Shunter.java index 19b30c3..3e49356 100644 --- a/dice-lang/src/bjc/dicelang/expr/Shunter.java +++ b/dice-lang/src/bjc/dicelang/expr/Shunter.java @@ -41,6 +41,7 @@ public class Shunter { int leftPriority = tok.typ.operatorPriority; int rightPriority; + if (curOp == null) { rightPriority = 0; } else { diff --git a/dice-lang/src/bjc/dicelang/expr/Token.java b/dice-lang/src/bjc/dicelang/expr/Token.java index d7fc0e2..1a506bf 100644 --- a/dice-lang/src/bjc/dicelang/expr/Token.java +++ b/dice-lang/src/bjc/dicelang/expr/Token.java @@ -70,18 +70,25 @@ public class Token { switch (typ) { case ADD: return "+"; + case SUBTRACT: return "-"; + case MULTIPLY: return "*"; + case DIVIDE: return "/"; + case VREF: return tks.symbolTable.get(intValue); + case OPAREN: return "("; + case CPAREN: return ")"; + default: return "???"; } diff --git a/dice-lang/src/bjc/dicelang/expr/TokenType.java b/dice-lang/src/bjc/dicelang/expr/TokenType.java index fa20813..d88283e 100644 --- a/dice-lang/src/bjc/dicelang/expr/TokenType.java +++ b/dice-lang/src/bjc/dicelang/expr/TokenType.java @@ -44,11 +44,11 @@ public enum TokenType { /** * Whether or not this type of token is an operator. */ - public final boolean isOperator; + public final boolean isOperator; /** * The priority of this operator, if it is one. */ - public final int operatorPriority; + public final int operatorPriority; private TokenType(final int num, final boolean isOp, final int priority) { nVal = num; -- cgit v1.2.3