mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-11-29 18:49:42 +00:00
Fixed import parsing by introducing another lexer mode.
This commit is contained in:
parent
8c5500822c
commit
b36a8b087c
@ -10,8 +10,6 @@ tokens { TYPEDEFNAME }
|
||||
|
||||
/** The C-Parser. Used for importing C-files and communicating with the Parser about typedefs. */
|
||||
CParser cParser;
|
||||
/** True of the next string is the name of a C-file to import*/
|
||||
boolean importEnter = false;
|
||||
/** True if the next CURLY starts ASM_MODE */
|
||||
boolean asmEnter = false;
|
||||
/** Counts the nested curlies inside ASM_MODE to determine when to exit ASM_MODE */
|
||||
@ -118,8 +116,8 @@ BOOLEAN : 'true' | 'false';
|
||||
KICKASM_BODY: '{{' .*? '}}';
|
||||
|
||||
// Preprocessor
|
||||
IMPORT: '#import' { importEnter=true; } ;
|
||||
INCLUDE: '#include' { importEnter=true; } ;
|
||||
IMPORT: '#import' { pushMode(IMPORT_MODE); } ;
|
||||
INCLUDE: '#include' { pushMode(IMPORT_MODE); } ;
|
||||
PRAGMA: '#pragma' ;
|
||||
DEFINE: '#define' ;
|
||||
DEFINE_CONTINUE: '\\\n' | '\\\r\n';
|
||||
@ -150,9 +148,8 @@ NAME : NAME_START NAME_CHAR* {if(cParser.isTypedef(getText())) setType(TYPEDEFNA
|
||||
fragment NAME_START : [a-zA-Z_];
|
||||
fragment NAME_CHAR : [a-zA-Z0-9_];
|
||||
|
||||
// Strings and chars - with special handling of imports
|
||||
SYSTEMFILE : '<' [a-zA-Z0-9_./\\\-]+ '>' { if(importEnter) { importEnter=false; cParser.loadCFile(getText(), true); } } ;
|
||||
STRING : '"' ('\\"' | ~'"')* '"' [z]?([ps][mu]?)?[z]? { if(importEnter) { importEnter=false; cParser.loadCFile(getText(), false); } } ;
|
||||
// Strings and chars
|
||||
STRING : '"' ('\\"' | ~'"')* '"' [z]?([ps][mu]?)?[z]? ;
|
||||
CHAR : '\'' ('\\'['"rfn] | ~'\'' ) '\'';
|
||||
|
||||
// White space on hidden channel 1
|
||||
@ -221,3 +218,14 @@ ASM_WS : [ \t\r\n\u00a0]+ -> channel(1);
|
||||
// Comments on hidden channel 2
|
||||
ASM_COMMENT_LINE : '//' ~[\r\n]* -> channel(2);
|
||||
ASM_COMMENT_BLOCK : '/*' .*? '*/' -> channel(2);
|
||||
|
||||
|
||||
// MODE FOR INCLUDE FILES
|
||||
mode IMPORT_MODE;
|
||||
IMPORT_SYSTEMFILE : '<' [a-zA-Z0-9_./\\\-]+ '>' { popMode();cParser.loadCFile(getText(), true); } ;
|
||||
IMPORT_LOCALFILE : '"' ('\\"' | ~'"')* '"' { popMode(); cParser.loadCFile(getText(), false); } ;
|
||||
// White space on hidden channel 1
|
||||
IMPORT_WS : [ \t\r\n\u00a0]+ -> channel(1);
|
||||
// Comments on hidden channel 2
|
||||
IMPORT_COMMENT_LINE : '//' ~[\r\n]* -> channel(2);
|
||||
IMPORT_COMMENT_BLOCK : '/*' .*? '*/' -> channel(2);
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@ -111,48 +111,52 @@ BININTEGER=110
|
||||
DECINTEGER=111
|
||||
HEXINTEGER=112
|
||||
NAME=113
|
||||
SYSTEMFILE=114
|
||||
STRING=115
|
||||
CHAR=116
|
||||
WS=117
|
||||
COMMENT_LINE=118
|
||||
COMMENT_BLOCK=119
|
||||
ASM_BYTE=120
|
||||
ASM_MNEMONIC=121
|
||||
ASM_IMM=122
|
||||
ASM_COLON=123
|
||||
ASM_COMMA=124
|
||||
ASM_PAR_BEGIN=125
|
||||
ASM_PAR_END=126
|
||||
ASM_BRACKET_BEGIN=127
|
||||
ASM_BRACKET_END=128
|
||||
ASM_DOT=129
|
||||
ASM_SHIFT_LEFT=130
|
||||
ASM_SHIFT_RIGHT=131
|
||||
ASM_PLUS=132
|
||||
ASM_MINUS=133
|
||||
ASM_LESS_THAN=134
|
||||
ASM_GREATER_THAN=135
|
||||
ASM_MULTIPLY=136
|
||||
ASM_DIVIDE=137
|
||||
ASM_CURLY_BEGIN=138
|
||||
ASM_CURLY_END=139
|
||||
ASM_NUMBER=140
|
||||
ASM_NUMFLOAT=141
|
||||
ASM_BINFLOAT=142
|
||||
ASM_DECFLOAT=143
|
||||
ASM_HEXFLOAT=144
|
||||
ASM_NUMINT=145
|
||||
ASM_BININTEGER=146
|
||||
ASM_DECINTEGER=147
|
||||
ASM_HEXINTEGER=148
|
||||
ASM_CHAR=149
|
||||
ASM_MULTI_REL=150
|
||||
ASM_MULTI_NAME=151
|
||||
ASM_NAME=152
|
||||
ASM_WS=153
|
||||
ASM_COMMENT_LINE=154
|
||||
ASM_COMMENT_BLOCK=155
|
||||
STRING=114
|
||||
CHAR=115
|
||||
WS=116
|
||||
COMMENT_LINE=117
|
||||
COMMENT_BLOCK=118
|
||||
ASM_BYTE=119
|
||||
ASM_MNEMONIC=120
|
||||
ASM_IMM=121
|
||||
ASM_COLON=122
|
||||
ASM_COMMA=123
|
||||
ASM_PAR_BEGIN=124
|
||||
ASM_PAR_END=125
|
||||
ASM_BRACKET_BEGIN=126
|
||||
ASM_BRACKET_END=127
|
||||
ASM_DOT=128
|
||||
ASM_SHIFT_LEFT=129
|
||||
ASM_SHIFT_RIGHT=130
|
||||
ASM_PLUS=131
|
||||
ASM_MINUS=132
|
||||
ASM_LESS_THAN=133
|
||||
ASM_GREATER_THAN=134
|
||||
ASM_MULTIPLY=135
|
||||
ASM_DIVIDE=136
|
||||
ASM_CURLY_BEGIN=137
|
||||
ASM_CURLY_END=138
|
||||
ASM_NUMBER=139
|
||||
ASM_NUMFLOAT=140
|
||||
ASM_BINFLOAT=141
|
||||
ASM_DECFLOAT=142
|
||||
ASM_HEXFLOAT=143
|
||||
ASM_NUMINT=144
|
||||
ASM_BININTEGER=145
|
||||
ASM_DECINTEGER=146
|
||||
ASM_HEXINTEGER=147
|
||||
ASM_CHAR=148
|
||||
ASM_MULTI_REL=149
|
||||
ASM_MULTI_NAME=150
|
||||
ASM_NAME=151
|
||||
ASM_WS=152
|
||||
ASM_COMMENT_LINE=153
|
||||
ASM_COMMENT_BLOCK=154
|
||||
IMPORT_SYSTEMFILE=155
|
||||
IMPORT_LOCALFILE=156
|
||||
IMPORT_WS=157
|
||||
IMPORT_COMMENT_LINE=158
|
||||
IMPORT_COMMENT_BLOCK=159
|
||||
';'=8
|
||||
'..'=11
|
||||
'?'=12
|
||||
@ -231,5 +235,5 @@ ASM_COMMENT_BLOCK=155
|
||||
'#elif'=101
|
||||
'#else'=102
|
||||
'#endif'=103
|
||||
'.byte'=120
|
||||
'#'=122
|
||||
'.byte'=119
|
||||
'#'=121
|
||||
|
@ -35,9 +35,9 @@ declOrImport
|
||||
;
|
||||
|
||||
importDecl
|
||||
: IMPORT STRING #importFile
|
||||
| INCLUDE STRING #includeFile
|
||||
| INCLUDE SYSTEMFILE #includeSystem
|
||||
: IMPORT IMPORT_LOCALFILE #importFile
|
||||
| INCLUDE IMPORT_LOCALFILE #includeFile
|
||||
| INCLUDE IMPORT_SYSTEMFILE #includeSystem
|
||||
;
|
||||
|
||||
decl
|
||||
|
File diff suppressed because one or more lines are too long
@ -37,16 +37,18 @@ public class KickCParser extends Parser {
|
||||
INCLUDE=93, PRAGMA=94, DEFINE=95, DEFINE_CONTINUE=96, UNDEF=97, IFDEF=98,
|
||||
IFNDEF=99, IFIF=100, ELIF=101, IFELSE=102, ENDIF=103, NUMBER=104, NUMFLOAT=105,
|
||||
BINFLOAT=106, DECFLOAT=107, HEXFLOAT=108, NUMINT=109, BININTEGER=110,
|
||||
DECINTEGER=111, HEXINTEGER=112, NAME=113, SYSTEMFILE=114, STRING=115,
|
||||
CHAR=116, WS=117, COMMENT_LINE=118, COMMENT_BLOCK=119, ASM_BYTE=120, ASM_MNEMONIC=121,
|
||||
ASM_IMM=122, ASM_COLON=123, ASM_COMMA=124, ASM_PAR_BEGIN=125, ASM_PAR_END=126,
|
||||
ASM_BRACKET_BEGIN=127, ASM_BRACKET_END=128, ASM_DOT=129, ASM_SHIFT_LEFT=130,
|
||||
ASM_SHIFT_RIGHT=131, ASM_PLUS=132, ASM_MINUS=133, ASM_LESS_THAN=134, ASM_GREATER_THAN=135,
|
||||
ASM_MULTIPLY=136, ASM_DIVIDE=137, ASM_CURLY_BEGIN=138, ASM_CURLY_END=139,
|
||||
ASM_NUMBER=140, ASM_NUMFLOAT=141, ASM_BINFLOAT=142, ASM_DECFLOAT=143,
|
||||
ASM_HEXFLOAT=144, ASM_NUMINT=145, ASM_BININTEGER=146, ASM_DECINTEGER=147,
|
||||
ASM_HEXINTEGER=148, ASM_CHAR=149, ASM_MULTI_REL=150, ASM_MULTI_NAME=151,
|
||||
ASM_NAME=152, ASM_WS=153, ASM_COMMENT_LINE=154, ASM_COMMENT_BLOCK=155;
|
||||
DECINTEGER=111, HEXINTEGER=112, NAME=113, STRING=114, CHAR=115, WS=116,
|
||||
COMMENT_LINE=117, COMMENT_BLOCK=118, ASM_BYTE=119, ASM_MNEMONIC=120, ASM_IMM=121,
|
||||
ASM_COLON=122, ASM_COMMA=123, ASM_PAR_BEGIN=124, ASM_PAR_END=125, ASM_BRACKET_BEGIN=126,
|
||||
ASM_BRACKET_END=127, ASM_DOT=128, ASM_SHIFT_LEFT=129, ASM_SHIFT_RIGHT=130,
|
||||
ASM_PLUS=131, ASM_MINUS=132, ASM_LESS_THAN=133, ASM_GREATER_THAN=134,
|
||||
ASM_MULTIPLY=135, ASM_DIVIDE=136, ASM_CURLY_BEGIN=137, ASM_CURLY_END=138,
|
||||
ASM_NUMBER=139, ASM_NUMFLOAT=140, ASM_BINFLOAT=141, ASM_DECFLOAT=142,
|
||||
ASM_HEXFLOAT=143, ASM_NUMINT=144, ASM_BININTEGER=145, ASM_DECINTEGER=146,
|
||||
ASM_HEXINTEGER=147, ASM_CHAR=148, ASM_MULTI_REL=149, ASM_MULTI_NAME=150,
|
||||
ASM_NAME=151, ASM_WS=152, ASM_COMMENT_LINE=153, ASM_COMMENT_BLOCK=154,
|
||||
IMPORT_SYSTEMFILE=155, IMPORT_LOCALFILE=156, IMPORT_WS=157, IMPORT_COMMENT_LINE=158,
|
||||
IMPORT_COMMENT_BLOCK=159;
|
||||
public static final int
|
||||
RULE_file = 0, RULE_asmFile = 1, RULE_declSeq = 2, RULE_declOrImport = 3,
|
||||
RULE_importDecl = 4, RULE_decl = 5, RULE_declVariables = 6, RULE_declVariableList = 7,
|
||||
@ -92,7 +94,7 @@ public class KickCParser extends Parser {
|
||||
"'cycles'", "'!'", null, null, null, null, "'#import'", "'#include'",
|
||||
"'#pragma'", "'#define'", null, "'#undef'", "'#ifdef'", "'#ifndef'",
|
||||
"'#if'", "'#elif'", "'#else'", "'#endif'", null, null, null, null, null,
|
||||
null, null, null, null, null, null, null, null, null, null, null, "'.byte'",
|
||||
null, null, null, null, null, null, null, null, null, null, "'.byte'",
|
||||
null, "'#'"
|
||||
};
|
||||
}
|
||||
@ -116,14 +118,16 @@ public class KickCParser extends Parser {
|
||||
"PRAGMA", "DEFINE", "DEFINE_CONTINUE", "UNDEF", "IFDEF", "IFNDEF", "IFIF",
|
||||
"ELIF", "IFELSE", "ENDIF", "NUMBER", "NUMFLOAT", "BINFLOAT", "DECFLOAT",
|
||||
"HEXFLOAT", "NUMINT", "BININTEGER", "DECINTEGER", "HEXINTEGER", "NAME",
|
||||
"SYSTEMFILE", "STRING", "CHAR", "WS", "COMMENT_LINE", "COMMENT_BLOCK",
|
||||
"ASM_BYTE", "ASM_MNEMONIC", "ASM_IMM", "ASM_COLON", "ASM_COMMA", "ASM_PAR_BEGIN",
|
||||
"STRING", "CHAR", "WS", "COMMENT_LINE", "COMMENT_BLOCK", "ASM_BYTE",
|
||||
"ASM_MNEMONIC", "ASM_IMM", "ASM_COLON", "ASM_COMMA", "ASM_PAR_BEGIN",
|
||||
"ASM_PAR_END", "ASM_BRACKET_BEGIN", "ASM_BRACKET_END", "ASM_DOT", "ASM_SHIFT_LEFT",
|
||||
"ASM_SHIFT_RIGHT", "ASM_PLUS", "ASM_MINUS", "ASM_LESS_THAN", "ASM_GREATER_THAN",
|
||||
"ASM_MULTIPLY", "ASM_DIVIDE", "ASM_CURLY_BEGIN", "ASM_CURLY_END", "ASM_NUMBER",
|
||||
"ASM_NUMFLOAT", "ASM_BINFLOAT", "ASM_DECFLOAT", "ASM_HEXFLOAT", "ASM_NUMINT",
|
||||
"ASM_BININTEGER", "ASM_DECINTEGER", "ASM_HEXINTEGER", "ASM_CHAR", "ASM_MULTI_REL",
|
||||
"ASM_MULTI_NAME", "ASM_NAME", "ASM_WS", "ASM_COMMENT_LINE", "ASM_COMMENT_BLOCK"
|
||||
"ASM_MULTI_NAME", "ASM_NAME", "ASM_WS", "ASM_COMMENT_LINE", "ASM_COMMENT_BLOCK",
|
||||
"IMPORT_SYSTEMFILE", "IMPORT_LOCALFILE", "IMPORT_WS", "IMPORT_COMMENT_LINE",
|
||||
"IMPORT_COMMENT_BLOCK"
|
||||
};
|
||||
}
|
||||
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
|
||||
@ -440,7 +444,7 @@ public class KickCParser extends Parser {
|
||||
}
|
||||
public static class IncludeFileContext extends ImportDeclContext {
|
||||
public TerminalNode INCLUDE() { return getToken(KickCParser.INCLUDE, 0); }
|
||||
public TerminalNode STRING() { return getToken(KickCParser.STRING, 0); }
|
||||
public TerminalNode IMPORT_LOCALFILE() { return getToken(KickCParser.IMPORT_LOCALFILE, 0); }
|
||||
public IncludeFileContext(ImportDeclContext ctx) { copyFrom(ctx); }
|
||||
@Override
|
||||
public void enterRule(ParseTreeListener listener) {
|
||||
@ -458,7 +462,7 @@ public class KickCParser extends Parser {
|
||||
}
|
||||
public static class IncludeSystemContext extends ImportDeclContext {
|
||||
public TerminalNode INCLUDE() { return getToken(KickCParser.INCLUDE, 0); }
|
||||
public TerminalNode SYSTEMFILE() { return getToken(KickCParser.SYSTEMFILE, 0); }
|
||||
public TerminalNode IMPORT_SYSTEMFILE() { return getToken(KickCParser.IMPORT_SYSTEMFILE, 0); }
|
||||
public IncludeSystemContext(ImportDeclContext ctx) { copyFrom(ctx); }
|
||||
@Override
|
||||
public void enterRule(ParseTreeListener listener) {
|
||||
@ -476,7 +480,7 @@ public class KickCParser extends Parser {
|
||||
}
|
||||
public static class ImportFileContext extends ImportDeclContext {
|
||||
public TerminalNode IMPORT() { return getToken(KickCParser.IMPORT, 0); }
|
||||
public TerminalNode STRING() { return getToken(KickCParser.STRING, 0); }
|
||||
public TerminalNode IMPORT_LOCALFILE() { return getToken(KickCParser.IMPORT_LOCALFILE, 0); }
|
||||
public ImportFileContext(ImportDeclContext ctx) { copyFrom(ctx); }
|
||||
@Override
|
||||
public void enterRule(ParseTreeListener listener) {
|
||||
@ -507,7 +511,7 @@ public class KickCParser extends Parser {
|
||||
setState(110);
|
||||
match(IMPORT);
|
||||
setState(111);
|
||||
match(STRING);
|
||||
match(IMPORT_LOCALFILE);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
@ -517,7 +521,7 @@ public class KickCParser extends Parser {
|
||||
setState(112);
|
||||
match(INCLUDE);
|
||||
setState(113);
|
||||
match(STRING);
|
||||
match(IMPORT_LOCALFILE);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
@ -527,7 +531,7 @@ public class KickCParser extends Parser {
|
||||
setState(114);
|
||||
match(INCLUDE);
|
||||
setState(115);
|
||||
match(SYSTEMFILE);
|
||||
match(IMPORT_SYSTEMFILE);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -6367,7 +6371,7 @@ public class KickCParser extends Parser {
|
||||
setState(803);
|
||||
_errHandler.sync(this);
|
||||
_la = _input.LA(1);
|
||||
while (((((_la - 120)) & ~0x3f) == 0 && ((1L << (_la - 120)) & ((1L << (ASM_BYTE - 120)) | (1L << (ASM_MNEMONIC - 120)) | (1L << (ASM_MULTI_NAME - 120)) | (1L << (ASM_NAME - 120)))) != 0)) {
|
||||
while (((((_la - 119)) & ~0x3f) == 0 && ((1L << (_la - 119)) & ((1L << (ASM_BYTE - 119)) | (1L << (ASM_MNEMONIC - 119)) | (1L << (ASM_MULTI_NAME - 119)) | (1L << (ASM_NAME - 119)))) != 0)) {
|
||||
{
|
||||
{
|
||||
setState(800);
|
||||
@ -7128,7 +7132,7 @@ public class KickCParser extends Parser {
|
||||
_prevctx = _localctx;
|
||||
setState(860);
|
||||
_la = _input.LA(1);
|
||||
if ( !(((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (ASM_PLUS - 132)) | (1L << (ASM_MINUS - 132)) | (1L << (ASM_LESS_THAN - 132)) | (1L << (ASM_GREATER_THAN - 132)))) != 0)) ) {
|
||||
if ( !(((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (ASM_PLUS - 131)) | (1L << (ASM_MINUS - 131)) | (1L << (ASM_LESS_THAN - 131)) | (1L << (ASM_GREATER_THAN - 131)))) != 0)) ) {
|
||||
_errHandler.recoverInline(this);
|
||||
}
|
||||
else {
|
||||
@ -7410,7 +7414,7 @@ public class KickCParser extends Parser {
|
||||
}
|
||||
|
||||
public static final String _serializedATN =
|
||||
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\u009d\u037b\4\2\t"+
|
||||
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\u00a1\u037b\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"+
|
||||
@ -7477,8 +7481,8 @@ public class KickCParser extends Parser {
|
||||
"\3\60\3\60\3\60\3\60\3\60\3\60\7\60\u0376\n\60\f\60\16\60\u0379\13\60"+
|
||||
"\3\60\2\t\20\34\36*FH^\61\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&"+
|
||||
"(*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^\2\r\3\2\26\27\5\2\21\22\30\31YY"+
|
||||
"\4\2 ##\3\2\34\35\3\2\23\25\3\2\21\22\3\2\36#\3\2\u0086\u0089\3\2\u0084"+
|
||||
"\u0085\3\2\u008a\u008b\3\2\u0086\u0087\2\u03fc\2`\3\2\2\2\4c\3\2\2\2\6"+
|
||||
"\4\2 ##\3\2\34\35\3\2\23\25\3\2\21\22\3\2\36#\3\2\u0085\u0088\3\2\u0083"+
|
||||
"\u0084\3\2\u0089\u008a\3\2\u0085\u0086\2\u03fc\2`\3\2\2\2\4c\3\2\2\2\6"+
|
||||
"i\3\2\2\2\bn\3\2\2\2\nv\3\2\2\2\f\u0087\3\2\2\2\16\u0089\3\2\2\2\20\u008c"+
|
||||
"\3\2\2\2\22\u00a3\3\2\2\2\24\u00c8\3\2\2\2\26\u00cd\3\2\2\2\30\u00d7\3"+
|
||||
"\2\2\2\32\u00de\3\2\2\2\34\u00e4\3\2\2\2\36\u0103\3\2\2\2 \u0113\3\2\2"+
|
||||
@ -7491,62 +7495,62 @@ public class KickCParser extends Parser {
|
||||
"\3\2\2\2Z\u0337\3\2\2\2\\\u0357\3\2\2\2^\u0367\3\2\2\2`a\5\6\4\2ab\7\2"+
|
||||
"\2\3b\3\3\2\2\2cd\5R*\2de\7\2\2\3e\5\3\2\2\2fh\5\b\5\2gf\3\2\2\2hk\3\2"+
|
||||
"\2\2ig\3\2\2\2ij\3\2\2\2j\7\3\2\2\2ki\3\2\2\2lo\5\f\7\2mo\5\n\6\2nl\3"+
|
||||
"\2\2\2nm\3\2\2\2o\t\3\2\2\2pq\7^\2\2qw\7u\2\2rs\7_\2\2sw\7u\2\2tu\7_\2"+
|
||||
"\2uw\7t\2\2vp\3\2\2\2vr\3\2\2\2vt\3\2\2\2w\13\3\2\2\2xy\5\16\b\2yz\7\n"+
|
||||
"\2\2z\u0088\3\2\2\2{|\5\"\22\2|}\7\n\2\2}\u0088\3\2\2\2~\177\5(\25\2\177"+
|
||||
"\u0080\7\n\2\2\u0080\u0088\3\2\2\2\u0081\u0088\5.\30\2\u0082\u0088\5L"+
|
||||
"\'\2\u0083\u0088\5\66\34\2\u0084\u0085\5\22\n\2\u0085\u0086\7\n\2\2\u0086"+
|
||||
"\u0088\3\2\2\2\u0087x\3\2\2\2\u0087{\3\2\2\2\u0087~\3\2\2\2\u0087\u0081"+
|
||||
"\3\2\2\2\u0087\u0082\3\2\2\2\u0087\u0083\3\2\2\2\u0087\u0084\3\2\2\2\u0088"+
|
||||
"\r\3\2\2\2\u0089\u008a\5\26\f\2\u008a\u008b\5\20\t\2\u008b\17\3\2\2\2"+
|
||||
"\u008c\u0090\b\t\1\2\u008d\u008f\5\30\r\2\u008e\u008d\3\2\2\2\u008f\u0092"+
|
||||
"\3\2\2\2\u0090\u008e\3\2\2\2\u0090\u0091\3\2\2\2\u0091\u0093\3\2\2\2\u0092"+
|
||||
"\u0090\3\2\2\2\u0093\u0094\5\24\13\2\u0094\u00a0\3\2\2\2\u0095\u0096\f"+
|
||||
"\3\2\2\u0096\u009a\7\f\2\2\u0097\u0099\5\30\r\2\u0098\u0097\3\2\2\2\u0099"+
|
||||
"\u009c\3\2\2\2\u009a\u0098\3\2\2\2\u009a\u009b\3\2\2\2\u009b\u009d\3\2"+
|
||||
"\2\2\u009c\u009a\3\2\2\2\u009d\u009f\5\24\13\2\u009e\u0095\3\2\2\2\u009f"+
|
||||
"\u00a2\3\2\2\2\u00a0\u009e\3\2\2\2\u00a0\u00a1\3\2\2\2\u00a1\21\3\2\2"+
|
||||
"\2\u00a2\u00a0\3\2\2\2\u00a3\u00a4\7(\2\2\u00a4\u00a8\5\26\f\2\u00a5\u00a7"+
|
||||
"\5\30\r\2\u00a6\u00a5\3\2\2\2\u00a7\u00aa\3\2\2\2\u00a8\u00a6\3\2\2\2"+
|
||||
"\u00a8\u00a9\3\2\2\2\u00a9\u00ab\3\2\2\2\u00aa\u00a8\3\2\2\2\u00ab\u00af"+
|
||||
"\7s\2\2\u00ac\u00ae\5\32\16\2\u00ad\u00ac\3\2\2\2\u00ae\u00b1\3\2\2\2"+
|
||||
"\u00af\u00ad\3\2\2\2\u00af\u00b0\3\2\2\2\u00b0\u00b2\3\2\2\2\u00b1\u00af"+
|
||||
"\3\2\2\2\u00b2\u00b3\b\n\1\2\u00b3\23\3\2\2\2\u00b4\u00b8\7s\2\2\u00b5"+
|
||||
"\u00b7\5\32\16\2\u00b6\u00b5\3\2\2\2\u00b7\u00ba\3\2\2\2\u00b8\u00b6\3"+
|
||||
"\2\2\2\u00b8\u00b9\3\2\2\2\u00b9\u00bd\3\2\2\2\u00ba\u00b8\3\2\2\2\u00bb"+
|
||||
"\u00bc\7&\2\2\u00bc\u00be\5H%\2\u00bd\u00bb\3\2\2\2\u00bd\u00be\3\2\2"+
|
||||
"\2\u00be\u00c9\3\2\2\2\u00bf\u00c3\7s\2\2\u00c0\u00c2\5\32\16\2\u00c1"+
|
||||
"\u00c0\3\2\2\2\u00c2\u00c5\3\2\2\2\u00c3\u00c1\3\2\2\2\u00c3\u00c4\3\2"+
|
||||
"\2\2\u00c4\u00c6\3\2\2\2\u00c5\u00c3\3\2\2\2\u00c6\u00c7\7&\2\2\u00c7"+
|
||||
"\u00c9\5L\'\2\u00c8\u00b4\3\2\2\2\u00c8\u00bf\3\2\2\2\u00c9\25\3\2\2\2"+
|
||||
"\u00ca\u00cc\58\35\2\u00cb\u00ca\3\2\2\2\u00cc\u00cf\3\2\2\2\u00cd\u00cb"+
|
||||
"\3\2\2\2\u00cd\u00ce\3\2\2\2\u00ce\u00d0\3\2\2\2\u00cf\u00cd\3\2\2\2\u00d0"+
|
||||
"\u00d4\5\36\20\2\u00d1\u00d3\58\35\2\u00d2\u00d1\3\2\2\2\u00d3\u00d6\3"+
|
||||
"\2\2\2\u00d4\u00d2\3\2\2\2\u00d4\u00d5\3\2\2\2\u00d5\27\3\2\2\2\u00d6"+
|
||||
"\u00d4\3\2\2\2\u00d7\u00db\7\23\2\2\u00d8\u00da\58\35\2\u00d9\u00d8\3"+
|
||||
"\2\2\2\u00da\u00dd\3\2\2\2\u00db\u00d9\3\2\2\2\u00db\u00dc\3\2\2\2\u00dc"+
|
||||
"\31\3\2\2\2\u00dd\u00db\3\2\2\2\u00de\u00e0\7\6\2\2\u00df\u00e1\5H%\2"+
|
||||
"\u00e0\u00df\3\2\2\2\u00e0\u00e1\3\2\2\2\u00e1\u00e2\3\2\2\2\u00e2\u00e3"+
|
||||
"\7\7\2\2\u00e3\33\3\2\2\2\u00e4\u00e5\b\17\1\2\u00e5\u00e6\5\36\20\2\u00e6"+
|
||||
"\u00f1\3\2\2\2\u00e7\u00e8\f\4\2\2\u00e8\u00f0\7\23\2\2\u00e9\u00ea\f"+
|
||||
"\3\2\2\u00ea\u00ec\7\6\2\2\u00eb\u00ed\5H%\2\u00ec\u00eb\3\2\2\2\u00ec"+
|
||||
"\u00ed\3\2\2\2\u00ed\u00ee\3\2\2\2\u00ee\u00f0\7\7\2\2\u00ef\u00e7\3\2"+
|
||||
"\2\2\u00ef\u00e9\3\2\2\2\u00f0\u00f3\3\2\2\2\u00f1\u00ef\3\2\2\2\u00f1"+
|
||||
"\u00f2\3\2\2\2\u00f2\35\3\2\2\2\u00f3\u00f1\3\2\2\2\u00f4\u00f5\b\20\1"+
|
||||
"\2\u00f5\u00f6\7\b\2\2\u00f6\u00f7\5\36\20\2\u00f7\u00f8\7\t\2\2\u00f8"+
|
||||
"\u0104\3\2\2\2\u00f9\u0104\7[\2\2\u00fa\u00fc\7Z\2\2\u00fb\u00fd\7[\2"+
|
||||
"\2\u00fc\u00fb\3\2\2\2\u00fc\u00fd\3\2\2\2\u00fd\u0104\3\2\2\2\u00fe\u0104"+
|
||||
"\5\"\22\2\u00ff\u0104\5 \21\2\u0100\u0104\5(\25\2\u0101\u0104\5&\24\2"+
|
||||
"\u0102\u0104\7\3\2\2\u0103\u00f4\3\2\2\2\u0103\u00f9\3\2\2\2\u0103\u00fa"+
|
||||
"\3\2\2\2\u0103\u00fe\3\2\2\2\u0103\u00ff\3\2\2\2\u0103\u0100\3\2\2\2\u0103"+
|
||||
"\u0101\3\2\2\2\u0103\u0102\3\2\2\2\u0104\u0110\3\2\2\2\u0105\u0106\f\t"+
|
||||
"\2\2\u0106\u0108\7\6\2\2\u0107\u0109\5H%\2\u0108\u0107\3\2\2\2\u0108\u0109"+
|
||||
"\3\2\2\2\u0109\u010a\3\2\2\2\u010a\u010f\7\7\2\2\u010b\u010c\f\b\2\2\u010c"+
|
||||
"\u010d\7\b\2\2\u010d\u010f\7\t\2\2\u010e\u0105\3\2\2\2\u010e\u010b\3\2"+
|
||||
"\2\2\u010f\u0112\3\2\2\2\u0110\u010e\3\2\2\2\u0110\u0111\3\2\2\2\u0111"+
|
||||
"\37\3\2\2\2\u0112\u0110\3\2\2\2\u0113\u0114\7N\2\2\u0114\u0115\7s\2\2"+
|
||||
"\u0115!\3\2\2\2\u0116\u0118\7N\2\2\u0117\u0119\7s\2\2\u0118\u0117\3\2"+
|
||||
"\2\2\u0118\u0119\3\2\2\2\u0119\u011a\3\2\2\2\u011a\u011c\7\4\2\2\u011b"+
|
||||
"\2\2\2nm\3\2\2\2o\t\3\2\2\2pq\7^\2\2qw\7\u009e\2\2rs\7_\2\2sw\7\u009e"+
|
||||
"\2\2tu\7_\2\2uw\7\u009d\2\2vp\3\2\2\2vr\3\2\2\2vt\3\2\2\2w\13\3\2\2\2"+
|
||||
"xy\5\16\b\2yz\7\n\2\2z\u0088\3\2\2\2{|\5\"\22\2|}\7\n\2\2}\u0088\3\2\2"+
|
||||
"\2~\177\5(\25\2\177\u0080\7\n\2\2\u0080\u0088\3\2\2\2\u0081\u0088\5.\30"+
|
||||
"\2\u0082\u0088\5L\'\2\u0083\u0088\5\66\34\2\u0084\u0085\5\22\n\2\u0085"+
|
||||
"\u0086\7\n\2\2\u0086\u0088\3\2\2\2\u0087x\3\2\2\2\u0087{\3\2\2\2\u0087"+
|
||||
"~\3\2\2\2\u0087\u0081\3\2\2\2\u0087\u0082\3\2\2\2\u0087\u0083\3\2\2\2"+
|
||||
"\u0087\u0084\3\2\2\2\u0088\r\3\2\2\2\u0089\u008a\5\26\f\2\u008a\u008b"+
|
||||
"\5\20\t\2\u008b\17\3\2\2\2\u008c\u0090\b\t\1\2\u008d\u008f\5\30\r\2\u008e"+
|
||||
"\u008d\3\2\2\2\u008f\u0092\3\2\2\2\u0090\u008e\3\2\2\2\u0090\u0091\3\2"+
|
||||
"\2\2\u0091\u0093\3\2\2\2\u0092\u0090\3\2\2\2\u0093\u0094\5\24\13\2\u0094"+
|
||||
"\u00a0\3\2\2\2\u0095\u0096\f\3\2\2\u0096\u009a\7\f\2\2\u0097\u0099\5\30"+
|
||||
"\r\2\u0098\u0097\3\2\2\2\u0099\u009c\3\2\2\2\u009a\u0098\3\2\2\2\u009a"+
|
||||
"\u009b\3\2\2\2\u009b\u009d\3\2\2\2\u009c\u009a\3\2\2\2\u009d\u009f\5\24"+
|
||||
"\13\2\u009e\u0095\3\2\2\2\u009f\u00a2\3\2\2\2\u00a0\u009e\3\2\2\2\u00a0"+
|
||||
"\u00a1\3\2\2\2\u00a1\21\3\2\2\2\u00a2\u00a0\3\2\2\2\u00a3\u00a4\7(\2\2"+
|
||||
"\u00a4\u00a8\5\26\f\2\u00a5\u00a7\5\30\r\2\u00a6\u00a5\3\2\2\2\u00a7\u00aa"+
|
||||
"\3\2\2\2\u00a8\u00a6\3\2\2\2\u00a8\u00a9\3\2\2\2\u00a9\u00ab\3\2\2\2\u00aa"+
|
||||
"\u00a8\3\2\2\2\u00ab\u00af\7s\2\2\u00ac\u00ae\5\32\16\2\u00ad\u00ac\3"+
|
||||
"\2\2\2\u00ae\u00b1\3\2\2\2\u00af\u00ad\3\2\2\2\u00af\u00b0\3\2\2\2\u00b0"+
|
||||
"\u00b2\3\2\2\2\u00b1\u00af\3\2\2\2\u00b2\u00b3\b\n\1\2\u00b3\23\3\2\2"+
|
||||
"\2\u00b4\u00b8\7s\2\2\u00b5\u00b7\5\32\16\2\u00b6\u00b5\3\2\2\2\u00b7"+
|
||||
"\u00ba\3\2\2\2\u00b8\u00b6\3\2\2\2\u00b8\u00b9\3\2\2\2\u00b9\u00bd\3\2"+
|
||||
"\2\2\u00ba\u00b8\3\2\2\2\u00bb\u00bc\7&\2\2\u00bc\u00be\5H%\2\u00bd\u00bb"+
|
||||
"\3\2\2\2\u00bd\u00be\3\2\2\2\u00be\u00c9\3\2\2\2\u00bf\u00c3\7s\2\2\u00c0"+
|
||||
"\u00c2\5\32\16\2\u00c1\u00c0\3\2\2\2\u00c2\u00c5\3\2\2\2\u00c3\u00c1\3"+
|
||||
"\2\2\2\u00c3\u00c4\3\2\2\2\u00c4\u00c6\3\2\2\2\u00c5\u00c3\3\2\2\2\u00c6"+
|
||||
"\u00c7\7&\2\2\u00c7\u00c9\5L\'\2\u00c8\u00b4\3\2\2\2\u00c8\u00bf\3\2\2"+
|
||||
"\2\u00c9\25\3\2\2\2\u00ca\u00cc\58\35\2\u00cb\u00ca\3\2\2\2\u00cc\u00cf"+
|
||||
"\3\2\2\2\u00cd\u00cb\3\2\2\2\u00cd\u00ce\3\2\2\2\u00ce\u00d0\3\2\2\2\u00cf"+
|
||||
"\u00cd\3\2\2\2\u00d0\u00d4\5\36\20\2\u00d1\u00d3\58\35\2\u00d2\u00d1\3"+
|
||||
"\2\2\2\u00d3\u00d6\3\2\2\2\u00d4\u00d2\3\2\2\2\u00d4\u00d5\3\2\2\2\u00d5"+
|
||||
"\27\3\2\2\2\u00d6\u00d4\3\2\2\2\u00d7\u00db\7\23\2\2\u00d8\u00da\58\35"+
|
||||
"\2\u00d9\u00d8\3\2\2\2\u00da\u00dd\3\2\2\2\u00db\u00d9\3\2\2\2\u00db\u00dc"+
|
||||
"\3\2\2\2\u00dc\31\3\2\2\2\u00dd\u00db\3\2\2\2\u00de\u00e0\7\6\2\2\u00df"+
|
||||
"\u00e1\5H%\2\u00e0\u00df\3\2\2\2\u00e0\u00e1\3\2\2\2\u00e1\u00e2\3\2\2"+
|
||||
"\2\u00e2\u00e3\7\7\2\2\u00e3\33\3\2\2\2\u00e4\u00e5\b\17\1\2\u00e5\u00e6"+
|
||||
"\5\36\20\2\u00e6\u00f1\3\2\2\2\u00e7\u00e8\f\4\2\2\u00e8\u00f0\7\23\2"+
|
||||
"\2\u00e9\u00ea\f\3\2\2\u00ea\u00ec\7\6\2\2\u00eb\u00ed\5H%\2\u00ec\u00eb"+
|
||||
"\3\2\2\2\u00ec\u00ed\3\2\2\2\u00ed\u00ee\3\2\2\2\u00ee\u00f0\7\7\2\2\u00ef"+
|
||||
"\u00e7\3\2\2\2\u00ef\u00e9\3\2\2\2\u00f0\u00f3\3\2\2\2\u00f1\u00ef\3\2"+
|
||||
"\2\2\u00f1\u00f2\3\2\2\2\u00f2\35\3\2\2\2\u00f3\u00f1\3\2\2\2\u00f4\u00f5"+
|
||||
"\b\20\1\2\u00f5\u00f6\7\b\2\2\u00f6\u00f7\5\36\20\2\u00f7\u00f8\7\t\2"+
|
||||
"\2\u00f8\u0104\3\2\2\2\u00f9\u0104\7[\2\2\u00fa\u00fc\7Z\2\2\u00fb\u00fd"+
|
||||
"\7[\2\2\u00fc\u00fb\3\2\2\2\u00fc\u00fd\3\2\2\2\u00fd\u0104\3\2\2\2\u00fe"+
|
||||
"\u0104\5\"\22\2\u00ff\u0104\5 \21\2\u0100\u0104\5(\25\2\u0101\u0104\5"+
|
||||
"&\24\2\u0102\u0104\7\3\2\2\u0103\u00f4\3\2\2\2\u0103\u00f9\3\2\2\2\u0103"+
|
||||
"\u00fa\3\2\2\2\u0103\u00fe\3\2\2\2\u0103\u00ff\3\2\2\2\u0103\u0100\3\2"+
|
||||
"\2\2\u0103\u0101\3\2\2\2\u0103\u0102\3\2\2\2\u0104\u0110\3\2\2\2\u0105"+
|
||||
"\u0106\f\t\2\2\u0106\u0108\7\6\2\2\u0107\u0109\5H%\2\u0108\u0107\3\2\2"+
|
||||
"\2\u0108\u0109\3\2\2\2\u0109\u010a\3\2\2\2\u010a\u010f\7\7\2\2\u010b\u010c"+
|
||||
"\f\b\2\2\u010c\u010d\7\b\2\2\u010d\u010f\7\t\2\2\u010e\u0105\3\2\2\2\u010e"+
|
||||
"\u010b\3\2\2\2\u010f\u0112\3\2\2\2\u0110\u010e\3\2\2\2\u0110\u0111\3\2"+
|
||||
"\2\2\u0111\37\3\2\2\2\u0112\u0110\3\2\2\2\u0113\u0114\7N\2\2\u0114\u0115"+
|
||||
"\7s\2\2\u0115!\3\2\2\2\u0116\u0118\7N\2\2\u0117\u0119\7s\2\2\u0118\u0117"+
|
||||
"\3\2\2\2\u0118\u0119\3\2\2\2\u0119\u011a\3\2\2\2\u011a\u011c\7\4\2\2\u011b"+
|
||||
"\u011d\5$\23\2\u011c\u011b\3\2\2\2\u011d\u011e\3\2\2\2\u011e\u011c\3\2"+
|
||||
"\2\2\u011e\u011f\3\2\2\2\u011f\u0120\3\2\2\2\u0120\u0121\7\5\2\2\u0121"+
|
||||
"#\3\2\2\2\u0122\u0123\5\16\b\2\u0123\u0124\7\n\2\2\u0124%\3\2\2\2\u0125"+
|
||||
@ -7582,7 +7586,7 @@ public class KickCParser extends Parser {
|
||||
"\u01b6\7\t\2\2\u0184\u0185\7`\2\2\u0185\u0186\7-\2\2\u0186\u0187\3\2\2"+
|
||||
"\2\u0187\u0188\7\b\2\2\u0188\u0189\7s\2\2\u0189\u01b6\7\t\2\2\u018a\u018b"+
|
||||
"\7`\2\2\u018b\u018c\7,\2\2\u018c\u018d\3\2\2\2\u018d\u018e\7\b\2\2\u018e"+
|
||||
"\u018f\7u\2\2\u018f\u01b6\7\t\2\2\u0190\u0191\7`\2\2\u0191\u0192\7.\2"+
|
||||
"\u018f\7t\2\2\u018f\u01b6\7\t\2\2\u0190\u0191\7`\2\2\u0191\u0192\7.\2"+
|
||||
"\2\u0192\u0193\3\2\2\2\u0193\u0194\7\b\2\2\u0194\u0195\7s\2\2\u0195\u01b6"+
|
||||
"\7\t\2\2\u0196\u0197\7`\2\2\u0197\u0198\7/\2\2\u0198\u0199\3\2\2\2\u0199"+
|
||||
"\u019a\7\b\2\2\u019a\u019b\7s\2\2\u019b\u01b6\7\t\2\2\u019c\u019d\7`\2"+
|
||||
@ -7639,7 +7643,7 @@ public class KickCParser extends Parser {
|
||||
"\2\u022e\u023d\7\n\2\2\u022f\u0230\7I\2\2\u0230\u023d\7\n\2\2\u0231\u0232"+
|
||||
"\7J\2\2\u0232\u023d\7\n\2\2\u0233\u0235\7K\2\2\u0234\u0236\5N(\2\u0235"+
|
||||
"\u0234\3\2\2\2\u0235\u0236\3\2\2\2\u0236\u0237\3\2\2\2\u0237\u0238\7\4"+
|
||||
"\2\2\u0238\u0239\5R*\2\u0239\u023a\7\u008d\2\2\u023a\u023d\3\2\2\2\u023b"+
|
||||
"\2\2\u0238\u0239\5R*\2\u0239\u023a\7\u008c\2\2\u023a\u023d\3\2\2\2\u023b"+
|
||||
"\u023d\5L\'\2\u023c\u01e8\3\2\2\2\u023c\u01eb\3\2\2\2\u023c\u01f0\3\2"+
|
||||
"\2\2\u023c\u01f3\3\2\2\2\u023c\u01ff\3\2\2\2\u023c\u020b\3\2\2\2\u023c"+
|
||||
"\u0219\3\2\2\2\u023c\u0222\3\2\2\2\u023c\u022a\3\2\2\2\u023c\u022f\3\2"+
|
||||
@ -7680,9 +7684,9 @@ public class KickCParser extends Parser {
|
||||
"\7\f\2\2\u02a6\u02a8\5H%\2\u02a7\u02a5\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\7\5\2\2\u02ad\u02b8\3\2\2\2\u02ae\u02b8\7s\2\2\u02af"+
|
||||
"\u02b8\7j\2\2\u02b0\u02b2\7u\2\2\u02b1\u02b0\3\2\2\2\u02b2\u02b3\3\2\2"+
|
||||
"\u02b8\7j\2\2\u02b0\u02b2\7t\2\2\u02b1\u02b0\3\2\2\2\u02b2\u02b3\3\2\2"+
|
||||
"\2\u02b3\u02b1\3\2\2\2\u02b3\u02b4\3\2\2\2\u02b4\u02b8\3\2\2\2\u02b5\u02b8"+
|
||||
"\7v\2\2\u02b6\u02b8\7\\\2\2\u02b7\u0279\3\2\2\2\u02b7\u027e\3\2\2\2\u02b7"+
|
||||
"\7u\2\2\u02b6\u02b8\7\\\2\2\u02b7\u0279\3\2\2\2\u02b7\u027e\3\2\2\2\u02b7"+
|
||||
"\u0286\3\2\2\2\u02b7\u028e\3\2\2\2\u02b7\u0296\3\2\2\2\u02b7\u029b\3\2"+
|
||||
"\2\2\u02b7\u029d\3\2\2\2\u02b7\u029f\3\2\2\2\u02b7\u02a1\3\2\2\2\u02b7"+
|
||||
"\u02a3\3\2\2\2\u02b7\u02ae\3\2\2\2\u02b7\u02af\3\2\2\2\u02b7\u02b1\3\2"+
|
||||
@ -7717,8 +7721,8 @@ public class KickCParser extends Parser {
|
||||
"\u0307\7\b\2\2\u0307\u030c\5P)\2\u0308\u0309\7\f\2\2\u0309\u030b\5P)\2"+
|
||||
"\u030a\u0308\3\2\2\2\u030b\u030e\3\2\2\2\u030c\u030a\3\2\2\2\u030c\u030d"+
|
||||
"\3\2\2\2\u030d\u030f\3\2\2\2\u030e\u030c\3\2\2\2\u030f\u0310\7\t\2\2\u0310"+
|
||||
"O\3\2\2\2\u0311\u0312\7T\2\2\u0312\u0321\7u\2\2\u0313\u0314\7U\2\2\u0314"+
|
||||
"\u0321\7s\2\2\u0315\u0316\7V\2\2\u0316\u0321\7u\2\2\u0317\u0318\7W\2\2"+
|
||||
"O\3\2\2\2\u0311\u0312\7T\2\2\u0312\u0321\7t\2\2\u0313\u0314\7U\2\2\u0314"+
|
||||
"\u0321\7s\2\2\u0315\u0316\7V\2\2\u0316\u0321\7t\2\2\u0317\u0318\7W\2\2"+
|
||||
"\u0318\u0321\5H%\2\u0319\u031a\7X\2\2\u031a\u0321\5H%\2\u031b\u031e\7"+
|
||||
"*\2\2\u031c\u031f\7\65\2\2\u031d\u031f\5H%\2\u031e\u031c\3\2\2\2\u031e"+
|
||||
"\u031d\3\2\2\2\u031f\u0321\3\2\2\2\u0320\u0311\3\2\2\2\u0320\u0313\3\2"+
|
||||
@ -7727,41 +7731,41 @@ public class KickCParser extends Parser {
|
||||
"\u0327\3\2\2\2\u0325\u0323\3\2\2\2\u0325\u0326\3\2\2\2\u0326S\3\2\2\2"+
|
||||
"\u0327\u0325\3\2\2\2\u0328\u032c\5V,\2\u0329\u032c\5X-\2\u032a\u032c\5"+
|
||||
"Z.\2\u032b\u0328\3\2\2\2\u032b\u0329\3\2\2\2\u032b\u032a\3\2\2\2\u032c"+
|
||||
"U\3\2\2\2\u032d\u032e\7\u009a\2\2\u032e\u0332\7}\2\2\u032f\u0330\7\u0099"+
|
||||
"\2\2\u0330\u0332\7}\2\2\u0331\u032d\3\2\2\2\u0331\u032f\3\2\2\2\u0332"+
|
||||
"W\3\2\2\2\u0333\u0335\7{\2\2\u0334\u0336\5\\/\2\u0335\u0334\3\2\2\2\u0335"+
|
||||
"\u0336\3\2\2\2\u0336Y\3\2\2\2\u0337\u0338\7z\2\2\u0338\u033d\5^\60\2\u0339"+
|
||||
"\u033a\7~\2\2\u033a\u033c\5^\60\2\u033b\u0339\3\2\2\2\u033c\u033f\3\2"+
|
||||
"U\3\2\2\2\u032d\u032e\7\u0099\2\2\u032e\u0332\7|\2\2\u032f\u0330\7\u0098"+
|
||||
"\2\2\u0330\u0332\7|\2\2\u0331\u032d\3\2\2\2\u0331\u032f\3\2\2\2\u0332"+
|
||||
"W\3\2\2\2\u0333\u0335\7z\2\2\u0334\u0336\5\\/\2\u0335\u0334\3\2\2\2\u0335"+
|
||||
"\u0336\3\2\2\2\u0336Y\3\2\2\2\u0337\u0338\7y\2\2\u0338\u033d\5^\60\2\u0339"+
|
||||
"\u033a\7}\2\2\u033a\u033c\5^\60\2\u033b\u0339\3\2\2\2\u033c\u033f\3\2"+
|
||||
"\2\2\u033d\u033b\3\2\2\2\u033d\u033e\3\2\2\2\u033e[\3\2\2\2\u033f\u033d"+
|
||||
"\3\2\2\2\u0340\u0358\5^\60\2\u0341\u0342\7|\2\2\u0342\u0358\5^\60\2\u0343"+
|
||||
"\u0344\5^\60\2\u0344\u0345\7~\2\2\u0345\u0346\7\u009a\2\2\u0346\u0358"+
|
||||
"\3\2\2\2\u0347\u0348\7\177\2\2\u0348\u0349\5^\60\2\u0349\u034a\7\u0080"+
|
||||
"\2\2\u034a\u034b\7~\2\2\u034b\u034c\7\u009a\2\2\u034c\u0358\3\2\2\2\u034d"+
|
||||
"\u034e\7\177\2\2\u034e\u034f\5^\60\2\u034f\u0350\7~\2\2\u0350\u0351\7"+
|
||||
"\u009a\2\2\u0351\u0352\7\u0080\2\2\u0352\u0358\3\2\2\2\u0353\u0354\7\177"+
|
||||
"\2\2\u0354\u0355\5^\60\2\u0355\u0356\7\u0080\2\2\u0356\u0358\3\2\2\2\u0357"+
|
||||
"\u0340\3\2\2\2\u0357\u0341\3\2\2\2\u0357\u0343\3\2\2\2\u0357\u0347\3\2"+
|
||||
"\2\2\u0357\u034d\3\2\2\2\u0357\u0353\3\2\2\2\u0358]\3\2\2\2\u0359\u035a"+
|
||||
"\b\60\1\2\u035a\u035b\7\u0081\2\2\u035b\u035c\5^\60\2\u035c\u035d\7\u0082"+
|
||||
"\2\2\u035d\u0368\3\2\2\2\u035e\u035f\t\t\2\2\u035f\u0368\5^\60\n\u0360"+
|
||||
"\u0368\7\u009a\2\2\u0361\u0368\7\u0098\2\2\u0362\u0363\7\u008c\2\2\u0363"+
|
||||
"\u0364\7\u009a\2\2\u0364\u0368\7\u008d\2\2\u0365\u0368\7\u008e\2\2\u0366"+
|
||||
"\u0368\7\u0097\2\2\u0367\u0359\3\2\2\2\u0367\u035e\3\2\2\2\u0367\u0360"+
|
||||
"\3\2\2\2\u0367\u0361\3\2\2\2\u0367\u0362\3\2\2\2\u0367\u0365\3\2\2\2\u0367"+
|
||||
"\u0366\3\2\2\2\u0368\u0377\3\2\2\2\u0369\u036a\f\f\2\2\u036a\u036b\7\u0083"+
|
||||
"\2\2\u036b\u0376\5^\60\r\u036c\u036d\f\13\2\2\u036d\u036e\t\n\2\2\u036e"+
|
||||
"\u0376\5^\60\f\u036f\u0370\f\t\2\2\u0370\u0371\t\13\2\2\u0371\u0376\5"+
|
||||
"^\60\n\u0372\u0373\f\b\2\2\u0373\u0374\t\f\2\2\u0374\u0376\5^\60\t\u0375"+
|
||||
"\u0369\3\2\2\2\u0375\u036c\3\2\2\2\u0375\u036f\3\2\2\2\u0375\u0372\3\2"+
|
||||
"\2\2\u0376\u0379\3\2\2\2\u0377\u0375\3\2\2\2\u0377\u0378\3\2\2\2\u0378"+
|
||||
"_\3\2\2\2\u0379\u0377\3\2\2\2Zinv\u0087\u0090\u009a\u00a0\u00a8\u00af"+
|
||||
"\u00b8\u00bd\u00c3\u00c8\u00cd\u00d4\u00db\u00e0\u00ec\u00ef\u00f1\u00fc"+
|
||||
"\u0103\u0108\u010e\u0110\u0118\u011e\u012a\u0138\u013e\u0144\u014a\u014f"+
|
||||
"\u0153\u015c\u0163\u0169\u0174\u01b1\u01b5\u01c0\u01d3\u01dc\u01e1\u01e6"+
|
||||
"\u01ed\u01fa\u01ff\u020b\u0219\u022c\u0235\u023c\u0241\u0246\u0248\u024e"+
|
||||
"\u0255\u025b\u025e\u0266\u0269\u026c\u0276\u0282\u028a\u0290\u0294\u02a9"+
|
||||
"\u02b3\u02b7\u02e9\u02f3\u02f5\u02fd\u0302\u030c\u031e\u0320\u0325\u032b"+
|
||||
"\u0331\u0335\u033d\u0357\u0367\u0375\u0377";
|
||||
"\3\2\2\2\u0340\u0358\5^\60\2\u0341\u0342\7{\2\2\u0342\u0358\5^\60\2\u0343"+
|
||||
"\u0344\5^\60\2\u0344\u0345\7}\2\2\u0345\u0346\7\u0099\2\2\u0346\u0358"+
|
||||
"\3\2\2\2\u0347\u0348\7~\2\2\u0348\u0349\5^\60\2\u0349\u034a\7\177\2\2"+
|
||||
"\u034a\u034b\7}\2\2\u034b\u034c\7\u0099\2\2\u034c\u0358\3\2\2\2\u034d"+
|
||||
"\u034e\7~\2\2\u034e\u034f\5^\60\2\u034f\u0350\7}\2\2\u0350\u0351\7\u0099"+
|
||||
"\2\2\u0351\u0352\7\177\2\2\u0352\u0358\3\2\2\2\u0353\u0354\7~\2\2\u0354"+
|
||||
"\u0355\5^\60\2\u0355\u0356\7\177\2\2\u0356\u0358\3\2\2\2\u0357\u0340\3"+
|
||||
"\2\2\2\u0357\u0341\3\2\2\2\u0357\u0343\3\2\2\2\u0357\u0347\3\2\2\2\u0357"+
|
||||
"\u034d\3\2\2\2\u0357\u0353\3\2\2\2\u0358]\3\2\2\2\u0359\u035a\b\60\1\2"+
|
||||
"\u035a\u035b\7\u0080\2\2\u035b\u035c\5^\60\2\u035c\u035d\7\u0081\2\2\u035d"+
|
||||
"\u0368\3\2\2\2\u035e\u035f\t\t\2\2\u035f\u0368\5^\60\n\u0360\u0368\7\u0099"+
|
||||
"\2\2\u0361\u0368\7\u0097\2\2\u0362\u0363\7\u008b\2\2\u0363\u0364\7\u0099"+
|
||||
"\2\2\u0364\u0368\7\u008c\2\2\u0365\u0368\7\u008d\2\2\u0366\u0368\7\u0096"+
|
||||
"\2\2\u0367\u0359\3\2\2\2\u0367\u035e\3\2\2\2\u0367\u0360\3\2\2\2\u0367"+
|
||||
"\u0361\3\2\2\2\u0367\u0362\3\2\2\2\u0367\u0365\3\2\2\2\u0367\u0366\3\2"+
|
||||
"\2\2\u0368\u0377\3\2\2\2\u0369\u036a\f\f\2\2\u036a\u036b\7\u0082\2\2\u036b"+
|
||||
"\u0376\5^\60\r\u036c\u036d\f\13\2\2\u036d\u036e\t\n\2\2\u036e\u0376\5"+
|
||||
"^\60\f\u036f\u0370\f\t\2\2\u0370\u0371\t\13\2\2\u0371\u0376\5^\60\n\u0372"+
|
||||
"\u0373\f\b\2\2\u0373\u0374\t\f\2\2\u0374\u0376\5^\60\t\u0375\u0369\3\2"+
|
||||
"\2\2\u0375\u036c\3\2\2\2\u0375\u036f\3\2\2\2\u0375\u0372\3\2\2\2\u0376"+
|
||||
"\u0379\3\2\2\2\u0377\u0375\3\2\2\2\u0377\u0378\3\2\2\2\u0378_\3\2\2\2"+
|
||||
"\u0379\u0377\3\2\2\2Zinv\u0087\u0090\u009a\u00a0\u00a8\u00af\u00b8\u00bd"+
|
||||
"\u00c3\u00c8\u00cd\u00d4\u00db\u00e0\u00ec\u00ef\u00f1\u00fc\u0103\u0108"+
|
||||
"\u010e\u0110\u0118\u011e\u012a\u0138\u013e\u0144\u014a\u014f\u0153\u015c"+
|
||||
"\u0163\u0169\u0174\u01b1\u01b5\u01c0\u01d3\u01dc\u01e1\u01e6\u01ed\u01fa"+
|
||||
"\u01ff\u020b\u0219\u022c\u0235\u023c\u0241\u0246\u0248\u024e\u0255\u025b"+
|
||||
"\u025e\u0266\u0269\u026c\u0276\u0282\u028a\u0290\u0294\u02a9\u02b3\u02b7"+
|
||||
"\u02e9\u02f3\u02f5\u02fd\u0302\u030c\u031e\u0320\u0325\u032b\u0331\u0335"+
|
||||
"\u033d\u0357\u0367\u0375\u0377";
|
||||
public static final ATN _ATN =
|
||||
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
|
||||
static {
|
||||
|
@ -111,48 +111,52 @@ BININTEGER=110
|
||||
DECINTEGER=111
|
||||
HEXINTEGER=112
|
||||
NAME=113
|
||||
SYSTEMFILE=114
|
||||
STRING=115
|
||||
CHAR=116
|
||||
WS=117
|
||||
COMMENT_LINE=118
|
||||
COMMENT_BLOCK=119
|
||||
ASM_BYTE=120
|
||||
ASM_MNEMONIC=121
|
||||
ASM_IMM=122
|
||||
ASM_COLON=123
|
||||
ASM_COMMA=124
|
||||
ASM_PAR_BEGIN=125
|
||||
ASM_PAR_END=126
|
||||
ASM_BRACKET_BEGIN=127
|
||||
ASM_BRACKET_END=128
|
||||
ASM_DOT=129
|
||||
ASM_SHIFT_LEFT=130
|
||||
ASM_SHIFT_RIGHT=131
|
||||
ASM_PLUS=132
|
||||
ASM_MINUS=133
|
||||
ASM_LESS_THAN=134
|
||||
ASM_GREATER_THAN=135
|
||||
ASM_MULTIPLY=136
|
||||
ASM_DIVIDE=137
|
||||
ASM_CURLY_BEGIN=138
|
||||
ASM_CURLY_END=139
|
||||
ASM_NUMBER=140
|
||||
ASM_NUMFLOAT=141
|
||||
ASM_BINFLOAT=142
|
||||
ASM_DECFLOAT=143
|
||||
ASM_HEXFLOAT=144
|
||||
ASM_NUMINT=145
|
||||
ASM_BININTEGER=146
|
||||
ASM_DECINTEGER=147
|
||||
ASM_HEXINTEGER=148
|
||||
ASM_CHAR=149
|
||||
ASM_MULTI_REL=150
|
||||
ASM_MULTI_NAME=151
|
||||
ASM_NAME=152
|
||||
ASM_WS=153
|
||||
ASM_COMMENT_LINE=154
|
||||
ASM_COMMENT_BLOCK=155
|
||||
STRING=114
|
||||
CHAR=115
|
||||
WS=116
|
||||
COMMENT_LINE=117
|
||||
COMMENT_BLOCK=118
|
||||
ASM_BYTE=119
|
||||
ASM_MNEMONIC=120
|
||||
ASM_IMM=121
|
||||
ASM_COLON=122
|
||||
ASM_COMMA=123
|
||||
ASM_PAR_BEGIN=124
|
||||
ASM_PAR_END=125
|
||||
ASM_BRACKET_BEGIN=126
|
||||
ASM_BRACKET_END=127
|
||||
ASM_DOT=128
|
||||
ASM_SHIFT_LEFT=129
|
||||
ASM_SHIFT_RIGHT=130
|
||||
ASM_PLUS=131
|
||||
ASM_MINUS=132
|
||||
ASM_LESS_THAN=133
|
||||
ASM_GREATER_THAN=134
|
||||
ASM_MULTIPLY=135
|
||||
ASM_DIVIDE=136
|
||||
ASM_CURLY_BEGIN=137
|
||||
ASM_CURLY_END=138
|
||||
ASM_NUMBER=139
|
||||
ASM_NUMFLOAT=140
|
||||
ASM_BINFLOAT=141
|
||||
ASM_DECFLOAT=142
|
||||
ASM_HEXFLOAT=143
|
||||
ASM_NUMINT=144
|
||||
ASM_BININTEGER=145
|
||||
ASM_DECINTEGER=146
|
||||
ASM_HEXINTEGER=147
|
||||
ASM_CHAR=148
|
||||
ASM_MULTI_REL=149
|
||||
ASM_MULTI_NAME=150
|
||||
ASM_NAME=151
|
||||
ASM_WS=152
|
||||
ASM_COMMENT_LINE=153
|
||||
ASM_COMMENT_BLOCK=154
|
||||
IMPORT_SYSTEMFILE=155
|
||||
IMPORT_LOCALFILE=156
|
||||
IMPORT_WS=157
|
||||
IMPORT_COMMENT_LINE=158
|
||||
IMPORT_COMMENT_BLOCK=159
|
||||
';'=8
|
||||
'..'=11
|
||||
'?'=12
|
||||
@ -231,5 +235,5 @@ ASM_COMMENT_BLOCK=155
|
||||
'#elif'=101
|
||||
'#else'=102
|
||||
'#endif'=103
|
||||
'.byte'=120
|
||||
'#'=122
|
||||
'.byte'=119
|
||||
'#'=121
|
||||
|
@ -93,7 +93,7 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
|
||||
|
||||
@Override
|
||||
public Object visitImportFile(KickCParser.ImportFileContext ctx) {
|
||||
String importName = ctx.STRING().getText();
|
||||
String importName = ctx.IMPORT_LOCALFILE().getText();
|
||||
String importFileName = importName.substring(1, importName.length() - 1);
|
||||
if(program.getLog().isVerboseParse()) {
|
||||
program.getLog().append("Importing " + importFileName);
|
||||
@ -103,7 +103,7 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
|
||||
|
||||
@Override
|
||||
public Object visitIncludeFile(KickCParser.IncludeFileContext ctx) {
|
||||
String includeName = ctx.STRING().getText();
|
||||
String includeName = ctx.IMPORT_LOCALFILE().getText();
|
||||
String includeFileName = includeName.substring(1, includeName.length() - 1);
|
||||
if(program.getLog().isVerboseParse()) {
|
||||
program.getLog().append("Including " + includeFileName);
|
||||
@ -113,7 +113,7 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
|
||||
|
||||
@Override
|
||||
public Object visitIncludeSystem(KickCParser.IncludeSystemContext ctx) {
|
||||
String includeName = ctx.SYSTEMFILE().getText();
|
||||
String includeName = ctx.IMPORT_SYSTEMFILE().getText();
|
||||
String includeFileName = includeName.substring(1, includeName.length() - 1);
|
||||
if(program.getLog().isVerboseParse()) {
|
||||
program.getLog().append("Including system" + includeFileName);
|
||||
|
Loading…
Reference in New Issue
Block a user