/* A.2 Number Conversions */ stringNumericLiteral: /* * SPEC: * (strWhiteSpace)? * | (strWhiteSpace)? strNumericLiteral (strWhiteSpace)? */ (strWhiteSpace)? (strNumericLiteral (strWhiteSpace)?)? ; strWhiteSpace: strWhiteSpaceChar (strWhiteSpace)? ; strWhiteSpaceChar: TAB | SP | NBSP | FF | VT | CR | LF | LS | PS | USP ; strNumericLiteral: strDecimalLiteral | hexIntegerLiteral ; strDecimalLiteral: strUnsignedDecimalLiteral | PLUS strUnsignedDecimalLiteral | MINUS strUnsignedDecimalLiteral ; strUnsignedDecimalLiteral: /* * SPEC: * 'Infinity' * | decimalDigits DOT (decimalDigits)? (exponentPart)? * | DOT decimalDigits (exponentPart)? * | decimalDigits (exponentPart)? */ 'Infinity' /* syntactic predicate used to remove nondet between ALTs 2 and 4 */ | (decimalDigits DOT)=> decimalDigits DOT (decimalDigits)? (exponentPart)? | DOT decimalDigits (exponentPart)? | decimalDigits (exponentPart)? ; /* defined above decimalDigits: decimalDigit | decimalDigits decimalDigit ;*/ /* decimalDigit: DIGIT // grammar has them explicitly enumerated ;*/ exponentPart: exponentIndicator signedInteger ; /* redefined above exponentIndicator: EXPONENT_INDICATOR ;*/ /* redefined above signedInteger: decimalDigits | PLUS decimalDigits | MINUS decimalDigits ;*/ /* redefined above hexIntegerLiteral: '0x' hexDigit | '0X' hexDigit | hexIntegerLiteral hexDigit ;*/ /* redefined above hexDigit: HEXDIGIT // grammar has them explicitely enumerated ; */