From be4675f9512060aa85b1e0a4f223208b51b55812 Mon Sep 17 00:00:00 2001 From: "Benjamin J. Culkin" Date: Sun, 8 Oct 2017 16:41:22 -0300 Subject: AStyle pass --- dice-lang/src/bjc/dicelang/CLIArgsParser.java | 24 +++++-- dice-lang/src/bjc/dicelang/Define.java | 12 +++- dice-lang/src/bjc/dicelang/DiceLangConsole.java | 74 +++++++++++++++----- dice-lang/src/bjc/dicelang/DiceLangEngine.java | 78 +++++++++++++++------ dice-lang/src/bjc/dicelang/Evaluator.java | 11 ++- dice-lang/src/bjc/dicelang/Node.java | 8 ++- dice-lang/src/bjc/dicelang/Parser.java | 4 +- dice-lang/src/bjc/dicelang/Shunter.java | 50 ++++++++++---- dice-lang/src/bjc/dicelang/Token.java | 8 ++- dice-lang/src/bjc/dicelang/Tokenizer.java | 14 +++- .../src/bjc/dicelang/dice/CompoundingDie.java | 2 +- dice-lang/src/bjc/dicelang/dice/DiceBox.java | 36 +++++----- dice-lang/src/bjc/dicelang/dice/DieExpression.java | 8 ++- dice-lang/src/bjc/dicelang/dice/ExplodingDice.java | 4 +- dice-lang/src/bjc/dicelang/dice/SimpleDie.java | 8 ++- dice-lang/src/bjc/dicelang/dice/SimpleDieList.java | 4 +- dice-lang/src/bjc/dicelang/expr/Ezpr.java | 2 +- dice-lang/src/bjc/dicelang/expr/Parser.java | 2 + dice-lang/src/bjc/dicelang/expr/Tokens.java | 4 +- .../src/bjc/dicelang/scl/StreamControlConsole.java | 18 +++-- .../src/bjc/dicelang/scl/StreamControlEngine.java | 80 +++++++++++++++------- dice-lang/src/bjc/dicelang/scl/StreamEngine.java | 28 ++++++-- 22 files changed, 351 insertions(+), 128 deletions(-) diff --git a/dice-lang/src/bjc/dicelang/CLIArgsParser.java b/dice-lang/src/bjc/dicelang/CLIArgsParser.java index 7f21b63..a1f822c 100644 --- a/dice-lang/src/bjc/dicelang/CLIArgsParser.java +++ b/dice-lang/src/bjc/dicelang/CLIArgsParser.java @@ -32,7 +32,9 @@ public class CLIArgsParser { * @return Whether or not to continue to the DiceLang repl. */ public static boolean parseArgs(final String[] args, final DiceLangEngine eng) { - if (args.length < 0) return true; + if (args.length < 0) { + return true; + } if (args.length == 1 && (args[0].equals("--help") || args[0].equals("-h"))) { for (final String lne : ResourceLoader.loadHelpFile("cli")) { @@ -114,7 +116,9 @@ public class CLIArgsParser { case "--define": i = simpleDefine(i, args, eng); - if (i == -1) return false; + if (i == -1) { + return false; + } break; @@ -122,7 +126,9 @@ public class CLIArgsParser { case "--define-file": i = defineFile(i, args, eng); - if (i == -1) return false; + if (i == -1) { + return false; + } break; @@ -152,7 +158,9 @@ public class CLIArgsParser { final Define dfn = new Define(5, false, false, false, null, args[i + 1], Arrays.asList("")); - if (dfn.inError) return -1; + if (dfn.inError) { + return -1; + } eng.addLineDefine(dfn); return i + 1; @@ -161,7 +169,9 @@ public class CLIArgsParser { final Define dfn = new Define(5, false, false, false, null, args[i + 1], Arrays.asList(args[i + 2])); - if (dfn.inError) return -1; + if (dfn.inError) { + return -1; + } eng.addLineDefine(dfn); return i + 2; @@ -183,7 +193,9 @@ public class CLIArgsParser { final Define dfn = parseDefine(ln.substring(ln.indexOf(' '))); - if (dfn == null || dfn.inError) return -1; + if (dfn == null || dfn.inError) { + return -1; + } if (ln.startsWith("line")) { eng.addLineDefine(dfn); diff --git a/dice-lang/src/bjc/dicelang/Define.java b/dice-lang/src/bjc/dicelang/Define.java index c8e0e0c..f4a8871 100644 --- a/dice-lang/src/bjc/dicelang/Define.java +++ b/dice-lang/src/bjc/dicelang/Define.java @@ -139,10 +139,14 @@ public class Define implements UnaryOperator, Comparable { @Override public String apply(final String tok) { - if (inError) return tok; + if (inError) { + return tok; + } if (predicate != null) { - if (!predicate.matcher(tok).matches()) return tok; + if (!predicate.matcher(tok).matches()) { + return tok; + } } String strang = doPass(tok); @@ -150,7 +154,9 @@ public class Define implements UnaryOperator, Comparable { if (doRecur) { int recurCount = 0; - if (strang.equals(tok)) return strang; + if (strang.equals(tok)) { + return strang; + } final String oldStrang = strang; diff --git a/dice-lang/src/bjc/dicelang/DiceLangConsole.java b/dice-lang/src/bjc/dicelang/DiceLangConsole.java index 7cd6bb5..ebf9b59 100644 --- a/dice-lang/src/bjc/dicelang/DiceLangConsole.java +++ b/dice-lang/src/bjc/dicelang/DiceLangConsole.java @@ -35,9 +35,11 @@ public class DiceLangConsole { public DiceLangConsole(final String[] args) { commandNumber = 0; eng = new DiceLangEngine(); + if (!CLIArgsParser.parseArgs(args, eng)) { System.exit(1); } + Terminal.setupTerminal(); } @@ -68,18 +70,26 @@ public class DiceLangConsole { while (!comm.equals("quit") && !comm.equals("exit")) { if (comm.startsWith("pragma")) { /* Run pragmas. */ - final boolean success = handlePragma(comm.substring(7)); + final boolean success = handlePragma(comm.substring(7)); - if (success) System.out.println("Pragma completed succesfully"); - else System.out.println("Pragma execution failed"); + if (success) { + System.out.println("Pragma completed succesfully"); + } else { + System.out.println("Pragma execution failed"); + } } else { /* Run commands. */ - if(eng.debugMode) System.out.printf("\tRaw command: %s\n", comm); + if (eng.debugMode) { + System.out.printf("\tRaw command: %s\n", comm); + } final boolean success = eng.runCommand(comm); - if (success) System.out.println("Command completed succesfully"); - else System.out.println("Command execution failed"); + if (success) { + System.out.println("Command completed succesfully"); + } else { + System.out.println("Command execution failed"); + } commandNumber += 1; } @@ -94,15 +104,20 @@ public class DiceLangConsole { } private boolean handlePragma(final String pragma) { - if(eng.debugMode) System.out.println("\tRaw pragma: " + pragma); + if (eng.debugMode) { + System.out.println("\tRaw pragma: " + pragma); + } /* Grab the name from the arguments. */ String pragmaName = null; final int firstIndex = pragma.indexOf(' '); /* Handle argless pragmas. */ - if (firstIndex == -1) pragmaName = pragma; - else pragmaName = pragma.substring(0, firstIndex); + if (firstIndex == -1) { + pragmaName = pragma; + } else { + pragmaName = pragma.substring(0, firstIndex); + } /* * Run pragmas. @@ -111,19 +126,25 @@ public class DiceLangConsole { case "debug": System.out.println("\tDebug mode is now " + eng.toggleDebug()); break; + case "postfix": System.out.println("\tPostfix mode is now " + eng.togglePostfix()); break; + case "prefix": System.out.println("\tPrefix mode is now " + eng.togglePrefix()); break; + case "stepeval": System.out.println("\tStepeval mode is now" + eng.toggleStepEval()); break; + case "define": return defineMode(pragma.substring(7)); + case "help": return helpMode(pragma.substring(5)); + default: Errors.inst.printError(EK_CONS_INVPRAG, pragma); return false; @@ -138,22 +159,28 @@ public class DiceLangConsole { case "help": System.out.println("\tGet help on pragmas"); break; + case "debug": System.out.println("\tToggle debug mode. (Output stage results)"); break; + case "postfix": System.out.println("\tToggle postfix mode. (Don't shunt tokens)"); break; + case "prefix": System.out.println("\tToggle prefix mode. (Reverse token order instead of shunting)"); break; + case "stepeval": System.out.println("\tToggle stepeval mode. (Print out evaluation progress)"); break; + case "define": System.out.println("\tAdd a macro rewrite directive."); System.out.println("\tdefine ..."); break; + default: System.out.println("\tNo help available for pragma " + pragma); } @@ -175,7 +202,7 @@ public class DiceLangConsole { final int fifthIndex = defineText.indexOf(' ', fourthIndex + 1); final int sixthIndex = defineText.indexOf(' ', fifthIndex + 1); - /* + /* * Error if we got something we didn't need, or didn't get * something we need. */ @@ -209,28 +236,32 @@ public class DiceLangConsole { case "line": type = Define.Type.LINE; break; + case "token": type = Define.Type.TOKEN; break; + case "subline": type = Define.Type.LINE; subMode = true; break; + case "subtoken": type = Define.Type.TOKEN; subMode = true; break; + default: Errors.inst.printError(EK_CONS_INVDEFINE, "(unknown type)"); return false; } final boolean doRecur = defineText.substring(secondIndex + 1, thirdIndex) - .equalsIgnoreCase("true"); + .equalsIgnoreCase("true"); final boolean hasGuard = defineText.substring(thirdIndex + 1, fourthIndex) - .equalsIgnoreCase("true"); + .equalsIgnoreCase("true"); final boolean isCircular = defineText.substring(thirdIndex + 1, fourthIndex) - .equalsIgnoreCase("true"); + .equalsIgnoreCase("true"); final String pats = defineText.substring(fifthIndex + 1).trim(); final Matcher patMatcher = slashPattern.matcher(pats); @@ -241,6 +272,7 @@ public class DiceLangConsole { Errors.inst.printError(EK_CONS_INVDEFINE, "(no guard pattern)"); return false; } + guardPattern = patMatcher.group(1); } @@ -251,18 +283,24 @@ public class DiceLangConsole { final String searchPattern = patMatcher.group(1); final List replacePatterns = new LinkedList<>(); + while (patMatcher.find()) { replacePatterns.add(patMatcher.group(1)); } final Define dfn = new Define(priority, subMode, doRecur, - isCircular, guardPattern, searchPattern, - replacePatterns); + isCircular, guardPattern, searchPattern, + replacePatterns); - if (dfn.inError) return false; + if (dfn.inError) { + return false; + } - if (type == Define.Type.LINE) eng.addLineDefine(dfn); - else eng.addTokenDefine(dfn); + if (type == Define.Type.LINE) { + eng.addLineDefine(dfn); + } else { + eng.addTokenDefine(dfn); + } return true; } diff --git a/dice-lang/src/bjc/dicelang/DiceLangEngine.java b/dice-lang/src/bjc/dicelang/DiceLangEngine.java index 158239e..7b65f77 100644 --- a/dice-lang/src/bjc/dicelang/DiceLangEngine.java +++ b/dice-lang/src/bjc/dicelang/DiceLangEngine.java @@ -226,16 +226,25 @@ public class DiceLangEngine { public boolean runCommand(final String command) { /* Preprocess the command into tokens */ final IList preprocessedTokens = preprocessCommand(command); - if (preprocessedTokens == null) return false; + + if (preprocessedTokens == null) { + return false; + } /* Lex the string tokens into token-tokens */ final IList lexedTokens = lexTokens(preprocessedTokens); - if (lexedTokens == null) return false; + + if (lexedTokens == null) { + return false; + } /* Parse the tokens into an AST forest */ final IList> astForest = new FunctionalList<>(); final boolean succ = Parser.parseTokens(lexedTokens, astForest); - if (!succ) return false; + + if (!succ) { + return false; + } /* Evaluate the AST forest */ evaluateForest(astForest); @@ -256,14 +265,19 @@ public class DiceLangEngine { /* Lex the token */ final Token tk = tokenzer.lexToken(token, stringLiterals); - if(debugMode) LOG.finer(String.format("lexed token: %s\n", tk)); + + if (debugMode) { + LOG.finer(String.format("lexed token: %s\n", tk)); + } + if (tk == null) { /* Ignore blank tokens */ continue; } else if (tk == Token.NIL_TOKEN) /* Fail on bad tokens */ + { return null; - else { + } else { lexedTokens.add(tk); } } @@ -279,10 +293,14 @@ public class DiceLangEngine { final IList preparedTokens = new FunctionalList<>(); boolean succ = removePreshuntTokens(lexedTokens, preparedTokens); - if (!succ) return null; + + if (!succ) { + return null; + } if (debugMode && !postfixMode) { - String msg = String.format("\tCommand after pre-shunter removal: %s\n", preparedTokens.toString()); + String msg = String.format("\tCommand after pre-shunter removal: %s\n", + preparedTokens.toString()); LOG.fine(msg); System.out.print(msg); } @@ -292,7 +310,9 @@ public class DiceLangEngine { shuntedTokens = new FunctionalList<>(); succ = shunt.shuntTokens(preparedTokens, shuntedTokens); - if (!succ) return null; + if (!succ) { + return null; + } } else if (prefixMode) { /* Reverse directional tokens */ preparedTokens.reverse(); @@ -308,8 +328,8 @@ public class DiceLangEngine { /* Expand token groups */ final IList readyTokens = shuntedTokens.flatMap(tk -> { if (tk.type == Token.Type.TOKGROUP || - tk.type == Token.Type.TAGOP || - tk.type == Token.Type.TAGOPR ) { + tk.type == Token.Type.TAGOP || + tk.type == Token.Type.TAGOPR ) { LOG.finer(String.format("Expanding token group to: %s\n", tk.tokenValues.toString())); return tk.tokenValues; } else { @@ -318,7 +338,8 @@ public class DiceLangEngine { }); if (debugMode && !postfixMode) { - String msg = String.format("\tCommand after re-preshunting: %s\n", readyTokens.toString()); + String msg = String.format("\tCommand after re-preshunting: %s\n", + readyTokens.toString()); LOG.fine(msg); System.out.print(msg); } @@ -335,16 +356,22 @@ public class DiceLangEngine { switch (tk.type) { case OBRACE: return new Token(CBRACE, tk.intValue); + case OPAREN: return new Token(CPAREN, tk.intValue); + case OBRACKET: return new Token(CBRACKET, tk.intValue); + case CBRACE: return new Token(OBRACE, tk.intValue); + case CPAREN: return new Token(OPAREN, tk.intValue); + case CBRACKET: return new Token(OBRACKET, tk.intValue); + default: return tk; } @@ -360,7 +387,10 @@ public class DiceLangEngine { /* Run the tokens through the stream engine */ final IList streamToks = new FunctionalList<>(); final boolean succ = streamEng.doStreams(command.split(" "), streamToks); - if (!succ) return null; + + if (!succ) { + return null; + } /* Apply line defns */ String newComm = ListUtils.collapseTokens(streamToks, " "); @@ -398,9 +428,11 @@ public class DiceLangEngine { */ final String descVal = TokenUtils.descapeString(litVal); stringLiterals.put(litName, descVal); - if(debugMode) + + if (debugMode) LOG.finer(String.format("Replaced string literal '%s' with literal no. %d", - descVal, nextLiteral)); + descVal, nextLiteral)); + nextLiteral += 1; /* Place a ref. to the string in the command */ @@ -438,7 +470,8 @@ public class DiceLangEngine { final String tkName = "nonExpandToken" + nextLiteral++; nonExpandedTokens.put(tkName, nonExpandMatcher.group(1)); - LOG.finer(String.format("Pulled non-expander '%s' to '%s'", nonExpandMatcher.group(1), tkName)); + LOG.finer(String.format("Pulled non-expander '%s' to '%s'", nonExpandMatcher.group(1), + tkName)); return tkName; } @@ -446,15 +479,18 @@ public class DiceLangEngine { }); if (debugMode) { - String msg = String.format("\tCommand after removal of non-expanders: %s\n", tokens.toString()); + String msg = String.format("\tCommand after removal of non-expanders: %s\n", + tokens.toString()); LOG.fine(msg); System.out.print(msg); } /* Expand tokens */ IList fullyExpandedTokens = tokens.flatMap(opExpander::split); - if(debugMode) { - String msg = String.format("\tCommand after token expansion: %s\n", fullyExpandedTokens.toString()); + + if (debugMode) { + String msg = String.format("\tCommand after token expansion: %s\n", + fullyExpandedTokens.toString()); LOG.fine(msg); System.out.print(msg); } @@ -468,7 +504,7 @@ public class DiceLangEngine { if (debugMode) { String msg = String.format("\tCommand after non-expander reinsertion: %s\n", - fullyExpandedTokens.toString()); + fullyExpandedTokens.toString()); LOG.fine(msg); System.out.print(msg); } @@ -596,7 +632,9 @@ public class DiceLangEngine { + preshuntTokens); } - if (!success) return false; + if (!success) { + return false; + } if (curBraceCount >= 1) { /* diff --git a/dice-lang/src/bjc/dicelang/Evaluator.java b/dice-lang/src/bjc/dicelang/Evaluator.java index d537ada..0a583c8 100644 --- a/dice-lang/src/bjc/dicelang/Evaluator.java +++ b/dice-lang/src/bjc/dicelang/Evaluator.java @@ -141,9 +141,11 @@ public class Evaluator { switch (nd.operatorType) { case COERCE: return TopDownTransformResult.RTRANSFORM; + default: return TopDownTransformResult.PUSHDOWN; } + default: return TopDownTransformResult.PUSHDOWN; } @@ -154,14 +156,19 @@ public class Evaluator { switch (ast.getHead().type) { case UNARYOP: return evaluateUnaryOp(ast, ctx); + case BINOP: return evaluateBinaryOp(ast, ctx); + case TOKREF: return evaluateTokenRef(ast.getHead().tokenVal, ctx); + case ROOT: return ast.getChild(ast.getChildrenCount() - 1); + case RESULT: return ast; + default: Errors.inst.printError(EK_EVAL_INVNODE, ast.getHead().type.toString()); return new Tree<>(FAIL(ast)); @@ -419,9 +426,9 @@ public class Evaluator { if (left.type == STRING || right.type == STRING) { Errors.inst.printError(EK_EVAL_STRINGMATH); return new Tree<>(FAIL()); - } else if (left.type == FAILURE || right.type == FAILURE) + } else if (left.type == FAILURE || right.type == FAILURE) { return new Tree<>(FAIL()); - else if (left.type == INT && right.type != INT) { + } else if (left.type == INT && right.type != INT) { Errors.inst.printError(EK_EVAL_MISMATH); return new Tree<>(FAIL(right)); } else if (left.type == FLOAT && right.type != FLOAT) { diff --git a/dice-lang/src/bjc/dicelang/Node.java b/dice-lang/src/bjc/dicelang/Node.java index af69c8c..0a57c54 100644 --- a/dice-lang/src/bjc/dicelang/Node.java +++ b/dice-lang/src/bjc/dicelang/Node.java @@ -70,11 +70,15 @@ public class Node { @Override public boolean equals(final Object other) { - if (!(other instanceof Node)) return false; + if (!(other instanceof Node)) { + return false; + } final Node otk = (Node) other; - if (otk.type != type) return false; + if (otk.type != type) { + return false; + } switch (type) { case OGROUP: diff --git a/dice-lang/src/bjc/dicelang/Parser.java b/dice-lang/src/bjc/dicelang/Parser.java index 7e48f43..ddeccd2 100644 --- a/dice-lang/src/bjc/dicelang/Parser.java +++ b/dice-lang/src/bjc/dicelang/Parser.java @@ -60,7 +60,9 @@ public class Parser { case CBRACE: final boolean sc = parseClosingGrouper(working, tk); - if (!sc) return false; + if (!sc) { + return false; + } break; diff --git a/dice-lang/src/bjc/dicelang/Shunter.java b/dice-lang/src/bjc/dicelang/Shunter.java index 547f379..407ca5a 100644 --- a/dice-lang/src/bjc/dicelang/Shunter.java +++ b/dice-lang/src/bjc/dicelang/Shunter.java @@ -59,7 +59,7 @@ public class Shunter { */ Set unaryAdjectives; - /* + /* * Unary operators that can only be applied to operator tokens and yield * operator tokens. */ @@ -149,12 +149,16 @@ public class Shunter { while (feed.size() != 0) { succ = shuntToken(feed.poll(), opStack, unaryOps, currReturned, feed); - if (!succ) return false; + if (!succ) { + return false; + } } succ = shuntToken(tk, opStack, unaryOps, currReturned, feed); - if (!succ) return false; + if (!succ) { + return false; + } } // Flush leftover operators @@ -308,7 +312,9 @@ public class Shunter { } // If it doesn't, the left is higher precedence. - if (!exists) return false; + if (!exists) { + return false; + } int rightPrecedence; int leftPrecedence; @@ -325,7 +331,9 @@ public class Shunter { leftPrecedence = ops.get(left); } - if (rightAssoc.contains(left)) return rightPrecedence > leftPrecedence; + if (rightAssoc.contains(left)) { + return rightPrecedence > leftPrecedence; + } return rightPrecedence >= leftPrecedence; } @@ -333,15 +341,25 @@ public class Shunter { private boolean isOp(final Token tk) { final Token.Type ty = tk.type; - if (ops.containsKey(ty)) return true; + if (ops.containsKey(ty)) { + return true; + } - if (unaryAdjectives.contains(ty)) return true; + if (unaryAdjectives.contains(ty)) { + return true; + } - if (unaryAdverbs.contains(ty)) return true; + if (unaryAdverbs.contains(ty)) { + return true; + } - if (unaryGerunds.contains(ty)) return true; + if (unaryGerunds.contains(ty)) { + return true; + } - if (ty == TAGOPR) return true; + if (ty == TAGOPR) { + return true; + } return false; } @@ -349,11 +367,17 @@ public class Shunter { private boolean isUnary(final Token tk) { final Token.Type ty = tk.type; - if (unaryAdjectives.contains(ty)) return true; + if (unaryAdjectives.contains(ty)) { + return true; + } - if (unaryAdverbs.contains(ty)) return true; + if (unaryAdverbs.contains(ty)) { + return true; + } - if (unaryGerunds.contains(ty)) return true; + if (unaryGerunds.contains(ty)) { + return true; + } return false; } diff --git a/dice-lang/src/bjc/dicelang/Token.java b/dice-lang/src/bjc/dicelang/Token.java index 8b6d12b..692430e 100644 --- a/dice-lang/src/bjc/dicelang/Token.java +++ b/dice-lang/src/bjc/dicelang/Token.java @@ -105,11 +105,15 @@ public class Token { @Override public boolean equals(final Object other) { - if (!(other instanceof Token)) return false; + if (!(other instanceof Token)) { + return false; + } final Token otk = (Token) other; - if (otk.type != type) return false; + if (otk.type != type) { + return false; + } switch (type) { case OBRACE: diff --git a/dice-lang/src/bjc/dicelang/Tokenizer.java b/dice-lang/src/bjc/dicelang/Tokenizer.java index 8a366ac..4bf0d5d 100644 --- a/dice-lang/src/bjc/dicelang/Tokenizer.java +++ b/dice-lang/src/bjc/dicelang/Tokenizer.java @@ -47,7 +47,9 @@ public class Tokenizer { } public Token lexToken(final String token, final IMap stringLts) { - if (token.equals("")) return null; + if (token.equals("")) { + return null; + } Token tk = Token.NIL_TOKEN; @@ -63,6 +65,7 @@ public class Tokenizer { case '}': tk = tokenizeGrouping(token); break; + default: tk = tokenizeLiteral(token, stringLts); } @@ -79,21 +82,27 @@ public class Tokenizer { case '(': tk = new Token(OPAREN, token.length()); break; + case ')': tk = new Token(CPAREN, token.length()); break; + case '[': tk = new Token(OBRACKET, token.length()); break; + case ']': tk = new Token(CBRACKET, token.length()); break; + case '{': tk = new Token(OBRACE, token.length()); break; + case '}': tk = new Token(CBRACE, token.length()); break; + default: Errors.inst.printError(EK_TOK_UNGROUP, token); break; @@ -114,6 +123,7 @@ public class Tokenizer { Token tk = Token.NIL_TOKEN; String token = rtoken.trim(); + if (TokenUtils.isInt(token)) { tk = new Token(INT_LIT, Long.parseLong(token)); } else if (hexadecimalMatcher.matcher(token).matches()) { @@ -121,6 +131,7 @@ public class Tokenizer { tk = new Token(INT_LIT, Long.parseLong(newToken.substring(2).toUpperCase(), 16)); } else if (flexadecimalMatcher.matcher(token).matches()) { final int parseBase = Integer.parseInt(token.substring(token.lastIndexOf('B') + 1)); + if (parseBase < Character.MIN_RADIX || parseBase > Character.MAX_RADIX) { Errors.inst.printError(EK_TOK_INVBASE, Integer.toString(parseBase)); return Token.NIL_TOKEN; @@ -153,6 +164,7 @@ public class Tokenizer { tk = new Token(VREF, nextSym - 1); } } + return tk; } } diff --git a/dice-lang/src/bjc/dicelang/dice/CompoundingDie.java b/dice-lang/src/bjc/dicelang/dice/CompoundingDie.java index 4b3f137..023282e 100644 --- a/dice-lang/src/bjc/dicelang/dice/CompoundingDie.java +++ b/dice-lang/src/bjc/dicelang/dice/CompoundingDie.java @@ -51,7 +51,7 @@ public class CompoundingDie implements Die { @Override public boolean canOptimize() { - if(source.canOptimize()) { + if (source.canOptimize()) { /* We can only be optimized for a result of zero. */ return source.optimize() == 0; } diff --git a/dice-lang/src/bjc/dicelang/dice/DiceBox.java b/dice-lang/src/bjc/dicelang/dice/DiceBox.java index 41b31af..f7bf719 100644 --- a/dice-lang/src/bjc/dicelang/dice/DiceBox.java +++ b/dice-lang/src/bjc/dicelang/dice/DiceBox.java @@ -24,7 +24,7 @@ public class DiceBox { try { return doParseExpression(expString); } catch (Exception ex) { - /* + /* * @TODO 10/08/17 Ben Culkin :DieErrors :ErrorRefactor * Use different types of exceptions to provide * better error messages. */ @@ -34,7 +34,7 @@ public class DiceBox { return null; } } - + private static DieExpression doParseExpression(final String expString) { /* Only bother with valid expressions. */ if (!isValidExpression(expString)) { @@ -96,10 +96,12 @@ public class DiceBox { final DieExpression right = parseExpression(dieParts[1]); /* :ErrorRefactor */ - if(left.isList) { - System.out.printf("ERROR: Expected a scalar die expression for lhs of compound die, got a list expression instead (%s)\n", left); - } else if(right.isList) { - System.out.printf("ERROR: Expected a scalar die expression for rhs of compound die, got a list expression instead (%s)\n", right); + if (left.isList) { + System.out.printf("ERROR: Expected a scalar die expression for lhs of compound die, got a list expression instead (%s)\n", + left); + } else if (right.isList) { + System.out.printf("ERROR: Expected a scalar die expression for rhs of compound die, got a list expression instead (%s)\n", + right); } final Die compound = new CompoundDie(left.scalar, right.scalar); @@ -167,7 +169,7 @@ public class DiceBox { */ private static final String scalarDie = "[\\+\\-]?\\d+sd"; private static final Pattern scalarDiePattern = Pattern.compile( - String.format("\\A%s\\Z", scalarDie)); + String.format("\\A%s\\Z", scalarDie)); /* * Defines a simple die. @@ -258,23 +260,25 @@ public class DiceBox { * @return Whether or not the string is a valid command. */ public static boolean isValidExpression(final String exp) { - if (scalarDiePattern.matcher(exp).matches()) + if (scalarDiePattern.matcher(exp).matches()) { return true; - else if (simpleDiePattern.matcher(exp).matches()) + } else if (simpleDiePattern.matcher(exp).matches()) { return true; - else if (fudgeDiePattern.matcher(exp).matches()) + } else if (fudgeDiePattern.matcher(exp).matches()) { return true; - else if (compoundDiePattern.matcher(exp).matches()) + } else if (compoundDiePattern.matcher(exp).matches()) { return true; - else if (compoundingDiePattern.matcher(exp).matches()) + } else if (compoundingDiePattern.matcher(exp).matches()) { return true; - else if (explodingDiePattern.matcher(exp).matches()) + } else if (explodingDiePattern.matcher(exp).matches()) { return true; - else if (penetratingDiePattern.matcher(exp).matches()) + } else if (penetratingDiePattern.matcher(exp).matches()) { return true; - else if (diceListPattern.matcher(exp).matches()) + } else if (diceListPattern.matcher(exp).matches()) { return true; - else return false; + } else { + return false; + } } /* diff --git a/dice-lang/src/bjc/dicelang/dice/DieExpression.java b/dice-lang/src/bjc/dicelang/dice/DieExpression.java index edf7684..71b7a68 100644 --- a/dice-lang/src/bjc/dicelang/dice/DieExpression.java +++ b/dice-lang/src/bjc/dicelang/dice/DieExpression.java @@ -46,7 +46,9 @@ public class DieExpression { @Override public String toString() { - if (isList) return list.toString(); + if (isList) { + return list.toString(); + } return scalar.toString(); } @@ -57,7 +59,9 @@ public class DieExpression { * @return The value of the expression as a string. */ public String value() { - if (isList) return Arrays.toString(list.roll()); + if (isList) { + return Arrays.toString(list.roll()); + } return Long.toString(scalar.roll()); } diff --git a/dice-lang/src/bjc/dicelang/dice/ExplodingDice.java b/dice-lang/src/bjc/dicelang/dice/ExplodingDice.java index 7036f32..6458f04 100644 --- a/dice-lang/src/bjc/dicelang/dice/ExplodingDice.java +++ b/dice-lang/src/bjc/dicelang/dice/ExplodingDice.java @@ -116,7 +116,9 @@ public class ExplodingDice implements DieList { @Override public String toString() { - if (explodePattern == null) return source + (explodePenetrates ? "p" : "") + "!"; + if (explodePattern == null) { + return source + (explodePenetrates ? "p" : "") + "!"; + } return source + (explodePenetrates ? "p" : "") + "!" + explodePattern; } diff --git a/dice-lang/src/bjc/dicelang/dice/SimpleDie.java b/dice-lang/src/bjc/dicelang/dice/SimpleDie.java index 60c5d53..ee10070 100644 --- a/dice-lang/src/bjc/dicelang/dice/SimpleDie.java +++ b/dice-lang/src/bjc/dicelang/dice/SimpleDie.java @@ -65,7 +65,9 @@ public class SimpleDie implements Die { @Override public boolean canOptimize() { - if (diceSize.canOptimize() && diceSize.optimize() <= 1) return numDice.canOptimize(); + if (diceSize.canOptimize() && diceSize.optimize() <= 1) { + return numDice.canOptimize(); + } return false; } @@ -74,7 +76,9 @@ public class SimpleDie implements Die { public long optimize() { final long optSize = diceSize.optimize(); - if (optSize == 0) return 0; + if (optSize == 0) { + return 0; + } return numDice.optimize(); } diff --git a/dice-lang/src/bjc/dicelang/dice/SimpleDieList.java b/dice-lang/src/bjc/dicelang/dice/SimpleDieList.java index 84896ea..4546238 100644 --- a/dice-lang/src/bjc/dicelang/dice/SimpleDieList.java +++ b/dice-lang/src/bjc/dicelang/dice/SimpleDieList.java @@ -26,7 +26,9 @@ public class SimpleDieList implements DieList { @Override public boolean canOptimize() { - if (size.canOptimize() && size.optimize() <= 1) return numDice.canOptimize(); + if (size.canOptimize() && size.optimize() <= 1) { + return numDice.canOptimize(); + } return false; } diff --git a/dice-lang/src/bjc/dicelang/expr/Ezpr.java b/dice-lang/src/bjc/dicelang/expr/Ezpr.java index 77adc70..7186d6f 100644 --- a/dice-lang/src/bjc/dicelang/expr/Ezpr.java +++ b/dice-lang/src/bjc/dicelang/expr/Ezpr.java @@ -58,7 +58,7 @@ // public Ezpr(EzprType type, Multiset pos, Multiset neg) { // typ = type; - + // positive = pos; // negative = neg; // } diff --git a/dice-lang/src/bjc/dicelang/expr/Parser.java b/dice-lang/src/bjc/dicelang/expr/Parser.java index b3f83a4..6d34b96 100644 --- a/dice-lang/src/bjc/dicelang/expr/Parser.java +++ b/dice-lang/src/bjc/dicelang/expr/Parser.java @@ -128,7 +128,9 @@ public class Parser { /* * Handle leaf nodes. */ + { return data.toExpr(); + } final ITree left = ast.getChild(0); final ITree right = ast.getChild(1); diff --git a/dice-lang/src/bjc/dicelang/expr/Tokens.java b/dice-lang/src/bjc/dicelang/expr/Tokens.java index 6bdcde0..f763d37 100644 --- a/dice-lang/src/bjc/dicelang/expr/Tokens.java +++ b/dice-lang/src/bjc/dicelang/expr/Tokens.java @@ -67,7 +67,9 @@ public class Tokens { * @return The token the string represents. */ public Token lexToken(final String tok, final String raw) { - if (litTokens.containsKey(tok)) return new Token(litTokens.get(tok), raw, this); + if (litTokens.containsKey(tok)) { + return new Token(litTokens.get(tok), raw, this); + } return parseVRef(tok, raw); } diff --git a/dice-lang/src/bjc/dicelang/scl/StreamControlConsole.java b/dice-lang/src/bjc/dicelang/scl/StreamControlConsole.java index 4dc9b82..8ace8ad 100644 --- a/dice-lang/src/bjc/dicelang/scl/StreamControlConsole.java +++ b/dice-lang/src/bjc/dicelang/scl/StreamControlConsole.java @@ -18,9 +18,13 @@ public class StreamControlConsole { /* Get input from the user. */ System.out.print("Enter a SCL command string (blank to exit): "); - while(scn.hasNextLine()) { + + while (scn.hasNextLine()) { String ln = scn.nextLine(); - if(ln.trim().equals("")) break; + + if (ln.trim().equals("")) { + break; + } /* Break the token into strings. */ IList res = new FunctionalList<>(); @@ -28,12 +32,18 @@ public class StreamControlConsole { /* Run the stream engine on the tokens. */ boolean succ = sengine.doStreams(tokens, res); - if(!succ) continue; + + if (!succ) { + continue; + } /* Run the command through SCL. */ tokens = res.toArray(new String[res.getSize()]); succ = sclengine.runProgram(tokens); - if(!succ) continue; + + if (!succ) { + continue; + } /* Prompt again. */ System.out.print("Command string executed succesfully.\n\n"); diff --git a/dice-lang/src/bjc/dicelang/scl/StreamControlEngine.java b/dice-lang/src/bjc/dicelang/scl/StreamControlEngine.java index b490217..2952a89 100644 --- a/dice-lang/src/bjc/dicelang/scl/StreamControlEngine.java +++ b/dice-lang/src/bjc/dicelang/scl/StreamControlEngine.java @@ -154,21 +154,21 @@ public class StreamControlEngine { } public static Token tokenizeString(final String token) { - if (litTokens.containsKey(token)) + if (litTokens.containsKey(token)) { return new Token(litTokens.get(token)); - else if (token.startsWith("\\")) + } else if (token.startsWith("\\")) { return new Token(SYMBOL, token.substring(1)); - else if (builtinWords.containsKey(token)) + } else if (builtinWords.containsKey(token)) { return new Token(WORD, builtinWords.get(token)); - else if (token.equals("true")) + } else if (token.equals("true")) { return new Token(BLIT, true); - else if (token.equals("false")) + } else if (token.equals("false")) { return new Token(BLIT, false); - else if (TokenUtils.isInt(token)) + } else if (TokenUtils.isInt(token)) { return new Token(ILIT, Long.parseLong(token)); - else if (TokenUtils.isDouble(token)) + } else if (TokenUtils.isDouble(token)) { return new Token(FLIT, Double.parseDouble(token)); - else { + } else { Errors.inst.printError(EK_SCL_INVTOKEN, token); return null; } @@ -237,27 +237,35 @@ public class StreamControlEngine { final String token = tokens[i]; final Token tok = Token.tokenizeString(token); - if (tok == null) return false; + if (tok == null) { + return false; + } switch (tok.type) { case SQUOTE: i = handleSingleQuote(i, tokens); - if (i == -1) return false; + if (i == -1) { + return false; + } break; case OBRACKET: i = handleDelim(i, tokens, "]"); - if (i == -1) return false; + if (i == -1) { + return false; + } break; case OBRACE: i = handleDelim(i, tokens, "}"); - if (i == -1) return false; + if (i == -1) { + return false; + } final Token brak = curStack.pop(); curStack.push(new Token(ARRAY, brak.tokenVals)); @@ -287,49 +295,63 @@ public class StreamControlEngine { case LEFTSTREAM: succ = eng.leftStream(); - if (!succ) return false; + if (!succ) { + return false; + } break; case RIGHTSTREAM: succ = eng.rightStream(); - if (!succ) return false; + if (!succ) { + return false; + } break; case DELETESTREAM: succ = eng.deleteStream(); - if (!succ) return false; + if (!succ) { + return false; + } break; case MERGESTREAM: succ = eng.mergeStream(); - if (!succ) return false; + if (!succ) { + return false; + } break; case MAKEARRAY: succ = makeArray(); - if (!succ) return false; + if (!succ) { + return false; + } break; case MAKEEXEC: succ = toggleExec(true); - if (!succ) return false; + if (!succ) { + return false; + } break; case MAKEUNEXEC: succ = toggleExec(false); - if (!succ) return false; + if (!succ) { + return false; + } break; @@ -353,7 +375,9 @@ public class StreamControlEngine { case NDROP: succ = handleNDrop(); - if (!succ) return false; + if (!succ) { + return false; + } break; @@ -369,7 +393,9 @@ public class StreamControlEngine { case NNIP: succ = handleNNip(); - if (!succ) return false; + if (!succ) { + return false; + } break; @@ -478,7 +504,9 @@ public class StreamControlEngine { case SQUOTE: n = handleSingleQuote(n, tokens); - if (n == -1) return -1; + if (n == -1) { + return -1; + } toks.add(curStack.pop()); break; @@ -486,7 +514,9 @@ public class StreamControlEngine { case OBRACKET: n = handleDelim(n, tokens, "]"); - if (n == -1) return -1; + if (n == -1) { + return -1; + } toks.add(curStack.pop()); break; @@ -494,7 +524,9 @@ public class StreamControlEngine { case OBRACE: n = handleDelim(i, tokens, "}"); - if (n == -1) return -1; + if (n == -1) { + return -1; + } final Token brak = curStack.pop(); toks.add(new Token(ARRAY, brak.tokenVals)); diff --git a/dice-lang/src/bjc/dicelang/scl/StreamEngine.java b/dice-lang/src/bjc/dicelang/scl/StreamEngine.java index 191ab41..2082c9b 100644 --- a/dice-lang/src/bjc/dicelang/scl/StreamEngine.java +++ b/dice-lang/src/bjc/dicelang/scl/StreamEngine.java @@ -98,12 +98,16 @@ public class StreamEngine { /* Are we currently quoting things? */ boolean quoteMode = false; + /* Process each token. */ for (final String tk : toks) { /* Process stream commands. */ if (tk.startsWith("{@S") && !quoteMode) { - if (tk.equals("{@SQ}")) quoteMode = true; - else if (!processCommand(tk)) return false; + if (tk.equals("{@SQ}")) { + quoteMode = true; + } else if (!processCommand(tk)) { + return false; + } } else { if (tk.equals("{@SU}")) { quoteMode = false; @@ -215,35 +219,45 @@ public class StreamEngine { case '>': succ = rightStream(); - if (!succ) return false; + if (!succ) { + return false; + } break; case '<': succ = leftStream(); - if (!succ) return false; + if (!succ) { + return false; + } break; case '-': succ = deleteStream(); - if (!succ) return false; + if (!succ) { + return false; + } break; case 'M': succ = mergeStream(); - if (!succ) return false; + if (!succ) { + return false; + } break; case 'L': succ = scleng.runProgram(currStream.toArray(new String[0])); - if (!succ) return false; + if (!succ) { + return false; + } break; -- cgit v1.2.3