From 6791803c2d8b899450c1d59228111b407246a3ea Mon Sep 17 00:00:00 2001 From: Jared Davis Date: Tue, 28 Jul 2026 09:44:29 -0400 Subject: [PATCH 1/5] Alter method if/return sequence --- .../java/org/scijava/parsington/Literals.java | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) 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 != '_'; + } } From 279d8f9fedebda6176254ad3f51af277fa2c7473 Mon Sep 17 00:00:00 2001 From: Jared Davis Date: Tue, 28 Jul 2026 09:48:03 -0400 Subject: [PATCH 2/5] Replace string concatenation within append with chained append calls --- src/main/java/org/scijava/parsington/eval/StackEvaluator.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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); From b536f639e57499ea4c3454a7e32dff99e052114d Mon Sep 17 00:00:00 2001 From: Jared Davis Date: Tue, 28 Jul 2026 09:48:31 -0400 Subject: [PATCH 3/5] Replace string concatenation within append with chained append calls --- src/main/java/org/scijava/parsington/SyntaxTree.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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)); From 99c2afa25fb96a92ca16b38e19dc5dd0a8588ddb Mon Sep 17 00:00:00 2001 From: Jared Davis Date: Tue, 28 Jul 2026 09:50:04 -0400 Subject: [PATCH 4/5] Java 8 updates --- .../scijava/parsington/ExpressionParser.java | 18 +++++++++--------- .../parsington/eval/StandardTreeEvaluator.java | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) 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/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; } From 1235f2caad977e636759d5ba95d08e4162cd22a6 Mon Sep 17 00:00:00 2001 From: Jared Davis Date: Tue, 28 Jul 2026 09:51:15 -0400 Subject: [PATCH 5/5] remove cast --- src/main/java/org/scijava/parsington/Tokens.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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) {