diff --git a/src/main/java/org/scijava/parsington/ExpressionParser.java b/src/main/java/org/scijava/parsington/ExpressionParser.java index eeea692..e8bd630 100644 --- a/src/main/java/org/scijava/parsington/ExpressionParser.java +++ b/src/main/java/org/scijava/parsington/ExpressionParser.java @@ -151,15 +151,15 @@ public ExpressionParser(final Collection operators, // NB: Ensure operators with longer symbols come first. // This prevents e.g. '-' from being matched before '-=' and '--'. - Collections.sort(operatorsList, (o1, o2) -> { - final String t1 = o1.getToken(); - final String t2 = o2.getToken(); - final int len1 = t1.length(); - final int len2 = t2.length(); - if (len1 > len2) return -1; // o1 is longer, so o1 comes first. - if (len1 < len2) return 1; // o2 is longer, so o2 comes first. - return t1.compareTo(t2); - }); + operatorsList.sort((o1, o2) -> { + final String t1 = o1.getToken(); + final String t2 = o2.getToken(); + final int len1 = t1.length(); + final int len2 = t2.length(); + if (len1 > len2) return -1; // o1 is longer, so o1 comes first. + if (len1 < len2) return 1; // o2 is longer, so o2 comes first. + return t1.compareTo(t2); + }); this.operators = Collections.unmodifiableList(operatorsList); this.elementSeparator = elementSeparator; diff --git a/src/main/java/org/scijava/parsington/Literals.java b/src/main/java/org/scijava/parsington/Literals.java index f5997bd..6ac708f 100644 --- a/src/main/java/org/scijava/parsington/Literals.java +++ b/src/main/java/org/scijava/parsington/Literals.java @@ -444,11 +444,8 @@ public static Number parseNumber(final CharSequence s, final Position pos) { final Number octal = parseOctal(s, pos); if (octal != null) return octal; - final Number decimal = parseDecimal(s, pos); - if (decimal != null) return decimal; - - return null; - } + return parseDecimal(s, pos); + } /** * Parses a literal of any known type (booleans, strings and numbers). @@ -472,11 +469,8 @@ public static Object parseLiteral(final CharSequence s, final Position pos) { final String str = parseString(s, pos); if (str != null) return str; - final Number num = parseNumber(s, pos); - if (num != null) return num; - - return null; - } + return parseNumber(s, pos); + } // -- Helper methods -- @@ -618,8 +612,7 @@ private static boolean isWord(final CharSequence s, final Position pos, if (next >= 'a' && next <= 'z') return false; if (next >= 'A' && next <= 'Z') return false; if (next >= '0' && next <= '9') return false; - if (next == '_') return false; - return true; - } + return next != '_'; + } } diff --git a/src/main/java/org/scijava/parsington/SyntaxTree.java b/src/main/java/org/scijava/parsington/SyntaxTree.java index 3f8bc4b..cf857bd 100644 --- a/src/main/java/org/scijava/parsington/SyntaxTree.java +++ b/src/main/java/org/scijava/parsington/SyntaxTree.java @@ -143,7 +143,7 @@ private void postfix(final LinkedList queue) { private String toString(final String prefix) { final StringBuilder sb = new StringBuilder(); - sb.append(prefix + " '" + token + "'\n"); + sb.append(prefix).append(" '").append(token).append("'\n"); final String deeperPrefix = " " + prefix + "-"; for (int i = 0; i < count(); i++) { sb.append(child(i).toString(deeperPrefix)); diff --git a/src/main/java/org/scijava/parsington/Tokens.java b/src/main/java/org/scijava/parsington/Tokens.java index f0d3d89..17d30ed 100644 --- a/src/main/java/org/scijava/parsington/Tokens.java +++ b/src/main/java/org/scijava/parsington/Tokens.java @@ -61,7 +61,7 @@ public static boolean isComma(final Object o) { } public static boolean isCharacter(final Object o, final Character c) { - return o instanceof Character && ((Character) o).equals(c); + return o instanceof Character && o.equals(c); } public static boolean isMatchingGroup(final Object o, final Group g) { diff --git a/src/main/java/org/scijava/parsington/eval/StackEvaluator.java b/src/main/java/org/scijava/parsington/eval/StackEvaluator.java index 1d0e6ae..55f21ee 100644 --- a/src/main/java/org/scijava/parsington/eval/StackEvaluator.java +++ b/src/main/java/org/scijava/parsington/eval/StackEvaluator.java @@ -93,14 +93,14 @@ default Object evaluate(final LinkedList queue) { "nonary" }; final String aryName = arity < aryNames.length ? aryNames[arity] : arity + "-ary"; - message.append(" " + aryName); + message.append(" ").append(aryName); } final String type; if (token instanceof Function) type = "function"; else if (token instanceof Group) type = "group"; else if (token instanceof Operator) type = "operator"; else type = "token"; - message.append(" " + type + ": " + token); + message.append(" ").append(type).append(": ").append(token); throw new IllegalArgumentException(message.toString()); } stack.push(result); diff --git a/src/main/java/org/scijava/parsington/eval/StandardTreeEvaluator.java b/src/main/java/org/scijava/parsington/eval/StandardTreeEvaluator.java index a29308d..6e3981e 100644 --- a/src/main/java/org/scijava/parsington/eval/StandardTreeEvaluator.java +++ b/src/main/java/org/scijava/parsington/eval/StandardTreeEvaluator.java @@ -49,7 +49,7 @@ default Object execute(final Operator op, final SyntaxTree tree) { // Handle short-circuiting operators first. if (op == Operators.LOGICAL_AND) { final Object leftValue = value(evaluate(tree.child(0))); - if (leftValue instanceof Boolean && !((Boolean) leftValue).booleanValue()) { + if (leftValue instanceof Boolean && !(Boolean) leftValue) { // Left side is false, so entire expression will be false. return false; } @@ -58,7 +58,7 @@ default Object execute(final Operator op, final SyntaxTree tree) { } else if (op == Operators.LOGICAL_OR) { final Object leftValue = value(evaluate(tree.child(0))); - if (leftValue instanceof Boolean && ((Boolean) leftValue).booleanValue()) { + if (leftValue instanceof Boolean && (Boolean) leftValue) { // Left side is true, so entire expression will be true. return true; }