InputElement: WhiteSpace Comment Token Token: Identifier Keyword Literal Separator Operator Comment: TraditionalComment EndOfLineComment TraditionalComment: / * CommentTail CommentTail: * CommentTailStar NotStar CommentTail CommentTailStar: / * CommentTailStar NotStarNotSlash CommentTail NotStar: InputCharacter but not * LineTerminator NotStarNotSlash: InputCharacter but not * or / LineTerminator EndOfLineComment: / / {InputCharacter} Identifier: IdentifierChars but not Keyword or BooleanLiteral or NullLiteral IdentifierChars: JavaLetter {JavaLetterOrDigit} Keyword: abstract continue for new switch assert default if package synchronized boolean do goto private this break double implements protected throw byte else import public throws case enum instanceof return transient catch extends int short try char final interface static void class finally long strictfp volatile const float native super while Literal: IntegerLiteral FloatingPointLiteral BooleanLiteral CharacterLiteral StringLiteral NullLiteral IntegerLiteral: DecimalIntegerLiteral HexIntegerLiteral OctalIntegerLiteral BinaryIntegerLiteral DecimalIntegerLiteral: DecimalNumeral [IntegerTypeSuffix] HexIntegerLiteral: HexNumeral [IntegerTypeSuffix] OctalIntegerLiteral: OctalNumeral [IntegerTypeSuffix] BinaryIntegerLiteral: BinaryNumeral [IntegerTypeSuffix] IntegerTypeSuffix: l L DecimalNumeral: 0 NonZeroDigit [Digits] NonZeroDigit Underscores Digits NonZeroDigit: 1 2 3 4 5 6 7 8 9 Digits: Digit Digit [DigitsAndUnderscores] Digit Digit: 0 NonZeroDigit DigitsAndUnderscores: DigitOrUnderscore {DigitOrUnderscore} DigitOrUnderscore: Digit _ Underscores: _ {_} HexNumeral: 0 x HexDigits 0 X HexDigits HexDigits: HexDigit HexDigit [HexDigitsAndUnderscores] HexDigit HexDigit: 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F HexDigitsAndUnderscores: HexDigitOrUnderscore {HexDigitOrUnderscore} HexDigitOrUnderscore: HexDigit _ OctalNumeral: 0 OctalDigits 0 Underscores OctalDigits OctalDigits: OctalDigit OctalDigit [OctalDigitsAndUnderscores] OctalDigit OctalDigit: 0 1 2 3 4 5 6 7 OctalDigitsAndUnderscores: OctalDigitOrUnderscore {OctalDigitOrUnderscore} OctalDigitOrUnderscore: OctalDigit _ BinaryNumeral: 0 b BinaryDigits 0 B BinaryDigits BinaryDigits: BinaryDigit BinaryDigit [BinaryDigitsAndUnderscores] BinaryDigit BinaryDigit: 0 1 BinaryDigitsAndUnderscores: BinaryDigitOrUnderscore {BinaryDigitOrUnderscore} BinaryDigitOrUnderscore: BinaryDigit _ FloatingPointLiteral: DecimalFloatingPointLiteral HexadecimalFloatingPointLiteral DecimalFloatingPointLiteral: Digits . [Digits] [ExponentPart] [FloatTypeSuffix] . Digits [ExponentPart] [FloatTypeSuffix] Digits ExponentPart [FloatTypeSuffix] Digits [ExponentPart] FloatTypeSuffix ExponentPart: ExponentIndicator SignedInteger ExponentIndicator: e E SignedInteger: [Sign] Digits Sign: + - FloatTypeSuffix: f F d D HexadecimalFloatingPointLiteral: HexSignificand BinaryExponent [FloatTypeSuffix] HexSignificand: HexNumeral [.] 0 x [HexDigits] . HexDigits 0 X [HexDigits] . HexDigits BinaryExponent: BinaryExponentIndicator SignedInteger BinaryExponentIndicator: p P BooleanLiteral: true false CharacterLiteral: ' SingleCharacter ' ' EscapeSequence ' SingleCharacter: InputCharacter but not ' or \ StringLiteral: " {StringCharacter} " StringCharacter: InputCharacter but not " or \ EscapeSequence EscapeSequence: \ b \ t \ n \ f \ r \ " \ ' \ \ OctalEscape OctalEscape: \ OctalDigit \ OctalDigit OctalDigit \ ZeroToThree OctalDigit OctalDigit ZeroToThree: 0 1 2 3 NullLiteral: null Separator: ( ) { } [ ] ; , . ... @ :: Operator: = > < ! ~ ? : -> == >= <= != && || ++ -- + - * / & | ^ % << >> >>> += -= *= /= &= |= ^= %= <<= >>= >>>=