feat: use Gradle ANTLR plugin to generate lexers

This commit is contained in:
Akash Yadav
2023-01-01 13:43:23 +05:30
parent f5bd33cfec
commit 3090632c66
98 changed files with 1494 additions and 121907 deletions
+1
View File
@@ -1,6 +1,7 @@
plugins {
id("com.android.application")
id("kotlin-android")
id("kotlin-kapt")
id("kotlin-parcelize")
id("com.google.android.gms.oss-licenses-plugin")
}
Binary file not shown.
+1 -1
View File
@@ -27,6 +27,6 @@ repositories {
dependencies {
implementation(gradleApi())
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation(kotlin("stdlib"))
implementation("com.google.googlejavaformat:google-java-format:1.15.0")
}
-1
View File
@@ -63,7 +63,6 @@ fun Project.configureBaseExtension() {
subprojects {
apply {
plugin("kotlin-kapt")
plugin(AndroidIDEPlugin::class.java)
}
@@ -62,10 +62,7 @@ class KotlinAnalyzer : BaseIncrementalAnalyzeManager(KotlinLexer::class.java) {
spans.add(Span.obtain(offset, makeStyle(TEXT_NORMAL)))
first = false
}
KotlinLexer.AT_NO_WS,
KotlinLexer.AT_POST_WS,
KotlinLexer.AT_PRE_WS,
KotlinLexer.AT_BOTH_WS -> spans.add(Span.obtain(offset, makeStyle(ANNOTATION)))
KotlinLexer.AT_WS -> spans.add(Span.obtain(offset, makeStyle(ANNOTATION)))
KotlinLexer.ANNOTATION,
KotlinLexer.ABSTRACT,
KotlinLexer.BY,
@@ -99,18 +96,8 @@ class KotlinAnalyzer : BaseIncrementalAnalyzeManager(KotlinLexer::class.java) {
KotlinLexer.TAILREC,
KotlinLexer.VARARG,
KotlinLexer.WHERE,
KotlinLexer.GET,
KotlinLexer.SET,
KotlinLexer.FIELD,
KotlinLexer.PROPERTY,
KotlinLexer.RECEIVER,
KotlinLexer.PARAM,
KotlinLexer.SETPARAM,
KotlinLexer.DELEGATE,
KotlinLexer.FILE,
KotlinLexer.EXPECT,
KotlinLexer.ACTUAL,
KotlinLexer.VALUE,
KotlinLexer.CONST,
KotlinLexer.SUSPEND,
KotlinLexer.RETURN_AT,
@@ -151,7 +138,6 @@ class KotlinAnalyzer : BaseIncrementalAnalyzeManager(KotlinLexer::class.java) {
KotlinLexer.IntegerLiteral,
KotlinLexer.HexLiteral,
KotlinLexer.BinLiteral,
KotlinLexer.UnsignedLiteral,
KotlinLexer.LongLiteral,
KotlinLexer.BooleanLiteral,
KotlinLexer.NullLiteral,
+2 -1
View File
@@ -7,6 +7,7 @@ glide = "4.14.2"
androidx-vectordrawable = "1.1.0"
androidx-navigation = "2.5.3"
ksp = "1.8.0-1.0.8"
antlr4 = "4.11.1"
[libraries]
@@ -23,7 +24,7 @@ common-utilcode = { module = "com.blankj:utilcodex", version = "1.31.1" }
common-glide = { module = "com.github.bumptech.glide:glide", version.ref = "glide" }
common-glide_ap = { module = "com.github.bumptech.glide:compiler", version.ref = "glide" }
common-jsoup = { module = "org.jsoup:jsoup", version = "1.15.3" }
common-antlr4 = { module = "org.antlr:antlr4-runtime", version = "4.9.3" }
common-antlr4 = { module = "org.antlr:antlr4", version.ref = "antlr4" }
common-javaparser = { module = "com.github.javaparser:javaparser-symbol-solver-core", version = "3.24.10" }
common-lang3 = { module = "org.apache.commons:commons-lang3", version = "3.12.0" }
common-io = { module = "commons-io:commons-io", version = "2.11.0" }
+17 -10
View File
@@ -1,3 +1,11 @@
import android.annotation.SuppressLint
import org.gradle.api.plugins.antlr.internal.AntlrExecuter
import org.gradle.api.plugins.antlr.internal.AntlrSpec
import org.jetbrains.kotlin.gradle.internal.KaptGenerateStubsTask
import org.jetbrains.kotlin.gradle.internal.KaptTask
import org.jetbrains.kotlin.gradle.tasks.KaptGenerateStubs
import java.util.Collections
/*
* This file is part of AndroidIDE.
*
@@ -16,21 +24,20 @@
*/
plugins {
id("com.android.library")
id("kotlin-android")
}
android {
namespace = "com.itsaky.androidide.lexers"
id("java-library")
kotlin("jvm")
antlr
}
dependencies {
api(libs.common.antlr4)
antlr(libs.common.antlr4)
implementation(libs.androidx.ktx)
implementation(libs.common.kotlin)
implementation(libs.common.jkotlin)
testImplementation(libs.tests.junit)
testImplementation(libs.tests.google.truth)
testImplementation(libs.tests.robolectric)
}
tasks.withType<AntlrTask> {
Collections.addAll(arguments, "-visitor", "-listener", "-Xexact-output-dir")
}
@@ -1,6 +1,4 @@
/**
* Kotlin lexical grammar in ANTLR4 notation (Unicode classes)
*
* Taken from http://www.antlr3.org/grammar/1345144569663/AntlrUnicode.txt
*/
@@ -918,10 +916,8 @@ UNICODE_CLASS_LO:
'\u3131'..'\u318E' |
'\u31A0'..'\u31BA' |
'\u31F0'..'\u31FF' |
'\u3400' |
'\u4DB5' |
'\u4E00' |
'\u9FCC' |
'\u3400'..'\u4DB5' |
'\u4E00'..'\u9FCC' |
'\uA000'..'\uA014' |
'\uA016'..'\uA48C' |
'\uA4D0'..'\uA4F7' |
@@ -1,5 +1,9 @@
lexer grammar CPP14Lexer;
@header {
package com.itsaky.androidide.lexers.cpp;
}
IntegerLiteral:
DecimalLiteral Integersuffix?
| OctalLiteral Integersuffix?
@@ -20,6 +20,11 @@
* ****************************************************************************
*/
parser grammar CPP14Parser;
@header {
package com.itsaky.androidide.lexers.cpp;
}
options {
tokenVocab = CPP14Lexer;
}
@@ -29,6 +29,10 @@
lexer grammar GroovyLexer;
@header {
package com.itsaky.androidide.lexers.groovy;
}
// Keywords
ABSTRACT: 'abstract';
@@ -29,6 +29,10 @@
lexer grammar JavaLexer;
@header {
package com.itsaky.androidide.lexers.java;
}
// Keywords
ABSTRACT: 'abstract';
@@ -29,6 +29,10 @@
parser grammar JavaParser;
@header {
package com.itsaky.androidide.lexers.java;
}
options { tokenVocab=JavaLexer; }
compilationUnit
@@ -28,6 +28,10 @@
lexer grammar JavadocLexer;
@header {
package com.itsaky.androidide.lexers.javadoc;
}
NAME
: [a-zA-Z]+
;
@@ -28,6 +28,11 @@
parser grammar JavadocParser;
@header {
package com.itsaky.androidide.lexers.javadoc;
}
options { tokenVocab=JavadocLexer; }
@@ -0,0 +1,530 @@
/**
* Kotlin Grammar for ANTLR v4
*
* Based on:
* http://jetbrains.github.io/kotlin-spec/#_grammars_and_parsing
* and
* http://kotlinlang.org/docs/reference/grammar.html
*
* Tested on
* https://github.com/JetBrains/kotlin/tree/master/compiler/testData/psi
*/
lexer grammar KotlinLexer;
@header {
package com.itsaky.androidide.lexers.kotlin;
}
import UnicodeClasses;
ShebangLine
: '#!' ~[\r\n]*
;
DelimitedComment
: '/*' ( DelimitedComment | . )*? '*/'
-> channel(HIDDEN)
;
LineComment
: '//' ~[\r\n]*
-> channel(HIDDEN)
;
WS
: [\u0020\u0009\u000C]
-> channel(HIDDEN)
;
NL: '\n' | '\r' '\n'? ;
fragment Hidden: DelimitedComment | LineComment | WS;
//SEPARATORS & OPERATIONS
RESERVED: '...' ;
DOT: '.' ;
COMMA: ',' ;
LPAREN: '(' -> pushMode(Inside);
RPAREN: ')' -> popMode;
LSQUARE: '[' -> pushMode(Inside);
RSQUARE: ']' -> popMode;
LCURL: '{' -> pushMode(DEFAULT_MODE);
RCURL: '}' -> popMode;
MULT: '*' ;
MOD: '%' ;
DIV: '/' ;
ADD: '+' ;
SUB: '-' ;
INCR: '++' ;
DECR: '--' ;
CONJ: '&&' ;
DISJ: '||' ;
EXCL_WS: '!' Hidden;
EXCL_NO_WS: '!';
COLON: ':' ;
SEMICOLON: ';' ;
ASSIGNMENT: '=' ;
ADD_ASSIGNMENT: '+=' ;
SUB_ASSIGNMENT: '-=' ;
MULT_ASSIGNMENT: '*=' ;
DIV_ASSIGNMENT: '/=' ;
MOD_ASSIGNMENT: '%=' ;
ARROW: '->' ;
DOUBLE_ARROW: '=>' ;
RANGE: '..' ;
COLONCOLON: '::' ;
DOUBLE_SEMICOLON: ';;' ;
HASH: '#' ;
AT: '@' ;
AT_WS: AT (Hidden | NL) ;
/* Disambiguating ? without spaces and with spaces (sometimes required) */
QUEST_WS: '?' Hidden ;
QUEST_NO_WS: '?' ;
LANGLE: '<' ;
RANGLE: '>' ;
LE: '<=' ;
GE: '>=' ;
EXCL_EQ: '!=' ;
EXCL_EQEQ: '!==' ;
AS_SAFE: 'as?' ;
EQEQ: '==' ;
EQEQEQ: '===' ;
SINGLE_QUOTE: '\'' ;
//KEYWORDS
RETURN_AT: 'return@' Identifier ;
CONTINUE_AT: 'continue@' Identifier ;
BREAK_AT: 'break@' Identifier ;
THIS_AT: 'this@' Identifier ;
SUPER_AT: 'super@' Identifier ;
PACKAGE: 'package' ;
IMPORT: 'import' ;
CLASS: 'class' ;
INTERFACE: 'interface' ;
FUN: 'fun' ;
OBJECT: 'object' ;
VAL: 'val' ;
VAR: 'var' ;
TYPE_ALIAS: 'typealias' ;
CONSTRUCTOR: 'constructor' ;
BY: 'by' ;
COMPANION: 'companion' ;
INIT: 'init' ;
THIS: 'this' ;
SUPER: 'super' ;
TYPEOF: 'typeof' ;
WHERE: 'where' ;
IF: 'if' ;
ELSE: 'else' ;
WHEN: 'when' ;
TRY: 'try' ;
CATCH: 'catch' ;
FINALLY: 'finally' ;
FOR: 'for' ;
DO: 'do' ;
WHILE: 'while' ;
THROW: 'throw' ;
RETURN: 'return' ;
CONTINUE: 'continue' ;
BREAK: 'break' ;
AS: 'as' ;
IS: 'is' ;
IN: 'in' ;
NOT_IS: '!is' (Hidden | NL) ;
NOT_IN: '!in' (Hidden | NL) ;
OUT: 'out' ;
GETTER: 'get' ;
SETTER: 'set' ;
DYNAMIC: 'dynamic' ;
AT_FILE: '@file' ;
AT_FIELD: '@field' ;
AT_PROPERTY: '@property' ;
AT_GET: '@get' ;
AT_SET: '@set' ;
AT_RECEIVER: '@receiver' ;
AT_PARAM: '@param' ;
AT_SETPARAM: '@setparam' ;
AT_DELEGATE: '@delegate' ;
//MODIFIERS
PUBLIC: 'public' ;
PRIVATE: 'private' ;
PROTECTED: 'protected' ;
INTERNAL: 'internal' ;
ENUM: 'enum' ;
SEALED: 'sealed' ;
ANNOTATION: 'annotation' ;
DATA: 'data' ;
INNER: 'inner' ;
TAILREC: 'tailrec' ;
OPERATOR: 'operator' ;
INLINE: 'inline' ;
INFIX: 'infix' ;
EXTERNAL: 'external' ;
SUSPEND: 'suspend' ;
OVERRIDE: 'override' ;
ABSTRACT: 'abstract' ;
FINAL: 'final' ;
OPEN: 'open' ;
CONST: 'const' ;
LATEINIT: 'lateinit' ;
VARARG: 'vararg' ;
NOINLINE: 'noinline' ;
CROSSINLINE: 'crossinline' ;
REIFIED: 'reified' ;
EXPECT: 'expect' ;
ACTUAL: 'actual' ;
QUOTE_OPEN: '"' -> pushMode(LineString) ;
TRIPLE_QUOTE_OPEN: '"""' -> pushMode(MultiLineString) ;
RealLiteral
: FloatLiteral
| DoubleLiteral
;
FloatLiteral
: DoubleLiteral [fF]
| DecDigits [fF]
;
fragment DecDigitOrSeparator: DecDigit | '_';
fragment DecDigits
: DecDigit DecDigitOrSeparator* DecDigit
| DecDigit
;
fragment DoubleExponent: [eE] [+-]? DecDigits;
DoubleLiteral
: DecDigits? '.' DecDigits DoubleExponent?
| DecDigits DoubleExponent
;
LongLiteral
: (IntegerLiteral | HexLiteral | BinLiteral) 'L'
;
IntegerLiteral
: DecDigitNoZero DecDigitOrSeparator* DecDigit
| DecDigit // including '0'
;
fragment UnicodeDigit
: UNICODE_CLASS_ND
;
fragment DecDigit
: '0'..'9'
;
fragment DecDigitNoZero
: '1'..'9'
;
fragment HexDigitOrSeparator
: HexDigit | '_'
;
HexLiteral
: '0' [xX] HexDigit HexDigitOrSeparator* HexDigit
| '0' [xX] HexDigit
;
fragment HexDigit
: [0-9a-fA-F]
;
fragment BinDigitOrSeparator
: BinDigit | '_'
;
BinLiteral
: '0' [bB] BinDigit BinDigitOrSeparator* BinDigit
| '0' [bB] BinDigit
;
fragment BinDigit
: [01]
;
BooleanLiteral
: 'true'
| 'false'
;
NullLiteral
: 'null'
;
Identifier
: (Letter | '_') (Letter | '_' | UnicodeDigit)*
| '`' ~('\r' | '\n' | '`' | '[' | ']' | '<' | '>')+ '`'
;
fragment IdentifierOrSoftKey
: Identifier //soft keywords:
| ABSTRACT
| ANNOTATION
| BY
| CATCH
| COMPANION
| CONSTRUCTOR
| CROSSINLINE
| DATA
| DYNAMIC
| ENUM
| EXTERNAL
| FINAL
| FINALLY
| GETTER
| IMPORT
| INFIX
| INIT
| INLINE
| INNER
| INTERNAL
| LATEINIT
| NOINLINE
| OPEN
| OPERATOR
| OUT
| OVERRIDE
| PRIVATE
| PROTECTED
| PUBLIC
| REIFIED
| SEALED
| TAILREC
| SETTER
| VARARG
| WHERE
| EXPECT
| ACTUAL
//strong keywords
| CONST
| SUSPEND
;
IdentifierAt
: IdentifierOrSoftKey '@'
;
FieldIdentifier // why is this even needed?
: '$' IdentifierOrSoftKey
;
CharacterLiteral
: '\'' (EscapeSeq | ~[\n\r'\\]) '\''
;
fragment EscapeSeq
: UniCharacterLiteral
| EscapedIdentifier
;
fragment UniCharacterLiteral
: '\\' 'u' HexDigit HexDigit HexDigit HexDigit
;
fragment EscapedIdentifier
: '\\' ('t' | 'b' | 'r' | 'n' | '\'' | '"' | '\\' | '$')
;
fragment Letter
: UNICODE_CLASS_LL
| UNICODE_CLASS_LM
| UNICODE_CLASS_LO
| UNICODE_CLASS_LT
| UNICODE_CLASS_LU
| UNICODE_CLASS_NL
;
ErrorCharacter: .;
mode Inside ;
Inside_RPAREN: RPAREN -> popMode, type(RPAREN) ;
Inside_RSQUARE: RSQUARE -> popMode, type(RSQUARE);
Inside_LPAREN: LPAREN -> pushMode(Inside), type(LPAREN) ;
Inside_LSQUARE: LSQUARE -> pushMode(Inside), type(LSQUARE) ;
Inside_LCURL: LCURL -> pushMode(DEFAULT_MODE), type(LCURL) ;
Inside_RCURL: RCURL -> popMode, type(RCURL) ;
Inside_DOT: DOT -> type(DOT) ;
Inside_COMMA: COMMA -> type(COMMA) ;
Inside_MULT: MULT -> type(MULT) ;
Inside_MOD: MOD -> type(MOD) ;
Inside_DIV: DIV -> type(DIV) ;
Inside_ADD: ADD -> type(ADD) ;
Inside_SUB: SUB -> type(SUB) ;
Inside_INCR: INCR -> type(INCR) ;
Inside_DECR: DECR -> type(DECR) ;
Inside_CONJ: CONJ -> type(CONJ) ;
Inside_DISJ: DISJ -> type(DISJ) ;
Inside_EXCL_WS: '!' (Hidden|NL) -> type(EXCL_WS) ;
Inside_EXCL_NO_WS: EXCL_NO_WS -> type(EXCL_NO_WS) ;
Inside_COLON: COLON -> type(COLON) ;
Inside_SEMICOLON: SEMICOLON -> type(SEMICOLON) ;
Inside_ASSIGNMENT: ASSIGNMENT -> type(ASSIGNMENT) ;
Inside_ADD_ASSIGNMENT: ADD_ASSIGNMENT -> type(ADD_ASSIGNMENT) ;
Inside_SUB_ASSIGNMENT: SUB_ASSIGNMENT -> type(SUB_ASSIGNMENT) ;
Inside_MULT_ASSIGNMENT: MULT_ASSIGNMENT -> type(MULT_ASSIGNMENT) ;
Inside_DIV_ASSIGNMENT: DIV_ASSIGNMENT -> type(DIV_ASSIGNMENT) ;
Inside_MOD_ASSIGNMENT: MOD_ASSIGNMENT -> type(MOD_ASSIGNMENT) ;
Inside_ARROW: ARROW -> type(ARROW) ;
Inside_DOUBLE_ARROW: DOUBLE_ARROW -> type(DOUBLE_ARROW) ;
Inside_RANGE: RANGE -> type(RANGE) ;
Inside_RESERVED: RESERVED -> type(RESERVED) ;
Inside_COLONCOLON: COLONCOLON -> type(COLONCOLON) ;
Inside_DOUBLE_SEMICOLON: DOUBLE_SEMICOLON -> type(DOUBLE_SEMICOLON) ;
Inside_HASH: HASH -> type(HASH) ;
Inside_AT: AT -> type(AT) ;
Inside_QUEST_WS: '?' (Hidden | NL) -> type(QUEST_WS) ;
Inside_QUEST_NO_WS: QUEST_NO_WS -> type(QUEST_NO_WS) ;
Inside_LANGLE: LANGLE -> type(LANGLE) ;
Inside_RANGLE: RANGLE -> type(RANGLE) ;
Inside_LE: LE -> type(LE) ;
Inside_GE: GE -> type(GE) ;
Inside_EXCL_EQ: EXCL_EQ -> type(EXCL_EQ) ;
Inside_EXCL_EQEQ: EXCL_EQEQ -> type(EXCL_EQEQ) ;
Inside_IS: IS -> type(IS) ;
Inside_NOT_IS: NOT_IS -> type(NOT_IS) ;
Inside_NOT_IN: NOT_IN -> type(NOT_IN) ;
Inside_AS: AS -> type(AS) ;
Inside_AS_SAFE: AS_SAFE -> type(AS_SAFE) ;
Inside_EQEQ: EQEQ -> type(EQEQ) ;
Inside_EQEQEQ: EQEQEQ -> type(EQEQEQ) ;
Inside_SINGLE_QUOTE: SINGLE_QUOTE -> type(SINGLE_QUOTE) ;
Inside_QUOTE_OPEN: QUOTE_OPEN -> pushMode(LineString), type(QUOTE_OPEN) ;
Inside_TRIPLE_QUOTE_OPEN: TRIPLE_QUOTE_OPEN -> pushMode(MultiLineString), type(TRIPLE_QUOTE_OPEN) ;
Inside_VAL: VAL -> type(VAL) ;
Inside_VAR: VAR -> type(VAR) ;
Inside_FUN: FUN -> type(FUN) ;
Inside_OBJECT: OBJECT -> type(OBJECT) ;
Inside_SUPER: SUPER -> type(SUPER) ;
Inside_IN: IN -> type(IN) ;
Inside_OUT: OUT -> type(OUT) ;
Inside_AT_FIELD: AT_FIELD -> type(AT_FIELD) ;
Inside_AT_FILE: AT_FILE -> type(AT_FILE) ;
Inside_AT_PROPERTY: AT_PROPERTY -> type(AT_PROPERTY) ;
Inside_AT_GET: AT_GET -> type(AT_GET) ;
Inside_AT_SET: AT_SET -> type(AT_SET) ;
Inside_AT_RECEIVER: AT_RECEIVER -> type(AT_RECEIVER) ;
Inside_AT_PARAM: AT_PARAM -> type(AT_PARAM) ;
Inside_AT_SETPARAM: AT_SETPARAM -> type(AT_SETPARAM) ;
Inside_AT_DELEGATE: AT_DELEGATE -> type(AT_DELEGATE) ;
Inside_THROW: THROW -> type(THROW) ;
Inside_RETURN: RETURN -> type(RETURN) ;
Inside_CONTINUE: CONTINUE -> type(CONTINUE) ;
Inside_BREAK: BREAK -> type(BREAK) ;
Inside_RETURN_AT: RETURN_AT -> type(RETURN_AT) ;
Inside_CONTINUE_AT: CONTINUE_AT -> type(CONTINUE_AT) ;
Inside_BREAK_AT: BREAK_AT -> type(BREAK_AT) ;
Inside_IF: IF -> type(IF) ;
Inside_ELSE: ELSE -> type(ELSE) ;
Inside_WHEN: WHEN -> type(WHEN) ;
Inside_TRY: TRY -> type(TRY) ;
Inside_CATCH: CATCH -> type(CATCH) ;
Inside_FINALLY: FINALLY -> type(FINALLY) ;
Inside_FOR: FOR -> type(FOR) ;
Inside_DO: DO -> type(DO) ;
Inside_WHILE: WHILE -> type(WHILE) ;
Inside_PUBLIC: PUBLIC -> type(PUBLIC) ;
Inside_PRIVATE: PRIVATE -> type(PRIVATE) ;
Inside_PROTECTED: PROTECTED -> type(PROTECTED) ;
Inside_INTERNAL: INTERNAL -> type(INTERNAL) ;
Inside_ENUM: ENUM -> type(ENUM) ;
Inside_SEALED: SEALED -> type(SEALED) ;
Inside_ANNOTATION: ANNOTATION -> type(ANNOTATION) ;
Inside_DATA: DATA -> type(DATA) ;
Inside_INNER: INNER -> type(INNER) ;
Inside_TAILREC: TAILREC -> type(TAILREC) ;
Inside_OPERATOR: OPERATOR -> type(OPERATOR) ;
Inside_INLINE: INLINE -> type(INLINE) ;
Inside_INFIX: INFIX -> type(INFIX) ;
Inside_EXTERNAL: EXTERNAL -> type(EXTERNAL) ;
Inside_SUSPEND: SUSPEND -> type(SUSPEND) ;
Inside_OVERRIDE: OVERRIDE -> type(OVERRIDE) ;
Inside_ABSTRACT: ABSTRACT -> type(ABSTRACT) ;
Inside_FINAL: FINAL -> type(FINAL) ;
Inside_OPEN: OPEN -> type(OPEN) ;
Inside_CONST: CONST -> type(CONST) ;
Inside_LATEINIT: LATEINIT -> type(LATEINIT) ;
Inside_VARARG: VARARG -> type(VARARG) ;
Inside_NOINLINE: NOINLINE -> type(NOINLINE) ;
Inside_CROSSINLINE: CROSSINLINE -> type(CROSSINLINE) ;
Inside_REIFIED: REIFIED -> type(REIFIED) ;
Inside_EXPECT: EXPECT -> type(EXPECT) ;
Inside_ACTUAL: ACTUAL -> type(ACTUAL) ;
Inside_BooleanLiteral: BooleanLiteral -> type(BooleanLiteral) ;
Inside_IntegerLiteral: IntegerLiteral -> type(IntegerLiteral) ;
Inside_HexLiteral: HexLiteral -> type(HexLiteral) ;
Inside_BinLiteral: BinLiteral -> type(BinLiteral) ;
Inside_CharacterLiteral: CharacterLiteral -> type(CharacterLiteral) ;
Inside_RealLiteral: RealLiteral -> type(RealLiteral) ;
Inside_NullLiteral: NullLiteral -> type(NullLiteral) ;
Inside_LongLiteral: LongLiteral -> type(LongLiteral) ;
Inside_Identifier: Identifier -> type(Identifier) ;
Inside_IdentifierAt: IdentifierAt -> type(IdentifierAt) ;
Inside_Comment: (LineComment | DelimitedComment) -> channel(HIDDEN) ;
Inside_WS: WS -> channel(HIDDEN) ;
Inside_NL: NL -> channel(HIDDEN) ;
mode LineString ;
QUOTE_CLOSE
: '"' -> popMode
;
LineStrRef
: FieldIdentifier
;
LineStrText
: ~('\\' | '"' | '$')+ | '$'
;
LineStrEscapedChar
: EscapedIdentifier
| UniCharacterLiteral
;
LineStrExprStart
: '${' -> pushMode(DEFAULT_MODE)
;
mode MultiLineString ;
TRIPLE_QUOTE_CLOSE
: MultiLineStringQuote? '"""' -> popMode
;
MultiLineStringQuote
: '"'+
;
MultiLineStrRef
: FieldIdentifier
;
MultiLineStrText
: ~('"' | '$')+ | '$' // multiline does not support escaping, so only '$' should be disallowed
;
MultiLineStrExprStart
: '${' -> pushMode(DEFAULT_MODE)
;
MultiLineNL: NL -> type(NL) ;
@@ -0,0 +1,898 @@
/**
* Kotlin Grammar for ANTLR v4
*
* Based on:
* http://jetbrains.github.io/kotlin-spec/#_grammars_and_parsing
* and
* http://kotlinlang.org/docs/reference/grammar.html
*
* Tested on
* https://github.com/JetBrains/kotlin/tree/master/compiler/testData/psi
*/
parser grammar KotlinParser;
@header {
package com.itsaky.androidide.lexers.kotlin;
}
options { tokenVocab = KotlinLexer; }
kotlinFile
: shebangLine? NL* fileAnnotation* packageHeader importList topLevelObject* EOF
;
script
: shebangLine? NL* fileAnnotation* packageHeader importList (statement semi)* EOF
;
fileAnnotation
: '@file' NL* ':' NL* ('[' unescapedAnnotation+ ']' | unescapedAnnotation) NL*
;
packageHeader
: ('package' identifier semi?)?
;
importList
: importHeader*
;
importHeader
: 'import' identifier ('.' '*' | importAlias)? semi?
;
importAlias
: 'as' simpleIdentifier
;
topLevelObject
: declaration semis?
;
classDeclaration
: modifiers? ('class' | 'interface') NL* simpleIdentifier
(NL* typeParameters)? (NL* primaryConstructor)?
(NL* ':' NL* delegationSpecifiers)?
(NL* typeConstraints)?
(NL* classBody | NL* enumClassBody)?
;
primaryConstructor
: (modifiers? 'constructor' NL*)? classParameters
;
classParameters
: '(' NL* (classParameter (NL* ',' NL* classParameter)*)? NL* ','? ')'
;
classParameter
: modifiers? ('val' | 'var')? NL* simpleIdentifier ':' NL* type_ (NL* '=' NL* expression)?
;
delegationSpecifiers
: annotatedDelegationSpecifier (NL* ',' NL* annotatedDelegationSpecifier)*
;
annotatedDelegationSpecifier
: annotation* NL* delegationSpecifier
;
delegationSpecifier
: constructorInvocation
| explicitDelegation
| userType
| functionType
;
constructorInvocation
: userType valueArguments
;
explicitDelegation
: (userType | functionType) NL* 'by' NL* expression
;
classBody
: '{' NL* classMemberDeclarations NL* '}'
;
classMemberDeclarations
: (classMemberDeclaration semis?)*
;
classMemberDeclaration
: declaration
| companionObject
| anonymousInitializer
| secondaryConstructor
;
anonymousInitializer
: 'init' NL* block
;
secondaryConstructor
: modifiers? 'constructor' NL* functionValueParameters (NL* ':' NL* constructorDelegationCall)? NL* block?
;
constructorDelegationCall
: 'this' NL* valueArguments
| 'super' NL* valueArguments
;
enumClassBody
: '{' NL* enumEntries? (NL* ';' NL* classMemberDeclarations)? NL* '}'
;
enumEntries
: enumEntry (NL* ',' NL* enumEntry)* NL* ','?
;
enumEntry
: (modifiers NL*)? simpleIdentifier (NL* valueArguments)? (NL* classBody)?
;
functionDeclaration
: modifiers?
'fun' (NL* typeParameters)? (NL* receiverType NL* '.')? NL* simpleIdentifier
NL* functionValueParameters
(NL* ':' NL* type_)?
(NL* typeConstraints)?
(NL* functionBody)?
;
functionValueParameters
: '(' NL* (functionValueParameter (NL* ',' NL* functionValueParameter)*)? NL* ','? ')'
;
functionValueParameter
: modifiers? parameter (NL* '=' NL* expression)?
;
parameter
: simpleIdentifier NL* ':' NL* type_
;
setterParameter
: simpleIdentifier NL* (':' NL* type_)?
;
functionBody
: block
| '=' NL* expression
;
objectDeclaration
: modifiers? 'object'
NL* simpleIdentifier
(NL* ':' NL* delegationSpecifiers)?
(NL* classBody)?
;
companionObject
: modifiers? 'companion' NL* 'object'
(NL* simpleIdentifier)?
(NL* ':' NL* delegationSpecifiers)?
(NL* classBody)?
;
propertyDeclaration
: modifiers? ('val' | 'var')
(NL* typeParameters)?
(NL* receiverType NL* '.')?
(NL* (multiVariableDeclaration | variableDeclaration))
(NL* typeConstraints)?
(NL* ('=' NL* expression | propertyDelegate))?
(NL+ ';')? NL* (getter? (NL* semi? setter)? | setter? (NL* semi? getter)?)
/*
XXX: actually, it's not that simple. You can put semi only on the same line as getter, but any other semicolons
between property and getter are forbidden
Is this a bug in kotlin parser? Who knows.
*/
;
multiVariableDeclaration
: '(' NL* variableDeclaration (NL* ',' NL* variableDeclaration)* NL* ')'
;
variableDeclaration
: annotation* NL* simpleIdentifier (NL* ':' NL* type_)?
;
propertyDelegate
: 'by' NL* expression
;
getter
: modifiers? 'get'
| modifiers? 'get' NL* '(' NL* ')' (NL* ':' NL* type_)? NL* functionBody
;
setter
: modifiers? 'set'
| modifiers? 'set' NL* '(' (annotation | parameterModifier)* setterParameter ')' (NL* ':' NL* type_)? NL* functionBody
;
typeAlias
: modifiers? 'typealias' NL* simpleIdentifier (NL* typeParameters)? NL* '=' NL* type_
;
typeParameters
: '<' NL* typeParameter (NL* ',' NL* typeParameter)* NL* ','? '>'
;
typeParameter
: typeParameterModifiers? NL* simpleIdentifier (NL* ':' NL* type_)?
;
typeParameterModifiers
: typeParameterModifier+
;
typeParameterModifier
: reificationModifier NL*
| varianceModifier NL*
| annotation
;
type_
: typeModifiers?
( parenthesizedType
| nullableType
| typeReference
| functionType)
;
typeModifiers
: typeModifier+
;
typeModifier
: annotation | 'suspend' NL*
;
parenthesizedType
: '(' NL* type_ NL* ')'
;
nullableType
: (typeReference | parenthesizedType) NL* quest+
;
typeReference
: userType
| 'dynamic' // do we need a separate dynamic support here?
;
functionType
: (receiverType NL* '.' NL*)? functionTypeParameters NL* '->' NL* type_
;
receiverType
: typeModifiers?
( parenthesizedType
| nullableType
| typeReference)
;
userType
: simpleUserType (NL* '.' NL* simpleUserType)*
;
parenthesizedUserType
: '(' NL* userType NL* ')'
| '(' NL* parenthesizedUserType NL* ')'
;
simpleUserType
: simpleIdentifier (NL* typeArguments)?
;
functionTypeParameters
: '(' NL* (parameter | type_)? (NL* ',' NL* (parameter | type_))* NL* ')'
;
typeConstraints
: 'where' NL* typeConstraint (NL* ',' NL* typeConstraint)*
;
typeConstraint
: annotation* simpleIdentifier NL* ':' NL* type_
;
block
: '{' NL* statements NL* '}'
;
statements
: (statement ((';' | NL)+ statement)* semis?)?
;
statement
: (label | annotation)*
( declaration
| assignment
| loopStatement
| expression)
;
declaration
: classDeclaration
| objectDeclaration
| functionDeclaration
| propertyDeclaration
| typeAlias
;
assignment
: directlyAssignableExpression '=' NL* expression
| assignableExpression assignmentAndOperator NL* expression
;
expression
: disjunction
;
disjunction
: conjunction (NL* '||' NL* conjunction)*
;
conjunction
: equality (NL* '&&' NL* equality)*
;
equality
: comparison (/* NO NL! */ equalityOperator NL* comparison)*
;
comparison
: infixOperation (/* NO NL! */ comparisonOperator NL* infixOperation)?
;
infixOperation
: elvisExpression (/* NO NL! */ inOperator NL* elvisExpression | isOperator NL* type_)*
;
elvisExpression
: infixFunctionCall (NL* elvis NL* infixFunctionCall)*
;
infixFunctionCall
: rangeExpression (/* NO NL! */ simpleIdentifier NL* rangeExpression)*
;
rangeExpression
: additiveExpression (/* NO NL! */ '..' NL* additiveExpression)*
;
additiveExpression
: multiplicativeExpression (/* NO NL! */ additiveOperator NL* multiplicativeExpression)*
;
multiplicativeExpression
: asExpression (/* NO NL! */ multiplicativeOperator NL* asExpression)*
;
asExpression
: prefixUnaryExpression (NL* asOperator NL* type_)?
;
prefixUnaryExpression
: unaryPrefix* postfixUnaryExpression
;
unaryPrefix
: annotation
| label
| prefixUnaryOperator NL*
;
postfixUnaryExpression
: primaryExpression
| primaryExpression postfixUnarySuffix+
;
postfixUnarySuffix
: postfixUnaryOperator
| typeArguments
| callSuffix
| indexingSuffix
| navigationSuffix
;
directlyAssignableExpression
: postfixUnaryExpression assignableSuffix
| simpleIdentifier
;
assignableExpression
: prefixUnaryExpression
;
assignableSuffix
: typeArguments
| indexingSuffix
| navigationSuffix
;
indexingSuffix
: '[' NL* expression (NL* ',' NL* expression)* NL* ']'
;
navigationSuffix
: NL* memberAccessOperator NL* (simpleIdentifier | parenthesizedExpression | 'class')
;
callSuffix
: typeArguments? valueArguments? annotatedLambda
| typeArguments? valueArguments
;
annotatedLambda
: annotation* label? NL* lambdaLiteral
;
valueArguments
: '(' NL* ')'
| '(' NL* valueArgument (NL* ',' NL* valueArgument)* NL* ','? ')'
;
typeArguments
: '<' NL* typeProjection (NL* ',' NL* typeProjection)* NL* ','? '>'
;
typeProjection
: typeProjectionModifiers? type_ | '*'
;
typeProjectionModifiers
: typeProjectionModifier+
;
typeProjectionModifier
: varianceModifier NL*
| annotation
;
valueArgument
: annotation? NL* (simpleIdentifier NL* '=' NL*)? '*'? NL* expression
;
primaryExpression
: parenthesizedExpression
| literalConstant
| stringLiteral
| simpleIdentifier
| callableReference
| functionLiteral
| objectLiteral
| collectionLiteral
| thisExpression
| superExpression
| ifExpression
| whenExpression
| tryExpression
| jumpExpression
;
parenthesizedExpression
: '(' NL* expression NL* ')'
;
collectionLiteral
: '[' NL* expression (NL* ',' NL* expression)* NL* ','? ']'
| '[' NL* ']'
;
literalConstant
: BooleanLiteral
| IntegerLiteral
| HexLiteral
| BinLiteral
| CharacterLiteral
| RealLiteral
| NullLiteral
| LongLiteral
;
stringLiteral
: lineStringLiteral
| multiLineStringLiteral
;
lineStringLiteral
: QUOTE_OPEN (lineStringContent | lineStringExpression)* QUOTE_CLOSE
;
multiLineStringLiteral // why is lineStringLiteral here? there is no escaping in multiline strings
: TRIPLE_QUOTE_OPEN (multiLineStringContent | multiLineStringExpression | MultiLineStringQuote)* TRIPLE_QUOTE_CLOSE
;
lineStringContent
: LineStrText
| LineStrEscapedChar
| LineStrRef
;
lineStringExpression
: LineStrExprStart expression '}'
;
multiLineStringContent
: MultiLineStrText
| MultiLineStringQuote
| MultiLineStrRef
;
multiLineStringExpression
: MultiLineStrExprStart NL* expression NL* '}'
;
lambdaLiteral // anonymous functions?
: LCURL NL* statements NL* RCURL
| LCURL NL* lambdaParameters? NL* ARROW NL* statements NL* '}'
;
lambdaParameters
: lambdaParameter (NL* COMMA NL* lambdaParameter)* COMMA?
;
lambdaParameter
: variableDeclaration
| multiVariableDeclaration (NL* COLON NL* type_)?
;
anonymousFunction
: 'fun'
(NL* type_ NL* '.')?
NL* functionValueParameters
(NL* ':' NL* type_)?
(NL* typeConstraints)?
(NL* functionBody)?
;
functionLiteral
: lambdaLiteral
| anonymousFunction
;
objectLiteral
: 'object' NL* ':' NL* delegationSpecifiers (NL* classBody)?
| 'object' NL* classBody
;
thisExpression
: 'this'
| THIS_AT
;
superExpression
: 'super' ('<' NL* type_ NL* '>')? ('@' simpleIdentifier)?
| SUPER_AT
;
controlStructureBody
: block
| statement
;
ifExpression
: 'if' NL* '(' NL* expression NL* ')' NL* controlStructureBody (';'? NL* 'else' NL* controlStructureBody)?
| 'if' NL* '(' NL* expression NL* ')' NL* (';' NL*)? 'else' NL* controlStructureBody
;
whenExpression
: 'when' NL* ('(' expression ')')? NL* '{' NL* (whenEntry NL*)* NL* '}'
;
whenEntry
: whenCondition (NL* ',' NL* whenCondition)* NL* '->' NL* controlStructureBody semi?
| 'else' NL* '->' NL* controlStructureBody semi?
;
whenCondition
: expression
| rangeTest
| typeTest
;
rangeTest
: inOperator NL* expression
;
typeTest
: isOperator NL* type_
;
tryExpression
: 'try' NL* block ((NL* catchBlock)+ (NL* finallyBlock)? | NL* finallyBlock)
;
catchBlock
: 'catch' NL* '(' annotation* simpleIdentifier ':' userType ')' NL* block
;
finallyBlock
: 'finally' NL* block
;
loopStatement
: forStatement
| whileStatement
| doWhileStatement
;
forStatement
: 'for' NL* '(' annotation* (variableDeclaration | multiVariableDeclaration) 'in' expression ')' NL* controlStructureBody?
;
whileStatement
: 'while' NL* '(' expression ')' NL* controlStructureBody
| 'while' NL* '(' expression ')' NL* ';'
;
doWhileStatement
: 'do' NL* controlStructureBody? NL* 'while' NL* '(' expression ')'
;
jumpExpression
: 'throw' NL* expression
| ('return' | RETURN_AT) expression?
| 'continue' | CONTINUE_AT
| 'break' | BREAK_AT
;
callableReference // ?:: here is not an actual operator, it's just a lexer hack to avoid (?: + :) vs (? + ::) ambiguity
: (receiverType? NL* '::' NL* (simpleIdentifier | 'class'))
;
assignmentAndOperator
: '+='
| '-='
| '*='
| '/='
| '%='
;
equalityOperator
: '!='
| '!=='
| '=='
| '==='
;
comparisonOperator
: '<'
| '>'
| '<='
| '>='
;
inOperator
: 'in' | NOT_IN
;
isOperator
: 'is' | NOT_IS
;
additiveOperator
: '+' | '-'
;
multiplicativeOperator
: '*'
| '/'
| '%'
;
asOperator
: 'as'
| 'as?'
;
prefixUnaryOperator
: '++'
| '--'
| '-'
| '+'
| excl
;
postfixUnaryOperator
: '++'
| '--'
| EXCL_NO_WS excl
;
memberAccessOperator
: '.' | safeNav | '::'
;
modifiers
: (annotation | modifier)+
;
modifier
: (classModifier
| memberModifier
| visibilityModifier
| functionModifier
| propertyModifier
| inheritanceModifier
| parameterModifier
| platformModifier) NL*
;
classModifier
: 'enum'
| 'sealed'
| 'annotation'
| 'data'
| 'inner'
;
memberModifier
: 'override'
| 'lateinit'
;
visibilityModifier
: 'public'
| 'private'
| 'internal'
| 'protected'
;
varianceModifier
: 'in'
| 'out'
;
functionModifier
: 'tailrec'
| 'operator'
| 'infix'
| 'inline'
| 'external'
| 'suspend'
;
propertyModifier
: 'const'
;
inheritanceModifier
: 'abstract'
| 'final'
| 'open'
;
parameterModifier
: 'vararg'
| 'noinline'
| 'crossinline'
;
reificationModifier
: 'reified'
;
platformModifier
: 'expect'
| 'actual'
;
label
: IdentifierAt NL*
;
annotation
: (singleAnnotation | multiAnnotation) NL*
;
singleAnnotation
: annotationUseSiteTarget NL* ':' NL* unescapedAnnotation
| '@' unescapedAnnotation
;
multiAnnotation
: annotationUseSiteTarget NL* ':' NL* '[' unescapedAnnotation+ ']'
| '@' '[' unescapedAnnotation+ ']'
;
annotationUseSiteTarget
: '@field'
| '@property'
| '@get'
| '@set'
| '@receiver'
| '@param'
| '@setparam'
| '@delegate'
;
unescapedAnnotation
: constructorInvocation
| userType
;
simpleIdentifier
: Identifier //soft keywords:
| 'abstract'
| 'annotation'
| 'by'
| 'catch'
| 'companion'
| 'constructor'
| 'crossinline'
| 'data'
| 'dynamic'
| 'enum'
| 'external'
| 'final'
| 'finally'
| 'get'
| 'import'
| 'infix'
| 'init'
| 'inline'
| 'inner'
| 'internal'
| 'lateinit'
| 'noinline'
| 'open'
| 'operator'
| 'out'
| 'override'
| 'private'
| 'protected'
| 'public'
| 'reified'
| 'sealed'
| 'tailrec'
| 'set'
| 'vararg'
| 'where'
| 'expect'
| 'actual'
| 'const'
| 'suspend'
;
identifier
: simpleIdentifier (NL* '.' simpleIdentifier)*
;
shebangLine
: ShebangLine NL+
;
quest
: QUEST_NO_WS
| QUEST_WS
;
elvis
: QUEST_NO_WS ':'
;
safeNav
: QUEST_NO_WS '.'
;
excl
: EXCL_NO_WS
| EXCL_WS
;
semi
: (';' | NL) NL* // actually, it's WS or comment between ';', here it's handled in lexer (see ;; token)
| EOF
;
semis // writing this as "semi+" sends antlr into infinite loop or smth
: (';' | NL)+
| EOF
;
@@ -29,6 +29,10 @@
/** XML lexer derived from ANTLR v4 ref guide book example */
lexer grammar XMLLexer;
@header {
package com.itsaky.androidide.lexers.xml;
}
// Default "mode": Everything OUTSIDE of a tag
COLON : ':' ;
NOT : '!' ;
@@ -27,6 +27,10 @@
/** XML parser derived from ANTLR v4 ref guide book example */
parser grammar XMLParser;
@header {
package com.itsaky.androidide.lexers.xml;
}
options { tokenVocab=XMLLexer; }
document : prolog? misc* element misc*;
File diff suppressed because one or more lines are too long
@@ -1,763 +0,0 @@
// Generated from /home/itsaky/Projects/Android/AndroidIDE/lexers/src/main/java/com/itsaky/androidide/lexers/java/JavaLexer.g4 by ANTLR 4.10.1
package com.itsaky.androidide.lexers.java;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class JavaLexer extends Lexer {
static { RuntimeMetaData.checkVersion("4.10.1", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
ABSTRACT=1, ASSERT=2, BOOLEAN=3, BREAK=4, BYTE=5, CASE=6, CATCH=7, CHAR=8,
CLASS=9, CONST=10, CONTINUE=11, DEFAULT=12, DO=13, DOUBLE=14, ELSE=15,
ENUM=16, EXTENDS=17, FINAL=18, FINALLY=19, FLOAT=20, FOR=21, IF=22, GOTO=23,
IMPLEMENTS=24, IMPORT=25, INSTANCEOF=26, INT=27, INTERFACE=28, LONG=29,
NATIVE=30, NEW=31, PACKAGE=32, PRIVATE=33, PROTECTED=34, PUBLIC=35, RETURN=36,
SHORT=37, STATIC=38, STRICTFP=39, SUPER=40, SWITCH=41, SYNCHRONIZED=42,
THIS=43, THROW=44, THROWS=45, TRANSIENT=46, TRY=47, VAR=48, VOID=49, VOLATILE=50,
WHILE=51, DECIMAL_LITERAL=52, HEX_LITERAL=53, OCT_LITERAL=54, BINARY_LITERAL=55,
FLOAT_LITERAL=56, HEX_FLOAT_LITERAL=57, BOOL_LITERAL=58, CHAR_LITERAL=59,
STRING_LITERAL=60, NULL_LITERAL=61, LPAREN=62, RPAREN=63, LBRACE=64, RBRACE=65,
LBRACK=66, RBRACK=67, SEMI=68, COMMA=69, DOT=70, ASSIGN=71, GT=72, LT=73,
BANG=74, TILDE=75, QUESTION=76, COLON=77, EQUAL=78, LE=79, GE=80, NOTEQUAL=81,
AND=82, OR=83, INC=84, DEC=85, ADD=86, SUB=87, MUL=88, DIV=89, BITAND=90,
BITOR=91, CARET=92, MOD=93, ADD_ASSIGN=94, SUB_ASSIGN=95, MUL_ASSIGN=96,
DIV_ASSIGN=97, AND_ASSIGN=98, OR_ASSIGN=99, XOR_ASSIGN=100, MOD_ASSIGN=101,
LSHIFT_ASSIGN=102, RSHIFT_ASSIGN=103, URSHIFT_ASSIGN=104, ARROW=105, COLONCOLON=106,
AT=107, ELLIPSIS=108, WS=109, BLOCK_COMMENT=110, LINE_COMMENT=111, IDENTIFIER=112;
public static String[] channelNames = {
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
};
public static String[] modeNames = {
"DEFAULT_MODE"
};
private static String[] makeRuleNames() {
return new String[] {
"ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", "CHAR",
"CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", "ENUM",
"EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", "IMPLEMENTS",
"IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", "NEW",
"PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", "STATIC",
"STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", "THROWS",
"TRANSIENT", "TRY", "VAR", "VOID", "VOLATILE", "WHILE", "DECIMAL_LITERAL",
"HEX_LITERAL", "OCT_LITERAL", "BINARY_LITERAL", "FLOAT_LITERAL", "HEX_FLOAT_LITERAL",
"BOOL_LITERAL", "CHAR_LITERAL", "STRING_LITERAL", "NULL_LITERAL", "LPAREN",
"RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", "SEMI", "COMMA", "DOT",
"ASSIGN", "GT", "LT", "BANG", "TILDE", "QUESTION", "COLON", "EQUAL",
"LE", "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD", "SUB", "MUL",
"DIV", "BITAND", "BITOR", "CARET", "MOD", "ADD_ASSIGN", "SUB_ASSIGN",
"MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN",
"MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", "URSHIFT_ASSIGN", "ARROW",
"COLONCOLON", "AT", "ELLIPSIS", "WS", "BLOCK_COMMENT", "LINE_COMMENT",
"IDENTIFIER", "ExponentPart", "EscapeSequence", "HexDigits", "HexDigit",
"Digits", "LetterOrDigit", "Letter"
};
}
public static final String[] ruleNames = makeRuleNames();
private static String[] makeLiteralNames() {
return new String[] {
null, "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", "'case'",
"'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'",
"'do'", "'double'", "'else'", "'enum'", "'extends'", "'final'", "'finally'",
"'float'", "'for'", "'if'", "'goto'", "'implements'", "'import'", "'instanceof'",
"'int'", "'interface'", "'long'", "'native'", "'new'", "'package'", "'private'",
"'protected'", "'public'", "'return'", "'short'", "'static'", "'strictfp'",
"'super'", "'switch'", "'synchronized'", "'this'", "'throw'", "'throws'",
"'transient'", "'try'", "'var'", "'void'", "'volatile'", "'while'", null,
null, null, null, null, null, null, null, null, "'null'", "'('", "')'",
"'{'", "'}'", "'['", "']'", "';'", "','", "'.'", "'='", "'>'", "'<'",
"'!'", "'~'", "'?'", "':'", "'=='", "'<='", "'>='", "'!='", "'&&'", "'||'",
"'++'", "'--'", "'+'", "'-'", "'*'", "'/'", "'&'", "'|'", "'^'", "'%'",
"'+='", "'-='", "'*='", "'/='", "'&='", "'|='", "'^='", "'%='", "'<<='",
"'>>='", "'>>>='", "'->'", "'::'", "'@'", "'...'"
};
}
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static String[] makeSymbolicNames() {
return new String[] {
null, "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH",
"CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE",
"ENUM", "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO",
"IMPLEMENTS", "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE",
"NEW", "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT",
"STATIC", "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW",
"THROWS", "TRANSIENT", "TRY", "VAR", "VOID", "VOLATILE", "WHILE", "DECIMAL_LITERAL",
"HEX_LITERAL", "OCT_LITERAL", "BINARY_LITERAL", "FLOAT_LITERAL", "HEX_FLOAT_LITERAL",
"BOOL_LITERAL", "CHAR_LITERAL", "STRING_LITERAL", "NULL_LITERAL", "LPAREN",
"RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", "SEMI", "COMMA", "DOT",
"ASSIGN", "GT", "LT", "BANG", "TILDE", "QUESTION", "COLON", "EQUAL",
"LE", "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD", "SUB", "MUL",
"DIV", "BITAND", "BITOR", "CARET", "MOD", "ADD_ASSIGN", "SUB_ASSIGN",
"MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN",
"MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", "URSHIFT_ASSIGN", "ARROW",
"COLONCOLON", "AT", "ELLIPSIS", "WS", "BLOCK_COMMENT", "LINE_COMMENT",
"IDENTIFIER"
};
}
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated
public static final String[] tokenNames;
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
public JavaLexer(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
@Override
public String getGrammarFileName() { return "JavaLexer.g4"; }
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public String getSerializedATN() { return _serializedATN; }
@Override
public String[] getChannelNames() { return channelNames; }
@Override
public String[] getModeNames() { return modeNames; }
@Override
public ATN getATN() { return _ATN; }
public static final String _serializedATN =
"\u0004\u0000p\u03b7\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002\u0001"+
"\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004"+
"\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007"+
"\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b"+
"\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002"+
"\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0002"+
"\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014\u0002"+
"\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017\u0002"+
"\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a\u0002"+
"\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d\u0002"+
"\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!\u0007"+
"!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002&\u0007"+
"&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002+\u0007"+
"+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u00020\u0007"+
"0\u00021\u00071\u00022\u00072\u00023\u00073\u00024\u00074\u00025\u0007"+
"5\u00026\u00076\u00027\u00077\u00028\u00078\u00029\u00079\u0002:\u0007"+
":\u0002;\u0007;\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002?\u0007"+
"?\u0002@\u0007@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002D\u0007"+
"D\u0002E\u0007E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002I\u0007"+
"I\u0002J\u0007J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002N\u0007"+
"N\u0002O\u0007O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002S\u0007"+
"S\u0002T\u0007T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002X\u0007"+
"X\u0002Y\u0007Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002]\u0007"+
"]\u0002^\u0007^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002b\u0007"+
"b\u0002c\u0007c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002g\u0007"+
"g\u0002h\u0007h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002l\u0007"+
"l\u0002m\u0007m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002q\u0007"+
"q\u0002r\u0007r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002v\u0007"+
"v\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000"+
"\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0001\u0001\u0001\u0001\u0001"+
"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002"+
"\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002"+
"\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003"+
"\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0005"+
"\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0006\u0001\u0006"+
"\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0007\u0001\u0007"+
"\u0001\u0007\u0001\u0007\u0001\u0007\u0001\b\u0001\b\u0001\b\u0001\b\u0001"+
"\b\u0001\b\u0001\t\u0001\t\u0001\t\u0001\t\u0001\t\u0001\t\u0001\n\u0001"+
"\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\u000b"+
"\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b"+
"\u0001\u000b\u0001\f\u0001\f\u0001\f\u0001\r\u0001\r\u0001\r\u0001\r\u0001"+
"\r\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001"+
"\u000e\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001"+
"\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001"+
"\u0010\u0001\u0010\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001"+
"\u0011\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001"+
"\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0013\u0001\u0013\u0001"+
"\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0014\u0001\u0014\u0001"+
"\u0014\u0001\u0014\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0016\u0001"+
"\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0017\u0001\u0017\u0001"+
"\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001"+
"\u0017\u0001\u0017\u0001\u0017\u0001\u0018\u0001\u0018\u0001\u0018\u0001"+
"\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0019\u0001\u0019\u0001"+
"\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001"+
"\u0019\u0001\u0019\u0001\u0019\u0001\u001a\u0001\u001a\u0001\u001a\u0001"+
"\u001a\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001"+
"\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001c\u0001"+
"\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001d\u0001\u001d\u0001"+
"\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001e\u0001"+
"\u001e\u0001\u001e\u0001\u001e\u0001\u001f\u0001\u001f\u0001\u001f\u0001"+
"\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001 \u0001 \u0001"+
" \u0001 \u0001 \u0001 \u0001 \u0001 \u0001!\u0001!\u0001!\u0001!\u0001"+
"!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001\"\u0001\"\u0001\"\u0001\"\u0001"+
"\"\u0001\"\u0001\"\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001"+
"$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001%\u0001%\u0001%\u0001%\u0001"+
"%\u0001%\u0001%\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001"+
"&\u0001&\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001(\u0001"+
"(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001)\u0001)\u0001)\u0001)\u0001"+
")\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001*\u0001"+
"*\u0001*\u0001*\u0001*\u0001+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001"+
",\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001-\u0001-\u0001-\u0001"+
"-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001.\u0001.\u0001.\u0001"+
".\u0001/\u0001/\u0001/\u0001/\u00010\u00010\u00010\u00010\u00010\u0001"+
"1\u00011\u00011\u00011\u00011\u00011\u00011\u00011\u00011\u00012\u0001"+
"2\u00012\u00012\u00012\u00012\u00013\u00013\u00013\u00033\u024a\b3\u0001"+
"3\u00043\u024d\b3\u000b3\f3\u024e\u00013\u00033\u0252\b3\u00033\u0254"+
"\b3\u00013\u00033\u0257\b3\u00014\u00014\u00014\u00014\u00054\u025d\b"+
"4\n4\f4\u0260\t4\u00014\u00034\u0263\b4\u00014\u00034\u0266\b4\u00015"+
"\u00015\u00055\u026a\b5\n5\f5\u026d\t5\u00015\u00015\u00055\u0271\b5\n"+
"5\f5\u0274\t5\u00015\u00035\u0277\b5\u00015\u00035\u027a\b5\u00016\u0001"+
"6\u00016\u00016\u00056\u0280\b6\n6\f6\u0283\t6\u00016\u00036\u0286\b6"+
"\u00016\u00036\u0289\b6\u00017\u00017\u00017\u00037\u028e\b7\u00017\u0001"+
"7\u00037\u0292\b7\u00017\u00037\u0295\b7\u00017\u00037\u0298\b7\u0001"+
"7\u00017\u00017\u00037\u029d\b7\u00017\u00037\u02a0\b7\u00037\u02a2\b"+
"7\u00018\u00018\u00018\u00018\u00038\u02a8\b8\u00018\u00038\u02ab\b8\u0001"+
"8\u00018\u00038\u02af\b8\u00018\u00018\u00038\u02b3\b8\u00018\u00018\u0003"+
"8\u02b7\b8\u00019\u00019\u00019\u00019\u00019\u00019\u00019\u00019\u0001"+
"9\u00039\u02c2\b9\u0001:\u0001:\u0001:\u0003:\u02c7\b:\u0001:\u0001:\u0001"+
";\u0001;\u0001;\u0005;\u02ce\b;\n;\f;\u02d1\t;\u0001;\u0001;\u0001<\u0001"+
"<\u0001<\u0001<\u0001<\u0001=\u0001=\u0001>\u0001>\u0001?\u0001?\u0001"+
"@\u0001@\u0001A\u0001A\u0001B\u0001B\u0001C\u0001C\u0001D\u0001D\u0001"+
"E\u0001E\u0001F\u0001F\u0001G\u0001G\u0001H\u0001H\u0001I\u0001I\u0001"+
"J\u0001J\u0001K\u0001K\u0001L\u0001L\u0001M\u0001M\u0001M\u0001N\u0001"+
"N\u0001N\u0001O\u0001O\u0001O\u0001P\u0001P\u0001P\u0001Q\u0001Q\u0001"+
"Q\u0001R\u0001R\u0001R\u0001S\u0001S\u0001S\u0001T\u0001T\u0001T\u0001"+
"U\u0001U\u0001V\u0001V\u0001W\u0001W\u0001X\u0001X\u0001Y\u0001Y\u0001"+
"Z\u0001Z\u0001[\u0001[\u0001\\\u0001\\\u0001]\u0001]\u0001]\u0001^\u0001"+
"^\u0001^\u0001_\u0001_\u0001_\u0001`\u0001`\u0001`\u0001a\u0001a\u0001"+
"a\u0001b\u0001b\u0001b\u0001c\u0001c\u0001c\u0001d\u0001d\u0001d\u0001"+
"e\u0001e\u0001e\u0001e\u0001f\u0001f\u0001f\u0001f\u0001g\u0001g\u0001"+
"g\u0001g\u0001g\u0001h\u0001h\u0001h\u0001i\u0001i\u0001i\u0001j\u0001"+
"j\u0001k\u0001k\u0001k\u0001k\u0001l\u0004l\u0354\bl\u000bl\fl\u0355\u0001"+
"l\u0001l\u0001m\u0001m\u0001m\u0001m\u0005m\u035e\bm\nm\fm\u0361\tm\u0001"+
"m\u0001m\u0001m\u0001m\u0001m\u0001n\u0001n\u0001n\u0001n\u0005n\u036c"+
"\bn\nn\fn\u036f\tn\u0001n\u0001n\u0001o\u0001o\u0005o\u0375\bo\no\fo\u0378"+
"\to\u0001p\u0001p\u0003p\u037c\bp\u0001p\u0001p\u0001q\u0001q\u0001q\u0001"+
"q\u0003q\u0384\bq\u0001q\u0003q\u0387\bq\u0001q\u0001q\u0001q\u0004q\u038c"+
"\bq\u000bq\fq\u038d\u0001q\u0001q\u0001q\u0001q\u0001q\u0003q\u0395\b"+
"q\u0001r\u0001r\u0001r\u0005r\u039a\br\nr\fr\u039d\tr\u0001r\u0003r\u03a0"+
"\br\u0001s\u0001s\u0001t\u0001t\u0005t\u03a6\bt\nt\ft\u03a9\tt\u0001t"+
"\u0003t\u03ac\bt\u0001u\u0001u\u0003u\u03b0\bu\u0001v\u0001v\u0001v\u0001"+
"v\u0003v\u03b6\bv\u0001\u035f\u0000w\u0001\u0001\u0003\u0002\u0005\u0003"+
"\u0007\u0004\t\u0005\u000b\u0006\r\u0007\u000f\b\u0011\t\u0013\n\u0015"+
"\u000b\u0017\f\u0019\r\u001b\u000e\u001d\u000f\u001f\u0010!\u0011#\u0012"+
"%\u0013\'\u0014)\u0015+\u0016-\u0017/\u00181\u00193\u001a5\u001b7\u001c"+
"9\u001d;\u001e=\u001f? A!C\"E#G$I%K&M\'O(Q)S*U+W,Y-[.]/_0a1c2e3g4i5k6"+
"m7o8q9s:u;w<y={>}?\u007f@\u0081A\u0083B\u0085C\u0087D\u0089E\u008bF\u008d"+
"G\u008fH\u0091I\u0093J\u0095K\u0097L\u0099M\u009bN\u009dO\u009fP\u00a1"+
"Q\u00a3R\u00a5S\u00a7T\u00a9U\u00abV\u00adW\u00afX\u00b1Y\u00b3Z\u00b5"+
"[\u00b7\\\u00b9]\u00bb^\u00bd_\u00bf`\u00c1a\u00c3b\u00c5c\u00c7d\u00c9"+
"e\u00cbf\u00cdg\u00cfh\u00d1i\u00d3j\u00d5k\u00d7l\u00d9m\u00dbn\u00dd"+
"o\u00dfp\u00e1\u0000\u00e3\u0000\u00e5\u0000\u00e7\u0000\u00e9\u0000\u00eb"+
"\u0000\u00ed\u0000\u0001\u0000\u001a\u0001\u000019\u0002\u0000LLll\u0002"+
"\u0000XXxx\u0003\u000009AFaf\u0004\u000009AF__af\u0001\u000007\u0002\u0000"+
"07__\u0002\u0000BBbb\u0001\u000001\u0002\u000001__\u0004\u0000DDFFddf"+
"f\u0002\u0000PPpp\u0002\u0000++--\u0004\u0000\n\n\r\r\'\'\\\\\u0004\u0000"+
"\n\n\r\r\"\"\\\\\u0003\u0000\t\n\f\r \u0002\u0000\n\n\r\r\u0002\u0000"+
"EEee\b\u0000\"\"\'\'\\\\bbffnnrrtt\u0001\u000003\u0001\u000009\u0002\u0000"+
"09__\u0004\u0000$$AZ__az\u0002\u0000\u0000\u007f\u8000\ud800\u8000\udbff"+
"\u0001\u0000\u8000\ud800\u8000\udbff\u0001\u0000\u8000\udc00\u8000\udfff"+
"\u03e0\u0000\u0001\u0001\u0000\u0000\u0000\u0000\u0003\u0001\u0000\u0000"+
"\u0000\u0000\u0005\u0001\u0000\u0000\u0000\u0000\u0007\u0001\u0000\u0000"+
"\u0000\u0000\t\u0001\u0000\u0000\u0000\u0000\u000b\u0001\u0000\u0000\u0000"+
"\u0000\r\u0001\u0000\u0000\u0000\u0000\u000f\u0001\u0000\u0000\u0000\u0000"+
"\u0011\u0001\u0000\u0000\u0000\u0000\u0013\u0001\u0000\u0000\u0000\u0000"+
"\u0015\u0001\u0000\u0000\u0000\u0000\u0017\u0001\u0000\u0000\u0000\u0000"+
"\u0019\u0001\u0000\u0000\u0000\u0000\u001b\u0001\u0000\u0000\u0000\u0000"+
"\u001d\u0001\u0000\u0000\u0000\u0000\u001f\u0001\u0000\u0000\u0000\u0000"+
"!\u0001\u0000\u0000\u0000\u0000#\u0001\u0000\u0000\u0000\u0000%\u0001"+
"\u0000\u0000\u0000\u0000\'\u0001\u0000\u0000\u0000\u0000)\u0001\u0000"+
"\u0000\u0000\u0000+\u0001\u0000\u0000\u0000\u0000-\u0001\u0000\u0000\u0000"+
"\u0000/\u0001\u0000\u0000\u0000\u00001\u0001\u0000\u0000\u0000\u00003"+
"\u0001\u0000\u0000\u0000\u00005\u0001\u0000\u0000\u0000\u00007\u0001\u0000"+
"\u0000\u0000\u00009\u0001\u0000\u0000\u0000\u0000;\u0001\u0000\u0000\u0000"+
"\u0000=\u0001\u0000\u0000\u0000\u0000?\u0001\u0000\u0000\u0000\u0000A"+
"\u0001\u0000\u0000\u0000\u0000C\u0001\u0000\u0000\u0000\u0000E\u0001\u0000"+
"\u0000\u0000\u0000G\u0001\u0000\u0000\u0000\u0000I\u0001\u0000\u0000\u0000"+
"\u0000K\u0001\u0000\u0000\u0000\u0000M\u0001\u0000\u0000\u0000\u0000O"+
"\u0001\u0000\u0000\u0000\u0000Q\u0001\u0000\u0000\u0000\u0000S\u0001\u0000"+
"\u0000\u0000\u0000U\u0001\u0000\u0000\u0000\u0000W\u0001\u0000\u0000\u0000"+
"\u0000Y\u0001\u0000\u0000\u0000\u0000[\u0001\u0000\u0000\u0000\u0000]"+
"\u0001\u0000\u0000\u0000\u0000_\u0001\u0000\u0000\u0000\u0000a\u0001\u0000"+
"\u0000\u0000\u0000c\u0001\u0000\u0000\u0000\u0000e\u0001\u0000\u0000\u0000"+
"\u0000g\u0001\u0000\u0000\u0000\u0000i\u0001\u0000\u0000\u0000\u0000k"+
"\u0001\u0000\u0000\u0000\u0000m\u0001\u0000\u0000\u0000\u0000o\u0001\u0000"+
"\u0000\u0000\u0000q\u0001\u0000\u0000\u0000\u0000s\u0001\u0000\u0000\u0000"+
"\u0000u\u0001\u0000\u0000\u0000\u0000w\u0001\u0000\u0000\u0000\u0000y"+
"\u0001\u0000\u0000\u0000\u0000{\u0001\u0000\u0000\u0000\u0000}\u0001\u0000"+
"\u0000\u0000\u0000\u007f\u0001\u0000\u0000\u0000\u0000\u0081\u0001\u0000"+
"\u0000\u0000\u0000\u0083\u0001\u0000\u0000\u0000\u0000\u0085\u0001\u0000"+
"\u0000\u0000\u0000\u0087\u0001\u0000\u0000\u0000\u0000\u0089\u0001\u0000"+
"\u0000\u0000\u0000\u008b\u0001\u0000\u0000\u0000\u0000\u008d\u0001\u0000"+
"\u0000\u0000\u0000\u008f\u0001\u0000\u0000\u0000\u0000\u0091\u0001\u0000"+
"\u0000\u0000\u0000\u0093\u0001\u0000\u0000\u0000\u0000\u0095\u0001\u0000"+
"\u0000\u0000\u0000\u0097\u0001\u0000\u0000\u0000\u0000\u0099\u0001\u0000"+
"\u0000\u0000\u0000\u009b\u0001\u0000\u0000\u0000\u0000\u009d\u0001\u0000"+
"\u0000\u0000\u0000\u009f\u0001\u0000\u0000\u0000\u0000\u00a1\u0001\u0000"+
"\u0000\u0000\u0000\u00a3\u0001\u0000\u0000\u0000\u0000\u00a5\u0001\u0000"+
"\u0000\u0000\u0000\u00a7\u0001\u0000\u0000\u0000\u0000\u00a9\u0001\u0000"+
"\u0000\u0000\u0000\u00ab\u0001\u0000\u0000\u0000\u0000\u00ad\u0001\u0000"+
"\u0000\u0000\u0000\u00af\u0001\u0000\u0000\u0000\u0000\u00b1\u0001\u0000"+
"\u0000\u0000\u0000\u00b3\u0001\u0000\u0000\u0000\u0000\u00b5\u0001\u0000"+
"\u0000\u0000\u0000\u00b7\u0001\u0000\u0000\u0000\u0000\u00b9\u0001\u0000"+
"\u0000\u0000\u0000\u00bb\u0001\u0000\u0000\u0000\u0000\u00bd\u0001\u0000"+
"\u0000\u0000\u0000\u00bf\u0001\u0000\u0000\u0000\u0000\u00c1\u0001\u0000"+
"\u0000\u0000\u0000\u00c3\u0001\u0000\u0000\u0000\u0000\u00c5\u0001\u0000"+
"\u0000\u0000\u0000\u00c7\u0001\u0000\u0000\u0000\u0000\u00c9\u0001\u0000"+
"\u0000\u0000\u0000\u00cb\u0001\u0000\u0000\u0000\u0000\u00cd\u0001\u0000"+
"\u0000\u0000\u0000\u00cf\u0001\u0000\u0000\u0000\u0000\u00d1\u0001\u0000"+
"\u0000\u0000\u0000\u00d3\u0001\u0000\u0000\u0000\u0000\u00d5\u0001\u0000"+
"\u0000\u0000\u0000\u00d7\u0001\u0000\u0000\u0000\u0000\u00d9\u0001\u0000"+
"\u0000\u0000\u0000\u00db\u0001\u0000\u0000\u0000\u0000\u00dd\u0001\u0000"+
"\u0000\u0000\u0000\u00df\u0001\u0000\u0000\u0000\u0001\u00ef\u0001\u0000"+
"\u0000\u0000\u0003\u00f8\u0001\u0000\u0000\u0000\u0005\u00ff\u0001\u0000"+
"\u0000\u0000\u0007\u0107\u0001\u0000\u0000\u0000\t\u010d\u0001\u0000\u0000"+
"\u0000\u000b\u0112\u0001\u0000\u0000\u0000\r\u0117\u0001\u0000\u0000\u0000"+
"\u000f\u011d\u0001\u0000\u0000\u0000\u0011\u0122\u0001\u0000\u0000\u0000"+
"\u0013\u0128\u0001\u0000\u0000\u0000\u0015\u012e\u0001\u0000\u0000\u0000"+
"\u0017\u0137\u0001\u0000\u0000\u0000\u0019\u013f\u0001\u0000\u0000\u0000"+
"\u001b\u0142\u0001\u0000\u0000\u0000\u001d\u0149\u0001\u0000\u0000\u0000"+
"\u001f\u014e\u0001\u0000\u0000\u0000!\u0153\u0001\u0000\u0000\u0000#\u015b"+
"\u0001\u0000\u0000\u0000%\u0161\u0001\u0000\u0000\u0000\'\u0169\u0001"+
"\u0000\u0000\u0000)\u016f\u0001\u0000\u0000\u0000+\u0173\u0001\u0000\u0000"+
"\u0000-\u0176\u0001\u0000\u0000\u0000/\u017b\u0001\u0000\u0000\u00001"+
"\u0186\u0001\u0000\u0000\u00003\u018d\u0001\u0000\u0000\u00005\u0198\u0001"+
"\u0000\u0000\u00007\u019c\u0001\u0000\u0000\u00009\u01a6\u0001\u0000\u0000"+
"\u0000;\u01ab\u0001\u0000\u0000\u0000=\u01b2\u0001\u0000\u0000\u0000?"+
"\u01b6\u0001\u0000\u0000\u0000A\u01be\u0001\u0000\u0000\u0000C\u01c6\u0001"+
"\u0000\u0000\u0000E\u01d0\u0001\u0000\u0000\u0000G\u01d7\u0001\u0000\u0000"+
"\u0000I\u01de\u0001\u0000\u0000\u0000K\u01e4\u0001\u0000\u0000\u0000M"+
"\u01eb\u0001\u0000\u0000\u0000O\u01f4\u0001\u0000\u0000\u0000Q\u01fa\u0001"+
"\u0000\u0000\u0000S\u0201\u0001\u0000\u0000\u0000U\u020e\u0001\u0000\u0000"+
"\u0000W\u0213\u0001\u0000\u0000\u0000Y\u0219\u0001\u0000\u0000\u0000["+
"\u0220\u0001\u0000\u0000\u0000]\u022a\u0001\u0000\u0000\u0000_\u022e\u0001"+
"\u0000\u0000\u0000a\u0232\u0001\u0000\u0000\u0000c\u0237\u0001\u0000\u0000"+
"\u0000e\u0240\u0001\u0000\u0000\u0000g\u0253\u0001\u0000\u0000\u0000i"+
"\u0258\u0001\u0000\u0000\u0000k\u0267\u0001\u0000\u0000\u0000m\u027b\u0001"+
"\u0000\u0000\u0000o\u02a1\u0001\u0000\u0000\u0000q\u02a3\u0001\u0000\u0000"+
"\u0000s\u02c1\u0001\u0000\u0000\u0000u\u02c3\u0001\u0000\u0000\u0000w"+
"\u02ca\u0001\u0000\u0000\u0000y\u02d4\u0001\u0000\u0000\u0000{\u02d9\u0001"+
"\u0000\u0000\u0000}\u02db\u0001\u0000\u0000\u0000\u007f\u02dd\u0001\u0000"+
"\u0000\u0000\u0081\u02df\u0001\u0000\u0000\u0000\u0083\u02e1\u0001\u0000"+
"\u0000\u0000\u0085\u02e3\u0001\u0000\u0000\u0000\u0087\u02e5\u0001\u0000"+
"\u0000\u0000\u0089\u02e7\u0001\u0000\u0000\u0000\u008b\u02e9\u0001\u0000"+
"\u0000\u0000\u008d\u02eb\u0001\u0000\u0000\u0000\u008f\u02ed\u0001\u0000"+
"\u0000\u0000\u0091\u02ef\u0001\u0000\u0000\u0000\u0093\u02f1\u0001\u0000"+
"\u0000\u0000\u0095\u02f3\u0001\u0000\u0000\u0000\u0097\u02f5\u0001\u0000"+
"\u0000\u0000\u0099\u02f7\u0001\u0000\u0000\u0000\u009b\u02f9\u0001\u0000"+
"\u0000\u0000\u009d\u02fc\u0001\u0000\u0000\u0000\u009f\u02ff\u0001\u0000"+
"\u0000\u0000\u00a1\u0302\u0001\u0000\u0000\u0000\u00a3\u0305\u0001\u0000"+
"\u0000\u0000\u00a5\u0308\u0001\u0000\u0000\u0000\u00a7\u030b\u0001\u0000"+
"\u0000\u0000\u00a9\u030e\u0001\u0000\u0000\u0000\u00ab\u0311\u0001\u0000"+
"\u0000\u0000\u00ad\u0313\u0001\u0000\u0000\u0000\u00af\u0315\u0001\u0000"+
"\u0000\u0000\u00b1\u0317\u0001\u0000\u0000\u0000\u00b3\u0319\u0001\u0000"+
"\u0000\u0000\u00b5\u031b\u0001\u0000\u0000\u0000\u00b7\u031d\u0001\u0000"+
"\u0000\u0000\u00b9\u031f\u0001\u0000\u0000\u0000\u00bb\u0321\u0001\u0000"+
"\u0000\u0000\u00bd\u0324\u0001\u0000\u0000\u0000\u00bf\u0327\u0001\u0000"+
"\u0000\u0000\u00c1\u032a\u0001\u0000\u0000\u0000\u00c3\u032d\u0001\u0000"+
"\u0000\u0000\u00c5\u0330\u0001\u0000\u0000\u0000\u00c7\u0333\u0001\u0000"+
"\u0000\u0000\u00c9\u0336\u0001\u0000\u0000\u0000\u00cb\u0339\u0001\u0000"+
"\u0000\u0000\u00cd\u033d\u0001\u0000\u0000\u0000\u00cf\u0341\u0001\u0000"+
"\u0000\u0000\u00d1\u0346\u0001\u0000\u0000\u0000\u00d3\u0349\u0001\u0000"+
"\u0000\u0000\u00d5\u034c\u0001\u0000\u0000\u0000\u00d7\u034e\u0001\u0000"+
"\u0000\u0000\u00d9\u0353\u0001\u0000\u0000\u0000\u00db\u0359\u0001\u0000"+
"\u0000\u0000\u00dd\u0367\u0001\u0000\u0000\u0000\u00df\u0372\u0001\u0000"+
"\u0000\u0000\u00e1\u0379\u0001\u0000\u0000\u0000\u00e3\u0394\u0001\u0000"+
"\u0000\u0000\u00e5\u0396\u0001\u0000\u0000\u0000\u00e7\u03a1\u0001\u0000"+
"\u0000\u0000\u00e9\u03a3\u0001\u0000\u0000\u0000\u00eb\u03af\u0001\u0000"+
"\u0000\u0000\u00ed\u03b5\u0001\u0000\u0000\u0000\u00ef\u00f0\u0005a\u0000"+
"\u0000\u00f0\u00f1\u0005b\u0000\u0000\u00f1\u00f2\u0005s\u0000\u0000\u00f2"+
"\u00f3\u0005t\u0000\u0000\u00f3\u00f4\u0005r\u0000\u0000\u00f4\u00f5\u0005"+
"a\u0000\u0000\u00f5\u00f6\u0005c\u0000\u0000\u00f6\u00f7\u0005t\u0000"+
"\u0000\u00f7\u0002\u0001\u0000\u0000\u0000\u00f8\u00f9\u0005a\u0000\u0000"+
"\u00f9\u00fa\u0005s\u0000\u0000\u00fa\u00fb\u0005s\u0000\u0000\u00fb\u00fc"+
"\u0005e\u0000\u0000\u00fc\u00fd\u0005r\u0000\u0000\u00fd\u00fe\u0005t"+
"\u0000\u0000\u00fe\u0004\u0001\u0000\u0000\u0000\u00ff\u0100\u0005b\u0000"+
"\u0000\u0100\u0101\u0005o\u0000\u0000\u0101\u0102\u0005o\u0000\u0000\u0102"+
"\u0103\u0005l\u0000\u0000\u0103\u0104\u0005e\u0000\u0000\u0104\u0105\u0005"+
"a\u0000\u0000\u0105\u0106\u0005n\u0000\u0000\u0106\u0006\u0001\u0000\u0000"+
"\u0000\u0107\u0108\u0005b\u0000\u0000\u0108\u0109\u0005r\u0000\u0000\u0109"+
"\u010a\u0005e\u0000\u0000\u010a\u010b\u0005a\u0000\u0000\u010b\u010c\u0005"+
"k\u0000\u0000\u010c\b\u0001\u0000\u0000\u0000\u010d\u010e\u0005b\u0000"+
"\u0000\u010e\u010f\u0005y\u0000\u0000\u010f\u0110\u0005t\u0000\u0000\u0110"+
"\u0111\u0005e\u0000\u0000\u0111\n\u0001\u0000\u0000\u0000\u0112\u0113"+
"\u0005c\u0000\u0000\u0113\u0114\u0005a\u0000\u0000\u0114\u0115\u0005s"+
"\u0000\u0000\u0115\u0116\u0005e\u0000\u0000\u0116\f\u0001\u0000\u0000"+
"\u0000\u0117\u0118\u0005c\u0000\u0000\u0118\u0119\u0005a\u0000\u0000\u0119"+
"\u011a\u0005t\u0000\u0000\u011a\u011b\u0005c\u0000\u0000\u011b\u011c\u0005"+
"h\u0000\u0000\u011c\u000e\u0001\u0000\u0000\u0000\u011d\u011e\u0005c\u0000"+
"\u0000\u011e\u011f\u0005h\u0000\u0000\u011f\u0120\u0005a\u0000\u0000\u0120"+
"\u0121\u0005r\u0000\u0000\u0121\u0010\u0001\u0000\u0000\u0000\u0122\u0123"+
"\u0005c\u0000\u0000\u0123\u0124\u0005l\u0000\u0000\u0124\u0125\u0005a"+
"\u0000\u0000\u0125\u0126\u0005s\u0000\u0000\u0126\u0127\u0005s\u0000\u0000"+
"\u0127\u0012\u0001\u0000\u0000\u0000\u0128\u0129\u0005c\u0000\u0000\u0129"+
"\u012a\u0005o\u0000\u0000\u012a\u012b\u0005n\u0000\u0000\u012b\u012c\u0005"+
"s\u0000\u0000\u012c\u012d\u0005t\u0000\u0000\u012d\u0014\u0001\u0000\u0000"+
"\u0000\u012e\u012f\u0005c\u0000\u0000\u012f\u0130\u0005o\u0000\u0000\u0130"+
"\u0131\u0005n\u0000\u0000\u0131\u0132\u0005t\u0000\u0000\u0132\u0133\u0005"+
"i\u0000\u0000\u0133\u0134\u0005n\u0000\u0000\u0134\u0135\u0005u\u0000"+
"\u0000\u0135\u0136\u0005e\u0000\u0000\u0136\u0016\u0001\u0000\u0000\u0000"+
"\u0137\u0138\u0005d\u0000\u0000\u0138\u0139\u0005e\u0000\u0000\u0139\u013a"+
"\u0005f\u0000\u0000\u013a\u013b\u0005a\u0000\u0000\u013b\u013c\u0005u"+
"\u0000\u0000\u013c\u013d\u0005l\u0000\u0000\u013d\u013e\u0005t\u0000\u0000"+
"\u013e\u0018\u0001\u0000\u0000\u0000\u013f\u0140\u0005d\u0000\u0000\u0140"+
"\u0141\u0005o\u0000\u0000\u0141\u001a\u0001\u0000\u0000\u0000\u0142\u0143"+
"\u0005d\u0000\u0000\u0143\u0144\u0005o\u0000\u0000\u0144\u0145\u0005u"+
"\u0000\u0000\u0145\u0146\u0005b\u0000\u0000\u0146\u0147\u0005l\u0000\u0000"+
"\u0147\u0148\u0005e\u0000\u0000\u0148\u001c\u0001\u0000\u0000\u0000\u0149"+
"\u014a\u0005e\u0000\u0000\u014a\u014b\u0005l\u0000\u0000\u014b\u014c\u0005"+
"s\u0000\u0000\u014c\u014d\u0005e\u0000\u0000\u014d\u001e\u0001\u0000\u0000"+
"\u0000\u014e\u014f\u0005e\u0000\u0000\u014f\u0150\u0005n\u0000\u0000\u0150"+
"\u0151\u0005u\u0000\u0000\u0151\u0152\u0005m\u0000\u0000\u0152 \u0001"+
"\u0000\u0000\u0000\u0153\u0154\u0005e\u0000\u0000\u0154\u0155\u0005x\u0000"+
"\u0000\u0155\u0156\u0005t\u0000\u0000\u0156\u0157\u0005e\u0000\u0000\u0157"+
"\u0158\u0005n\u0000\u0000\u0158\u0159\u0005d\u0000\u0000\u0159\u015a\u0005"+
"s\u0000\u0000\u015a\"\u0001\u0000\u0000\u0000\u015b\u015c\u0005f\u0000"+
"\u0000\u015c\u015d\u0005i\u0000\u0000\u015d\u015e\u0005n\u0000\u0000\u015e"+
"\u015f\u0005a\u0000\u0000\u015f\u0160\u0005l\u0000\u0000\u0160$\u0001"+
"\u0000\u0000\u0000\u0161\u0162\u0005f\u0000\u0000\u0162\u0163\u0005i\u0000"+
"\u0000\u0163\u0164\u0005n\u0000\u0000\u0164\u0165\u0005a\u0000\u0000\u0165"+
"\u0166\u0005l\u0000\u0000\u0166\u0167\u0005l\u0000\u0000\u0167\u0168\u0005"+
"y\u0000\u0000\u0168&\u0001\u0000\u0000\u0000\u0169\u016a\u0005f\u0000"+
"\u0000\u016a\u016b\u0005l\u0000\u0000\u016b\u016c\u0005o\u0000\u0000\u016c"+
"\u016d\u0005a\u0000\u0000\u016d\u016e\u0005t\u0000\u0000\u016e(\u0001"+
"\u0000\u0000\u0000\u016f\u0170\u0005f\u0000\u0000\u0170\u0171\u0005o\u0000"+
"\u0000\u0171\u0172\u0005r\u0000\u0000\u0172*\u0001\u0000\u0000\u0000\u0173"+
"\u0174\u0005i\u0000\u0000\u0174\u0175\u0005f\u0000\u0000\u0175,\u0001"+
"\u0000\u0000\u0000\u0176\u0177\u0005g\u0000\u0000\u0177\u0178\u0005o\u0000"+
"\u0000\u0178\u0179\u0005t\u0000\u0000\u0179\u017a\u0005o\u0000\u0000\u017a"+
".\u0001\u0000\u0000\u0000\u017b\u017c\u0005i\u0000\u0000\u017c\u017d\u0005"+
"m\u0000\u0000\u017d\u017e\u0005p\u0000\u0000\u017e\u017f\u0005l\u0000"+
"\u0000\u017f\u0180\u0005e\u0000\u0000\u0180\u0181\u0005m\u0000\u0000\u0181"+
"\u0182\u0005e\u0000\u0000\u0182\u0183\u0005n\u0000\u0000\u0183\u0184\u0005"+
"t\u0000\u0000\u0184\u0185\u0005s\u0000\u0000\u01850\u0001\u0000\u0000"+
"\u0000\u0186\u0187\u0005i\u0000\u0000\u0187\u0188\u0005m\u0000\u0000\u0188"+
"\u0189\u0005p\u0000\u0000\u0189\u018a\u0005o\u0000\u0000\u018a\u018b\u0005"+
"r\u0000\u0000\u018b\u018c\u0005t\u0000\u0000\u018c2\u0001\u0000\u0000"+
"\u0000\u018d\u018e\u0005i\u0000\u0000\u018e\u018f\u0005n\u0000\u0000\u018f"+
"\u0190\u0005s\u0000\u0000\u0190\u0191\u0005t\u0000\u0000\u0191\u0192\u0005"+
"a\u0000\u0000\u0192\u0193\u0005n\u0000\u0000\u0193\u0194\u0005c\u0000"+
"\u0000\u0194\u0195\u0005e\u0000\u0000\u0195\u0196\u0005o\u0000\u0000\u0196"+
"\u0197\u0005f\u0000\u0000\u01974\u0001\u0000\u0000\u0000\u0198\u0199\u0005"+
"i\u0000\u0000\u0199\u019a\u0005n\u0000\u0000\u019a\u019b\u0005t\u0000"+
"\u0000\u019b6\u0001\u0000\u0000\u0000\u019c\u019d\u0005i\u0000\u0000\u019d"+
"\u019e\u0005n\u0000\u0000\u019e\u019f\u0005t\u0000\u0000\u019f\u01a0\u0005"+
"e\u0000\u0000\u01a0\u01a1\u0005r\u0000\u0000\u01a1\u01a2\u0005f\u0000"+
"\u0000\u01a2\u01a3\u0005a\u0000\u0000\u01a3\u01a4\u0005c\u0000\u0000\u01a4"+
"\u01a5\u0005e\u0000\u0000\u01a58\u0001\u0000\u0000\u0000\u01a6\u01a7\u0005"+
"l\u0000\u0000\u01a7\u01a8\u0005o\u0000\u0000\u01a8\u01a9\u0005n\u0000"+
"\u0000\u01a9\u01aa\u0005g\u0000\u0000\u01aa:\u0001\u0000\u0000\u0000\u01ab"+
"\u01ac\u0005n\u0000\u0000\u01ac\u01ad\u0005a\u0000\u0000\u01ad\u01ae\u0005"+
"t\u0000\u0000\u01ae\u01af\u0005i\u0000\u0000\u01af\u01b0\u0005v\u0000"+
"\u0000\u01b0\u01b1\u0005e\u0000\u0000\u01b1<\u0001\u0000\u0000\u0000\u01b2"+
"\u01b3\u0005n\u0000\u0000\u01b3\u01b4\u0005e\u0000\u0000\u01b4\u01b5\u0005"+
"w\u0000\u0000\u01b5>\u0001\u0000\u0000\u0000\u01b6\u01b7\u0005p\u0000"+
"\u0000\u01b7\u01b8\u0005a\u0000\u0000\u01b8\u01b9\u0005c\u0000\u0000\u01b9"+
"\u01ba\u0005k\u0000\u0000\u01ba\u01bb\u0005a\u0000\u0000\u01bb\u01bc\u0005"+
"g\u0000\u0000\u01bc\u01bd\u0005e\u0000\u0000\u01bd@\u0001\u0000\u0000"+
"\u0000\u01be\u01bf\u0005p\u0000\u0000\u01bf\u01c0\u0005r\u0000\u0000\u01c0"+
"\u01c1\u0005i\u0000\u0000\u01c1\u01c2\u0005v\u0000\u0000\u01c2\u01c3\u0005"+
"a\u0000\u0000\u01c3\u01c4\u0005t\u0000\u0000\u01c4\u01c5\u0005e\u0000"+
"\u0000\u01c5B\u0001\u0000\u0000\u0000\u01c6\u01c7\u0005p\u0000\u0000\u01c7"+
"\u01c8\u0005r\u0000\u0000\u01c8\u01c9\u0005o\u0000\u0000\u01c9\u01ca\u0005"+
"t\u0000\u0000\u01ca\u01cb\u0005e\u0000\u0000\u01cb\u01cc\u0005c\u0000"+
"\u0000\u01cc\u01cd\u0005t\u0000\u0000\u01cd\u01ce\u0005e\u0000\u0000\u01ce"+
"\u01cf\u0005d\u0000\u0000\u01cfD\u0001\u0000\u0000\u0000\u01d0\u01d1\u0005"+
"p\u0000\u0000\u01d1\u01d2\u0005u\u0000\u0000\u01d2\u01d3\u0005b\u0000"+
"\u0000\u01d3\u01d4\u0005l\u0000\u0000\u01d4\u01d5\u0005i\u0000\u0000\u01d5"+
"\u01d6\u0005c\u0000\u0000\u01d6F\u0001\u0000\u0000\u0000\u01d7\u01d8\u0005"+
"r\u0000\u0000\u01d8\u01d9\u0005e\u0000\u0000\u01d9\u01da\u0005t\u0000"+
"\u0000\u01da\u01db\u0005u\u0000\u0000\u01db\u01dc\u0005r\u0000\u0000\u01dc"+
"\u01dd\u0005n\u0000\u0000\u01ddH\u0001\u0000\u0000\u0000\u01de\u01df\u0005"+
"s\u0000\u0000\u01df\u01e0\u0005h\u0000\u0000\u01e0\u01e1\u0005o\u0000"+
"\u0000\u01e1\u01e2\u0005r\u0000\u0000\u01e2\u01e3\u0005t\u0000\u0000\u01e3"+
"J\u0001\u0000\u0000\u0000\u01e4\u01e5\u0005s\u0000\u0000\u01e5\u01e6\u0005"+
"t\u0000\u0000\u01e6\u01e7\u0005a\u0000\u0000\u01e7\u01e8\u0005t\u0000"+
"\u0000\u01e8\u01e9\u0005i\u0000\u0000\u01e9\u01ea\u0005c\u0000\u0000\u01ea"+
"L\u0001\u0000\u0000\u0000\u01eb\u01ec\u0005s\u0000\u0000\u01ec\u01ed\u0005"+
"t\u0000\u0000\u01ed\u01ee\u0005r\u0000\u0000\u01ee\u01ef\u0005i\u0000"+
"\u0000\u01ef\u01f0\u0005c\u0000\u0000\u01f0\u01f1\u0005t\u0000\u0000\u01f1"+
"\u01f2\u0005f\u0000\u0000\u01f2\u01f3\u0005p\u0000\u0000\u01f3N\u0001"+
"\u0000\u0000\u0000\u01f4\u01f5\u0005s\u0000\u0000\u01f5\u01f6\u0005u\u0000"+
"\u0000\u01f6\u01f7\u0005p\u0000\u0000\u01f7\u01f8\u0005e\u0000\u0000\u01f8"+
"\u01f9\u0005r\u0000\u0000\u01f9P\u0001\u0000\u0000\u0000\u01fa\u01fb\u0005"+
"s\u0000\u0000\u01fb\u01fc\u0005w\u0000\u0000\u01fc\u01fd\u0005i\u0000"+
"\u0000\u01fd\u01fe\u0005t\u0000\u0000\u01fe\u01ff\u0005c\u0000\u0000\u01ff"+
"\u0200\u0005h\u0000\u0000\u0200R\u0001\u0000\u0000\u0000\u0201\u0202\u0005"+
"s\u0000\u0000\u0202\u0203\u0005y\u0000\u0000\u0203\u0204\u0005n\u0000"+
"\u0000\u0204\u0205\u0005c\u0000\u0000\u0205\u0206\u0005h\u0000\u0000\u0206"+
"\u0207\u0005r\u0000\u0000\u0207\u0208\u0005o\u0000\u0000\u0208\u0209\u0005"+
"n\u0000\u0000\u0209\u020a\u0005i\u0000\u0000\u020a\u020b\u0005z\u0000"+
"\u0000\u020b\u020c\u0005e\u0000\u0000\u020c\u020d\u0005d\u0000\u0000\u020d"+
"T\u0001\u0000\u0000\u0000\u020e\u020f\u0005t\u0000\u0000\u020f\u0210\u0005"+
"h\u0000\u0000\u0210\u0211\u0005i\u0000\u0000\u0211\u0212\u0005s\u0000"+
"\u0000\u0212V\u0001\u0000\u0000\u0000\u0213\u0214\u0005t\u0000\u0000\u0214"+
"\u0215\u0005h\u0000\u0000\u0215\u0216\u0005r\u0000\u0000\u0216\u0217\u0005"+
"o\u0000\u0000\u0217\u0218\u0005w\u0000\u0000\u0218X\u0001\u0000\u0000"+
"\u0000\u0219\u021a\u0005t\u0000\u0000\u021a\u021b\u0005h\u0000\u0000\u021b"+
"\u021c\u0005r\u0000\u0000\u021c\u021d\u0005o\u0000\u0000\u021d\u021e\u0005"+
"w\u0000\u0000\u021e\u021f\u0005s\u0000\u0000\u021fZ\u0001\u0000\u0000"+
"\u0000\u0220\u0221\u0005t\u0000\u0000\u0221\u0222\u0005r\u0000\u0000\u0222"+
"\u0223\u0005a\u0000\u0000\u0223\u0224\u0005n\u0000\u0000\u0224\u0225\u0005"+
"s\u0000\u0000\u0225\u0226\u0005i\u0000\u0000\u0226\u0227\u0005e\u0000"+
"\u0000\u0227\u0228\u0005n\u0000\u0000\u0228\u0229\u0005t\u0000\u0000\u0229"+
"\\\u0001\u0000\u0000\u0000\u022a\u022b\u0005t\u0000\u0000\u022b\u022c"+
"\u0005r\u0000\u0000\u022c\u022d\u0005y\u0000\u0000\u022d^\u0001\u0000"+
"\u0000\u0000\u022e\u022f\u0005v\u0000\u0000\u022f\u0230\u0005a\u0000\u0000"+
"\u0230\u0231\u0005r\u0000\u0000\u0231`\u0001\u0000\u0000\u0000\u0232\u0233"+
"\u0005v\u0000\u0000\u0233\u0234\u0005o\u0000\u0000\u0234\u0235\u0005i"+
"\u0000\u0000\u0235\u0236\u0005d\u0000\u0000\u0236b\u0001\u0000\u0000\u0000"+
"\u0237\u0238\u0005v\u0000\u0000\u0238\u0239\u0005o\u0000\u0000\u0239\u023a"+
"\u0005l\u0000\u0000\u023a\u023b\u0005a\u0000\u0000\u023b\u023c\u0005t"+
"\u0000\u0000\u023c\u023d\u0005i\u0000\u0000\u023d\u023e\u0005l\u0000\u0000"+
"\u023e\u023f\u0005e\u0000\u0000\u023fd\u0001\u0000\u0000\u0000\u0240\u0241"+
"\u0005w\u0000\u0000\u0241\u0242\u0005h\u0000\u0000\u0242\u0243\u0005i"+
"\u0000\u0000\u0243\u0244\u0005l\u0000\u0000\u0244\u0245\u0005e\u0000\u0000"+
"\u0245f\u0001\u0000\u0000\u0000\u0246\u0254\u00050\u0000\u0000\u0247\u0251"+
"\u0007\u0000\u0000\u0000\u0248\u024a\u0003\u00e9t\u0000\u0249\u0248\u0001"+
"\u0000\u0000\u0000\u0249\u024a\u0001\u0000\u0000\u0000\u024a\u0252\u0001"+
"\u0000\u0000\u0000\u024b\u024d\u0005_\u0000\u0000\u024c\u024b\u0001\u0000"+
"\u0000\u0000\u024d\u024e\u0001\u0000\u0000\u0000\u024e\u024c\u0001\u0000"+
"\u0000\u0000\u024e\u024f\u0001\u0000\u0000\u0000\u024f\u0250\u0001\u0000"+
"\u0000\u0000\u0250\u0252\u0003\u00e9t\u0000\u0251\u0249\u0001\u0000\u0000"+
"\u0000\u0251\u024c\u0001\u0000\u0000\u0000\u0252\u0254\u0001\u0000\u0000"+
"\u0000\u0253\u0246\u0001\u0000\u0000\u0000\u0253\u0247\u0001\u0000\u0000"+
"\u0000\u0254\u0256\u0001\u0000\u0000\u0000\u0255\u0257\u0007\u0001\u0000"+
"\u0000\u0256\u0255\u0001\u0000\u0000\u0000\u0256\u0257\u0001\u0000\u0000"+
"\u0000\u0257h\u0001\u0000\u0000\u0000\u0258\u0259\u00050\u0000\u0000\u0259"+
"\u025a\u0007\u0002\u0000\u0000\u025a\u0262\u0007\u0003\u0000\u0000\u025b"+
"\u025d\u0007\u0004\u0000\u0000\u025c\u025b\u0001\u0000\u0000\u0000\u025d"+
"\u0260\u0001\u0000\u0000\u0000\u025e\u025c\u0001\u0000\u0000\u0000\u025e"+
"\u025f\u0001\u0000\u0000\u0000\u025f\u0261\u0001\u0000\u0000\u0000\u0260"+
"\u025e\u0001\u0000\u0000\u0000\u0261\u0263\u0007\u0003\u0000\u0000\u0262"+
"\u025e\u0001\u0000\u0000\u0000\u0262\u0263\u0001\u0000\u0000\u0000\u0263"+
"\u0265\u0001\u0000\u0000\u0000\u0264\u0266\u0007\u0001\u0000\u0000\u0265"+
"\u0264\u0001\u0000\u0000\u0000\u0265\u0266\u0001\u0000\u0000\u0000\u0266"+
"j\u0001\u0000\u0000\u0000\u0267\u026b\u00050\u0000\u0000\u0268\u026a\u0005"+
"_\u0000\u0000\u0269\u0268\u0001\u0000\u0000\u0000\u026a\u026d\u0001\u0000"+
"\u0000\u0000\u026b\u0269\u0001\u0000\u0000\u0000\u026b\u026c\u0001\u0000"+
"\u0000\u0000\u026c\u026e\u0001\u0000\u0000\u0000\u026d\u026b\u0001\u0000"+
"\u0000\u0000\u026e\u0276\u0007\u0005\u0000\u0000\u026f\u0271\u0007\u0006"+
"\u0000\u0000\u0270\u026f\u0001\u0000\u0000\u0000\u0271\u0274\u0001\u0000"+
"\u0000\u0000\u0272\u0270\u0001\u0000\u0000\u0000\u0272\u0273\u0001\u0000"+
"\u0000\u0000\u0273\u0275\u0001\u0000\u0000\u0000\u0274\u0272\u0001\u0000"+
"\u0000\u0000\u0275\u0277\u0007\u0005\u0000\u0000\u0276\u0272\u0001\u0000"+
"\u0000\u0000\u0276\u0277\u0001\u0000\u0000\u0000\u0277\u0279\u0001\u0000"+
"\u0000\u0000\u0278\u027a\u0007\u0001\u0000\u0000\u0279\u0278\u0001\u0000"+
"\u0000\u0000\u0279\u027a\u0001\u0000\u0000\u0000\u027al\u0001\u0000\u0000"+
"\u0000\u027b\u027c\u00050\u0000\u0000\u027c\u027d\u0007\u0007\u0000\u0000"+
"\u027d\u0285\u0007\b\u0000\u0000\u027e\u0280\u0007\t\u0000\u0000\u027f"+
"\u027e\u0001\u0000\u0000\u0000\u0280\u0283\u0001\u0000\u0000\u0000\u0281"+
"\u027f\u0001\u0000\u0000\u0000\u0281\u0282\u0001\u0000\u0000\u0000\u0282"+
"\u0284\u0001\u0000\u0000\u0000\u0283\u0281\u0001\u0000\u0000\u0000\u0284"+
"\u0286\u0007\b\u0000\u0000\u0285\u0281\u0001\u0000\u0000\u0000\u0285\u0286"+
"\u0001\u0000\u0000\u0000\u0286\u0288\u0001\u0000\u0000\u0000\u0287\u0289"+
"\u0007\u0001\u0000\u0000\u0288\u0287\u0001\u0000\u0000\u0000\u0288\u0289"+
"\u0001\u0000\u0000\u0000\u0289n\u0001\u0000\u0000\u0000\u028a\u028b\u0003"+
"\u00e9t\u0000\u028b\u028d\u0005.\u0000\u0000\u028c\u028e\u0003\u00e9t"+
"\u0000\u028d\u028c\u0001\u0000\u0000\u0000\u028d\u028e\u0001\u0000\u0000"+
"\u0000\u028e\u0292\u0001\u0000\u0000\u0000\u028f\u0290\u0005.\u0000\u0000"+
"\u0290\u0292\u0003\u00e9t\u0000\u0291\u028a\u0001\u0000\u0000\u0000\u0291"+
"\u028f\u0001\u0000\u0000\u0000\u0292\u0294\u0001\u0000\u0000\u0000\u0293"+
"\u0295\u0003\u00e1p\u0000\u0294\u0293\u0001\u0000\u0000\u0000\u0294\u0295"+
"\u0001\u0000\u0000\u0000\u0295\u0297\u0001\u0000\u0000\u0000\u0296\u0298"+
"\u0007\n\u0000\u0000\u0297\u0296\u0001\u0000\u0000\u0000\u0297\u0298\u0001"+
"\u0000\u0000\u0000\u0298\u02a2\u0001\u0000\u0000\u0000\u0299\u029f\u0003"+
"\u00e9t\u0000\u029a\u029c\u0003\u00e1p\u0000\u029b\u029d\u0007\n\u0000"+
"\u0000\u029c\u029b\u0001\u0000\u0000\u0000\u029c\u029d\u0001\u0000\u0000"+
"\u0000\u029d\u02a0\u0001\u0000\u0000\u0000\u029e\u02a0\u0007\n\u0000\u0000"+
"\u029f\u029a\u0001\u0000\u0000\u0000\u029f\u029e\u0001\u0000\u0000\u0000"+
"\u02a0\u02a2\u0001\u0000\u0000\u0000\u02a1\u0291\u0001\u0000\u0000\u0000"+
"\u02a1\u0299\u0001\u0000\u0000\u0000\u02a2p\u0001\u0000\u0000\u0000\u02a3"+
"\u02a4\u00050\u0000\u0000\u02a4\u02ae\u0007\u0002\u0000\u0000\u02a5\u02a7"+
"\u0003\u00e5r\u0000\u02a6\u02a8\u0005.\u0000\u0000\u02a7\u02a6\u0001\u0000"+
"\u0000\u0000\u02a7\u02a8\u0001\u0000\u0000\u0000\u02a8\u02af\u0001\u0000"+
"\u0000\u0000\u02a9\u02ab\u0003\u00e5r\u0000\u02aa\u02a9\u0001\u0000\u0000"+
"\u0000\u02aa\u02ab\u0001\u0000\u0000\u0000\u02ab\u02ac\u0001\u0000\u0000"+
"\u0000\u02ac\u02ad\u0005.\u0000\u0000\u02ad\u02af\u0003\u00e5r\u0000\u02ae"+
"\u02a5\u0001\u0000\u0000\u0000\u02ae\u02aa\u0001\u0000\u0000\u0000\u02af"+
"\u02b0\u0001\u0000\u0000\u0000\u02b0\u02b2\u0007\u000b\u0000\u0000\u02b1"+
"\u02b3\u0007\f\u0000\u0000\u02b2\u02b1\u0001\u0000\u0000\u0000\u02b2\u02b3"+
"\u0001\u0000\u0000\u0000\u02b3\u02b4\u0001\u0000\u0000\u0000\u02b4\u02b6"+
"\u0003\u00e9t\u0000\u02b5\u02b7\u0007\n\u0000\u0000\u02b6\u02b5\u0001"+
"\u0000\u0000\u0000\u02b6\u02b7\u0001\u0000\u0000\u0000\u02b7r\u0001\u0000"+
"\u0000\u0000\u02b8\u02b9\u0005t\u0000\u0000\u02b9\u02ba\u0005r\u0000\u0000"+
"\u02ba\u02bb\u0005u\u0000\u0000\u02bb\u02c2\u0005e\u0000\u0000\u02bc\u02bd"+
"\u0005f\u0000\u0000\u02bd\u02be\u0005a\u0000\u0000\u02be\u02bf\u0005l"+
"\u0000\u0000\u02bf\u02c0\u0005s\u0000\u0000\u02c0\u02c2\u0005e\u0000\u0000"+
"\u02c1\u02b8\u0001\u0000\u0000\u0000\u02c1\u02bc\u0001\u0000\u0000\u0000"+
"\u02c2t\u0001\u0000\u0000\u0000\u02c3\u02c6\u0005\'\u0000\u0000\u02c4"+
"\u02c7\b\r\u0000\u0000\u02c5\u02c7\u0003\u00e3q\u0000\u02c6\u02c4\u0001"+
"\u0000\u0000\u0000\u02c6\u02c5\u0001\u0000\u0000\u0000\u02c7\u02c8\u0001"+
"\u0000\u0000\u0000\u02c8\u02c9\u0005\'\u0000\u0000\u02c9v\u0001\u0000"+
"\u0000\u0000\u02ca\u02cf\u0005\"\u0000\u0000\u02cb\u02ce\b\u000e\u0000"+
"\u0000\u02cc\u02ce\u0003\u00e3q\u0000\u02cd\u02cb\u0001\u0000\u0000\u0000"+
"\u02cd\u02cc\u0001\u0000\u0000\u0000\u02ce\u02d1\u0001\u0000\u0000\u0000"+
"\u02cf\u02cd\u0001\u0000\u0000\u0000\u02cf\u02d0\u0001\u0000\u0000\u0000"+
"\u02d0\u02d2\u0001\u0000\u0000\u0000\u02d1\u02cf\u0001\u0000\u0000\u0000"+
"\u02d2\u02d3\u0005\"\u0000\u0000\u02d3x\u0001\u0000\u0000\u0000\u02d4"+
"\u02d5\u0005n\u0000\u0000\u02d5\u02d6\u0005u\u0000\u0000\u02d6\u02d7\u0005"+
"l\u0000\u0000\u02d7\u02d8\u0005l\u0000\u0000\u02d8z\u0001\u0000\u0000"+
"\u0000\u02d9\u02da\u0005(\u0000\u0000\u02da|\u0001\u0000\u0000\u0000\u02db"+
"\u02dc\u0005)\u0000\u0000\u02dc~\u0001\u0000\u0000\u0000\u02dd\u02de\u0005"+
"{\u0000\u0000\u02de\u0080\u0001\u0000\u0000\u0000\u02df\u02e0\u0005}\u0000"+
"\u0000\u02e0\u0082\u0001\u0000\u0000\u0000\u02e1\u02e2\u0005[\u0000\u0000"+
"\u02e2\u0084\u0001\u0000\u0000\u0000\u02e3\u02e4\u0005]\u0000\u0000\u02e4"+
"\u0086\u0001\u0000\u0000\u0000\u02e5\u02e6\u0005;\u0000\u0000\u02e6\u0088"+
"\u0001\u0000\u0000\u0000\u02e7\u02e8\u0005,\u0000\u0000\u02e8\u008a\u0001"+
"\u0000\u0000\u0000\u02e9\u02ea\u0005.\u0000\u0000\u02ea\u008c\u0001\u0000"+
"\u0000\u0000\u02eb\u02ec\u0005=\u0000\u0000\u02ec\u008e\u0001\u0000\u0000"+
"\u0000\u02ed\u02ee\u0005>\u0000\u0000\u02ee\u0090\u0001\u0000\u0000\u0000"+
"\u02ef\u02f0\u0005<\u0000\u0000\u02f0\u0092\u0001\u0000\u0000\u0000\u02f1"+
"\u02f2\u0005!\u0000\u0000\u02f2\u0094\u0001\u0000\u0000\u0000\u02f3\u02f4"+
"\u0005~\u0000\u0000\u02f4\u0096\u0001\u0000\u0000\u0000\u02f5\u02f6\u0005"+
"?\u0000\u0000\u02f6\u0098\u0001\u0000\u0000\u0000\u02f7\u02f8\u0005:\u0000"+
"\u0000\u02f8\u009a\u0001\u0000\u0000\u0000\u02f9\u02fa\u0005=\u0000\u0000"+
"\u02fa\u02fb\u0005=\u0000\u0000\u02fb\u009c\u0001\u0000\u0000\u0000\u02fc"+
"\u02fd\u0005<\u0000\u0000\u02fd\u02fe\u0005=\u0000\u0000\u02fe\u009e\u0001"+
"\u0000\u0000\u0000\u02ff\u0300\u0005>\u0000\u0000\u0300\u0301\u0005=\u0000"+
"\u0000\u0301\u00a0\u0001\u0000\u0000\u0000\u0302\u0303\u0005!\u0000\u0000"+
"\u0303\u0304\u0005=\u0000\u0000\u0304\u00a2\u0001\u0000\u0000\u0000\u0305"+
"\u0306\u0005&\u0000\u0000\u0306\u0307\u0005&\u0000\u0000\u0307\u00a4\u0001"+
"\u0000\u0000\u0000\u0308\u0309\u0005|\u0000\u0000\u0309\u030a\u0005|\u0000"+
"\u0000\u030a\u00a6\u0001\u0000\u0000\u0000\u030b\u030c\u0005+\u0000\u0000"+
"\u030c\u030d\u0005+\u0000\u0000\u030d\u00a8\u0001\u0000\u0000\u0000\u030e"+
"\u030f\u0005-\u0000\u0000\u030f\u0310\u0005-\u0000\u0000\u0310\u00aa\u0001"+
"\u0000\u0000\u0000\u0311\u0312\u0005+\u0000\u0000\u0312\u00ac\u0001\u0000"+
"\u0000\u0000\u0313\u0314\u0005-\u0000\u0000\u0314\u00ae\u0001\u0000\u0000"+
"\u0000\u0315\u0316\u0005*\u0000\u0000\u0316\u00b0\u0001\u0000\u0000\u0000"+
"\u0317\u0318\u0005/\u0000\u0000\u0318\u00b2\u0001\u0000\u0000\u0000\u0319"+
"\u031a\u0005&\u0000\u0000\u031a\u00b4\u0001\u0000\u0000\u0000\u031b\u031c"+
"\u0005|\u0000\u0000\u031c\u00b6\u0001\u0000\u0000\u0000\u031d\u031e\u0005"+
"^\u0000\u0000\u031e\u00b8\u0001\u0000\u0000\u0000\u031f\u0320\u0005%\u0000"+
"\u0000\u0320\u00ba\u0001\u0000\u0000\u0000\u0321\u0322\u0005+\u0000\u0000"+
"\u0322\u0323\u0005=\u0000\u0000\u0323\u00bc\u0001\u0000\u0000\u0000\u0324"+
"\u0325\u0005-\u0000\u0000\u0325\u0326\u0005=\u0000\u0000\u0326\u00be\u0001"+
"\u0000\u0000\u0000\u0327\u0328\u0005*\u0000\u0000\u0328\u0329\u0005=\u0000"+
"\u0000\u0329\u00c0\u0001\u0000\u0000\u0000\u032a\u032b\u0005/\u0000\u0000"+
"\u032b\u032c\u0005=\u0000\u0000\u032c\u00c2\u0001\u0000\u0000\u0000\u032d"+
"\u032e\u0005&\u0000\u0000\u032e\u032f\u0005=\u0000\u0000\u032f\u00c4\u0001"+
"\u0000\u0000\u0000\u0330\u0331\u0005|\u0000\u0000\u0331\u0332\u0005=\u0000"+
"\u0000\u0332\u00c6\u0001\u0000\u0000\u0000\u0333\u0334\u0005^\u0000\u0000"+
"\u0334\u0335\u0005=\u0000\u0000\u0335\u00c8\u0001\u0000\u0000\u0000\u0336"+
"\u0337\u0005%\u0000\u0000\u0337\u0338\u0005=\u0000\u0000\u0338\u00ca\u0001"+
"\u0000\u0000\u0000\u0339\u033a\u0005<\u0000\u0000\u033a\u033b\u0005<\u0000"+
"\u0000\u033b\u033c\u0005=\u0000\u0000\u033c\u00cc\u0001\u0000\u0000\u0000"+
"\u033d\u033e\u0005>\u0000\u0000\u033e\u033f\u0005>\u0000\u0000\u033f\u0340"+
"\u0005=\u0000\u0000\u0340\u00ce\u0001\u0000\u0000\u0000\u0341\u0342\u0005"+
">\u0000\u0000\u0342\u0343\u0005>\u0000\u0000\u0343\u0344\u0005>\u0000"+
"\u0000\u0344\u0345\u0005=\u0000\u0000\u0345\u00d0\u0001\u0000\u0000\u0000"+
"\u0346\u0347\u0005-\u0000\u0000\u0347\u0348\u0005>\u0000\u0000\u0348\u00d2"+
"\u0001\u0000\u0000\u0000\u0349\u034a\u0005:\u0000\u0000\u034a\u034b\u0005"+
":\u0000\u0000\u034b\u00d4\u0001\u0000\u0000\u0000\u034c\u034d\u0005@\u0000"+
"\u0000\u034d\u00d6\u0001\u0000\u0000\u0000\u034e\u034f\u0005.\u0000\u0000"+
"\u034f\u0350\u0005.\u0000\u0000\u0350\u0351\u0005.\u0000\u0000\u0351\u00d8"+
"\u0001\u0000\u0000\u0000\u0352\u0354\u0007\u000f\u0000\u0000\u0353\u0352"+
"\u0001\u0000\u0000\u0000\u0354\u0355\u0001\u0000\u0000\u0000\u0355\u0353"+
"\u0001\u0000\u0000\u0000\u0355\u0356\u0001\u0000\u0000\u0000\u0356\u0357"+
"\u0001\u0000\u0000\u0000\u0357\u0358\u0006l\u0000\u0000\u0358\u00da\u0001"+
"\u0000\u0000\u0000\u0359\u035a\u0005/\u0000\u0000\u035a\u035b\u0005*\u0000"+
"\u0000\u035b\u035f\u0001\u0000\u0000\u0000\u035c\u035e\t\u0000\u0000\u0000"+
"\u035d\u035c\u0001\u0000\u0000\u0000\u035e\u0361\u0001\u0000\u0000\u0000"+
"\u035f\u0360\u0001\u0000\u0000\u0000\u035f\u035d\u0001\u0000\u0000\u0000"+
"\u0360\u0362\u0001\u0000\u0000\u0000\u0361\u035f\u0001\u0000\u0000\u0000"+
"\u0362\u0363\u0005*\u0000\u0000\u0363\u0364\u0005/\u0000\u0000\u0364\u0365"+
"\u0001\u0000\u0000\u0000\u0365\u0366\u0006m\u0000\u0000\u0366\u00dc\u0001"+
"\u0000\u0000\u0000\u0367\u0368\u0005/\u0000\u0000\u0368\u0369\u0005/\u0000"+
"\u0000\u0369\u036d\u0001\u0000\u0000\u0000\u036a\u036c\b\u0010\u0000\u0000"+
"\u036b\u036a\u0001\u0000\u0000\u0000\u036c\u036f\u0001\u0000\u0000\u0000"+
"\u036d\u036b\u0001\u0000\u0000\u0000\u036d\u036e\u0001\u0000\u0000\u0000"+
"\u036e\u0370\u0001\u0000\u0000\u0000\u036f\u036d\u0001\u0000\u0000\u0000"+
"\u0370\u0371\u0006n\u0000\u0000\u0371\u00de\u0001\u0000\u0000\u0000\u0372"+
"\u0376\u0003\u00edv\u0000\u0373\u0375\u0003\u00ebu\u0000\u0374\u0373\u0001"+
"\u0000\u0000\u0000\u0375\u0378\u0001\u0000\u0000\u0000\u0376\u0374\u0001"+
"\u0000\u0000\u0000\u0376\u0377\u0001\u0000\u0000\u0000\u0377\u00e0\u0001"+
"\u0000\u0000\u0000\u0378\u0376\u0001\u0000\u0000\u0000\u0379\u037b\u0007"+
"\u0011\u0000\u0000\u037a\u037c\u0007\f\u0000\u0000\u037b\u037a\u0001\u0000"+
"\u0000\u0000\u037b\u037c\u0001\u0000\u0000\u0000\u037c\u037d\u0001\u0000"+
"\u0000\u0000\u037d\u037e\u0003\u00e9t\u0000\u037e\u00e2\u0001\u0000\u0000"+
"\u0000\u037f\u0380\u0005\\\u0000\u0000\u0380\u0395\u0007\u0012\u0000\u0000"+
"\u0381\u0386\u0005\\\u0000\u0000\u0382\u0384\u0007\u0013\u0000\u0000\u0383"+
"\u0382\u0001\u0000\u0000\u0000\u0383\u0384\u0001\u0000\u0000\u0000\u0384"+
"\u0385\u0001\u0000\u0000\u0000\u0385\u0387\u0007\u0005\u0000\u0000\u0386"+
"\u0383\u0001\u0000\u0000\u0000\u0386\u0387\u0001\u0000\u0000\u0000\u0387"+
"\u0388\u0001\u0000\u0000\u0000\u0388\u0395\u0007\u0005\u0000\u0000\u0389"+
"\u038b\u0005\\\u0000\u0000\u038a\u038c\u0005u\u0000\u0000\u038b\u038a"+
"\u0001\u0000\u0000\u0000\u038c\u038d\u0001\u0000\u0000\u0000\u038d\u038b"+
"\u0001\u0000\u0000\u0000\u038d\u038e\u0001\u0000\u0000\u0000\u038e\u038f"+
"\u0001\u0000\u0000\u0000\u038f\u0390\u0003\u00e7s\u0000\u0390\u0391\u0003"+
"\u00e7s\u0000\u0391\u0392\u0003\u00e7s\u0000\u0392\u0393\u0003\u00e7s"+
"\u0000\u0393\u0395\u0001\u0000\u0000\u0000\u0394\u037f\u0001\u0000\u0000"+
"\u0000\u0394\u0381\u0001\u0000\u0000\u0000\u0394\u0389\u0001\u0000\u0000"+
"\u0000\u0395\u00e4\u0001\u0000\u0000\u0000\u0396\u039f\u0003\u00e7s\u0000"+
"\u0397\u039a\u0003\u00e7s\u0000\u0398\u039a\u0005_\u0000\u0000\u0399\u0397"+
"\u0001\u0000\u0000\u0000\u0399\u0398\u0001\u0000\u0000\u0000\u039a\u039d"+
"\u0001\u0000\u0000\u0000\u039b\u0399\u0001\u0000\u0000\u0000\u039b\u039c"+
"\u0001\u0000\u0000\u0000\u039c\u039e\u0001\u0000\u0000\u0000\u039d\u039b"+
"\u0001\u0000\u0000\u0000\u039e\u03a0\u0003\u00e7s\u0000\u039f\u039b\u0001"+
"\u0000\u0000\u0000\u039f\u03a0\u0001\u0000\u0000\u0000\u03a0\u00e6\u0001"+
"\u0000\u0000\u0000\u03a1\u03a2\u0007\u0003\u0000\u0000\u03a2\u00e8\u0001"+
"\u0000\u0000\u0000\u03a3\u03ab\u0007\u0014\u0000\u0000\u03a4\u03a6\u0007"+
"\u0015\u0000\u0000\u03a5\u03a4\u0001\u0000\u0000\u0000\u03a6\u03a9\u0001"+
"\u0000\u0000\u0000\u03a7\u03a5\u0001\u0000\u0000\u0000\u03a7\u03a8\u0001"+
"\u0000\u0000\u0000\u03a8\u03aa\u0001\u0000\u0000\u0000\u03a9\u03a7\u0001"+
"\u0000\u0000\u0000\u03aa\u03ac\u0007\u0014\u0000\u0000\u03ab\u03a7\u0001"+
"\u0000\u0000\u0000\u03ab\u03ac\u0001\u0000\u0000\u0000\u03ac\u00ea\u0001"+
"\u0000\u0000\u0000\u03ad\u03b0\u0003\u00edv\u0000\u03ae\u03b0\u0007\u0014"+
"\u0000\u0000\u03af\u03ad\u0001\u0000\u0000\u0000\u03af\u03ae\u0001\u0000"+
"\u0000\u0000\u03b0\u00ec\u0001\u0000\u0000\u0000\u03b1\u03b6\u0007\u0016"+
"\u0000\u0000\u03b2\u03b6\b\u0017\u0000\u0000\u03b3\u03b4\u0007\u0018\u0000"+
"\u0000\u03b4\u03b6\u0007\u0019\u0000\u0000\u03b5\u03b1\u0001\u0000\u0000"+
"\u0000\u03b5\u03b2\u0001\u0000\u0000\u0000\u03b5\u03b3\u0001\u0000\u0000"+
"\u0000\u03b6\u00ee\u0001\u0000\u0000\u00000\u0000\u0249\u024e\u0251\u0253"+
"\u0256\u025e\u0262\u0265\u026b\u0272\u0276\u0279\u0281\u0285\u0288\u028d"+
"\u0291\u0294\u0297\u029c\u029f\u02a1\u02a7\u02aa\u02ae\u02b2\u02b6\u02c1"+
"\u02c6\u02cd\u02cf\u0355\u035f\u036d\u0376\u037b\u0383\u0386\u038d\u0394"+
"\u0399\u039b\u039f\u03a7\u03ab\u03af\u03b5\u0001\u0000\u0001\u0000";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
}
@@ -1,211 +0,0 @@
ABSTRACT=1
ASSERT=2
BOOLEAN=3
BREAK=4
BYTE=5
CASE=6
CATCH=7
CHAR=8
CLASS=9
CONST=10
CONTINUE=11
DEFAULT=12
DO=13
DOUBLE=14
ELSE=15
ENUM=16
EXTENDS=17
FINAL=18
FINALLY=19
FLOAT=20
FOR=21
IF=22
GOTO=23
IMPLEMENTS=24
IMPORT=25
INSTANCEOF=26
INT=27
INTERFACE=28
LONG=29
NATIVE=30
NEW=31
PACKAGE=32
PRIVATE=33
PROTECTED=34
PUBLIC=35
RETURN=36
SHORT=37
STATIC=38
STRICTFP=39
SUPER=40
SWITCH=41
SYNCHRONIZED=42
THIS=43
THROW=44
THROWS=45
TRANSIENT=46
TRY=47
VAR=48
VOID=49
VOLATILE=50
WHILE=51
DECIMAL_LITERAL=52
HEX_LITERAL=53
OCT_LITERAL=54
BINARY_LITERAL=55
FLOAT_LITERAL=56
HEX_FLOAT_LITERAL=57
BOOL_LITERAL=58
CHAR_LITERAL=59
STRING_LITERAL=60
NULL_LITERAL=61
LPAREN=62
RPAREN=63
LBRACE=64
RBRACE=65
LBRACK=66
RBRACK=67
SEMI=68
COMMA=69
DOT=70
ASSIGN=71
GT=72
LT=73
BANG=74
TILDE=75
QUESTION=76
COLON=77
EQUAL=78
LE=79
GE=80
NOTEQUAL=81
AND=82
OR=83
INC=84
DEC=85
ADD=86
SUB=87
MUL=88
DIV=89
BITAND=90
BITOR=91
CARET=92
MOD=93
ADD_ASSIGN=94
SUB_ASSIGN=95
MUL_ASSIGN=96
DIV_ASSIGN=97
AND_ASSIGN=98
OR_ASSIGN=99
XOR_ASSIGN=100
MOD_ASSIGN=101
LSHIFT_ASSIGN=102
RSHIFT_ASSIGN=103
URSHIFT_ASSIGN=104
ARROW=105
COLONCOLON=106
AT=107
ELLIPSIS=108
WS=109
BLOCK_COMMENT=110
LINE_COMMENT=111
IDENTIFIER=112
'abstract'=1
'assert'=2
'boolean'=3
'break'=4
'byte'=5
'case'=6
'catch'=7
'char'=8
'class'=9
'const'=10
'continue'=11
'default'=12
'do'=13
'double'=14
'else'=15
'enum'=16
'extends'=17
'final'=18
'finally'=19
'float'=20
'for'=21
'if'=22
'goto'=23
'implements'=24
'import'=25
'instanceof'=26
'int'=27
'interface'=28
'long'=29
'native'=30
'new'=31
'package'=32
'private'=33
'protected'=34
'public'=35
'return'=36
'short'=37
'static'=38
'strictfp'=39
'super'=40
'switch'=41
'synchronized'=42
'this'=43
'throw'=44
'throws'=45
'transient'=46
'try'=47
'var'=48
'void'=49
'volatile'=50
'while'=51
'null'=61
'('=62
')'=63
'{'=64
'}'=65
'['=66
']'=67
';'=68
','=69
'.'=70
'='=71
'>'=72
'<'=73
'!'=74
'~'=75
'?'=76
':'=77
'=='=78
'<='=79
'>='=80
'!='=81
'&&'=82
'||'=83
'++'=84
'--'=85
'+'=86
'-'=87
'*'=88
'/'=89
'&'=90
'|'=91
'^'=92
'%'=93
'+='=94
'-='=95
'*='=96
'/='=97
'&='=98
'|='=99
'^='=100
'%='=101
'<<='=102
'>>='=103
'>>>='=104
'->'=105
'::'=106
'@'=107
'...'=108
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
@@ -1,211 +0,0 @@
ABSTRACT=1
ASSERT=2
BOOLEAN=3
BREAK=4
BYTE=5
CASE=6
CATCH=7
CHAR=8
CLASS=9
CONST=10
CONTINUE=11
DEFAULT=12
DO=13
DOUBLE=14
ELSE=15
ENUM=16
EXTENDS=17
FINAL=18
FINALLY=19
FLOAT=20
FOR=21
IF=22
GOTO=23
IMPLEMENTS=24
IMPORT=25
INSTANCEOF=26
INT=27
INTERFACE=28
LONG=29
NATIVE=30
NEW=31
PACKAGE=32
PRIVATE=33
PROTECTED=34
PUBLIC=35
RETURN=36
SHORT=37
STATIC=38
STRICTFP=39
SUPER=40
SWITCH=41
SYNCHRONIZED=42
THIS=43
THROW=44
THROWS=45
TRANSIENT=46
TRY=47
VAR=48
VOID=49
VOLATILE=50
WHILE=51
DECIMAL_LITERAL=52
HEX_LITERAL=53
OCT_LITERAL=54
BINARY_LITERAL=55
FLOAT_LITERAL=56
HEX_FLOAT_LITERAL=57
BOOL_LITERAL=58
CHAR_LITERAL=59
STRING_LITERAL=60
NULL_LITERAL=61
LPAREN=62
RPAREN=63
LBRACE=64
RBRACE=65
LBRACK=66
RBRACK=67
SEMI=68
COMMA=69
DOT=70
ASSIGN=71
GT=72
LT=73
BANG=74
TILDE=75
QUESTION=76
COLON=77
EQUAL=78
LE=79
GE=80
NOTEQUAL=81
AND=82
OR=83
INC=84
DEC=85
ADD=86
SUB=87
MUL=88
DIV=89
BITAND=90
BITOR=91
CARET=92
MOD=93
ADD_ASSIGN=94
SUB_ASSIGN=95
MUL_ASSIGN=96
DIV_ASSIGN=97
AND_ASSIGN=98
OR_ASSIGN=99
XOR_ASSIGN=100
MOD_ASSIGN=101
LSHIFT_ASSIGN=102
RSHIFT_ASSIGN=103
URSHIFT_ASSIGN=104
ARROW=105
COLONCOLON=106
AT=107
ELLIPSIS=108
WS=109
BLOCK_COMMENT=110
LINE_COMMENT=111
IDENTIFIER=112
'abstract'=1
'assert'=2
'boolean'=3
'break'=4
'byte'=5
'case'=6
'catch'=7
'char'=8
'class'=9
'const'=10
'continue'=11
'default'=12
'do'=13
'double'=14
'else'=15
'enum'=16
'extends'=17
'final'=18
'finally'=19
'float'=20
'for'=21
'if'=22
'goto'=23
'implements'=24
'import'=25
'instanceof'=26
'int'=27
'interface'=28
'long'=29
'native'=30
'new'=31
'package'=32
'private'=33
'protected'=34
'public'=35
'return'=36
'short'=37
'static'=38
'strictfp'=39
'super'=40
'switch'=41
'synchronized'=42
'this'=43
'throw'=44
'throws'=45
'transient'=46
'try'=47
'var'=48
'void'=49
'volatile'=50
'while'=51
'null'=61
'('=62
')'=63
'{'=64
'}'=65
'['=66
']'=67
';'=68
','=69
'.'=70
'='=71
'>'=72
'<'=73
'!'=74
'~'=75
'?'=76
':'=77
'=='=78
'<='=79
'>='=80
'!='=81
'&&'=82
'||'=83
'++'=84
'--'=85
'+'=86
'-'=87
'*'=88
'/'=89
'&'=90
'|'=91
'^'=92
'%'=93
'+='=94
'-='=95
'*='=96
'/='=97
'&='=98
'|='=99
'^='=100
'%='=101
'<<='=102
'>>='=103
'>>>='=104
'->'=105
'::'=106
'@'=107
'...'=108
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,750 +0,0 @@
// Generated from
// /home/itsaky/Projects/Android/AndroidIDE/lexers/src/main/java/com/itsaky/androidide/lexers/java/JavaParser.g4 by ANTLR 4.10.1
package com.itsaky.androidide.lexers.java;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
/**
* This interface defines a complete generic visitor for a parse tree produced by {@link
* JavaParser}.
*
* @param <T> The return type of the visit operation. Use {@link Void} for operations with no return
* type.
*/
public interface JavaParserVisitor<T> extends ParseTreeVisitor<T> {
/**
* Visit a parse tree produced by {@link JavaParser#compilationUnit}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitCompilationUnit(JavaParser.CompilationUnitContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#packageDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitPackageDeclaration(JavaParser.PackageDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#importDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitImportDeclaration(JavaParser.ImportDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeDeclaration(JavaParser.TypeDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#modifier}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitModifier(JavaParser.ModifierContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#classOrInterfaceModifier}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitClassOrInterfaceModifier(JavaParser.ClassOrInterfaceModifierContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#variableModifier}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitVariableModifier(JavaParser.VariableModifierContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#classDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitClassDeclaration(JavaParser.ClassDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeParameters}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeParameters(JavaParser.TypeParametersContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeParameter}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeParameter(JavaParser.TypeParameterContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeBound}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeBound(JavaParser.TypeBoundContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#enumDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitEnumDeclaration(JavaParser.EnumDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#enumConstants}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitEnumConstants(JavaParser.EnumConstantsContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#enumConstant}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitEnumConstant(JavaParser.EnumConstantContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#enumBodyDeclarations}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitEnumBodyDeclarations(JavaParser.EnumBodyDeclarationsContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#interfaceDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInterfaceDeclaration(JavaParser.InterfaceDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#classBody}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitClassBody(JavaParser.ClassBodyContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#interfaceBody}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInterfaceBody(JavaParser.InterfaceBodyContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#classBodyDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitClassBodyDeclaration(JavaParser.ClassBodyDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#memberDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitMemberDeclaration(JavaParser.MemberDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#methodDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitMethodDeclaration(JavaParser.MethodDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#methodBody}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitMethodBody(JavaParser.MethodBodyContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeTypeOrVoid}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeTypeOrVoid(JavaParser.TypeTypeOrVoidContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#genericMethodDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitGenericMethodDeclaration(JavaParser.GenericMethodDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#genericConstructorDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitGenericConstructorDeclaration(JavaParser.GenericConstructorDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#constructorDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitConstructorDeclaration(JavaParser.ConstructorDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#fieldDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitFieldDeclaration(JavaParser.FieldDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#interfaceBodyDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInterfaceBodyDeclaration(JavaParser.InterfaceBodyDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#interfaceMemberDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInterfaceMemberDeclaration(JavaParser.InterfaceMemberDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#constDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitConstDeclaration(JavaParser.ConstDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#constantDeclarator}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitConstantDeclarator(JavaParser.ConstantDeclaratorContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#interfaceMethodDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInterfaceMethodDeclaration(JavaParser.InterfaceMethodDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#interfaceMethodModifier}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInterfaceMethodModifier(JavaParser.InterfaceMethodModifierContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#genericInterfaceMethodDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitGenericInterfaceMethodDeclaration(JavaParser.GenericInterfaceMethodDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#variableDeclarators}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitVariableDeclarators(JavaParser.VariableDeclaratorsContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#variableDeclarator}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitVariableDeclarator(JavaParser.VariableDeclaratorContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#variableDeclaratorId}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitVariableDeclaratorId(JavaParser.VariableDeclaratorIdContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#variableInitializer}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitVariableInitializer(JavaParser.VariableInitializerContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#arrayInitializer}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitArrayInitializer(JavaParser.ArrayInitializerContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#classOrInterfaceType}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitClassOrInterfaceType(JavaParser.ClassOrInterfaceTypeContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeArgument}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeArgument(JavaParser.TypeArgumentContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#qualifiedNameList}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitQualifiedNameList(JavaParser.QualifiedNameListContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#formalParameters}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitFormalParameters(JavaParser.FormalParametersContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#formalParameterList}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitFormalParameterList(JavaParser.FormalParameterListContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#formalParameter}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitFormalParameter(JavaParser.FormalParameterContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#lastFormalParameter}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitLastFormalParameter(JavaParser.LastFormalParameterContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#qualifiedName}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitQualifiedName(JavaParser.QualifiedNameContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#literal}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitLiteral(JavaParser.LiteralContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#integerLiteral}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitIntegerLiteral(JavaParser.IntegerLiteralContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#floatLiteral}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitFloatLiteral(JavaParser.FloatLiteralContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#altAnnotationQualifiedName}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAltAnnotationQualifiedName(JavaParser.AltAnnotationQualifiedNameContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#annotation}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAnnotation(JavaParser.AnnotationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#elementValuePairs}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitElementValuePairs(JavaParser.ElementValuePairsContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#elementValuePair}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitElementValuePair(JavaParser.ElementValuePairContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#elementValue}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitElementValue(JavaParser.ElementValueContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#elementValueArrayInitializer}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitElementValueArrayInitializer(JavaParser.ElementValueArrayInitializerContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#annotationTypeDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAnnotationTypeDeclaration(JavaParser.AnnotationTypeDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#annotationTypeBody}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAnnotationTypeBody(JavaParser.AnnotationTypeBodyContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#annotationTypeElementDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAnnotationTypeElementDeclaration(JavaParser.AnnotationTypeElementDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#annotationTypeElementRest}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAnnotationTypeElementRest(JavaParser.AnnotationTypeElementRestContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#annotationMethodOrConstantRest}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAnnotationMethodOrConstantRest(JavaParser.AnnotationMethodOrConstantRestContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#annotationMethodRest}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAnnotationMethodRest(JavaParser.AnnotationMethodRestContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#annotationConstantRest}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAnnotationConstantRest(JavaParser.AnnotationConstantRestContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#defaultValue}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDefaultValue(JavaParser.DefaultValueContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#block}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlock(JavaParser.BlockContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#blockStatement}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockStatement(JavaParser.BlockStatementContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#localVariableDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitLocalVariableDeclaration(JavaParser.LocalVariableDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#localTypeDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitLocalTypeDeclaration(JavaParser.LocalTypeDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#statement}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitStatement(JavaParser.StatementContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#catchClause}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitCatchClause(JavaParser.CatchClauseContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#catchType}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitCatchType(JavaParser.CatchTypeContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#finallyBlock}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitFinallyBlock(JavaParser.FinallyBlockContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#resourceSpecification}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitResourceSpecification(JavaParser.ResourceSpecificationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#resources}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitResources(JavaParser.ResourcesContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#resource}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitResource(JavaParser.ResourceContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#switchBlockStatementGroup}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitSwitchBlockStatementGroup(JavaParser.SwitchBlockStatementGroupContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#switchLabel}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitSwitchLabel(JavaParser.SwitchLabelContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#forControl}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitForControl(JavaParser.ForControlContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#forInit}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitForInit(JavaParser.ForInitContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#enhancedForControl}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitEnhancedForControl(JavaParser.EnhancedForControlContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#parExpression}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitParExpression(JavaParser.ParExpressionContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#expressionList}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitExpressionList(JavaParser.ExpressionListContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#methodCall}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitMethodCall(JavaParser.MethodCallContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#expression}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitExpression(JavaParser.ExpressionContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#lambdaExpression}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitLambdaExpression(JavaParser.LambdaExpressionContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#lambdaParameters}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitLambdaParameters(JavaParser.LambdaParametersContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#lambdaBody}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitLambdaBody(JavaParser.LambdaBodyContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#primary}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitPrimary(JavaParser.PrimaryContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#classType}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitClassType(JavaParser.ClassTypeContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#creator}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitCreator(JavaParser.CreatorContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#createdName}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitCreatedName(JavaParser.CreatedNameContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#innerCreator}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInnerCreator(JavaParser.InnerCreatorContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#arrayCreatorRest}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitArrayCreatorRest(JavaParser.ArrayCreatorRestContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#classCreatorRest}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitClassCreatorRest(JavaParser.ClassCreatorRestContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#explicitGenericInvocation}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitExplicitGenericInvocation(JavaParser.ExplicitGenericInvocationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeArgumentsOrDiamond}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeArgumentsOrDiamond(JavaParser.TypeArgumentsOrDiamondContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#nonWildcardTypeArgumentsOrDiamond}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitNonWildcardTypeArgumentsOrDiamond(JavaParser.NonWildcardTypeArgumentsOrDiamondContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#nonWildcardTypeArguments}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitNonWildcardTypeArguments(JavaParser.NonWildcardTypeArgumentsContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeList}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeList(JavaParser.TypeListContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeType}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeType(JavaParser.TypeTypeContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#primitiveType}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitPrimitiveType(JavaParser.PrimitiveTypeContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeArguments}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeArguments(JavaParser.TypeArgumentsContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#superSuffix}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitSuperSuffix(JavaParser.SuperSuffixContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#explicitGenericInvocationSuffix}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitExplicitGenericInvocationSuffix(JavaParser.ExplicitGenericInvocationSuffixContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#arguments}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitArguments(JavaParser.ArgumentsContext ctx);
}
@@ -1,69 +0,0 @@
token literal names:
null
null
null
null
null
null
null
null
null
null
null
null
null
'\n'
':'
'-'
'.'
'/'
null
token symbolic names:
null
Tag
Priority
Message
Date
Time
ProcessAndThread
Digit
Digits
CapsLetter
Identifier
Identifiers
WhiteSpace
NewLine
COLON
DASH
DOT
SLASH
Unknown
rule names:
Date
Time
ProcessAndThread
Digit
Digits
CapsLetter
Letter
Identifier
Identifiers
WhiteSpace
NewLine
COLON
DASH
DOT
SLASH
Unknown
channel names:
DEFAULT_TOKEN_CHANNEL
HIDDEN
mode names:
DEFAULT_MODE
atn:
[4, 0, 18, 103, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 4, 4, 60, 8, 4, 11, 4, 12, 4, 61, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 70, 8, 6, 1, 7, 1, 7, 1, 8, 4, 8, 75, 8, 8, 11, 8, 12, 8, 76, 1, 8, 1, 8, 1, 9, 4, 9, 82, 8, 9, 11, 9, 12, 9, 83, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, 1, 14, 1, 15, 5, 15, 97, 8, 15, 10, 15, 12, 15, 100, 9, 15, 1, 15, 1, 15, 1, 98, 0, 16, 1, 4, 3, 5, 5, 6, 7, 7, 9, 8, 11, 9, 13, 0, 15, 10, 17, 11, 19, 12, 21, 13, 23, 14, 25, 15, 27, 16, 29, 17, 31, 18, 1, 0, 6, 4, 0, 36, 36, 65, 90, 95, 95, 97, 122, 2, 0, 0, 127, 55296, 56319, 1, 0, 55296, 56319, 1, 0, 56320, 57343, 5, 0, 46, 46, 48, 57, 65, 90, 95, 95, 97, 122, 2, 0, 9, 9, 32, 32, 107, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 1, 33, 1, 0, 0, 0, 3, 39, 1, 0, 0, 0, 5, 52, 1, 0, 0, 0, 7, 56, 1, 0, 0, 0, 9, 59, 1, 0, 0, 0, 11, 63, 1, 0, 0, 0, 13, 69, 1, 0, 0, 0, 15, 71, 1, 0, 0, 0, 17, 74, 1, 0, 0, 0, 19, 81, 1, 0, 0, 0, 21, 85, 1, 0, 0, 0, 23, 87, 1, 0, 0, 0, 25, 89, 1, 0, 0, 0, 27, 91, 1, 0, 0, 0, 29, 93, 1, 0, 0, 0, 31, 98, 1, 0, 0, 0, 33, 34, 3, 7, 3, 0, 34, 35, 3, 7, 3, 0, 35, 36, 3, 25, 12, 0, 36, 37, 3, 7, 3, 0, 37, 38, 3, 7, 3, 0, 38, 2, 1, 0, 0, 0, 39, 40, 3, 7, 3, 0, 40, 41, 3, 7, 3, 0, 41, 42, 3, 23, 11, 0, 42, 43, 3, 7, 3, 0, 43, 44, 3, 7, 3, 0, 44, 45, 3, 23, 11, 0, 45, 46, 3, 7, 3, 0, 46, 47, 3, 7, 3, 0, 47, 48, 3, 27, 13, 0, 48, 49, 3, 7, 3, 0, 49, 50, 3, 7, 3, 0, 50, 51, 3, 7, 3, 0, 51, 4, 1, 0, 0, 0, 52, 53, 3, 9, 4, 0, 53, 54, 3, 29, 14, 0, 54, 55, 3, 9, 4, 0, 55, 6, 1, 0, 0, 0, 56, 57, 2, 48, 57, 0, 57, 8, 1, 0, 0, 0, 58, 60, 3, 7, 3, 0, 59, 58, 1, 0, 0, 0, 60, 61, 1, 0, 0, 0, 61, 59, 1, 0, 0, 0, 61, 62, 1, 0, 0, 0, 62, 10, 1, 0, 0, 0, 63, 64, 2, 65, 90, 0, 64, 12, 1, 0, 0, 0, 65, 70, 7, 0, 0, 0, 66, 70, 8, 1, 0, 0, 67, 68, 7, 2, 0, 0, 68, 70, 7, 3, 0, 0, 69, 65, 1, 0, 0, 0, 69, 66, 1, 0, 0, 0, 69, 67, 1, 0, 0, 0, 70, 14, 1, 0, 0, 0, 71, 72, 7, 4, 0, 0, 72, 16, 1, 0, 0, 0, 73, 75, 3, 15, 7, 0, 74, 73, 1, 0, 0, 0, 75, 76, 1, 0, 0, 0, 76, 74, 1, 0, 0, 0, 76, 77, 1, 0, 0, 0, 77, 78, 1, 0, 0, 0, 78, 79, 6, 8, 0, 0, 79, 18, 1, 0, 0, 0, 80, 82, 7, 5, 0, 0, 81, 80, 1, 0, 0, 0, 82, 83, 1, 0, 0, 0, 83, 81, 1, 0, 0, 0, 83, 84, 1, 0, 0, 0, 84, 20, 1, 0, 0, 0, 85, 86, 5, 10, 0, 0, 86, 22, 1, 0, 0, 0, 87, 88, 5, 58, 0, 0, 88, 24, 1, 0, 0, 0, 89, 90, 5, 45, 0, 0, 90, 26, 1, 0, 0, 0, 91, 92, 5, 46, 0, 0, 92, 28, 1, 0, 0, 0, 93, 94, 5, 47, 0, 0, 94, 30, 1, 0, 0, 0, 95, 97, 9, 0, 0, 0, 96, 95, 1, 0, 0, 0, 97, 100, 1, 0, 0, 0, 98, 99, 1, 0, 0, 0, 98, 96, 1, 0, 0, 0, 99, 101, 1, 0, 0, 0, 100, 98, 1, 0, 0, 0, 101, 102, 3, 21, 10, 0, 102, 32, 1, 0, 0, 0, 6, 0, 61, 69, 76, 83, 98, 1, 1, 8, 0]
@@ -1,215 +0,0 @@
// Generated from /home/itsaky/Projects/Android/AndroidIDE/lexers/src/main/java/com/itsaky/androidide/lexers/log/LogLineLexer.g4 by ANTLR 4.10.1
package com.itsaky.androidide.lexers.log;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class LogLineLexer extends Lexer {
static { RuntimeMetaData.checkVersion("4.10.1", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
Tag=1, Priority=2, Message=3, Date=4, Time=5, ProcessAndThread=6, Digit=7,
Digits=8, CapsLetter=9, Identifier=10, Identifiers=11, WhiteSpace=12,
NewLine=13, COLON=14, DASH=15, DOT=16, SLASH=17, Unknown=18;
public static String[] channelNames = {
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
};
public static String[] modeNames = {
"DEFAULT_MODE"
};
private static String[] makeRuleNames() {
return new String[] {
"Date", "Time", "ProcessAndThread", "Digit", "Digits", "CapsLetter",
"Letter", "Identifier", "Identifiers", "WhiteSpace", "NewLine", "COLON",
"DASH", "DOT", "SLASH", "Unknown"
};
}
public static final String[] ruleNames = makeRuleNames();
private static String[] makeLiteralNames() {
return new String[] {
null, null, null, null, null, null, null, null, null, null, null, null,
null, "'\\n'", "':'", "'-'", "'.'", "'/'"
};
}
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static String[] makeSymbolicNames() {
return new String[] {
null, "Tag", "Priority", "Message", "Date", "Time", "ProcessAndThread",
"Digit", "Digits", "CapsLetter", "Identifier", "Identifiers", "WhiteSpace",
"NewLine", "COLON", "DASH", "DOT", "SLASH", "Unknown"
};
}
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated
public static final String[] tokenNames;
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
static boolean tagSeen = false;
static boolean prioritySeen = false;
public LogLineLexer(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
@Override
public String getGrammarFileName() { return "LogLineLexer.g4"; }
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public String getSerializedATN() { return _serializedATN; }
@Override
public String[] getChannelNames() { return channelNames; }
@Override
public String[] getModeNames() { return modeNames; }
@Override
public ATN getATN() { return _ATN; }
@Override
public void action(RuleContext _localctx, int ruleIndex, int actionIndex) {
switch (ruleIndex) {
case 8:
Identifiers_action((RuleContext)_localctx, actionIndex);
break;
}
}
private void Identifiers_action(RuleContext _localctx, int actionIndex) {
switch (actionIndex) {
case 0:
if (tagSeen) {
setType(Priority);
prioritySeen = true;
} else if (prioritySeen) {
setType(Message)
prioritySeen = true;
} else {
setType(Tag);
tagSeen = true;
}
break;
}
}
public static final String _serializedATN =
"\u0004\u0000\u0012g\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002\u0001"+
"\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004"+
"\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007"+
"\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b"+
"\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002"+
"\u000f\u0007\u000f\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001"+
"\u0000\u0001\u0000\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+
"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+
"\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002\u0001\u0002\u0001"+
"\u0002\u0001\u0003\u0001\u0003\u0001\u0004\u0004\u0004<\b\u0004\u000b"+
"\u0004\f\u0004=\u0001\u0005\u0001\u0005\u0001\u0006\u0001\u0006\u0001"+
"\u0006\u0001\u0006\u0003\u0006F\b\u0006\u0001\u0007\u0001\u0007\u0001"+
"\b\u0004\bK\b\b\u000b\b\f\bL\u0001\b\u0001\b\u0001\t\u0004\tR\b\t\u000b"+
"\t\f\tS\u0001\n\u0001\n\u0001\u000b\u0001\u000b\u0001\f\u0001\f\u0001"+
"\r\u0001\r\u0001\u000e\u0001\u000e\u0001\u000f\u0005\u000fa\b\u000f\n"+
"\u000f\f\u000fd\t\u000f\u0001\u000f\u0001\u000f\u0001b\u0000\u0010\u0001"+
"\u0004\u0003\u0005\u0005\u0006\u0007\u0007\t\b\u000b\t\r\u0000\u000f\n"+
"\u0011\u000b\u0013\f\u0015\r\u0017\u000e\u0019\u000f\u001b\u0010\u001d"+
"\u0011\u001f\u0012\u0001\u0000\u0006\u0004\u0000$$AZ__az\u0002\u0000\u0000"+
"\u007f\u8000\ud800\u8000\udbff\u0001\u0000\u8000\ud800\u8000\udbff\u0001"+
"\u0000\u8000\udc00\u8000\udfff\u0005\u0000..09AZ__az\u0002\u0000\t\t "+
" k\u0000\u0001\u0001\u0000\u0000\u0000\u0000\u0003\u0001\u0000\u0000\u0000"+
"\u0000\u0005\u0001\u0000\u0000\u0000\u0000\u0007\u0001\u0000\u0000\u0000"+
"\u0000\t\u0001\u0000\u0000\u0000\u0000\u000b\u0001\u0000\u0000\u0000\u0000"+
"\u000f\u0001\u0000\u0000\u0000\u0000\u0011\u0001\u0000\u0000\u0000\u0000"+
"\u0013\u0001\u0000\u0000\u0000\u0000\u0015\u0001\u0000\u0000\u0000\u0000"+
"\u0017\u0001\u0000\u0000\u0000\u0000\u0019\u0001\u0000\u0000\u0000\u0000"+
"\u001b\u0001\u0000\u0000\u0000\u0000\u001d\u0001\u0000\u0000\u0000\u0000"+
"\u001f\u0001\u0000\u0000\u0000\u0001!\u0001\u0000\u0000\u0000\u0003\'"+
"\u0001\u0000\u0000\u0000\u00054\u0001\u0000\u0000\u0000\u00078\u0001\u0000"+
"\u0000\u0000\t;\u0001\u0000\u0000\u0000\u000b?\u0001\u0000\u0000\u0000"+
"\rE\u0001\u0000\u0000\u0000\u000fG\u0001\u0000\u0000\u0000\u0011J\u0001"+
"\u0000\u0000\u0000\u0013Q\u0001\u0000\u0000\u0000\u0015U\u0001\u0000\u0000"+
"\u0000\u0017W\u0001\u0000\u0000\u0000\u0019Y\u0001\u0000\u0000\u0000\u001b"+
"[\u0001\u0000\u0000\u0000\u001d]\u0001\u0000\u0000\u0000\u001fb\u0001"+
"\u0000\u0000\u0000!\"\u0003\u0007\u0003\u0000\"#\u0003\u0007\u0003\u0000"+
"#$\u0003\u0019\f\u0000$%\u0003\u0007\u0003\u0000%&\u0003\u0007\u0003\u0000"+
"&\u0002\u0001\u0000\u0000\u0000\'(\u0003\u0007\u0003\u0000()\u0003\u0007"+
"\u0003\u0000)*\u0003\u0017\u000b\u0000*+\u0003\u0007\u0003\u0000+,\u0003"+
"\u0007\u0003\u0000,-\u0003\u0017\u000b\u0000-.\u0003\u0007\u0003\u0000"+
"./\u0003\u0007\u0003\u0000/0\u0003\u001b\r\u000001\u0003\u0007\u0003\u0000"+
"12\u0003\u0007\u0003\u000023\u0003\u0007\u0003\u00003\u0004\u0001\u0000"+
"\u0000\u000045\u0003\t\u0004\u000056\u0003\u001d\u000e\u000067\u0003\t"+
"\u0004\u00007\u0006\u0001\u0000\u0000\u000089\u000209\u00009\b\u0001\u0000"+
"\u0000\u0000:<\u0003\u0007\u0003\u0000;:\u0001\u0000\u0000\u0000<=\u0001"+
"\u0000\u0000\u0000=;\u0001\u0000\u0000\u0000=>\u0001\u0000\u0000\u0000"+
">\n\u0001\u0000\u0000\u0000?@\u0002AZ\u0000@\f\u0001\u0000\u0000\u0000"+
"AF\u0007\u0000\u0000\u0000BF\b\u0001\u0000\u0000CD\u0007\u0002\u0000\u0000"+
"DF\u0007\u0003\u0000\u0000EA\u0001\u0000\u0000\u0000EB\u0001\u0000\u0000"+
"\u0000EC\u0001\u0000\u0000\u0000F\u000e\u0001\u0000\u0000\u0000GH\u0007"+
"\u0004\u0000\u0000H\u0010\u0001\u0000\u0000\u0000IK\u0003\u000f\u0007"+
"\u0000JI\u0001\u0000\u0000\u0000KL\u0001\u0000\u0000\u0000LJ\u0001\u0000"+
"\u0000\u0000LM\u0001\u0000\u0000\u0000MN\u0001\u0000\u0000\u0000NO\u0006"+
"\b\u0000\u0000O\u0012\u0001\u0000\u0000\u0000PR\u0007\u0005\u0000\u0000"+
"QP\u0001\u0000\u0000\u0000RS\u0001\u0000\u0000\u0000SQ\u0001\u0000\u0000"+
"\u0000ST\u0001\u0000\u0000\u0000T\u0014\u0001\u0000\u0000\u0000UV\u0005"+
"\n\u0000\u0000V\u0016\u0001\u0000\u0000\u0000WX\u0005:\u0000\u0000X\u0018"+
"\u0001\u0000\u0000\u0000YZ\u0005-\u0000\u0000Z\u001a\u0001\u0000\u0000"+
"\u0000[\\\u0005.\u0000\u0000\\\u001c\u0001\u0000\u0000\u0000]^\u0005/"+
"\u0000\u0000^\u001e\u0001\u0000\u0000\u0000_a\t\u0000\u0000\u0000`_\u0001"+
"\u0000\u0000\u0000ad\u0001\u0000\u0000\u0000bc\u0001\u0000\u0000\u0000"+
"b`\u0001\u0000\u0000\u0000ce\u0001\u0000\u0000\u0000db\u0001\u0000\u0000"+
"\u0000ef\u0003\u0015\n\u0000f \u0001\u0000\u0000\u0000\u0006\u0000=EL"+
"Sb\u0001\u0001\b\u0000";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
}
@@ -1,23 +0,0 @@
Tag=1
Priority=2
Message=3
Date=4
Time=5
ProcessAndThread=6
Digit=7
Digits=8
CapsLetter=9
Identifier=10
Identifiers=11
WhiteSpace=12
NewLine=13
COLON=14
DASH=15
DOT=16
SLASH=17
Unknown=18
'\n'=13
':'=14
'-'=15
'.'=16
'/'=17
File diff suppressed because one or more lines are too long
@@ -1,365 +0,0 @@
// Generated from
// /home/itsaky/Projects/Android/AndroidIDE/lexers/src/main/java/com/itsaky/androidide/lexers/xml/XMLLexer.g4 by ANTLR 4.10.1
package com.itsaky.androidide.lexers.xml;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class XMLLexer extends Lexer {
public static final int COLON = 1,
NOT = 2,
DASH = 3,
COMMENT_START = 4,
COMMENT_END = 5,
COMMENT = 6,
CDATA = 7,
DTD = 8,
EntityRef = 9,
CharRef = 10,
SEA_WS = 11,
OPEN = 12,
OPEN_SLASH = 13,
XMLDeclOpen = 14,
TEXT = 15,
CLOSE = 16,
SPECIAL_CLOSE = 17,
SLASH_CLOSE = 18,
SLASH = 19,
EQUALS = 20,
STRING = 21,
Name = 22,
S = 23,
PI = 24;
public static final int INSIDE = 1, PROC_INSTR = 2;
public static final String[] ruleNames = makeRuleNames();
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated public static final String[] tokenNames;
public static final String _serializedATN =
"\u0004\u0000\u0018\u0101\u0006\uffff\uffff\u0006\uffff\uffff\u0006\uffff"
+ "\uffff\u0002\u0000\u0007\u0000\u0002\u0001\u0007\u0001\u0002\u0002\u0007"
+ "\u0002\u0002\u0003\u0007\u0003\u0002\u0004\u0007\u0004\u0002\u0005\u0007"
+ "\u0005\u0002\u0006\u0007\u0006\u0002\u0007\u0007\u0007\u0002\b\u0007\b"
+ "\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b\u0007\u000b\u0002\f\u0007"
+ "\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002\u000f\u0007\u000f\u0002"
+ "\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0002\u0012\u0007\u0012\u0002"
+ "\u0013\u0007\u0013\u0002\u0014\u0007\u0014\u0002\u0015\u0007\u0015\u0002"
+ "\u0016\u0007\u0016\u0002\u0017\u0007\u0017\u0002\u0018\u0007\u0018\u0002"
+ "\u0019\u0007\u0019\u0002\u001a\u0007\u001a\u0002\u001b\u0007\u001b\u0002"
+ "\u001c\u0007\u001c\u0002\u001d\u0007\u001d\u0001\u0000\u0001\u0000\u0001"
+ "\u0001\u0001\u0001\u0001\u0002\u0001\u0002\u0001\u0003\u0001\u0003\u0001"
+ "\u0003\u0001\u0003\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0004\u0001"
+ "\u0004\u0001\u0005\u0001\u0005\u0005\u0005Q\b\u0005\n\u0005\f\u0005T\t"
+ "\u0005\u0001\u0005\u0001\u0005\u0001\u0006\u0001\u0006\u0001\u0006\u0001"
+ "\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001"
+ "\u0006\u0001\u0006\u0005\u0006c\b\u0006\n\u0006\f\u0006f\t\u0006\u0001"
+ "\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0007\u0001\u0007\u0001"
+ "\u0007\u0001\u0007\u0005\u0007p\b\u0007\n\u0007\f\u0007s\t\u0007\u0001"
+ "\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\b\u0001\b\u0001\b\u0001"
+ "\b\u0001\t\u0001\t\u0001\t\u0001\t\u0004\t\u0081\b\t\u000b\t\f\t\u0082"
+ "\u0001\t\u0001\t\u0001\t\u0001\t\u0001\t\u0001\t\u0001\t\u0004\t\u008c"
+ "\b\t\u000b\t\f\t\u008d\u0001\t\u0001\t\u0003\t\u0092\b\t\u0001\n\u0001"
+ "\n\u0003\n\u0096\b\n\u0001\n\u0004\n\u0099\b\n\u000b\n\f\n\u009a\u0001"
+ "\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\f\u0001\f\u0001\f\u0001"
+ "\f\u0001\f\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001"
+ "\r\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001"
+ "\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000f\u0004\u000f\u00b9"
+ "\b\u000f\u000b\u000f\f\u000f\u00ba\u0001\u0010\u0001\u0010\u0001\u0010"
+ "\u0001\u0010\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011"
+ "\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0013"
+ "\u0001\u0013\u0001\u0014\u0001\u0014\u0001\u0015\u0001\u0015\u0005\u0015"
+ "\u00d1\b\u0015\n\u0015\f\u0015\u00d4\t\u0015\u0001\u0015\u0001\u0015\u0001"
+ "\u0015\u0005\u0015\u00d9\b\u0015\n\u0015\f\u0015\u00dc\t\u0015\u0001\u0015"
+ "\u0003\u0015\u00df\b\u0015\u0001\u0016\u0001\u0016\u0005\u0016\u00e3\b"
+ "\u0016\n\u0016\f\u0016\u00e6\t\u0016\u0001\u0017\u0001\u0017\u0001\u0017"
+ "\u0001\u0017\u0001\u0018\u0001\u0018\u0001\u0019\u0001\u0019\u0001\u001a"
+ "\u0001\u001a\u0001\u001a\u0001\u001a\u0003\u001a\u00f4\b\u001a\u0001\u001b"
+ "\u0003\u001b\u00f7\b\u001b\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c"
+ "\u0001\u001c\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0003Rdq"
+ "\u0000\u001e\u0003\u0001\u0005\u0002\u0007\u0003\t\u0004\u000b\u0005\r"
+ "\u0006\u000f\u0007\u0011\b\u0013\t\u0015\n\u0017\u000b\u0019\f\u001b\r"
+ "\u001d\u000e\u001f\u0000!\u000f#\u0010%\u0011\'\u0012)\u0013+\u0014-\u0015"
+ "/\u00161\u00173\u00005\u00007\u00009\u0000;\u0018=\u0000\u0003\u0000\u0001"
+ "\u0002\n\u0002\u0000\t\t \u0002\u0000&&<<\u0002\u0000\"\"<<\u0002\u0000"
+ "\'\'<<\u0003\u0000\t\n\r\r \u0003\u000009AFaf\u0001\u000009\u0002\u0000"
+ "-.__\u0003\u0000\u00b7\u00b7\u0300\u036f\u203f\u2040\b\u0000::AZaz\u2070"
+ "\u218f\u2c00\u2fef\u3001\u8000\ud7ff\u8000\uf900\u8000\ufdcf\u8000\ufdf0"
+ "\u8000\ufffd\u010b\u0000\u0003\u0001\u0000\u0000\u0000\u0000\u0005\u0001"
+ "\u0000\u0000\u0000\u0000\u0007\u0001\u0000\u0000\u0000\u0000\t\u0001\u0000"
+ "\u0000\u0000\u0000\u000b\u0001\u0000\u0000\u0000\u0000\r\u0001\u0000\u0000"
+ "\u0000\u0000\u000f\u0001\u0000\u0000\u0000\u0000\u0011\u0001\u0000\u0000"
+ "\u0000\u0000\u0013\u0001\u0000\u0000\u0000\u0000\u0015\u0001\u0000\u0000"
+ "\u0000\u0000\u0017\u0001\u0000\u0000\u0000\u0000\u0019\u0001\u0000\u0000"
+ "\u0000\u0000\u001b\u0001\u0000\u0000\u0000\u0000\u001d\u0001\u0000\u0000"
+ "\u0000\u0000\u001f\u0001\u0000\u0000\u0000\u0000!\u0001\u0000\u0000\u0000"
+ "\u0001#\u0001\u0000\u0000\u0000\u0001%\u0001\u0000\u0000\u0000\u0001\'"
+ "\u0001\u0000\u0000\u0000\u0001)\u0001\u0000\u0000\u0000\u0001+\u0001\u0000"
+ "\u0000\u0000\u0001-\u0001\u0000\u0000\u0000\u0001/\u0001\u0000\u0000\u0000"
+ "\u00011\u0001\u0000\u0000\u0000\u0002;\u0001\u0000\u0000\u0000\u0002="
+ "\u0001\u0000\u0000\u0000\u0003?\u0001\u0000\u0000\u0000\u0005A\u0001\u0000"
+ "\u0000\u0000\u0007C\u0001\u0000\u0000\u0000\tE\u0001\u0000\u0000\u0000"
+ "\u000bJ\u0001\u0000\u0000\u0000\rN\u0001\u0000\u0000\u0000\u000fW\u0001"
+ "\u0000\u0000\u0000\u0011k\u0001\u0000\u0000\u0000\u0013x\u0001\u0000\u0000"
+ "\u0000\u0015\u0091\u0001\u0000\u0000\u0000\u0017\u0098\u0001\u0000\u0000"
+ "\u0000\u0019\u009c\u0001\u0000\u0000\u0000\u001b\u00a0\u0001\u0000\u0000"
+ "\u0000\u001d\u00a5\u0001\u0000\u0000\u0000\u001f\u00af\u0001\u0000\u0000"
+ "\u0000!\u00b8\u0001\u0000\u0000\u0000#\u00bc\u0001\u0000\u0000\u0000%"
+ "\u00c0\u0001\u0000\u0000\u0000\'\u00c5\u0001\u0000\u0000\u0000)\u00ca"
+ "\u0001\u0000\u0000\u0000+\u00cc\u0001\u0000\u0000\u0000-\u00de\u0001\u0000"
+ "\u0000\u0000/\u00e0\u0001\u0000\u0000\u00001\u00e7\u0001\u0000\u0000\u0000"
+ "3\u00eb\u0001\u0000\u0000\u00005\u00ed\u0001\u0000\u0000\u00007\u00f3"
+ "\u0001\u0000\u0000\u00009\u00f6\u0001\u0000\u0000\u0000;\u00f8\u0001\u0000"
+ "\u0000\u0000=\u00fd\u0001\u0000\u0000\u0000?@\u0005:\u0000\u0000@\u0004"
+ "\u0001\u0000\u0000\u0000AB\u0005!\u0000\u0000B\u0006\u0001\u0000\u0000"
+ "\u0000CD\u0005-\u0000\u0000D\b\u0001\u0000\u0000\u0000EF\u0005<\u0000"
+ "\u0000FG\u0003\u0005\u0001\u0000GH\u0003\u0007\u0002\u0000HI\u0003\u0007"
+ "\u0002\u0000I\n\u0001\u0000\u0000\u0000JK\u0003\u0007\u0002\u0000KL\u0003"
+ "\u0007\u0002\u0000LM\u0005>\u0000\u0000M\f\u0001\u0000\u0000\u0000NR\u0003"
+ "\t\u0003\u0000OQ\t\u0000\u0000\u0000PO\u0001\u0000\u0000\u0000QT\u0001"
+ "\u0000\u0000\u0000RS\u0001\u0000\u0000\u0000RP\u0001\u0000\u0000\u0000"
+ "SU\u0001\u0000\u0000\u0000TR\u0001\u0000\u0000\u0000UV\u0003\u000b\u0004"
+ "\u0000V\u000e\u0001\u0000\u0000\u0000WX\u0005<\u0000\u0000XY\u0005!\u0000"
+ "\u0000YZ\u0005[\u0000\u0000Z[\u0005C\u0000\u0000[\\\u0005D\u0000\u0000"
+ "\\]\u0005A\u0000\u0000]^\u0005T\u0000\u0000^_\u0005A\u0000\u0000_`\u0005"
+ "[\u0000\u0000`d\u0001\u0000\u0000\u0000ac\t\u0000\u0000\u0000ba\u0001"
+ "\u0000\u0000\u0000cf\u0001\u0000\u0000\u0000de\u0001\u0000\u0000\u0000"
+ "db\u0001\u0000\u0000\u0000eg\u0001\u0000\u0000\u0000fd\u0001\u0000\u0000"
+ "\u0000gh\u0005]\u0000\u0000hi\u0005]\u0000\u0000ij\u0005>\u0000\u0000"
+ "j\u0010\u0001\u0000\u0000\u0000kl\u0005<\u0000\u0000lm\u0005!\u0000\u0000"
+ "mq\u0001\u0000\u0000\u0000np\t\u0000\u0000\u0000on\u0001\u0000\u0000\u0000"
+ "ps\u0001\u0000\u0000\u0000qr\u0001\u0000\u0000\u0000qo\u0001\u0000\u0000"
+ "\u0000rt\u0001\u0000\u0000\u0000sq\u0001\u0000\u0000\u0000tu\u0005>\u0000"
+ "\u0000uv\u0001\u0000\u0000\u0000vw\u0006\u0007\u0000\u0000w\u0012\u0001"
+ "\u0000\u0000\u0000xy\u0005&\u0000\u0000yz\u0003/\u0016\u0000z{\u0005;"
+ "\u0000\u0000{\u0014\u0001\u0000\u0000\u0000|}\u0005&\u0000\u0000}~\u0005"
+ "#\u0000\u0000~\u0080\u0001\u0000\u0000\u0000\u007f\u0081\u00035\u0019"
+ "\u0000\u0080\u007f\u0001\u0000\u0000\u0000\u0081\u0082\u0001\u0000\u0000"
+ "\u0000\u0082\u0080\u0001\u0000\u0000\u0000\u0082\u0083\u0001\u0000\u0000"
+ "\u0000\u0083\u0084\u0001\u0000\u0000\u0000\u0084\u0085\u0005;\u0000\u0000"
+ "\u0085\u0092\u0001\u0000\u0000\u0000\u0086\u0087\u0005&\u0000\u0000\u0087"
+ "\u0088\u0005#\u0000\u0000\u0088\u0089\u0005x\u0000\u0000\u0089\u008b\u0001"
+ "\u0000\u0000\u0000\u008a\u008c\u00033\u0018\u0000\u008b\u008a\u0001\u0000"
+ "\u0000\u0000\u008c\u008d\u0001\u0000\u0000\u0000\u008d\u008b\u0001\u0000"
+ "\u0000\u0000\u008d\u008e\u0001\u0000\u0000\u0000\u008e\u008f\u0001\u0000"
+ "\u0000\u0000\u008f\u0090\u0005;\u0000\u0000\u0090\u0092\u0001\u0000\u0000"
+ "\u0000\u0091|\u0001\u0000\u0000\u0000\u0091\u0086\u0001\u0000\u0000\u0000"
+ "\u0092\u0016\u0001\u0000\u0000\u0000\u0093\u0099\u0007\u0000\u0000\u0000"
+ "\u0094\u0096\u0005\r\u0000\u0000\u0095\u0094\u0001\u0000\u0000\u0000\u0095"
+ "\u0096\u0001\u0000\u0000\u0000\u0096\u0097\u0001\u0000\u0000\u0000\u0097"
+ "\u0099\u0005\n\u0000\u0000\u0098\u0093\u0001\u0000\u0000\u0000\u0098\u0095"
+ "\u0001\u0000\u0000\u0000\u0099\u009a\u0001\u0000\u0000\u0000\u009a\u0098"
+ "\u0001\u0000\u0000\u0000\u009a\u009b\u0001\u0000\u0000\u0000\u009b\u0018"
+ "\u0001\u0000\u0000\u0000\u009c\u009d\u0005<\u0000\u0000\u009d\u009e\u0001"
+ "\u0000\u0000\u0000\u009e\u009f\u0006\u000b\u0001\u0000\u009f\u001a\u0001"
+ "\u0000\u0000\u0000\u00a0\u00a1\u0005<\u0000\u0000\u00a1\u00a2\u0005/\u0000"
+ "\u0000\u00a2\u00a3\u0001\u0000\u0000\u0000\u00a3\u00a4\u0006\f\u0001\u0000"
+ "\u00a4\u001c\u0001\u0000\u0000\u0000\u00a5\u00a6\u0005<\u0000\u0000\u00a6"
+ "\u00a7\u0005?\u0000\u0000\u00a7\u00a8\u0005x\u0000\u0000\u00a8\u00a9\u0005"
+ "m\u0000\u0000\u00a9\u00aa\u0005l\u0000\u0000\u00aa\u00ab\u0001\u0000\u0000"
+ "\u0000\u00ab\u00ac\u00031\u0017\u0000\u00ac\u00ad\u0001\u0000\u0000\u0000"
+ "\u00ad\u00ae\u0006\r\u0001\u0000\u00ae\u001e\u0001\u0000\u0000\u0000\u00af"
+ "\u00b0\u0005<\u0000\u0000\u00b0\u00b1\u0005?\u0000\u0000\u00b1\u00b2\u0001"
+ "\u0000\u0000\u0000\u00b2\u00b3\u0003/\u0016\u0000\u00b3\u00b4\u0001\u0000"
+ "\u0000\u0000\u00b4\u00b5\u0006\u000e\u0002\u0000\u00b5\u00b6\u0006\u000e"
+ "\u0003\u0000\u00b6 \u0001\u0000\u0000\u0000\u00b7\u00b9\b\u0001\u0000"
+ "\u0000\u00b8\u00b7\u0001\u0000\u0000\u0000\u00b9\u00ba\u0001\u0000\u0000"
+ "\u0000\u00ba\u00b8\u0001\u0000\u0000\u0000\u00ba\u00bb\u0001\u0000\u0000"
+ "\u0000\u00bb\"\u0001\u0000\u0000\u0000\u00bc\u00bd\u0005>\u0000\u0000"
+ "\u00bd\u00be\u0001\u0000\u0000\u0000\u00be\u00bf\u0006\u0010\u0004\u0000"
+ "\u00bf$\u0001\u0000\u0000\u0000\u00c0\u00c1\u0005?\u0000\u0000\u00c1\u00c2"
+ "\u0005>\u0000\u0000\u00c2\u00c3\u0001\u0000\u0000\u0000\u00c3\u00c4\u0006"
+ "\u0011\u0004\u0000\u00c4&\u0001\u0000\u0000\u0000\u00c5\u00c6\u0005/\u0000"
+ "\u0000\u00c6\u00c7\u0005>\u0000\u0000\u00c7\u00c8\u0001\u0000\u0000\u0000"
+ "\u00c8\u00c9\u0006\u0012\u0004\u0000\u00c9(\u0001\u0000\u0000\u0000\u00ca"
+ "\u00cb\u0005/\u0000\u0000\u00cb*\u0001\u0000\u0000\u0000\u00cc\u00cd\u0005"
+ "=\u0000\u0000\u00cd,\u0001\u0000\u0000\u0000\u00ce\u00d2\u0005\"\u0000"
+ "\u0000\u00cf\u00d1\b\u0002\u0000\u0000\u00d0\u00cf\u0001\u0000\u0000\u0000"
+ "\u00d1\u00d4\u0001\u0000\u0000\u0000\u00d2\u00d0\u0001\u0000\u0000\u0000"
+ "\u00d2\u00d3\u0001\u0000\u0000\u0000\u00d3\u00d5\u0001\u0000\u0000\u0000"
+ "\u00d4\u00d2\u0001\u0000\u0000\u0000\u00d5\u00df\u0005\"\u0000\u0000\u00d6"
+ "\u00da\u0005\'\u0000\u0000\u00d7\u00d9\b\u0003\u0000\u0000\u00d8\u00d7"
+ "\u0001\u0000\u0000\u0000\u00d9\u00dc\u0001\u0000\u0000\u0000\u00da\u00d8"
+ "\u0001\u0000\u0000\u0000\u00da\u00db\u0001\u0000\u0000\u0000\u00db\u00dd"
+ "\u0001\u0000\u0000\u0000\u00dc\u00da\u0001\u0000\u0000\u0000\u00dd\u00df"
+ "\u0005\'\u0000\u0000\u00de\u00ce\u0001\u0000\u0000\u0000\u00de\u00d6\u0001"
+ "\u0000\u0000\u0000\u00df.\u0001\u0000\u0000\u0000\u00e0\u00e4\u00039\u001b"
+ "\u0000\u00e1\u00e3\u00037\u001a\u0000\u00e2\u00e1\u0001\u0000\u0000\u0000"
+ "\u00e3\u00e6\u0001\u0000\u0000\u0000\u00e4\u00e2\u0001\u0000\u0000\u0000"
+ "\u00e4\u00e5\u0001\u0000\u0000\u0000\u00e50\u0001\u0000\u0000\u0000\u00e6"
+ "\u00e4\u0001\u0000\u0000\u0000\u00e7\u00e8\u0007\u0004\u0000\u0000\u00e8"
+ "\u00e9\u0001\u0000\u0000\u0000\u00e9\u00ea\u0006\u0017\u0000\u0000\u00ea"
+ "2\u0001\u0000\u0000\u0000\u00eb\u00ec\u0007\u0005\u0000\u0000\u00ec4\u0001"
+ "\u0000\u0000\u0000\u00ed\u00ee\u0007\u0006\u0000\u0000\u00ee6\u0001\u0000"
+ "\u0000\u0000\u00ef\u00f4\u00039\u001b\u0000\u00f0\u00f4\u0007\u0007\u0000"
+ "\u0000\u00f1\u00f4\u00035\u0019\u0000\u00f2\u00f4\u0007\b\u0000\u0000"
+ "\u00f3\u00ef\u0001\u0000\u0000\u0000\u00f3\u00f0\u0001\u0000\u0000\u0000"
+ "\u00f3\u00f1\u0001\u0000\u0000\u0000\u00f3\u00f2\u0001\u0000\u0000\u0000"
+ "\u00f48\u0001\u0000\u0000\u0000\u00f5\u00f7\u0007\t\u0000\u0000\u00f6"
+ "\u00f5\u0001\u0000\u0000\u0000\u00f7:\u0001\u0000\u0000\u0000\u00f8\u00f9"
+ "\u0005?\u0000\u0000\u00f9\u00fa\u0005>\u0000\u0000\u00fa\u00fb\u0001\u0000"
+ "\u0000\u0000\u00fb\u00fc\u0006\u001c\u0004\u0000\u00fc<\u0001\u0000\u0000"
+ "\u0000\u00fd\u00fe\t\u0000\u0000\u0000\u00fe\u00ff\u0001\u0000\u0000\u0000"
+ "\u00ff\u0100\u0006\u001d\u0002\u0000\u0100>\u0001\u0000\u0000\u0000\u0013"
+ "\u0000\u0001\u0002Rdq\u0082\u008d\u0091\u0095\u0098\u009a\u00ba\u00d2"
+ "\u00da\u00de\u00e4\u00f3\u00f6\u0005\u0006\u0000\u0000\u0005\u0001\u0000"
+ "\u0003\u0000\u0000\u0005\u0002\u0000\u0004\u0000\u0000";
public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray());
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache();
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
public static String[] channelNames = {"DEFAULT_TOKEN_CHANNEL", "HIDDEN"};
public static String[] modeNames = {"DEFAULT_MODE", "INSIDE", "PROC_INSTR"};
static {
RuntimeMetaData.checkVersion("4.10.1", RuntimeMetaData.VERSION);
}
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
public XMLLexer(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
}
private static String[] makeRuleNames() {
return new String[] {
"COLON",
"NOT",
"DASH",
"COMMENT_START",
"COMMENT_END",
"COMMENT",
"CDATA",
"DTD",
"EntityRef",
"CharRef",
"SEA_WS",
"OPEN",
"OPEN_SLASH",
"XMLDeclOpen",
"SPECIAL_OPEN",
"TEXT",
"CLOSE",
"SPECIAL_CLOSE",
"SLASH_CLOSE",
"SLASH",
"EQUALS",
"STRING",
"Name",
"S",
"HEXDIGIT",
"DIGIT",
"NameChar",
"NameStartChar",
"PI",
"IGNORE"
};
}
private static String[] makeLiteralNames() {
return new String[] {
null, "':'", "'!'", "'-'", null, null, null, null, null, null, null, null, "'<'", "'</'",
null, null, "'>'", null, "'/>'", "'/'", "'='"
};
}
private static String[] makeSymbolicNames() {
return new String[] {
null,
"COLON",
"NOT",
"DASH",
"COMMENT_START",
"COMMENT_END",
"COMMENT",
"CDATA",
"DTD",
"EntityRef",
"CharRef",
"SEA_WS",
"OPEN",
"OPEN_SLASH",
"XMLDeclOpen",
"TEXT",
"CLOSE",
"SPECIAL_CLOSE",
"SLASH_CLOSE",
"SLASH",
"EQUALS",
"STRING",
"Name",
"S",
"PI"
};
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public String getGrammarFileName() {
return "XMLLexer.g4";
}
@Override
public String[] getRuleNames() {
return ruleNames;
}
@Override
public String getSerializedATN() {
return _serializedATN;
}
@Override
public String[] getChannelNames() {
return channelNames;
}
@Override
public String[] getModeNames() {
return modeNames;
}
@Override
public ATN getATN() {
return _ATN;
}
}
@@ -1,33 +0,0 @@
COLON=1
NOT=2
DASH=3
COMMENT_START=4
COMMENT_END=5
COMMENT=6
CDATA=7
DTD=8
EntityRef=9
CharRef=10
SEA_WS=11
OPEN=12
OPEN_SLASH=13
XMLDeclOpen=14
TEXT=15
CLOSE=16
SPECIAL_CLOSE=17
SLASH_CLOSE=18
SLASH=19
EQUALS=20
STRING=21
Name=22
S=23
PI=24
':'=1
'!'=2
'-'=3
'<'=12
'</'=13
'>'=16
'/>'=18
'/'=19
'='=20
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
@@ -1,264 +0,0 @@
IntegerLiteral=1
CharacterLiteral=2
FloatingLiteral=3
StringLiteral=4
BooleanLiteral=5
PointerLiteral=6
UserDefinedLiteral=7
MultiLineMacro=8
Directive=9
Alignas=10
Alignof=11
Asm=12
Auto=13
Bool=14
Break=15
Case=16
Catch=17
Char=18
Char16=19
Char32=20
Class=21
Const=22
Constexpr=23
Const_cast=24
Continue=25
Decltype=26
Default=27
Delete=28
Do=29
Double=30
Dynamic_cast=31
Else=32
Enum=33
Explicit=34
Export=35
Extern=36
False_=37
Final=38
Float=39
For=40
Friend=41
Goto=42
If=43
Inline=44
Int=45
Long=46
Mutable=47
Namespace=48
New=49
Noexcept=50
Nullptr=51
Operator=52
Override=53
Private=54
Protected=55
Public=56
Register=57
Reinterpret_cast=58
Return=59
Short=60
Signed=61
Sizeof=62
Static=63
Static_assert=64
Static_cast=65
Struct=66
Switch=67
Template=68
This=69
Thread_local=70
Throw=71
True_=72
Try=73
Typedef=74
Typeid_=75
Typename_=76
Union=77
Unsigned=78
Using=79
Virtual=80
Void=81
Volatile=82
Wchar=83
While=84
LeftParen=85
RightParen=86
LeftBracket=87
RightBracket=88
LeftBrace=89
RightBrace=90
Plus=91
Minus=92
Star=93
Div=94
Mod=95
Caret=96
And=97
Or=98
Tilde=99
Not=100
Assign=101
Less=102
Greater=103
PlusAssign=104
MinusAssign=105
StarAssign=106
DivAssign=107
ModAssign=108
XorAssign=109
AndAssign=110
OrAssign=111
LeftShiftAssign=112
RightShiftAssign=113
Equal=114
NotEqual=115
LessEqual=116
GreaterEqual=117
AndAnd=118
OrOr=119
PlusPlus=120
MinusMinus=121
Comma=122
ArrowStar=123
Arrow=124
Question=125
Colon=126
Doublecolon=127
Semi=128
Dot=129
DotStar=130
Ellipsis=131
Identifier=132
DecimalLiteral=133
OctalLiteral=134
HexadecimalLiteral=135
BinaryLiteral=136
Integersuffix=137
UserDefinedIntegerLiteral=138
UserDefinedFloatingLiteral=139
UserDefinedStringLiteral=140
UserDefinedCharacterLiteral=141
Whitespace=142
Newline=143
BlockComment=144
LineComment=145
'alignas'=10
'alignof'=11
'asm'=12
'auto'=13
'bool'=14
'break'=15
'case'=16
'catch'=17
'char'=18
'char16_t'=19
'char32_t'=20
'class'=21
'const'=22
'constexpr'=23
'const_cast'=24
'continue'=25
'decltype'=26
'default'=27
'delete'=28
'do'=29
'double'=30
'dynamic_cast'=31
'else'=32
'enum'=33
'explicit'=34
'export'=35
'extern'=36
'false'=37
'final'=38
'float'=39
'for'=40
'friend'=41
'goto'=42
'if'=43
'inline'=44
'int'=45
'long'=46
'mutable'=47
'namespace'=48
'new'=49
'noexcept'=50
'nullptr'=51
'operator'=52
'override'=53
'private'=54
'protected'=55
'public'=56
'register'=57
'reinterpret_cast'=58
'return'=59
'short'=60
'signed'=61
'sizeof'=62
'static'=63
'static_assert'=64
'static_cast'=65
'struct'=66
'switch'=67
'template'=68
'this'=69
'thread_local'=70
'throw'=71
'true'=72
'try'=73
'typedef'=74
'typeid'=75
'typename'=76
'union'=77
'unsigned'=78
'using'=79
'virtual'=80
'void'=81
'volatile'=82
'wchar_t'=83
'while'=84
'('=85
')'=86
'['=87
']'=88
'{'=89
'}'=90
'+'=91
'-'=92
'*'=93
'/'=94
'%'=95
'^'=96
'&'=97
'|'=98
'~'=99
'='=101
'<'=102
'>'=103
'+='=104
'-='=105
'*='=106
'/='=107
'%='=108
'^='=109
'&='=110
'|='=111
'<<='=112
'>>='=113
'=='=114
'!='=115
'<='=116
'>='=117
'++'=120
'--'=121
','=122
'->*'=123
'->'=124
'?'=125
':'=126
'::'=127
';'=128
'.'=129
'.*'=130
'...'=131
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
@@ -1,264 +0,0 @@
IntegerLiteral=1
CharacterLiteral=2
FloatingLiteral=3
StringLiteral=4
BooleanLiteral=5
PointerLiteral=6
UserDefinedLiteral=7
MultiLineMacro=8
Directive=9
Alignas=10
Alignof=11
Asm=12
Auto=13
Bool=14
Break=15
Case=16
Catch=17
Char=18
Char16=19
Char32=20
Class=21
Const=22
Constexpr=23
Const_cast=24
Continue=25
Decltype=26
Default=27
Delete=28
Do=29
Double=30
Dynamic_cast=31
Else=32
Enum=33
Explicit=34
Export=35
Extern=36
False_=37
Final=38
Float=39
For=40
Friend=41
Goto=42
If=43
Inline=44
Int=45
Long=46
Mutable=47
Namespace=48
New=49
Noexcept=50
Nullptr=51
Operator=52
Override=53
Private=54
Protected=55
Public=56
Register=57
Reinterpret_cast=58
Return=59
Short=60
Signed=61
Sizeof=62
Static=63
Static_assert=64
Static_cast=65
Struct=66
Switch=67
Template=68
This=69
Thread_local=70
Throw=71
True_=72
Try=73
Typedef=74
Typeid_=75
Typename_=76
Union=77
Unsigned=78
Using=79
Virtual=80
Void=81
Volatile=82
Wchar=83
While=84
LeftParen=85
RightParen=86
LeftBracket=87
RightBracket=88
LeftBrace=89
RightBrace=90
Plus=91
Minus=92
Star=93
Div=94
Mod=95
Caret=96
And=97
Or=98
Tilde=99
Not=100
Assign=101
Less=102
Greater=103
PlusAssign=104
MinusAssign=105
StarAssign=106
DivAssign=107
ModAssign=108
XorAssign=109
AndAssign=110
OrAssign=111
LeftShiftAssign=112
RightShiftAssign=113
Equal=114
NotEqual=115
LessEqual=116
GreaterEqual=117
AndAnd=118
OrOr=119
PlusPlus=120
MinusMinus=121
Comma=122
ArrowStar=123
Arrow=124
Question=125
Colon=126
Doublecolon=127
Semi=128
Dot=129
DotStar=130
Ellipsis=131
Identifier=132
DecimalLiteral=133
OctalLiteral=134
HexadecimalLiteral=135
BinaryLiteral=136
Integersuffix=137
UserDefinedIntegerLiteral=138
UserDefinedFloatingLiteral=139
UserDefinedStringLiteral=140
UserDefinedCharacterLiteral=141
Whitespace=142
Newline=143
BlockComment=144
LineComment=145
'alignas'=10
'alignof'=11
'asm'=12
'auto'=13
'bool'=14
'break'=15
'case'=16
'catch'=17
'char'=18
'char16_t'=19
'char32_t'=20
'class'=21
'const'=22
'constexpr'=23
'const_cast'=24
'continue'=25
'decltype'=26
'default'=27
'delete'=28
'do'=29
'double'=30
'dynamic_cast'=31
'else'=32
'enum'=33
'explicit'=34
'export'=35
'extern'=36
'false'=37
'final'=38
'float'=39
'for'=40
'friend'=41
'goto'=42
'if'=43
'inline'=44
'int'=45
'long'=46
'mutable'=47
'namespace'=48
'new'=49
'noexcept'=50
'nullptr'=51
'operator'=52
'override'=53
'private'=54
'protected'=55
'public'=56
'register'=57
'reinterpret_cast'=58
'return'=59
'short'=60
'signed'=61
'sizeof'=62
'static'=63
'static_assert'=64
'static_cast'=65
'struct'=66
'switch'=67
'template'=68
'this'=69
'thread_local'=70
'throw'=71
'true'=72
'try'=73
'typedef'=74
'typeid'=75
'typename'=76
'union'=77
'unsigned'=78
'using'=79
'virtual'=80
'void'=81
'volatile'=82
'wchar_t'=83
'while'=84
'('=85
')'=86
'['=87
']'=88
'{'=89
'}'=90
'+'=91
'-'=92
'*'=93
'/'=94
'%'=95
'^'=96
'&'=97
'|'=98
'~'=99
'='=101
'<'=102
'>'=103
'+='=104
'-='=105
'*='=106
'/='=107
'%='=108
'^='=109
'&='=110
'|='=111
'<<='=112
'>>='=113
'=='=114
'!='=115
'<='=116
'>='=117
'++'=120
'--'=121
','=122
'->*'=123
'->'=124
'?'=125
':'=126
'::'=127
';'=128
'.'=129
'.*'=130
'...'=131
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,12 +0,0 @@
#!/bin/bash
set -eu
# Usage:
# find * -type d -exec ./gen.sh {} \;
cd $1
dir_name=$(basename $(pwd))
echo "Generating lexer and parser for $dir_name..."
antlr4 -o . -lib . -listener -visitor -package com.itsaky.androidide.lexers.$dir_name *.g4
cd - >/dev/null 2>&1
File diff suppressed because one or more lines are too long
@@ -1,907 +0,0 @@
// Generated from GroovyLexer.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.groovy;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.RuntimeMetaData;
import org.antlr.v4.runtime.Vocabulary;
import org.antlr.v4.runtime.VocabularyImpl;
import org.antlr.v4.runtime.atn.ATN;
import org.antlr.v4.runtime.atn.ATNDeserializer;
import org.antlr.v4.runtime.atn.LexerATNSimulator;
import org.antlr.v4.runtime.atn.PredictionContextCache;
import org.antlr.v4.runtime.dfa.DFA;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class GroovyLexer extends Lexer {
public static final int ABSTRACT = 1,
ASSERT = 2,
BOOLEAN = 3,
BREAK = 4,
BYTE = 5,
CASE = 6,
CATCH = 7,
CHAR = 8,
CLASS = 9,
CONST = 10,
CONTINUE = 11,
DEFAULT = 12,
DO = 13,
DOUBLE = 14,
ELSE = 15,
ENUM = 16,
EXTENDS = 17,
FINAL = 18,
FINALLY = 19,
FLOAT = 20,
FOR = 21,
IF = 22,
GOTO = 23,
IMPLEMENTS = 24,
IMPORT = 25,
INSTANCEOF = 26,
INT = 27,
INTERFACE = 28,
LONG = 29,
NATIVE = 30,
NEW = 31,
PACKAGE = 32,
PRIVATE = 33,
PROTECTED = 34,
PUBLIC = 35,
RETURN = 36,
SHORT = 37,
STATIC = 38,
STRICTFP = 39,
SUPER = 40,
SWITCH = 41,
SYNCHRONIZED = 42,
THIS = 43,
THROW = 44,
THROWS = 45,
TRANSIENT = 46,
TRY = 47,
VOID = 48,
VOLATILE = 49,
WHILE = 50,
DECIMAL_LITERAL = 51,
HEX_LITERAL = 52,
OCT_LITERAL = 53,
BINARY_LITERAL = 54,
FLOAT_LITERAL = 55,
HEX_FLOAT_LITERAL = 56,
BOOL_LITERAL = 57,
CHAR_LITERAL = 58,
SINGLE_QUOTE_STRING = 59,
STRING_LITERAL = 60,
NULL_LITERAL = 61,
LPAREN = 62,
RPAREN = 63,
LBRACE = 64,
RBRACE = 65,
LBRACK = 66,
RBRACK = 67,
SEMI = 68,
COMMA = 69,
DOT = 70,
ASSIGN = 71,
GT = 72,
LT = 73,
BANG = 74,
TILDE = 75,
QUESTION = 76,
COLON = 77,
EQUAL = 78,
LE = 79,
GE = 80,
NOTEQUAL = 81,
AND = 82,
OR = 83,
INC = 84,
DEC = 85,
ADD = 86,
SUB = 87,
MUL = 88,
DIV = 89,
BITAND = 90,
BITOR = 91,
CARET = 92,
MOD = 93,
ADD_ASSIGN = 94,
SUB_ASSIGN = 95,
MUL_ASSIGN = 96,
DIV_ASSIGN = 97,
AND_ASSIGN = 98,
OR_ASSIGN = 99,
XOR_ASSIGN = 100,
MOD_ASSIGN = 101,
LSHIFT_ASSIGN = 102,
RSHIFT_ASSIGN = 103,
URSHIFT_ASSIGN = 104,
ARROW = 105,
COLONCOLON = 106,
AT = 107,
ELLIPSIS = 108,
WS = 109,
COMMENT = 110,
LINE_COMMENT = 111,
IDENTIFIER = 112;
public static final String[] ruleNames = makeRuleNames();
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated public static final String[] tokenNames;
public static final String _serializedATN =
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2r\u03bf\b\1\4\2\t"
+ "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"
+ "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"
+ "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"
+ "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"
+ "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"
+ ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"
+ "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="
+ "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"
+ "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"
+ "\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"
+ "`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t"
+ "k\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4"
+ "w\tw\4x\tx\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3"
+ "\3\3\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\5\3\6\3\6\3"
+ "\6\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\b\3\b\3\t\3\t\3\t\3\t"
+ "\3\t\3\n\3\n\3\n\3\n\3\n\3\n\3\13\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f"
+ "\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16"
+ "\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20\3\21\3\21"
+ "\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\23\3\23\3\23"
+ "\3\23\3\23\3\23\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3\25"
+ "\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\30\3\30\3\30\3\30"
+ "\3\30\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\32\3\32"
+ "\3\32\3\32\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33"
+ "\3\33\3\33\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35"
+ "\3\35\3\35\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37\3\37\3\37"
+ "\3 \3 \3 \3 \3!\3!\3!\3!\3!\3!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3"
+ "#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3$\3$\3$\3$\3$\3$\3$\3%\3%\3%\3%\3%\3%\3"
+ "%\3&\3&\3&\3&\3&\3&\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3(\3(\3"
+ "(\3(\3)\3)\3)\3)\3)\3)\3*\3*\3*\3*\3*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3+\3"
+ "+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3-\3-\3-\3-\3-\3-\3.\3.\3.\3.\3.\3.\3.\3"
+ "/\3/\3/\3/\3/\3/\3/\3/\3/\3/\3\60\3\60\3\60\3\60\3\61\3\61\3\61\3\61\3"
+ "\61\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\63\3\63\3\63\3\63\3"
+ "\63\3\63\3\64\3\64\3\64\5\64\u0248\n\64\3\64\6\64\u024b\n\64\r\64\16\64"
+ "\u024c\3\64\5\64\u0250\n\64\5\64\u0252\n\64\3\64\5\64\u0255\n\64\3\65"
+ "\3\65\3\65\3\65\7\65\u025b\n\65\f\65\16\65\u025e\13\65\3\65\5\65\u0261"
+ "\n\65\3\65\5\65\u0264\n\65\3\66\3\66\7\66\u0268\n\66\f\66\16\66\u026b"
+ "\13\66\3\66\3\66\7\66\u026f\n\66\f\66\16\66\u0272\13\66\3\66\5\66\u0275"
+ "\n\66\3\66\5\66\u0278\n\66\3\67\3\67\3\67\3\67\7\67\u027e\n\67\f\67\16"
+ "\67\u0281\13\67\3\67\5\67\u0284\n\67\3\67\5\67\u0287\n\67\38\38\38\58"
+ "\u028c\n8\38\38\58\u0290\n8\38\58\u0293\n8\38\58\u0296\n8\38\38\38\58"
+ "\u029b\n8\38\58\u029e\n8\58\u02a0\n8\39\39\39\39\59\u02a6\n9\39\59\u02a9"
+ "\n9\39\39\59\u02ad\n9\39\39\59\u02b1\n9\39\39\59\u02b5\n9\3:\3:\3:\3:"
+ "\3:\3:\3:\3:\3:\5:\u02c0\n:\3;\3;\3;\5;\u02c5\n;\3;\3;\3<\3<\3<\7<\u02cc"
+ "\n<\f<\16<\u02cf\13<\3<\3<\3=\3=\3=\7=\u02d6\n=\f=\16=\u02d9\13=\3=\3"
+ "=\3>\3>\3>\3>\3>\3?\3?\3@\3@\3A\3A\3B\3B\3C\3C\3D\3D\3E\3E\3F\3F\3G\3"
+ "G\3H\3H\3I\3I\3J\3J\3K\3K\3L\3L\3M\3M\3N\3N\3O\3O\3O\3P\3P\3P\3Q\3Q\3"
+ "Q\3R\3R\3R\3S\3S\3S\3T\3T\3T\3U\3U\3U\3V\3V\3V\3W\3W\3X\3X\3Y\3Y\3Z\3"
+ "Z\3[\3[\3\\\3\\\3]\3]\3^\3^\3_\3_\3_\3`\3`\3`\3a\3a\3a\3b\3b\3b\3c\3c"
+ "\3c\3d\3d\3d\3e\3e\3e\3f\3f\3f\3g\3g\3g\3g\3h\3h\3h\3h\3i\3i\3i\3i\3i"
+ "\3j\3j\3j\3k\3k\3k\3l\3l\3m\3m\3m\3m\3n\6n\u035c\nn\rn\16n\u035d\3n\3"
+ "n\3o\3o\3o\3o\7o\u0366\no\fo\16o\u0369\13o\3o\3o\3o\3o\3o\3p\3p\3p\3p"
+ "\7p\u0374\np\fp\16p\u0377\13p\3p\3p\3q\3q\7q\u037d\nq\fq\16q\u0380\13"
+ "q\3r\3r\5r\u0384\nr\3r\3r\3s\3s\3s\3s\5s\u038c\ns\3s\5s\u038f\ns\3s\3"
+ "s\3s\6s\u0394\ns\rs\16s\u0395\3s\3s\3s\3s\3s\5s\u039d\ns\3t\3t\3t\7t\u03a2"
+ "\nt\ft\16t\u03a5\13t\3t\5t\u03a8\nt\3u\3u\3v\3v\7v\u03ae\nv\fv\16v\u03b1"
+ "\13v\3v\5v\u03b4\nv\3w\3w\5w\u03b8\nw\3x\3x\3x\3x\5x\u03be\nx\3\u0367"
+ "\2y\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\35"
+ "\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34\67\359\36"
+ ";\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62c\63e\64g\65i\66k\67"
+ "m8o9q:s;u<w=y>{?}@\177A\u0081B\u0083C\u0085D\u0087E\u0089F\u008bG\u008d"
+ "H\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009bO\u009dP\u009fQ\u00a1"
+ "R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00afY\u00b1Z\u00b3[\u00b5"
+ "\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3c\u00c5d\u00c7e\u00c9"
+ "f\u00cbg\u00cdh\u00cfi\u00d1j\u00d3k\u00d5l\u00d7m\u00d9n\u00dbo\u00dd"
+ "p\u00dfq\u00e1r\u00e3\2\u00e5\2\u00e7\2\u00e9\2\u00eb\2\u00ed\2\u00ef"
+ "\2\3\2\34\3\2\63;\4\2NNnn\4\2ZZzz\5\2\62;CHch\6\2\62;CHaach\3\2\629\4"
+ "\2\629aa\4\2DDdd\3\2\62\63\4\2\62\63aa\6\2FFHHffhh\4\2RRrr\4\2--//\6\2"
+ "\f\f\17\17))^^\6\2\f\f\17\17$$^^\5\2\13\f\16\17\"\"\4\2\f\f\17\17\4\2"
+ "GGgg\n\2$$))^^ddhhppttvv\3\2\62\65\3\2\62;\4\2\62;aa\6\2&&C\\aac|\4\2"
+ "\2\u0081\ud802\udc01\3\2\ud802\udc01\3\2\udc02\ue001\2\u03ea\2\3\3\2\2"
+ "\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3"
+ "\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2"
+ "\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2"
+ "\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2"
+ "\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3"
+ "\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2"
+ "\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2"
+ "W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3"
+ "\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2"
+ "\2\2q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2y\3\2\2\2\2{\3\2\2\2\2"
+ "}\3\2\2\2\2\177\3\2\2\2\2\u0081\3\2\2\2\2\u0083\3\2\2\2\2\u0085\3\2\2"
+ "\2\2\u0087\3\2\2\2\2\u0089\3\2\2\2\2\u008b\3\2\2\2\2\u008d\3\2\2\2\2\u008f"
+ "\3\2\2\2\2\u0091\3\2\2\2\2\u0093\3\2\2\2\2\u0095\3\2\2\2\2\u0097\3\2\2"
+ "\2\2\u0099\3\2\2\2\2\u009b\3\2\2\2\2\u009d\3\2\2\2\2\u009f\3\2\2\2\2\u00a1"
+ "\3\2\2\2\2\u00a3\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7\3\2\2\2\2\u00a9\3\2\2"
+ "\2\2\u00ab\3\2\2\2\2\u00ad\3\2\2\2\2\u00af\3\2\2\2\2\u00b1\3\2\2\2\2\u00b3"
+ "\3\2\2\2\2\u00b5\3\2\2\2\2\u00b7\3\2\2\2\2\u00b9\3\2\2\2\2\u00bb\3\2\2"
+ "\2\2\u00bd\3\2\2\2\2\u00bf\3\2\2\2\2\u00c1\3\2\2\2\2\u00c3\3\2\2\2\2\u00c5"
+ "\3\2\2\2\2\u00c7\3\2\2\2\2\u00c9\3\2\2\2\2\u00cb\3\2\2\2\2\u00cd\3\2\2"
+ "\2\2\u00cf\3\2\2\2\2\u00d1\3\2\2\2\2\u00d3\3\2\2\2\2\u00d5\3\2\2\2\2\u00d7"
+ "\3\2\2\2\2\u00d9\3\2\2\2\2\u00db\3\2\2\2\2\u00dd\3\2\2\2\2\u00df\3\2\2"
+ "\2\2\u00e1\3\2\2\2\3\u00f1\3\2\2\2\5\u00fa\3\2\2\2\7\u0101\3\2\2\2\t\u0109"
+ "\3\2\2\2\13\u010f\3\2\2\2\r\u0114\3\2\2\2\17\u0119\3\2\2\2\21\u011f\3"
+ "\2\2\2\23\u0124\3\2\2\2\25\u012a\3\2\2\2\27\u0130\3\2\2\2\31\u0139\3\2"
+ "\2\2\33\u0141\3\2\2\2\35\u0144\3\2\2\2\37\u014b\3\2\2\2!\u0150\3\2\2\2"
+ "#\u0155\3\2\2\2%\u015d\3\2\2\2\'\u0163\3\2\2\2)\u016b\3\2\2\2+\u0171\3"
+ "\2\2\2-\u0175\3\2\2\2/\u0178\3\2\2\2\61\u017d\3\2\2\2\63\u0188\3\2\2\2"
+ "\65\u018f\3\2\2\2\67\u019a\3\2\2\29\u019e\3\2\2\2;\u01a8\3\2\2\2=\u01ad"
+ "\3\2\2\2?\u01b4\3\2\2\2A\u01b8\3\2\2\2C\u01c0\3\2\2\2E\u01c8\3\2\2\2G"
+ "\u01d2\3\2\2\2I\u01d9\3\2\2\2K\u01e0\3\2\2\2M\u01e6\3\2\2\2O\u01ed\3\2"
+ "\2\2Q\u01f6\3\2\2\2S\u01fc\3\2\2\2U\u0203\3\2\2\2W\u0210\3\2\2\2Y\u0215"
+ "\3\2\2\2[\u021b\3\2\2\2]\u0222\3\2\2\2_\u022c\3\2\2\2a\u0230\3\2\2\2c"
+ "\u0235\3\2\2\2e\u023e\3\2\2\2g\u0251\3\2\2\2i\u0256\3\2\2\2k\u0265\3\2"
+ "\2\2m\u0279\3\2\2\2o\u029f\3\2\2\2q\u02a1\3\2\2\2s\u02bf\3\2\2\2u\u02c1"
+ "\3\2\2\2w\u02c8\3\2\2\2y\u02d2\3\2\2\2{\u02dc\3\2\2\2}\u02e1\3\2\2\2\177"
+ "\u02e3\3\2\2\2\u0081\u02e5\3\2\2\2\u0083\u02e7\3\2\2\2\u0085\u02e9\3\2"
+ "\2\2\u0087\u02eb\3\2\2\2\u0089\u02ed\3\2\2\2\u008b\u02ef\3\2\2\2\u008d"
+ "\u02f1\3\2\2\2\u008f\u02f3\3\2\2\2\u0091\u02f5\3\2\2\2\u0093\u02f7\3\2"
+ "\2\2\u0095\u02f9\3\2\2\2\u0097\u02fb\3\2\2\2\u0099\u02fd\3\2\2\2\u009b"
+ "\u02ff\3\2\2\2\u009d\u0301\3\2\2\2\u009f\u0304\3\2\2\2\u00a1\u0307\3\2"
+ "\2\2\u00a3\u030a\3\2\2\2\u00a5\u030d\3\2\2\2\u00a7\u0310\3\2\2\2\u00a9"
+ "\u0313\3\2\2\2\u00ab\u0316\3\2\2\2\u00ad\u0319\3\2\2\2\u00af\u031b\3\2"
+ "\2\2\u00b1\u031d\3\2\2\2\u00b3\u031f\3\2\2\2\u00b5\u0321\3\2\2\2\u00b7"
+ "\u0323\3\2\2\2\u00b9\u0325\3\2\2\2\u00bb\u0327\3\2\2\2\u00bd\u0329\3\2"
+ "\2\2\u00bf\u032c\3\2\2\2\u00c1\u032f\3\2\2\2\u00c3\u0332\3\2\2\2\u00c5"
+ "\u0335\3\2\2\2\u00c7\u0338\3\2\2\2\u00c9\u033b\3\2\2\2\u00cb\u033e\3\2"
+ "\2\2\u00cd\u0341\3\2\2\2\u00cf\u0345\3\2\2\2\u00d1\u0349\3\2\2\2\u00d3"
+ "\u034e\3\2\2\2\u00d5\u0351\3\2\2\2\u00d7\u0354\3\2\2\2\u00d9\u0356\3\2"
+ "\2\2\u00db\u035b\3\2\2\2\u00dd\u0361\3\2\2\2\u00df\u036f\3\2\2\2\u00e1"
+ "\u037a\3\2\2\2\u00e3\u0381\3\2\2\2\u00e5\u039c\3\2\2\2\u00e7\u039e\3\2"
+ "\2\2\u00e9\u03a9\3\2\2\2\u00eb\u03ab\3\2\2\2\u00ed\u03b7\3\2\2\2\u00ef"
+ "\u03bd\3\2\2\2\u00f1\u00f2\7c\2\2\u00f2\u00f3\7d\2\2\u00f3\u00f4\7u\2"
+ "\2\u00f4\u00f5\7v\2\2\u00f5\u00f6\7t\2\2\u00f6\u00f7\7c\2\2\u00f7\u00f8"
+ "\7e\2\2\u00f8\u00f9\7v\2\2\u00f9\4\3\2\2\2\u00fa\u00fb\7c\2\2\u00fb\u00fc"
+ "\7u\2\2\u00fc\u00fd\7u\2\2\u00fd\u00fe\7g\2\2\u00fe\u00ff\7t\2\2\u00ff"
+ "\u0100\7v\2\2\u0100\6\3\2\2\2\u0101\u0102\7d\2\2\u0102\u0103\7q\2\2\u0103"
+ "\u0104\7q\2\2\u0104\u0105\7n\2\2\u0105\u0106\7g\2\2\u0106\u0107\7c\2\2"
+ "\u0107\u0108\7p\2\2\u0108\b\3\2\2\2\u0109\u010a\7d\2\2\u010a\u010b\7t"
+ "\2\2\u010b\u010c\7g\2\2\u010c\u010d\7c\2\2\u010d\u010e\7m\2\2\u010e\n"
+ "\3\2\2\2\u010f\u0110\7d\2\2\u0110\u0111\7{\2\2\u0111\u0112\7v\2\2\u0112"
+ "\u0113\7g\2\2\u0113\f\3\2\2\2\u0114\u0115\7e\2\2\u0115\u0116\7c\2\2\u0116"
+ "\u0117\7u\2\2\u0117\u0118\7g\2\2\u0118\16\3\2\2\2\u0119\u011a\7e\2\2\u011a"
+ "\u011b\7c\2\2\u011b\u011c\7v\2\2\u011c\u011d\7e\2\2\u011d\u011e\7j\2\2"
+ "\u011e\20\3\2\2\2\u011f\u0120\7e\2\2\u0120\u0121\7j\2\2\u0121\u0122\7"
+ "c\2\2\u0122\u0123\7t\2\2\u0123\22\3\2\2\2\u0124\u0125\7e\2\2\u0125\u0126"
+ "\7n\2\2\u0126\u0127\7c\2\2\u0127\u0128\7u\2\2\u0128\u0129\7u\2\2\u0129"
+ "\24\3\2\2\2\u012a\u012b\7e\2\2\u012b\u012c\7q\2\2\u012c\u012d\7p\2\2\u012d"
+ "\u012e\7u\2\2\u012e\u012f\7v\2\2\u012f\26\3\2\2\2\u0130\u0131\7e\2\2\u0131"
+ "\u0132\7q\2\2\u0132\u0133\7p\2\2\u0133\u0134\7v\2\2\u0134\u0135\7k\2\2"
+ "\u0135\u0136\7p\2\2\u0136\u0137\7w\2\2\u0137\u0138\7g\2\2\u0138\30\3\2"
+ "\2\2\u0139\u013a\7f\2\2\u013a\u013b\7g\2\2\u013b\u013c\7h\2\2\u013c\u013d"
+ "\7c\2\2\u013d\u013e\7w\2\2\u013e\u013f\7n\2\2\u013f\u0140\7v\2\2\u0140"
+ "\32\3\2\2\2\u0141\u0142\7f\2\2\u0142\u0143\7q\2\2\u0143\34\3\2\2\2\u0144"
+ "\u0145\7f\2\2\u0145\u0146\7q\2\2\u0146\u0147\7w\2\2\u0147\u0148\7d\2\2"
+ "\u0148\u0149\7n\2\2\u0149\u014a\7g\2\2\u014a\36\3\2\2\2\u014b\u014c\7"
+ "g\2\2\u014c\u014d\7n\2\2\u014d\u014e\7u\2\2\u014e\u014f\7g\2\2\u014f "
+ "\3\2\2\2\u0150\u0151\7g\2\2\u0151\u0152\7p\2\2\u0152\u0153\7w\2\2\u0153"
+ "\u0154\7o\2\2\u0154\"\3\2\2\2\u0155\u0156\7g\2\2\u0156\u0157\7z\2\2\u0157"
+ "\u0158\7v\2\2\u0158\u0159\7g\2\2\u0159\u015a\7p\2\2\u015a\u015b\7f\2\2"
+ "\u015b\u015c\7u\2\2\u015c$\3\2\2\2\u015d\u015e\7h\2\2\u015e\u015f\7k\2"
+ "\2\u015f\u0160\7p\2\2\u0160\u0161\7c\2\2\u0161\u0162\7n\2\2\u0162&\3\2"
+ "\2\2\u0163\u0164\7h\2\2\u0164\u0165\7k\2\2\u0165\u0166\7p\2\2\u0166\u0167"
+ "\7c\2\2\u0167\u0168\7n\2\2\u0168\u0169\7n\2\2\u0169\u016a\7{\2\2\u016a"
+ "(\3\2\2\2\u016b\u016c\7h\2\2\u016c\u016d\7n\2\2\u016d\u016e\7q\2\2\u016e"
+ "\u016f\7c\2\2\u016f\u0170\7v\2\2\u0170*\3\2\2\2\u0171\u0172\7h\2\2\u0172"
+ "\u0173\7q\2\2\u0173\u0174\7t\2\2\u0174,\3\2\2\2\u0175\u0176\7k\2\2\u0176"
+ "\u0177\7h\2\2\u0177.\3\2\2\2\u0178\u0179\7i\2\2\u0179\u017a\7q\2\2\u017a"
+ "\u017b\7v\2\2\u017b\u017c\7q\2\2\u017c\60\3\2\2\2\u017d\u017e\7k\2\2\u017e"
+ "\u017f\7o\2\2\u017f\u0180\7r\2\2\u0180\u0181\7n\2\2\u0181\u0182\7g\2\2"
+ "\u0182\u0183\7o\2\2\u0183\u0184\7g\2\2\u0184\u0185\7p\2\2\u0185\u0186"
+ "\7v\2\2\u0186\u0187\7u\2\2\u0187\62\3\2\2\2\u0188\u0189\7k\2\2\u0189\u018a"
+ "\7o\2\2\u018a\u018b\7r\2\2\u018b\u018c\7q\2\2\u018c\u018d\7t\2\2\u018d"
+ "\u018e\7v\2\2\u018e\64\3\2\2\2\u018f\u0190\7k\2\2\u0190\u0191\7p\2\2\u0191"
+ "\u0192\7u\2\2\u0192\u0193\7v\2\2\u0193\u0194\7c\2\2\u0194\u0195\7p\2\2"
+ "\u0195\u0196\7e\2\2\u0196\u0197\7g\2\2\u0197\u0198\7q\2\2\u0198\u0199"
+ "\7h\2\2\u0199\66\3\2\2\2\u019a\u019b\7k\2\2\u019b\u019c\7p\2\2\u019c\u019d"
+ "\7v\2\2\u019d8\3\2\2\2\u019e\u019f\7k\2\2\u019f\u01a0\7p\2\2\u01a0\u01a1"
+ "\7v\2\2\u01a1\u01a2\7g\2\2\u01a2\u01a3\7t\2\2\u01a3\u01a4\7h\2\2\u01a4"
+ "\u01a5\7c\2\2\u01a5\u01a6\7e\2\2\u01a6\u01a7\7g\2\2\u01a7:\3\2\2\2\u01a8"
+ "\u01a9\7n\2\2\u01a9\u01aa\7q\2\2\u01aa\u01ab\7p\2\2\u01ab\u01ac\7i\2\2"
+ "\u01ac<\3\2\2\2\u01ad\u01ae\7p\2\2\u01ae\u01af\7c\2\2\u01af\u01b0\7v\2"
+ "\2\u01b0\u01b1\7k\2\2\u01b1\u01b2\7x\2\2\u01b2\u01b3\7g\2\2\u01b3>\3\2"
+ "\2\2\u01b4\u01b5\7p\2\2\u01b5\u01b6\7g\2\2\u01b6\u01b7\7y\2\2\u01b7@\3"
+ "\2\2\2\u01b8\u01b9\7r\2\2\u01b9\u01ba\7c\2\2\u01ba\u01bb\7e\2\2\u01bb"
+ "\u01bc\7m\2\2\u01bc\u01bd\7c\2\2\u01bd\u01be\7i\2\2\u01be\u01bf\7g\2\2"
+ "\u01bfB\3\2\2\2\u01c0\u01c1\7r\2\2\u01c1\u01c2\7t\2\2\u01c2\u01c3\7k\2"
+ "\2\u01c3\u01c4\7x\2\2\u01c4\u01c5\7c\2\2\u01c5\u01c6\7v\2\2\u01c6\u01c7"
+ "\7g\2\2\u01c7D\3\2\2\2\u01c8\u01c9\7r\2\2\u01c9\u01ca\7t\2\2\u01ca\u01cb"
+ "\7q\2\2\u01cb\u01cc\7v\2\2\u01cc\u01cd\7g\2\2\u01cd\u01ce\7e\2\2\u01ce"
+ "\u01cf\7v\2\2\u01cf\u01d0\7g\2\2\u01d0\u01d1\7f\2\2\u01d1F\3\2\2\2\u01d2"
+ "\u01d3\7r\2\2\u01d3\u01d4\7w\2\2\u01d4\u01d5\7d\2\2\u01d5\u01d6\7n\2\2"
+ "\u01d6\u01d7\7k\2\2\u01d7\u01d8\7e\2\2\u01d8H\3\2\2\2\u01d9\u01da\7t\2"
+ "\2\u01da\u01db\7g\2\2\u01db\u01dc\7v\2\2\u01dc\u01dd\7w\2\2\u01dd\u01de"
+ "\7t\2\2\u01de\u01df\7p\2\2\u01dfJ\3\2\2\2\u01e0\u01e1\7u\2\2\u01e1\u01e2"
+ "\7j\2\2\u01e2\u01e3\7q\2\2\u01e3\u01e4\7t\2\2\u01e4\u01e5\7v\2\2\u01e5"
+ "L\3\2\2\2\u01e6\u01e7\7u\2\2\u01e7\u01e8\7v\2\2\u01e8\u01e9\7c\2\2\u01e9"
+ "\u01ea\7v\2\2\u01ea\u01eb\7k\2\2\u01eb\u01ec\7e\2\2\u01ecN\3\2\2\2\u01ed"
+ "\u01ee\7u\2\2\u01ee\u01ef\7v\2\2\u01ef\u01f0\7t\2\2\u01f0\u01f1\7k\2\2"
+ "\u01f1\u01f2\7e\2\2\u01f2\u01f3\7v\2\2\u01f3\u01f4\7h\2\2\u01f4\u01f5"
+ "\7r\2\2\u01f5P\3\2\2\2\u01f6\u01f7\7u\2\2\u01f7\u01f8\7w\2\2\u01f8\u01f9"
+ "\7r\2\2\u01f9\u01fa\7g\2\2\u01fa\u01fb\7t\2\2\u01fbR\3\2\2\2\u01fc\u01fd"
+ "\7u\2\2\u01fd\u01fe\7y\2\2\u01fe\u01ff\7k\2\2\u01ff\u0200\7v\2\2\u0200"
+ "\u0201\7e\2\2\u0201\u0202\7j\2\2\u0202T\3\2\2\2\u0203\u0204\7u\2\2\u0204"
+ "\u0205\7{\2\2\u0205\u0206\7p\2\2\u0206\u0207\7e\2\2\u0207\u0208\7j\2\2"
+ "\u0208\u0209\7t\2\2\u0209\u020a\7q\2\2\u020a\u020b\7p\2\2\u020b\u020c"
+ "\7k\2\2\u020c\u020d\7|\2\2\u020d\u020e\7g\2\2\u020e\u020f\7f\2\2\u020f"
+ "V\3\2\2\2\u0210\u0211\7v\2\2\u0211\u0212\7j\2\2\u0212\u0213\7k\2\2\u0213"
+ "\u0214\7u\2\2\u0214X\3\2\2\2\u0215\u0216\7v\2\2\u0216\u0217\7j\2\2\u0217"
+ "\u0218\7t\2\2\u0218\u0219\7q\2\2\u0219\u021a\7y\2\2\u021aZ\3\2\2\2\u021b"
+ "\u021c\7v\2\2\u021c\u021d\7j\2\2\u021d\u021e\7t\2\2\u021e\u021f\7q\2\2"
+ "\u021f\u0220\7y\2\2\u0220\u0221\7u\2\2\u0221\\\3\2\2\2\u0222\u0223\7v"
+ "\2\2\u0223\u0224\7t\2\2\u0224\u0225\7c\2\2\u0225\u0226\7p\2\2\u0226\u0227"
+ "\7u\2\2\u0227\u0228\7k\2\2\u0228\u0229\7g\2\2\u0229\u022a\7p\2\2\u022a"
+ "\u022b\7v\2\2\u022b^\3\2\2\2\u022c\u022d\7v\2\2\u022d\u022e\7t\2\2\u022e"
+ "\u022f\7{\2\2\u022f`\3\2\2\2\u0230\u0231\7x\2\2\u0231\u0232\7q\2\2\u0232"
+ "\u0233\7k\2\2\u0233\u0234\7f\2\2\u0234b\3\2\2\2\u0235\u0236\7x\2\2\u0236"
+ "\u0237\7q\2\2\u0237\u0238\7n\2\2\u0238\u0239\7c\2\2\u0239\u023a\7v\2\2"
+ "\u023a\u023b\7k\2\2\u023b\u023c\7n\2\2\u023c\u023d\7g\2\2\u023dd\3\2\2"
+ "\2\u023e\u023f\7y\2\2\u023f\u0240\7j\2\2\u0240\u0241\7k\2\2\u0241\u0242"
+ "\7n\2\2\u0242\u0243\7g\2\2\u0243f\3\2\2\2\u0244\u0252\7\62\2\2\u0245\u024f"
+ "\t\2\2\2\u0246\u0248\5\u00ebv\2\u0247\u0246\3\2\2\2\u0247\u0248\3\2\2"
+ "\2\u0248\u0250\3\2\2\2\u0249\u024b\7a\2\2\u024a\u0249\3\2\2\2\u024b\u024c"
+ "\3\2\2\2\u024c\u024a\3\2\2\2\u024c\u024d\3\2\2\2\u024d\u024e\3\2\2\2\u024e"
+ "\u0250\5\u00ebv\2\u024f\u0247\3\2\2\2\u024f\u024a\3\2\2\2\u0250\u0252"
+ "\3\2\2\2\u0251\u0244\3\2\2\2\u0251\u0245\3\2\2\2\u0252\u0254\3\2\2\2\u0253"
+ "\u0255\t\3\2\2\u0254\u0253\3\2\2\2\u0254\u0255\3\2\2\2\u0255h\3\2\2\2"
+ "\u0256\u0257\7\62\2\2\u0257\u0258\t\4\2\2\u0258\u0260\t\5\2\2\u0259\u025b"
+ "\t\6\2\2\u025a\u0259\3\2\2\2\u025b\u025e\3\2\2\2\u025c\u025a\3\2\2\2\u025c"
+ "\u025d\3\2\2\2\u025d\u025f\3\2\2\2\u025e\u025c\3\2\2\2\u025f\u0261\t\5"
+ "\2\2\u0260\u025c\3\2\2\2\u0260\u0261\3\2\2\2\u0261\u0263\3\2\2\2\u0262"
+ "\u0264\t\3\2\2\u0263\u0262\3\2\2\2\u0263\u0264\3\2\2\2\u0264j\3\2\2\2"
+ "\u0265\u0269\7\62\2\2\u0266\u0268\7a\2\2\u0267\u0266\3\2\2\2\u0268\u026b"
+ "\3\2\2\2\u0269\u0267\3\2\2\2\u0269\u026a\3\2\2\2\u026a\u026c\3\2\2\2\u026b"
+ "\u0269\3\2\2\2\u026c\u0274\t\7\2\2\u026d\u026f\t\b\2\2\u026e\u026d\3\2"
+ "\2\2\u026f\u0272\3\2\2\2\u0270\u026e\3\2\2\2\u0270\u0271\3\2\2\2\u0271"
+ "\u0273\3\2\2\2\u0272\u0270\3\2\2\2\u0273\u0275\t\7\2\2\u0274\u0270\3\2"
+ "\2\2\u0274\u0275\3\2\2\2\u0275\u0277\3\2\2\2\u0276\u0278\t\3\2\2\u0277"
+ "\u0276\3\2\2\2\u0277\u0278\3\2\2\2\u0278l\3\2\2\2\u0279\u027a\7\62\2\2"
+ "\u027a\u027b\t\t\2\2\u027b\u0283\t\n\2\2\u027c\u027e\t\13\2\2\u027d\u027c"
+ "\3\2\2\2\u027e\u0281\3\2\2\2\u027f\u027d\3\2\2\2\u027f\u0280\3\2\2\2\u0280"
+ "\u0282\3\2\2\2\u0281\u027f\3\2\2\2\u0282\u0284\t\n\2\2\u0283\u027f\3\2"
+ "\2\2\u0283\u0284\3\2\2\2\u0284\u0286\3\2\2\2\u0285\u0287\t\3\2\2\u0286"
+ "\u0285\3\2\2\2\u0286\u0287\3\2\2\2\u0287n\3\2\2\2\u0288\u0289\5\u00eb"
+ "v\2\u0289\u028b\7\60\2\2\u028a\u028c\5\u00ebv\2\u028b\u028a\3\2\2\2\u028b"
+ "\u028c\3\2\2\2\u028c\u0290\3\2\2\2\u028d\u028e\7\60\2\2\u028e\u0290\5"
+ "\u00ebv\2\u028f\u0288\3\2\2\2\u028f\u028d\3\2\2\2\u0290\u0292\3\2\2\2"
+ "\u0291\u0293\5\u00e3r\2\u0292\u0291\3\2\2\2\u0292\u0293\3\2\2\2\u0293"
+ "\u0295\3\2\2\2\u0294\u0296\t\f\2\2\u0295\u0294\3\2\2\2\u0295\u0296\3\2"
+ "\2\2\u0296\u02a0\3\2\2\2\u0297\u029d\5\u00ebv\2\u0298\u029a\5\u00e3r\2"
+ "\u0299\u029b\t\f\2\2\u029a\u0299\3\2\2\2\u029a\u029b\3\2\2\2\u029b\u029e"
+ "\3\2\2\2\u029c\u029e\t\f\2\2\u029d\u0298\3\2\2\2\u029d\u029c\3\2\2\2\u029e"
+ "\u02a0\3\2\2\2\u029f\u028f\3\2\2\2\u029f\u0297\3\2\2\2\u02a0p\3\2\2\2"
+ "\u02a1\u02a2\7\62\2\2\u02a2\u02ac\t\4\2\2\u02a3\u02a5\5\u00e7t\2\u02a4"
+ "\u02a6\7\60\2\2\u02a5\u02a4\3\2\2\2\u02a5\u02a6\3\2\2\2\u02a6\u02ad\3"
+ "\2\2\2\u02a7\u02a9\5\u00e7t\2\u02a8\u02a7\3\2\2\2\u02a8\u02a9\3\2\2\2"
+ "\u02a9\u02aa\3\2\2\2\u02aa\u02ab\7\60\2\2\u02ab\u02ad\5\u00e7t\2\u02ac"
+ "\u02a3\3\2\2\2\u02ac\u02a8\3\2\2\2\u02ad\u02ae\3\2\2\2\u02ae\u02b0\t\r"
+ "\2\2\u02af\u02b1\t\16\2\2\u02b0\u02af\3\2\2\2\u02b0\u02b1\3\2\2\2\u02b1"
+ "\u02b2\3\2\2\2\u02b2\u02b4\5\u00ebv\2\u02b3\u02b5\t\f\2\2\u02b4\u02b3"
+ "\3\2\2\2\u02b4\u02b5\3\2\2\2\u02b5r\3\2\2\2\u02b6\u02b7\7v\2\2\u02b7\u02b8"
+ "\7t\2\2\u02b8\u02b9\7w\2\2\u02b9\u02c0\7g\2\2\u02ba\u02bb\7h\2\2\u02bb"
+ "\u02bc\7c\2\2\u02bc\u02bd\7n\2\2\u02bd\u02be\7u\2\2\u02be\u02c0\7g\2\2"
+ "\u02bf\u02b6\3\2\2\2\u02bf\u02ba\3\2\2\2\u02c0t\3\2\2\2\u02c1\u02c4\7"
+ ")\2\2\u02c2\u02c5\n\17\2\2\u02c3\u02c5\5\u00e5s\2\u02c4\u02c2\3\2\2\2"
+ "\u02c4\u02c3\3\2\2\2\u02c5\u02c6\3\2\2\2\u02c6\u02c7\7)\2\2\u02c7v\3\2"
+ "\2\2\u02c8\u02cd\7)\2\2\u02c9\u02cc\n\17\2\2\u02ca\u02cc\5\u00e5s\2\u02cb"
+ "\u02c9\3\2\2\2\u02cb\u02ca\3\2\2\2\u02cc\u02cf\3\2\2\2\u02cd\u02cb\3\2"
+ "\2\2\u02cd\u02ce\3\2\2\2\u02ce\u02d0\3\2\2\2\u02cf\u02cd\3\2\2\2\u02d0"
+ "\u02d1\7)\2\2\u02d1x\3\2\2\2\u02d2\u02d7\7$\2\2\u02d3\u02d6\n\20\2\2\u02d4"
+ "\u02d6\5\u00e5s\2\u02d5\u02d3\3\2\2\2\u02d5\u02d4\3\2\2\2\u02d6\u02d9"
+ "\3\2\2\2\u02d7\u02d5\3\2\2\2\u02d7\u02d8\3\2\2\2\u02d8\u02da\3\2\2\2\u02d9"
+ "\u02d7\3\2\2\2\u02da\u02db\7$\2\2\u02dbz\3\2\2\2\u02dc\u02dd\7p\2\2\u02dd"
+ "\u02de\7w\2\2\u02de\u02df\7n\2\2\u02df\u02e0\7n\2\2\u02e0|\3\2\2\2\u02e1"
+ "\u02e2\7*\2\2\u02e2~\3\2\2\2\u02e3\u02e4\7+\2\2\u02e4\u0080\3\2\2\2\u02e5"
+ "\u02e6\7}\2\2\u02e6\u0082\3\2\2\2\u02e7\u02e8\7\177\2\2\u02e8\u0084\3"
+ "\2\2\2\u02e9\u02ea\7]\2\2\u02ea\u0086\3\2\2\2\u02eb\u02ec\7_\2\2\u02ec"
+ "\u0088\3\2\2\2\u02ed\u02ee\7=\2\2\u02ee\u008a\3\2\2\2\u02ef\u02f0\7.\2"
+ "\2\u02f0\u008c\3\2\2\2\u02f1\u02f2\7\60\2\2\u02f2\u008e\3\2\2\2\u02f3"
+ "\u02f4\7?\2\2\u02f4\u0090\3\2\2\2\u02f5\u02f6\7@\2\2\u02f6\u0092\3\2\2"
+ "\2\u02f7\u02f8\7>\2\2\u02f8\u0094\3\2\2\2\u02f9\u02fa\7#\2\2\u02fa\u0096"
+ "\3\2\2\2\u02fb\u02fc\7\u0080\2\2\u02fc\u0098\3\2\2\2\u02fd\u02fe\7A\2"
+ "\2\u02fe\u009a\3\2\2\2\u02ff\u0300\7<\2\2\u0300\u009c\3\2\2\2\u0301\u0302"
+ "\7?\2\2\u0302\u0303\7?\2\2\u0303\u009e\3\2\2\2\u0304\u0305\7>\2\2\u0305"
+ "\u0306\7?\2\2\u0306\u00a0\3\2\2\2\u0307\u0308\7@\2\2\u0308\u0309\7?\2"
+ "\2\u0309\u00a2\3\2\2\2\u030a\u030b\7#\2\2\u030b\u030c\7?\2\2\u030c\u00a4"
+ "\3\2\2\2\u030d\u030e\7(\2\2\u030e\u030f\7(\2\2\u030f\u00a6\3\2\2\2\u0310"
+ "\u0311\7~\2\2\u0311\u0312\7~\2\2\u0312\u00a8\3\2\2\2\u0313\u0314\7-\2"
+ "\2\u0314\u0315\7-\2\2\u0315\u00aa\3\2\2\2\u0316\u0317\7/\2\2\u0317\u0318"
+ "\7/\2\2\u0318\u00ac\3\2\2\2\u0319\u031a\7-\2\2\u031a\u00ae\3\2\2\2\u031b"
+ "\u031c\7/\2\2\u031c\u00b0\3\2\2\2\u031d\u031e\7,\2\2\u031e\u00b2\3\2\2"
+ "\2\u031f\u0320\7\61\2\2\u0320\u00b4\3\2\2\2\u0321\u0322\7(\2\2\u0322\u00b6"
+ "\3\2\2\2\u0323\u0324\7~\2\2\u0324\u00b8\3\2\2\2\u0325\u0326\7`\2\2\u0326"
+ "\u00ba\3\2\2\2\u0327\u0328\7\'\2\2\u0328\u00bc\3\2\2\2\u0329\u032a\7-"
+ "\2\2\u032a\u032b\7?\2\2\u032b\u00be\3\2\2\2\u032c\u032d\7/\2\2\u032d\u032e"
+ "\7?\2\2\u032e\u00c0\3\2\2\2\u032f\u0330\7,\2\2\u0330\u0331\7?\2\2\u0331"
+ "\u00c2\3\2\2\2\u0332\u0333\7\61\2\2\u0333\u0334\7?\2\2\u0334\u00c4\3\2"
+ "\2\2\u0335\u0336\7(\2\2\u0336\u0337\7?\2\2\u0337\u00c6\3\2\2\2\u0338\u0339"
+ "\7~\2\2\u0339\u033a\7?\2\2\u033a\u00c8\3\2\2\2\u033b\u033c\7`\2\2\u033c"
+ "\u033d\7?\2\2\u033d\u00ca\3\2\2\2\u033e\u033f\7\'\2\2\u033f\u0340\7?\2"
+ "\2\u0340\u00cc\3\2\2\2\u0341\u0342\7>\2\2\u0342\u0343\7>\2\2\u0343\u0344"
+ "\7?\2\2\u0344\u00ce\3\2\2\2\u0345\u0346\7@\2\2\u0346\u0347\7@\2\2\u0347"
+ "\u0348\7?\2\2\u0348\u00d0\3\2\2\2\u0349\u034a\7@\2\2\u034a\u034b\7@\2"
+ "\2\u034b\u034c\7@\2\2\u034c\u034d\7?\2\2\u034d\u00d2\3\2\2\2\u034e\u034f"
+ "\7/\2\2\u034f\u0350\7@\2\2\u0350\u00d4\3\2\2\2\u0351\u0352\7<\2\2\u0352"
+ "\u0353\7<\2\2\u0353\u00d6\3\2\2\2\u0354\u0355\7B\2\2\u0355\u00d8\3\2\2"
+ "\2\u0356\u0357\7\60\2\2\u0357\u0358\7\60\2\2\u0358\u0359\7\60\2\2\u0359"
+ "\u00da\3\2\2\2\u035a\u035c\t\21\2\2\u035b\u035a\3\2\2\2\u035c\u035d\3"
+ "\2\2\2\u035d\u035b\3\2\2\2\u035d\u035e\3\2\2\2\u035e\u035f\3\2\2\2\u035f"
+ "\u0360\bn\2\2\u0360\u00dc\3\2\2\2\u0361\u0362\7\61\2\2\u0362\u0363\7,"
+ "\2\2\u0363\u0367\3\2\2\2\u0364\u0366\13\2\2\2\u0365\u0364\3\2\2\2\u0366"
+ "\u0369\3\2\2\2\u0367\u0368\3\2\2\2\u0367\u0365\3\2\2\2\u0368\u036a\3\2"
+ "\2\2\u0369\u0367\3\2\2\2\u036a\u036b\7,\2\2\u036b\u036c\7\61\2\2\u036c"
+ "\u036d\3\2\2\2\u036d\u036e\bo\2\2\u036e\u00de\3\2\2\2\u036f\u0370\7\61"
+ "\2\2\u0370\u0371\7\61\2\2\u0371\u0375\3\2\2\2\u0372\u0374\n\22\2\2\u0373"
+ "\u0372\3\2\2\2\u0374\u0377\3\2\2\2\u0375\u0373\3\2\2\2\u0375\u0376\3\2"
+ "\2\2\u0376\u0378\3\2\2\2\u0377\u0375\3\2\2\2\u0378\u0379\bp\2\2\u0379"
+ "\u00e0\3\2\2\2\u037a\u037e\5\u00efx\2\u037b\u037d\5\u00edw\2\u037c\u037b"
+ "\3\2\2\2\u037d\u0380\3\2\2\2\u037e\u037c\3\2\2\2\u037e\u037f\3\2\2\2\u037f"
+ "\u00e2\3\2\2\2\u0380\u037e\3\2\2\2\u0381\u0383\t\23\2\2\u0382\u0384\t"
+ "\16\2\2\u0383\u0382\3\2\2\2\u0383\u0384\3\2\2\2\u0384\u0385\3\2\2\2\u0385"
+ "\u0386\5\u00ebv\2\u0386\u00e4\3\2\2\2\u0387\u0388\7^\2\2\u0388\u039d\t"
+ "\24\2\2\u0389\u038e\7^\2\2\u038a\u038c\t\25\2\2\u038b\u038a\3\2\2\2\u038b"
+ "\u038c\3\2\2\2\u038c\u038d\3\2\2\2\u038d\u038f\t\7\2\2\u038e\u038b\3\2"
+ "\2\2\u038e\u038f\3\2\2\2\u038f\u0390\3\2\2\2\u0390\u039d\t\7\2\2\u0391"
+ "\u0393\7^\2\2\u0392\u0394\7w\2\2\u0393\u0392\3\2\2\2\u0394\u0395\3\2\2"
+ "\2\u0395\u0393\3\2\2\2\u0395\u0396\3\2\2\2\u0396\u0397\3\2\2\2\u0397\u0398"
+ "\5\u00e9u\2\u0398\u0399\5\u00e9u\2\u0399\u039a\5\u00e9u\2\u039a\u039b"
+ "\5\u00e9u\2\u039b\u039d\3\2\2\2\u039c\u0387\3\2\2\2\u039c\u0389\3\2\2"
+ "\2\u039c\u0391\3\2\2\2\u039d\u00e6\3\2\2\2\u039e\u03a7\5\u00e9u\2\u039f"
+ "\u03a2\5\u00e9u\2\u03a0\u03a2\7a\2\2\u03a1\u039f\3\2\2\2\u03a1\u03a0\3"
+ "\2\2\2\u03a2\u03a5\3\2\2\2\u03a3\u03a1\3\2\2\2\u03a3\u03a4\3\2\2\2\u03a4"
+ "\u03a6\3\2\2\2\u03a5\u03a3\3\2\2\2\u03a6\u03a8\5\u00e9u\2\u03a7\u03a3"
+ "\3\2\2\2\u03a7\u03a8\3\2\2\2\u03a8\u00e8\3\2\2\2\u03a9\u03aa\t\5\2\2\u03aa"
+ "\u00ea\3\2\2\2\u03ab\u03b3\t\26\2\2\u03ac\u03ae\t\27\2\2\u03ad\u03ac\3"
+ "\2\2\2\u03ae\u03b1\3\2\2\2\u03af\u03ad\3\2\2\2\u03af\u03b0\3\2\2\2\u03b0"
+ "\u03b2\3\2\2\2\u03b1\u03af\3\2\2\2\u03b2\u03b4\t\26\2\2\u03b3\u03af\3"
+ "\2\2\2\u03b3\u03b4\3\2\2\2\u03b4\u00ec\3\2\2\2\u03b5\u03b8\5\u00efx\2"
+ "\u03b6\u03b8\t\26\2\2\u03b7\u03b5\3\2\2\2\u03b7\u03b6\3\2\2\2\u03b8\u00ee"
+ "\3\2\2\2\u03b9\u03be\t\30\2\2\u03ba\u03be\n\31\2\2\u03bb\u03bc\t\32\2"
+ "\2\u03bc\u03be\t\33\2\2\u03bd\u03b9\3\2\2\2\u03bd\u03ba\3\2\2\2\u03bd"
+ "\u03bb\3\2\2\2\u03be\u00f0\3\2\2\2\64\2\u0247\u024c\u024f\u0251\u0254"
+ "\u025c\u0260\u0263\u0269\u0270\u0274\u0277\u027f\u0283\u0286\u028b\u028f"
+ "\u0292\u0295\u029a\u029d\u029f\u02a5\u02a8\u02ac\u02b0\u02b4\u02bf\u02c4"
+ "\u02cb\u02cd\u02d5\u02d7\u035d\u0367\u0375\u037e\u0383\u038b\u038e\u0395"
+ "\u039c\u03a1\u03a3\u03a7\u03af\u03b3\u03b7\u03bd\3\2\3\2";
public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray());
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache();
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
public static String[] channelNames = {"DEFAULT_TOKEN_CHANNEL", "HIDDEN"};
public static String[] modeNames = {"DEFAULT_MODE"};
static {
RuntimeMetaData.checkVersion("4.9.3", RuntimeMetaData.VERSION);
}
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
public GroovyLexer(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
}
private static String[] makeRuleNames() {
return new String[] {
"ABSTRACT",
"ASSERT",
"BOOLEAN",
"BREAK",
"BYTE",
"CASE",
"CATCH",
"CHAR",
"CLASS",
"CONST",
"CONTINUE",
"DEFAULT",
"DO",
"DOUBLE",
"ELSE",
"ENUM",
"EXTENDS",
"FINAL",
"FINALLY",
"FLOAT",
"FOR",
"IF",
"GOTO",
"IMPLEMENTS",
"IMPORT",
"INSTANCEOF",
"INT",
"INTERFACE",
"LONG",
"NATIVE",
"NEW",
"PACKAGE",
"PRIVATE",
"PROTECTED",
"PUBLIC",
"RETURN",
"SHORT",
"STATIC",
"STRICTFP",
"SUPER",
"SWITCH",
"SYNCHRONIZED",
"THIS",
"THROW",
"THROWS",
"TRANSIENT",
"TRY",
"VOID",
"VOLATILE",
"WHILE",
"DECIMAL_LITERAL",
"HEX_LITERAL",
"OCT_LITERAL",
"BINARY_LITERAL",
"FLOAT_LITERAL",
"HEX_FLOAT_LITERAL",
"BOOL_LITERAL",
"CHAR_LITERAL",
"SINGLE_QUOTE_STRING",
"STRING_LITERAL",
"NULL_LITERAL",
"LPAREN",
"RPAREN",
"LBRACE",
"RBRACE",
"LBRACK",
"RBRACK",
"SEMI",
"COMMA",
"DOT",
"ASSIGN",
"GT",
"LT",
"BANG",
"TILDE",
"QUESTION",
"COLON",
"EQUAL",
"LE",
"GE",
"NOTEQUAL",
"AND",
"OR",
"INC",
"DEC",
"ADD",
"SUB",
"MUL",
"DIV",
"BITAND",
"BITOR",
"CARET",
"MOD",
"ADD_ASSIGN",
"SUB_ASSIGN",
"MUL_ASSIGN",
"DIV_ASSIGN",
"AND_ASSIGN",
"OR_ASSIGN",
"XOR_ASSIGN",
"MOD_ASSIGN",
"LSHIFT_ASSIGN",
"RSHIFT_ASSIGN",
"URSHIFT_ASSIGN",
"ARROW",
"COLONCOLON",
"AT",
"ELLIPSIS",
"WS",
"COMMENT",
"LINE_COMMENT",
"IDENTIFIER",
"ExponentPart",
"EscapeSequence",
"HexDigits",
"HexDigit",
"Digits",
"LetterOrDigit",
"Letter"
};
}
private static String[] makeLiteralNames() {
return new String[] {
null,
"'abstract'",
"'assert'",
"'boolean'",
"'break'",
"'byte'",
"'case'",
"'catch'",
"'char'",
"'class'",
"'const'",
"'continue'",
"'default'",
"'do'",
"'double'",
"'else'",
"'enum'",
"'extends'",
"'final'",
"'finally'",
"'float'",
"'for'",
"'if'",
"'goto'",
"'implements'",
"'import'",
"'instanceof'",
"'int'",
"'interface'",
"'long'",
"'native'",
"'new'",
"'package'",
"'private'",
"'protected'",
"'public'",
"'return'",
"'short'",
"'static'",
"'strictfp'",
"'super'",
"'switch'",
"'synchronized'",
"'this'",
"'throw'",
"'throws'",
"'transient'",
"'try'",
"'void'",
"'volatile'",
"'while'",
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
"'null'",
"'('",
"')'",
"'{'",
"'}'",
"'['",
"']'",
"';'",
"','",
"'.'",
"'='",
"'>'",
"'<'",
"'!'",
"'~'",
"'?'",
"':'",
"'=='",
"'<='",
"'>='",
"'!='",
"'&&'",
"'||'",
"'++'",
"'--'",
"'+'",
"'-'",
"'*'",
"'/'",
"'&'",
"'|'",
"'^'",
"'%'",
"'+='",
"'-='",
"'*='",
"'/='",
"'&='",
"'|='",
"'^='",
"'%='",
"'<<='",
"'>>='",
"'>>>='",
"'->'",
"'::'",
"'@'",
"'...'"
};
}
private static String[] makeSymbolicNames() {
return new String[] {
null,
"ABSTRACT",
"ASSERT",
"BOOLEAN",
"BREAK",
"BYTE",
"CASE",
"CATCH",
"CHAR",
"CLASS",
"CONST",
"CONTINUE",
"DEFAULT",
"DO",
"DOUBLE",
"ELSE",
"ENUM",
"EXTENDS",
"FINAL",
"FINALLY",
"FLOAT",
"FOR",
"IF",
"GOTO",
"IMPLEMENTS",
"IMPORT",
"INSTANCEOF",
"INT",
"INTERFACE",
"LONG",
"NATIVE",
"NEW",
"PACKAGE",
"PRIVATE",
"PROTECTED",
"PUBLIC",
"RETURN",
"SHORT",
"STATIC",
"STRICTFP",
"SUPER",
"SWITCH",
"SYNCHRONIZED",
"THIS",
"THROW",
"THROWS",
"TRANSIENT",
"TRY",
"VOID",
"VOLATILE",
"WHILE",
"DECIMAL_LITERAL",
"HEX_LITERAL",
"OCT_LITERAL",
"BINARY_LITERAL",
"FLOAT_LITERAL",
"HEX_FLOAT_LITERAL",
"BOOL_LITERAL",
"CHAR_LITERAL",
"SINGLE_QUOTE_STRING",
"STRING_LITERAL",
"NULL_LITERAL",
"LPAREN",
"RPAREN",
"LBRACE",
"RBRACE",
"LBRACK",
"RBRACK",
"SEMI",
"COMMA",
"DOT",
"ASSIGN",
"GT",
"LT",
"BANG",
"TILDE",
"QUESTION",
"COLON",
"EQUAL",
"LE",
"GE",
"NOTEQUAL",
"AND",
"OR",
"INC",
"DEC",
"ADD",
"SUB",
"MUL",
"DIV",
"BITAND",
"BITOR",
"CARET",
"MOD",
"ADD_ASSIGN",
"SUB_ASSIGN",
"MUL_ASSIGN",
"DIV_ASSIGN",
"AND_ASSIGN",
"OR_ASSIGN",
"XOR_ASSIGN",
"MOD_ASSIGN",
"LSHIFT_ASSIGN",
"RSHIFT_ASSIGN",
"URSHIFT_ASSIGN",
"ARROW",
"COLONCOLON",
"AT",
"ELLIPSIS",
"WS",
"COMMENT",
"LINE_COMMENT",
"IDENTIFIER"
};
}
@Override
public String[] getRuleNames() {
return ruleNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public String getSerializedATN() {
return _serializedATN;
}
@Override
public String getGrammarFileName() {
return "GroovyLexer.g4";
}
@Override
public ATN getATN() {
return _ATN;
}
@Override
public String[] getChannelNames() {
return channelNames;
}
@Override
public String[] getModeNames() {
return modeNames;
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
}
@@ -1,210 +0,0 @@
ABSTRACT=1
ASSERT=2
BOOLEAN=3
BREAK=4
BYTE=5
CASE=6
CATCH=7
CHAR=8
CLASS=9
CONST=10
CONTINUE=11
DEFAULT=12
DO=13
DOUBLE=14
ELSE=15
ENUM=16
EXTENDS=17
FINAL=18
FINALLY=19
FLOAT=20
FOR=21
IF=22
GOTO=23
IMPLEMENTS=24
IMPORT=25
INSTANCEOF=26
INT=27
INTERFACE=28
LONG=29
NATIVE=30
NEW=31
PACKAGE=32
PRIVATE=33
PROTECTED=34
PUBLIC=35
RETURN=36
SHORT=37
STATIC=38
STRICTFP=39
SUPER=40
SWITCH=41
SYNCHRONIZED=42
THIS=43
THROW=44
THROWS=45
TRANSIENT=46
TRY=47
VOID=48
VOLATILE=49
WHILE=50
DECIMAL_LITERAL=51
HEX_LITERAL=52
OCT_LITERAL=53
BINARY_LITERAL=54
FLOAT_LITERAL=55
HEX_FLOAT_LITERAL=56
BOOL_LITERAL=57
CHAR_LITERAL=58
SINGLE_QUOTE_STRING=59
STRING_LITERAL=60
NULL_LITERAL=61
LPAREN=62
RPAREN=63
LBRACE=64
RBRACE=65
LBRACK=66
RBRACK=67
SEMI=68
COMMA=69
DOT=70
ASSIGN=71
GT=72
LT=73
BANG=74
TILDE=75
QUESTION=76
COLON=77
EQUAL=78
LE=79
GE=80
NOTEQUAL=81
AND=82
OR=83
INC=84
DEC=85
ADD=86
SUB=87
MUL=88
DIV=89
BITAND=90
BITOR=91
CARET=92
MOD=93
ADD_ASSIGN=94
SUB_ASSIGN=95
MUL_ASSIGN=96
DIV_ASSIGN=97
AND_ASSIGN=98
OR_ASSIGN=99
XOR_ASSIGN=100
MOD_ASSIGN=101
LSHIFT_ASSIGN=102
RSHIFT_ASSIGN=103
URSHIFT_ASSIGN=104
ARROW=105
COLONCOLON=106
AT=107
ELLIPSIS=108
WS=109
COMMENT=110
LINE_COMMENT=111
IDENTIFIER=112
'abstract'=1
'assert'=2
'boolean'=3
'break'=4
'byte'=5
'case'=6
'catch'=7
'char'=8
'class'=9
'const'=10
'continue'=11
'default'=12
'do'=13
'double'=14
'else'=15
'enum'=16
'extends'=17
'final'=18
'finally'=19
'float'=20
'for'=21
'if'=22
'goto'=23
'implements'=24
'import'=25
'instanceof'=26
'int'=27
'interface'=28
'long'=29
'native'=30
'new'=31
'package'=32
'private'=33
'protected'=34
'public'=35
'return'=36
'short'=37
'static'=38
'strictfp'=39
'super'=40
'switch'=41
'synchronized'=42
'this'=43
'throw'=44
'throws'=45
'transient'=46
'try'=47
'void'=48
'volatile'=49
'while'=50
'null'=61
'('=62
')'=63
'{'=64
'}'=65
'['=66
']'=67
';'=68
','=69
'.'=70
'='=71
'>'=72
'<'=73
'!'=74
'~'=75
'?'=76
':'=77
'=='=78
'<='=79
'>='=80
'!='=81
'&&'=82
'||'=83
'++'=84
'--'=85
'+'=86
'-'=87
'*'=88
'/'=89
'&'=90
'|'=91
'^'=92
'%'=93
'+='=94
'-='=95
'*='=96
'/='=97
'&='=98
'|='=99
'^='=100
'%='=101
'<<='=102
'>>='=103
'>>>='=104
'->'=105
'::'=106
'@'=107
'...'=108
File diff suppressed because one or more lines are too long
@@ -1,904 +0,0 @@
// Generated from JavaLexer.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.java;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.RuntimeMetaData;
import org.antlr.v4.runtime.Vocabulary;
import org.antlr.v4.runtime.VocabularyImpl;
import org.antlr.v4.runtime.atn.ATN;
import org.antlr.v4.runtime.atn.ATNDeserializer;
import org.antlr.v4.runtime.atn.LexerATNSimulator;
import org.antlr.v4.runtime.atn.PredictionContextCache;
import org.antlr.v4.runtime.dfa.DFA;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class JavaLexer extends Lexer {
public static final int ABSTRACT = 1,
ASSERT = 2,
BOOLEAN = 3,
BREAK = 4,
BYTE = 5,
CASE = 6,
CATCH = 7,
CHAR = 8,
CLASS = 9,
CONST = 10,
CONTINUE = 11,
DEFAULT = 12,
DO = 13,
DOUBLE = 14,
ELSE = 15,
ENUM = 16,
EXTENDS = 17,
FINAL = 18,
FINALLY = 19,
FLOAT = 20,
FOR = 21,
IF = 22,
GOTO = 23,
IMPLEMENTS = 24,
IMPORT = 25,
INSTANCEOF = 26,
INT = 27,
INTERFACE = 28,
LONG = 29,
NATIVE = 30,
NEW = 31,
PACKAGE = 32,
PRIVATE = 33,
PROTECTED = 34,
PUBLIC = 35,
RETURN = 36,
SHORT = 37,
STATIC = 38,
STRICTFP = 39,
SUPER = 40,
SWITCH = 41,
SYNCHRONIZED = 42,
THIS = 43,
THROW = 44,
THROWS = 45,
TRANSIENT = 46,
TRY = 47,
VAR = 48,
VOID = 49,
VOLATILE = 50,
WHILE = 51,
DECIMAL_LITERAL = 52,
HEX_LITERAL = 53,
OCT_LITERAL = 54,
BINARY_LITERAL = 55,
FLOAT_LITERAL = 56,
HEX_FLOAT_LITERAL = 57,
BOOL_LITERAL = 58,
CHAR_LITERAL = 59,
STRING_LITERAL = 60,
NULL_LITERAL = 61,
LPAREN = 62,
RPAREN = 63,
LBRACE = 64,
RBRACE = 65,
LBRACK = 66,
RBRACK = 67,
SEMI = 68,
COMMA = 69,
DOT = 70,
ASSIGN = 71,
GT = 72,
LT = 73,
BANG = 74,
TILDE = 75,
QUESTION = 76,
COLON = 77,
EQUAL = 78,
LE = 79,
GE = 80,
NOTEQUAL = 81,
AND = 82,
OR = 83,
INC = 84,
DEC = 85,
ADD = 86,
SUB = 87,
MUL = 88,
DIV = 89,
BITAND = 90,
BITOR = 91,
CARET = 92,
MOD = 93,
ADD_ASSIGN = 94,
SUB_ASSIGN = 95,
MUL_ASSIGN = 96,
DIV_ASSIGN = 97,
AND_ASSIGN = 98,
OR_ASSIGN = 99,
XOR_ASSIGN = 100,
MOD_ASSIGN = 101,
LSHIFT_ASSIGN = 102,
RSHIFT_ASSIGN = 103,
URSHIFT_ASSIGN = 104,
ARROW = 105,
COLONCOLON = 106,
AT = 107,
ELLIPSIS = 108,
WS = 109,
BLOCK_COMMENT = 110,
LINE_COMMENT = 111,
IDENTIFIER = 112;
public static final String[] ruleNames = makeRuleNames();
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated public static final String[] tokenNames;
public static final String _serializedATN =
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2r\u03b9\b\1\4\2\t"
+ "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"
+ "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"
+ "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"
+ "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"
+ "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"
+ ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"
+ "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="
+ "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I"
+ "\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"
+ "\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"
+ "`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t"
+ "k\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4"
+ "w\tw\4x\tx\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3"
+ "\3\3\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\5\3\6\3\6\3"
+ "\6\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\b\3\b\3\t\3\t\3\t\3\t"
+ "\3\t\3\n\3\n\3\n\3\n\3\n\3\n\3\13\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f"
+ "\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16"
+ "\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20\3\21\3\21"
+ "\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\23\3\23\3\23"
+ "\3\23\3\23\3\23\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3\25"
+ "\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\30\3\30\3\30\3\30"
+ "\3\30\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\32\3\32"
+ "\3\32\3\32\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33"
+ "\3\33\3\33\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35"
+ "\3\35\3\35\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37\3\37\3\37"
+ "\3 \3 \3 \3 \3!\3!\3!\3!\3!\3!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3"
+ "#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3$\3$\3$\3$\3$\3$\3$\3%\3%\3%\3%\3%\3%\3"
+ "%\3&\3&\3&\3&\3&\3&\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3(\3(\3"
+ "(\3(\3)\3)\3)\3)\3)\3)\3*\3*\3*\3*\3*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3+\3"
+ "+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3-\3-\3-\3-\3-\3-\3.\3.\3.\3.\3.\3.\3.\3"
+ "/\3/\3/\3/\3/\3/\3/\3/\3/\3/\3\60\3\60\3\60\3\60\3\61\3\61\3\61\3\61\3"
+ "\62\3\62\3\62\3\62\3\62\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3"
+ "\64\3\64\3\64\3\64\3\64\3\64\3\65\3\65\3\65\5\65\u024c\n\65\3\65\6\65"
+ "\u024f\n\65\r\65\16\65\u0250\3\65\5\65\u0254\n\65\5\65\u0256\n\65\3\65"
+ "\5\65\u0259\n\65\3\66\3\66\3\66\3\66\7\66\u025f\n\66\f\66\16\66\u0262"
+ "\13\66\3\66\5\66\u0265\n\66\3\66\5\66\u0268\n\66\3\67\3\67\7\67\u026c"
+ "\n\67\f\67\16\67\u026f\13\67\3\67\3\67\7\67\u0273\n\67\f\67\16\67\u0276"
+ "\13\67\3\67\5\67\u0279\n\67\3\67\5\67\u027c\n\67\38\38\38\38\78\u0282"
+ "\n8\f8\168\u0285\138\38\58\u0288\n8\38\58\u028b\n8\39\39\39\59\u0290\n"
+ "9\39\39\59\u0294\n9\39\59\u0297\n9\39\59\u029a\n9\39\39\39\59\u029f\n"
+ "9\39\59\u02a2\n9\59\u02a4\n9\3:\3:\3:\3:\5:\u02aa\n:\3:\5:\u02ad\n:\3"
+ ":\3:\5:\u02b1\n:\3:\3:\5:\u02b5\n:\3:\3:\5:\u02b9\n:\3;\3;\3;\3;\3;\3"
+ ";\3;\3;\3;\5;\u02c4\n;\3<\3<\3<\5<\u02c9\n<\3<\3<\3=\3=\3=\7=\u02d0\n"
+ "=\f=\16=\u02d3\13=\3=\3=\3>\3>\3>\3>\3>\3?\3?\3@\3@\3A\3A\3B\3B\3C\3C"
+ "\3D\3D\3E\3E\3F\3F\3G\3G\3H\3H\3I\3I\3J\3J\3K\3K\3L\3L\3M\3M\3N\3N\3O"
+ "\3O\3O\3P\3P\3P\3Q\3Q\3Q\3R\3R\3R\3S\3S\3S\3T\3T\3T\3U\3U\3U\3V\3V\3V"
+ "\3W\3W\3X\3X\3Y\3Y\3Z\3Z\3[\3[\3\\\3\\\3]\3]\3^\3^\3_\3_\3_\3`\3`\3`\3"
+ "a\3a\3a\3b\3b\3b\3c\3c\3c\3d\3d\3d\3e\3e\3e\3f\3f\3f\3g\3g\3g\3g\3h\3"
+ "h\3h\3h\3i\3i\3i\3i\3i\3j\3j\3j\3k\3k\3k\3l\3l\3m\3m\3m\3m\3n\6n\u0356"
+ "\nn\rn\16n\u0357\3n\3n\3o\3o\3o\3o\7o\u0360\no\fo\16o\u0363\13o\3o\3o"
+ "\3o\3o\3o\3p\3p\3p\3p\7p\u036e\np\fp\16p\u0371\13p\3p\3p\3q\3q\7q\u0377"
+ "\nq\fq\16q\u037a\13q\3r\3r\5r\u037e\nr\3r\3r\3s\3s\3s\3s\5s\u0386\ns\3"
+ "s\5s\u0389\ns\3s\3s\3s\6s\u038e\ns\rs\16s\u038f\3s\3s\3s\3s\3s\5s\u0397"
+ "\ns\3t\3t\3t\7t\u039c\nt\ft\16t\u039f\13t\3t\5t\u03a2\nt\3u\3u\3v\3v\7"
+ "v\u03a8\nv\fv\16v\u03ab\13v\3v\5v\u03ae\nv\3w\3w\5w\u03b2\nw\3x\3x\3x"
+ "\3x\5x\u03b8\nx\3\u0361\2y\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25"
+ "\f\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32"
+ "\63\33\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a"
+ "\62c\63e\64g\65i\66k\67m8o9q:s;u<w=y>{?}@\177A\u0081B\u0083C\u0085D\u0087"
+ "E\u0089F\u008bG\u008dH\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009b"
+ "O\u009dP\u009fQ\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00af"
+ "Y\u00b1Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3"
+ "c\u00c5d\u00c7e\u00c9f\u00cbg\u00cdh\u00cfi\u00d1j\u00d3k\u00d5l\u00d7"
+ "m\u00d9n\u00dbo\u00ddp\u00dfq\u00e1r\u00e3\2\u00e5\2\u00e7\2\u00e9\2\u00eb"
+ "\2\u00ed\2\u00ef\2\3\2\34\3\2\63;\4\2NNnn\4\2ZZzz\5\2\62;CHch\6\2\62;"
+ "CHaach\3\2\629\4\2\629aa\4\2DDdd\3\2\62\63\4\2\62\63aa\6\2FFHHffhh\4\2"
+ "RRrr\4\2--//\6\2\f\f\17\17))^^\6\2\f\f\17\17$$^^\5\2\13\f\16\17\"\"\4"
+ "\2\f\f\17\17\4\2GGgg\n\2$$))^^ddhhppttvv\3\2\62\65\3\2\62;\4\2\62;aa\6"
+ "\2&&C\\aac|\4\2\2\u0081\ud802\udc01\3\2\ud802\udc01\3\2\udc02\ue001\2"
+ "\u03e2\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2"
+ "\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3"
+ "\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2"
+ "\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2"
+ "/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2"
+ "\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2"
+ "G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3"
+ "\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2"
+ "\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2"
+ "m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2y\3"
+ "\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2\177\3\2\2\2\2\u0081\3\2\2\2\2\u0083\3\2"
+ "\2\2\2\u0085\3\2\2\2\2\u0087\3\2\2\2\2\u0089\3\2\2\2\2\u008b\3\2\2\2\2"
+ "\u008d\3\2\2\2\2\u008f\3\2\2\2\2\u0091\3\2\2\2\2\u0093\3\2\2\2\2\u0095"
+ "\3\2\2\2\2\u0097\3\2\2\2\2\u0099\3\2\2\2\2\u009b\3\2\2\2\2\u009d\3\2\2"
+ "\2\2\u009f\3\2\2\2\2\u00a1\3\2\2\2\2\u00a3\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7"
+ "\3\2\2\2\2\u00a9\3\2\2\2\2\u00ab\3\2\2\2\2\u00ad\3\2\2\2\2\u00af\3\2\2"
+ "\2\2\u00b1\3\2\2\2\2\u00b3\3\2\2\2\2\u00b5\3\2\2\2\2\u00b7\3\2\2\2\2\u00b9"
+ "\3\2\2\2\2\u00bb\3\2\2\2\2\u00bd\3\2\2\2\2\u00bf\3\2\2\2\2\u00c1\3\2\2"
+ "\2\2\u00c3\3\2\2\2\2\u00c5\3\2\2\2\2\u00c7\3\2\2\2\2\u00c9\3\2\2\2\2\u00cb"
+ "\3\2\2\2\2\u00cd\3\2\2\2\2\u00cf\3\2\2\2\2\u00d1\3\2\2\2\2\u00d3\3\2\2"
+ "\2\2\u00d5\3\2\2\2\2\u00d7\3\2\2\2\2\u00d9\3\2\2\2\2\u00db\3\2\2\2\2\u00dd"
+ "\3\2\2\2\2\u00df\3\2\2\2\2\u00e1\3\2\2\2\3\u00f1\3\2\2\2\5\u00fa\3\2\2"
+ "\2\7\u0101\3\2\2\2\t\u0109\3\2\2\2\13\u010f\3\2\2\2\r\u0114\3\2\2\2\17"
+ "\u0119\3\2\2\2\21\u011f\3\2\2\2\23\u0124\3\2\2\2\25\u012a\3\2\2\2\27\u0130"
+ "\3\2\2\2\31\u0139\3\2\2\2\33\u0141\3\2\2\2\35\u0144\3\2\2\2\37\u014b\3"
+ "\2\2\2!\u0150\3\2\2\2#\u0155\3\2\2\2%\u015d\3\2\2\2\'\u0163\3\2\2\2)\u016b"
+ "\3\2\2\2+\u0171\3\2\2\2-\u0175\3\2\2\2/\u0178\3\2\2\2\61\u017d\3\2\2\2"
+ "\63\u0188\3\2\2\2\65\u018f\3\2\2\2\67\u019a\3\2\2\29\u019e\3\2\2\2;\u01a8"
+ "\3\2\2\2=\u01ad\3\2\2\2?\u01b4\3\2\2\2A\u01b8\3\2\2\2C\u01c0\3\2\2\2E"
+ "\u01c8\3\2\2\2G\u01d2\3\2\2\2I\u01d9\3\2\2\2K\u01e0\3\2\2\2M\u01e6\3\2"
+ "\2\2O\u01ed\3\2\2\2Q\u01f6\3\2\2\2S\u01fc\3\2\2\2U\u0203\3\2\2\2W\u0210"
+ "\3\2\2\2Y\u0215\3\2\2\2[\u021b\3\2\2\2]\u0222\3\2\2\2_\u022c\3\2\2\2a"
+ "\u0230\3\2\2\2c\u0234\3\2\2\2e\u0239\3\2\2\2g\u0242\3\2\2\2i\u0255\3\2"
+ "\2\2k\u025a\3\2\2\2m\u0269\3\2\2\2o\u027d\3\2\2\2q\u02a3\3\2\2\2s\u02a5"
+ "\3\2\2\2u\u02c3\3\2\2\2w\u02c5\3\2\2\2y\u02cc\3\2\2\2{\u02d6\3\2\2\2}"
+ "\u02db\3\2\2\2\177\u02dd\3\2\2\2\u0081\u02df\3\2\2\2\u0083\u02e1\3\2\2"
+ "\2\u0085\u02e3\3\2\2\2\u0087\u02e5\3\2\2\2\u0089\u02e7\3\2\2\2\u008b\u02e9"
+ "\3\2\2\2\u008d\u02eb\3\2\2\2\u008f\u02ed\3\2\2\2\u0091\u02ef\3\2\2\2\u0093"
+ "\u02f1\3\2\2\2\u0095\u02f3\3\2\2\2\u0097\u02f5\3\2\2\2\u0099\u02f7\3\2"
+ "\2\2\u009b\u02f9\3\2\2\2\u009d\u02fb\3\2\2\2\u009f\u02fe\3\2\2\2\u00a1"
+ "\u0301\3\2\2\2\u00a3\u0304\3\2\2\2\u00a5\u0307\3\2\2\2\u00a7\u030a\3\2"
+ "\2\2\u00a9\u030d\3\2\2\2\u00ab\u0310\3\2\2\2\u00ad\u0313\3\2\2\2\u00af"
+ "\u0315\3\2\2\2\u00b1\u0317\3\2\2\2\u00b3\u0319\3\2\2\2\u00b5\u031b\3\2"
+ "\2\2\u00b7\u031d\3\2\2\2\u00b9\u031f\3\2\2\2\u00bb\u0321\3\2\2\2\u00bd"
+ "\u0323\3\2\2\2\u00bf\u0326\3\2\2\2\u00c1\u0329\3\2\2\2\u00c3\u032c\3\2"
+ "\2\2\u00c5\u032f\3\2\2\2\u00c7\u0332\3\2\2\2\u00c9\u0335\3\2\2\2\u00cb"
+ "\u0338\3\2\2\2\u00cd\u033b\3\2\2\2\u00cf\u033f\3\2\2\2\u00d1\u0343\3\2"
+ "\2\2\u00d3\u0348\3\2\2\2\u00d5\u034b\3\2\2\2\u00d7\u034e\3\2\2\2\u00d9"
+ "\u0350\3\2\2\2\u00db\u0355\3\2\2\2\u00dd\u035b\3\2\2\2\u00df\u0369\3\2"
+ "\2\2\u00e1\u0374\3\2\2\2\u00e3\u037b\3\2\2\2\u00e5\u0396\3\2\2\2\u00e7"
+ "\u0398\3\2\2\2\u00e9\u03a3\3\2\2\2\u00eb\u03a5\3\2\2\2\u00ed\u03b1\3\2"
+ "\2\2\u00ef\u03b7\3\2\2\2\u00f1\u00f2\7c\2\2\u00f2\u00f3\7d\2\2\u00f3\u00f4"
+ "\7u\2\2\u00f4\u00f5\7v\2\2\u00f5\u00f6\7t\2\2\u00f6\u00f7\7c\2\2\u00f7"
+ "\u00f8\7e\2\2\u00f8\u00f9\7v\2\2\u00f9\4\3\2\2\2\u00fa\u00fb\7c\2\2\u00fb"
+ "\u00fc\7u\2\2\u00fc\u00fd\7u\2\2\u00fd\u00fe\7g\2\2\u00fe\u00ff\7t\2\2"
+ "\u00ff\u0100\7v\2\2\u0100\6\3\2\2\2\u0101\u0102\7d\2\2\u0102\u0103\7q"
+ "\2\2\u0103\u0104\7q\2\2\u0104\u0105\7n\2\2\u0105\u0106\7g\2\2\u0106\u0107"
+ "\7c\2\2\u0107\u0108\7p\2\2\u0108\b\3\2\2\2\u0109\u010a\7d\2\2\u010a\u010b"
+ "\7t\2\2\u010b\u010c\7g\2\2\u010c\u010d\7c\2\2\u010d\u010e\7m\2\2\u010e"
+ "\n\3\2\2\2\u010f\u0110\7d\2\2\u0110\u0111\7{\2\2\u0111\u0112\7v\2\2\u0112"
+ "\u0113\7g\2\2\u0113\f\3\2\2\2\u0114\u0115\7e\2\2\u0115\u0116\7c\2\2\u0116"
+ "\u0117\7u\2\2\u0117\u0118\7g\2\2\u0118\16\3\2\2\2\u0119\u011a\7e\2\2\u011a"
+ "\u011b\7c\2\2\u011b\u011c\7v\2\2\u011c\u011d\7e\2\2\u011d\u011e\7j\2\2"
+ "\u011e\20\3\2\2\2\u011f\u0120\7e\2\2\u0120\u0121\7j\2\2\u0121\u0122\7"
+ "c\2\2\u0122\u0123\7t\2\2\u0123\22\3\2\2\2\u0124\u0125\7e\2\2\u0125\u0126"
+ "\7n\2\2\u0126\u0127\7c\2\2\u0127\u0128\7u\2\2\u0128\u0129\7u\2\2\u0129"
+ "\24\3\2\2\2\u012a\u012b\7e\2\2\u012b\u012c\7q\2\2\u012c\u012d\7p\2\2\u012d"
+ "\u012e\7u\2\2\u012e\u012f\7v\2\2\u012f\26\3\2\2\2\u0130\u0131\7e\2\2\u0131"
+ "\u0132\7q\2\2\u0132\u0133\7p\2\2\u0133\u0134\7v\2\2\u0134\u0135\7k\2\2"
+ "\u0135\u0136\7p\2\2\u0136\u0137\7w\2\2\u0137\u0138\7g\2\2\u0138\30\3\2"
+ "\2\2\u0139\u013a\7f\2\2\u013a\u013b\7g\2\2\u013b\u013c\7h\2\2\u013c\u013d"
+ "\7c\2\2\u013d\u013e\7w\2\2\u013e\u013f\7n\2\2\u013f\u0140\7v\2\2\u0140"
+ "\32\3\2\2\2\u0141\u0142\7f\2\2\u0142\u0143\7q\2\2\u0143\34\3\2\2\2\u0144"
+ "\u0145\7f\2\2\u0145\u0146\7q\2\2\u0146\u0147\7w\2\2\u0147\u0148\7d\2\2"
+ "\u0148\u0149\7n\2\2\u0149\u014a\7g\2\2\u014a\36\3\2\2\2\u014b\u014c\7"
+ "g\2\2\u014c\u014d\7n\2\2\u014d\u014e\7u\2\2\u014e\u014f\7g\2\2\u014f "
+ "\3\2\2\2\u0150\u0151\7g\2\2\u0151\u0152\7p\2\2\u0152\u0153\7w\2\2\u0153"
+ "\u0154\7o\2\2\u0154\"\3\2\2\2\u0155\u0156\7g\2\2\u0156\u0157\7z\2\2\u0157"
+ "\u0158\7v\2\2\u0158\u0159\7g\2\2\u0159\u015a\7p\2\2\u015a\u015b\7f\2\2"
+ "\u015b\u015c\7u\2\2\u015c$\3\2\2\2\u015d\u015e\7h\2\2\u015e\u015f\7k\2"
+ "\2\u015f\u0160\7p\2\2\u0160\u0161\7c\2\2\u0161\u0162\7n\2\2\u0162&\3\2"
+ "\2\2\u0163\u0164\7h\2\2\u0164\u0165\7k\2\2\u0165\u0166\7p\2\2\u0166\u0167"
+ "\7c\2\2\u0167\u0168\7n\2\2\u0168\u0169\7n\2\2\u0169\u016a\7{\2\2\u016a"
+ "(\3\2\2\2\u016b\u016c\7h\2\2\u016c\u016d\7n\2\2\u016d\u016e\7q\2\2\u016e"
+ "\u016f\7c\2\2\u016f\u0170\7v\2\2\u0170*\3\2\2\2\u0171\u0172\7h\2\2\u0172"
+ "\u0173\7q\2\2\u0173\u0174\7t\2\2\u0174,\3\2\2\2\u0175\u0176\7k\2\2\u0176"
+ "\u0177\7h\2\2\u0177.\3\2\2\2\u0178\u0179\7i\2\2\u0179\u017a\7q\2\2\u017a"
+ "\u017b\7v\2\2\u017b\u017c\7q\2\2\u017c\60\3\2\2\2\u017d\u017e\7k\2\2\u017e"
+ "\u017f\7o\2\2\u017f\u0180\7r\2\2\u0180\u0181\7n\2\2\u0181\u0182\7g\2\2"
+ "\u0182\u0183\7o\2\2\u0183\u0184\7g\2\2\u0184\u0185\7p\2\2\u0185\u0186"
+ "\7v\2\2\u0186\u0187\7u\2\2\u0187\62\3\2\2\2\u0188\u0189\7k\2\2\u0189\u018a"
+ "\7o\2\2\u018a\u018b\7r\2\2\u018b\u018c\7q\2\2\u018c\u018d\7t\2\2\u018d"
+ "\u018e\7v\2\2\u018e\64\3\2\2\2\u018f\u0190\7k\2\2\u0190\u0191\7p\2\2\u0191"
+ "\u0192\7u\2\2\u0192\u0193\7v\2\2\u0193\u0194\7c\2\2\u0194\u0195\7p\2\2"
+ "\u0195\u0196\7e\2\2\u0196\u0197\7g\2\2\u0197\u0198\7q\2\2\u0198\u0199"
+ "\7h\2\2\u0199\66\3\2\2\2\u019a\u019b\7k\2\2\u019b\u019c\7p\2\2\u019c\u019d"
+ "\7v\2\2\u019d8\3\2\2\2\u019e\u019f\7k\2\2\u019f\u01a0\7p\2\2\u01a0\u01a1"
+ "\7v\2\2\u01a1\u01a2\7g\2\2\u01a2\u01a3\7t\2\2\u01a3\u01a4\7h\2\2\u01a4"
+ "\u01a5\7c\2\2\u01a5\u01a6\7e\2\2\u01a6\u01a7\7g\2\2\u01a7:\3\2\2\2\u01a8"
+ "\u01a9\7n\2\2\u01a9\u01aa\7q\2\2\u01aa\u01ab\7p\2\2\u01ab\u01ac\7i\2\2"
+ "\u01ac<\3\2\2\2\u01ad\u01ae\7p\2\2\u01ae\u01af\7c\2\2\u01af\u01b0\7v\2"
+ "\2\u01b0\u01b1\7k\2\2\u01b1\u01b2\7x\2\2\u01b2\u01b3\7g\2\2\u01b3>\3\2"
+ "\2\2\u01b4\u01b5\7p\2\2\u01b5\u01b6\7g\2\2\u01b6\u01b7\7y\2\2\u01b7@\3"
+ "\2\2\2\u01b8\u01b9\7r\2\2\u01b9\u01ba\7c\2\2\u01ba\u01bb\7e\2\2\u01bb"
+ "\u01bc\7m\2\2\u01bc\u01bd\7c\2\2\u01bd\u01be\7i\2\2\u01be\u01bf\7g\2\2"
+ "\u01bfB\3\2\2\2\u01c0\u01c1\7r\2\2\u01c1\u01c2\7t\2\2\u01c2\u01c3\7k\2"
+ "\2\u01c3\u01c4\7x\2\2\u01c4\u01c5\7c\2\2\u01c5\u01c6\7v\2\2\u01c6\u01c7"
+ "\7g\2\2\u01c7D\3\2\2\2\u01c8\u01c9\7r\2\2\u01c9\u01ca\7t\2\2\u01ca\u01cb"
+ "\7q\2\2\u01cb\u01cc\7v\2\2\u01cc\u01cd\7g\2\2\u01cd\u01ce\7e\2\2\u01ce"
+ "\u01cf\7v\2\2\u01cf\u01d0\7g\2\2\u01d0\u01d1\7f\2\2\u01d1F\3\2\2\2\u01d2"
+ "\u01d3\7r\2\2\u01d3\u01d4\7w\2\2\u01d4\u01d5\7d\2\2\u01d5\u01d6\7n\2\2"
+ "\u01d6\u01d7\7k\2\2\u01d7\u01d8\7e\2\2\u01d8H\3\2\2\2\u01d9\u01da\7t\2"
+ "\2\u01da\u01db\7g\2\2\u01db\u01dc\7v\2\2\u01dc\u01dd\7w\2\2\u01dd\u01de"
+ "\7t\2\2\u01de\u01df\7p\2\2\u01dfJ\3\2\2\2\u01e0\u01e1\7u\2\2\u01e1\u01e2"
+ "\7j\2\2\u01e2\u01e3\7q\2\2\u01e3\u01e4\7t\2\2\u01e4\u01e5\7v\2\2\u01e5"
+ "L\3\2\2\2\u01e6\u01e7\7u\2\2\u01e7\u01e8\7v\2\2\u01e8\u01e9\7c\2\2\u01e9"
+ "\u01ea\7v\2\2\u01ea\u01eb\7k\2\2\u01eb\u01ec\7e\2\2\u01ecN\3\2\2\2\u01ed"
+ "\u01ee\7u\2\2\u01ee\u01ef\7v\2\2\u01ef\u01f0\7t\2\2\u01f0\u01f1\7k\2\2"
+ "\u01f1\u01f2\7e\2\2\u01f2\u01f3\7v\2\2\u01f3\u01f4\7h\2\2\u01f4\u01f5"
+ "\7r\2\2\u01f5P\3\2\2\2\u01f6\u01f7\7u\2\2\u01f7\u01f8\7w\2\2\u01f8\u01f9"
+ "\7r\2\2\u01f9\u01fa\7g\2\2\u01fa\u01fb\7t\2\2\u01fbR\3\2\2\2\u01fc\u01fd"
+ "\7u\2\2\u01fd\u01fe\7y\2\2\u01fe\u01ff\7k\2\2\u01ff\u0200\7v\2\2\u0200"
+ "\u0201\7e\2\2\u0201\u0202\7j\2\2\u0202T\3\2\2\2\u0203\u0204\7u\2\2\u0204"
+ "\u0205\7{\2\2\u0205\u0206\7p\2\2\u0206\u0207\7e\2\2\u0207\u0208\7j\2\2"
+ "\u0208\u0209\7t\2\2\u0209\u020a\7q\2\2\u020a\u020b\7p\2\2\u020b\u020c"
+ "\7k\2\2\u020c\u020d\7|\2\2\u020d\u020e\7g\2\2\u020e\u020f\7f\2\2\u020f"
+ "V\3\2\2\2\u0210\u0211\7v\2\2\u0211\u0212\7j\2\2\u0212\u0213\7k\2\2\u0213"
+ "\u0214\7u\2\2\u0214X\3\2\2\2\u0215\u0216\7v\2\2\u0216\u0217\7j\2\2\u0217"
+ "\u0218\7t\2\2\u0218\u0219\7q\2\2\u0219\u021a\7y\2\2\u021aZ\3\2\2\2\u021b"
+ "\u021c\7v\2\2\u021c\u021d\7j\2\2\u021d\u021e\7t\2\2\u021e\u021f\7q\2\2"
+ "\u021f\u0220\7y\2\2\u0220\u0221\7u\2\2\u0221\\\3\2\2\2\u0222\u0223\7v"
+ "\2\2\u0223\u0224\7t\2\2\u0224\u0225\7c\2\2\u0225\u0226\7p\2\2\u0226\u0227"
+ "\7u\2\2\u0227\u0228\7k\2\2\u0228\u0229\7g\2\2\u0229\u022a\7p\2\2\u022a"
+ "\u022b\7v\2\2\u022b^\3\2\2\2\u022c\u022d\7v\2\2\u022d\u022e\7t\2\2\u022e"
+ "\u022f\7{\2\2\u022f`\3\2\2\2\u0230\u0231\7x\2\2\u0231\u0232\7c\2\2\u0232"
+ "\u0233\7t\2\2\u0233b\3\2\2\2\u0234\u0235\7x\2\2\u0235\u0236\7q\2\2\u0236"
+ "\u0237\7k\2\2\u0237\u0238\7f\2\2\u0238d\3\2\2\2\u0239\u023a\7x\2\2\u023a"
+ "\u023b\7q\2\2\u023b\u023c\7n\2\2\u023c\u023d\7c\2\2\u023d\u023e\7v\2\2"
+ "\u023e\u023f\7k\2\2\u023f\u0240\7n\2\2\u0240\u0241\7g\2\2\u0241f\3\2\2"
+ "\2\u0242\u0243\7y\2\2\u0243\u0244\7j\2\2\u0244\u0245\7k\2\2\u0245\u0246"
+ "\7n\2\2\u0246\u0247\7g\2\2\u0247h\3\2\2\2\u0248\u0256\7\62\2\2\u0249\u0253"
+ "\t\2\2\2\u024a\u024c\5\u00ebv\2\u024b\u024a\3\2\2\2\u024b\u024c\3\2\2"
+ "\2\u024c\u0254\3\2\2\2\u024d\u024f\7a\2\2\u024e\u024d\3\2\2\2\u024f\u0250"
+ "\3\2\2\2\u0250\u024e\3\2\2\2\u0250\u0251\3\2\2\2\u0251\u0252\3\2\2\2\u0252"
+ "\u0254\5\u00ebv\2\u0253\u024b\3\2\2\2\u0253\u024e\3\2\2\2\u0254\u0256"
+ "\3\2\2\2\u0255\u0248\3\2\2\2\u0255\u0249\3\2\2\2\u0256\u0258\3\2\2\2\u0257"
+ "\u0259\t\3\2\2\u0258\u0257\3\2\2\2\u0258\u0259\3\2\2\2\u0259j\3\2\2\2"
+ "\u025a\u025b\7\62\2\2\u025b\u025c\t\4\2\2\u025c\u0264\t\5\2\2\u025d\u025f"
+ "\t\6\2\2\u025e\u025d\3\2\2\2\u025f\u0262\3\2\2\2\u0260\u025e\3\2\2\2\u0260"
+ "\u0261\3\2\2\2\u0261\u0263\3\2\2\2\u0262\u0260\3\2\2\2\u0263\u0265\t\5"
+ "\2\2\u0264\u0260\3\2\2\2\u0264\u0265\3\2\2\2\u0265\u0267\3\2\2\2\u0266"
+ "\u0268\t\3\2\2\u0267\u0266\3\2\2\2\u0267\u0268\3\2\2\2\u0268l\3\2\2\2"
+ "\u0269\u026d\7\62\2\2\u026a\u026c\7a\2\2\u026b\u026a\3\2\2\2\u026c\u026f"
+ "\3\2\2\2\u026d\u026b\3\2\2\2\u026d\u026e\3\2\2\2\u026e\u0270\3\2\2\2\u026f"
+ "\u026d\3\2\2\2\u0270\u0278\t\7\2\2\u0271\u0273\t\b\2\2\u0272\u0271\3\2"
+ "\2\2\u0273\u0276\3\2\2\2\u0274\u0272\3\2\2\2\u0274\u0275\3\2\2\2\u0275"
+ "\u0277\3\2\2\2\u0276\u0274\3\2\2\2\u0277\u0279\t\7\2\2\u0278\u0274\3\2"
+ "\2\2\u0278\u0279\3\2\2\2\u0279\u027b\3\2\2\2\u027a\u027c\t\3\2\2\u027b"
+ "\u027a\3\2\2\2\u027b\u027c\3\2\2\2\u027cn\3\2\2\2\u027d\u027e\7\62\2\2"
+ "\u027e\u027f\t\t\2\2\u027f\u0287\t\n\2\2\u0280\u0282\t\13\2\2\u0281\u0280"
+ "\3\2\2\2\u0282\u0285\3\2\2\2\u0283\u0281\3\2\2\2\u0283\u0284\3\2\2\2\u0284"
+ "\u0286\3\2\2\2\u0285\u0283\3\2\2\2\u0286\u0288\t\n\2\2\u0287\u0283\3\2"
+ "\2\2\u0287\u0288\3\2\2\2\u0288\u028a\3\2\2\2\u0289\u028b\t\3\2\2\u028a"
+ "\u0289\3\2\2\2\u028a\u028b\3\2\2\2\u028bp\3\2\2\2\u028c\u028d\5\u00eb"
+ "v\2\u028d\u028f\7\60\2\2\u028e\u0290\5\u00ebv\2\u028f\u028e\3\2\2\2\u028f"
+ "\u0290\3\2\2\2\u0290\u0294\3\2\2\2\u0291\u0292\7\60\2\2\u0292\u0294\5"
+ "\u00ebv\2\u0293\u028c\3\2\2\2\u0293\u0291\3\2\2\2\u0294\u0296\3\2\2\2"
+ "\u0295\u0297\5\u00e3r\2\u0296\u0295\3\2\2\2\u0296\u0297\3\2\2\2\u0297"
+ "\u0299\3\2\2\2\u0298\u029a\t\f\2\2\u0299\u0298\3\2\2\2\u0299\u029a\3\2"
+ "\2\2\u029a\u02a4\3\2\2\2\u029b\u02a1\5\u00ebv\2\u029c\u029e\5\u00e3r\2"
+ "\u029d\u029f\t\f\2\2\u029e\u029d\3\2\2\2\u029e\u029f\3\2\2\2\u029f\u02a2"
+ "\3\2\2\2\u02a0\u02a2\t\f\2\2\u02a1\u029c\3\2\2\2\u02a1\u02a0\3\2\2\2\u02a2"
+ "\u02a4\3\2\2\2\u02a3\u0293\3\2\2\2\u02a3\u029b\3\2\2\2\u02a4r\3\2\2\2"
+ "\u02a5\u02a6\7\62\2\2\u02a6\u02b0\t\4\2\2\u02a7\u02a9\5\u00e7t\2\u02a8"
+ "\u02aa\7\60\2\2\u02a9\u02a8\3\2\2\2\u02a9\u02aa\3\2\2\2\u02aa\u02b1\3"
+ "\2\2\2\u02ab\u02ad\5\u00e7t\2\u02ac\u02ab\3\2\2\2\u02ac\u02ad\3\2\2\2"
+ "\u02ad\u02ae\3\2\2\2\u02ae\u02af\7\60\2\2\u02af\u02b1\5\u00e7t\2\u02b0"
+ "\u02a7\3\2\2\2\u02b0\u02ac\3\2\2\2\u02b1\u02b2\3\2\2\2\u02b2\u02b4\t\r"
+ "\2\2\u02b3\u02b5\t\16\2\2\u02b4\u02b3\3\2\2\2\u02b4\u02b5\3\2\2\2\u02b5"
+ "\u02b6\3\2\2\2\u02b6\u02b8\5\u00ebv\2\u02b7\u02b9\t\f\2\2\u02b8\u02b7"
+ "\3\2\2\2\u02b8\u02b9\3\2\2\2\u02b9t\3\2\2\2\u02ba\u02bb\7v\2\2\u02bb\u02bc"
+ "\7t\2\2\u02bc\u02bd\7w\2\2\u02bd\u02c4\7g\2\2\u02be\u02bf\7h\2\2\u02bf"
+ "\u02c0\7c\2\2\u02c0\u02c1\7n\2\2\u02c1\u02c2\7u\2\2\u02c2\u02c4\7g\2\2"
+ "\u02c3\u02ba\3\2\2\2\u02c3\u02be\3\2\2\2\u02c4v\3\2\2\2\u02c5\u02c8\7"
+ ")\2\2\u02c6\u02c9\n\17\2\2\u02c7\u02c9\5\u00e5s\2\u02c8\u02c6\3\2\2\2"
+ "\u02c8\u02c7\3\2\2\2\u02c9\u02ca\3\2\2\2\u02ca\u02cb\7)\2\2\u02cbx\3\2"
+ "\2\2\u02cc\u02d1\7$\2\2\u02cd\u02d0\n\20\2\2\u02ce\u02d0\5\u00e5s\2\u02cf"
+ "\u02cd\3\2\2\2\u02cf\u02ce\3\2\2\2\u02d0\u02d3\3\2\2\2\u02d1\u02cf\3\2"
+ "\2\2\u02d1\u02d2\3\2\2\2\u02d2\u02d4\3\2\2\2\u02d3\u02d1\3\2\2\2\u02d4"
+ "\u02d5\7$\2\2\u02d5z\3\2\2\2\u02d6\u02d7\7p\2\2\u02d7\u02d8\7w\2\2\u02d8"
+ "\u02d9\7n\2\2\u02d9\u02da\7n\2\2\u02da|\3\2\2\2\u02db\u02dc\7*\2\2\u02dc"
+ "~\3\2\2\2\u02dd\u02de\7+\2\2\u02de\u0080\3\2\2\2\u02df\u02e0\7}\2\2\u02e0"
+ "\u0082\3\2\2\2\u02e1\u02e2\7\177\2\2\u02e2\u0084\3\2\2\2\u02e3\u02e4\7"
+ "]\2\2\u02e4\u0086\3\2\2\2\u02e5\u02e6\7_\2\2\u02e6\u0088\3\2\2\2\u02e7"
+ "\u02e8\7=\2\2\u02e8\u008a\3\2\2\2\u02e9\u02ea\7.\2\2\u02ea\u008c\3\2\2"
+ "\2\u02eb\u02ec\7\60\2\2\u02ec\u008e\3\2\2\2\u02ed\u02ee\7?\2\2\u02ee\u0090"
+ "\3\2\2\2\u02ef\u02f0\7@\2\2\u02f0\u0092\3\2\2\2\u02f1\u02f2\7>\2\2\u02f2"
+ "\u0094\3\2\2\2\u02f3\u02f4\7#\2\2\u02f4\u0096\3\2\2\2\u02f5\u02f6\7\u0080"
+ "\2\2\u02f6\u0098\3\2\2\2\u02f7\u02f8\7A\2\2\u02f8\u009a\3\2\2\2\u02f9"
+ "\u02fa\7<\2\2\u02fa\u009c\3\2\2\2\u02fb\u02fc\7?\2\2\u02fc\u02fd\7?\2"
+ "\2\u02fd\u009e\3\2\2\2\u02fe\u02ff\7>\2\2\u02ff\u0300\7?\2\2\u0300\u00a0"
+ "\3\2\2\2\u0301\u0302\7@\2\2\u0302\u0303\7?\2\2\u0303\u00a2\3\2\2\2\u0304"
+ "\u0305\7#\2\2\u0305\u0306\7?\2\2\u0306\u00a4\3\2\2\2\u0307\u0308\7(\2"
+ "\2\u0308\u0309\7(\2\2\u0309\u00a6\3\2\2\2\u030a\u030b\7~\2\2\u030b\u030c"
+ "\7~\2\2\u030c\u00a8\3\2\2\2\u030d\u030e\7-\2\2\u030e\u030f\7-\2\2\u030f"
+ "\u00aa\3\2\2\2\u0310\u0311\7/\2\2\u0311\u0312\7/\2\2\u0312\u00ac\3\2\2"
+ "\2\u0313\u0314\7-\2\2\u0314\u00ae\3\2\2\2\u0315\u0316\7/\2\2\u0316\u00b0"
+ "\3\2\2\2\u0317\u0318\7,\2\2\u0318\u00b2\3\2\2\2\u0319\u031a\7\61\2\2\u031a"
+ "\u00b4\3\2\2\2\u031b\u031c\7(\2\2\u031c\u00b6\3\2\2\2\u031d\u031e\7~\2"
+ "\2\u031e\u00b8\3\2\2\2\u031f\u0320\7`\2\2\u0320\u00ba\3\2\2\2\u0321\u0322"
+ "\7\'\2\2\u0322\u00bc\3\2\2\2\u0323\u0324\7-\2\2\u0324\u0325\7?\2\2\u0325"
+ "\u00be\3\2\2\2\u0326\u0327\7/\2\2\u0327\u0328\7?\2\2\u0328\u00c0\3\2\2"
+ "\2\u0329\u032a\7,\2\2\u032a\u032b\7?\2\2\u032b\u00c2\3\2\2\2\u032c\u032d"
+ "\7\61\2\2\u032d\u032e\7?\2\2\u032e\u00c4\3\2\2\2\u032f\u0330\7(\2\2\u0330"
+ "\u0331\7?\2\2\u0331\u00c6\3\2\2\2\u0332\u0333\7~\2\2\u0333\u0334\7?\2"
+ "\2\u0334\u00c8\3\2\2\2\u0335\u0336\7`\2\2\u0336\u0337\7?\2\2\u0337\u00ca"
+ "\3\2\2\2\u0338\u0339\7\'\2\2\u0339\u033a\7?\2\2\u033a\u00cc\3\2\2\2\u033b"
+ "\u033c\7>\2\2\u033c\u033d\7>\2\2\u033d\u033e\7?\2\2\u033e\u00ce\3\2\2"
+ "\2\u033f\u0340\7@\2\2\u0340\u0341\7@\2\2\u0341\u0342\7?\2\2\u0342\u00d0"
+ "\3\2\2\2\u0343\u0344\7@\2\2\u0344\u0345\7@\2\2\u0345\u0346\7@\2\2\u0346"
+ "\u0347\7?\2\2\u0347\u00d2\3\2\2\2\u0348\u0349\7/\2\2\u0349\u034a\7@\2"
+ "\2\u034a\u00d4\3\2\2\2\u034b\u034c\7<\2\2\u034c\u034d\7<\2\2\u034d\u00d6"
+ "\3\2\2\2\u034e\u034f\7B\2\2\u034f\u00d8\3\2\2\2\u0350\u0351\7\60\2\2\u0351"
+ "\u0352\7\60\2\2\u0352\u0353\7\60\2\2\u0353\u00da\3\2\2\2\u0354\u0356\t"
+ "\21\2\2\u0355\u0354\3\2\2\2\u0356\u0357\3\2\2\2\u0357\u0355\3\2\2\2\u0357"
+ "\u0358\3\2\2\2\u0358\u0359\3\2\2\2\u0359\u035a\bn\2\2\u035a\u00dc\3\2"
+ "\2\2\u035b\u035c\7\61\2\2\u035c\u035d\7,\2\2\u035d\u0361\3\2\2\2\u035e"
+ "\u0360\13\2\2\2\u035f\u035e\3\2\2\2\u0360\u0363\3\2\2\2\u0361\u0362\3"
+ "\2\2\2\u0361\u035f\3\2\2\2\u0362\u0364\3\2\2\2\u0363\u0361\3\2\2\2\u0364"
+ "\u0365\7,\2\2\u0365\u0366\7\61\2\2\u0366\u0367\3\2\2\2\u0367\u0368\bo"
+ "\2\2\u0368\u00de\3\2\2\2\u0369\u036a\7\61\2\2\u036a\u036b\7\61\2\2\u036b"
+ "\u036f\3\2\2\2\u036c\u036e\n\22\2\2\u036d\u036c\3\2\2\2\u036e\u0371\3"
+ "\2\2\2\u036f\u036d\3\2\2\2\u036f\u0370\3\2\2\2\u0370\u0372\3\2\2\2\u0371"
+ "\u036f\3\2\2\2\u0372\u0373\bp\2\2\u0373\u00e0\3\2\2\2\u0374\u0378\5\u00ef"
+ "x\2\u0375\u0377\5\u00edw\2\u0376\u0375\3\2\2\2\u0377\u037a\3\2\2\2\u0378"
+ "\u0376\3\2\2\2\u0378\u0379\3\2\2\2\u0379\u00e2\3\2\2\2\u037a\u0378\3\2"
+ "\2\2\u037b\u037d\t\23\2\2\u037c\u037e\t\16\2\2\u037d\u037c\3\2\2\2\u037d"
+ "\u037e\3\2\2\2\u037e\u037f\3\2\2\2\u037f\u0380\5\u00ebv\2\u0380\u00e4"
+ "\3\2\2\2\u0381\u0382\7^\2\2\u0382\u0397\t\24\2\2\u0383\u0388\7^\2\2\u0384"
+ "\u0386\t\25\2\2\u0385\u0384\3\2\2\2\u0385\u0386\3\2\2\2\u0386\u0387\3"
+ "\2\2\2\u0387\u0389\t\7\2\2\u0388\u0385\3\2\2\2\u0388\u0389\3\2\2\2\u0389"
+ "\u038a\3\2\2\2\u038a\u0397\t\7\2\2\u038b\u038d\7^\2\2\u038c\u038e\7w\2"
+ "\2\u038d\u038c\3\2\2\2\u038e\u038f\3\2\2\2\u038f\u038d\3\2\2\2\u038f\u0390"
+ "\3\2\2\2\u0390\u0391\3\2\2\2\u0391\u0392\5\u00e9u\2\u0392\u0393\5\u00e9"
+ "u\2\u0393\u0394\5\u00e9u\2\u0394\u0395\5\u00e9u\2\u0395\u0397\3\2\2\2"
+ "\u0396\u0381\3\2\2\2\u0396\u0383\3\2\2\2\u0396\u038b\3\2\2\2\u0397\u00e6"
+ "\3\2\2\2\u0398\u03a1\5\u00e9u\2\u0399\u039c\5\u00e9u\2\u039a\u039c\7a"
+ "\2\2\u039b\u0399\3\2\2\2\u039b\u039a\3\2\2\2\u039c\u039f\3\2\2\2\u039d"
+ "\u039b\3\2\2\2\u039d\u039e\3\2\2\2\u039e\u03a0\3\2\2\2\u039f\u039d\3\2"
+ "\2\2\u03a0\u03a2\5\u00e9u\2\u03a1\u039d\3\2\2\2\u03a1\u03a2\3\2\2\2\u03a2"
+ "\u00e8\3\2\2\2\u03a3\u03a4\t\5\2\2\u03a4\u00ea\3\2\2\2\u03a5\u03ad\t\26"
+ "\2\2\u03a6\u03a8\t\27\2\2\u03a7\u03a6\3\2\2\2\u03a8\u03ab\3\2\2\2\u03a9"
+ "\u03a7\3\2\2\2\u03a9\u03aa\3\2\2\2\u03aa\u03ac\3\2\2\2\u03ab\u03a9\3\2"
+ "\2\2\u03ac\u03ae\t\26\2\2\u03ad\u03a9\3\2\2\2\u03ad\u03ae\3\2\2\2\u03ae"
+ "\u00ec\3\2\2\2\u03af\u03b2\5\u00efx\2\u03b0\u03b2\t\26\2\2\u03b1\u03af"
+ "\3\2\2\2\u03b1\u03b0\3\2\2\2\u03b2\u00ee\3\2\2\2\u03b3\u03b8\t\30\2\2"
+ "\u03b4\u03b8\n\31\2\2\u03b5\u03b6\t\32\2\2\u03b6\u03b8\t\33\2\2\u03b7"
+ "\u03b3\3\2\2\2\u03b7\u03b4\3\2\2\2\u03b7\u03b5\3\2\2\2\u03b8\u00f0\3\2"
+ "\2\2\62\2\u024b\u0250\u0253\u0255\u0258\u0260\u0264\u0267\u026d\u0274"
+ "\u0278\u027b\u0283\u0287\u028a\u028f\u0293\u0296\u0299\u029e\u02a1\u02a3"
+ "\u02a9\u02ac\u02b0\u02b4\u02b8\u02c3\u02c8\u02cf\u02d1\u0357\u0361\u036f"
+ "\u0378\u037d\u0385\u0388\u038f\u0396\u039b\u039d\u03a1\u03a9\u03ad\u03b1"
+ "\u03b7\3\2\3\2";
public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray());
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache();
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
public static String[] channelNames = {"DEFAULT_TOKEN_CHANNEL", "HIDDEN"};
public static String[] modeNames = {"DEFAULT_MODE"};
static {
RuntimeMetaData.checkVersion("4.9.3", RuntimeMetaData.VERSION);
}
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
public JavaLexer(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
}
private static String[] makeRuleNames() {
return new String[] {
"ABSTRACT",
"ASSERT",
"BOOLEAN",
"BREAK",
"BYTE",
"CASE",
"CATCH",
"CHAR",
"CLASS",
"CONST",
"CONTINUE",
"DEFAULT",
"DO",
"DOUBLE",
"ELSE",
"ENUM",
"EXTENDS",
"FINAL",
"FINALLY",
"FLOAT",
"FOR",
"IF",
"GOTO",
"IMPLEMENTS",
"IMPORT",
"INSTANCEOF",
"INT",
"INTERFACE",
"LONG",
"NATIVE",
"NEW",
"PACKAGE",
"PRIVATE",
"PROTECTED",
"PUBLIC",
"RETURN",
"SHORT",
"STATIC",
"STRICTFP",
"SUPER",
"SWITCH",
"SYNCHRONIZED",
"THIS",
"THROW",
"THROWS",
"TRANSIENT",
"TRY",
"VAR",
"VOID",
"VOLATILE",
"WHILE",
"DECIMAL_LITERAL",
"HEX_LITERAL",
"OCT_LITERAL",
"BINARY_LITERAL",
"FLOAT_LITERAL",
"HEX_FLOAT_LITERAL",
"BOOL_LITERAL",
"CHAR_LITERAL",
"STRING_LITERAL",
"NULL_LITERAL",
"LPAREN",
"RPAREN",
"LBRACE",
"RBRACE",
"LBRACK",
"RBRACK",
"SEMI",
"COMMA",
"DOT",
"ASSIGN",
"GT",
"LT",
"BANG",
"TILDE",
"QUESTION",
"COLON",
"EQUAL",
"LE",
"GE",
"NOTEQUAL",
"AND",
"OR",
"INC",
"DEC",
"ADD",
"SUB",
"MUL",
"DIV",
"BITAND",
"BITOR",
"CARET",
"MOD",
"ADD_ASSIGN",
"SUB_ASSIGN",
"MUL_ASSIGN",
"DIV_ASSIGN",
"AND_ASSIGN",
"OR_ASSIGN",
"XOR_ASSIGN",
"MOD_ASSIGN",
"LSHIFT_ASSIGN",
"RSHIFT_ASSIGN",
"URSHIFT_ASSIGN",
"ARROW",
"COLONCOLON",
"AT",
"ELLIPSIS",
"WS",
"BLOCK_COMMENT",
"LINE_COMMENT",
"IDENTIFIER",
"ExponentPart",
"EscapeSequence",
"HexDigits",
"HexDigit",
"Digits",
"LetterOrDigit",
"Letter"
};
}
private static String[] makeLiteralNames() {
return new String[] {
null,
"'abstract'",
"'assert'",
"'boolean'",
"'break'",
"'byte'",
"'case'",
"'catch'",
"'char'",
"'class'",
"'const'",
"'continue'",
"'default'",
"'do'",
"'double'",
"'else'",
"'enum'",
"'extends'",
"'final'",
"'finally'",
"'float'",
"'for'",
"'if'",
"'goto'",
"'implements'",
"'import'",
"'instanceof'",
"'int'",
"'interface'",
"'long'",
"'native'",
"'new'",
"'package'",
"'private'",
"'protected'",
"'public'",
"'return'",
"'short'",
"'static'",
"'strictfp'",
"'super'",
"'switch'",
"'synchronized'",
"'this'",
"'throw'",
"'throws'",
"'transient'",
"'try'",
"'var'",
"'void'",
"'volatile'",
"'while'",
null,
null,
null,
null,
null,
null,
null,
null,
null,
"'null'",
"'('",
"')'",
"'{'",
"'}'",
"'['",
"']'",
"';'",
"','",
"'.'",
"'='",
"'>'",
"'<'",
"'!'",
"'~'",
"'?'",
"':'",
"'=='",
"'<='",
"'>='",
"'!='",
"'&&'",
"'||'",
"'++'",
"'--'",
"'+'",
"'-'",
"'*'",
"'/'",
"'&'",
"'|'",
"'^'",
"'%'",
"'+='",
"'-='",
"'*='",
"'/='",
"'&='",
"'|='",
"'^='",
"'%='",
"'<<='",
"'>>='",
"'>>>='",
"'->'",
"'::'",
"'@'",
"'...'"
};
}
private static String[] makeSymbolicNames() {
return new String[] {
null,
"ABSTRACT",
"ASSERT",
"BOOLEAN",
"BREAK",
"BYTE",
"CASE",
"CATCH",
"CHAR",
"CLASS",
"CONST",
"CONTINUE",
"DEFAULT",
"DO",
"DOUBLE",
"ELSE",
"ENUM",
"EXTENDS",
"FINAL",
"FINALLY",
"FLOAT",
"FOR",
"IF",
"GOTO",
"IMPLEMENTS",
"IMPORT",
"INSTANCEOF",
"INT",
"INTERFACE",
"LONG",
"NATIVE",
"NEW",
"PACKAGE",
"PRIVATE",
"PROTECTED",
"PUBLIC",
"RETURN",
"SHORT",
"STATIC",
"STRICTFP",
"SUPER",
"SWITCH",
"SYNCHRONIZED",
"THIS",
"THROW",
"THROWS",
"TRANSIENT",
"TRY",
"VAR",
"VOID",
"VOLATILE",
"WHILE",
"DECIMAL_LITERAL",
"HEX_LITERAL",
"OCT_LITERAL",
"BINARY_LITERAL",
"FLOAT_LITERAL",
"HEX_FLOAT_LITERAL",
"BOOL_LITERAL",
"CHAR_LITERAL",
"STRING_LITERAL",
"NULL_LITERAL",
"LPAREN",
"RPAREN",
"LBRACE",
"RBRACE",
"LBRACK",
"RBRACK",
"SEMI",
"COMMA",
"DOT",
"ASSIGN",
"GT",
"LT",
"BANG",
"TILDE",
"QUESTION",
"COLON",
"EQUAL",
"LE",
"GE",
"NOTEQUAL",
"AND",
"OR",
"INC",
"DEC",
"ADD",
"SUB",
"MUL",
"DIV",
"BITAND",
"BITOR",
"CARET",
"MOD",
"ADD_ASSIGN",
"SUB_ASSIGN",
"MUL_ASSIGN",
"DIV_ASSIGN",
"AND_ASSIGN",
"OR_ASSIGN",
"XOR_ASSIGN",
"MOD_ASSIGN",
"LSHIFT_ASSIGN",
"RSHIFT_ASSIGN",
"URSHIFT_ASSIGN",
"ARROW",
"COLONCOLON",
"AT",
"ELLIPSIS",
"WS",
"BLOCK_COMMENT",
"LINE_COMMENT",
"IDENTIFIER"
};
}
@Override
public String[] getRuleNames() {
return ruleNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public String getSerializedATN() {
return _serializedATN;
}
@Override
public String getGrammarFileName() {
return "JavaLexer.g4";
}
@Override
public ATN getATN() {
return _ATN;
}
@Override
public String[] getChannelNames() {
return channelNames;
}
@Override
public String[] getModeNames() {
return modeNames;
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
}
@@ -1,211 +0,0 @@
ABSTRACT=1
ASSERT=2
BOOLEAN=3
BREAK=4
BYTE=5
CASE=6
CATCH=7
CHAR=8
CLASS=9
CONST=10
CONTINUE=11
DEFAULT=12
DO=13
DOUBLE=14
ELSE=15
ENUM=16
EXTENDS=17
FINAL=18
FINALLY=19
FLOAT=20
FOR=21
IF=22
GOTO=23
IMPLEMENTS=24
IMPORT=25
INSTANCEOF=26
INT=27
INTERFACE=28
LONG=29
NATIVE=30
NEW=31
PACKAGE=32
PRIVATE=33
PROTECTED=34
PUBLIC=35
RETURN=36
SHORT=37
STATIC=38
STRICTFP=39
SUPER=40
SWITCH=41
SYNCHRONIZED=42
THIS=43
THROW=44
THROWS=45
TRANSIENT=46
TRY=47
VAR=48
VOID=49
VOLATILE=50
WHILE=51
DECIMAL_LITERAL=52
HEX_LITERAL=53
OCT_LITERAL=54
BINARY_LITERAL=55
FLOAT_LITERAL=56
HEX_FLOAT_LITERAL=57
BOOL_LITERAL=58
CHAR_LITERAL=59
STRING_LITERAL=60
NULL_LITERAL=61
LPAREN=62
RPAREN=63
LBRACE=64
RBRACE=65
LBRACK=66
RBRACK=67
SEMI=68
COMMA=69
DOT=70
ASSIGN=71
GT=72
LT=73
BANG=74
TILDE=75
QUESTION=76
COLON=77
EQUAL=78
LE=79
GE=80
NOTEQUAL=81
AND=82
OR=83
INC=84
DEC=85
ADD=86
SUB=87
MUL=88
DIV=89
BITAND=90
BITOR=91
CARET=92
MOD=93
ADD_ASSIGN=94
SUB_ASSIGN=95
MUL_ASSIGN=96
DIV_ASSIGN=97
AND_ASSIGN=98
OR_ASSIGN=99
XOR_ASSIGN=100
MOD_ASSIGN=101
LSHIFT_ASSIGN=102
RSHIFT_ASSIGN=103
URSHIFT_ASSIGN=104
ARROW=105
COLONCOLON=106
AT=107
ELLIPSIS=108
WS=109
BLOCK_COMMENT=110
LINE_COMMENT=111
IDENTIFIER=112
'abstract'=1
'assert'=2
'boolean'=3
'break'=4
'byte'=5
'case'=6
'catch'=7
'char'=8
'class'=9
'const'=10
'continue'=11
'default'=12
'do'=13
'double'=14
'else'=15
'enum'=16
'extends'=17
'final'=18
'finally'=19
'float'=20
'for'=21
'if'=22
'goto'=23
'implements'=24
'import'=25
'instanceof'=26
'int'=27
'interface'=28
'long'=29
'native'=30
'new'=31
'package'=32
'private'=33
'protected'=34
'public'=35
'return'=36
'short'=37
'static'=38
'strictfp'=39
'super'=40
'switch'=41
'synchronized'=42
'this'=43
'throw'=44
'throws'=45
'transient'=46
'try'=47
'var'=48
'void'=49
'volatile'=50
'while'=51
'null'=61
'('=62
')'=63
'{'=64
'}'=65
'['=66
']'=67
';'=68
','=69
'.'=70
'='=71
'>'=72
'<'=73
'!'=74
'~'=75
'?'=76
':'=77
'=='=78
'<='=79
'>='=80
'!='=81
'&&'=82
'||'=83
'++'=84
'--'=85
'+'=86
'-'=87
'*'=88
'/'=89
'&'=90
'|'=91
'^'=92
'%'=93
'+='=94
'-='=95
'*='=96
'/='=97
'&='=98
'|='=99
'^='=100
'%='=101
'<<='=102
'>>='=103
'>>>='=104
'->'=105
'::'=106
'@'=107
'...'=108
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
@@ -1,211 +0,0 @@
ABSTRACT=1
ASSERT=2
BOOLEAN=3
BREAK=4
BYTE=5
CASE=6
CATCH=7
CHAR=8
CLASS=9
CONST=10
CONTINUE=11
DEFAULT=12
DO=13
DOUBLE=14
ELSE=15
ENUM=16
EXTENDS=17
FINAL=18
FINALLY=19
FLOAT=20
FOR=21
IF=22
GOTO=23
IMPLEMENTS=24
IMPORT=25
INSTANCEOF=26
INT=27
INTERFACE=28
LONG=29
NATIVE=30
NEW=31
PACKAGE=32
PRIVATE=33
PROTECTED=34
PUBLIC=35
RETURN=36
SHORT=37
STATIC=38
STRICTFP=39
SUPER=40
SWITCH=41
SYNCHRONIZED=42
THIS=43
THROW=44
THROWS=45
TRANSIENT=46
TRY=47
VAR=48
VOID=49
VOLATILE=50
WHILE=51
DECIMAL_LITERAL=52
HEX_LITERAL=53
OCT_LITERAL=54
BINARY_LITERAL=55
FLOAT_LITERAL=56
HEX_FLOAT_LITERAL=57
BOOL_LITERAL=58
CHAR_LITERAL=59
STRING_LITERAL=60
NULL_LITERAL=61
LPAREN=62
RPAREN=63
LBRACE=64
RBRACE=65
LBRACK=66
RBRACK=67
SEMI=68
COMMA=69
DOT=70
ASSIGN=71
GT=72
LT=73
BANG=74
TILDE=75
QUESTION=76
COLON=77
EQUAL=78
LE=79
GE=80
NOTEQUAL=81
AND=82
OR=83
INC=84
DEC=85
ADD=86
SUB=87
MUL=88
DIV=89
BITAND=90
BITOR=91
CARET=92
MOD=93
ADD_ASSIGN=94
SUB_ASSIGN=95
MUL_ASSIGN=96
DIV_ASSIGN=97
AND_ASSIGN=98
OR_ASSIGN=99
XOR_ASSIGN=100
MOD_ASSIGN=101
LSHIFT_ASSIGN=102
RSHIFT_ASSIGN=103
URSHIFT_ASSIGN=104
ARROW=105
COLONCOLON=106
AT=107
ELLIPSIS=108
WS=109
BLOCK_COMMENT=110
LINE_COMMENT=111
IDENTIFIER=112
'abstract'=1
'assert'=2
'boolean'=3
'break'=4
'byte'=5
'case'=6
'catch'=7
'char'=8
'class'=9
'const'=10
'continue'=11
'default'=12
'do'=13
'double'=14
'else'=15
'enum'=16
'extends'=17
'final'=18
'finally'=19
'float'=20
'for'=21
'if'=22
'goto'=23
'implements'=24
'import'=25
'instanceof'=26
'int'=27
'interface'=28
'long'=29
'native'=30
'new'=31
'package'=32
'private'=33
'protected'=34
'public'=35
'return'=36
'short'=37
'static'=38
'strictfp'=39
'super'=40
'switch'=41
'synchronized'=42
'this'=43
'throw'=44
'throws'=45
'transient'=46
'try'=47
'var'=48
'void'=49
'volatile'=50
'while'=51
'null'=61
'('=62
')'=63
'{'=64
'}'=65
'['=66
']'=67
';'=68
','=69
'.'=70
'='=71
'>'=72
'<'=73
'!'=74
'~'=75
'?'=76
':'=77
'=='=78
'<='=79
'>='=80
'!='=81
'&&'=82
'||'=83
'++'=84
'--'=85
'+'=86
'-'=87
'*'=88
'/'=89
'&'=90
'|'=91
'^'=92
'%'=93
'+='=94
'-='=95
'*='=96
'/='=97
'&='=98
'|='=99
'^='=100
'%='=101
'<<='=102
'>>='=103
'>>>='=104
'->'=105
'::'=106
'@'=107
'...'=108
File diff suppressed because it is too large Load Diff
@@ -1,749 +0,0 @@
// Generated from JavaParser.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.java;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
/**
* This interface defines a complete generic visitor for a parse tree produced by {@link
* JavaParser}.
*
* @param <T> The return type of the visit operation. Use {@link Void} for operations with no return
* type.
*/
public interface JavaParserVisitor<T> extends ParseTreeVisitor<T> {
/**
* Visit a parse tree produced by {@link JavaParser#compilationUnit}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitCompilationUnit(JavaParser.CompilationUnitContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#packageDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitPackageDeclaration(JavaParser.PackageDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#importDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitImportDeclaration(JavaParser.ImportDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeDeclaration(JavaParser.TypeDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#modifier}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitModifier(JavaParser.ModifierContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#classOrInterfaceModifier}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitClassOrInterfaceModifier(JavaParser.ClassOrInterfaceModifierContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#variableModifier}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitVariableModifier(JavaParser.VariableModifierContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#classDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitClassDeclaration(JavaParser.ClassDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeParameters}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeParameters(JavaParser.TypeParametersContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeParameter}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeParameter(JavaParser.TypeParameterContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeBound}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeBound(JavaParser.TypeBoundContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#enumDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitEnumDeclaration(JavaParser.EnumDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#enumConstants}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitEnumConstants(JavaParser.EnumConstantsContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#enumConstant}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitEnumConstant(JavaParser.EnumConstantContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#enumBodyDeclarations}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitEnumBodyDeclarations(JavaParser.EnumBodyDeclarationsContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#interfaceDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInterfaceDeclaration(JavaParser.InterfaceDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#classBody}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitClassBody(JavaParser.ClassBodyContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#interfaceBody}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInterfaceBody(JavaParser.InterfaceBodyContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#classBodyDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitClassBodyDeclaration(JavaParser.ClassBodyDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#memberDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitMemberDeclaration(JavaParser.MemberDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#methodDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitMethodDeclaration(JavaParser.MethodDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#methodBody}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitMethodBody(JavaParser.MethodBodyContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeTypeOrVoid}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeTypeOrVoid(JavaParser.TypeTypeOrVoidContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#genericMethodDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitGenericMethodDeclaration(JavaParser.GenericMethodDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#genericConstructorDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitGenericConstructorDeclaration(JavaParser.GenericConstructorDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#constructorDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitConstructorDeclaration(JavaParser.ConstructorDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#fieldDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitFieldDeclaration(JavaParser.FieldDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#interfaceBodyDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInterfaceBodyDeclaration(JavaParser.InterfaceBodyDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#interfaceMemberDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInterfaceMemberDeclaration(JavaParser.InterfaceMemberDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#constDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitConstDeclaration(JavaParser.ConstDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#constantDeclarator}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitConstantDeclarator(JavaParser.ConstantDeclaratorContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#interfaceMethodDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInterfaceMethodDeclaration(JavaParser.InterfaceMethodDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#interfaceMethodModifier}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInterfaceMethodModifier(JavaParser.InterfaceMethodModifierContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#genericInterfaceMethodDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitGenericInterfaceMethodDeclaration(JavaParser.GenericInterfaceMethodDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#variableDeclarators}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitVariableDeclarators(JavaParser.VariableDeclaratorsContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#variableDeclarator}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitVariableDeclarator(JavaParser.VariableDeclaratorContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#variableDeclaratorId}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitVariableDeclaratorId(JavaParser.VariableDeclaratorIdContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#variableInitializer}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitVariableInitializer(JavaParser.VariableInitializerContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#arrayInitializer}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitArrayInitializer(JavaParser.ArrayInitializerContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#classOrInterfaceType}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitClassOrInterfaceType(JavaParser.ClassOrInterfaceTypeContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeArgument}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeArgument(JavaParser.TypeArgumentContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#qualifiedNameList}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitQualifiedNameList(JavaParser.QualifiedNameListContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#formalParameters}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitFormalParameters(JavaParser.FormalParametersContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#formalParameterList}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitFormalParameterList(JavaParser.FormalParameterListContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#formalParameter}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitFormalParameter(JavaParser.FormalParameterContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#lastFormalParameter}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitLastFormalParameter(JavaParser.LastFormalParameterContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#qualifiedName}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitQualifiedName(JavaParser.QualifiedNameContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#literal}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitLiteral(JavaParser.LiteralContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#integerLiteral}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitIntegerLiteral(JavaParser.IntegerLiteralContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#floatLiteral}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitFloatLiteral(JavaParser.FloatLiteralContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#altAnnotationQualifiedName}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAltAnnotationQualifiedName(JavaParser.AltAnnotationQualifiedNameContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#annotation}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAnnotation(JavaParser.AnnotationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#elementValuePairs}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitElementValuePairs(JavaParser.ElementValuePairsContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#elementValuePair}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitElementValuePair(JavaParser.ElementValuePairContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#elementValue}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitElementValue(JavaParser.ElementValueContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#elementValueArrayInitializer}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitElementValueArrayInitializer(JavaParser.ElementValueArrayInitializerContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#annotationTypeDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAnnotationTypeDeclaration(JavaParser.AnnotationTypeDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#annotationTypeBody}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAnnotationTypeBody(JavaParser.AnnotationTypeBodyContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#annotationTypeElementDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAnnotationTypeElementDeclaration(JavaParser.AnnotationTypeElementDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#annotationTypeElementRest}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAnnotationTypeElementRest(JavaParser.AnnotationTypeElementRestContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#annotationMethodOrConstantRest}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAnnotationMethodOrConstantRest(JavaParser.AnnotationMethodOrConstantRestContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#annotationMethodRest}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAnnotationMethodRest(JavaParser.AnnotationMethodRestContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#annotationConstantRest}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAnnotationConstantRest(JavaParser.AnnotationConstantRestContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#defaultValue}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDefaultValue(JavaParser.DefaultValueContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#block}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlock(JavaParser.BlockContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#blockStatement}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockStatement(JavaParser.BlockStatementContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#localVariableDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitLocalVariableDeclaration(JavaParser.LocalVariableDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#localTypeDeclaration}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitLocalTypeDeclaration(JavaParser.LocalTypeDeclarationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#statement}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitStatement(JavaParser.StatementContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#catchClause}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitCatchClause(JavaParser.CatchClauseContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#catchType}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitCatchType(JavaParser.CatchTypeContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#finallyBlock}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitFinallyBlock(JavaParser.FinallyBlockContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#resourceSpecification}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitResourceSpecification(JavaParser.ResourceSpecificationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#resources}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitResources(JavaParser.ResourcesContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#resource}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitResource(JavaParser.ResourceContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#switchBlockStatementGroup}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitSwitchBlockStatementGroup(JavaParser.SwitchBlockStatementGroupContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#switchLabel}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitSwitchLabel(JavaParser.SwitchLabelContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#forControl}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitForControl(JavaParser.ForControlContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#forInit}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitForInit(JavaParser.ForInitContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#enhancedForControl}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitEnhancedForControl(JavaParser.EnhancedForControlContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#parExpression}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitParExpression(JavaParser.ParExpressionContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#expressionList}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitExpressionList(JavaParser.ExpressionListContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#methodCall}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitMethodCall(JavaParser.MethodCallContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#expression}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitExpression(JavaParser.ExpressionContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#lambdaExpression}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitLambdaExpression(JavaParser.LambdaExpressionContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#lambdaParameters}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitLambdaParameters(JavaParser.LambdaParametersContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#lambdaBody}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitLambdaBody(JavaParser.LambdaBodyContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#primary}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitPrimary(JavaParser.PrimaryContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#classType}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitClassType(JavaParser.ClassTypeContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#creator}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitCreator(JavaParser.CreatorContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#createdName}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitCreatedName(JavaParser.CreatedNameContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#innerCreator}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInnerCreator(JavaParser.InnerCreatorContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#arrayCreatorRest}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitArrayCreatorRest(JavaParser.ArrayCreatorRestContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#classCreatorRest}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitClassCreatorRest(JavaParser.ClassCreatorRestContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#explicitGenericInvocation}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitExplicitGenericInvocation(JavaParser.ExplicitGenericInvocationContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeArgumentsOrDiamond}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeArgumentsOrDiamond(JavaParser.TypeArgumentsOrDiamondContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#nonWildcardTypeArgumentsOrDiamond}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitNonWildcardTypeArgumentsOrDiamond(JavaParser.NonWildcardTypeArgumentsOrDiamondContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#nonWildcardTypeArguments}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitNonWildcardTypeArguments(JavaParser.NonWildcardTypeArgumentsContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeList}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeList(JavaParser.TypeListContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeType}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeType(JavaParser.TypeTypeContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#primitiveType}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitPrimitiveType(JavaParser.PrimitiveTypeContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#typeArguments}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTypeArguments(JavaParser.TypeArgumentsContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#superSuffix}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitSuperSuffix(JavaParser.SuperSuffixContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#explicitGenericInvocationSuffix}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitExplicitGenericInvocationSuffix(JavaParser.ExplicitGenericInvocationSuffixContext ctx);
/**
* Visit a parse tree produced by {@link JavaParser#arguments}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitArguments(JavaParser.ArgumentsContext ctx);
}
@@ -1,53 +0,0 @@
token literal names:
null
null
null
null
null
'@'
'*'
'/'
null
null
'{@'
'{'
'}'
token symbolic names:
null
NAME
NEWLINE
SPACE
TEXT_CONTENT
AT
STAR
SLASH
JAVADOC_START
JAVADOC_END
INLINE_TAG_START
BRACE_OPEN
BRACE_CLOSE
rule names:
NAME
NEWLINE
SPACE
TEXT_CONTENT
AT
STAR
SLASH
JAVADOC_START
JAVADOC_END
INLINE_TAG_START
BRACE_OPEN
BRACE_CLOSE
channel names:
DEFAULT_TOKEN_CHANNEL
HIDDEN
mode names:
DEFAULT_MODE
atn:
[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 14, 120, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 3, 2, 6, 2, 29, 10, 2, 13, 2, 14, 2, 30, 3, 3, 3, 3, 5, 3, 35, 10, 3, 3, 3, 3, 3, 3, 3, 6, 3, 40, 10, 3, 13, 3, 14, 3, 41, 5, 3, 44, 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 50, 10, 3, 3, 3, 3, 3, 3, 3, 6, 3, 55, 10, 3, 13, 3, 14, 3, 56, 5, 3, 59, 10, 3, 3, 3, 3, 3, 5, 3, 63, 10, 3, 3, 3, 3, 3, 3, 3, 6, 3, 68, 10, 3, 13, 3, 14, 3, 69, 5, 3, 72, 10, 3, 5, 3, 74, 10, 3, 3, 4, 6, 4, 77, 10, 4, 13, 4, 14, 4, 78, 3, 5, 6, 5, 82, 10, 5, 13, 5, 14, 5, 83, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 7, 9, 97, 10, 9, 12, 9, 14, 9, 100, 11, 9, 3, 10, 5, 10, 103, 10, 10, 3, 10, 7, 10, 106, 10, 10, 12, 10, 14, 10, 109, 11, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 2, 2, 14, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 3, 2, 5, 4, 2, 67, 92, 99, 124, 4, 2, 11, 11, 34, 34, 10, 2, 11, 12, 15, 15, 34, 34, 44, 44, 49, 49, 66, 92, 99, 125, 127, 127, 2, 136, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 3, 28, 3, 2, 2, 2, 5, 73, 3, 2, 2, 2, 7, 76, 3, 2, 2, 2, 9, 81, 3, 2, 2, 2, 11, 85, 3, 2, 2, 2, 13, 87, 3, 2, 2, 2, 15, 89, 3, 2, 2, 2, 17, 91, 3, 2, 2, 2, 19, 102, 3, 2, 2, 2, 21, 113, 3, 2, 2, 2, 23, 116, 3, 2, 2, 2, 25, 118, 3, 2, 2, 2, 27, 29, 9, 2, 2, 2, 28, 27, 3, 2, 2, 2, 29, 30, 3, 2, 2, 2, 30, 28, 3, 2, 2, 2, 30, 31, 3, 2, 2, 2, 31, 4, 3, 2, 2, 2, 32, 43, 7, 12, 2, 2, 33, 35, 5, 7, 4, 2, 34, 33, 3, 2, 2, 2, 34, 35, 3, 2, 2, 2, 35, 39, 3, 2, 2, 2, 36, 37, 5, 13, 7, 2, 37, 38, 6, 3, 2, 2, 38, 40, 3, 2, 2, 2, 39, 36, 3, 2, 2, 2, 40, 41, 3, 2, 2, 2, 41, 39, 3, 2, 2, 2, 41, 42, 3, 2, 2, 2, 42, 44, 3, 2, 2, 2, 43, 34, 3, 2, 2, 2, 43, 44, 3, 2, 2, 2, 44, 74, 3, 2, 2, 2, 45, 46, 7, 15, 2, 2, 46, 47, 7, 12, 2, 2, 47, 58, 3, 2, 2, 2, 48, 50, 5, 7, 4, 2, 49, 48, 3, 2, 2, 2, 49, 50, 3, 2, 2, 2, 50, 54, 3, 2, 2, 2, 51, 52, 5, 13, 7, 2, 52, 53, 6, 3, 3, 2, 53, 55, 3, 2, 2, 2, 54, 51, 3, 2, 2, 2, 55, 56, 3, 2, 2, 2, 56, 54, 3, 2, 2, 2, 56, 57, 3, 2, 2, 2, 57, 59, 3, 2, 2, 2, 58, 49, 3, 2, 2, 2, 58, 59, 3, 2, 2, 2, 59, 74, 3, 2, 2, 2, 60, 71, 7, 15, 2, 2, 61, 63, 5, 7, 4, 2, 62, 61, 3, 2, 2, 2, 62, 63, 3, 2, 2, 2, 63, 67, 3, 2, 2, 2, 64, 65, 5, 13, 7, 2, 65, 66, 6, 3, 4, 2, 66, 68, 3, 2, 2, 2, 67, 64, 3, 2, 2, 2, 68, 69, 3, 2, 2, 2, 69, 67, 3, 2, 2, 2, 69, 70, 3, 2, 2, 2, 70, 72, 3, 2, 2, 2, 71, 62, 3, 2, 2, 2, 71, 72, 3, 2, 2, 2, 72, 74, 3, 2, 2, 2, 73, 32, 3, 2, 2, 2, 73, 45, 3, 2, 2, 2, 73, 60, 3, 2, 2, 2, 74, 6, 3, 2, 2, 2, 75, 77, 9, 3, 2, 2, 76, 75, 3, 2, 2, 2, 77, 78, 3, 2, 2, 2, 78, 76, 3, 2, 2, 2, 78, 79, 3, 2, 2, 2, 79, 8, 3, 2, 2, 2, 80, 82, 10, 4, 2, 2, 81, 80, 3, 2, 2, 2, 82, 83, 3, 2, 2, 2, 83, 81, 3, 2, 2, 2, 83, 84, 3, 2, 2, 2, 84, 10, 3, 2, 2, 2, 85, 86, 7, 66, 2, 2, 86, 12, 3, 2, 2, 2, 87, 88, 7, 44, 2, 2, 88, 14, 3, 2, 2, 2, 89, 90, 7, 49, 2, 2, 90, 16, 3, 2, 2, 2, 91, 92, 7, 49, 2, 2, 92, 93, 7, 44, 2, 2, 93, 94, 7, 44, 2, 2, 94, 98, 3, 2, 2, 2, 95, 97, 5, 13, 7, 2, 96, 95, 3, 2, 2, 2, 97, 100, 3, 2, 2, 2, 98, 96, 3, 2, 2, 2, 98, 99, 3, 2, 2, 2, 99, 18, 3, 2, 2, 2, 100, 98, 3, 2, 2, 2, 101, 103, 5, 7, 4, 2, 102, 101, 3, 2, 2, 2, 102, 103, 3, 2, 2, 2, 103, 107, 3, 2, 2, 2, 104, 106, 5, 13, 7, 2, 105, 104, 3, 2, 2, 2, 106, 109, 3, 2, 2, 2, 107, 105, 3, 2, 2, 2, 107, 108, 3, 2, 2, 2, 108, 110, 3, 2, 2, 2, 109, 107, 3, 2, 2, 2, 110, 111, 7, 44, 2, 2, 111, 112, 7, 49, 2, 2, 112, 20, 3, 2, 2, 2, 113, 114, 7, 125, 2, 2, 114, 115, 7, 66, 2, 2, 115, 22, 3, 2, 2, 2, 116, 117, 7, 125, 2, 2, 117, 24, 3, 2, 2, 2, 118, 119, 7, 127, 2, 2, 119, 26, 3, 2, 2, 2, 19, 2, 30, 34, 41, 43, 49, 56, 58, 62, 69, 71, 73, 78, 83, 98, 102, 107, 2]
@@ -1,210 +0,0 @@
// Generated from JavadocLexer.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.javadoc;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.RuleContext;
import org.antlr.v4.runtime.RuntimeMetaData;
import org.antlr.v4.runtime.Vocabulary;
import org.antlr.v4.runtime.VocabularyImpl;
import org.antlr.v4.runtime.atn.ATN;
import org.antlr.v4.runtime.atn.ATNDeserializer;
import org.antlr.v4.runtime.atn.LexerATNSimulator;
import org.antlr.v4.runtime.atn.PredictionContextCache;
import org.antlr.v4.runtime.dfa.DFA;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class JavadocLexer extends Lexer {
public static final int NAME = 1,
NEWLINE = 2,
SPACE = 3,
TEXT_CONTENT = 4,
AT = 5,
STAR = 6,
SLASH = 7,
JAVADOC_START = 8,
JAVADOC_END = 9,
INLINE_TAG_START = 10,
BRACE_OPEN = 11,
BRACE_CLOSE = 12;
public static final String[] ruleNames = makeRuleNames();
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated public static final String[] tokenNames;
public static final String _serializedATN =
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\16x\b\1\4\2\t\2\4"
+ "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"
+ "\13\4\f\t\f\4\r\t\r\3\2\6\2\35\n\2\r\2\16\2\36\3\3\3\3\5\3#\n\3\3\3\3"
+ "\3\3\3\6\3(\n\3\r\3\16\3)\5\3,\n\3\3\3\3\3\3\3\3\3\5\3\62\n\3\3\3\3\3"
+ "\3\3\6\3\67\n\3\r\3\16\38\5\3;\n\3\3\3\3\3\5\3?\n\3\3\3\3\3\3\3\6\3D\n"
+ "\3\r\3\16\3E\5\3H\n\3\5\3J\n\3\3\4\6\4M\n\4\r\4\16\4N\3\5\6\5R\n\5\r\5"
+ "\16\5S\3\6\3\6\3\7\3\7\3\b\3\b\3\t\3\t\3\t\3\t\3\t\7\ta\n\t\f\t\16\td"
+ "\13\t\3\n\5\ng\n\n\3\n\7\nj\n\n\f\n\16\nm\13\n\3\n\3\n\3\n\3\13\3\13\3"
+ "\13\3\f\3\f\3\r\3\r\2\2\16\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25"
+ "\f\27\r\31\16\3\2\5\4\2C\\c|\4\2\13\13\"\"\n\2\13\f\17\17\"\",,\61\61"
+ "B\\c}\177\177\2\u0088\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2"
+ "\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25"
+ "\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\3\34\3\2\2\2\5I\3\2\2\2\7L\3\2\2\2"
+ "\tQ\3\2\2\2\13U\3\2\2\2\rW\3\2\2\2\17Y\3\2\2\2\21[\3\2\2\2\23f\3\2\2\2"
+ "\25q\3\2\2\2\27t\3\2\2\2\31v\3\2\2\2\33\35\t\2\2\2\34\33\3\2\2\2\35\36"
+ "\3\2\2\2\36\34\3\2\2\2\36\37\3\2\2\2\37\4\3\2\2\2 +\7\f\2\2!#\5\7\4\2"
+ "\"!\3\2\2\2\"#\3\2\2\2#\'\3\2\2\2$%\5\r\7\2%&\6\3\2\2&(\3\2\2\2\'$\3\2"
+ "\2\2()\3\2\2\2)\'\3\2\2\2)*\3\2\2\2*,\3\2\2\2+\"\3\2\2\2+,\3\2\2\2,J\3"
+ "\2\2\2-.\7\17\2\2./\7\f\2\2/:\3\2\2\2\60\62\5\7\4\2\61\60\3\2\2\2\61\62"
+ "\3\2\2\2\62\66\3\2\2\2\63\64\5\r\7\2\64\65\6\3\3\2\65\67\3\2\2\2\66\63"
+ "\3\2\2\2\678\3\2\2\28\66\3\2\2\289\3\2\2\29;\3\2\2\2:\61\3\2\2\2:;\3\2"
+ "\2\2;J\3\2\2\2<G\7\17\2\2=?\5\7\4\2>=\3\2\2\2>?\3\2\2\2?C\3\2\2\2@A\5"
+ "\r\7\2AB\6\3\4\2BD\3\2\2\2C@\3\2\2\2DE\3\2\2\2EC\3\2\2\2EF\3\2\2\2FH\3"
+ "\2\2\2G>\3\2\2\2GH\3\2\2\2HJ\3\2\2\2I \3\2\2\2I-\3\2\2\2I<\3\2\2\2J\6"
+ "\3\2\2\2KM\t\3\2\2LK\3\2\2\2MN\3\2\2\2NL\3\2\2\2NO\3\2\2\2O\b\3\2\2\2"
+ "PR\n\4\2\2QP\3\2\2\2RS\3\2\2\2SQ\3\2\2\2ST\3\2\2\2T\n\3\2\2\2UV\7B\2\2"
+ "V\f\3\2\2\2WX\7,\2\2X\16\3\2\2\2YZ\7\61\2\2Z\20\3\2\2\2[\\\7\61\2\2\\"
+ "]\7,\2\2]^\7,\2\2^b\3\2\2\2_a\5\r\7\2`_\3\2\2\2ad\3\2\2\2b`\3\2\2\2bc"
+ "\3\2\2\2c\22\3\2\2\2db\3\2\2\2eg\5\7\4\2fe\3\2\2\2fg\3\2\2\2gk\3\2\2\2"
+ "hj\5\r\7\2ih\3\2\2\2jm\3\2\2\2ki\3\2\2\2kl\3\2\2\2ln\3\2\2\2mk\3\2\2\2"
+ "no\7,\2\2op\7\61\2\2p\24\3\2\2\2qr\7}\2\2rs\7B\2\2s\26\3\2\2\2tu\7}\2"
+ "\2u\30\3\2\2\2vw\7\177\2\2w\32\3\2\2\2\23\2\36\")+\618:>EGINSbfk\2";
public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray());
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache();
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
public static String[] channelNames = {"DEFAULT_TOKEN_CHANNEL", "HIDDEN"};
public static String[] modeNames = {"DEFAULT_MODE"};
static {
RuntimeMetaData.checkVersion("4.9.3", RuntimeMetaData.VERSION);
}
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
public JavadocLexer(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
}
private static String[] makeRuleNames() {
return new String[] {
"NAME",
"NEWLINE",
"SPACE",
"TEXT_CONTENT",
"AT",
"STAR",
"SLASH",
"JAVADOC_START",
"JAVADOC_END",
"INLINE_TAG_START",
"BRACE_OPEN",
"BRACE_CLOSE"
};
}
private static String[] makeLiteralNames() {
return new String[] {
null, null, null, null, null, "'@'", "'*'", "'/'", null, null, "'{@'", "'{'", "'}'"
};
}
private static String[] makeSymbolicNames() {
return new String[] {
null,
"NAME",
"NEWLINE",
"SPACE",
"TEXT_CONTENT",
"AT",
"STAR",
"SLASH",
"JAVADOC_START",
"JAVADOC_END",
"INLINE_TAG_START",
"BRACE_OPEN",
"BRACE_CLOSE"
};
}
@Override
public String[] getRuleNames() {
return ruleNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public String getSerializedATN() {
return _serializedATN;
}
@Override
public String getGrammarFileName() {
return "JavadocLexer.g4";
}
@Override
public ATN getATN() {
return _ATN;
}
@Override
public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
switch (ruleIndex) {
case 1:
return NEWLINE_sempred((RuleContext) _localctx, predIndex);
}
return true;
}
private boolean NEWLINE_sempred(RuleContext _localctx, int predIndex) {
switch (predIndex) {
case 0:
return _input.LA(1) != '/';
case 1:
return _input.LA(1) != '/';
case 2:
return _input.LA(1) != '/';
}
return true;
}
@Override
public String[] getChannelNames() {
return channelNames;
}
@Override
public String[] getModeNames() {
return modeNames;
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
}
@@ -1,18 +0,0 @@
NAME=1
NEWLINE=2
SPACE=3
TEXT_CONTENT=4
AT=5
STAR=6
SLASH=7
JAVADOC_START=8
JAVADOC_END=9
INLINE_TAG_START=10
BRACE_OPEN=11
BRACE_CLOSE=12
'@'=5
'*'=6
'/'=7
'{@'=10
'{'=11
'}'=12
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
@@ -1,18 +0,0 @@
NAME=1
NEWLINE=2
SPACE=3
TEXT_CONTENT=4
AT=5
STAR=6
SLASH=7
JAVADOC_START=8
JAVADOC_END=9
INLINE_TAG_START=10
BRACE_OPEN=11
BRACE_CLOSE=12
'@'=5
'*'=6
'/'=7
'{@'=10
'{'=11
'}'=12
@@ -1,354 +0,0 @@
// Generated from JavadocParser.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.javadoc;
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.tree.ErrorNode;
import org.antlr.v4.runtime.tree.TerminalNode;
/**
* This class provides an empty implementation of {@link JavadocParserListener}, which can be
* extended to create a listener which only needs to handle a subset of the available methods.
*/
public class JavadocParserBaseListener implements JavadocParserListener {
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDocumentation(JavadocParser.DocumentationContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDocumentation(JavadocParser.DocumentationContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDocumentationContent(JavadocParser.DocumentationContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDocumentationContent(JavadocParser.DocumentationContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDescription(JavadocParser.DescriptionContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDescription(JavadocParser.DescriptionContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDescriptionLine(JavadocParser.DescriptionLineContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDescriptionLine(JavadocParser.DescriptionLineContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDescriptionLineNoSpaceNoAt(
JavadocParser.DescriptionLineNoSpaceNoAtContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterTagSection(JavadocParser.TagSectionContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitTagSection(JavadocParser.TagSectionContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterBlockTag(JavadocParser.BlockTagContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitBlockTag(JavadocParser.BlockTagContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterBlockTagName(JavadocParser.BlockTagNameContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitBlockTagName(JavadocParser.BlockTagNameContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterBlockTagContent(JavadocParser.BlockTagContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitBlockTagContent(JavadocParser.BlockTagContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterBlockTagText(JavadocParser.BlockTagTextContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitBlockTagText(JavadocParser.BlockTagTextContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterInlineTag(JavadocParser.InlineTagContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitInlineTag(JavadocParser.InlineTagContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterInlineTagName(JavadocParser.InlineTagNameContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitInlineTagName(JavadocParser.InlineTagNameContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterInlineTagContent(JavadocParser.InlineTagContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitInlineTagContent(JavadocParser.InlineTagContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterBraceExpression(JavadocParser.BraceExpressionContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitBraceExpression(JavadocParser.BraceExpressionContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterBraceContent(JavadocParser.BraceContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitBraceContent(JavadocParser.BraceContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterBraceText(JavadocParser.BraceTextContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitBraceText(JavadocParser.BraceTextContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void visitTerminal(TerminalNode node) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void visitErrorNode(ErrorNode node) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterEveryRule(ParserRuleContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitEveryRule(ParserRuleContext ctx) {}
}
@@ -1,235 +0,0 @@
// Generated from JavadocParser.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.javadoc;
import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
/**
* This class provides an empty implementation of {@link JavadocParserVisitor}, which can be
* extended to create a visitor which only needs to handle a subset of the available methods.
*
* @param <T> The return type of the visit operation. Use {@link Void} for operations with no return
* type.
*/
public class JavadocParserBaseVisitor<T> extends AbstractParseTreeVisitor<T>
implements JavadocParserVisitor<T> {
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDocumentation(JavadocParser.DocumentationContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDocumentationContent(JavadocParser.DocumentationContentContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDescription(JavadocParser.DescriptionContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDescriptionLine(JavadocParser.DescriptionLineContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitTagSection(JavadocParser.TagSectionContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitBlockTag(JavadocParser.BlockTagContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitBlockTagName(JavadocParser.BlockTagNameContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitBlockTagContent(JavadocParser.BlockTagContentContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitBlockTagText(JavadocParser.BlockTagTextContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitInlineTag(JavadocParser.InlineTagContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitInlineTagName(JavadocParser.InlineTagNameContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitInlineTagContent(JavadocParser.InlineTagContentContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitBraceExpression(JavadocParser.BraceExpressionContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitBraceContent(JavadocParser.BraceContentContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitBraceText(JavadocParser.BraceTextContext ctx) {
return visitChildren(ctx);
}
}
@@ -1,274 +0,0 @@
// Generated from JavadocParser.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.javadoc;
import org.antlr.v4.runtime.tree.ParseTreeListener;
/**
* This interface defines a complete listener for a parse tree produced by {@link JavadocParser}.
*/
public interface JavadocParserListener extends ParseTreeListener {
/**
* Enter a parse tree produced by {@link JavadocParser#documentation}.
*
* @param ctx the parse tree
*/
void enterDocumentation(JavadocParser.DocumentationContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#documentation}.
*
* @param ctx the parse tree
*/
void exitDocumentation(JavadocParser.DocumentationContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#documentationContent}.
*
* @param ctx the parse tree
*/
void enterDocumentationContent(JavadocParser.DocumentationContentContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#documentationContent}.
*
* @param ctx the parse tree
*/
void exitDocumentationContent(JavadocParser.DocumentationContentContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#skipWhitespace}.
*
* @param ctx the parse tree
*/
void enterSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#skipWhitespace}.
*
* @param ctx the parse tree
*/
void exitSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#description}.
*
* @param ctx the parse tree
*/
void enterDescription(JavadocParser.DescriptionContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#description}.
*
* @param ctx the parse tree
*/
void exitDescription(JavadocParser.DescriptionContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionLine}.
*
* @param ctx the parse tree
*/
void enterDescriptionLine(JavadocParser.DescriptionLineContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionLine}.
*
* @param ctx the parse tree
*/
void exitDescriptionLine(JavadocParser.DescriptionLineContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionLineStart}.
*
* @param ctx the parse tree
*/
void enterDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionLineStart}.
*
* @param ctx the parse tree
*/
void exitDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionLineNoSpaceNoAt}.
*
* @param ctx the parse tree
*/
void enterDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionLineNoSpaceNoAt}.
*
* @param ctx the parse tree
*/
void exitDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionLineElement}.
*
* @param ctx the parse tree
*/
void enterDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionLineElement}.
*
* @param ctx the parse tree
*/
void exitDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionLineText}.
*
* @param ctx the parse tree
*/
void enterDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionLineText}.
*
* @param ctx the parse tree
*/
void exitDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionNewline}.
*
* @param ctx the parse tree
*/
void enterDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionNewline}.
*
* @param ctx the parse tree
*/
void exitDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#tagSection}.
*
* @param ctx the parse tree
*/
void enterTagSection(JavadocParser.TagSectionContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#tagSection}.
*
* @param ctx the parse tree
*/
void exitTagSection(JavadocParser.TagSectionContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#blockTag}.
*
* @param ctx the parse tree
*/
void enterBlockTag(JavadocParser.BlockTagContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#blockTag}.
*
* @param ctx the parse tree
*/
void exitBlockTag(JavadocParser.BlockTagContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#blockTagName}.
*
* @param ctx the parse tree
*/
void enterBlockTagName(JavadocParser.BlockTagNameContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#blockTagName}.
*
* @param ctx the parse tree
*/
void exitBlockTagName(JavadocParser.BlockTagNameContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#blockTagContent}.
*
* @param ctx the parse tree
*/
void enterBlockTagContent(JavadocParser.BlockTagContentContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#blockTagContent}.
*
* @param ctx the parse tree
*/
void exitBlockTagContent(JavadocParser.BlockTagContentContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#blockTagText}.
*
* @param ctx the parse tree
*/
void enterBlockTagText(JavadocParser.BlockTagTextContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#blockTagText}.
*
* @param ctx the parse tree
*/
void exitBlockTagText(JavadocParser.BlockTagTextContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#blockTagTextElement}.
*
* @param ctx the parse tree
*/
void enterBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#blockTagTextElement}.
*
* @param ctx the parse tree
*/
void exitBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#inlineTag}.
*
* @param ctx the parse tree
*/
void enterInlineTag(JavadocParser.InlineTagContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#inlineTag}.
*
* @param ctx the parse tree
*/
void exitInlineTag(JavadocParser.InlineTagContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#inlineTagName}.
*
* @param ctx the parse tree
*/
void enterInlineTagName(JavadocParser.InlineTagNameContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#inlineTagName}.
*
* @param ctx the parse tree
*/
void exitInlineTagName(JavadocParser.InlineTagNameContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#inlineTagContent}.
*
* @param ctx the parse tree
*/
void enterInlineTagContent(JavadocParser.InlineTagContentContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#inlineTagContent}.
*
* @param ctx the parse tree
*/
void exitInlineTagContent(JavadocParser.InlineTagContentContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#braceExpression}.
*
* @param ctx the parse tree
*/
void enterBraceExpression(JavadocParser.BraceExpressionContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#braceExpression}.
*
* @param ctx the parse tree
*/
void exitBraceExpression(JavadocParser.BraceExpressionContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#braceContent}.
*
* @param ctx the parse tree
*/
void enterBraceContent(JavadocParser.BraceContentContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#braceContent}.
*
* @param ctx the parse tree
*/
void exitBraceContent(JavadocParser.BraceContentContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#braceText}.
*
* @param ctx the parse tree
*/
void enterBraceText(JavadocParser.BraceTextContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#braceText}.
*
* @param ctx the parse tree
*/
void exitBraceText(JavadocParser.BraceTextContext ctx);
}
@@ -1,168 +0,0 @@
// Generated from JavadocParser.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.javadoc;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
/**
* This interface defines a complete generic visitor for a parse tree produced by {@link
* JavadocParser}.
*
* @param <T> The return type of the visit operation. Use {@link Void} for operations with no return
* type.
*/
public interface JavadocParserVisitor<T> extends ParseTreeVisitor<T> {
/**
* Visit a parse tree produced by {@link JavadocParser#documentation}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDocumentation(JavadocParser.DocumentationContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#documentationContent}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDocumentationContent(JavadocParser.DocumentationContentContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#skipWhitespace}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#description}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescription(JavadocParser.DescriptionContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionLine}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionLine(JavadocParser.DescriptionLineContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionLineStart}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionLineNoSpaceNoAt}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionLineElement}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionLineText}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionNewline}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#tagSection}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTagSection(JavadocParser.TagSectionContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#blockTag}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockTag(JavadocParser.BlockTagContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#blockTagName}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockTagName(JavadocParser.BlockTagNameContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#blockTagContent}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockTagContent(JavadocParser.BlockTagContentContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#blockTagText}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockTagText(JavadocParser.BlockTagTextContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#blockTagTextElement}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#inlineTag}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInlineTag(JavadocParser.InlineTagContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#inlineTagName}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInlineTagName(JavadocParser.InlineTagNameContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#inlineTagContent}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInlineTagContent(JavadocParser.InlineTagContentContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#braceExpression}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBraceExpression(JavadocParser.BraceExpressionContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#braceContent}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBraceContent(JavadocParser.BraceContentContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#braceText}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBraceText(JavadocParser.BraceTextContext ctx);
}
@@ -1,525 +0,0 @@
/**
* Kotlin lexical grammar in ANTLR4 notation
*/
lexer grammar KotlinLexer;
import UnicodeClasses;
// SECTION: lexicalGeneral
ShebangLine
: '#!' ~[\r\n]*
;
DelimitedComment
: '/*' ( DelimitedComment | . )*? '*/'
-> channel(HIDDEN)
;
LineComment
: '//' ~[\r\n]*
-> channel(HIDDEN)
;
WS
: [\u0020\u0009\u000C]
-> channel(HIDDEN)
;
NL: '\n' | '\r' '\n'?;
fragment Hidden: DelimitedComment | LineComment | WS;
// SECTION: separatorsAndOperations
RESERVED: '...';
DOT: '.';
COMMA: ',';
LPAREN: '(' -> pushMode(Inside);
RPAREN: ')';
LSQUARE: '[' -> pushMode(Inside);
RSQUARE: ']';
LCURL: '{' -> pushMode(DEFAULT_MODE);
/*
* When using another programming language (not Java) to generate a parser,
* please replace this code with the corresponding code of a programming language you are using.
*/
RCURL: '}' { if (!_modeStack.isEmpty()) { popMode(); } };
MULT: '*';
MOD: '%';
DIV: '/';
ADD: '+';
SUB: '-';
INCR: '++';
DECR: '--';
CONJ: '&&';
DISJ: '||';
EXCL_WS: '!' Hidden;
EXCL_NO_WS: '!';
COLON: ':';
SEMICOLON: ';';
ASSIGNMENT: '=';
ADD_ASSIGNMENT: '+=';
SUB_ASSIGNMENT: '-=';
MULT_ASSIGNMENT: '*=';
DIV_ASSIGNMENT: '/=';
MOD_ASSIGNMENT: '%=';
ARROW: '->';
DOUBLE_ARROW: '=>';
RANGE: '..';
COLONCOLON: '::';
DOUBLE_SEMICOLON: ';;';
HASH: '#';
AT_NO_WS: '@';
AT_POST_WS: '@' (Hidden | NL);
AT_PRE_WS: (Hidden | NL) '@' ;
AT_BOTH_WS: (Hidden | NL) '@' (Hidden | NL);
QUEST_WS: '?' Hidden;
QUEST_NO_WS: '?';
LANGLE: '<';
RANGLE: '>';
LE: '<=';
GE: '>=';
EXCL_EQ: '!=';
EXCL_EQEQ: '!==';
AS_SAFE: 'as?';
EQEQ: '==';
EQEQEQ: '===';
SINGLE_QUOTE: '\'';
// SECTION: keywords
RETURN_AT: 'return@' Identifier;
CONTINUE_AT: 'continue@' Identifier;
BREAK_AT: 'break@' Identifier;
THIS_AT: 'this@' Identifier;
SUPER_AT: 'super@' Identifier;
FILE: 'file';
FIELD: 'field';
PROPERTY: 'property';
GET: 'get';
SET: 'set';
RECEIVER: 'receiver';
PARAM: 'param';
SETPARAM: 'setparam';
DELEGATE: 'delegate';
PACKAGE: 'package';
IMPORT: 'import';
CLASS: 'class';
INTERFACE: 'interface';
FUN: 'fun';
OBJECT: 'object';
VAL: 'val';
VAR: 'var';
TYPE_ALIAS: 'typealias';
CONSTRUCTOR: 'constructor';
BY: 'by';
COMPANION: 'companion';
INIT: 'init';
THIS: 'this';
SUPER: 'super';
TYPEOF: 'typeof';
WHERE: 'where';
IF: 'if';
ELSE: 'else';
WHEN: 'when';
TRY: 'try';
CATCH: 'catch';
FINALLY: 'finally';
FOR: 'for';
DO: 'do';
WHILE: 'while';
THROW: 'throw';
RETURN: 'return';
CONTINUE: 'continue';
BREAK: 'break';
AS: 'as';
IS: 'is';
IN: 'in';
NOT_IS: '!is' (Hidden | NL);
NOT_IN: '!in' (Hidden | NL);
OUT: 'out';
DYNAMIC: 'dynamic';
// SECTION: lexicalModifiers
PUBLIC: 'public';
PRIVATE: 'private';
PROTECTED: 'protected';
INTERNAL: 'internal';
ENUM: 'enum';
SEALED: 'sealed';
ANNOTATION: 'annotation';
DATA: 'data';
INNER: 'inner';
VALUE: 'value';
TAILREC: 'tailrec';
OPERATOR: 'operator';
INLINE: 'inline';
INFIX: 'infix';
EXTERNAL: 'external';
SUSPEND: 'suspend';
OVERRIDE: 'override';
ABSTRACT: 'abstract';
FINAL: 'final';
OPEN: 'open';
CONST: 'const';
LATEINIT: 'lateinit';
VARARG: 'vararg';
NOINLINE: 'noinline';
CROSSINLINE: 'crossinline';
REIFIED: 'reified';
EXPECT: 'expect';
ACTUAL: 'actual';
// SECTION: literals
fragment DecDigit: '0'..'9';
fragment DecDigitNoZero: '1'..'9';
fragment DecDigitOrSeparator: DecDigit | '_';
fragment DecDigits
: DecDigit DecDigitOrSeparator* DecDigit
| DecDigit
;
fragment DoubleExponent: [eE] [+-]? DecDigits;
RealLiteral
: FloatLiteral
| DoubleLiteral
;
FloatLiteral
: DoubleLiteral [fF]
| DecDigits [fF]
;
DoubleLiteral
: DecDigits? '.' DecDigits DoubleExponent?
| DecDigits DoubleExponent
;
IntegerLiteral
: DecDigitNoZero DecDigitOrSeparator* DecDigit
| DecDigit
;
fragment HexDigit: [0-9a-fA-F];
fragment HexDigitOrSeparator: HexDigit | '_';
HexLiteral
: '0' [xX] HexDigit HexDigitOrSeparator* HexDigit
| '0' [xX] HexDigit
;
fragment BinDigit: [01];
fragment BinDigitOrSeparator: BinDigit | '_';
BinLiteral
: '0' [bB] BinDigit BinDigitOrSeparator* BinDigit
| '0' [bB] BinDigit
;
UnsignedLiteral
: (IntegerLiteral | HexLiteral | BinLiteral) [uU] [lL]?
;
LongLiteral
: (IntegerLiteral | HexLiteral | BinLiteral) [lL]
;
BooleanLiteral: 'true'| 'false';
NullLiteral: 'null';
CharacterLiteral
: '\'' (EscapeSeq | ~[\n\r'\\]) '\''
;
// SECTION: lexicalIdentifiers
fragment UnicodeDigit: UNICODE_CLASS_ND;
Identifier
: (Letter | '_') (Letter | '_' | UnicodeDigit)*
| '`' ~([\r\n] | '`')+ '`'
;
IdentifierOrSoftKey
: Identifier
/* Soft keywords */
| ABSTRACT
| ANNOTATION
| BY
| CATCH
| COMPANION
| CONSTRUCTOR
| CROSSINLINE
| DATA
| DYNAMIC
| ENUM
| EXTERNAL
| FINAL
| FINALLY
| IMPORT
| INFIX
| INIT
| INLINE
| INNER
| INTERNAL
| LATEINIT
| NOINLINE
| OPEN
| OPERATOR
| OUT
| OVERRIDE
| PRIVATE
| PROTECTED
| PUBLIC
| REIFIED
| SEALED
| TAILREC
| VARARG
| WHERE
| GET
| SET
| FIELD
| PROPERTY
| RECEIVER
| PARAM
| SETPARAM
| DELEGATE
| FILE
| EXPECT
| ACTUAL
| VALUE
/* Strong keywords */
| CONST
| SUSPEND
;
FieldIdentifier
: '$' IdentifierOrSoftKey
;
fragment UniCharacterLiteral
: '\\' 'u' HexDigit HexDigit HexDigit HexDigit
;
fragment EscapedIdentifier
: '\\' ('t' | 'b' | 'r' | 'n' | '\'' | '"' | '\\' | '$')
;
fragment EscapeSeq
: UniCharacterLiteral
| EscapedIdentifier
;
// SECTION: characters
fragment Letter
: UNICODE_CLASS_LU
| UNICODE_CLASS_LL
| UNICODE_CLASS_LT
| UNICODE_CLASS_LM
| UNICODE_CLASS_LO
;
// SECTION: strings
QUOTE_OPEN: '"' -> pushMode(LineString);
TRIPLE_QUOTE_OPEN: '"""' -> pushMode(MultiLineString);
mode LineString;
QUOTE_CLOSE
: '"' -> popMode
;
LineStrRef
: FieldIdentifier
;
LineStrText
: ~('\\' | '"' | '$')+ | '$'
;
LineStrEscapedChar
: EscapedIdentifier
| UniCharacterLiteral
;
LineStrExprStart
: '${' -> pushMode(DEFAULT_MODE)
;
mode MultiLineString;
TRIPLE_QUOTE_CLOSE
: MultiLineStringQuote? '"""' -> popMode
;
MultiLineStringQuote
: '"'+
;
MultiLineStrRef
: FieldIdentifier
;
MultiLineStrText
: ~('"' | '$')+ | '$'
;
MultiLineStrExprStart
: '${' -> pushMode(DEFAULT_MODE)
;
// SECTION: inside
mode Inside;
Inside_RPAREN: RPAREN -> popMode, type(RPAREN);
Inside_RSQUARE: RSQUARE -> popMode, type(RSQUARE);
Inside_LPAREN: LPAREN -> pushMode(Inside), type(LPAREN);
Inside_LSQUARE: LSQUARE -> pushMode(Inside), type(LSQUARE);
Inside_LCURL: LCURL -> pushMode(DEFAULT_MODE), type(LCURL);
Inside_RCURL: RCURL -> popMode, type(RCURL);
Inside_DOT: DOT -> type(DOT);
Inside_COMMA: COMMA -> type(COMMA);
Inside_MULT: MULT -> type(MULT);
Inside_MOD: MOD -> type(MOD);
Inside_DIV: DIV -> type(DIV);
Inside_ADD: ADD -> type(ADD);
Inside_SUB: SUB -> type(SUB);
Inside_INCR: INCR -> type(INCR);
Inside_DECR: DECR -> type(DECR);
Inside_CONJ: CONJ -> type(CONJ);
Inside_DISJ: DISJ -> type(DISJ);
Inside_EXCL_WS: '!' (Hidden|NL) -> type(EXCL_WS);
Inside_EXCL_NO_WS: EXCL_NO_WS -> type(EXCL_NO_WS);
Inside_COLON: COLON -> type(COLON);
Inside_SEMICOLON: SEMICOLON -> type(SEMICOLON);
Inside_ASSIGNMENT: ASSIGNMENT -> type(ASSIGNMENT);
Inside_ADD_ASSIGNMENT: ADD_ASSIGNMENT -> type(ADD_ASSIGNMENT);
Inside_SUB_ASSIGNMENT: SUB_ASSIGNMENT -> type(SUB_ASSIGNMENT);
Inside_MULT_ASSIGNMENT: MULT_ASSIGNMENT -> type(MULT_ASSIGNMENT);
Inside_DIV_ASSIGNMENT: DIV_ASSIGNMENT -> type(DIV_ASSIGNMENT);
Inside_MOD_ASSIGNMENT: MOD_ASSIGNMENT -> type(MOD_ASSIGNMENT);
Inside_ARROW: ARROW -> type(ARROW);
Inside_DOUBLE_ARROW: DOUBLE_ARROW -> type(DOUBLE_ARROW);
Inside_RANGE: RANGE -> type(RANGE);
Inside_RESERVED: RESERVED -> type(RESERVED);
Inside_COLONCOLON: COLONCOLON -> type(COLONCOLON);
Inside_DOUBLE_SEMICOLON: DOUBLE_SEMICOLON -> type(DOUBLE_SEMICOLON);
Inside_HASH: HASH -> type(HASH);
Inside_AT_NO_WS: AT_NO_WS -> type(AT_NO_WS);
Inside_AT_POST_WS: AT_POST_WS -> type(AT_POST_WS);
Inside_AT_PRE_WS: AT_PRE_WS -> type(AT_PRE_WS);
Inside_AT_BOTH_WS: AT_BOTH_WS -> type(AT_BOTH_WS);
Inside_QUEST_WS: '?' (Hidden | NL) -> type(QUEST_WS);
Inside_QUEST_NO_WS: QUEST_NO_WS -> type(QUEST_NO_WS);
Inside_LANGLE: LANGLE -> type(LANGLE);
Inside_RANGLE: RANGLE -> type(RANGLE);
Inside_LE: LE -> type(LE);
Inside_GE: GE -> type(GE);
Inside_EXCL_EQ: EXCL_EQ -> type(EXCL_EQ);
Inside_EXCL_EQEQ: EXCL_EQEQ -> type(EXCL_EQEQ);
Inside_IS: IS -> type(IS);
Inside_NOT_IS: NOT_IS -> type(NOT_IS);
Inside_NOT_IN: NOT_IN -> type(NOT_IN);
Inside_AS: AS -> type(AS);
Inside_AS_SAFE: AS_SAFE -> type(AS_SAFE);
Inside_EQEQ: EQEQ -> type(EQEQ);
Inside_EQEQEQ: EQEQEQ -> type(EQEQEQ);
Inside_SINGLE_QUOTE: SINGLE_QUOTE -> type(SINGLE_QUOTE);
Inside_QUOTE_OPEN: QUOTE_OPEN -> pushMode(LineString), type(QUOTE_OPEN);
Inside_TRIPLE_QUOTE_OPEN: TRIPLE_QUOTE_OPEN -> pushMode(MultiLineString), type(TRIPLE_QUOTE_OPEN);
Inside_VAL: VAL -> type(VAL);
Inside_VAR: VAR -> type(VAR);
Inside_FUN: FUN -> type(FUN);
Inside_OBJECT: OBJECT -> type(OBJECT);
Inside_SUPER: SUPER -> type(SUPER);
Inside_IN: IN -> type(IN);
Inside_OUT: OUT -> type(OUT);
Inside_FIELD: FIELD -> type(FIELD);
Inside_FILE: FILE -> type(FILE);
Inside_PROPERTY: PROPERTY -> type(PROPERTY);
Inside_GET: GET -> type(GET);
Inside_SET: SET -> type(SET);
Inside_RECEIVER: RECEIVER -> type(RECEIVER);
Inside_PARAM: PARAM -> type(PARAM);
Inside_SETPARAM: SETPARAM -> type(SETPARAM);
Inside_DELEGATE: DELEGATE -> type(DELEGATE);
Inside_THROW: THROW -> type(THROW);
Inside_RETURN: RETURN -> type(RETURN);
Inside_CONTINUE: CONTINUE -> type(CONTINUE);
Inside_BREAK: BREAK -> type(BREAK);
Inside_RETURN_AT: RETURN_AT -> type(RETURN_AT);
Inside_CONTINUE_AT: CONTINUE_AT -> type(CONTINUE_AT);
Inside_BREAK_AT: BREAK_AT -> type(BREAK_AT);
Inside_IF: IF -> type(IF);
Inside_ELSE: ELSE -> type(ELSE);
Inside_WHEN: WHEN -> type(WHEN);
Inside_TRY: TRY -> type(TRY);
Inside_CATCH: CATCH -> type(CATCH);
Inside_FINALLY: FINALLY -> type(FINALLY);
Inside_FOR: FOR -> type(FOR);
Inside_DO: DO -> type(DO);
Inside_WHILE: WHILE -> type(WHILE);
Inside_PUBLIC: PUBLIC -> type(PUBLIC);
Inside_PRIVATE: PRIVATE -> type(PRIVATE);
Inside_PROTECTED: PROTECTED -> type(PROTECTED);
Inside_INTERNAL: INTERNAL -> type(INTERNAL);
Inside_ENUM: ENUM -> type(ENUM);
Inside_SEALED: SEALED -> type(SEALED);
Inside_ANNOTATION: ANNOTATION -> type(ANNOTATION);
Inside_DATA: DATA -> type(DATA);
Inside_INNER: INNER -> type(INNER);
Inside_VALUE: VALUE -> type(VALUE);
Inside_TAILREC: TAILREC -> type(TAILREC);
Inside_OPERATOR: OPERATOR -> type(OPERATOR);
Inside_INLINE: INLINE -> type(INLINE);
Inside_INFIX: INFIX -> type(INFIX);
Inside_EXTERNAL: EXTERNAL -> type(EXTERNAL);
Inside_SUSPEND: SUSPEND -> type(SUSPEND);
Inside_OVERRIDE: OVERRIDE -> type(OVERRIDE);
Inside_ABSTRACT: ABSTRACT -> type(ABSTRACT);
Inside_FINAL: FINAL -> type(FINAL);
Inside_OPEN: OPEN -> type(OPEN);
Inside_CONST: CONST -> type(CONST);
Inside_LATEINIT: LATEINIT -> type(LATEINIT);
Inside_VARARG: VARARG -> type(VARARG);
Inside_NOINLINE: NOINLINE -> type(NOINLINE);
Inside_CROSSINLINE: CROSSINLINE -> type(CROSSINLINE);
Inside_REIFIED: REIFIED -> type(REIFIED);
Inside_EXPECT: EXPECT -> type(EXPECT);
Inside_ACTUAL: ACTUAL -> type(ACTUAL);
Inside_BooleanLiteral: BooleanLiteral -> type(BooleanLiteral);
Inside_IntegerLiteral: IntegerLiteral -> type(IntegerLiteral);
Inside_HexLiteral: HexLiteral -> type(HexLiteral);
Inside_BinLiteral: BinLiteral -> type(BinLiteral);
Inside_CharacterLiteral: CharacterLiteral -> type(CharacterLiteral);
Inside_RealLiteral: RealLiteral -> type(RealLiteral);
Inside_NullLiteral: NullLiteral -> type(NullLiteral);
Inside_LongLiteral: LongLiteral -> type(LongLiteral);
Inside_UnsignedLiteral: UnsignedLiteral -> type(UnsignedLiteral);
Inside_Identifier: Identifier -> type(Identifier);
Inside_Comment: (LineComment | DelimitedComment) -> channel(HIDDEN);
Inside_WS: WS -> channel(HIDDEN);
Inside_NL: NL -> channel(HIDDEN);
mode DEFAULT_MODE;
ErrorCharacter: .;
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
@@ -1,290 +0,0 @@
ShebangLine=1
DelimitedComment=2
LineComment=3
WS=4
NL=5
RESERVED=6
DOT=7
COMMA=8
LPAREN=9
RPAREN=10
LSQUARE=11
RSQUARE=12
LCURL=13
RCURL=14
MULT=15
MOD=16
DIV=17
ADD=18
SUB=19
INCR=20
DECR=21
CONJ=22
DISJ=23
EXCL_WS=24
EXCL_NO_WS=25
COLON=26
SEMICOLON=27
ASSIGNMENT=28
ADD_ASSIGNMENT=29
SUB_ASSIGNMENT=30
MULT_ASSIGNMENT=31
DIV_ASSIGNMENT=32
MOD_ASSIGNMENT=33
ARROW=34
DOUBLE_ARROW=35
RANGE=36
COLONCOLON=37
DOUBLE_SEMICOLON=38
HASH=39
AT_NO_WS=40
AT_POST_WS=41
AT_PRE_WS=42
AT_BOTH_WS=43
QUEST_WS=44
QUEST_NO_WS=45
LANGLE=46
RANGLE=47
LE=48
GE=49
EXCL_EQ=50
EXCL_EQEQ=51
AS_SAFE=52
EQEQ=53
EQEQEQ=54
SINGLE_QUOTE=55
RETURN_AT=56
CONTINUE_AT=57
BREAK_AT=58
THIS_AT=59
SUPER_AT=60
FILE=61
FIELD=62
PROPERTY=63
GET=64
SET=65
RECEIVER=66
PARAM=67
SETPARAM=68
DELEGATE=69
PACKAGE=70
IMPORT=71
CLASS=72
INTERFACE=73
FUN=74
OBJECT=75
VAL=76
VAR=77
TYPE_ALIAS=78
CONSTRUCTOR=79
BY=80
COMPANION=81
INIT=82
THIS=83
SUPER=84
TYPEOF=85
WHERE=86
IF=87
ELSE=88
WHEN=89
TRY=90
CATCH=91
FINALLY=92
FOR=93
DO=94
WHILE=95
THROW=96
RETURN=97
CONTINUE=98
BREAK=99
AS=100
IS=101
IN=102
NOT_IS=103
NOT_IN=104
OUT=105
DYNAMIC=106
PUBLIC=107
PRIVATE=108
PROTECTED=109
INTERNAL=110
ENUM=111
SEALED=112
ANNOTATION=113
DATA=114
INNER=115
VALUE=116
TAILREC=117
OPERATOR=118
INLINE=119
INFIX=120
EXTERNAL=121
SUSPEND=122
OVERRIDE=123
ABSTRACT=124
FINAL=125
OPEN=126
CONST=127
LATEINIT=128
VARARG=129
NOINLINE=130
CROSSINLINE=131
REIFIED=132
EXPECT=133
ACTUAL=134
RealLiteral=135
FloatLiteral=136
DoubleLiteral=137
IntegerLiteral=138
HexLiteral=139
BinLiteral=140
UnsignedLiteral=141
LongLiteral=142
BooleanLiteral=143
NullLiteral=144
CharacterLiteral=145
Identifier=146
IdentifierOrSoftKey=147
FieldIdentifier=148
QUOTE_OPEN=149
TRIPLE_QUOTE_OPEN=150
UNICODE_CLASS_LL=151
UNICODE_CLASS_LM=152
UNICODE_CLASS_LO=153
UNICODE_CLASS_LT=154
UNICODE_CLASS_LU=155
UNICODE_CLASS_ND=156
UNICODE_CLASS_NL=157
QUOTE_CLOSE=158
LineStrRef=159
LineStrText=160
LineStrEscapedChar=161
LineStrExprStart=162
TRIPLE_QUOTE_CLOSE=163
MultiLineStringQuote=164
MultiLineStrRef=165
MultiLineStrText=166
MultiLineStrExprStart=167
Inside_Comment=168
Inside_WS=169
Inside_NL=170
ErrorCharacter=171
'...'=6
'.'=7
','=8
'('=9
')'=10
'['=11
']'=12
'{'=13
'}'=14
'*'=15
'%'=16
'/'=17
'+'=18
'-'=19
'++'=20
'--'=21
'&&'=22
'||'=23
'!'=25
':'=26
';'=27
'='=28
'+='=29
'-='=30
'*='=31
'/='=32
'%='=33
'->'=34
'=>'=35
'..'=36
'::'=37
';;'=38
'#'=39
'@'=40
'?'=45
'<'=46
'>'=47
'<='=48
'>='=49
'!='=50
'!=='=51
'as?'=52
'=='=53
'==='=54
'\''=55
'file'=61
'field'=62
'property'=63
'get'=64
'set'=65
'receiver'=66
'param'=67
'setparam'=68
'delegate'=69
'package'=70
'import'=71
'class'=72
'interface'=73
'fun'=74
'object'=75
'val'=76
'var'=77
'typealias'=78
'constructor'=79
'by'=80
'companion'=81
'init'=82
'this'=83
'super'=84
'typeof'=85
'where'=86
'if'=87
'else'=88
'when'=89
'try'=90
'catch'=91
'finally'=92
'for'=93
'do'=94
'while'=95
'throw'=96
'return'=97
'continue'=98
'break'=99
'as'=100
'is'=101
'in'=102
'out'=105
'dynamic'=106
'public'=107
'private'=108
'protected'=109
'internal'=110
'enum'=111
'sealed'=112
'annotation'=113
'data'=114
'inner'=115
'value'=116
'tailrec'=117
'operator'=118
'inline'=119
'infix'=120
'external'=121
'suspend'=122
'override'=123
'abstract'=124
'final'=125
'open'=126
'const'=127
'lateinit'=128
'vararg'=129
'noinline'=130
'crossinline'=131
'reified'=132
'expect'=133
'actual'=134
'null'=144
'"""'=150
@@ -1,923 +0,0 @@
/**
* Kotlin syntax grammar in ANTLR4 notation
*/
parser grammar KotlinParser;
options { tokenVocab = KotlinLexer; }
// SECTION: general
kotlinFile
: shebangLine? NL* fileAnnotation* packageHeader importList topLevelObject* EOF
;
script
: shebangLine? NL* fileAnnotation* packageHeader importList (statement semi)* EOF
;
shebangLine
: ShebangLine NL+
;
fileAnnotation
: (AT_NO_WS | AT_PRE_WS) FILE NL* COLON NL* (LSQUARE unescapedAnnotation+ RSQUARE | unescapedAnnotation) NL*
;
packageHeader
: (PACKAGE identifier semi?)?
;
importList
: importHeader*
;
importHeader
: IMPORT identifier (DOT MULT | importAlias)? semi?
;
importAlias
: AS simpleIdentifier
;
topLevelObject
: declaration semis?
;
typeAlias
: modifiers? TYPE_ALIAS NL* simpleIdentifier (NL* typeParameters)? NL* ASSIGNMENT NL* type
;
declaration
: classDeclaration
| objectDeclaration
| functionDeclaration
| propertyDeclaration
| typeAlias
;
// SECTION: classes
classDeclaration
: modifiers? (CLASS | (FUN NL*)? INTERFACE) NL* simpleIdentifier
(NL* typeParameters)? (NL* primaryConstructor)?
(NL* COLON NL* delegationSpecifiers)?
(NL* typeConstraints)?
(NL* classBody | NL* enumClassBody)?
;
primaryConstructor
: (modifiers? CONSTRUCTOR NL*)? classParameters
;
classBody
: LCURL NL* classMemberDeclarations NL* RCURL
;
classParameters
: LPAREN NL* (classParameter (NL* COMMA NL* classParameter)* (NL* COMMA)?)? NL* RPAREN
;
classParameter
: modifiers? (VAL | VAR)? NL* simpleIdentifier COLON NL* type (NL* ASSIGNMENT NL* expression)?
;
delegationSpecifiers
: annotatedDelegationSpecifier (NL* COMMA NL* annotatedDelegationSpecifier)*
;
delegationSpecifier
: constructorInvocation
| explicitDelegation
| userType
| functionType
;
constructorInvocation
: userType valueArguments
;
annotatedDelegationSpecifier
: annotation* NL* delegationSpecifier
;
explicitDelegation
: (userType | functionType) NL* BY NL* expression
;
typeParameters
: LANGLE NL* typeParameter (NL* COMMA NL* typeParameter)* (NL* COMMA)? NL* RANGLE
;
typeParameter
: typeParameterModifiers? NL* simpleIdentifier (NL* COLON NL* type)?
;
typeConstraints
: WHERE NL* typeConstraint (NL* COMMA NL* typeConstraint)*
;
typeConstraint
: annotation* simpleIdentifier NL* COLON NL* type
;
// SECTION: classMembers
classMemberDeclarations
: (classMemberDeclaration semis?)*
;
classMemberDeclaration
: declaration
| companionObject
| anonymousInitializer
| secondaryConstructor
;
anonymousInitializer
: INIT NL* block
;
companionObject
: modifiers? COMPANION NL* OBJECT
(NL* simpleIdentifier)?
(NL* COLON NL* delegationSpecifiers)?
(NL* classBody)?
;
functionValueParameters
: LPAREN NL* (functionValueParameter (NL* COMMA NL* functionValueParameter)* (NL* COMMA)?)? NL* RPAREN
;
functionValueParameter
: parameterModifiers? parameter (NL* ASSIGNMENT NL* expression)?
;
functionDeclaration
: modifiers?
FUN (NL* typeParameters)? (NL* receiverType NL* DOT)? NL* simpleIdentifier
NL* functionValueParameters
(NL* COLON NL* type)?
(NL* typeConstraints)?
(NL* functionBody)?
;
functionBody
: block
| ASSIGNMENT NL* expression
;
variableDeclaration
: annotation* NL* simpleIdentifier (NL* COLON NL* type)?
;
multiVariableDeclaration
: LPAREN NL* variableDeclaration (NL* COMMA NL* variableDeclaration)* (NL* COMMA)? NL* RPAREN
;
propertyDeclaration
: modifiers? (VAL | VAR)
(NL* typeParameters)?
(NL* receiverType NL* DOT)?
(NL* (multiVariableDeclaration | variableDeclaration))
(NL* typeConstraints)?
(NL* (ASSIGNMENT NL* expression | propertyDelegate))?
(NL+ SEMICOLON)? NL* (getter? (NL* semi? setter)? | setter? (NL* semi? getter)?)
;
propertyDelegate
: BY NL* expression
;
getter
: modifiers? GET
(NL* LPAREN NL* RPAREN (NL* COLON NL* type)? NL* functionBody)?
;
setter
: modifiers? SET
(NL* LPAREN NL* functionValueParameterWithOptionalType (NL* COMMA)? NL* RPAREN (NL* COLON NL* type)? NL* functionBody)?
;
parametersWithOptionalType
: LPAREN NL* (functionValueParameterWithOptionalType (NL* COMMA NL* functionValueParameterWithOptionalType)* (NL* COMMA)?)? NL* RPAREN
;
functionValueParameterWithOptionalType
: parameterModifiers? parameterWithOptionalType (NL* ASSIGNMENT NL* expression)?
;
parameterWithOptionalType
: simpleIdentifier NL* (COLON NL* type)?
;
parameter
: simpleIdentifier NL* COLON NL* type
;
objectDeclaration
: modifiers? OBJECT
NL* simpleIdentifier
(NL* COLON NL* delegationSpecifiers)?
(NL* classBody)?
;
secondaryConstructor
: modifiers? CONSTRUCTOR NL* functionValueParameters (NL* COLON NL* constructorDelegationCall)? NL* block?
;
constructorDelegationCall
: (THIS | SUPER) NL* valueArguments
;
// SECTION: enumClasses
enumClassBody
: LCURL NL* enumEntries? (NL* SEMICOLON NL* classMemberDeclarations)? NL* RCURL
;
enumEntries
: enumEntry (NL* COMMA NL* enumEntry)* NL* COMMA?
;
enumEntry
: (modifiers NL*)? simpleIdentifier (NL* valueArguments)? (NL* classBody)?
;
// SECTION: types
type
: typeModifiers? (parenthesizedType | nullableType | typeReference | functionType)
;
typeReference
: userType
| DYNAMIC
;
nullableType
: (typeReference | parenthesizedType) NL* quest+
;
quest
: QUEST_NO_WS
| QUEST_WS
;
userType
: simpleUserType (NL* DOT NL* simpleUserType)*
;
simpleUserType
: simpleIdentifier (NL* typeArguments)?
;
typeProjection
: typeProjectionModifiers? type
| MULT
;
typeProjectionModifiers
: typeProjectionModifier+
;
typeProjectionModifier
: varianceModifier NL*
| annotation
;
functionType
: (receiverType NL* DOT NL*)? functionTypeParameters NL* ARROW NL* type
;
functionTypeParameters
: LPAREN NL* (parameter | type)? (NL* COMMA NL* (parameter | type))* (NL* COMMA)? NL* RPAREN
;
parenthesizedType
: LPAREN NL* type NL* RPAREN
;
receiverType
: typeModifiers? (parenthesizedType | nullableType | typeReference)
;
parenthesizedUserType
: LPAREN NL* (userType | parenthesizedUserType) NL* RPAREN
;
// SECTION: statements
statements
: (statement (semis statement)*)? semis?
;
statement
: (label | annotation)* ( declaration | assignment | loopStatement | expression)
;
label
: simpleIdentifier (AT_NO_WS | AT_POST_WS) NL*
;
controlStructureBody
: block
| statement
;
block
: LCURL NL* statements NL* RCURL
;
loopStatement
: forStatement
| whileStatement
| doWhileStatement
;
forStatement
: FOR NL* LPAREN annotation* (variableDeclaration | multiVariableDeclaration)
IN expression RPAREN NL* controlStructureBody?
;
whileStatement
: WHILE NL* LPAREN expression RPAREN NL* (controlStructureBody | SEMICOLON)
;
doWhileStatement
: DO NL* controlStructureBody? NL* WHILE NL* LPAREN expression RPAREN
;
assignment
: (directlyAssignableExpression ASSIGNMENT | assignableExpression assignmentAndOperator) NL* expression
;
semi
: (SEMICOLON | NL) NL*
| EOF
;
semis
: (SEMICOLON | NL)+
| EOF
;
// SECTION: expressions
expression
: disjunction
;
disjunction
: conjunction (NL* DISJ NL* conjunction)*
;
conjunction
: equality (NL* CONJ NL* equality)*
;
equality
: comparison (equalityOperator NL* comparison)*
;
comparison
: genericCallLikeComparison (comparisonOperator NL* genericCallLikeComparison)*
;
genericCallLikeComparison
: infixOperation callSuffix*
;
infixOperation
: elvisExpression (inOperator NL* elvisExpression | isOperator NL* type)*
;
elvisExpression
: infixFunctionCall (NL* elvis NL* infixFunctionCall)*
;
elvis
: QUEST_NO_WS COLON
;
infixFunctionCall
: rangeExpression (simpleIdentifier NL* rangeExpression)*
;
rangeExpression
: additiveExpression (RANGE NL* additiveExpression)*
;
additiveExpression
: multiplicativeExpression (additiveOperator NL* multiplicativeExpression)*
;
multiplicativeExpression
: asExpression (multiplicativeOperator NL* asExpression)*
;
asExpression
: prefixUnaryExpression (NL* asOperator NL* type)*
;
prefixUnaryExpression
: unaryPrefix* postfixUnaryExpression
;
unaryPrefix
: annotation
| label
| prefixUnaryOperator NL*
;
postfixUnaryExpression
: primaryExpression postfixUnarySuffix*
;
postfixUnarySuffix
: postfixUnaryOperator
| typeArguments
| callSuffix
| indexingSuffix
| navigationSuffix
;
directlyAssignableExpression
: postfixUnaryExpression assignableSuffix
| simpleIdentifier
| parenthesizedDirectlyAssignableExpression
;
parenthesizedDirectlyAssignableExpression
: LPAREN NL* directlyAssignableExpression NL* RPAREN
;
assignableExpression
: prefixUnaryExpression
| parenthesizedAssignableExpression
;
parenthesizedAssignableExpression
: LPAREN NL* assignableExpression NL* RPAREN
;
assignableSuffix
: typeArguments
| indexingSuffix
| navigationSuffix
;
indexingSuffix
: LSQUARE NL* expression (NL* COMMA NL* expression)* (NL* COMMA)? NL* RSQUARE
;
navigationSuffix
: memberAccessOperator NL* (simpleIdentifier | parenthesizedExpression | CLASS)
;
callSuffix
: typeArguments? (valueArguments? annotatedLambda | valueArguments)
;
annotatedLambda
: annotation* label? NL* lambdaLiteral
;
typeArguments
: LANGLE NL* typeProjection (NL* COMMA NL* typeProjection)* (NL* COMMA)? NL* RANGLE
;
valueArguments
: LPAREN NL* (valueArgument (NL* COMMA NL* valueArgument)* (NL* COMMA)? NL*)? RPAREN
;
valueArgument
: annotation? NL* (simpleIdentifier NL* ASSIGNMENT NL*)? MULT? NL* expression
;
primaryExpression
: parenthesizedExpression
| simpleIdentifier
| literalConstant
| stringLiteral
| callableReference
| functionLiteral
| objectLiteral
| collectionLiteral
| thisExpression
| superExpression
| ifExpression
| whenExpression
| tryExpression
| jumpExpression
;
parenthesizedExpression
: LPAREN NL* expression NL* RPAREN
;
collectionLiteral
: LSQUARE NL* (expression (NL* COMMA NL* expression)* (NL* COMMA)? NL*)? RSQUARE
;
literalConstant
: BooleanLiteral
| IntegerLiteral
| HexLiteral
| BinLiteral
| CharacterLiteral
| RealLiteral
| NullLiteral
| LongLiteral
| UnsignedLiteral
;
stringLiteral
: lineStringLiteral
| multiLineStringLiteral
;
lineStringLiteral
: QUOTE_OPEN (lineStringContent | lineStringExpression)* QUOTE_CLOSE
;
multiLineStringLiteral
: TRIPLE_QUOTE_OPEN (multiLineStringContent | multiLineStringExpression | MultiLineStringQuote)* TRIPLE_QUOTE_CLOSE
;
lineStringContent
: LineStrText
| LineStrEscapedChar
| LineStrRef
;
lineStringExpression
: LineStrExprStart NL* expression NL* RCURL
;
multiLineStringContent
: MultiLineStrText
| MultiLineStringQuote
| MultiLineStrRef
;
multiLineStringExpression
: MultiLineStrExprStart NL* expression NL* RCURL
;
lambdaLiteral
: LCURL NL* (lambdaParameters? NL* ARROW NL*)? statements NL* RCURL
;
lambdaParameters
: lambdaParameter (NL* COMMA NL* lambdaParameter)* (NL* COMMA)?
;
lambdaParameter
: variableDeclaration
| multiVariableDeclaration (NL* COLON NL* type)?
;
anonymousFunction
: FUN
(NL* type NL* DOT)?
NL* parametersWithOptionalType
(NL* COLON NL* type)?
(NL* typeConstraints)?
(NL* functionBody)?
;
functionLiteral
: lambdaLiteral
| anonymousFunction
;
objectLiteral
: OBJECT (NL* COLON NL* delegationSpecifiers NL*)? (NL* classBody)?
;
thisExpression
: THIS
| THIS_AT
;
superExpression
: SUPER (LANGLE NL* type NL* RANGLE)? (AT_NO_WS simpleIdentifier)?
| SUPER_AT
;
ifExpression
: IF NL* LPAREN NL* expression NL* RPAREN NL*
( controlStructureBody
| controlStructureBody? NL* SEMICOLON? NL* ELSE NL* (controlStructureBody | SEMICOLON)
| SEMICOLON)
;
whenSubject
: LPAREN (annotation* NL* VAL NL* variableDeclaration NL* ASSIGNMENT NL*)? expression RPAREN
;
whenExpression
: WHEN NL* whenSubject? NL* LCURL NL* (whenEntry NL*)* NL* RCURL
;
whenEntry
: whenCondition (NL* COMMA NL* whenCondition)* (NL* COMMA)? NL* ARROW NL* controlStructureBody semi?
| ELSE NL* ARROW NL* controlStructureBody semi?
;
whenCondition
: expression
| rangeTest
| typeTest
;
rangeTest
: inOperator NL* expression
;
typeTest
: isOperator NL* type
;
tryExpression
: TRY NL* block ((NL* catchBlock)+ (NL* finallyBlock)? | NL* finallyBlock)
;
catchBlock
: CATCH NL* LPAREN annotation* simpleIdentifier COLON type (NL* COMMA)? RPAREN NL* block
;
finallyBlock
: FINALLY NL* block
;
jumpExpression
: THROW NL* expression
| (RETURN | RETURN_AT) expression?
| CONTINUE
| CONTINUE_AT
| BREAK
| BREAK_AT
;
callableReference
: receiverType? COLONCOLON NL* (simpleIdentifier | CLASS)
;
assignmentAndOperator
: ADD_ASSIGNMENT
| SUB_ASSIGNMENT
| MULT_ASSIGNMENT
| DIV_ASSIGNMENT
| MOD_ASSIGNMENT
;
equalityOperator
: EXCL_EQ
| EXCL_EQEQ
| EQEQ
| EQEQEQ
;
comparisonOperator
: LANGLE
| RANGLE
| LE
| GE
;
inOperator
: IN
| NOT_IN
;
isOperator
: IS
| NOT_IS
;
additiveOperator
: ADD
| SUB
;
multiplicativeOperator
: MULT
| DIV
| MOD
;
asOperator
: AS
| AS_SAFE
;
prefixUnaryOperator
: INCR
| DECR
| SUB
| ADD
| excl
;
postfixUnaryOperator
: INCR
| DECR
| EXCL_NO_WS excl
;
excl
: EXCL_NO_WS
| EXCL_WS
;
memberAccessOperator
: NL* DOT
| NL* safeNav
| COLONCOLON
;
safeNav
: QUEST_NO_WS DOT
;
// SECTION: modifiers
modifiers
: (annotation | modifier)+
;
parameterModifiers
: (annotation | parameterModifier)+
;
modifier
: (classModifier
| memberModifier
| visibilityModifier
| functionModifier
| propertyModifier
| inheritanceModifier
| parameterModifier
| platformModifier) NL*
;
typeModifiers
: typeModifier+
;
typeModifier
: annotation
| SUSPEND NL*
;
classModifier
: ENUM
| SEALED
| ANNOTATION
| DATA
| INNER
| VALUE
;
memberModifier
: OVERRIDE
| LATEINIT
;
visibilityModifier
: PUBLIC
| PRIVATE
| INTERNAL
| PROTECTED
;
varianceModifier
: IN
| OUT
;
typeParameterModifiers
: typeParameterModifier+
;
typeParameterModifier
: reificationModifier NL*
| varianceModifier NL*
| annotation
;
functionModifier
: TAILREC
| OPERATOR
| INFIX
| INLINE
| EXTERNAL
| SUSPEND
;
propertyModifier
: CONST
;
inheritanceModifier
: ABSTRACT
| FINAL
| OPEN
;
parameterModifier
: VARARG
| NOINLINE
| CROSSINLINE
;
reificationModifier
: REIFIED
;
platformModifier
: EXPECT
| ACTUAL
;
// SECTION: annotations
annotation
: (singleAnnotation | multiAnnotation) NL*
;
singleAnnotation
: (annotationUseSiteTarget NL* | AT_NO_WS | AT_PRE_WS) unescapedAnnotation
;
multiAnnotation
: (annotationUseSiteTarget NL* | AT_NO_WS | AT_PRE_WS) LSQUARE unescapedAnnotation+ RSQUARE
;
annotationUseSiteTarget
: (AT_NO_WS | AT_PRE_WS) (FIELD | PROPERTY | GET | SET | RECEIVER | PARAM | SETPARAM | DELEGATE) NL* COLON
;
unescapedAnnotation
: constructorInvocation
| userType
;
// SECTION: identifiers
simpleIdentifier
: Identifier
| ABSTRACT
| ANNOTATION
| BY
| CATCH
| COMPANION
| CONSTRUCTOR
| CROSSINLINE
| DATA
| DYNAMIC
| ENUM
| EXTERNAL
| FINAL
| FINALLY
| GET
| IMPORT
| INFIX
| INIT
| INLINE
| INNER
| INTERNAL
| LATEINIT
| NOINLINE
| OPEN
| OPERATOR
| OUT
| OVERRIDE
| PRIVATE
| PROTECTED
| PUBLIC
| REIFIED
| SEALED
| TAILREC
| SET
| VARARG
| WHERE
| FIELD
| PROPERTY
| RECEIVER
| PARAM
| SETPARAM
| DELEGATE
| FILE
| EXPECT
| ACTUAL
| CONST
| SUSPEND
| VALUE
;
identifier
: simpleIdentifier (NL* DOT simpleIdentifier)*
;
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
@@ -1,290 +0,0 @@
ShebangLine=1
DelimitedComment=2
LineComment=3
WS=4
NL=5
RESERVED=6
DOT=7
COMMA=8
LPAREN=9
RPAREN=10
LSQUARE=11
RSQUARE=12
LCURL=13
RCURL=14
MULT=15
MOD=16
DIV=17
ADD=18
SUB=19
INCR=20
DECR=21
CONJ=22
DISJ=23
EXCL_WS=24
EXCL_NO_WS=25
COLON=26
SEMICOLON=27
ASSIGNMENT=28
ADD_ASSIGNMENT=29
SUB_ASSIGNMENT=30
MULT_ASSIGNMENT=31
DIV_ASSIGNMENT=32
MOD_ASSIGNMENT=33
ARROW=34
DOUBLE_ARROW=35
RANGE=36
COLONCOLON=37
DOUBLE_SEMICOLON=38
HASH=39
AT_NO_WS=40
AT_POST_WS=41
AT_PRE_WS=42
AT_BOTH_WS=43
QUEST_WS=44
QUEST_NO_WS=45
LANGLE=46
RANGLE=47
LE=48
GE=49
EXCL_EQ=50
EXCL_EQEQ=51
AS_SAFE=52
EQEQ=53
EQEQEQ=54
SINGLE_QUOTE=55
RETURN_AT=56
CONTINUE_AT=57
BREAK_AT=58
THIS_AT=59
SUPER_AT=60
FILE=61
FIELD=62
PROPERTY=63
GET=64
SET=65
RECEIVER=66
PARAM=67
SETPARAM=68
DELEGATE=69
PACKAGE=70
IMPORT=71
CLASS=72
INTERFACE=73
FUN=74
OBJECT=75
VAL=76
VAR=77
TYPE_ALIAS=78
CONSTRUCTOR=79
BY=80
COMPANION=81
INIT=82
THIS=83
SUPER=84
TYPEOF=85
WHERE=86
IF=87
ELSE=88
WHEN=89
TRY=90
CATCH=91
FINALLY=92
FOR=93
DO=94
WHILE=95
THROW=96
RETURN=97
CONTINUE=98
BREAK=99
AS=100
IS=101
IN=102
NOT_IS=103
NOT_IN=104
OUT=105
DYNAMIC=106
PUBLIC=107
PRIVATE=108
PROTECTED=109
INTERNAL=110
ENUM=111
SEALED=112
ANNOTATION=113
DATA=114
INNER=115
VALUE=116
TAILREC=117
OPERATOR=118
INLINE=119
INFIX=120
EXTERNAL=121
SUSPEND=122
OVERRIDE=123
ABSTRACT=124
FINAL=125
OPEN=126
CONST=127
LATEINIT=128
VARARG=129
NOINLINE=130
CROSSINLINE=131
REIFIED=132
EXPECT=133
ACTUAL=134
RealLiteral=135
FloatLiteral=136
DoubleLiteral=137
IntegerLiteral=138
HexLiteral=139
BinLiteral=140
UnsignedLiteral=141
LongLiteral=142
BooleanLiteral=143
NullLiteral=144
CharacterLiteral=145
Identifier=146
IdentifierOrSoftKey=147
FieldIdentifier=148
QUOTE_OPEN=149
TRIPLE_QUOTE_OPEN=150
UNICODE_CLASS_LL=151
UNICODE_CLASS_LM=152
UNICODE_CLASS_LO=153
UNICODE_CLASS_LT=154
UNICODE_CLASS_LU=155
UNICODE_CLASS_ND=156
UNICODE_CLASS_NL=157
QUOTE_CLOSE=158
LineStrRef=159
LineStrText=160
LineStrEscapedChar=161
LineStrExprStart=162
TRIPLE_QUOTE_CLOSE=163
MultiLineStringQuote=164
MultiLineStrRef=165
MultiLineStrText=166
MultiLineStrExprStart=167
Inside_Comment=168
Inside_WS=169
Inside_NL=170
ErrorCharacter=171
'...'=6
'.'=7
','=8
'('=9
')'=10
'['=11
']'=12
'{'=13
'}'=14
'*'=15
'%'=16
'/'=17
'+'=18
'-'=19
'++'=20
'--'=21
'&&'=22
'||'=23
'!'=25
':'=26
';'=27
'='=28
'+='=29
'-='=30
'*='=31
'/='=32
'%='=33
'->'=34
'=>'=35
'..'=36
'::'=37
';;'=38
'#'=39
'@'=40
'?'=45
'<'=46
'>'=47
'<='=48
'>='=49
'!='=50
'!=='=51
'as?'=52
'=='=53
'==='=54
'\''=55
'file'=61
'field'=62
'property'=63
'get'=64
'set'=65
'receiver'=66
'param'=67
'setparam'=68
'delegate'=69
'package'=70
'import'=71
'class'=72
'interface'=73
'fun'=74
'object'=75
'val'=76
'var'=77
'typealias'=78
'constructor'=79
'by'=80
'companion'=81
'init'=82
'this'=83
'super'=84
'typeof'=85
'where'=86
'if'=87
'else'=88
'when'=89
'try'=90
'catch'=91
'finally'=92
'for'=93
'do'=94
'while'=95
'throw'=96
'return'=97
'continue'=98
'break'=99
'as'=100
'is'=101
'in'=102
'out'=105
'dynamic'=106
'public'=107
'private'=108
'protected'=109
'internal'=110
'enum'=111
'sealed'=112
'annotation'=113
'data'=114
'inner'=115
'value'=116
'tailrec'=117
'operator'=118
'inline'=119
'infix'=120
'external'=121
'suspend'=122
'override'=123
'abstract'=124
'final'=125
'open'=126
'const'=127
'lateinit'=128
'vararg'=129
'noinline'=130
'crossinline'=131
'reified'=132
'expect'=133
'actual'=134
'null'=144
'"""'=150
File diff suppressed because one or more lines are too long
@@ -1,407 +0,0 @@
// Generated from UnicodeClasses.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.kotlin;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.RuntimeMetaData;
import org.antlr.v4.runtime.Vocabulary;
import org.antlr.v4.runtime.VocabularyImpl;
import org.antlr.v4.runtime.atn.ATN;
import org.antlr.v4.runtime.atn.ATNDeserializer;
import org.antlr.v4.runtime.atn.LexerATNSimulator;
import org.antlr.v4.runtime.atn.PredictionContextCache;
import org.antlr.v4.runtime.dfa.DFA;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class UnicodeClasses extends Lexer {
public static final int UNICODE_CLASS_LL = 1,
UNICODE_CLASS_LM = 2,
UNICODE_CLASS_LO = 3,
UNICODE_CLASS_LT = 4,
UNICODE_CLASS_LU = 5,
UNICODE_CLASS_ND = 6,
UNICODE_CLASS_NL = 7;
public static final String[] ruleNames = makeRuleNames();
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated public static final String[] tokenNames;
public static final String _serializedATN =
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\t\37\b\1\4\2\t\2"
+ "\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\3\2\3\2\3\3\3\3\3\4\3"
+ "\4\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3\b\2\2\t\3\3\5\4\7\5\t\6\13\7\r\b\17\t"
+ "\3\2\t\u0248\2c|\u00b7\u00b7\u00e1\u00f8\u00fa\u0101\u0103\u0103\u0105"
+ "\u0105\u0107\u0107\u0109\u0109\u010b\u010b\u010d\u010d\u010f\u010f\u0111"
+ "\u0111\u0113\u0113\u0115\u0115\u0117\u0117\u0119\u0119\u011b\u011b\u011d"
+ "\u011d\u011f\u011f\u0121\u0121\u0123\u0123\u0125\u0125\u0127\u0127\u0129"
+ "\u0129\u012b\u012b\u012d\u012d\u012f\u012f\u0131\u0131\u0133\u0133\u0135"
+ "\u0135\u0137\u0137\u0139\u013a\u013c\u013c\u013e\u013e\u0140\u0140\u0142"
+ "\u0142\u0144\u0144\u0146\u0146\u0148\u0148\u014a\u014b\u014d\u014d\u014f"
+ "\u014f\u0151\u0151\u0153\u0153\u0155\u0155\u0157\u0157\u0159\u0159\u015b"
+ "\u015b\u015d\u015d\u015f\u015f\u0161\u0161\u0163\u0163\u0165\u0165\u0167"
+ "\u0167\u0169\u0169\u016b\u016b\u016d\u016d\u016f\u016f\u0171\u0171\u0173"
+ "\u0173\u0175\u0175\u0177\u0177\u0179\u0179\u017c\u017c\u017e\u017e\u0180"
+ "\u0182\u0185\u0185\u0187\u0187\u018a\u018a\u018e\u018f\u0194\u0194\u0197"
+ "\u0197\u019b\u019d\u01a0\u01a0\u01a3\u01a3\u01a5\u01a5\u01a7\u01a7\u01aa"
+ "\u01aa\u01ac\u01ad\u01af\u01af\u01b2\u01b2\u01b6\u01b6\u01b8\u01b8\u01bb"
+ "\u01bc\u01bf\u01c1\u01c8\u01c8\u01cb\u01cb\u01ce\u01ce\u01d0\u01d0\u01d2"
+ "\u01d2\u01d4\u01d4\u01d6\u01d6\u01d8\u01d8\u01da\u01da\u01dc\u01dc\u01de"
+ "\u01df\u01e1\u01e1\u01e3\u01e3\u01e5\u01e5\u01e7\u01e7\u01e9\u01e9\u01eb"
+ "\u01eb\u01ed\u01ed\u01ef\u01ef\u01f1\u01f2\u01f5\u01f5\u01f7\u01f7\u01fb"
+ "\u01fb\u01fd\u01fd\u01ff\u01ff\u0201\u0201\u0203\u0203\u0205\u0205\u0207"
+ "\u0207\u0209\u0209\u020b\u020b\u020d\u020d\u020f\u020f\u0211\u0211\u0213"
+ "\u0213\u0215\u0215\u0217\u0217\u0219\u0219\u021b\u021b\u021d\u021d\u021f"
+ "\u021f\u0221\u0221\u0223\u0223\u0225\u0225\u0227\u0227\u0229\u0229\u022b"
+ "\u022b\u022d\u022d\u022f\u022f\u0231\u0231\u0233\u0233\u0235\u023b\u023e"
+ "\u023e\u0241\u0242\u0244\u0244\u0249\u0249\u024b\u024b\u024d\u024d\u024f"
+ "\u024f\u0251\u0295\u0297\u02b1\u0373\u0373\u0375\u0375\u0379\u0379\u037d"
+ "\u037f\u0392\u0392\u03ae\u03d0\u03d2\u03d3\u03d7\u03d9\u03db\u03db\u03dd"
+ "\u03dd\u03df\u03df\u03e1\u03e1\u03e3\u03e3\u03e5\u03e5\u03e7\u03e7\u03e9"
+ "\u03e9\u03eb\u03eb\u03ed\u03ed\u03ef\u03ef\u03f1\u03f5\u03f7\u03f7\u03fa"
+ "\u03fa\u03fd\u03fe\u0432\u0461\u0463\u0463\u0465\u0465\u0467\u0467\u0469"
+ "\u0469\u046b\u046b\u046d\u046d\u046f\u046f\u0471\u0471\u0473\u0473\u0475"
+ "\u0475\u0477\u0477\u0479\u0479\u047b\u047b\u047d\u047d\u047f\u047f\u0481"
+ "\u0481\u0483\u0483\u048d\u048d\u048f\u048f\u0491\u0491\u0493\u0493\u0495"
+ "\u0495\u0497\u0497\u0499\u0499\u049b\u049b\u049d\u049d\u049f\u049f\u04a1"
+ "\u04a1\u04a3\u04a3\u04a5\u04a5\u04a7\u04a7\u04a9\u04a9\u04ab\u04ab\u04ad"
+ "\u04ad\u04af\u04af\u04b1\u04b1\u04b3\u04b3\u04b5\u04b5\u04b7\u04b7\u04b9"
+ "\u04b9\u04bb\u04bb\u04bd\u04bd\u04bf\u04bf\u04c1\u04c1\u04c4\u04c4\u04c6"
+ "\u04c6\u04c8\u04c8\u04ca\u04ca\u04cc\u04cc\u04ce\u04ce\u04d0\u04d1\u04d3"
+ "\u04d3\u04d5\u04d5\u04d7\u04d7\u04d9\u04d9\u04db\u04db\u04dd\u04dd\u04df"
+ "\u04df\u04e1\u04e1\u04e3\u04e3\u04e5\u04e5\u04e7\u04e7\u04e9\u04e9\u04eb"
+ "\u04eb\u04ed\u04ed\u04ef\u04ef\u04f1\u04f1\u04f3\u04f3\u04f5\u04f5\u04f7"
+ "\u04f7\u04f9\u04f9\u04fb\u04fb\u04fd\u04fd\u04ff\u04ff\u0501\u0501\u0503"
+ "\u0503\u0505\u0505\u0507\u0507\u0509\u0509\u050b\u050b\u050d\u050d\u050f"
+ "\u050f\u0511\u0511\u0513\u0513\u0515\u0515\u0517\u0517\u0519\u0519\u051b"
+ "\u051b\u051d\u051d\u051f\u051f\u0521\u0521\u0523\u0523\u0525\u0525\u0527"
+ "\u0527\u0529\u0529\u0563\u0589\u1d02\u1d2d\u1d6d\u1d79\u1d7b\u1d9c\u1e03"
+ "\u1e03\u1e05\u1e05\u1e07\u1e07\u1e09\u1e09\u1e0b\u1e0b\u1e0d\u1e0d\u1e0f"
+ "\u1e0f\u1e11\u1e11\u1e13\u1e13\u1e15\u1e15\u1e17\u1e17\u1e19\u1e19\u1e1b"
+ "\u1e1b\u1e1d\u1e1d\u1e1f\u1e1f\u1e21\u1e21\u1e23\u1e23\u1e25\u1e25\u1e27"
+ "\u1e27\u1e29\u1e29\u1e2b\u1e2b\u1e2d\u1e2d\u1e2f\u1e2f\u1e31\u1e31\u1e33"
+ "\u1e33\u1e35\u1e35\u1e37\u1e37\u1e39\u1e39\u1e3b\u1e3b\u1e3d\u1e3d\u1e3f"
+ "\u1e3f\u1e41\u1e41\u1e43\u1e43\u1e45\u1e45\u1e47\u1e47\u1e49\u1e49\u1e4b"
+ "\u1e4b\u1e4d\u1e4d\u1e4f\u1e4f\u1e51\u1e51\u1e53\u1e53\u1e55\u1e55\u1e57"
+ "\u1e57\u1e59\u1e59\u1e5b\u1e5b\u1e5d\u1e5d\u1e5f\u1e5f\u1e61\u1e61\u1e63"
+ "\u1e63\u1e65\u1e65\u1e67\u1e67\u1e69\u1e69\u1e6b\u1e6b\u1e6d\u1e6d\u1e6f"
+ "\u1e6f\u1e71\u1e71\u1e73\u1e73\u1e75\u1e75\u1e77\u1e77\u1e79\u1e79\u1e7b"
+ "\u1e7b\u1e7d\u1e7d\u1e7f\u1e7f\u1e81\u1e81\u1e83\u1e83\u1e85\u1e85\u1e87"
+ "\u1e87\u1e89\u1e89\u1e8b\u1e8b\u1e8d\u1e8d\u1e8f\u1e8f\u1e91\u1e91\u1e93"
+ "\u1e93\u1e95\u1e95\u1e97\u1e9f\u1ea1\u1ea1\u1ea3\u1ea3\u1ea5\u1ea5\u1ea7"
+ "\u1ea7\u1ea9\u1ea9\u1eab\u1eab\u1ead\u1ead\u1eaf\u1eaf\u1eb1\u1eb1\u1eb3"
+ "\u1eb3\u1eb5\u1eb5\u1eb7\u1eb7\u1eb9\u1eb9\u1ebb\u1ebb\u1ebd\u1ebd\u1ebf"
+ "\u1ebf\u1ec1\u1ec1\u1ec3\u1ec3\u1ec5\u1ec5\u1ec7\u1ec7\u1ec9\u1ec9\u1ecb"
+ "\u1ecb\u1ecd\u1ecd\u1ecf\u1ecf\u1ed1\u1ed1\u1ed3\u1ed3\u1ed5\u1ed5\u1ed7"
+ "\u1ed7\u1ed9\u1ed9\u1edb\u1edb\u1edd\u1edd\u1edf\u1edf\u1ee1\u1ee1\u1ee3"
+ "\u1ee3\u1ee5\u1ee5\u1ee7\u1ee7\u1ee9\u1ee9\u1eeb\u1eeb\u1eed\u1eed\u1eef"
+ "\u1eef\u1ef1\u1ef1\u1ef3\u1ef3\u1ef5\u1ef5\u1ef7\u1ef7\u1ef9\u1ef9\u1efb"
+ "\u1efb\u1efd\u1efd\u1eff\u1eff\u1f01\u1f09\u1f12\u1f17\u1f22\u1f29\u1f32"
+ "\u1f39\u1f42\u1f47\u1f52\u1f59\u1f62\u1f69\u1f72\u1f7f\u1f82\u1f89\u1f92"
+ "\u1f99\u1fa2\u1fa9\u1fb2\u1fb6\u1fb8\u1fb9\u1fc0\u1fc0\u1fc4\u1fc6\u1fc8"
+ "\u1fc9\u1fd2\u1fd5\u1fd8\u1fd9\u1fe2\u1fe9\u1ff4\u1ff6\u1ff8\u1ff9\u210c"
+ "\u210c\u2110\u2111\u2115\u2115\u2131\u2131\u2136\u2136\u213b\u213b\u213e"
+ "\u213f\u2148\u214b\u2150\u2150\u2186\u2186\u2c32\u2c60\u2c63\u2c63\u2c67"
+ "\u2c68\u2c6a\u2c6a\u2c6c\u2c6c\u2c6e\u2c6e\u2c73\u2c73\u2c75\u2c76\u2c78"
+ "\u2c7d\u2c83\u2c83\u2c85\u2c85\u2c87\u2c87\u2c89\u2c89\u2c8b\u2c8b\u2c8d"
+ "\u2c8d\u2c8f\u2c8f\u2c91\u2c91\u2c93\u2c93\u2c95\u2c95\u2c97\u2c97\u2c99"
+ "\u2c99\u2c9b\u2c9b\u2c9d\u2c9d\u2c9f\u2c9f\u2ca1\u2ca1\u2ca3\u2ca3\u2ca5"
+ "\u2ca5\u2ca7\u2ca7\u2ca9\u2ca9\u2cab\u2cab\u2cad\u2cad\u2caf\u2caf\u2cb1"
+ "\u2cb1\u2cb3\u2cb3\u2cb5\u2cb5\u2cb7\u2cb7\u2cb9\u2cb9\u2cbb\u2cbb\u2cbd"
+ "\u2cbd\u2cbf\u2cbf\u2cc1\u2cc1\u2cc3\u2cc3\u2cc5\u2cc5\u2cc7\u2cc7\u2cc9"
+ "\u2cc9\u2ccb\u2ccb\u2ccd\u2ccd\u2ccf\u2ccf\u2cd1\u2cd1\u2cd3\u2cd3\u2cd5"
+ "\u2cd5\u2cd7\u2cd7\u2cd9\u2cd9\u2cdb\u2cdb\u2cdd\u2cdd\u2cdf\u2cdf\u2ce1"
+ "\u2ce1\u2ce3\u2ce3\u2ce5\u2ce6\u2cee\u2cee\u2cf0\u2cf0\u2cf5\u2cf5\u2d02"
+ "\u2d27\u2d29\u2d29\u2d2f\u2d2f\ua643\ua643\ua645\ua645\ua647\ua647\ua649"
+ "\ua649\ua64b\ua64b\ua64d\ua64d\ua64f\ua64f\ua651\ua651\ua653\ua653\ua655"
+ "\ua655\ua657\ua657\ua659\ua659\ua65b\ua65b\ua65d\ua65d\ua65f\ua65f\ua661"
+ "\ua661\ua663\ua663\ua665\ua665\ua667\ua667\ua669\ua669\ua66b\ua66b\ua66d"
+ "\ua66d\ua66f\ua66f\ua683\ua683\ua685\ua685\ua687\ua687\ua689\ua689\ua68b"
+ "\ua68b\ua68d\ua68d\ua68f\ua68f\ua691\ua691\ua693\ua693\ua695\ua695\ua697"
+ "\ua697\ua699\ua699\ua725\ua725\ua727\ua727\ua729\ua729\ua72b\ua72b\ua72d"
+ "\ua72d\ua72f\ua72f\ua731\ua733\ua735\ua735\ua737\ua737\ua739\ua739\ua73b"
+ "\ua73b\ua73d\ua73d\ua73f\ua73f\ua741\ua741\ua743\ua743\ua745\ua745\ua747"
+ "\ua747\ua749\ua749\ua74b\ua74b\ua74d\ua74d\ua74f\ua74f\ua751\ua751\ua753"
+ "\ua753\ua755\ua755\ua757\ua757\ua759\ua759\ua75b\ua75b\ua75d\ua75d\ua75f"
+ "\ua75f\ua761\ua761\ua763\ua763\ua765\ua765\ua767\ua767\ua769\ua769\ua76b"
+ "\ua76b\ua76d\ua76d\ua76f\ua76f\ua771\ua771\ua773\ua77a\ua77c\ua77c\ua77e"
+ "\ua77e\ua781\ua781\ua783\ua783\ua785\ua785\ua787\ua787\ua789\ua789\ua78e"
+ "\ua78e\ua790\ua790\ua793\ua793\ua795\ua795\ua7a3\ua7a3\ua7a5\ua7a5\ua7a7"
+ "\ua7a7\ua7a9\ua7a9\ua7ab\ua7ab\ua7fc\ua7fc\ufb02\ufb08\ufb15\ufb19\uff43"
+ "\uff5c\65\2\u02b2\u02c3\u02c8\u02d3\u02e2\u02e6\u02ee\u02ee\u02f0\u02f0"
+ "\u0376\u0376\u037c\u037c\u055b\u055b\u0642\u0642\u06e7\u06e8\u07f6\u07f7"
+ "\u07fc\u07fc\u081c\u081c\u0826\u0826\u082a\u082a\u0973\u0973\u0e48\u0e48"
+ "\u0ec8\u0ec8\u10fe\u10fe\u17d9\u17d9\u1845\u1845\u1aa9\u1aa9\u1c7a\u1c7f"
+ "\u1d2e\u1d6c\u1d7a\u1d7a\u1d9d\u1dc1\u2073\u2073\u2081\u2081\u2092\u209e"
+ "\u2c7e\u2c7f\u2d71\u2d71\u2e31\u2e31\u3007\u3007\u3033\u3037\u303d\u303d"
+ "\u309f\u30a0\u30fe\u3100\ua017\ua017\ua4fa\ua4ff\ua60e\ua60e\ua681\ua681"
+ "\ua719\ua721\ua772\ua772\ua78a\ua78a\ua7fa\ua7fb\ua9d1\ua9d1\uaa72\uaa72"
+ "\uaadf\uaadf\uaaf5\uaaf6\uff72\uff72\uffa0\uffa1\u0123\2\u00ac\u00ac\u00bc"
+ "\u00bc\u01bd\u01bd\u01c2\u01c5\u0296\u0296\u05d2\u05ec\u05f2\u05f4\u0622"
+ "\u0641\u0643\u064c\u0670\u0671\u0673\u06d5\u06d7\u06d7\u06f0\u06f1\u06fc"
+ "\u06fe\u0701\u0701\u0712\u0712\u0714\u0731\u074f\u07a7\u07b3\u07b3\u07cc"
+ "\u07ec\u0802\u0817\u0842\u085a\u08a2\u08a2\u08a4\u08ae\u0906\u093b\u093f"
+ "\u093f\u0952\u0952\u095a\u0963\u0974\u0979\u097b\u0981\u0987\u098e\u0991"
+ "\u0992\u0995\u09aa\u09ac\u09b2\u09b4\u09b4\u09b8\u09bb\u09bf\u09bf\u09d0"
+ "\u09d0\u09de\u09df\u09e1\u09e3\u09f2\u09f3\u0a07\u0a0c\u0a11\u0a12\u0a15"
+ "\u0a2a\u0a2c\u0a32\u0a34\u0a35\u0a37\u0a38\u0a3a\u0a3b\u0a5b\u0a5e\u0a60"
+ "\u0a60\u0a74\u0a76\u0a87\u0a8f\u0a91\u0a93\u0a95\u0aaa\u0aac\u0ab2\u0ab4"
+ "\u0ab5\u0ab7\u0abb\u0abf\u0abf\u0ad2\u0ad2\u0ae2\u0ae3\u0b07\u0b0e\u0b11"
+ "\u0b12\u0b15\u0b2a\u0b2c\u0b32\u0b34\u0b35\u0b37\u0b3b\u0b3f\u0b3f\u0b5e"
+ "\u0b5f\u0b61\u0b63\u0b73\u0b73\u0b85\u0b85\u0b87\u0b8c\u0b90\u0b92\u0b94"
+ "\u0b97\u0b9b\u0b9c\u0b9e\u0b9e\u0ba0\u0ba1\u0ba5\u0ba6\u0baa\u0bac\u0bb0"
+ "\u0bbb\u0bd2\u0bd2\u0c07\u0c0e\u0c10\u0c12\u0c14\u0c2a\u0c2c\u0c35\u0c37"
+ "\u0c3b\u0c3f\u0c3f\u0c5a\u0c5b\u0c62\u0c63\u0c87\u0c8e\u0c90\u0c92\u0c94"
+ "\u0caa\u0cac\u0cb5\u0cb7\u0cbb\u0cbf\u0cbf\u0ce0\u0ce0\u0ce2\u0ce3\u0cf3"
+ "\u0cf4\u0d07\u0d0e\u0d10\u0d12\u0d14\u0d3c\u0d3f\u0d3f\u0d50\u0d50\u0d62"
+ "\u0d63\u0d7c\u0d81\u0d87\u0d98\u0d9c\u0db3\u0db5\u0dbd\u0dbf\u0dbf\u0dc2"
+ "\u0dc8\u0e03\u0e32\u0e34\u0e35\u0e42\u0e47\u0e83\u0e84\u0e86\u0e86\u0e89"
+ "\u0e8a\u0e8c\u0e8c\u0e8f\u0e8f\u0e96\u0e99\u0e9b\u0ea1\u0ea3\u0ea5\u0ea7"
+ "\u0ea7\u0ea9\u0ea9\u0eac\u0ead\u0eaf\u0eb2\u0eb4\u0eb5\u0ebf\u0ebf\u0ec2"
+ "\u0ec6\u0ede\u0ee1\u0f02\u0f02\u0f42\u0f49\u0f4b\u0f6e\u0f8a\u0f8e\u1002"
+ "\u102c\u1041\u1041\u1052\u1057\u105c\u105f\u1063\u1063\u1067\u1068\u1070"
+ "\u1072\u1077\u1083\u1090\u1090\u10d2\u10fc\u10ff\u124a\u124c\u124f\u1252"
+ "\u1258\u125a\u125a\u125c\u125f\u1262\u128a\u128c\u128f\u1292\u12b2\u12b4"
+ "\u12b7\u12ba\u12c0\u12c2\u12c2\u12c4\u12c7\u12ca\u12d8\u12da\u1312\u1314"
+ "\u1317\u131a\u135c\u1382\u1391\u13a2\u13f6\u1403\u166e\u1671\u1681\u1683"
+ "\u169c\u16a2\u16ec\u1702\u170e\u1710\u1713\u1722\u1733\u1742\u1753\u1762"
+ "\u176e\u1770\u1772\u1782\u17b5\u17de\u17de\u1822\u1844\u1846\u1879\u1882"
+ "\u18aa\u18ac\u18ac\u18b2\u18f7\u1902\u191e\u1952\u196f\u1972\u1976\u1982"
+ "\u19ad\u19c3\u19c9\u1a02\u1a18\u1a22\u1a56\u1b07\u1b35\u1b47\u1b4d\u1b85"
+ "\u1ba2\u1bb0\u1bb1\u1bbc\u1be7\u1c02\u1c25\u1c4f\u1c51\u1c5c\u1c79\u1ceb"
+ "\u1cee\u1cf0\u1cf3\u1cf7\u1cf8\u2137\u213a\u2d32\u2d69\u2d82\u2d98\u2da2"
+ "\u2da8\u2daa\u2db0\u2db2\u2db8\u2dba\u2dc0\u2dc2\u2dc8\u2dca\u2dd0\u2dd2"
+ "\u2dd8\u2dda\u2de0\u3008\u3008\u303e\u303e\u3043\u3098\u30a1\u30a1\u30a3"
+ "\u30fc\u3101\u3101\u3107\u312f\u3133\u3190\u31a2\u31bc\u31f2\u3201\u3402"
+ "\u3402\u4db7\u4db7\u4e02\u4e02\u9fce\u9fce\ua002\ua016\ua018\ua48e\ua4d2"
+ "\ua4f9\ua502\ua60d\ua612\ua621\ua62c\ua62d\ua670\ua670\ua6a2\ua6e7\ua7fd"
+ "\ua803\ua805\ua807\ua809\ua80c\ua80e\ua824\ua842\ua875\ua884\ua8b5\ua8f4"
+ "\ua8f9\ua8fd\ua8fd\ua90c\ua927\ua932\ua948\ua962\ua97e\ua986\ua9b4\uaa02"
+ "\uaa2a\uaa42\uaa44\uaa46\uaa4d\uaa62\uaa71\uaa73\uaa78\uaa7c\uaa7c\uaa82"
+ "\uaab1\uaab3\uaab3\uaab7\uaab8\uaabb\uaabf\uaac2\uaac2\uaac4\uaac4\uaadd"
+ "\uaade\uaae2\uaaec\uaaf4\uaaf4\uab03\uab08\uab0b\uab10\uab13\uab18\uab22"
+ "\uab28\uab2a\uab30\uabc2\uabe4\uac02\uac02\ud7a5\ud7a5\ud7b2\ud7c8\ud7cd"
+ "\ud7fd\uf902\ufa6f\ufa72\ufadb\ufb1f\ufb1f\ufb21\ufb2a\ufb2c\ufb38\ufb3a"
+ "\ufb3e\ufb40\ufb40\ufb42\ufb43\ufb45\ufb46\ufb48\ufbb3\ufbd5\ufd3f\ufd52"
+ "\ufd91\ufd94\ufdc9\ufdf2\ufdfd\ufe72\ufe76\ufe78\ufefe\uff68\uff71\uff73"
+ "\uff9f\uffa2\uffc0\uffc4\uffc9\uffcc\uffd1\uffd4\uffd9\uffdc\uffde\f\2"
+ "\u01c7\u01c7\u01ca\u01ca\u01cd\u01cd\u01f4\u01f4\u1f8a\u1f91\u1f9a\u1fa1"
+ "\u1faa\u1fb1\u1fbe\u1fbe\u1fce\u1fce\u1ffe\u1ffe\u0242\2C\\\u00c2\u00d8"
+ "\u00da\u00e0\u0102\u0102\u0104\u0104\u0106\u0106\u0108\u0108\u010a\u010a"
+ "\u010c\u010c\u010e\u010e\u0110\u0110\u0112\u0112\u0114\u0114\u0116\u0116"
+ "\u0118\u0118\u011a\u011a\u011c\u011c\u011e\u011e\u0120\u0120\u0122\u0122"
+ "\u0124\u0124\u0126\u0126\u0128\u0128\u012a\u012a\u012c\u012c\u012e\u012e"
+ "\u0130\u0130\u0132\u0132\u0134\u0134\u0136\u0136\u0138\u0138\u013b\u013b"
+ "\u013d\u013d\u013f\u013f\u0141\u0141\u0143\u0143\u0145\u0145\u0147\u0147"
+ "\u0149\u0149\u014c\u014c\u014e\u014e\u0150\u0150\u0152\u0152\u0154\u0154"
+ "\u0156\u0156\u0158\u0158\u015a\u015a\u015c\u015c\u015e\u015e\u0160\u0160"
+ "\u0162\u0162\u0164\u0164\u0166\u0166\u0168\u0168\u016a\u016a\u016c\u016c"
+ "\u016e\u016e\u0170\u0170\u0172\u0172\u0174\u0174\u0176\u0176\u0178\u0178"
+ "\u017a\u017b\u017d\u017d\u017f\u017f\u0183\u0184\u0186\u0186\u0188\u0189"
+ "\u018b\u018d\u0190\u0193\u0195\u0196\u0198\u019a\u019e\u019f\u01a1\u01a2"
+ "\u01a4\u01a4\u01a6\u01a6\u01a8\u01a9\u01ab\u01ab\u01ae\u01ae\u01b0\u01b1"
+ "\u01b3\u01b5\u01b7\u01b7\u01b9\u01ba\u01be\u01be\u01c6\u01c6\u01c9\u01c9"
+ "\u01cc\u01cc\u01cf\u01cf\u01d1\u01d1\u01d3\u01d3\u01d5\u01d5\u01d7\u01d7"
+ "\u01d9\u01d9\u01db\u01db\u01dd\u01dd\u01e0\u01e0\u01e2\u01e2\u01e4\u01e4"
+ "\u01e6\u01e6\u01e8\u01e8\u01ea\u01ea\u01ec\u01ec\u01ee\u01ee\u01f0\u01f0"
+ "\u01f3\u01f3\u01f6\u01f6\u01f8\u01fa\u01fc\u01fc\u01fe\u01fe\u0200\u0200"
+ "\u0202\u0202\u0204\u0204\u0206\u0206\u0208\u0208\u020a\u020a\u020c\u020c"
+ "\u020e\u020e\u0210\u0210\u0212\u0212\u0214\u0214\u0216\u0216\u0218\u0218"
+ "\u021a\u021a\u021c\u021c\u021e\u021e\u0220\u0220\u0222\u0222\u0224\u0224"
+ "\u0226\u0226\u0228\u0228\u022a\u022a\u022c\u022c\u022e\u022e\u0230\u0230"
+ "\u0232\u0232\u0234\u0234\u023c\u023d\u023f\u0240\u0243\u0243\u0245\u0248"
+ "\u024a\u024a\u024c\u024c\u024e\u024e\u0250\u0250\u0372\u0372\u0374\u0374"
+ "\u0378\u0378\u0388\u0388\u038a\u038c\u038e\u038e\u0390\u0391\u0393\u03a3"
+ "\u03a5\u03ad\u03d1\u03d1\u03d4\u03d6\u03da\u03da\u03dc\u03dc\u03de\u03de"
+ "\u03e0\u03e0\u03e2\u03e2\u03e4\u03e4\u03e6\u03e6\u03e8\u03e8\u03ea\u03ea"
+ "\u03ec\u03ec\u03ee\u03ee\u03f0\u03f0\u03f6\u03f6\u03f9\u03f9\u03fb\u03fc"
+ "\u03ff\u0431\u0462\u0462\u0464\u0464\u0466\u0466\u0468\u0468\u046a\u046a"
+ "\u046c\u046c\u046e\u046e\u0470\u0470\u0472\u0472\u0474\u0474\u0476\u0476"
+ "\u0478\u0478\u047a\u047a\u047c\u047c\u047e\u047e\u0480\u0480\u0482\u0482"
+ "\u048c\u048c\u048e\u048e\u0490\u0490\u0492\u0492\u0494\u0494\u0496\u0496"
+ "\u0498\u0498\u049a\u049a\u049c\u049c\u049e\u049e\u04a0\u04a0\u04a2\u04a2"
+ "\u04a4\u04a4\u04a6\u04a6\u04a8\u04a8\u04aa\u04aa\u04ac\u04ac\u04ae\u04ae"
+ "\u04b0\u04b0\u04b2\u04b2\u04b4\u04b4\u04b6\u04b6\u04b8\u04b8\u04ba\u04ba"
+ "\u04bc\u04bc\u04be\u04be\u04c0\u04c0\u04c2\u04c3\u04c5\u04c5\u04c7\u04c7"
+ "\u04c9\u04c9\u04cb\u04cb\u04cd\u04cd\u04cf\u04cf\u04d2\u04d2\u04d4\u04d4"
+ "\u04d6\u04d6\u04d8\u04d8\u04da\u04da\u04dc\u04dc\u04de\u04de\u04e0\u04e0"
+ "\u04e2\u04e2\u04e4\u04e4\u04e6\u04e6\u04e8\u04e8\u04ea\u04ea\u04ec\u04ec"
+ "\u04ee\u04ee\u04f0\u04f0\u04f2\u04f2\u04f4\u04f4\u04f6\u04f6\u04f8\u04f8"
+ "\u04fa\u04fa\u04fc\u04fc\u04fe\u04fe\u0500\u0500\u0502\u0502\u0504\u0504"
+ "\u0506\u0506\u0508\u0508\u050a\u050a\u050c\u050c\u050e\u050e\u0510\u0510"
+ "\u0512\u0512\u0514\u0514\u0516\u0516\u0518\u0518\u051a\u051a\u051c\u051c"
+ "\u051e\u051e\u0520\u0520\u0522\u0522\u0524\u0524\u0526\u0526\u0528\u0528"
+ "\u0533\u0558\u10a2\u10c7\u10c9\u10c9\u10cf\u10cf\u1e02\u1e02\u1e04\u1e04"
+ "\u1e06\u1e06\u1e08\u1e08\u1e0a\u1e0a\u1e0c\u1e0c\u1e0e\u1e0e\u1e10\u1e10"
+ "\u1e12\u1e12\u1e14\u1e14\u1e16\u1e16\u1e18\u1e18\u1e1a\u1e1a\u1e1c\u1e1c"
+ "\u1e1e\u1e1e\u1e20\u1e20\u1e22\u1e22\u1e24\u1e24\u1e26\u1e26\u1e28\u1e28"
+ "\u1e2a\u1e2a\u1e2c\u1e2c\u1e2e\u1e2e\u1e30\u1e30\u1e32\u1e32\u1e34\u1e34"
+ "\u1e36\u1e36\u1e38\u1e38\u1e3a\u1e3a\u1e3c\u1e3c\u1e3e\u1e3e\u1e40\u1e40"
+ "\u1e42\u1e42\u1e44\u1e44\u1e46\u1e46\u1e48\u1e48\u1e4a\u1e4a\u1e4c\u1e4c"
+ "\u1e4e\u1e4e\u1e50\u1e50\u1e52\u1e52\u1e54\u1e54\u1e56\u1e56\u1e58\u1e58"
+ "\u1e5a\u1e5a\u1e5c\u1e5c\u1e5e\u1e5e\u1e60\u1e60\u1e62\u1e62\u1e64\u1e64"
+ "\u1e66\u1e66\u1e68\u1e68\u1e6a\u1e6a\u1e6c\u1e6c\u1e6e\u1e6e\u1e70\u1e70"
+ "\u1e72\u1e72\u1e74\u1e74\u1e76\u1e76\u1e78\u1e78\u1e7a\u1e7a\u1e7c\u1e7c"
+ "\u1e7e\u1e7e\u1e80\u1e80\u1e82\u1e82\u1e84\u1e84\u1e86\u1e86\u1e88\u1e88"
+ "\u1e8a\u1e8a\u1e8c\u1e8c\u1e8e\u1e8e\u1e90\u1e90\u1e92\u1e92\u1e94\u1e94"
+ "\u1e96\u1e96\u1ea0\u1ea0\u1ea2\u1ea2\u1ea4\u1ea4\u1ea6\u1ea6\u1ea8\u1ea8"
+ "\u1eaa\u1eaa\u1eac\u1eac\u1eae\u1eae\u1eb0\u1eb0\u1eb2\u1eb2\u1eb4\u1eb4"
+ "\u1eb6\u1eb6\u1eb8\u1eb8\u1eba\u1eba\u1ebc\u1ebc\u1ebe\u1ebe\u1ec0\u1ec0"
+ "\u1ec2\u1ec2\u1ec4\u1ec4\u1ec6\u1ec6\u1ec8\u1ec8\u1eca\u1eca\u1ecc\u1ecc"
+ "\u1ece\u1ece\u1ed0\u1ed0\u1ed2\u1ed2\u1ed4\u1ed4\u1ed6\u1ed6\u1ed8\u1ed8"
+ "\u1eda\u1eda\u1edc\u1edc\u1ede\u1ede\u1ee0\u1ee0\u1ee2\u1ee2\u1ee4\u1ee4"
+ "\u1ee6\u1ee6\u1ee8\u1ee8\u1eea\u1eea\u1eec\u1eec\u1eee\u1eee\u1ef0\u1ef0"
+ "\u1ef2\u1ef2\u1ef4\u1ef4\u1ef6\u1ef6\u1ef8\u1ef8\u1efa\u1efa\u1efc\u1efc"
+ "\u1efe\u1efe\u1f00\u1f00\u1f0a\u1f11\u1f1a\u1f1f\u1f2a\u1f31\u1f3a\u1f41"
+ "\u1f4a\u1f4f\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f\u1f5f\u1f61\u1f61\u1f6a\u1f71"
+ "\u1fba\u1fbd\u1fca\u1fcd\u1fda\u1fdd\u1fea\u1fee\u1ffa\u1ffd\u2104\u2104"
+ "\u2109\u2109\u210d\u210f\u2112\u2114\u2117\u2117\u211b\u211f\u2126\u2126"
+ "\u2128\u2128\u212a\u212a\u212c\u212f\u2132\u2135\u2140\u2141\u2147\u2147"
+ "\u2185\u2185\u2c02\u2c30\u2c62\u2c62\u2c64\u2c66\u2c69\u2c69\u2c6b\u2c6b"
+ "\u2c6d\u2c6d\u2c6f\u2c72\u2c74\u2c74\u2c77\u2c77\u2c80\u2c82\u2c84\u2c84"
+ "\u2c86\u2c86\u2c88\u2c88\u2c8a\u2c8a\u2c8c\u2c8c\u2c8e\u2c8e\u2c90\u2c90"
+ "\u2c92\u2c92\u2c94\u2c94\u2c96\u2c96\u2c98\u2c98\u2c9a\u2c9a\u2c9c\u2c9c"
+ "\u2c9e\u2c9e\u2ca0\u2ca0\u2ca2\u2ca2\u2ca4\u2ca4\u2ca6\u2ca6\u2ca8\u2ca8"
+ "\u2caa\u2caa\u2cac\u2cac\u2cae\u2cae\u2cb0\u2cb0\u2cb2\u2cb2\u2cb4\u2cb4"
+ "\u2cb6\u2cb6\u2cb8\u2cb8\u2cba\u2cba\u2cbc\u2cbc\u2cbe\u2cbe\u2cc0\u2cc0"
+ "\u2cc2\u2cc2\u2cc4\u2cc4\u2cc6\u2cc6\u2cc8\u2cc8\u2cca\u2cca\u2ccc\u2ccc"
+ "\u2cce\u2cce\u2cd0\u2cd0\u2cd2\u2cd2\u2cd4\u2cd4\u2cd6\u2cd6\u2cd8\u2cd8"
+ "\u2cda\u2cda\u2cdc\u2cdc\u2cde\u2cde\u2ce0\u2ce0\u2ce2\u2ce2\u2ce4\u2ce4"
+ "\u2ced\u2ced\u2cef\u2cef\u2cf4\u2cf4\ua642\ua642\ua644\ua644\ua646\ua646"
+ "\ua648\ua648\ua64a\ua64a\ua64c\ua64c\ua64e\ua64e\ua650\ua650\ua652\ua652"
+ "\ua654\ua654\ua656\ua656\ua658\ua658\ua65a\ua65a\ua65c\ua65c\ua65e\ua65e"
+ "\ua660\ua660\ua662\ua662\ua664\ua664\ua666\ua666\ua668\ua668\ua66a\ua66a"
+ "\ua66c\ua66c\ua66e\ua66e\ua682\ua682\ua684\ua684\ua686\ua686\ua688\ua688"
+ "\ua68a\ua68a\ua68c\ua68c\ua68e\ua68e\ua690\ua690\ua692\ua692\ua694\ua694"
+ "\ua696\ua696\ua698\ua698\ua724\ua724\ua726\ua726\ua728\ua728\ua72a\ua72a"
+ "\ua72c\ua72c\ua72e\ua72e\ua730\ua730\ua734\ua734\ua736\ua736\ua738\ua738"
+ "\ua73a\ua73a\ua73c\ua73c\ua73e\ua73e\ua740\ua740\ua742\ua742\ua744\ua744"
+ "\ua746\ua746\ua748\ua748\ua74a\ua74a\ua74c\ua74c\ua74e\ua74e\ua750\ua750"
+ "\ua752\ua752\ua754\ua754\ua756\ua756\ua758\ua758\ua75a\ua75a\ua75c\ua75c"
+ "\ua75e\ua75e\ua760\ua760\ua762\ua762\ua764\ua764\ua766\ua766\ua768\ua768"
+ "\ua76a\ua76a\ua76c\ua76c\ua76e\ua76e\ua770\ua770\ua77b\ua77b\ua77d\ua77d"
+ "\ua77f\ua780\ua782\ua782\ua784\ua784\ua786\ua786\ua788\ua788\ua78d\ua78d"
+ "\ua78f\ua78f\ua792\ua792\ua794\ua794\ua7a2\ua7a2\ua7a4\ua7a4\ua7a6\ua7a6"
+ "\ua7a8\ua7a8\ua7aa\ua7aa\ua7ac\ua7ac\uff23\uff3c%\2\62;\u0662\u066b\u06f2"
+ "\u06fb\u07c2\u07cb\u0968\u0971\u09e8\u09f1\u0a68\u0a71\u0ae8\u0af1\u0b68"
+ "\u0b71\u0be8\u0bf1\u0c68\u0c71\u0ce8\u0cf1\u0d68\u0d71\u0e52\u0e5b\u0ed2"
+ "\u0edb\u0f22\u0f2b\u1042\u104b\u1092\u109b\u17e2\u17eb\u1812\u181b\u1948"
+ "\u1951\u19d2\u19db\u1a82\u1a8b\u1a92\u1a9b\u1b52\u1b5b\u1bb2\u1bbb\u1c42"
+ "\u1c4b\u1c52\u1c5b\ua622\ua62b\ua8d2\ua8db\ua902\ua90b\ua9d2\ua9db\uaa52"
+ "\uaa5b\uabf2\uabfb\uff12\uff1b\t\2\u16f0\u16f2\u2162\u2184\u2187\u218a"
+ "\u3009\u3009\u3023\u302b\u303a\u303c\ua6e8\ua6f1\2\36\2\3\3\2\2\2\2\5"
+ "\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2"
+ "\3\21\3\2\2\2\5\23\3\2\2\2\7\25\3\2\2\2\t\27\3\2\2\2\13\31\3\2\2\2\r\33"
+ "\3\2\2\2\17\35\3\2\2\2\21\22\t\2\2\2\22\4\3\2\2\2\23\24\t\3\2\2\24\6\3"
+ "\2\2\2\25\26\t\4\2\2\26\b\3\2\2\2\27\30\t\5\2\2\30\n\3\2\2\2\31\32\t\6"
+ "\2\2\32\f\3\2\2\2\33\34\t\7\2\2\34\16\3\2\2\2\35\36\t\b\2\2\36\20\3\2"
+ "\2\2\3\2\2";
public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray());
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache();
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
public static String[] channelNames = {"DEFAULT_TOKEN_CHANNEL", "HIDDEN"};
public static String[] modeNames = {"DEFAULT_MODE"};
static {
RuntimeMetaData.checkVersion("4.9.3", RuntimeMetaData.VERSION);
}
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
public UnicodeClasses(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
}
private static String[] makeRuleNames() {
return new String[] {
"UNICODE_CLASS_LL",
"UNICODE_CLASS_LM",
"UNICODE_CLASS_LO",
"UNICODE_CLASS_LT",
"UNICODE_CLASS_LU",
"UNICODE_CLASS_ND",
"UNICODE_CLASS_NL"
};
}
private static String[] makeLiteralNames() {
return new String[] {};
}
private static String[] makeSymbolicNames() {
return new String[] {
null,
"UNICODE_CLASS_LL",
"UNICODE_CLASS_LM",
"UNICODE_CLASS_LO",
"UNICODE_CLASS_LT",
"UNICODE_CLASS_LU",
"UNICODE_CLASS_ND",
"UNICODE_CLASS_NL"
};
}
@Override
public String[] getRuleNames() {
return ruleNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public String getSerializedATN() {
return _serializedATN;
}
@Override
public String getGrammarFileName() {
return "UnicodeClasses.g4";
}
@Override
public ATN getATN() {
return _ATN;
}
@Override
public String[] getChannelNames() {
return channelNames;
}
@Override
public String[] getModeNames() {
return modeNames;
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
}
@@ -1,7 +0,0 @@
UNICODE_CLASS_LL=1
UNICODE_CLASS_LM=2
UNICODE_CLASS_LO=3
UNICODE_CLASS_LT=4
UNICODE_CLASS_LU=5
UNICODE_CLASS_ND=6
UNICODE_CLASS_NL=7
File diff suppressed because one or more lines are too long
@@ -1,300 +0,0 @@
// Generated from XMLLexer.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.xml;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.RuntimeMetaData;
import org.antlr.v4.runtime.Vocabulary;
import org.antlr.v4.runtime.VocabularyImpl;
import org.antlr.v4.runtime.atn.ATN;
import org.antlr.v4.runtime.atn.ATNDeserializer;
import org.antlr.v4.runtime.atn.LexerATNSimulator;
import org.antlr.v4.runtime.atn.PredictionContextCache;
import org.antlr.v4.runtime.dfa.DFA;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class XMLLexer extends Lexer {
public static final int COLON = 1,
NOT = 2,
DASH = 3,
COMMENT_START = 4,
COMMENT_END = 5,
COMMENT = 6,
CDATA = 7,
DTD = 8,
EntityRef = 9,
CharRef = 10,
SEA_WS = 11,
OPEN = 12,
OPEN_SLASH = 13,
XMLDeclOpen = 14,
TEXT = 15,
CommentText = 16,
CommentModeEnd = 17,
CLOSE = 18,
SPECIAL_CLOSE = 19,
SLASH_CLOSE = 20,
SLASH = 21,
EQUALS = 22,
STRING = 23,
Name = 24,
S = 25,
PI = 26;
public static final int COMMENT_MODE = 1, TAG_MODE = 2, PROC_INSTR = 3;
public static final String[] ruleNames = makeRuleNames();
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated public static final String[] tokenNames;
public static final String _serializedATN =
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\34\u0114\b\1\b\1"
+ "\b\1\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t"
+ "\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21"
+ "\t\21\4\22\t\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30"
+ "\t\30\4\31\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37"
+ "\t\37\4 \t \4!\t!\3\2\3\2\3\3\3\3\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\5\3\5"
+ "\3\6\3\6\3\6\3\6\3\7\3\7\7\7Z\n\7\f\7\16\7]\13\7\3\7\3\7\3\b\3\b\3\b\3"
+ "\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\7\bl\n\b\f\b\16\bo\13\b\3\b\3\b\3\b\3\b"
+ "\3\t\3\t\3\t\3\t\7\ty\n\t\f\t\16\t|\13\t\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3"
+ "\n\3\13\3\13\3\13\3\13\6\13\u008a\n\13\r\13\16\13\u008b\3\13\3\13\3\13"
+ "\3\13\3\13\3\13\3\13\6\13\u0095\n\13\r\13\16\13\u0096\3\13\3\13\5\13\u009b"
+ "\n\13\3\f\3\f\5\f\u009f\n\f\3\f\6\f\u00a2\n\f\r\f\16\f\u00a3\3\r\3\r\3"
+ "\r\3\r\3\16\3\16\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"
+ "\3\17\3\17\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\21\6\21\u00c2\n\21"
+ "\r\21\16\21\u00c3\3\22\6\22\u00c7\n\22\r\22\16\22\u00c8\3\23\3\23\3\23"
+ "\3\23\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26"
+ "\3\26\3\27\3\27\3\30\3\30\3\31\3\31\7\31\u00e3\n\31\f\31\16\31\u00e6\13"
+ "\31\3\31\3\31\3\31\7\31\u00eb\n\31\f\31\16\31\u00ee\13\31\3\31\5\31\u00f1"
+ "\n\31\3\32\3\32\7\32\u00f5\n\32\f\32\16\32\u00f8\13\32\3\33\3\33\3\33"
+ "\3\33\3\34\3\34\3\35\3\35\3\36\3\36\3\36\3\36\3\36\5\36\u0107\n\36\3\37"
+ "\5\37\u010a\n\37\3 \3 \3 \3 \3 \3!\3!\3!\3!\5[mz\2\"\6\3\b\4\n\5\f\6\16"
+ "\7\20\b\22\t\24\n\26\13\30\f\32\r\34\16\36\17 \20\"\2$\21&\22(\23*\24"
+ ",\25.\26\60\27\62\30\64\31\66\328\33:\2<\2>\2@\2B\34D\2\6\2\3\4\5\r\4"
+ "\2\13\13\"\"\4\2((>>\5\2((//>>\4\2$$>>\4\2))>>\5\2\13\f\17\17\"\"\5\2"
+ "\62;CHch\3\2\62;\4\2\60\60aa\5\2\u00b9\u00b9\u0302\u0371\u2041\u2042\n"
+ "\2<<C\\c|\u2072\u2191\u2c02\u2ff1\u3003\ud801\uf902\ufdd1\ufdf2\uffff"
+ "\2\u011f\2\6\3\2\2\2\2\b\3\2\2\2\2\n\3\2\2\2\2\f\3\2\2\2\2\16\3\2\2\2"
+ "\2\20\3\2\2\2\2\22\3\2\2\2\2\24\3\2\2\2\2\26\3\2\2\2\2\30\3\2\2\2\2\32"
+ "\3\2\2\2\2\34\3\2\2\2\2\36\3\2\2\2\2 \3\2\2\2\2\"\3\2\2\2\2$\3\2\2\2\3"
+ "&\3\2\2\2\3(\3\2\2\2\4*\3\2\2\2\4,\3\2\2\2\4.\3\2\2\2\4\60\3\2\2\2\4\62"
+ "\3\2\2\2\4\64\3\2\2\2\4\66\3\2\2\2\48\3\2\2\2\5B\3\2\2\2\5D\3\2\2\2\6"
+ "F\3\2\2\2\bH\3\2\2\2\nJ\3\2\2\2\fL\3\2\2\2\16S\3\2\2\2\20W\3\2\2\2\22"
+ "`\3\2\2\2\24t\3\2\2\2\26\u0081\3\2\2\2\30\u009a\3\2\2\2\32\u00a1\3\2\2"
+ "\2\34\u00a5\3\2\2\2\36\u00a9\3\2\2\2 \u00ae\3\2\2\2\"\u00b8\3\2\2\2$\u00c1"
+ "\3\2\2\2&\u00c6\3\2\2\2(\u00ca\3\2\2\2*\u00ce\3\2\2\2,\u00d2\3\2\2\2."
+ "\u00d7\3\2\2\2\60\u00dc\3\2\2\2\62\u00de\3\2\2\2\64\u00f0\3\2\2\2\66\u00f2"
+ "\3\2\2\28\u00f9\3\2\2\2:\u00fd\3\2\2\2<\u00ff\3\2\2\2>\u0106\3\2\2\2@"
+ "\u0109\3\2\2\2B\u010b\3\2\2\2D\u0110\3\2\2\2FG\7<\2\2G\7\3\2\2\2HI\7#"
+ "\2\2I\t\3\2\2\2JK\7/\2\2K\13\3\2\2\2LM\7>\2\2MN\5\b\3\2NO\5\n\4\2OP\5"
+ "\n\4\2PQ\3\2\2\2QR\b\5\2\2R\r\3\2\2\2ST\5\n\4\2TU\5\n\4\2UV\7@\2\2V\17"
+ "\3\2\2\2W[\5\f\5\2XZ\13\2\2\2YX\3\2\2\2Z]\3\2\2\2[\\\3\2\2\2[Y\3\2\2\2"
+ "\\^\3\2\2\2][\3\2\2\2^_\5\16\6\2_\21\3\2\2\2`a\7>\2\2ab\7#\2\2bc\7]\2"
+ "\2cd\7E\2\2de\7F\2\2ef\7C\2\2fg\7V\2\2gh\7C\2\2hi\7]\2\2im\3\2\2\2jl\13"
+ "\2\2\2kj\3\2\2\2lo\3\2\2\2mn\3\2\2\2mk\3\2\2\2np\3\2\2\2om\3\2\2\2pq\7"
+ "_\2\2qr\7_\2\2rs\7@\2\2s\23\3\2\2\2tu\7>\2\2uv\7#\2\2vz\3\2\2\2wy\13\2"
+ "\2\2xw\3\2\2\2y|\3\2\2\2z{\3\2\2\2zx\3\2\2\2{}\3\2\2\2|z\3\2\2\2}~\7@"
+ "\2\2~\177\3\2\2\2\177\u0080\b\t\3\2\u0080\25\3\2\2\2\u0081\u0082\7(\2"
+ "\2\u0082\u0083\5\66\32\2\u0083\u0084\7=\2\2\u0084\27\3\2\2\2\u0085\u0086"
+ "\7(\2\2\u0086\u0087\7%\2\2\u0087\u0089\3\2\2\2\u0088\u008a\5<\35\2\u0089"
+ "\u0088\3\2\2\2\u008a\u008b\3\2\2\2\u008b\u0089\3\2\2\2\u008b\u008c\3\2"
+ "\2\2\u008c\u008d\3\2\2\2\u008d\u008e\7=\2\2\u008e\u009b\3\2\2\2\u008f"
+ "\u0090\7(\2\2\u0090\u0091\7%\2\2\u0091\u0092\7z\2\2\u0092\u0094\3\2\2"
+ "\2\u0093\u0095\5:\34\2\u0094\u0093\3\2\2\2\u0095\u0096\3\2\2\2\u0096\u0094"
+ "\3\2\2\2\u0096\u0097\3\2\2\2\u0097\u0098\3\2\2\2\u0098\u0099\7=\2\2\u0099"
+ "\u009b\3\2\2\2\u009a\u0085\3\2\2\2\u009a\u008f\3\2\2\2\u009b\31\3\2\2"
+ "\2\u009c\u00a2\t\2\2\2\u009d\u009f\7\17\2\2\u009e\u009d\3\2\2\2\u009e"
+ "\u009f\3\2\2\2\u009f\u00a0\3\2\2\2\u00a0\u00a2\7\f\2\2\u00a1\u009c\3\2"
+ "\2\2\u00a1\u009e\3\2\2\2\u00a2\u00a3\3\2\2\2\u00a3\u00a1\3\2\2\2\u00a3"
+ "\u00a4\3\2\2\2\u00a4\33\3\2\2\2\u00a5\u00a6\7>\2\2\u00a6\u00a7\3\2\2\2"
+ "\u00a7\u00a8\b\r\4\2\u00a8\35\3\2\2\2\u00a9\u00aa\7>\2\2\u00aa\u00ab\7"
+ "\61\2\2\u00ab\u00ac\3\2\2\2\u00ac\u00ad\b\16\4\2\u00ad\37\3\2\2\2\u00ae"
+ "\u00af\7>\2\2\u00af\u00b0\7A\2\2\u00b0\u00b1\7z\2\2\u00b1\u00b2\7o\2\2"
+ "\u00b2\u00b3\7n\2\2\u00b3\u00b4\3\2\2\2\u00b4\u00b5\58\33\2\u00b5\u00b6"
+ "\3\2\2\2\u00b6\u00b7\b\17\4\2\u00b7!\3\2\2\2\u00b8\u00b9\7>\2\2\u00b9"
+ "\u00ba\7A\2\2\u00ba\u00bb\3\2\2\2\u00bb\u00bc\5\66\32\2\u00bc\u00bd\3"
+ "\2\2\2\u00bd\u00be\b\20\5\2\u00be\u00bf\b\20\6\2\u00bf#\3\2\2\2\u00c0"
+ "\u00c2\n\3\2\2\u00c1\u00c0\3\2\2\2\u00c2\u00c3\3\2\2\2\u00c3\u00c1\3\2"
+ "\2\2\u00c3\u00c4\3\2\2\2\u00c4%\3\2\2\2\u00c5\u00c7\n\4\2\2\u00c6\u00c5"
+ "\3\2\2\2\u00c7\u00c8\3\2\2\2\u00c8\u00c6\3\2\2\2\u00c8\u00c9\3\2\2\2\u00c9"
+ "\'\3\2\2\2\u00ca\u00cb\5\16\6\2\u00cb\u00cc\3\2\2\2\u00cc\u00cd\b\23\7"
+ "\2\u00cd)\3\2\2\2\u00ce\u00cf\7@\2\2\u00cf\u00d0\3\2\2\2\u00d0\u00d1\b"
+ "\24\7\2\u00d1+\3\2\2\2\u00d2\u00d3\7A\2\2\u00d3\u00d4\7@\2\2\u00d4\u00d5"
+ "\3\2\2\2\u00d5\u00d6\b\25\7\2\u00d6-\3\2\2\2\u00d7\u00d8\7\61\2\2\u00d8"
+ "\u00d9\7@\2\2\u00d9\u00da\3\2\2\2\u00da\u00db\b\26\7\2\u00db/\3\2\2\2"
+ "\u00dc\u00dd\7\61\2\2\u00dd\61\3\2\2\2\u00de\u00df\7?\2\2\u00df\63\3\2"
+ "\2\2\u00e0\u00e4\7$\2\2\u00e1\u00e3\n\5\2\2\u00e2\u00e1\3\2\2\2\u00e3"
+ "\u00e6\3\2\2\2\u00e4\u00e2\3\2\2\2\u00e4\u00e5\3\2\2\2\u00e5\u00e7\3\2"
+ "\2\2\u00e6\u00e4\3\2\2\2\u00e7\u00f1\7$\2\2\u00e8\u00ec\7)\2\2\u00e9\u00eb"
+ "\n\6\2\2\u00ea\u00e9\3\2\2\2\u00eb\u00ee\3\2\2\2\u00ec\u00ea\3\2\2\2\u00ec"
+ "\u00ed\3\2\2\2\u00ed\u00ef\3\2\2\2\u00ee\u00ec\3\2\2\2\u00ef\u00f1\7)"
+ "\2\2\u00f0\u00e0\3\2\2\2\u00f0\u00e8\3\2\2\2\u00f1\65\3\2\2\2\u00f2\u00f6"
+ "\5@\37\2\u00f3\u00f5\5>\36\2\u00f4\u00f3\3\2\2\2\u00f5\u00f8\3\2\2\2\u00f6"
+ "\u00f4\3\2\2\2\u00f6\u00f7\3\2\2\2\u00f7\67\3\2\2\2\u00f8\u00f6\3\2\2"
+ "\2\u00f9\u00fa\t\7\2\2\u00fa\u00fb\3\2\2\2\u00fb\u00fc\b\33\3\2\u00fc"
+ "9\3\2\2\2\u00fd\u00fe\t\b\2\2\u00fe;\3\2\2\2\u00ff\u0100\t\t\2\2\u0100"
+ "=\3\2\2\2\u0101\u0107\5@\37\2\u0102\u0107\5\n\4\2\u0103\u0107\t\n\2\2"
+ "\u0104\u0107\5<\35\2\u0105\u0107\t\13\2\2\u0106\u0101\3\2\2\2\u0106\u0102"
+ "\3\2\2\2\u0106\u0103\3\2\2\2\u0106\u0104\3\2\2\2\u0106\u0105\3\2\2\2\u0107"
+ "?\3\2\2\2\u0108\u010a\t\f\2\2\u0109\u0108\3\2\2\2\u010aA\3\2\2\2\u010b"
+ "\u010c\7A\2\2\u010c\u010d\7@\2\2\u010d\u010e\3\2\2\2\u010e\u010f\b \7"
+ "\2\u010fC\3\2\2\2\u0110\u0111\13\2\2\2\u0111\u0112\3\2\2\2\u0112\u0113"
+ "\b!\5\2\u0113E\3\2\2\2\27\2\3\4\5[mz\u008b\u0096\u009a\u009e\u00a1\u00a3"
+ "\u00c3\u00c8\u00e4\u00ec\u00f0\u00f6\u0106\u0109\b\7\3\2\b\2\2\7\4\2\5"
+ "\2\2\7\5\2\6\2\2";
public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray());
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache();
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
public static String[] channelNames = {"DEFAULT_TOKEN_CHANNEL", "HIDDEN"};
public static String[] modeNames = {"DEFAULT_MODE", "COMMENT_MODE", "TAG_MODE", "PROC_INSTR"};
static {
RuntimeMetaData.checkVersion("4.9.3", RuntimeMetaData.VERSION);
}
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
public XMLLexer(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
}
private static String[] makeRuleNames() {
return new String[] {
"COLON",
"NOT",
"DASH",
"COMMENT_START",
"COMMENT_END",
"COMMENT",
"CDATA",
"DTD",
"EntityRef",
"CharRef",
"SEA_WS",
"OPEN",
"OPEN_SLASH",
"XMLDeclOpen",
"SPECIAL_OPEN",
"TEXT",
"CommentText",
"CommentModeEnd",
"CLOSE",
"SPECIAL_CLOSE",
"SLASH_CLOSE",
"SLASH",
"EQUALS",
"STRING",
"Name",
"S",
"HEXDIGIT",
"DIGIT",
"NameChar",
"NameStartChar",
"PI",
"IGNORE"
};
}
private static String[] makeLiteralNames() {
return new String[] {
null, "':'", "'!'", "'-'", null, null, null, null, null, null, null, null, "'<'", "'</'",
null, null, null, null, "'>'", null, "'/>'", "'/'", "'='"
};
}
private static String[] makeSymbolicNames() {
return new String[] {
null,
"COLON",
"NOT",
"DASH",
"COMMENT_START",
"COMMENT_END",
"COMMENT",
"CDATA",
"DTD",
"EntityRef",
"CharRef",
"SEA_WS",
"OPEN",
"OPEN_SLASH",
"XMLDeclOpen",
"TEXT",
"CommentText",
"CommentModeEnd",
"CLOSE",
"SPECIAL_CLOSE",
"SLASH_CLOSE",
"SLASH",
"EQUALS",
"STRING",
"Name",
"S",
"PI"
};
}
@Override
public String[] getRuleNames() {
return ruleNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public String getSerializedATN() {
return _serializedATN;
}
@Override
public String getGrammarFileName() {
return "XMLLexer.g4";
}
@Override
public ATN getATN() {
return _ATN;
}
@Override
public String[] getChannelNames() {
return channelNames;
}
@Override
public String[] getModeNames() {
return modeNames;
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
}
@@ -1,35 +0,0 @@
COLON=1
NOT=2
DASH=3
COMMENT_START=4
COMMENT_END=5
COMMENT=6
CDATA=7
DTD=8
EntityRef=9
CharRef=10
SEA_WS=11
OPEN=12
OPEN_SLASH=13
XMLDeclOpen=14
TEXT=15
CommentText=16
CommentModeEnd=17
CLOSE=18
SPECIAL_CLOSE=19
SLASH_CLOSE=20
SLASH=21
EQUALS=22
STRING=23
Name=24
S=25
PI=26
':'=1
'!'=2
'-'=3
'<'=12
'</'=13
'>'=18
'/>'=20
'/'=21
'='=22
@@ -1,74 +0,0 @@
token literal names:
null
':'
'!'
'-'
null
null
null
null
null
null
null
null
'<'
'</'
null
null
null
null
'>'
null
'/>'
'/'
'='
null
null
null
null
token symbolic names:
null
COLON
NOT
DASH
COMMENT_START
COMMENT_END
COMMENT
CDATA
DTD
EntityRef
CharRef
SEA_WS
OPEN
OPEN_SLASH
XMLDeclOpen
TEXT
CommentText
CommentModeEnd
CLOSE
SPECIAL_CLOSE
SLASH_CLOSE
SLASH
EQUALS
STRING
Name
S
PI
rule names:
document
prolog
content
element
nonEmptyClosingElement
emptyClosingElement
reference
attribute
prefix
chardata
misc
atn:
[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 28, 112, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 3, 2, 5, 2, 26, 10, 2, 3, 2, 7, 2, 29, 10, 2, 12, 2, 14, 2, 32, 11, 2, 3, 2, 3, 2, 7, 2, 36, 10, 2, 12, 2, 14, 2, 39, 11, 2, 3, 3, 3, 3, 7, 3, 43, 10, 3, 12, 3, 14, 3, 46, 11, 3, 3, 3, 3, 3, 3, 4, 5, 4, 51, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 58, 10, 4, 3, 4, 5, 4, 61, 10, 4, 7, 4, 63, 10, 4, 12, 4, 14, 4, 66, 11, 4, 3, 5, 3, 5, 5, 5, 70, 10, 5, 3, 6, 3, 6, 3, 6, 7, 6, 75, 10, 6, 12, 6, 14, 6, 78, 11, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 7, 7, 89, 10, 7, 12, 7, 14, 7, 92, 11, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 5, 9, 99, 10, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 2, 2, 13, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 2, 5, 3, 2, 11, 12, 4, 2, 13, 13, 17, 17, 5, 2, 8, 8, 13, 13, 28, 28, 2, 115, 2, 25, 3, 2, 2, 2, 4, 40, 3, 2, 2, 2, 6, 50, 3, 2, 2, 2, 8, 69, 3, 2, 2, 2, 10, 71, 3, 2, 2, 2, 12, 85, 3, 2, 2, 2, 14, 95, 3, 2, 2, 2, 16, 98, 3, 2, 2, 2, 18, 104, 3, 2, 2, 2, 20, 107, 3, 2, 2, 2, 22, 109, 3, 2, 2, 2, 24, 26, 5, 4, 3, 2, 25, 24, 3, 2, 2, 2, 25, 26, 3, 2, 2, 2, 26, 30, 3, 2, 2, 2, 27, 29, 5, 22, 12, 2, 28, 27, 3, 2, 2, 2, 29, 32, 3, 2, 2, 2, 30, 28, 3, 2, 2, 2, 30, 31, 3, 2, 2, 2, 31, 33, 3, 2, 2, 2, 32, 30, 3, 2, 2, 2, 33, 37, 5, 8, 5, 2, 34, 36, 5, 22, 12, 2, 35, 34, 3, 2, 2, 2, 36, 39, 3, 2, 2, 2, 37, 35, 3, 2, 2, 2, 37, 38, 3, 2, 2, 2, 38, 3, 3, 2, 2, 2, 39, 37, 3, 2, 2, 2, 40, 44, 7, 16, 2, 2, 41, 43, 5, 16, 9, 2, 42, 41, 3, 2, 2, 2, 43, 46, 3, 2, 2, 2, 44, 42, 3, 2, 2, 2, 44, 45, 3, 2, 2, 2, 45, 47, 3, 2, 2, 2, 46, 44, 3, 2, 2, 2, 47, 48, 7, 21, 2, 2, 48, 5, 3, 2, 2, 2, 49, 51, 5, 20, 11, 2, 50, 49, 3, 2, 2, 2, 50, 51, 3, 2, 2, 2, 51, 64, 3, 2, 2, 2, 52, 58, 5, 8, 5, 2, 53, 58, 5, 14, 8, 2, 54, 58, 7, 9, 2, 2, 55, 58, 7, 28, 2, 2, 56, 58, 7, 8, 2, 2, 57, 52, 3, 2, 2, 2, 57, 53, 3, 2, 2, 2, 57, 54, 3, 2, 2, 2, 57, 55, 3, 2, 2, 2, 57, 56, 3, 2, 2, 2, 58, 60, 3, 2, 2, 2, 59, 61, 5, 20, 11, 2, 60, 59, 3, 2, 2, 2, 60, 61, 3, 2, 2, 2, 61, 63, 3, 2, 2, 2, 62, 57, 3, 2, 2, 2, 63, 66, 3, 2, 2, 2, 64, 62, 3, 2, 2, 2, 64, 65, 3, 2, 2, 2, 65, 7, 3, 2, 2, 2, 66, 64, 3, 2, 2, 2, 67, 70, 5, 10, 6, 2, 68, 70, 5, 12, 7, 2, 69, 67, 3, 2, 2, 2, 69, 68, 3, 2, 2, 2, 70, 9, 3, 2, 2, 2, 71, 72, 7, 14, 2, 2, 72, 76, 7, 26, 2, 2, 73, 75, 5, 16, 9, 2, 74, 73, 3, 2, 2, 2, 75, 78, 3, 2, 2, 2, 76, 74, 3, 2, 2, 2, 76, 77, 3, 2, 2, 2, 77, 79, 3, 2, 2, 2, 78, 76, 3, 2, 2, 2, 79, 80, 7, 20, 2, 2, 80, 81, 5, 6, 4, 2, 81, 82, 7, 15, 2, 2, 82, 83, 7, 26, 2, 2, 83, 84, 7, 20, 2, 2, 84, 11, 3, 2, 2, 2, 85, 86, 7, 14, 2, 2, 86, 90, 7, 26, 2, 2, 87, 89, 5, 16, 9, 2, 88, 87, 3, 2, 2, 2, 89, 92, 3, 2, 2, 2, 90, 88, 3, 2, 2, 2, 90, 91, 3, 2, 2, 2, 91, 93, 3, 2, 2, 2, 92, 90, 3, 2, 2, 2, 93, 94, 7, 22, 2, 2, 94, 13, 3, 2, 2, 2, 95, 96, 9, 2, 2, 2, 96, 15, 3, 2, 2, 2, 97, 99, 5, 18, 10, 2, 98, 97, 3, 2, 2, 2, 98, 99, 3, 2, 2, 2, 99, 100, 3, 2, 2, 2, 100, 101, 7, 26, 2, 2, 101, 102, 7, 24, 2, 2, 102, 103, 7, 25, 2, 2, 103, 17, 3, 2, 2, 2, 104, 105, 7, 26, 2, 2, 105, 106, 7, 3, 2, 2, 106, 19, 3, 2, 2, 2, 107, 108, 9, 3, 2, 2, 108, 21, 3, 2, 2, 2, 109, 110, 9, 4, 2, 2, 110, 23, 3, 2, 2, 2, 14, 25, 30, 37, 44, 50, 57, 60, 64, 69, 76, 90, 98]
File diff suppressed because it is too large Load Diff
@@ -1,35 +0,0 @@
COLON=1
NOT=2
DASH=3
COMMENT_START=4
COMMENT_END=5
COMMENT=6
CDATA=7
DTD=8
EntityRef=9
CharRef=10
SEA_WS=11
OPEN=12
OPEN_SLASH=13
XMLDeclOpen=14
TEXT=15
CommentText=16
CommentModeEnd=17
CLOSE=18
SPECIAL_CLOSE=19
SLASH_CLOSE=20
SLASH=21
EQUALS=22
STRING=23
Name=24
S=25
PI=26
':'=1
'!'=2
'-'=3
'<'=12
'</'=13
'>'=18
'/>'=20
'/'=21
'='=22
@@ -1,199 +0,0 @@
// Generated from XMLParser.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.xml;
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.tree.ErrorNode;
import org.antlr.v4.runtime.tree.TerminalNode;
/**
* This class provides an empty implementation of {@link XMLParserListener}, which can be extended
* to create a listener which only needs to handle a subset of the available methods.
*/
public class XMLParserBaseListener implements XMLParserListener {
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDocument(XMLParser.DocumentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDocument(XMLParser.DocumentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterProlog(XMLParser.PrologContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitProlog(XMLParser.PrologContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterContent(XMLParser.ContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitContent(XMLParser.ContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterElement(XMLParser.ElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitElement(XMLParser.ElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterReference(XMLParser.ReferenceContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitReference(XMLParser.ReferenceContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterAttribute(XMLParser.AttributeContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitAttribute(XMLParser.AttributeContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterPrefix(XMLParser.PrefixContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitPrefix(XMLParser.PrefixContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterChardata(XMLParser.ChardataContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitChardata(XMLParser.ChardataContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterMisc(XMLParser.MiscContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitMisc(XMLParser.MiscContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void visitTerminal(TerminalNode node) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void visitErrorNode(ErrorNode node) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterEveryRule(ParserRuleContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitEveryRule(ParserRuleContext ctx) {}
}
@@ -1,125 +0,0 @@
// Generated from XMLParser.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.xml;
import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
/**
* This class provides an empty implementation of {@link XMLParserVisitor}, which can be extended to
* create a visitor which only needs to handle a subset of the available methods.
*
* @param <T> The return type of the visit operation. Use {@link Void} for operations with no return
* type.
*/
public class XMLParserBaseVisitor<T> extends AbstractParseTreeVisitor<T>
implements XMLParserVisitor<T> {
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDocument(XMLParser.DocumentContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitProlog(XMLParser.PrologContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitContent(XMLParser.ContentContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitElement(XMLParser.ElementContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitReference(XMLParser.ReferenceContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitAttribute(XMLParser.AttributeContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitPrefix(XMLParser.PrefixContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitChardata(XMLParser.ChardataContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitMisc(XMLParser.MiscContext ctx) {
return visitChildren(ctx);
}
}
@@ -1,140 +0,0 @@
// Generated from XMLParser.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.xml;
import org.antlr.v4.runtime.tree.ParseTreeListener;
/** This interface defines a complete listener for a parse tree produced by {@link XMLParser}. */
public interface XMLParserListener extends ParseTreeListener {
/**
* Enter a parse tree produced by {@link XMLParser#document}.
*
* @param ctx the parse tree
*/
void enterDocument(XMLParser.DocumentContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#document}.
*
* @param ctx the parse tree
*/
void exitDocument(XMLParser.DocumentContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#prolog}.
*
* @param ctx the parse tree
*/
void enterProlog(XMLParser.PrologContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#prolog}.
*
* @param ctx the parse tree
*/
void exitProlog(XMLParser.PrologContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#content}.
*
* @param ctx the parse tree
*/
void enterContent(XMLParser.ContentContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#content}.
*
* @param ctx the parse tree
*/
void exitContent(XMLParser.ContentContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#element}.
*
* @param ctx the parse tree
*/
void enterElement(XMLParser.ElementContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#element}.
*
* @param ctx the parse tree
*/
void exitElement(XMLParser.ElementContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#nonEmptyClosingElement}.
*
* @param ctx the parse tree
*/
void enterNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#nonEmptyClosingElement}.
*
* @param ctx the parse tree
*/
void exitNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#emptyClosingElement}.
*
* @param ctx the parse tree
*/
void enterEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#emptyClosingElement}.
*
* @param ctx the parse tree
*/
void exitEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#reference}.
*
* @param ctx the parse tree
*/
void enterReference(XMLParser.ReferenceContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#reference}.
*
* @param ctx the parse tree
*/
void exitReference(XMLParser.ReferenceContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#attribute}.
*
* @param ctx the parse tree
*/
void enterAttribute(XMLParser.AttributeContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#attribute}.
*
* @param ctx the parse tree
*/
void exitAttribute(XMLParser.AttributeContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#prefix}.
*
* @param ctx the parse tree
*/
void enterPrefix(XMLParser.PrefixContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#prefix}.
*
* @param ctx the parse tree
*/
void exitPrefix(XMLParser.PrefixContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#chardata}.
*
* @param ctx the parse tree
*/
void enterChardata(XMLParser.ChardataContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#chardata}.
*
* @param ctx the parse tree
*/
void exitChardata(XMLParser.ChardataContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#misc}.
*
* @param ctx the parse tree
*/
void enterMisc(XMLParser.MiscContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#misc}.
*
* @param ctx the parse tree
*/
void exitMisc(XMLParser.MiscContext ctx);
}
@@ -1,90 +0,0 @@
// Generated from XMLParser.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.xml;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
/**
* This interface defines a complete generic visitor for a parse tree produced by {@link XMLParser}.
*
* @param <T> The return type of the visit operation. Use {@link Void} for operations with no return
* type.
*/
public interface XMLParserVisitor<T> extends ParseTreeVisitor<T> {
/**
* Visit a parse tree produced by {@link XMLParser#document}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDocument(XMLParser.DocumentContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#prolog}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitProlog(XMLParser.PrologContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#content}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitContent(XMLParser.ContentContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#element}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitElement(XMLParser.ElementContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#nonEmptyClosingElement}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#emptyClosingElement}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#reference}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitReference(XMLParser.ReferenceContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#attribute}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAttribute(XMLParser.AttributeContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#prefix}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitPrefix(XMLParser.PrefixContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#chardata}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitChardata(XMLParser.ChardataContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#misc}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitMisc(XMLParser.MiscContext ctx);
}
+1
View File
@@ -18,6 +18,7 @@
plugins {
id("com.android.library")
id("kotlin-android")
id("kotlin-kapt")
}
android {
+1
View File
@@ -17,6 +17,7 @@
plugins {
id("com.android.library")
id("kotlin-android")
id("kotlin-kapt")
}
android {
+1
View File
@@ -18,6 +18,7 @@
plugins {
id("com.android.library")
id("kotlin-android")
id("kotlin-kapt")
}
android {
+1
View File
@@ -2,6 +2,7 @@ plugins {
id("com.android.library")
id("kotlin-android")
id("kotlin-parcelize")
id("kotlin-kapt")
}
android {