mirror of
https://gitee.com/zhangsken/AndroidIDE.git
synced 2026-10-16 07:49:44 +08:00
Highlight TODOs and '#warn' comments
Included Javadoc lexer and parser
This commit is contained in:
Binary file not shown.
@@ -169,7 +169,8 @@ ELLIPSIS: '...';
|
||||
// Whitespace and comments
|
||||
|
||||
WS: [ \t\r\n\u000C]+ -> channel(HIDDEN);
|
||||
COMMENT: '/*' .*? '*/' -> channel(HIDDEN);
|
||||
BLOCK_COMMENT: '/**' .*? '*/' -> channel(HIDDEN);
|
||||
JAVADOC_COMMENT: '/*' .*? '*/' -> channel(HIDDEN);
|
||||
LINE_COMMENT: '//' ~[\r\n]* -> channel(HIDDEN);
|
||||
|
||||
// Identifiers
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -33,7 +33,8 @@ public class JavaLexer extends Lexer {
|
||||
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;
|
||||
AT=107, ELLIPSIS=108, WS=109, BLOCK_COMMENT=110, JAVADOC_COMMENT=111,
|
||||
LINE_COMMENT=112, IDENTIFIER=113;
|
||||
public static String[] channelNames = {
|
||||
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
|
||||
};
|
||||
@@ -59,9 +60,9 @@ public class JavaLexer extends Lexer {
|
||||
"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"
|
||||
"COLONCOLON", "AT", "ELLIPSIS", "WS", "BLOCK_COMMENT", "JAVADOC_COMMENT",
|
||||
"LINE_COMMENT", "IDENTIFIER", "ExponentPart", "EscapeSequence", "HexDigits",
|
||||
"HexDigit", "Digits", "LetterOrDigit", "Letter"
|
||||
};
|
||||
}
|
||||
public static final String[] ruleNames = makeRuleNames();
|
||||
@@ -102,7 +103,8 @@ public class JavaLexer extends Lexer {
|
||||
"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"
|
||||
"COLONCOLON", "AT", "ELLIPSIS", "WS", "BLOCK_COMMENT", "JAVADOC_COMMENT",
|
||||
"LINE_COMMENT", "IDENTIFIER"
|
||||
};
|
||||
}
|
||||
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
|
||||
@@ -164,7 +166,7 @@ public class JavaLexer extends Lexer {
|
||||
public ATN getATN() { return _ATN; }
|
||||
|
||||
public static final String _serializedATN =
|
||||
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2r\u03b9\b\1\4\2\t"+
|
||||
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2s\u03ca\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"+
|
||||
@@ -177,64 +179,65 @@ public class JavaLexer extends Lexer {
|
||||
"\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;"+
|
||||
"w\tw\4x\tx\4y\ty\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\u024e\n\65"+
|
||||
"\3\65\6\65\u0251\n\65\r\65\16\65\u0252\3\65\5\65\u0256\n\65\5\65\u0258"+
|
||||
"\n\65\3\65\5\65\u025b\n\65\3\66\3\66\3\66\3\66\7\66\u0261\n\66\f\66\16"+
|
||||
"\66\u0264\13\66\3\66\5\66\u0267\n\66\3\66\5\66\u026a\n\66\3\67\3\67\7"+
|
||||
"\67\u026e\n\67\f\67\16\67\u0271\13\67\3\67\3\67\7\67\u0275\n\67\f\67\16"+
|
||||
"\67\u0278\13\67\3\67\5\67\u027b\n\67\3\67\5\67\u027e\n\67\38\38\38\38"+
|
||||
"\78\u0284\n8\f8\168\u0287\138\38\58\u028a\n8\38\58\u028d\n8\39\39\39\5"+
|
||||
"9\u0292\n9\39\39\59\u0296\n9\39\59\u0299\n9\39\59\u029c\n9\39\39\39\5"+
|
||||
"9\u02a1\n9\39\59\u02a4\n9\59\u02a6\n9\3:\3:\3:\3:\5:\u02ac\n:\3:\5:\u02af"+
|
||||
"\n:\3:\3:\5:\u02b3\n:\3:\3:\5:\u02b7\n:\3:\3:\5:\u02bb\n:\3;\3;\3;\3;"+
|
||||
"\3;\3;\3;\3;\3;\5;\u02c6\n;\3<\3<\3<\5<\u02cb\n<\3<\3<\3=\3=\3=\7=\u02d2"+
|
||||
"\n=\f=\16=\u02d5\13=\3=\3=\3>\3>\3>\3>\3>\3?\3?\3@\3@\3A\3A\3B\3B\3C\3"+
|
||||
"C\3D\3D\3E\3E\3F\3F\3G\3G\3H\3H\3I\3I\3J\3J\3K\3K\3L\3L\3M\3M\3N\3N\3"+
|
||||
"O\3O\3O\3P\3P\3P\3Q\3Q\3Q\3R\3R\3R\3S\3S\3S\3T\3T\3T\3U\3U\3U\3V\3V\3"+
|
||||
"V\3W\3W\3X\3X\3Y\3Y\3Z\3Z\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\u0358"+
|
||||
"\nn\rn\16n\u0359\3n\3n\3o\3o\3o\3o\3o\7o\u0363\no\fo\16o\u0366\13o\3o"+
|
||||
"\3o\3o\3o\3o\3p\3p\3p\3p\7p\u0371\np\fp\16p\u0374\13p\3p\3p\3p\3p\3p\3"+
|
||||
"q\3q\3q\3q\7q\u037f\nq\fq\16q\u0382\13q\3q\3q\3r\3r\7r\u0388\nr\fr\16"+
|
||||
"r\u038b\13r\3s\3s\5s\u038f\ns\3s\3s\3t\3t\3t\3t\5t\u0397\nt\3t\5t\u039a"+
|
||||
"\nt\3t\3t\3t\6t\u039f\nt\rt\16t\u03a0\3t\3t\3t\3t\3t\5t\u03a8\nt\3u\3"+
|
||||
"u\3u\7u\u03ad\nu\fu\16u\u03b0\13u\3u\5u\u03b3\nu\3v\3v\3w\3w\7w\u03b9"+
|
||||
"\nw\fw\16w\u03bc\13w\3w\5w\u03bf\nw\3x\3x\5x\u03c3\nx\3y\3y\3y\3y\5y\u03c9"+
|
||||
"\ny\4\u0364\u0372\2z\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\63"+
|
||||
"e\64g\65i\66k\67m8o9q:s;u<w=y>{?}@\177A\u0081B\u0083C\u0085D\u0087E\u0089"+
|
||||
"F\u008bG\u008dH\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009bO\u009d"+
|
||||
"P\u009fQ\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00afY\u00b1"+
|
||||
"Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3c\u00c5"+
|
||||
"d\u00c7e\u00c9f\u00cbg\u00cdh\u00cfi\u00d1j\u00d3k\u00d5l\u00d7m\u00d9"+
|
||||
"n\u00dbo\u00ddp\u00dfq\u00e1r\u00e3s\u00e5\2\u00e7\2\u00e9\2\u00eb\2\u00ed"+
|
||||
"\2\u00ef\2\u00f1\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"+
|
||||
"\u03f4\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"+
|
||||
@@ -255,248 +258,253 @@ public class JavaLexer extends Lexer {
|
||||
"\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";
|
||||
"\3\2\2\2\2\u00df\3\2\2\2\2\u00e1\3\2\2\2\2\u00e3\3\2\2\2\3\u00f3\3\2\2"+
|
||||
"\2\5\u00fc\3\2\2\2\7\u0103\3\2\2\2\t\u010b\3\2\2\2\13\u0111\3\2\2\2\r"+
|
||||
"\u0116\3\2\2\2\17\u011b\3\2\2\2\21\u0121\3\2\2\2\23\u0126\3\2\2\2\25\u012c"+
|
||||
"\3\2\2\2\27\u0132\3\2\2\2\31\u013b\3\2\2\2\33\u0143\3\2\2\2\35\u0146\3"+
|
||||
"\2\2\2\37\u014d\3\2\2\2!\u0152\3\2\2\2#\u0157\3\2\2\2%\u015f\3\2\2\2\'"+
|
||||
"\u0165\3\2\2\2)\u016d\3\2\2\2+\u0173\3\2\2\2-\u0177\3\2\2\2/\u017a\3\2"+
|
||||
"\2\2\61\u017f\3\2\2\2\63\u018a\3\2\2\2\65\u0191\3\2\2\2\67\u019c\3\2\2"+
|
||||
"\29\u01a0\3\2\2\2;\u01aa\3\2\2\2=\u01af\3\2\2\2?\u01b6\3\2\2\2A\u01ba"+
|
||||
"\3\2\2\2C\u01c2\3\2\2\2E\u01ca\3\2\2\2G\u01d4\3\2\2\2I\u01db\3\2\2\2K"+
|
||||
"\u01e2\3\2\2\2M\u01e8\3\2\2\2O\u01ef\3\2\2\2Q\u01f8\3\2\2\2S\u01fe\3\2"+
|
||||
"\2\2U\u0205\3\2\2\2W\u0212\3\2\2\2Y\u0217\3\2\2\2[\u021d\3\2\2\2]\u0224"+
|
||||
"\3\2\2\2_\u022e\3\2\2\2a\u0232\3\2\2\2c\u0236\3\2\2\2e\u023b\3\2\2\2g"+
|
||||
"\u0244\3\2\2\2i\u0257\3\2\2\2k\u025c\3\2\2\2m\u026b\3\2\2\2o\u027f\3\2"+
|
||||
"\2\2q\u02a5\3\2\2\2s\u02a7\3\2\2\2u\u02c5\3\2\2\2w\u02c7\3\2\2\2y\u02ce"+
|
||||
"\3\2\2\2{\u02d8\3\2\2\2}\u02dd\3\2\2\2\177\u02df\3\2\2\2\u0081\u02e1\3"+
|
||||
"\2\2\2\u0083\u02e3\3\2\2\2\u0085\u02e5\3\2\2\2\u0087\u02e7\3\2\2\2\u0089"+
|
||||
"\u02e9\3\2\2\2\u008b\u02eb\3\2\2\2\u008d\u02ed\3\2\2\2\u008f\u02ef\3\2"+
|
||||
"\2\2\u0091\u02f1\3\2\2\2\u0093\u02f3\3\2\2\2\u0095\u02f5\3\2\2\2\u0097"+
|
||||
"\u02f7\3\2\2\2\u0099\u02f9\3\2\2\2\u009b\u02fb\3\2\2\2\u009d\u02fd\3\2"+
|
||||
"\2\2\u009f\u0300\3\2\2\2\u00a1\u0303\3\2\2\2\u00a3\u0306\3\2\2\2\u00a5"+
|
||||
"\u0309\3\2\2\2\u00a7\u030c\3\2\2\2\u00a9\u030f\3\2\2\2\u00ab\u0312\3\2"+
|
||||
"\2\2\u00ad\u0315\3\2\2\2\u00af\u0317\3\2\2\2\u00b1\u0319\3\2\2\2\u00b3"+
|
||||
"\u031b\3\2\2\2\u00b5\u031d\3\2\2\2\u00b7\u031f\3\2\2\2\u00b9\u0321\3\2"+
|
||||
"\2\2\u00bb\u0323\3\2\2\2\u00bd\u0325\3\2\2\2\u00bf\u0328\3\2\2\2\u00c1"+
|
||||
"\u032b\3\2\2\2\u00c3\u032e\3\2\2\2\u00c5\u0331\3\2\2\2\u00c7\u0334\3\2"+
|
||||
"\2\2\u00c9\u0337\3\2\2\2\u00cb\u033a\3\2\2\2\u00cd\u033d\3\2\2\2\u00cf"+
|
||||
"\u0341\3\2\2\2\u00d1\u0345\3\2\2\2\u00d3\u034a\3\2\2\2\u00d5\u034d\3\2"+
|
||||
"\2\2\u00d7\u0350\3\2\2\2\u00d9\u0352\3\2\2\2\u00db\u0357\3\2\2\2\u00dd"+
|
||||
"\u035d\3\2\2\2\u00df\u036c\3\2\2\2\u00e1\u037a\3\2\2\2\u00e3\u0385\3\2"+
|
||||
"\2\2\u00e5\u038c\3\2\2\2\u00e7\u03a7\3\2\2\2\u00e9\u03a9\3\2\2\2\u00eb"+
|
||||
"\u03b4\3\2\2\2\u00ed\u03b6\3\2\2\2\u00ef\u03c2\3\2\2\2\u00f1\u03c8\3\2"+
|
||||
"\2\2\u00f3\u00f4\7c\2\2\u00f4\u00f5\7d\2\2\u00f5\u00f6\7u\2\2\u00f6\u00f7"+
|
||||
"\7v\2\2\u00f7\u00f8\7t\2\2\u00f8\u00f9\7c\2\2\u00f9\u00fa\7e\2\2\u00fa"+
|
||||
"\u00fb\7v\2\2\u00fb\4\3\2\2\2\u00fc\u00fd\7c\2\2\u00fd\u00fe\7u\2\2\u00fe"+
|
||||
"\u00ff\7u\2\2\u00ff\u0100\7g\2\2\u0100\u0101\7t\2\2\u0101\u0102\7v\2\2"+
|
||||
"\u0102\6\3\2\2\2\u0103\u0104\7d\2\2\u0104\u0105\7q\2\2\u0105\u0106\7q"+
|
||||
"\2\2\u0106\u0107\7n\2\2\u0107\u0108\7g\2\2\u0108\u0109\7c\2\2\u0109\u010a"+
|
||||
"\7p\2\2\u010a\b\3\2\2\2\u010b\u010c\7d\2\2\u010c\u010d\7t\2\2\u010d\u010e"+
|
||||
"\7g\2\2\u010e\u010f\7c\2\2\u010f\u0110\7m\2\2\u0110\n\3\2\2\2\u0111\u0112"+
|
||||
"\7d\2\2\u0112\u0113\7{\2\2\u0113\u0114\7v\2\2\u0114\u0115\7g\2\2\u0115"+
|
||||
"\f\3\2\2\2\u0116\u0117\7e\2\2\u0117\u0118\7c\2\2\u0118\u0119\7u\2\2\u0119"+
|
||||
"\u011a\7g\2\2\u011a\16\3\2\2\2\u011b\u011c\7e\2\2\u011c\u011d\7c\2\2\u011d"+
|
||||
"\u011e\7v\2\2\u011e\u011f\7e\2\2\u011f\u0120\7j\2\2\u0120\20\3\2\2\2\u0121"+
|
||||
"\u0122\7e\2\2\u0122\u0123\7j\2\2\u0123\u0124\7c\2\2\u0124\u0125\7t\2\2"+
|
||||
"\u0125\22\3\2\2\2\u0126\u0127\7e\2\2\u0127\u0128\7n\2\2\u0128\u0129\7"+
|
||||
"c\2\2\u0129\u012a\7u\2\2\u012a\u012b\7u\2\2\u012b\24\3\2\2\2\u012c\u012d"+
|
||||
"\7e\2\2\u012d\u012e\7q\2\2\u012e\u012f\7p\2\2\u012f\u0130\7u\2\2\u0130"+
|
||||
"\u0131\7v\2\2\u0131\26\3\2\2\2\u0132\u0133\7e\2\2\u0133\u0134\7q\2\2\u0134"+
|
||||
"\u0135\7p\2\2\u0135\u0136\7v\2\2\u0136\u0137\7k\2\2\u0137\u0138\7p\2\2"+
|
||||
"\u0138\u0139\7w\2\2\u0139\u013a\7g\2\2\u013a\30\3\2\2\2\u013b\u013c\7"+
|
||||
"f\2\2\u013c\u013d\7g\2\2\u013d\u013e\7h\2\2\u013e\u013f\7c\2\2\u013f\u0140"+
|
||||
"\7w\2\2\u0140\u0141\7n\2\2\u0141\u0142\7v\2\2\u0142\32\3\2\2\2\u0143\u0144"+
|
||||
"\7f\2\2\u0144\u0145\7q\2\2\u0145\34\3\2\2\2\u0146\u0147\7f\2\2\u0147\u0148"+
|
||||
"\7q\2\2\u0148\u0149\7w\2\2\u0149\u014a\7d\2\2\u014a\u014b\7n\2\2\u014b"+
|
||||
"\u014c\7g\2\2\u014c\36\3\2\2\2\u014d\u014e\7g\2\2\u014e\u014f\7n\2\2\u014f"+
|
||||
"\u0150\7u\2\2\u0150\u0151\7g\2\2\u0151 \3\2\2\2\u0152\u0153\7g\2\2\u0153"+
|
||||
"\u0154\7p\2\2\u0154\u0155\7w\2\2\u0155\u0156\7o\2\2\u0156\"\3\2\2\2\u0157"+
|
||||
"\u0158\7g\2\2\u0158\u0159\7z\2\2\u0159\u015a\7v\2\2\u015a\u015b\7g\2\2"+
|
||||
"\u015b\u015c\7p\2\2\u015c\u015d\7f\2\2\u015d\u015e\7u\2\2\u015e$\3\2\2"+
|
||||
"\2\u015f\u0160\7h\2\2\u0160\u0161\7k\2\2\u0161\u0162\7p\2\2\u0162\u0163"+
|
||||
"\7c\2\2\u0163\u0164\7n\2\2\u0164&\3\2\2\2\u0165\u0166\7h\2\2\u0166\u0167"+
|
||||
"\7k\2\2\u0167\u0168\7p\2\2\u0168\u0169\7c\2\2\u0169\u016a\7n\2\2\u016a"+
|
||||
"\u016b\7n\2\2\u016b\u016c\7{\2\2\u016c(\3\2\2\2\u016d\u016e\7h\2\2\u016e"+
|
||||
"\u016f\7n\2\2\u016f\u0170\7q\2\2\u0170\u0171\7c\2\2\u0171\u0172\7v\2\2"+
|
||||
"\u0172*\3\2\2\2\u0173\u0174\7h\2\2\u0174\u0175\7q\2\2\u0175\u0176\7t\2"+
|
||||
"\2\u0176,\3\2\2\2\u0177\u0178\7k\2\2\u0178\u0179\7h\2\2\u0179.\3\2\2\2"+
|
||||
"\u017a\u017b\7i\2\2\u017b\u017c\7q\2\2\u017c\u017d\7v\2\2\u017d\u017e"+
|
||||
"\7q\2\2\u017e\60\3\2\2\2\u017f\u0180\7k\2\2\u0180\u0181\7o\2\2\u0181\u0182"+
|
||||
"\7r\2\2\u0182\u0183\7n\2\2\u0183\u0184\7g\2\2\u0184\u0185\7o\2\2\u0185"+
|
||||
"\u0186\7g\2\2\u0186\u0187\7p\2\2\u0187\u0188\7v\2\2\u0188\u0189\7u\2\2"+
|
||||
"\u0189\62\3\2\2\2\u018a\u018b\7k\2\2\u018b\u018c\7o\2\2\u018c\u018d\7"+
|
||||
"r\2\2\u018d\u018e\7q\2\2\u018e\u018f\7t\2\2\u018f\u0190\7v\2\2\u0190\64"+
|
||||
"\3\2\2\2\u0191\u0192\7k\2\2\u0192\u0193\7p\2\2\u0193\u0194\7u\2\2\u0194"+
|
||||
"\u0195\7v\2\2\u0195\u0196\7c\2\2\u0196\u0197\7p\2\2\u0197\u0198\7e\2\2"+
|
||||
"\u0198\u0199\7g\2\2\u0199\u019a\7q\2\2\u019a\u019b\7h\2\2\u019b\66\3\2"+
|
||||
"\2\2\u019c\u019d\7k\2\2\u019d\u019e\7p\2\2\u019e\u019f\7v\2\2\u019f8\3"+
|
||||
"\2\2\2\u01a0\u01a1\7k\2\2\u01a1\u01a2\7p\2\2\u01a2\u01a3\7v\2\2\u01a3"+
|
||||
"\u01a4\7g\2\2\u01a4\u01a5\7t\2\2\u01a5\u01a6\7h\2\2\u01a6\u01a7\7c\2\2"+
|
||||
"\u01a7\u01a8\7e\2\2\u01a8\u01a9\7g\2\2\u01a9:\3\2\2\2\u01aa\u01ab\7n\2"+
|
||||
"\2\u01ab\u01ac\7q\2\2\u01ac\u01ad\7p\2\2\u01ad\u01ae\7i\2\2\u01ae<\3\2"+
|
||||
"\2\2\u01af\u01b0\7p\2\2\u01b0\u01b1\7c\2\2\u01b1\u01b2\7v\2\2\u01b2\u01b3"+
|
||||
"\7k\2\2\u01b3\u01b4\7x\2\2\u01b4\u01b5\7g\2\2\u01b5>\3\2\2\2\u01b6\u01b7"+
|
||||
"\7p\2\2\u01b7\u01b8\7g\2\2\u01b8\u01b9\7y\2\2\u01b9@\3\2\2\2\u01ba\u01bb"+
|
||||
"\7r\2\2\u01bb\u01bc\7c\2\2\u01bc\u01bd\7e\2\2\u01bd\u01be\7m\2\2\u01be"+
|
||||
"\u01bf\7c\2\2\u01bf\u01c0\7i\2\2\u01c0\u01c1\7g\2\2\u01c1B\3\2\2\2\u01c2"+
|
||||
"\u01c3\7r\2\2\u01c3\u01c4\7t\2\2\u01c4\u01c5\7k\2\2\u01c5\u01c6\7x\2\2"+
|
||||
"\u01c6\u01c7\7c\2\2\u01c7\u01c8\7v\2\2\u01c8\u01c9\7g\2\2\u01c9D\3\2\2"+
|
||||
"\2\u01ca\u01cb\7r\2\2\u01cb\u01cc\7t\2\2\u01cc\u01cd\7q\2\2\u01cd\u01ce"+
|
||||
"\7v\2\2\u01ce\u01cf\7g\2\2\u01cf\u01d0\7e\2\2\u01d0\u01d1\7v\2\2\u01d1"+
|
||||
"\u01d2\7g\2\2\u01d2\u01d3\7f\2\2\u01d3F\3\2\2\2\u01d4\u01d5\7r\2\2\u01d5"+
|
||||
"\u01d6\7w\2\2\u01d6\u01d7\7d\2\2\u01d7\u01d8\7n\2\2\u01d8\u01d9\7k\2\2"+
|
||||
"\u01d9\u01da\7e\2\2\u01daH\3\2\2\2\u01db\u01dc\7t\2\2\u01dc\u01dd\7g\2"+
|
||||
"\2\u01dd\u01de\7v\2\2\u01de\u01df\7w\2\2\u01df\u01e0\7t\2\2\u01e0\u01e1"+
|
||||
"\7p\2\2\u01e1J\3\2\2\2\u01e2\u01e3\7u\2\2\u01e3\u01e4\7j\2\2\u01e4\u01e5"+
|
||||
"\7q\2\2\u01e5\u01e6\7t\2\2\u01e6\u01e7\7v\2\2\u01e7L\3\2\2\2\u01e8\u01e9"+
|
||||
"\7u\2\2\u01e9\u01ea\7v\2\2\u01ea\u01eb\7c\2\2\u01eb\u01ec\7v\2\2\u01ec"+
|
||||
"\u01ed\7k\2\2\u01ed\u01ee\7e\2\2\u01eeN\3\2\2\2\u01ef\u01f0\7u\2\2\u01f0"+
|
||||
"\u01f1\7v\2\2\u01f1\u01f2\7t\2\2\u01f2\u01f3\7k\2\2\u01f3\u01f4\7e\2\2"+
|
||||
"\u01f4\u01f5\7v\2\2\u01f5\u01f6\7h\2\2\u01f6\u01f7\7r\2\2\u01f7P\3\2\2"+
|
||||
"\2\u01f8\u01f9\7u\2\2\u01f9\u01fa\7w\2\2\u01fa\u01fb\7r\2\2\u01fb\u01fc"+
|
||||
"\7g\2\2\u01fc\u01fd\7t\2\2\u01fdR\3\2\2\2\u01fe\u01ff\7u\2\2\u01ff\u0200"+
|
||||
"\7y\2\2\u0200\u0201\7k\2\2\u0201\u0202\7v\2\2\u0202\u0203\7e\2\2\u0203"+
|
||||
"\u0204\7j\2\2\u0204T\3\2\2\2\u0205\u0206\7u\2\2\u0206\u0207\7{\2\2\u0207"+
|
||||
"\u0208\7p\2\2\u0208\u0209\7e\2\2\u0209\u020a\7j\2\2\u020a\u020b\7t\2\2"+
|
||||
"\u020b\u020c\7q\2\2\u020c\u020d\7p\2\2\u020d\u020e\7k\2\2\u020e\u020f"+
|
||||
"\7|\2\2\u020f\u0210\7g\2\2\u0210\u0211\7f\2\2\u0211V\3\2\2\2\u0212\u0213"+
|
||||
"\7v\2\2\u0213\u0214\7j\2\2\u0214\u0215\7k\2\2\u0215\u0216\7u\2\2\u0216"+
|
||||
"X\3\2\2\2\u0217\u0218\7v\2\2\u0218\u0219\7j\2\2\u0219\u021a\7t\2\2\u021a"+
|
||||
"\u021b\7q\2\2\u021b\u021c\7y\2\2\u021cZ\3\2\2\2\u021d\u021e\7v\2\2\u021e"+
|
||||
"\u021f\7j\2\2\u021f\u0220\7t\2\2\u0220\u0221\7q\2\2\u0221\u0222\7y\2\2"+
|
||||
"\u0222\u0223\7u\2\2\u0223\\\3\2\2\2\u0224\u0225\7v\2\2\u0225\u0226\7t"+
|
||||
"\2\2\u0226\u0227\7c\2\2\u0227\u0228\7p\2\2\u0228\u0229\7u\2\2\u0229\u022a"+
|
||||
"\7k\2\2\u022a\u022b\7g\2\2\u022b\u022c\7p\2\2\u022c\u022d\7v\2\2\u022d"+
|
||||
"^\3\2\2\2\u022e\u022f\7v\2\2\u022f\u0230\7t\2\2\u0230\u0231\7{\2\2\u0231"+
|
||||
"`\3\2\2\2\u0232\u0233\7x\2\2\u0233\u0234\7c\2\2\u0234\u0235\7t\2\2\u0235"+
|
||||
"b\3\2\2\2\u0236\u0237\7x\2\2\u0237\u0238\7q\2\2\u0238\u0239\7k\2\2\u0239"+
|
||||
"\u023a\7f\2\2\u023ad\3\2\2\2\u023b\u023c\7x\2\2\u023c\u023d\7q\2\2\u023d"+
|
||||
"\u023e\7n\2\2\u023e\u023f\7c\2\2\u023f\u0240\7v\2\2\u0240\u0241\7k\2\2"+
|
||||
"\u0241\u0242\7n\2\2\u0242\u0243\7g\2\2\u0243f\3\2\2\2\u0244\u0245\7y\2"+
|
||||
"\2\u0245\u0246\7j\2\2\u0246\u0247\7k\2\2\u0247\u0248\7n\2\2\u0248\u0249"+
|
||||
"\7g\2\2\u0249h\3\2\2\2\u024a\u0258\7\62\2\2\u024b\u0255\t\2\2\2\u024c"+
|
||||
"\u024e\5\u00edw\2\u024d\u024c\3\2\2\2\u024d\u024e\3\2\2\2\u024e\u0256"+
|
||||
"\3\2\2\2\u024f\u0251\7a\2\2\u0250\u024f\3\2\2\2\u0251\u0252\3\2\2\2\u0252"+
|
||||
"\u0250\3\2\2\2\u0252\u0253\3\2\2\2\u0253\u0254\3\2\2\2\u0254\u0256\5\u00ed"+
|
||||
"w\2\u0255\u024d\3\2\2\2\u0255\u0250\3\2\2\2\u0256\u0258\3\2\2\2\u0257"+
|
||||
"\u024a\3\2\2\2\u0257\u024b\3\2\2\2\u0258\u025a\3\2\2\2\u0259\u025b\t\3"+
|
||||
"\2\2\u025a\u0259\3\2\2\2\u025a\u025b\3\2\2\2\u025bj\3\2\2\2\u025c\u025d"+
|
||||
"\7\62\2\2\u025d\u025e\t\4\2\2\u025e\u0266\t\5\2\2\u025f\u0261\t\6\2\2"+
|
||||
"\u0260\u025f\3\2\2\2\u0261\u0264\3\2\2\2\u0262\u0260\3\2\2\2\u0262\u0263"+
|
||||
"\3\2\2\2\u0263\u0265\3\2\2\2\u0264\u0262\3\2\2\2\u0265\u0267\t\5\2\2\u0266"+
|
||||
"\u0262\3\2\2\2\u0266\u0267\3\2\2\2\u0267\u0269\3\2\2\2\u0268\u026a\t\3"+
|
||||
"\2\2\u0269\u0268\3\2\2\2\u0269\u026a\3\2\2\2\u026al\3\2\2\2\u026b\u026f"+
|
||||
"\7\62\2\2\u026c\u026e\7a\2\2\u026d\u026c\3\2\2\2\u026e\u0271\3\2\2\2\u026f"+
|
||||
"\u026d\3\2\2\2\u026f\u0270\3\2\2\2\u0270\u0272\3\2\2\2\u0271\u026f\3\2"+
|
||||
"\2\2\u0272\u027a\t\7\2\2\u0273\u0275\t\b\2\2\u0274\u0273\3\2\2\2\u0275"+
|
||||
"\u0278\3\2\2\2\u0276\u0274\3\2\2\2\u0276\u0277\3\2\2\2\u0277\u0279\3\2"+
|
||||
"\2\2\u0278\u0276\3\2\2\2\u0279\u027b\t\7\2\2\u027a\u0276\3\2\2\2\u027a"+
|
||||
"\u027b\3\2\2\2\u027b\u027d\3\2\2\2\u027c\u027e\t\3\2\2\u027d\u027c\3\2"+
|
||||
"\2\2\u027d\u027e\3\2\2\2\u027en\3\2\2\2\u027f\u0280\7\62\2\2\u0280\u0281"+
|
||||
"\t\t\2\2\u0281\u0289\t\n\2\2\u0282\u0284\t\13\2\2\u0283\u0282\3\2\2\2"+
|
||||
"\u0284\u0287\3\2\2\2\u0285\u0283\3\2\2\2\u0285\u0286\3\2\2\2\u0286\u0288"+
|
||||
"\3\2\2\2\u0287\u0285\3\2\2\2\u0288\u028a\t\n\2\2\u0289\u0285\3\2\2\2\u0289"+
|
||||
"\u028a\3\2\2\2\u028a\u028c\3\2\2\2\u028b\u028d\t\3\2\2\u028c\u028b\3\2"+
|
||||
"\2\2\u028c\u028d\3\2\2\2\u028dp\3\2\2\2\u028e\u028f\5\u00edw\2\u028f\u0291"+
|
||||
"\7\60\2\2\u0290\u0292\5\u00edw\2\u0291\u0290\3\2\2\2\u0291\u0292\3\2\2"+
|
||||
"\2\u0292\u0296\3\2\2\2\u0293\u0294\7\60\2\2\u0294\u0296\5\u00edw\2\u0295"+
|
||||
"\u028e\3\2\2\2\u0295\u0293\3\2\2\2\u0296\u0298\3\2\2\2\u0297\u0299\5\u00e5"+
|
||||
"s\2\u0298\u0297\3\2\2\2\u0298\u0299\3\2\2\2\u0299\u029b\3\2\2\2\u029a"+
|
||||
"\u029c\t\f\2\2\u029b\u029a\3\2\2\2\u029b\u029c\3\2\2\2\u029c\u02a6\3\2"+
|
||||
"\2\2\u029d\u02a3\5\u00edw\2\u029e\u02a0\5\u00e5s\2\u029f\u02a1\t\f\2\2"+
|
||||
"\u02a0\u029f\3\2\2\2\u02a0\u02a1\3\2\2\2\u02a1\u02a4\3\2\2\2\u02a2\u02a4"+
|
||||
"\t\f\2\2\u02a3\u029e\3\2\2\2\u02a3\u02a2\3\2\2\2\u02a4\u02a6\3\2\2\2\u02a5"+
|
||||
"\u0295\3\2\2\2\u02a5\u029d\3\2\2\2\u02a6r\3\2\2\2\u02a7\u02a8\7\62\2\2"+
|
||||
"\u02a8\u02b2\t\4\2\2\u02a9\u02ab\5\u00e9u\2\u02aa\u02ac\7\60\2\2\u02ab"+
|
||||
"\u02aa\3\2\2\2\u02ab\u02ac\3\2\2\2\u02ac\u02b3\3\2\2\2\u02ad\u02af\5\u00e9"+
|
||||
"u\2\u02ae\u02ad\3\2\2\2\u02ae\u02af\3\2\2\2\u02af\u02b0\3\2\2\2\u02b0"+
|
||||
"\u02b1\7\60\2\2\u02b1\u02b3\5\u00e9u\2\u02b2\u02a9\3\2\2\2\u02b2\u02ae"+
|
||||
"\3\2\2\2\u02b3\u02b4\3\2\2\2\u02b4\u02b6\t\r\2\2\u02b5\u02b7\t\16\2\2"+
|
||||
"\u02b6\u02b5\3\2\2\2\u02b6\u02b7\3\2\2\2\u02b7\u02b8\3\2\2\2\u02b8\u02ba"+
|
||||
"\5\u00edw\2\u02b9\u02bb\t\f\2\2\u02ba\u02b9\3\2\2\2\u02ba\u02bb\3\2\2"+
|
||||
"\2\u02bbt\3\2\2\2\u02bc\u02bd\7v\2\2\u02bd\u02be\7t\2\2\u02be\u02bf\7"+
|
||||
"w\2\2\u02bf\u02c6\7g\2\2\u02c0\u02c1\7h\2\2\u02c1\u02c2\7c\2\2\u02c2\u02c3"+
|
||||
"\7n\2\2\u02c3\u02c4\7u\2\2\u02c4\u02c6\7g\2\2\u02c5\u02bc\3\2\2\2\u02c5"+
|
||||
"\u02c0\3\2\2\2\u02c6v\3\2\2\2\u02c7\u02ca\7)\2\2\u02c8\u02cb\n\17\2\2"+
|
||||
"\u02c9\u02cb\5\u00e7t\2\u02ca\u02c8\3\2\2\2\u02ca\u02c9\3\2\2\2\u02cb"+
|
||||
"\u02cc\3\2\2\2\u02cc\u02cd\7)\2\2\u02cdx\3\2\2\2\u02ce\u02d3\7$\2\2\u02cf"+
|
||||
"\u02d2\n\20\2\2\u02d0\u02d2\5\u00e7t\2\u02d1\u02cf\3\2\2\2\u02d1\u02d0"+
|
||||
"\3\2\2\2\u02d2\u02d5\3\2\2\2\u02d3\u02d1\3\2\2\2\u02d3\u02d4\3\2\2\2\u02d4"+
|
||||
"\u02d6\3\2\2\2\u02d5\u02d3\3\2\2\2\u02d6\u02d7\7$\2\2\u02d7z\3\2\2\2\u02d8"+
|
||||
"\u02d9\7p\2\2\u02d9\u02da\7w\2\2\u02da\u02db\7n\2\2\u02db\u02dc\7n\2\2"+
|
||||
"\u02dc|\3\2\2\2\u02dd\u02de\7*\2\2\u02de~\3\2\2\2\u02df\u02e0\7+\2\2\u02e0"+
|
||||
"\u0080\3\2\2\2\u02e1\u02e2\7}\2\2\u02e2\u0082\3\2\2\2\u02e3\u02e4\7\177"+
|
||||
"\2\2\u02e4\u0084\3\2\2\2\u02e5\u02e6\7]\2\2\u02e6\u0086\3\2\2\2\u02e7"+
|
||||
"\u02e8\7_\2\2\u02e8\u0088\3\2\2\2\u02e9\u02ea\7=\2\2\u02ea\u008a\3\2\2"+
|
||||
"\2\u02eb\u02ec\7.\2\2\u02ec\u008c\3\2\2\2\u02ed\u02ee\7\60\2\2\u02ee\u008e"+
|
||||
"\3\2\2\2\u02ef\u02f0\7?\2\2\u02f0\u0090\3\2\2\2\u02f1\u02f2\7@\2\2\u02f2"+
|
||||
"\u0092\3\2\2\2\u02f3\u02f4\7>\2\2\u02f4\u0094\3\2\2\2\u02f5\u02f6\7#\2"+
|
||||
"\2\u02f6\u0096\3\2\2\2\u02f7\u02f8\7\u0080\2\2\u02f8\u0098\3\2\2\2\u02f9"+
|
||||
"\u02fa\7A\2\2\u02fa\u009a\3\2\2\2\u02fb\u02fc\7<\2\2\u02fc\u009c\3\2\2"+
|
||||
"\2\u02fd\u02fe\7?\2\2\u02fe\u02ff\7?\2\2\u02ff\u009e\3\2\2\2\u0300\u0301"+
|
||||
"\7>\2\2\u0301\u0302\7?\2\2\u0302\u00a0\3\2\2\2\u0303\u0304\7@\2\2\u0304"+
|
||||
"\u0305\7?\2\2\u0305\u00a2\3\2\2\2\u0306\u0307\7#\2\2\u0307\u0308\7?\2"+
|
||||
"\2\u0308\u00a4\3\2\2\2\u0309\u030a\7(\2\2\u030a\u030b\7(\2\2\u030b\u00a6"+
|
||||
"\3\2\2\2\u030c\u030d\7~\2\2\u030d\u030e\7~\2\2\u030e\u00a8\3\2\2\2\u030f"+
|
||||
"\u0310\7-\2\2\u0310\u0311\7-\2\2\u0311\u00aa\3\2\2\2\u0312\u0313\7/\2"+
|
||||
"\2\u0313\u0314\7/\2\2\u0314\u00ac\3\2\2\2\u0315\u0316\7-\2\2\u0316\u00ae"+
|
||||
"\3\2\2\2\u0317\u0318\7/\2\2\u0318\u00b0\3\2\2\2\u0319\u031a\7,\2\2\u031a"+
|
||||
"\u00b2\3\2\2\2\u031b\u031c\7\61\2\2\u031c\u00b4\3\2\2\2\u031d\u031e\7"+
|
||||
"(\2\2\u031e\u00b6\3\2\2\2\u031f\u0320\7~\2\2\u0320\u00b8\3\2\2\2\u0321"+
|
||||
"\u0322\7`\2\2\u0322\u00ba\3\2\2\2\u0323\u0324\7\'\2\2\u0324\u00bc\3\2"+
|
||||
"\2\2\u0325\u0326\7-\2\2\u0326\u0327\7?\2\2\u0327\u00be\3\2\2\2\u0328\u0329"+
|
||||
"\7/\2\2\u0329\u032a\7?\2\2\u032a\u00c0\3\2\2\2\u032b\u032c\7,\2\2\u032c"+
|
||||
"\u032d\7?\2\2\u032d\u00c2\3\2\2\2\u032e\u032f\7\61\2\2\u032f\u0330\7?"+
|
||||
"\2\2\u0330\u00c4\3\2\2\2\u0331\u0332\7(\2\2\u0332\u0333\7?\2\2\u0333\u00c6"+
|
||||
"\3\2\2\2\u0334\u0335\7~\2\2\u0335\u0336\7?\2\2\u0336\u00c8\3\2\2\2\u0337"+
|
||||
"\u0338\7`\2\2\u0338\u0339\7?\2\2\u0339\u00ca\3\2\2\2\u033a\u033b\7\'\2"+
|
||||
"\2\u033b\u033c\7?\2\2\u033c\u00cc\3\2\2\2\u033d\u033e\7>\2\2\u033e\u033f"+
|
||||
"\7>\2\2\u033f\u0340\7?\2\2\u0340\u00ce\3\2\2\2\u0341\u0342\7@\2\2\u0342"+
|
||||
"\u0343\7@\2\2\u0343\u0344\7?\2\2\u0344\u00d0\3\2\2\2\u0345\u0346\7@\2"+
|
||||
"\2\u0346\u0347\7@\2\2\u0347\u0348\7@\2\2\u0348\u0349\7?\2\2\u0349\u00d2"+
|
||||
"\3\2\2\2\u034a\u034b\7/\2\2\u034b\u034c\7@\2\2\u034c\u00d4\3\2\2\2\u034d"+
|
||||
"\u034e\7<\2\2\u034e\u034f\7<\2\2\u034f\u00d6\3\2\2\2\u0350\u0351\7B\2"+
|
||||
"\2\u0351\u00d8\3\2\2\2\u0352\u0353\7\60\2\2\u0353\u0354\7\60\2\2\u0354"+
|
||||
"\u0355\7\60\2\2\u0355\u00da\3\2\2\2\u0356\u0358\t\21\2\2\u0357\u0356\3"+
|
||||
"\2\2\2\u0358\u0359\3\2\2\2\u0359\u0357\3\2\2\2\u0359\u035a\3\2\2\2\u035a"+
|
||||
"\u035b\3\2\2\2\u035b\u035c\bn\2\2\u035c\u00dc\3\2\2\2\u035d\u035e\7\61"+
|
||||
"\2\2\u035e\u035f\7,\2\2\u035f\u0360\7,\2\2\u0360\u0364\3\2\2\2\u0361\u0363"+
|
||||
"\13\2\2\2\u0362\u0361\3\2\2\2\u0363\u0366\3\2\2\2\u0364\u0365\3\2\2\2"+
|
||||
"\u0364\u0362\3\2\2\2\u0365\u0367\3\2\2\2\u0366\u0364\3\2\2\2\u0367\u0368"+
|
||||
"\7,\2\2\u0368\u0369\7\61\2\2\u0369\u036a\3\2\2\2\u036a\u036b\bo\2\2\u036b"+
|
||||
"\u00de\3\2\2\2\u036c\u036d\7\61\2\2\u036d\u036e\7,\2\2\u036e\u0372\3\2"+
|
||||
"\2\2\u036f\u0371\13\2\2\2\u0370\u036f\3\2\2\2\u0371\u0374\3\2\2\2\u0372"+
|
||||
"\u0373\3\2\2\2\u0372\u0370\3\2\2\2\u0373\u0375\3\2\2\2\u0374\u0372\3\2"+
|
||||
"\2\2\u0375\u0376\7,\2\2\u0376\u0377\7\61\2\2\u0377\u0378\3\2\2\2\u0378"+
|
||||
"\u0379\bp\2\2\u0379\u00e0\3\2\2\2\u037a\u037b\7\61\2\2\u037b\u037c\7\61"+
|
||||
"\2\2\u037c\u0380\3\2\2\2\u037d\u037f\n\22\2\2\u037e\u037d\3\2\2\2\u037f"+
|
||||
"\u0382\3\2\2\2\u0380\u037e\3\2\2\2\u0380\u0381\3\2\2\2\u0381\u0383\3\2"+
|
||||
"\2\2\u0382\u0380\3\2\2\2\u0383\u0384\bq\2\2\u0384\u00e2\3\2\2\2\u0385"+
|
||||
"\u0389\5\u00f1y\2\u0386\u0388\5\u00efx\2\u0387\u0386\3\2\2\2\u0388\u038b"+
|
||||
"\3\2\2\2\u0389\u0387\3\2\2\2\u0389\u038a\3\2\2\2\u038a\u00e4\3\2\2\2\u038b"+
|
||||
"\u0389\3\2\2\2\u038c\u038e\t\23\2\2\u038d\u038f\t\16\2\2\u038e\u038d\3"+
|
||||
"\2\2\2\u038e\u038f\3\2\2\2\u038f\u0390\3\2\2\2\u0390\u0391\5\u00edw\2"+
|
||||
"\u0391\u00e6\3\2\2\2\u0392\u0393\7^\2\2\u0393\u03a8\t\24\2\2\u0394\u0399"+
|
||||
"\7^\2\2\u0395\u0397\t\25\2\2\u0396\u0395\3\2\2\2\u0396\u0397\3\2\2\2\u0397"+
|
||||
"\u0398\3\2\2\2\u0398\u039a\t\7\2\2\u0399\u0396\3\2\2\2\u0399\u039a\3\2"+
|
||||
"\2\2\u039a\u039b\3\2\2\2\u039b\u03a8\t\7\2\2\u039c\u039e\7^\2\2\u039d"+
|
||||
"\u039f\7w\2\2\u039e\u039d\3\2\2\2\u039f\u03a0\3\2\2\2\u03a0\u039e\3\2"+
|
||||
"\2\2\u03a0\u03a1\3\2\2\2\u03a1\u03a2\3\2\2\2\u03a2\u03a3\5\u00ebv\2\u03a3"+
|
||||
"\u03a4\5\u00ebv\2\u03a4\u03a5\5\u00ebv\2\u03a5\u03a6\5\u00ebv\2\u03a6"+
|
||||
"\u03a8\3\2\2\2\u03a7\u0392\3\2\2\2\u03a7\u0394\3\2\2\2\u03a7\u039c\3\2"+
|
||||
"\2\2\u03a8\u00e8\3\2\2\2\u03a9\u03b2\5\u00ebv\2\u03aa\u03ad\5\u00ebv\2"+
|
||||
"\u03ab\u03ad\7a\2\2\u03ac\u03aa\3\2\2\2\u03ac\u03ab\3\2\2\2\u03ad\u03b0"+
|
||||
"\3\2\2\2\u03ae\u03ac\3\2\2\2\u03ae\u03af\3\2\2\2\u03af\u03b1\3\2\2\2\u03b0"+
|
||||
"\u03ae\3\2\2\2\u03b1\u03b3\5\u00ebv\2\u03b2\u03ae\3\2\2\2\u03b2\u03b3"+
|
||||
"\3\2\2\2\u03b3\u00ea\3\2\2\2\u03b4\u03b5\t\5\2\2\u03b5\u00ec\3\2\2\2\u03b6"+
|
||||
"\u03be\t\26\2\2\u03b7\u03b9\t\27\2\2\u03b8\u03b7\3\2\2\2\u03b9\u03bc\3"+
|
||||
"\2\2\2\u03ba\u03b8\3\2\2\2\u03ba\u03bb\3\2\2\2\u03bb\u03bd\3\2\2\2\u03bc"+
|
||||
"\u03ba\3\2\2\2\u03bd\u03bf\t\26\2\2\u03be\u03ba\3\2\2\2\u03be\u03bf\3"+
|
||||
"\2\2\2\u03bf\u00ee\3\2\2\2\u03c0\u03c3\5\u00f1y\2\u03c1\u03c3\t\26\2\2"+
|
||||
"\u03c2\u03c0\3\2\2\2\u03c2\u03c1\3\2\2\2\u03c3\u00f0\3\2\2\2\u03c4\u03c9"+
|
||||
"\t\30\2\2\u03c5\u03c9\n\31\2\2\u03c6\u03c7\t\32\2\2\u03c7\u03c9\t\33\2"+
|
||||
"\2\u03c8\u03c4\3\2\2\2\u03c8\u03c5\3\2\2\2\u03c8\u03c6\3\2\2\2\u03c9\u00f2"+
|
||||
"\3\2\2\2\63\2\u024d\u0252\u0255\u0257\u025a\u0262\u0266\u0269\u026f\u0276"+
|
||||
"\u027a\u027d\u0285\u0289\u028c\u0291\u0295\u0298\u029b\u02a0\u02a3\u02a5"+
|
||||
"\u02ab\u02ae\u02b2\u02b6\u02ba\u02c5\u02ca\u02d1\u02d3\u0359\u0364\u0372"+
|
||||
"\u0380\u0389\u038e\u0396\u0399\u03a0\u03a7\u03ac\u03ae\u03b2\u03ba\u03be"+
|
||||
"\u03c2\u03c8\3\2\3\2";
|
||||
public static final ATN _ATN =
|
||||
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
|
||||
static {
|
||||
|
||||
@@ -107,9 +107,10 @@ COLONCOLON=106
|
||||
AT=107
|
||||
ELLIPSIS=108
|
||||
WS=109
|
||||
COMMENT=110
|
||||
LINE_COMMENT=111
|
||||
IDENTIFIER=112
|
||||
BLOCK_COMMENT=110
|
||||
JAVADOC_COMMENT=111
|
||||
LINE_COMMENT=112
|
||||
IDENTIFIER=113
|
||||
'abstract'=1
|
||||
'assert'=2
|
||||
'boolean'=3
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -33,7 +33,8 @@ public class JavaParser extends Parser {
|
||||
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;
|
||||
AT=107, ELLIPSIS=108, WS=109, BLOCK_COMMENT=110, JAVADOC_COMMENT=111,
|
||||
LINE_COMMENT=112, IDENTIFIER=113;
|
||||
public static final int
|
||||
RULE_compilationUnit = 0, RULE_packageDeclaration = 1, RULE_importDeclaration = 2,
|
||||
RULE_typeDeclaration = 3, RULE_modifier = 4, RULE_classOrInterfaceModifier = 5,
|
||||
@@ -140,7 +141,8 @@ public class JavaParser extends Parser {
|
||||
"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"
|
||||
"COLONCOLON", "AT", "ELLIPSIS", "WS", "BLOCK_COMMENT", "JAVADOC_COMMENT",
|
||||
"LINE_COMMENT", "IDENTIFIER"
|
||||
};
|
||||
}
|
||||
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
|
||||
@@ -9641,7 +9643,7 @@ public class JavaParser extends Parser {
|
||||
}
|
||||
|
||||
public static final String _serializedATN =
|
||||
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3r\u059f\4\2\t\2\4"+
|
||||
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3s\u059f\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"+
|
||||
@@ -9797,7 +9799,7 @@ public class JavaParser extends Parser {
|
||||
"\2\2\u0118\u0114\3\2\2\2\u0118\u0115\3\2\2\2\u0118\u0116\3\2\2\2\u0118"+
|
||||
"\u0117\3\2\2\2\u0119\r\3\2\2\2\u011a\u011d\7\24\2\2\u011b\u011d\5h\65"+
|
||||
"\2\u011c\u011a\3\2\2\2\u011c\u011b\3\2\2\2\u011d\17\3\2\2\2\u011e\u011f"+
|
||||
"\7\13\2\2\u011f\u0121\7r\2\2\u0120\u0122\5\22\n\2\u0121\u0120\3\2\2\2"+
|
||||
"\7\13\2\2\u011f\u0121\7s\2\2\u0120\u0122\5\22\n\2\u0121\u0120\3\2\2\2"+
|
||||
"\u0121\u0122\3\2\2\2\u0122\u0125\3\2\2\2\u0123\u0124\7\23\2\2\u0124\u0126"+
|
||||
"\5\u00c8e\2\u0125\u0123\3\2\2\2\u0125\u0126\3\2\2\2\u0126\u0129\3\2\2"+
|
||||
"\2\u0127\u0128\7\32\2\2\u0128\u012a\5\u00c6d\2\u0129\u0127\3\2\2\2\u0129"+
|
||||
@@ -9807,14 +9809,14 @@ public class JavaParser extends Parser {
|
||||
"\u0133\u0134\3\2\2\2\u0134\u0136\3\2\2\2\u0135\u0133\3\2\2\2\u0136\u0137"+
|
||||
"\7J\2\2\u0137\23\3\2\2\2\u0138\u013a\5h\65\2\u0139\u0138\3\2\2\2\u013a"+
|
||||
"\u013d\3\2\2\2\u013b\u0139\3\2\2\2\u013b\u013c\3\2\2\2\u013c\u013e\3\2"+
|
||||
"\2\2\u013d\u013b\3\2\2\2\u013e\u0147\7r\2\2\u013f\u0143\7\23\2\2\u0140"+
|
||||
"\2\2\u013d\u013b\3\2\2\2\u013e\u0147\7s\2\2\u013f\u0143\7\23\2\2\u0140"+
|
||||
"\u0142\5h\65\2\u0141\u0140\3\2\2\2\u0142\u0145\3\2\2\2\u0143\u0141\3\2"+
|
||||
"\2\2\u0143\u0144\3\2\2\2\u0144\u0146\3\2\2\2\u0145\u0143\3\2\2\2\u0146"+
|
||||
"\u0148\5\26\f\2\u0147\u013f\3\2\2\2\u0147\u0148\3\2\2\2\u0148\25\3\2\2"+
|
||||
"\2\u0149\u014e\5\u00c8e\2\u014a\u014b\7\\\2\2\u014b\u014d\5\u00c8e\2\u014c"+
|
||||
"\u014a\3\2\2\2\u014d\u0150\3\2\2\2\u014e\u014c\3\2\2\2\u014e\u014f\3\2"+
|
||||
"\2\2\u014f\27\3\2\2\2\u0150\u014e\3\2\2\2\u0151\u0152\7\22\2\2\u0152\u0155"+
|
||||
"\7r\2\2\u0153\u0154\7\32\2\2\u0154\u0156\5\u00c6d\2\u0155\u0153\3\2\2"+
|
||||
"\7s\2\2\u0153\u0154\7\32\2\2\u0154\u0156\5\u00c6d\2\u0155\u0153\3\2\2"+
|
||||
"\2\u0155\u0156\3\2\2\2\u0156\u0157\3\2\2\2\u0157\u0159\7B\2\2\u0158\u015a"+
|
||||
"\5\32\16\2\u0159\u0158\3\2\2\2\u0159\u015a\3\2\2\2\u015a\u015c\3\2\2\2"+
|
||||
"\u015b\u015d\7G\2\2\u015c\u015b\3\2\2\2\u015c\u015d\3\2\2\2\u015d\u015f"+
|
||||
@@ -9824,12 +9826,12 @@ public class JavaParser extends Parser {
|
||||
"\u0167\u016a\3\2\2\2\u0168\u0166\3\2\2\2\u0168\u0169\3\2\2\2\u0169\33"+
|
||||
"\3\2\2\2\u016a\u0168\3\2\2\2\u016b\u016d\5h\65\2\u016c\u016b\3\2\2\2\u016d"+
|
||||
"\u0170\3\2\2\2\u016e\u016c\3\2\2\2\u016e\u016f\3\2\2\2\u016f\u0171\3\2"+
|
||||
"\2\2\u0170\u016e\3\2\2\2\u0171\u0173\7r\2\2\u0172\u0174\5\u00d2j\2\u0173"+
|
||||
"\2\2\u0170\u016e\3\2\2\2\u0171\u0173\7s\2\2\u0172\u0174\5\u00d2j\2\u0173"+
|
||||
"\u0172\3\2\2\2\u0173\u0174\3\2\2\2\u0174\u0176\3\2\2\2\u0175\u0177\5\""+
|
||||
"\22\2\u0176\u0175\3\2\2\2\u0176\u0177\3\2\2\2\u0177\35\3\2\2\2\u0178\u017c"+
|
||||
"\7F\2\2\u0179\u017b\5&\24\2\u017a\u0179\3\2\2\2\u017b\u017e\3\2\2\2\u017c"+
|
||||
"\u017a\3\2\2\2\u017c\u017d\3\2\2\2\u017d\37\3\2\2\2\u017e\u017c\3\2\2"+
|
||||
"\2\u017f\u0180\7\36\2\2\u0180\u0182\7r\2\2\u0181\u0183\5\22\n\2\u0182"+
|
||||
"\2\u017f\u0180\7\36\2\2\u0180\u0182\7s\2\2\u0181\u0183\5\22\n\2\u0182"+
|
||||
"\u0181\3\2\2\2\u0182\u0183\3\2\2\2\u0183\u0186\3\2\2\2\u0184\u0185\7\23"+
|
||||
"\2\2\u0185\u0187\5\u00c6d\2\u0186\u0184\3\2\2\2\u0186\u0187\3\2\2\2\u0187"+
|
||||
"\u0188\3\2\2\2\u0188\u0189\5$\23\2\u0189!\3\2\2\2\u018a\u018e\7B\2\2\u018b"+
|
||||
@@ -9849,7 +9851,7 @@ public class JavaParser extends Parser {
|
||||
"\3\2\2\2\u01b3\u01ab\3\2\2\2\u01b3\u01ac\3\2\2\2\u01b3\u01ad\3\2\2\2\u01b3"+
|
||||
"\u01ae\3\2\2\2\u01b3\u01af\3\2\2\2\u01b3\u01b0\3\2\2\2\u01b3\u01b1\3\2"+
|
||||
"\2\2\u01b3\u01b2\3\2\2\2\u01b4)\3\2\2\2\u01b5\u01b6\5.\30\2\u01b6\u01b7"+
|
||||
"\7r\2\2\u01b7\u01bc\5V,\2\u01b8\u01b9\7D\2\2\u01b9\u01bb\7E\2\2\u01ba"+
|
||||
"\7s\2\2\u01b7\u01bc\5V,\2\u01b8\u01b9\7D\2\2\u01b9\u01bb\7E\2\2\u01ba"+
|
||||
"\u01b8\3\2\2\2\u01bb\u01be\3\2\2\2\u01bc\u01ba\3\2\2\2\u01bc\u01bd\3\2"+
|
||||
"\2\2\u01bd\u01c1\3\2\2\2\u01be\u01bc\3\2\2\2\u01bf\u01c0\7/\2\2\u01c0"+
|
||||
"\u01c2\5T+\2\u01c1\u01bf\3\2\2\2\u01c1\u01c2\3\2\2\2\u01c2\u01c3\3\2\2"+
|
||||
@@ -9858,7 +9860,7 @@ public class JavaParser extends Parser {
|
||||
"\5\u00c8e\2\u01ca\u01cc\7\63\2\2\u01cb\u01c9\3\2\2\2\u01cb\u01ca\3\2\2"+
|
||||
"\2\u01cc/\3\2\2\2\u01cd\u01ce\5\22\n\2\u01ce\u01cf\5*\26\2\u01cf\61\3"+
|
||||
"\2\2\2\u01d0\u01d1\5\22\n\2\u01d1\u01d2\5\64\33\2\u01d2\63\3\2\2\2\u01d3"+
|
||||
"\u01d4\7r\2\2\u01d4\u01d7\5V,\2\u01d5\u01d6\7/\2\2\u01d6\u01d8\5T+\2\u01d7"+
|
||||
"\u01d4\7s\2\2\u01d4\u01d7\5V,\2\u01d5\u01d6\7/\2\2\u01d6\u01d8\5T+\2\u01d7"+
|
||||
"\u01d5\3\2\2\2\u01d7\u01d8\3\2\2\2\u01d8\u01d9\3\2\2\2\u01d9\u01da\5\u0082"+
|
||||
"B\2\u01da\65\3\2\2\2\u01db\u01dc\5\u00c8e\2\u01dc\u01dd\5F$\2\u01dd\u01de"+
|
||||
"\7F\2\2\u01de\67\3\2\2\2\u01df\u01e1\5\n\6\2\u01e0\u01df\3\2\2\2\u01e1"+
|
||||
@@ -9872,7 +9874,7 @@ public class JavaParser extends Parser {
|
||||
"\5\u00c8e\2\u01f3\u01f8\5> \2\u01f4\u01f5\7G\2\2\u01f5\u01f7\5> \2\u01f6"+
|
||||
"\u01f4\3\2\2\2\u01f7\u01fa\3\2\2\2\u01f8\u01f6\3\2\2\2\u01f8\u01f9\3\2"+
|
||||
"\2\2\u01f9\u01fb\3\2\2\2\u01fa\u01f8\3\2\2\2\u01fb\u01fc\7F\2\2\u01fc"+
|
||||
"=\3\2\2\2\u01fd\u0202\7r\2\2\u01fe\u01ff\7D\2\2\u01ff\u0201\7E\2\2\u0200"+
|
||||
"=\3\2\2\2\u01fd\u0202\7s\2\2\u01fe\u01ff\7D\2\2\u01ff\u0201\7E\2\2\u0200"+
|
||||
"\u01fe\3\2\2\2\u0201\u0204\3\2\2\2\u0202\u0200\3\2\2\2\u0202\u0203\3\2"+
|
||||
"\2\2\u0203\u0205\3\2\2\2\u0204\u0202\3\2\2\2\u0205\u0206\7I\2\2\u0206"+
|
||||
"\u0207\5L\'\2\u0207?\3\2\2\2\u0208\u020a\5B\"\2\u0209\u0208\3\2\2\2\u020a"+
|
||||
@@ -9881,7 +9883,7 @@ public class JavaParser extends Parser {
|
||||
"\u0212\5h\65\2\u0211\u0210\3\2\2\2\u0212\u0215\3\2\2\2\u0213\u0211\3\2"+
|
||||
"\2\2\u0213\u0214\3\2\2\2\u0214\u0216\3\2\2\2\u0215\u0213\3\2\2\2\u0216"+
|
||||
"\u0217\5.\30\2\u0217\u0219\3\2\2\2\u0218\u020e\3\2\2\2\u0218\u020f\3\2"+
|
||||
"\2\2\u0219\u021a\3\2\2\2\u021a\u021b\7r\2\2\u021b\u0220\5V,\2\u021c\u021d"+
|
||||
"\2\2\u0219\u021a\3\2\2\2\u021a\u021b\7s\2\2\u021b\u0220\5V,\2\u021c\u021d"+
|
||||
"\7D\2\2\u021d\u021f\7E\2\2\u021e\u021c\3\2\2\2\u021f\u0222\3\2\2\2\u0220"+
|
||||
"\u021e\3\2\2\2\u0220\u0221\3\2\2\2\u0221\u0225\3\2\2\2\u0222\u0220\3\2"+
|
||||
"\2\2\u0223\u0224\7/\2\2\u0224\u0226\5T+\2\u0225\u0223\3\2\2\2\u0225\u0226"+
|
||||
@@ -9894,7 +9896,7 @@ public class JavaParser extends Parser {
|
||||
"\u0235\3\2\2\2\u0238\u023b\3\2\2\2\u0239\u0237\3\2\2\2\u0239\u023a\3\2"+
|
||||
"\2\2\u023aG\3\2\2\2\u023b\u0239\3\2\2\2\u023c\u023f\5J&\2\u023d\u023e"+
|
||||
"\7I\2\2\u023e\u0240\5L\'\2\u023f\u023d\3\2\2\2\u023f\u0240\3\2\2\2\u0240"+
|
||||
"I\3\2\2\2\u0241\u0246\7r\2\2\u0242\u0243\7D\2\2\u0243\u0245\7E\2\2\u0244"+
|
||||
"I\3\2\2\2\u0241\u0246\7s\2\2\u0242\u0243\7D\2\2\u0243\u0245\7E\2\2\u0244"+
|
||||
"\u0242\3\2\2\2\u0245\u0248\3\2\2\2\u0246\u0244\3\2\2\2\u0246\u0247\3\2"+
|
||||
"\2\2\u0247K\3\2\2\2\u0248\u0246\3\2\2\2\u0249\u024c\5N(\2\u024a\u024c"+
|
||||
"\5\u00a8U\2\u024b\u0249\3\2\2\2\u024b\u024a\3\2\2\2\u024cM\3\2\2\2\u024d"+
|
||||
@@ -9903,9 +9905,9 @@ public class JavaParser extends Parser {
|
||||
"\3\2\2\2\u0254\u0257\3\2\2\2\u0255\u0253\3\2\2\2\u0256\u0258\7G\2\2\u0257"+
|
||||
"\u0256\3\2\2\2\u0257\u0258\3\2\2\2\u0258\u025a\3\2\2\2\u0259\u024e\3\2"+
|
||||
"\2\2\u0259\u025a\3\2\2\2\u025a\u025b\3\2\2\2\u025b\u025c\7C\2\2\u025c"+
|
||||
"O\3\2\2\2\u025d\u025f\7r\2\2\u025e\u0260\5\u00ccg\2\u025f\u025e\3\2\2"+
|
||||
"O\3\2\2\2\u025d\u025f\7s\2\2\u025e\u0260\5\u00ccg\2\u025f\u025e\3\2\2"+
|
||||
"\2\u025f\u0260\3\2\2\2\u0260\u0268\3\2\2\2\u0261\u0262\7H\2\2\u0262\u0264"+
|
||||
"\7r\2\2\u0263\u0265\5\u00ccg\2\u0264\u0263\3\2\2\2\u0264\u0265\3\2\2\2"+
|
||||
"\7s\2\2\u0263\u0265\5\u00ccg\2\u0264\u0263\3\2\2\2\u0264\u0265\3\2\2\2"+
|
||||
"\u0265\u0267\3\2\2\2\u0266\u0261\3\2\2\2\u0267\u026a\3\2\2\2\u0268\u0266"+
|
||||
"\3\2\2\2\u0268\u0269\3\2\2\2\u0269Q\3\2\2\2\u026a\u0268\3\2\2\2\u026b"+
|
||||
"\u0278\5\u00c8e\2\u026c\u026e\5h\65\2\u026d\u026c\3\2\2\2\u026e\u0271"+
|
||||
@@ -9929,24 +9931,24 @@ public class JavaParser extends Parser {
|
||||
"\3\2\2\2\u02a3\u02a5\3\2\2\2\u02a4\u02a2\3\2\2\2\u02a5\u02a9\5\u00c8e"+
|
||||
"\2\u02a6\u02a8\5h\65\2\u02a7\u02a6\3\2\2\2\u02a8\u02ab\3\2\2\2\u02a9\u02a7"+
|
||||
"\3\2\2\2\u02a9\u02aa\3\2\2\2\u02aa\u02ac\3\2\2\2\u02ab\u02a9\3\2\2\2\u02ac"+
|
||||
"\u02ad\7n\2\2\u02ad\u02ae\5J&\2\u02ae]\3\2\2\2\u02af\u02b4\7r\2\2\u02b0"+
|
||||
"\u02b1\7H\2\2\u02b1\u02b3\7r\2\2\u02b2\u02b0\3\2\2\2\u02b3\u02b6\3\2\2"+
|
||||
"\u02ad\7n\2\2\u02ad\u02ae\5J&\2\u02ae]\3\2\2\2\u02af\u02b4\7s\2\2\u02b0"+
|
||||
"\u02b1\7H\2\2\u02b1\u02b3\7s\2\2\u02b2\u02b0\3\2\2\2\u02b3\u02b6\3\2\2"+
|
||||
"\2\u02b4\u02b2\3\2\2\2\u02b4\u02b5\3\2\2\2\u02b5_\3\2\2\2\u02b6\u02b4"+
|
||||
"\3\2\2\2\u02b7\u02be\5b\62\2\u02b8\u02be\5d\63\2\u02b9\u02be\7=\2\2\u02ba"+
|
||||
"\u02be\7>\2\2\u02bb\u02be\7<\2\2\u02bc\u02be\7?\2\2\u02bd\u02b7\3\2\2"+
|
||||
"\2\u02bd\u02b8\3\2\2\2\u02bd\u02b9\3\2\2\2\u02bd\u02ba\3\2\2\2\u02bd\u02bb"+
|
||||
"\3\2\2\2\u02bd\u02bc\3\2\2\2\u02bea\3\2\2\2\u02bf\u02c0\t\3\2\2\u02c0"+
|
||||
"c\3\2\2\2\u02c1\u02c2\t\4\2\2\u02c2e\3\2\2\2\u02c3\u02c4\7r\2\2\u02c4"+
|
||||
"c\3\2\2\2\u02c1\u02c2\t\4\2\2\u02c2e\3\2\2\2\u02c3\u02c4\7s\2\2\u02c4"+
|
||||
"\u02c6\7H\2\2\u02c5\u02c3\3\2\2\2\u02c6\u02c9\3\2\2\2\u02c7\u02c5\3\2"+
|
||||
"\2\2\u02c7\u02c8\3\2\2\2\u02c8\u02ca\3\2\2\2\u02c9\u02c7\3\2\2\2\u02ca"+
|
||||
"\u02cb\7m\2\2\u02cb\u02cc\7r\2\2\u02ccg\3\2\2\2\u02cd\u02ce\7m\2\2\u02ce"+
|
||||
"\u02cb\7m\2\2\u02cb\u02cc\7s\2\2\u02ccg\3\2\2\2\u02cd\u02ce\7m\2\2\u02ce"+
|
||||
"\u02d1\5^\60\2\u02cf\u02d1\5f\64\2\u02d0\u02cd\3\2\2\2\u02d0\u02cf\3\2"+
|
||||
"\2\2\u02d1\u02d8\3\2\2\2\u02d2\u02d5\7@\2\2\u02d3\u02d6\5j\66\2\u02d4"+
|
||||
"\u02d6\5n8\2\u02d5\u02d3\3\2\2\2\u02d5\u02d4\3\2\2\2\u02d5\u02d6\3\2\2"+
|
||||
"\2\u02d6\u02d7\3\2\2\2\u02d7\u02d9\7A\2\2\u02d8\u02d2\3\2\2\2\u02d8\u02d9"+
|
||||
"\3\2\2\2\u02d9i\3\2\2\2\u02da\u02df\5l\67\2\u02db\u02dc\7G\2\2\u02dc\u02de"+
|
||||
"\5l\67\2\u02dd\u02db\3\2\2\2\u02de\u02e1\3\2\2\2\u02df\u02dd\3\2\2\2\u02df"+
|
||||
"\u02e0\3\2\2\2\u02e0k\3\2\2\2\u02e1\u02df\3\2\2\2\u02e2\u02e3\7r\2\2\u02e3"+
|
||||
"\u02e0\3\2\2\2\u02e0k\3\2\2\2\u02e1\u02df\3\2\2\2\u02e2\u02e3\7s\2\2\u02e3"+
|
||||
"\u02e4\7I\2\2\u02e4\u02e5\5n8\2\u02e5m\3\2\2\2\u02e6\u02ea\5\u00a8U\2"+
|
||||
"\u02e7\u02ea\5h\65\2\u02e8\u02ea\5p9\2\u02e9\u02e6\3\2\2\2\u02e9\u02e7"+
|
||||
"\3\2\2\2\u02e9\u02e8\3\2\2\2\u02eao\3\2\2\2\u02eb\u02f4\7B\2\2\u02ec\u02f1"+
|
||||
@@ -9955,7 +9957,7 @@ public class JavaParser extends Parser {
|
||||
"\2\2\u02f3\u02f1\3\2\2\2\u02f4\u02ec\3\2\2\2\u02f4\u02f5\3\2\2\2\u02f5"+
|
||||
"\u02f7\3\2\2\2\u02f6\u02f8\7G\2\2\u02f7\u02f6\3\2\2\2\u02f7\u02f8\3\2"+
|
||||
"\2\2\u02f8\u02f9\3\2\2\2\u02f9\u02fa\7C\2\2\u02faq\3\2\2\2\u02fb\u02fc"+
|
||||
"\7m\2\2\u02fc\u02fd\7\36\2\2\u02fd\u02fe\7r\2\2\u02fe\u02ff\5t;\2\u02ff"+
|
||||
"\7m\2\2\u02fc\u02fd\7\36\2\2\u02fd\u02fe\7s\2\2\u02fe\u02ff\5t;\2\u02ff"+
|
||||
"s\3\2\2\2\u0300\u0304\7B\2\2\u0301\u0303\5v<\2\u0302\u0301\3\2\2\2\u0303"+
|
||||
"\u0306\3\2\2\2\u0304\u0302\3\2\2\2\u0304\u0305\3\2\2\2\u0305\u0307\3\2"+
|
||||
"\2\2\u0306\u0304\3\2\2\2\u0307\u0308\7C\2\2\u0308u\3\2\2\2\u0309\u030b"+
|
||||
@@ -9971,7 +9973,7 @@ public class JavaParser extends Parser {
|
||||
"\2\u0325\u0324\3\2\2\2\u0325\u0326\3\2\2\2\u0326\u0328\3\2\2\2\u0327\u0313"+
|
||||
"\3\2\2\2\u0327\u0317\3\2\2\2\u0327\u031b\3\2\2\2\u0327\u031f\3\2\2\2\u0327"+
|
||||
"\u0323\3\2\2\2\u0328y\3\2\2\2\u0329\u032c\5|?\2\u032a\u032c\5~@\2\u032b"+
|
||||
"\u0329\3\2\2\2\u032b\u032a\3\2\2\2\u032c{\3\2\2\2\u032d\u032e\7r\2\2\u032e"+
|
||||
"\u0329\3\2\2\2\u032b\u032a\3\2\2\2\u032c{\3\2\2\2\u032d\u032e\7s\2\2\u032e"+
|
||||
"\u032f\7@\2\2\u032f\u0331\7A\2\2\u0330\u0332\5\u0080A\2\u0331\u0330\3"+
|
||||
"\2\2\2\u0331\u0332\3\2\2\2\u0332}\3\2\2\2\u0333\u0334\5F$\2\u0334\177"+
|
||||
"\3\2\2\2\u0335\u0336\7\16\2\2\u0336\u0337\5n8\2\u0337\u0081\3\2\2\2\u0338"+
|
||||
@@ -10016,11 +10018,11 @@ public class JavaParser extends Parser {
|
||||
"\u0082B\2\u03ab\u03c7\3\2\2\2\u03ac\u03ae\7&\2\2\u03ad\u03af\5\u00a8U"+
|
||||
"\2\u03ae\u03ad\3\2\2\2\u03ae\u03af\3\2\2\2\u03af\u03b0\3\2\2\2\u03b0\u03c7"+
|
||||
"\7F\2\2\u03b1\u03b2\7.\2\2\u03b2\u03b3\5\u00a8U\2\u03b3\u03b4\7F\2\2\u03b4"+
|
||||
"\u03c7\3\2\2\2\u03b5\u03b7\7\6\2\2\u03b6\u03b8\7r\2\2\u03b7\u03b6\3\2"+
|
||||
"\u03c7\3\2\2\2\u03b5\u03b7\7\6\2\2\u03b6\u03b8\7s\2\2\u03b7\u03b6\3\2"+
|
||||
"\2\2\u03b7\u03b8\3\2\2\2\u03b8\u03b9\3\2\2\2\u03b9\u03c7\7F\2\2\u03ba"+
|
||||
"\u03bc\7\r\2\2\u03bb\u03bd\7r\2\2\u03bc\u03bb\3\2\2\2\u03bc\u03bd\3\2"+
|
||||
"\u03bc\7\r\2\2\u03bb\u03bd\7s\2\2\u03bc\u03bb\3\2\2\2\u03bc\u03bd\3\2"+
|
||||
"\2\2\u03bd\u03be\3\2\2\2\u03be\u03c7\7F\2\2\u03bf\u03c7\7F\2\2\u03c0\u03c1"+
|
||||
"\5\u00a8U\2\u03c1\u03c2\7F\2\2\u03c2\u03c7\3\2\2\2\u03c3\u03c4\7r\2\2"+
|
||||
"\5\u00a8U\2\u03c1\u03c2\7F\2\2\u03c2\u03c7\3\2\2\2\u03c3\u03c4\7s\2\2"+
|
||||
"\u03c4\u03c5\7O\2\2\u03c5\u03c7\5\u008aF\2\u03c6\u035e\3\2\2\2\u03c6\u035f"+
|
||||
"\3\2\2\2\u03c6\u0367\3\2\2\2\u03c6\u036e\3\2\2\2\u03c6\u0374\3\2\2\2\u03c6"+
|
||||
"\u0378\3\2\2\2\u03c6\u037e\3\2\2\2\u03c6\u038b\3\2\2\2\u03c6\u0397\3\2"+
|
||||
@@ -10029,7 +10031,7 @@ public class JavaParser extends Parser {
|
||||
"\2\2\u03c6\u03c3\3\2\2\2\u03c7\u008b\3\2\2\2\u03c8\u03c9\7\t\2\2\u03c9"+
|
||||
"\u03cd\7@\2\2\u03ca\u03cc\5\16\b\2\u03cb\u03ca\3\2\2\2\u03cc\u03cf\3\2"+
|
||||
"\2\2\u03cd\u03cb\3\2\2\2\u03cd\u03ce\3\2\2\2\u03ce\u03d0\3\2\2\2\u03cf"+
|
||||
"\u03cd\3\2\2\2\u03d0\u03d1\5\u008eH\2\u03d1\u03d2\7r\2\2\u03d2\u03d3\7"+
|
||||
"\u03cd\3\2\2\2\u03d0\u03d1\5\u008eH\2\u03d1\u03d2\7s\2\2\u03d2\u03d3\7"+
|
||||
"A\2\2\u03d3\u03d4\5\u0082B\2\u03d4\u008d\3\2\2\2\u03d5\u03da\5^\60\2\u03d6"+
|
||||
"\u03d7\7]\2\2\u03d7\u03d9\5^\60\2\u03d8\u03d6\3\2\2\2\u03d9\u03dc\3\2"+
|
||||
"\2\2\u03da\u03d8\3\2\2\2\u03da\u03db\3\2\2\2\u03db\u008f\3\2\2\2\u03dc"+
|
||||
@@ -10046,7 +10048,7 @@ public class JavaParser extends Parser {
|
||||
"\2\2\u03fc\u03fd\3\2\2\2\u03fd\u03fb\3\2\2\2\u03fd\u03fe\3\2\2\2\u03fe"+
|
||||
"\u0400\3\2\2\2\u03ff\u0401\5\u0084C\2\u0400\u03ff\3\2\2\2\u0401\u0402"+
|
||||
"\3\2\2\2\u0402\u0400\3\2\2\2\u0402\u0403\3\2\2\2\u0403\u0099\3\2\2\2\u0404"+
|
||||
"\u0407\7\b\2\2\u0405\u0408\5\u00a8U\2\u0406\u0408\7r\2\2\u0407\u0405\3"+
|
||||
"\u0407\7\b\2\2\u0405\u0408\5\u00a8U\2\u0406\u0408\7s\2\2\u0407\u0405\3"+
|
||||
"\2\2\2\u0407\u0406\3\2\2\2\u0408\u0409\3\2\2\2\u0409\u040d\7O\2\2\u040a"+
|
||||
"\u040b\7\16\2\2\u040b\u040d\7O\2\2\u040c\u0404\3\2\2\2\u040c\u040a\3\2"+
|
||||
"\2\2\u040d\u009b\3\2\2\2\u040e\u041b\5\u00a0Q\2\u040f\u0411\5\u009eP\2"+
|
||||
@@ -10063,7 +10065,7 @@ public class JavaParser extends Parser {
|
||||
"\u00a8U\2\u042d\u042e\7A\2\2\u042e\u00a3\3\2\2\2\u042f\u0434\5\u00a8U"+
|
||||
"\2\u0430\u0431\7G\2\2\u0431\u0433\5\u00a8U\2\u0432\u0430\3\2\2\2\u0433"+
|
||||
"\u0436\3\2\2\2\u0434\u0432\3\2\2\2\u0434\u0435\3\2\2\2\u0435\u00a5\3\2"+
|
||||
"\2\2\u0436\u0434\3\2\2\2\u0437\u0438\7r\2\2\u0438\u043a\7@\2\2\u0439\u043b"+
|
||||
"\2\2\u0436\u0434\3\2\2\2\u0437\u0438\7s\2\2\u0438\u043a\7@\2\2\u0439\u043b"+
|
||||
"\5\u00a4S\2\u043a\u0439\3\2\2\2\u043a\u043b\3\2\2\2\u043b\u043c\3\2\2"+
|
||||
"\2\u043c\u044a\7A\2\2\u043d\u043e\7-\2\2\u043e\u0440\7@\2\2\u043f\u0441"+
|
||||
"\5\u00a4S\2\u0440\u043f\3\2\2\2\u0440\u0441\3\2\2\2\u0441\u0442\3\2\2"+
|
||||
@@ -10081,7 +10083,7 @@ public class JavaParser extends Parser {
|
||||
"\2\u0463\u0478\5\u00a8U\25\u0464\u0465\t\6\2\2\u0465\u0478\5\u00a8U\24"+
|
||||
"\u0466\u0478\5\u00aaV\2\u0467\u0468\5\u00c8e\2\u0468\u046e\7l\2\2\u0469"+
|
||||
"\u046b\5\u00ccg\2\u046a\u0469\3\2\2\2\u046a\u046b\3\2\2\2\u046b\u046c"+
|
||||
"\3\2\2\2\u046c\u046f\7r\2\2\u046d\u046f\7!\2\2\u046e\u046a\3\2\2\2\u046e"+
|
||||
"\3\2\2\2\u046c\u046f\7s\2\2\u046d\u046f\7!\2\2\u046e\u046a\3\2\2\2\u046e"+
|
||||
"\u046d\3\2\2\2\u046f\u0478\3\2\2\2\u0470\u0471\5\u00b2Z\2\u0471\u0473"+
|
||||
"\7l\2\2\u0472\u0474\5\u00ccg\2\u0473\u0472\3\2\2\2\u0473\u0474\3\2\2\2"+
|
||||
"\u0474\u0475\3\2\2\2\u0475\u0476\7!\2\2\u0476\u0478\3\2\2\2\u0477\u044b"+
|
||||
@@ -10102,7 +10104,7 @@ public class JavaParser extends Parser {
|
||||
"\7U\2\2\u049e\u04c8\5\u00a8U\n\u049f\u04a0\f\b\2\2\u04a0\u04a1\7N\2\2"+
|
||||
"\u04a1\u04a2\5\u00a8U\2\u04a2\u04a3\7O\2\2\u04a3\u04a4\5\u00a8U\b\u04a4"+
|
||||
"\u04c8\3\2\2\2\u04a5\u04a6\f\7\2\2\u04a6\u04a7\t\13\2\2\u04a7\u04c8\5"+
|
||||
"\u00a8U\7\u04a8\u04a9\f\33\2\2\u04a9\u04b5\7H\2\2\u04aa\u04b6\7r\2\2\u04ab"+
|
||||
"\u00a8U\7\u04a8\u04a9\f\33\2\2\u04a9\u04b5\7H\2\2\u04aa\u04b6\7s\2\2\u04ab"+
|
||||
"\u04b6\5\u00a6T\2\u04ac\u04b6\7-\2\2\u04ad\u04af\7!\2\2\u04ae\u04b0\5"+
|
||||
"\u00c4c\2\u04af\u04ae\3\2\2\2\u04af\u04b0\3\2\2\2\u04b0\u04b1\3\2\2\2"+
|
||||
"\u04b1\u04b6\5\u00b8]\2\u04b2\u04b3\7*\2\2\u04b3\u04b6\5\u00ceh\2\u04b4"+
|
||||
@@ -10113,24 +10115,24 @@ public class JavaParser extends Parser {
|
||||
"\u04c8\t\f\2\2\u04be\u04bf\f\17\2\2\u04bf\u04c0\7\34\2\2\u04c0\u04c8\5"+
|
||||
"\u00c8e\2\u04c1\u04c2\f\5\2\2\u04c2\u04c4\7l\2\2\u04c3\u04c5\5\u00ccg"+
|
||||
"\2\u04c4\u04c3\3\2\2\2\u04c4\u04c5\3\2\2\2\u04c5\u04c6\3\2\2\2\u04c6\u04c8"+
|
||||
"\7r\2\2\u04c7\u0479\3\2\2\2\u04c7\u047c\3\2\2\2\u04c7\u047f\3\2\2\2\u04c7"+
|
||||
"\7s\2\2\u04c7\u0479\3\2\2\2\u04c7\u047c\3\2\2\2\u04c7\u047f\3\2\2\2\u04c7"+
|
||||
"\u048a\3\2\2\2\u04c7\u048d\3\2\2\2\u04c7\u0490\3\2\2\2\u04c7\u0493\3\2"+
|
||||
"\2\2\u04c7\u0496\3\2\2\2\u04c7\u0499\3\2\2\2\u04c7\u049c\3\2\2\2\u04c7"+
|
||||
"\u049f\3\2\2\2\u04c7\u04a5\3\2\2\2\u04c7\u04a8\3\2\2\2\u04c7\u04b7\3\2"+
|
||||
"\2\2\u04c7\u04bc\3\2\2\2\u04c7\u04be\3\2\2\2\u04c7\u04c1\3\2\2\2\u04c8"+
|
||||
"\u04cb\3\2\2\2\u04c9\u04c7\3\2\2\2\u04c9\u04ca\3\2\2\2\u04ca\u00a9\3\2"+
|
||||
"\2\2\u04cb\u04c9\3\2\2\2\u04cc\u04cd\5\u00acW\2\u04cd\u04ce\7k\2\2\u04ce"+
|
||||
"\u04cf\5\u00aeX\2\u04cf\u00ab\3\2\2\2\u04d0\u04e1\7r\2\2\u04d1\u04d3\7"+
|
||||
"\u04cf\5\u00aeX\2\u04cf\u00ab\3\2\2\2\u04d0\u04e1\7s\2\2\u04d1\u04d3\7"+
|
||||
"@\2\2\u04d2\u04d4\5X-\2\u04d3\u04d2\3\2\2\2\u04d3\u04d4\3\2\2\2\u04d4"+
|
||||
"\u04d5\3\2\2\2\u04d5\u04e1\7A\2\2\u04d6\u04d7\7@\2\2\u04d7\u04dc\7r\2"+
|
||||
"\2\u04d8\u04d9\7G\2\2\u04d9\u04db\7r\2\2\u04da\u04d8\3\2\2\2\u04db\u04de"+
|
||||
"\u04d5\3\2\2\2\u04d5\u04e1\7A\2\2\u04d6\u04d7\7@\2\2\u04d7\u04dc\7s\2"+
|
||||
"\2\u04d8\u04d9\7G\2\2\u04d9\u04db\7s\2\2\u04da\u04d8\3\2\2\2\u04db\u04de"+
|
||||
"\3\2\2\2\u04dc\u04da\3\2\2\2\u04dc\u04dd\3\2\2\2\u04dd\u04df\3\2\2\2\u04de"+
|
||||
"\u04dc\3\2\2\2\u04df\u04e1\7A\2\2\u04e0\u04d0\3\2\2\2\u04e0\u04d1\3\2"+
|
||||
"\2\2\u04e0\u04d6\3\2\2\2\u04e1\u00ad\3\2\2\2\u04e2\u04e5\5\u00a8U\2\u04e3"+
|
||||
"\u04e5\5\u0082B\2\u04e4\u04e2\3\2\2\2\u04e4\u04e3\3\2\2\2\u04e5\u00af"+
|
||||
"\3\2\2\2\u04e6\u04e7\7@\2\2\u04e7\u04e8\5\u00a8U\2\u04e8\u04e9\7A\2\2"+
|
||||
"\u04e9\u04f9\3\2\2\2\u04ea\u04f9\7-\2\2\u04eb\u04f9\7*\2\2\u04ec\u04f9"+
|
||||
"\5`\61\2\u04ed\u04f9\7r\2\2\u04ee\u04ef\5.\30\2\u04ef\u04f0\7H\2\2\u04f0"+
|
||||
"\5`\61\2\u04ed\u04f9\7s\2\2\u04ee\u04ef\5.\30\2\u04ef\u04f0\7H\2\2\u04f0"+
|
||||
"\u04f1\7\13\2\2\u04f1\u04f9\3\2\2\2\u04f2\u04f6\5\u00c4c\2\u04f3\u04f7"+
|
||||
"\5\u00d0i\2\u04f4\u04f5\7-\2\2\u04f5\u04f7\5\u00d2j\2\u04f6\u04f3\3\2"+
|
||||
"\2\2\u04f6\u04f4\3\2\2\2\u04f7\u04f9\3\2\2\2\u04f8\u04e6\3\2\2\2\u04f8"+
|
||||
@@ -10139,19 +10141,19 @@ public class JavaParser extends Parser {
|
||||
"\u04fb\5P)\2\u04fb\u04fc\7H\2\2\u04fc\u04fe\3\2\2\2\u04fd\u04fa\3\2\2"+
|
||||
"\2\u04fd\u04fe\3\2\2\2\u04fe\u0502\3\2\2\2\u04ff\u0501\5h\65\2\u0500\u04ff"+
|
||||
"\3\2\2\2\u0501\u0504\3\2\2\2\u0502\u0500\3\2\2\2\u0502\u0503\3\2\2\2\u0503"+
|
||||
"\u0505\3\2\2\2\u0504\u0502\3\2\2\2\u0505\u0507\7r\2\2\u0506\u0508\5\u00cc"+
|
||||
"\u0505\3\2\2\2\u0504\u0502\3\2\2\2\u0505\u0507\7s\2\2\u0506\u0508\5\u00cc"+
|
||||
"g\2\u0507\u0506\3\2\2\2\u0507\u0508\3\2\2\2\u0508\u00b3\3\2\2\2\u0509"+
|
||||
"\u050a\5\u00c4c\2\u050a\u050b\5\u00b6\\\2\u050b\u050c\5\u00bc_\2\u050c"+
|
||||
"\u0513\3\2\2\2\u050d\u0510\5\u00b6\\\2\u050e\u0511\5\u00ba^\2\u050f\u0511"+
|
||||
"\5\u00bc_\2\u0510\u050e\3\2\2\2\u0510\u050f\3\2\2\2\u0511\u0513\3\2\2"+
|
||||
"\2\u0512\u0509\3\2\2\2\u0512\u050d\3\2\2\2\u0513\u00b5\3\2\2\2\u0514\u0516"+
|
||||
"\7r\2\2\u0515\u0517\5\u00c0a\2\u0516\u0515\3\2\2\2\u0516\u0517\3\2\2\2"+
|
||||
"\u0517\u051f\3\2\2\2\u0518\u0519\7H\2\2\u0519\u051b\7r\2\2\u051a\u051c"+
|
||||
"\7s\2\2\u0515\u0517\5\u00c0a\2\u0516\u0515\3\2\2\2\u0516\u0517\3\2\2\2"+
|
||||
"\u0517\u051f\3\2\2\2\u0518\u0519\7H\2\2\u0519\u051b\7s\2\2\u051a\u051c"+
|
||||
"\5\u00c0a\2\u051b\u051a\3\2\2\2\u051b\u051c\3\2\2\2\u051c\u051e\3\2\2"+
|
||||
"\2\u051d\u0518\3\2\2\2\u051e\u0521\3\2\2\2\u051f\u051d\3\2\2\2\u051f\u0520"+
|
||||
"\3\2\2\2\u0520\u0524\3\2\2\2\u0521\u051f\3\2\2\2\u0522\u0524\5\u00caf"+
|
||||
"\2\u0523\u0514\3\2\2\2\u0523\u0522\3\2\2\2\u0524\u00b7\3\2\2\2\u0525\u0527"+
|
||||
"\7r\2\2\u0526\u0528\5\u00c2b\2\u0527\u0526\3\2\2\2\u0527\u0528\3\2\2\2"+
|
||||
"\7s\2\2\u0526\u0528\5\u00c2b\2\u0527\u0526\3\2\2\2\u0527\u0528\3\2\2\2"+
|
||||
"\u0528\u0529\3\2\2\2\u0529\u052a\5\u00bc_\2\u052a\u00b9\3\2\2\2\u052b"+
|
||||
"\u0547\7D\2\2\u052c\u0531\7E\2\2\u052d\u052e\7D\2\2\u052e\u0530\7E\2\2"+
|
||||
"\u052f\u052d\3\2\2\2\u0530\u0533\3\2\2\2\u0531\u052f\3\2\2\2\u0531\u0532"+
|
||||
@@ -10184,9 +10186,9 @@ public class JavaParser extends Parser {
|
||||
"\u0581\3\2\2\2\u0584\u0587\3\2\2\2\u0585\u0583\3\2\2\2\u0585\u0586\3\2"+
|
||||
"\2\2\u0586\u0588\3\2\2\2\u0587\u0585\3\2\2\2\u0588\u0589\7J\2\2\u0589"+
|
||||
"\u00cd\3\2\2\2\u058a\u0591\5\u00d2j\2\u058b\u058c\7H\2\2\u058c\u058e\7"+
|
||||
"r\2\2\u058d\u058f\5\u00d2j\2\u058e\u058d\3\2\2\2\u058e\u058f\3\2\2\2\u058f"+
|
||||
"s\2\2\u058d\u058f\5\u00d2j\2\u058e\u058d\3\2\2\2\u058e\u058f\3\2\2\2\u058f"+
|
||||
"\u0591\3\2\2\2\u0590\u058a\3\2\2\2\u0590\u058b\3\2\2\2\u0591\u00cf\3\2"+
|
||||
"\2\2\u0592\u0593\7*\2\2\u0593\u0597\5\u00ceh\2\u0594\u0595\7r\2\2\u0595"+
|
||||
"\2\2\u0592\u0593\7*\2\2\u0593\u0597\5\u00ceh\2\u0594\u0595\7s\2\2\u0595"+
|
||||
"\u0597\5\u00d2j\2\u0596\u0592\3\2\2\2\u0596\u0594\3\2\2\2\u0597\u00d1"+
|
||||
"\3\2\2\2\u0598\u059a\7@\2\2\u0599\u059b\5\u00a4S\2\u059a\u0599\3\2\2\2"+
|
||||
"\u059a\u059b\3\2\2\2\u059b\u059c\3\2\2\2\u059c\u059d\7A\2\2\u059d\u00d3"+
|
||||
|
||||
@@ -107,9 +107,10 @@ COLONCOLON=106
|
||||
AT=107
|
||||
ELLIPSIS=108
|
||||
WS=109
|
||||
COMMENT=110
|
||||
LINE_COMMENT=111
|
||||
IDENTIFIER=112
|
||||
BLOCK_COMMENT=110
|
||||
JAVADOC_COMMENT=111
|
||||
LINE_COMMENT=112
|
||||
IDENTIFIER=113
|
||||
'abstract'=1
|
||||
'assert'=2
|
||||
'boolean'=3
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
[The "BSD licence"]
|
||||
Copyright (c) 2016 Pascal Gruen
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the author may not be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
lexer grammar JavadocLexer;
|
||||
|
||||
NAME
|
||||
: [a-zA-Z]+
|
||||
;
|
||||
|
||||
NEWLINE
|
||||
: '\n' (SPACE? (STAR {_input.LA(1) != '/'}?)+)?
|
||||
| '\r\n' (SPACE? (STAR {_input.LA(1) != '/'}?)+)?
|
||||
| '\r' (SPACE? (STAR {_input.LA(1) != '/'}?)+)?
|
||||
;
|
||||
|
||||
SPACE
|
||||
: (' '|'\t')+
|
||||
;
|
||||
|
||||
TEXT_CONTENT
|
||||
: ~[\n\r\t @*{}/a-zA-Z]+
|
||||
;
|
||||
|
||||
AT
|
||||
: '@'
|
||||
;
|
||||
|
||||
STAR
|
||||
: '*'
|
||||
;
|
||||
|
||||
SLASH
|
||||
: '/'
|
||||
;
|
||||
|
||||
JAVADOC_START
|
||||
: '/**' STAR*
|
||||
;
|
||||
|
||||
JAVADOC_END
|
||||
: SPACE? STAR* '*/'
|
||||
;
|
||||
|
||||
INLINE_TAG_START
|
||||
: '{@'
|
||||
;
|
||||
|
||||
BRACE_OPEN
|
||||
: '{'
|
||||
;
|
||||
|
||||
BRACE_CLOSE
|
||||
: '}'
|
||||
;
|
||||
@@ -0,0 +1,53 @@
|
||||
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]
|
||||
@@ -0,0 +1,170 @@
|
||||
// Generated from JavadocLexer.g4 by ANTLR 4.9.2
|
||||
package com.itsaky.androidide.antlr4.javadoc;
|
||||
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 JavadocLexer extends Lexer {
|
||||
static { RuntimeMetaData.checkVersion("4.9.2", RuntimeMetaData.VERSION); }
|
||||
|
||||
protected static final DFA[] _decisionToDFA;
|
||||
protected static final PredictionContextCache _sharedContextCache =
|
||||
new PredictionContextCache();
|
||||
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 String[] channelNames = {
|
||||
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
|
||||
};
|
||||
|
||||
public static String[] modeNames = {
|
||||
"DEFAULT_MODE"
|
||||
};
|
||||
|
||||
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"
|
||||
};
|
||||
}
|
||||
public static final String[] ruleNames = makeRuleNames();
|
||||
|
||||
private static String[] makeLiteralNames() {
|
||||
return new String[] {
|
||||
null, null, null, null, null, "'@'", "'*'", "'/'", null, null, "'{@'",
|
||||
"'{'", "'}'"
|
||||
};
|
||||
}
|
||||
private static final String[] _LITERAL_NAMES = makeLiteralNames();
|
||||
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"
|
||||
};
|
||||
}
|
||||
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 JavadocLexer(CharStream input) {
|
||||
super(input);
|
||||
_interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGrammarFileName() { return "JavadocLexer.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 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;
|
||||
}
|
||||
|
||||
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());
|
||||
static {
|
||||
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
|
||||
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
|
||||
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
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
|
||||
@@ -0,0 +1,149 @@
|
||||
/*
|
||||
[The "BSD licence"]
|
||||
Copyright (c) 2016 Pascal Gruen
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the author may not be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
parser grammar JavadocParser;
|
||||
|
||||
options { tokenVocab=JavadocLexer; }
|
||||
|
||||
|
||||
documentation
|
||||
: EOF
|
||||
| JAVADOC_START skipWhitespace* documentationContent JAVADOC_END EOF
|
||||
| skipWhitespace* documentationContent EOF
|
||||
;
|
||||
|
||||
documentationContent
|
||||
: description skipWhitespace*
|
||||
| skipWhitespace* tagSection
|
||||
| description NEWLINE+ skipWhitespace* tagSection
|
||||
;
|
||||
|
||||
skipWhitespace
|
||||
: SPACE
|
||||
| NEWLINE
|
||||
;
|
||||
|
||||
|
||||
description
|
||||
: descriptionLine (descriptionNewline+ descriptionLine)*
|
||||
;
|
||||
|
||||
descriptionLine
|
||||
: descriptionLineStart descriptionLineElement*
|
||||
| inlineTag descriptionLineElement*
|
||||
;
|
||||
|
||||
descriptionLineStart
|
||||
: SPACE? descriptionLineNoSpaceNoAt+ (descriptionLineNoSpaceNoAt | SPACE | AT)*
|
||||
;
|
||||
|
||||
descriptionLineNoSpaceNoAt
|
||||
: TEXT_CONTENT
|
||||
| NAME
|
||||
| STAR
|
||||
| SLASH
|
||||
| BRACE_OPEN
|
||||
| BRACE_CLOSE
|
||||
;
|
||||
|
||||
descriptionLineElement
|
||||
: inlineTag
|
||||
| descriptionLineText
|
||||
;
|
||||
|
||||
descriptionLineText
|
||||
: (descriptionLineNoSpaceNoAt | SPACE | AT)+
|
||||
;
|
||||
|
||||
descriptionNewline
|
||||
: NEWLINE
|
||||
;
|
||||
|
||||
|
||||
tagSection
|
||||
: blockTag+
|
||||
;
|
||||
|
||||
blockTag
|
||||
: SPACE? AT blockTagName SPACE? blockTagContent*
|
||||
;
|
||||
|
||||
blockTagName
|
||||
: NAME
|
||||
;
|
||||
|
||||
blockTagContent
|
||||
: blockTagText
|
||||
| inlineTag
|
||||
| NEWLINE
|
||||
;
|
||||
|
||||
blockTagText
|
||||
: blockTagTextElement+
|
||||
;
|
||||
|
||||
blockTagTextElement
|
||||
: TEXT_CONTENT
|
||||
| NAME
|
||||
| SPACE
|
||||
| STAR
|
||||
| SLASH
|
||||
| BRACE_OPEN
|
||||
| BRACE_CLOSE
|
||||
;
|
||||
|
||||
|
||||
inlineTag
|
||||
: INLINE_TAG_START inlineTagName SPACE* inlineTagContent? BRACE_CLOSE
|
||||
;
|
||||
|
||||
inlineTagName
|
||||
: NAME
|
||||
;
|
||||
|
||||
inlineTagContent
|
||||
: braceContent+
|
||||
;
|
||||
|
||||
braceExpression
|
||||
: BRACE_OPEN braceContent* BRACE_CLOSE
|
||||
;
|
||||
|
||||
braceContent
|
||||
: braceExpression
|
||||
| braceText (NEWLINE* braceText)*
|
||||
;
|
||||
|
||||
braceText
|
||||
: TEXT_CONTENT
|
||||
| NAME
|
||||
| SPACE
|
||||
| STAR
|
||||
| SLASH
|
||||
| NEWLINE
|
||||
;
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,18 @@
|
||||
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
|
||||
+303
@@ -0,0 +1,303 @@
|
||||
// Generated from JavadocParser.g4 by ANTLR 4.9.2
|
||||
package com.itsaky.androidide.antlr4.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.</p>
|
||||
*/
|
||||
@Override public void enterDocumentation(JavadocParser.DocumentationContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitDocumentation(JavadocParser.DocumentationContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterDocumentationContent(JavadocParser.DocumentationContentContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitDocumentationContent(JavadocParser.DocumentationContentContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterDescription(JavadocParser.DescriptionContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitDescription(JavadocParser.DescriptionContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterDescriptionLine(JavadocParser.DescriptionLineContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitDescriptionLine(JavadocParser.DescriptionLineContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterTagSection(JavadocParser.TagSectionContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitTagSection(JavadocParser.TagSectionContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterBlockTag(JavadocParser.BlockTagContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitBlockTag(JavadocParser.BlockTagContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterBlockTagName(JavadocParser.BlockTagNameContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitBlockTagName(JavadocParser.BlockTagNameContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterBlockTagContent(JavadocParser.BlockTagContentContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitBlockTagContent(JavadocParser.BlockTagContentContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterBlockTagText(JavadocParser.BlockTagTextContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitBlockTagText(JavadocParser.BlockTagTextContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterInlineTag(JavadocParser.InlineTagContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitInlineTag(JavadocParser.InlineTagContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterInlineTagName(JavadocParser.InlineTagNameContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitInlineTagName(JavadocParser.InlineTagNameContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterInlineTagContent(JavadocParser.InlineTagContentContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitInlineTagContent(JavadocParser.InlineTagContentContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterBraceExpression(JavadocParser.BraceExpressionContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitBraceExpression(JavadocParser.BraceExpressionContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterBraceContent(JavadocParser.BraceContentContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitBraceContent(JavadocParser.BraceContentContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterBraceText(JavadocParser.BraceTextContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitBraceText(JavadocParser.BraceTextContext ctx) { }
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterEveryRule(ParserRuleContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitEveryRule(ParserRuleContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void visitTerminal(TerminalNode node) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void visitErrorNode(ErrorNode node) { }
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
// Generated from JavadocParser.g4 by ANTLR 4.9.2
|
||||
package com.itsaky.androidide.antlr4.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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@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}.</p>
|
||||
*/
|
||||
@Override public T visitBraceText(JavadocParser.BraceTextContext ctx) { return visitChildren(ctx); }
|
||||
}
|
||||
@@ -0,0 +1,230 @@
|
||||
// Generated from JavadocParser.g4 by ANTLR 4.9.2
|
||||
package com.itsaky.androidide.antlr4.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);
|
||||
}
|
||||
@@ -0,0 +1,145 @@
|
||||
// Generated from JavadocParser.g4 by ANTLR 4.9.2
|
||||
package com.itsaky.androidide.antlr4.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);
|
||||
}
|
||||
@@ -170,7 +170,11 @@ public class EditorFragment extends BaseFragment implements EditorEventListener
|
||||
}
|
||||
|
||||
public void setDiagnostics(List<Diagnostic> diags) {
|
||||
if(mBinding.editor != null && diags != null) {
|
||||
if(diags == null && mBinding.editor != null) {
|
||||
mBinding.editor.getEditorLanguage().getAnalyzer().updateDiagnostics(new HashMap<Integer, Map<Integer, Diagnostic>>());
|
||||
return;
|
||||
}
|
||||
if(mBinding.editor != null) {
|
||||
Map<Integer, Map<Integer, Diagnostic>> map = new HashMap<>();
|
||||
for(int i=0;i<diags.size();i++) {
|
||||
final Diagnostic d = diags.get(i);
|
||||
|
||||
@@ -44,8 +44,8 @@ import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.stream.Collectors;
|
||||
import org.eclipse.lsp4j.CodeAction;
|
||||
import org.eclipse.lsp4j.Command;
|
||||
import org.eclipse.lsp4j.Diagnostic;
|
||||
@@ -63,10 +63,6 @@ import org.eclipse.lsp4j.SignatureHelp;
|
||||
import org.eclipse.lsp4j.SignatureInformation;
|
||||
import org.eclipse.lsp4j.TextEdit;
|
||||
import org.eclipse.lsp4j.jsonrpc.messages.Either;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
/**
|
||||
* AndroidIDE specific implementation of the LanguageClient
|
||||
|
||||
@@ -22,6 +22,8 @@ public class ConstantsBridge {
|
||||
// Real password is gradle-api@admin@androidide
|
||||
public static final String GRADLE_API_ZIP_PASSWORD_HASH = "b50b462f8e8c5789f32428d7e1967da2";
|
||||
|
||||
// Always compared in lowercase
|
||||
public static final String CUSTOM_COMMENT_WARNING_TOKEN = "#warn ";
|
||||
|
||||
public static final String VIRTUAL_KEYS =
|
||||
"["
|
||||
|
||||
+2
-1
@@ -142,7 +142,8 @@ public class JavaHighlighter implements Highlighter {
|
||||
case JavaLexer.SHORT:
|
||||
sb.append(token.getText(), new ForegroundColorSpan(scheme.getColor(EditorColorScheme.TYPE_NAME)), SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
break;
|
||||
case JavaLexer.COMMENT :
|
||||
case JavaLexer.JAVADOC_COMMENT :
|
||||
case JavaLexer.BLOCK_COMMENT :
|
||||
case JavaLexer.LINE_COMMENT :
|
||||
sb.append(token.getText(), new ForegroundColorSpan(scheme.getColor(EditorColorScheme.COMMENT)), SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
break;
|
||||
|
||||
+32
-33
@@ -1,10 +1,12 @@
|
||||
package com.itsaky.androidide.syntax.lexer.impls.java;
|
||||
|
||||
import com.itsaky.androidide.antlr4.java.JavaLexer;
|
||||
import com.itsaky.androidide.models.ConstantsBridge;
|
||||
import com.itsaky.androidide.syntax.lexer.Lexer;
|
||||
import com.itsaky.androidide.syntax.lexer.impls.BaseJavaLexer;
|
||||
import com.itsaky.androidide.syntax.lexer.tokens.Token;
|
||||
import com.itsaky.androidide.syntax.lexer.tokens.TokenType;
|
||||
import com.itsaky.androidide.utils.LSPUtils;
|
||||
import com.itsaky.androidide.utils.Logger;
|
||||
import com.itsaky.lsp.SemanticHighlight;
|
||||
import com.itsaky.lsp.services.IDELanguageServer;
|
||||
@@ -16,13 +18,14 @@ import io.github.rosemoe.editor.widget.EditorColorScheme;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.StringReader;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import org.antlr.v4.runtime.CharStreams;
|
||||
import org.eclipse.lsp4j.Diagnostic;
|
||||
import org.eclipse.lsp4j.DiagnosticTag;
|
||||
import org.eclipse.lsp4j.Position;
|
||||
import org.eclipse.lsp4j.Range;
|
||||
|
||||
@@ -30,6 +33,7 @@ public class JavaLexerImpl extends io.github.rosemoe.editor.langs.AbstractCodeAn
|
||||
|
||||
private SemanticHighlight highlights;
|
||||
private Map<Integer, Map<Integer, Diagnostic>> diagnostics = new HashMap<>();
|
||||
private final Map<Integer, Map<Integer, Diagnostic>> customDiagnostics = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void setSemanticHighlights(SemanticHighlight highlights) {
|
||||
@@ -49,18 +53,6 @@ public class JavaLexerImpl extends io.github.rosemoe.editor.langs.AbstractCodeAn
|
||||
lexer.maxSwitch = lexer.currSwitch;
|
||||
|
||||
colors.determine(lexer.lastLine);
|
||||
|
||||
for(Map.Entry<Integer, Map<Integer, Diagnostic>> entry1 : diagnostics.entrySet()) {
|
||||
for(Map.Entry<Integer, Diagnostic> entry2 : entry1.getValue().entrySet()) {
|
||||
final Diagnostic diag = entry2.getValue();
|
||||
final Range range = diag.getRange();
|
||||
final Position start = range.getStart();
|
||||
final Position end = range.getEnd();
|
||||
|
||||
colors.markProblemRegion(getDiagnosticSpanFlag(diag), start.getLine(), start.getCharacter(), end.getLine(), end.getCharacter());
|
||||
}
|
||||
}
|
||||
|
||||
colors.setSuppressSwitch(lexer.maxSwitch + 10);
|
||||
colors.setHexColors(lexer.lineColors);
|
||||
}
|
||||
@@ -106,25 +98,10 @@ public class JavaLexerImpl extends io.github.rosemoe.editor.langs.AbstractCodeAn
|
||||
.map(d -> d.getValue())
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private int getDiagnosticSpanFlag (final Diagnostic diagnostic) {
|
||||
|
||||
if(diagnostic.getTags() != null && diagnostic.getTags().contains(DiagnosticTag.Deprecated)) {
|
||||
return Span.FLAG_DEPRECATED;
|
||||
}
|
||||
|
||||
switch (diagnostic.getSeverity()) {
|
||||
case Error :
|
||||
return Span.FLAG_ERROR;
|
||||
case Warning :
|
||||
return Span.FLAG_WARNING;
|
||||
case Hint :
|
||||
return Span.FLAG_HINT;
|
||||
case Information :
|
||||
return Span.FLAG_INFO;
|
||||
default :
|
||||
return 0;
|
||||
}
|
||||
@Override
|
||||
public Map<Integer, Diagnostic> getDiagnosticsAtLine(int line) {
|
||||
return diagnostics.get(line);
|
||||
}
|
||||
|
||||
public class JavaLexerAnalyzer extends BaseJavaLexer implements Lexer {
|
||||
@@ -321,12 +298,34 @@ public class JavaLexerImpl extends io.github.rosemoe.editor.langs.AbstractCodeAn
|
||||
span = colors.addIfNeeded(line, column, EditorColorScheme.TYPE_NAME);
|
||||
wasClassName = true;
|
||||
break;
|
||||
|
||||
case JavaLexer.COMMENT :
|
||||
|
||||
case JavaLexer.JAVADOC_COMMENT :
|
||||
// TODO Highlight javadoc
|
||||
break;
|
||||
case JavaLexer.BLOCK_COMMENT :
|
||||
type = TokenType.COMMENT;
|
||||
span = colors.addIfNeeded(line, column, EditorColorScheme.COMMENT);
|
||||
break;
|
||||
case JavaLexer.LINE_COMMENT :
|
||||
type = TokenType.COMMENT;
|
||||
span = colors.addIfNeeded(line, column, EditorColorScheme.COMMENT);
|
||||
wasClassName = false;
|
||||
|
||||
String lineComment = currentToken.getText();
|
||||
if(lineComment != null) {
|
||||
lineComment = lineComment.trim();
|
||||
if(lineComment.startsWith("//")) {
|
||||
lineComment = lineComment.substring(2).trim();
|
||||
}
|
||||
final String text = new String (lineComment.toCharArray());
|
||||
lineComment = lineComment.toLowerCase(Locale.getDefault());
|
||||
if(lineComment.startsWith("todo ")) {
|
||||
diagnostics.put(line, Collections.singletonMap(column, LSPUtils.newInfoDiagnostic(line, column, currentToken.getText().length(), text, currentToken.getText())));
|
||||
} else if (lineComment.startsWith(ConstantsBridge.CUSTOM_COMMENT_WARNING_TOKEN)) {
|
||||
diagnostics.put(line, Collections.singletonMap(column, LSPUtils.newWarningDiagnostic(line, column, currentToken.getText().length(), text, currentToken.getText())));
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case JavaLexer.AT :
|
||||
type = TokenType.ANNOTATION;
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.itsaky.androidide.utils;
|
||||
|
||||
import org.eclipse.lsp4j.Diagnostic;
|
||||
import org.eclipse.lsp4j.DiagnosticSeverity;
|
||||
import org.eclipse.lsp4j.Position;
|
||||
import org.eclipse.lsp4j.Range;
|
||||
|
||||
@@ -28,4 +30,31 @@ public class LSPUtils {
|
||||
return LSPUtils.isEqual(r1.getStart(), r2.getStart())
|
||||
&& LSPUtils.isEqual(r1.getEnd(), r2.getEnd());
|
||||
}
|
||||
|
||||
public static Diagnostic newInfoDiagnostic(int line, int column, int length, String message, String text) {
|
||||
final Diagnostic diag = new Diagnostic();
|
||||
diag.setCode("todo");
|
||||
diag.setMessage(message);
|
||||
diag.setRange(getSingleLineRange(line, column, length));
|
||||
diag.setSeverity(DiagnosticSeverity.Information);
|
||||
diag.setSource(text);
|
||||
return diag;
|
||||
}
|
||||
|
||||
public static Diagnostic newWarningDiagnostic(int line, int column, int length, String message, String text) {
|
||||
final Diagnostic diag = new Diagnostic();
|
||||
diag.setCode("custom_warning");
|
||||
diag.setMessage(message);
|
||||
diag.setRange(getSingleLineRange(line, column, length));
|
||||
diag.setSeverity(DiagnosticSeverity.Warning);
|
||||
diag.setSource(text);
|
||||
return diag;
|
||||
}
|
||||
|
||||
public static Range getSingleLineRange(int line, int column, int length) {
|
||||
final Range range = new Range();
|
||||
range.setStart(new Position(line, column));
|
||||
range.setEnd(new Position(line, column + length));
|
||||
return range;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,6 +62,13 @@ public interface CodeAnalyzer {
|
||||
*/
|
||||
List<Diagnostic> findDiagnosticsContainingLine(int line);
|
||||
|
||||
/**
|
||||
* Get diagnostics at the specified line.
|
||||
*
|
||||
* @return A map containing the diagnostics mapped by their columns
|
||||
*/
|
||||
Map<Integer, Diagnostic> getDiagnosticsAtLine(int line);
|
||||
|
||||
/**
|
||||
* Analyze spans for the given input
|
||||
*
|
||||
|
||||
@@ -4,6 +4,8 @@ import io.github.rosemoe.editor.interfaces.CodeAnalyzer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.eclipse.lsp4j.Diagnostic;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
|
||||
public abstract class AbstractCodeAnalyzer implements CodeAnalyzer {
|
||||
|
||||
@@ -16,4 +18,9 @@ public abstract class AbstractCodeAnalyzer implements CodeAnalyzer {
|
||||
public List<Diagnostic> findDiagnosticsContainingLine(int line) {
|
||||
return new ArrayList<Diagnostic>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Integer, Diagnostic> getDiagnosticsAtLine(int line) {
|
||||
return new HashMap<Integer, Diagnostic>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -270,7 +270,6 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca
|
||||
private Paint mPaint;
|
||||
private Paint mPaintOther;
|
||||
private Paint mPaintGraph;
|
||||
private Path mPath;
|
||||
private char[] mBuffer;
|
||||
private char[] mBuffer2;
|
||||
private Matrix mMatrix;
|
||||
@@ -545,7 +544,6 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca
|
||||
mRightHandle = new RectF();
|
||||
mVerticalScrollBar = new RectF();
|
||||
mHorizontalScrollBar = new RectF();
|
||||
mPath = new Path();
|
||||
mDividerMargin = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, Resources.getSystem().getDisplayMetrics());
|
||||
mDividerWidth = mDividerMargin;
|
||||
mInsertSelWidth = mDividerWidth / 2;
|
||||
@@ -1284,8 +1282,6 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca
|
||||
* @param postDrawCursor Cursors to be drawn later
|
||||
*/
|
||||
private void drawRows(Canvas canvas, float offset, LongArrayList postDrawLineNumbers, List<CursorPaintAction> postDrawCursor, LongArrayList postDrawCurrentLines, MutableInt requiredFirstLn) {
|
||||
final float waveLength = getDpUnit() * 10;
|
||||
final float amplitude = getDpUnit() * 4;
|
||||
RowIterator rowIterator = mLayout.obtainRowIterator(getFirstVisibleRow());
|
||||
List<Span> temporaryEmptySpans = null;
|
||||
List<List<Span>> spanMap = mSpanner.getResult().getSpanMap();
|
||||
@@ -1388,24 +1384,9 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca
|
||||
}
|
||||
spans = temporaryEmptySpans;
|
||||
}
|
||||
float phi = 0f;
|
||||
|
||||
while (spanOffset + 1 < spans.size()) {
|
||||
if (spans.get(spanOffset + 1).column <= firstVisibleChar) {
|
||||
// Update phi
|
||||
Span span = spans.get(spanOffset);
|
||||
if (span.problemFlags > 0 && Integer.highestOneBit(span.problemFlags) != Span.FLAG_DEPRECATED) {
|
||||
float lineWidth;
|
||||
int spanEnd = Math.min(rowInf.endColumn, spans.get(spanOffset + 1).column);
|
||||
if (isWordwrap()) {
|
||||
lineWidth = measureText(mBuffer, Math.max(firstVisibleChar, span.column), spanEnd - Math.max(firstVisibleChar, span.column)) + phi;
|
||||
} else {
|
||||
lineWidth = measureText(mBuffer, span.column, spanEnd - span.column) + phi;
|
||||
}
|
||||
int waveCount = (int) Math.ceil(lineWidth / waveLength);
|
||||
phi = waveLength - (waveCount * waveLength - lineWidth);
|
||||
} else {
|
||||
phi = 0f;
|
||||
}
|
||||
spanOffset++;
|
||||
} else {
|
||||
break;
|
||||
@@ -1431,59 +1412,6 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca
|
||||
drawColor(canvas, span.underlineColor, mRect);
|
||||
}
|
||||
|
||||
if (span.problemFlags > 0 && Integer.highestOneBit(span.problemFlags) != Span.FLAG_DEPRECATED) {
|
||||
int color = 0;
|
||||
switch (Integer.highestOneBit(span.problemFlags)) {
|
||||
case Span.FLAG_ERROR:
|
||||
color = mColors.getColor(EditorColorScheme.DIAGNOSTIC_ERROR);
|
||||
break;
|
||||
case Span.FLAG_WARNING:
|
||||
color = mColors.getColor(EditorColorScheme.DIAGNOSTIC_WARNING);
|
||||
break;
|
||||
case Span.FLAG_INFO:
|
||||
color = mColors.getColor(EditorColorScheme.DIAGNOSTIC_INFO);
|
||||
break;
|
||||
case Span.FLAG_HINT:
|
||||
color = mColors.getColor(EditorColorScheme.DIAGNOSTIC_HINT);
|
||||
break;
|
||||
}
|
||||
if (color != 0 && span.column >= 0 && spanEnd - span.column >= 0) {
|
||||
// Start and end X offset
|
||||
float startOffset;
|
||||
float lineWidth;
|
||||
if (isWordwrap()) {
|
||||
startOffset = measureTextRegionOffset() + measureText(mBuffer, firstVisibleChar, Math.max(0, span.column - firstVisibleChar)) - getOffsetX();
|
||||
lineWidth = measureText(mBuffer, Math.max(firstVisibleChar, span.column), spanEnd - Math.max(firstVisibleChar, span.column)) + phi;
|
||||
} else {
|
||||
startOffset = measureTextRegionOffset() + measureText(mBuffer, 0, span.column) - getOffsetX();
|
||||
lineWidth = measureText(mBuffer, span.column, spanEnd - span.column) + phi;
|
||||
}
|
||||
float centerY = getRowBottom(row) - getOffsetY() - amplitude;
|
||||
// Clip region due not to draw outside the horizontal region
|
||||
canvas.save();
|
||||
canvas.clipRect(startOffset, 0, startOffset + lineWidth, canvas.getHeight());
|
||||
canvas.translate(startOffset - phi, centerY);
|
||||
// Draw waves
|
||||
mPath.reset();
|
||||
mPath.moveTo(0, 0);
|
||||
int waveCount = (int) Math.ceil(lineWidth / waveLength);
|
||||
for (int i = 0; i < waveCount; i++) {
|
||||
mPath.quadTo(waveLength * i + waveLength / 4, amplitude, waveLength * i + waveLength / 2, 0);
|
||||
mPath.quadTo(waveLength * i + waveLength * 3 / 4, -amplitude, waveLength * i + waveLength, 0);
|
||||
}
|
||||
phi = waveLength - (waveCount * waveLength - lineWidth);
|
||||
// Draw path
|
||||
mPaint.setStrokeWidth(getDpUnit() * 1.8f);
|
||||
mPaintOther.setStyle(Paint.Style.STROKE);
|
||||
mPaintOther.setColor(color);
|
||||
canvas.drawPath(mPath, mPaintOther);
|
||||
canvas.restore();
|
||||
}
|
||||
mPaintOther.setStyle(Paint.Style.FILL);
|
||||
} else {
|
||||
phi = 0f;
|
||||
}
|
||||
|
||||
paintingOffset += width;
|
||||
|
||||
if (paintEnd == lastVisibleChar) {
|
||||
@@ -1553,6 +1481,36 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca
|
||||
}
|
||||
}
|
||||
|
||||
final Paint.Style style = mPaint.getStyle();
|
||||
final float stroke = mPaint.getStrokeWidth();
|
||||
|
||||
mPaint.setStyle(Paint.Style.STROKE);
|
||||
mPaint.setStrokeWidth(getDpUnit() * 1.4f);
|
||||
final List<Diagnostic> diags = getEditorLanguage().getAnalyzer().findDiagnosticsContainingLine(line);
|
||||
if(diags != null && diags.size() > 0) {
|
||||
for(int i=0;i<diags.size();i++) {
|
||||
Diagnostic d = diags.get(i);
|
||||
if(d == null) continue;
|
||||
int startCol = d.getRange().getStart().getCharacter();
|
||||
int endCol = d.getRange().getEnd().getCharacter();
|
||||
if(line > d.getRange().getStart().getCharacter()) startCol = 0;
|
||||
if(line > d.getRange().getEnd().getCharacter()) endCol = 0;
|
||||
final int paintStart = Math.max(firstVisibleChar, startCol);
|
||||
final int paintEnd = Math.min(lastVisibleChar, endCol);
|
||||
final float width = measureText(mBuffer, paintStart, paintEnd - paintStart);
|
||||
final RectF r = new RectF();
|
||||
r.bottom = getRowBottom(line) - getOffsetY() - mDpUnit * 1;
|
||||
r.top = r.bottom - getRowHeight() * 0.2f;
|
||||
r.left = paintingOffset + measureText(mBuffer, firstVisibleChar, paintStart - firstVisibleChar);
|
||||
r.right = r.left + width;
|
||||
mPaint.setColor(diagnosticColor(d.getSeverity()));
|
||||
drawDiagnostics(r, canvas, mPaint);
|
||||
}
|
||||
}
|
||||
|
||||
mPaint.setStyle(style);
|
||||
mPaint.setStrokeWidth(stroke);
|
||||
|
||||
// Draw cursors
|
||||
if (mCursor.isSelected()) {
|
||||
if (mTextActionPresenter.shouldShowCursor()) {
|
||||
@@ -1572,6 +1530,29 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void drawDiagnostics(RectF rect, Canvas canvas, Paint paint) {
|
||||
final Path path = new Path();
|
||||
final float right = rect.right;
|
||||
final float bottom = rect.bottom;
|
||||
final float waveLength = getDpUnit() * 5f;
|
||||
final float halfLength = waveLength / 2;
|
||||
final float waveAmplitude = getDpUnit() * 4f;
|
||||
|
||||
path.moveTo(rect.left, rect.bottom);
|
||||
float x = rect.left;
|
||||
while (right > x) {
|
||||
path.quadTo(x + halfLength, bottom - waveAmplitude, x + waveLength, bottom);
|
||||
x += waveLength;
|
||||
path.quadTo(x + halfLength, bottom + waveAmplitude, x + waveLength, bottom);
|
||||
x += waveLength;
|
||||
if(x > right) {
|
||||
x = right;
|
||||
}
|
||||
}
|
||||
|
||||
canvas.drawPath(path, paint);
|
||||
}
|
||||
|
||||
private void drawRowBackground(Canvas canvas, int color, int row, int right) {
|
||||
mRect.top = getRowTop(row) - getOffsetY();
|
||||
@@ -1639,7 +1620,7 @@ public class CodeEditor extends View implements ContentListener, TextAnalyzer.Ca
|
||||
case Error : id = EditorColorScheme.DIAGNOSTIC_ERROR; break;
|
||||
case Warning : id = EditorColorScheme.DIAGNOSTIC_WARNING; break;
|
||||
case Information : id = EditorColorScheme.DIAGNOSTIC_INFO; break;
|
||||
default : id = EditorColorScheme.DIAGNOSTIC_ERROR; break;
|
||||
default : id = EditorColorScheme.DIAGNOSTIC_HINT; break;
|
||||
}
|
||||
return mColors.getColor(id);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user