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.
*