You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2019/09/28 07:24:42 UTC

[groovy] 02/02: Numbers class: remove antlr2 code

This is an automated email from the ASF dual-hosted git repository.

paulk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit fb232669a173a33a0b52a40e037a6caeb4781151
Author: Paul King <pa...@asert.com.au>
AuthorDate: Sat Sep 28 17:24:08 2019 +1000

    Numbers class: remove antlr2 code
---
 .../codehaus/groovy/antlr/AntlrParserPlugin.java   |   4 +-
 .../java/org/codehaus/groovy/syntax/Numbers.java   | 102 ---------------------
 2 files changed, 2 insertions(+), 104 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/antlr/AntlrParserPlugin.java b/src/main/java/org/codehaus/groovy/antlr/AntlrParserPlugin.java
index f6330c0..8e8fe06 100644
--- a/src/main/java/org/codehaus/groovy/antlr/AntlrParserPlugin.java
+++ b/src/main/java/org/codehaus/groovy/antlr/AntlrParserPlugin.java
@@ -2847,7 +2847,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
             case NUM_BIG_INT:
             case NUM_INT:
             case NUM_LONG:
-                ConstantExpression constantLongExpression = new ConstantExpression(Numbers.parseInteger(unaryMinusExpr,"-" + text));
+                ConstantExpression constantLongExpression = new ConstantExpression(Numbers.parseInteger("-" + text));
                 configureAST(constantLongExpression, unaryMinusExpr);
                 return constantLongExpression;
 
@@ -2887,7 +2887,7 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
 
     protected ConstantExpression integerExpression(AST node) {
         String text = node.getText();
-        Object number = Numbers.parseInteger(node, text);
+        Object number = Numbers.parseInteger(text);
         boolean keepPrimitive = number instanceof Integer || number instanceof Long;
         ConstantExpression constantExpression = new ConstantExpression(number, keepPrimitive);
         configureAST(constantExpression, node);
diff --git a/src/main/java/org/codehaus/groovy/syntax/Numbers.java b/src/main/java/org/codehaus/groovy/syntax/Numbers.java
index cc9231a..d033def 100644
--- a/src/main/java/org/codehaus/groovy/syntax/Numbers.java
+++ b/src/main/java/org/codehaus/groovy/syntax/Numbers.java
@@ -18,9 +18,6 @@
  */
 package org.codehaus.groovy.syntax;
 
-import antlr.collections.AST;
-import org.codehaus.groovy.antlr.ASTRuntimeException;
-
 import java.math.BigDecimal;
 import java.math.BigInteger;
 
@@ -197,105 +194,6 @@ public class Numbers {
     }
 
     /**
-     * Builds a Number from the given integer descriptor.  Creates the narrowest
-     * type possible, or a specific type, if specified.
-     *
-     * @param reportNode at node for error reporting in the parser
-     * @param text       literal text to parse
-     * @return instantiated Number object
-     * @throws NumberFormatException if the number does not fit within the type requested by the type
-     *                               specifier suffix (invalid numbers don't make it here)
-     */
-    @Deprecated
-    public static Number parseInteger(AST reportNode, String text) {
-        // remove place holder underscore before starting
-        text = text.replace("_", "");
-
-        char c = ' ';
-        int length = text.length();
-
-        //
-        // Strip off the sign, if present
-
-        boolean negative = false;
-        if ((c = text.charAt(0)) == '-' || c == '+') {
-            negative = (c == '-');
-            text = text.substring(1, length);
-            length -= 1;
-        }
-
-        //
-        // Determine radix (default is 10).
-
-        int radix = 10;
-        if (text.charAt(0) == '0' && length > 1) {
-            c = text.charAt(1);
-            if (c == 'X' || c == 'x') {
-                radix = 16;
-                text = text.substring(2, length);
-                length -= 2;
-            } else if (c == 'B' || c == 'b') {
-                radix = 2;
-                text = text.substring(2, length);
-                length -= 2;
-            } else {
-                radix = 8;
-            }
-        }
-
-        //
-        // Strip off any type specifier and convert it to lower
-        // case, if present.
-
-        char type = 'x';  // pick best fit
-        if (isNumericTypeSpecifier(text.charAt(length - 1), false)) {
-            type = Character.toLowerCase(text.charAt(length - 1));
-            text = text.substring(0, length - 1);
-
-            length -= 1;
-        }
-
-        //
-        // Add the sign back, if necessary
-
-        if (negative) {
-            text = "-" + text;
-        }
-
-        //
-        // Build the specified type or, if no type was specified, the
-        // smallest type in which the number will fit.
-
-        BigInteger value = new BigInteger(text, radix);
-
-        switch (type) {
-            case 'i':
-                if (radix == 10 && (value.compareTo(MAX_INTEGER) > 0 || value.compareTo(MIN_INTEGER) < 0)) {
-                    throw new ASTRuntimeException(reportNode, "Number of value " + value + " does not fit in the range of int, but int was enforced.");
-                } else {
-                    return value.intValue();
-                }
-            case 'l':
-                if (radix == 10 && (value.compareTo(MAX_LONG) > 0 || value.compareTo(MIN_LONG) < 0)) {
-                    throw new ASTRuntimeException(reportNode, "Number of value " + value + " does not fit in the range of long, but long was enforced.");
-                } else {
-                    return value.longValue();
-                }
-            case 'g':
-                return value;
-            default:
-                // If not specified, we will return the narrowest possible
-                // of Integer, Long, and BigInteger.
-                if (value.compareTo(MAX_INTEGER) <= 0 && value.compareTo(MIN_INTEGER) >= 0) {
-                    return value.intValue();
-                } else if (value.compareTo(MAX_LONG) <= 0 && value.compareTo(MIN_LONG) >= 0) {
-                    return value.longValue();
-                }
-                return value;
-        }
-    }
-
-    /**
      * Builds a Number from the given decimal descriptor.  Uses BigDecimal,
      * unless, Double or Float is requested.
      *