Class IntegerLiteralExpr

All Implemented Interfaces:
NodeWithRange<Node>, NodeWithTokenRange<Node>, Observable, Visitable, HasParentNode<Node>, Cloneable

public class IntegerLiteralExpr extends LiteralStringValueExpr
All ways to specify an int literal.
  • 8934
  • 0x01
  • 022
  • 0B10101010
Author:
Julio Vilmar Gesser
  • Field Details

    • MAX_31_BIT_UNSIGNED_VALUE_AS_STRING

      public static final String MAX_31_BIT_UNSIGNED_VALUE_AS_STRING
      See Also:
      Constant Field Values
    • MAX_31_BIT_UNSIGNED_VALUE_AS_LONG

      public static final long MAX_31_BIT_UNSIGNED_VALUE_AS_LONG
      See Also:
      Constant Field Values
  • Constructor Details

    • IntegerLiteralExpr

      public IntegerLiteralExpr()
    • IntegerLiteralExpr

      public IntegerLiteralExpr(String value)
    • IntegerLiteralExpr

      public IntegerLiteralExpr(TokenRange tokenRange, String value)
      This constructor is used by the parser and is considered private.
    • IntegerLiteralExpr

      @Deprecated public IntegerLiteralExpr(int value)
      Deprecated.
      This function is deprecated in favor of IntegerLiteralExpr(String). Please refer to the asNumber() function for valid formats and how to construct literals holding negative values.
  • Method Details

    • accept

      public <R,​ A> R accept(GenericVisitor<R,​A> v, A arg)
      Description copied from interface: Visitable
      Accept method for visitor support.
      Type Parameters:
      R - the type of the return value of the visitor
      A - the type the user argument passed to the visitor
      Parameters:
      v - the visitor implementation
      arg - the argument passed to the visitor (of type A)
      Returns:
      the result of the visit (of type R)
    • accept

      public <A> void accept(VoidVisitor<A> v, A arg)
      Description copied from interface: Visitable
      Accept method for visitor support.
      Type Parameters:
      A - the type the argument passed for the visitor
      Parameters:
      v - the visitor implementation
      arg - any value relevant for the visitor (of type A)
    • asInt

      @Deprecated public int asInt()
      Deprecated.
      This function has issues with corner cases, such as 2147483648, so please use asNumber(). It will be made private or merged with asNumber() in future releases
      Returns:
      the literal value as an integer while respecting different number representations
    • asNumber

      public Number asNumber()
      This function returns a representation of the literal value as a number. This will return an integer, except for the case when the literal has the value 2147483648. This special literal is only allowed in the expression -2147483648 which represents Integer.MIN_VALUE). However 2147483648 (2^31) is out of range of int, which is -(2^31) to (2^31)-1 and thus a long must be returned.

      Note, that this function will NOT return a negative number if the literal was specified in decimal, since according to the language specification (chapter 3.10.1) an expression such as -1 is represented by a unary expression with a minus operator and the literal 1. It is however possible to represent negative numbers in a literal directly, i.e. by using the binary or hexadecimal representation. For example 0xffff_ffff represents the value -1.

      Returns:
      the literal value as a number while respecting different number representations
    • setInt

      @Deprecated public IntegerLiteralExpr setInt(int value)
      Deprecated.
      This function is deprecated in favor of LiteralStringValueExpr.setValue(String). Please refer to the asNumber() function for valid formats and how to construct literals holding negative values.
    • clone

      public IntegerLiteralExpr clone()
      Overrides:
      clone in class LiteralStringValueExpr
    • getMetaModel

      public IntegerLiteralExprMetaModel getMetaModel()
      Overrides:
      getMetaModel in class LiteralStringValueExpr
      Returns:
      get JavaParser specific node introspection information.
    • isIntegerLiteralExpr

      public boolean isIntegerLiteralExpr()
      Overrides:
      isIntegerLiteralExpr in class Expression
    • asIntegerLiteralExpr

      public IntegerLiteralExpr asIntegerLiteralExpr()
      Overrides:
      asIntegerLiteralExpr in class Expression
    • ifIntegerLiteralExpr

      public void ifIntegerLiteralExpr(Consumer<IntegerLiteralExpr> action)
      Overrides:
      ifIntegerLiteralExpr in class Expression
    • toIntegerLiteralExpr

      public Optional<IntegerLiteralExpr> toIntegerLiteralExpr()
      Overrides:
      toIntegerLiteralExpr in class Expression