summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorJoel Klinghed <the_jk@spawned.biz>2025-09-28 22:53:30 +0200
committerJoel Klinghed <the_jk@spawned.biz>2025-09-29 09:39:17 +0200
commit1e9e51dae1c01bab7562911b958c47528b8011c8 (patch)
tree73e0c97545d1cf833a4205c8ced41c822b4bb348 /data
parent0ca22c7d6d650c80906bd1217fccf32066cc2502 (diff)
java: Add tokens
Only parses Java 8 tokens for now.
Diffstat (limited to 'data')
-rw-r--r--data/java-8/tokens.grammar385
1 files changed, 385 insertions, 0 deletions
diff --git a/data/java-8/tokens.grammar b/data/java-8/tokens.grammar
new file mode 100644
index 0000000..3521ac0
--- /dev/null
+++ b/data/java-8/tokens.grammar
@@ -0,0 +1,385 @@
+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:
+ =
+ >
+ <
+ !
+ ~
+ ?
+ :
+ ->
+ ==
+ >=
+ <=
+ !=
+ &&
+ ||
+ ++
+ --
+ +
+ -
+ *
+ /
+ &
+ |
+ ^
+ %
+ <<
+ >>
+ >>>
+ +=
+ -=
+ *=
+ /=
+ &=
+ |=
+ ^=
+ %=
+ <<=
+ >>=
+ >>>=