diff --git a/pfdl_grammar/PFDLLexer.g4 b/pfdl_grammar/PFDLLexer.g4 index 949ce49..086328c 100644 --- a/pfdl_grammar/PFDLLexer.g4 +++ b/pfdl_grammar/PFDLLexer.g4 @@ -1,11 +1,14 @@ lexer grammar PFDLLexer; -// DenterHelper for generating INDENT AND DEDENT tokens to realize -// a python-like grammar with Indentations +// DenterHelper for generating INDENT AND DEDENT tokens to realize a python-like grammar with +// Indentations -tokens { INDENT, DEDENT } +tokens { + INDENT, + DEDENT +} -@lexer::header{ +@lexer::header { from antlr_denter.DenterHelper import DenterHelper from PFDLParser import PFDLParser } @@ -56,7 +59,7 @@ QUOTE: '"'; ARRAY_LEFT: '['; ARRAY_RIGHT: ']'; -COMMENT : '#' ~[\n]+ -> skip; +COMMENT: '#' ~[\n]* -> skip; WHITESPACE: [ \t]+ -> skip; NL: ('\r'? '\n' ' '*); @@ -76,48 +79,39 @@ SLASH: '/'; MINUS: '-'; PLUS: '+'; - INTEGER: [0-9]+; -FLOAT: INTEGER '.'INTEGER; +FLOAT: INTEGER '.' INTEGER; -STRING: '"' ('\\"'|.)*? '"'; +STRING: '"' ('\\"' | .)*? '"'; STARTS_WITH_LOWER_C_STR: [a-z][a-zA-Z0-9_]*; STARTS_WITH_UPPER_C_STR: [A-Z][a-zA-Z0-9_]*; // JSON Grammar mode JSON; -JSON_STRING: '"' ('\\"'|.)*? '"'; +JSON_STRING: '"' ('\\"' | .)*? '"'; JSON_TRUE: 'true'; JSON_FALSE: 'false'; JSON_COLON: ':'; JSON_QUOTE: '"'; -JSON_COMMENT : '#' ~[\n]+ -> skip; +JSON_COMMENT: '#' ~[\n]+ -> skip; JSON_ARRAY_LEFT: '['; JSON_ARRAY_RIGHT: ']'; JSON_COMMA: ','; -NUMBER - : '-'? INT ('.' [0-9] +)? EXP? - ; +NUMBER: '-'? INT ('.' [0-9]+)? EXP?; -fragment INT - : '0' | [1-9] [0-9]* - ; +fragment INT: '0' | [1-9] [0-9]*; // no leading zeros -fragment EXP - : [Ee] [+\-]? INT - ; +fragment EXP: [Ee] [+\-]? INT; -WS - : [ \t\n\r] + -> skip - ; +WS: [ \t\n\r]+ -> skip; JSON_OPEN_2: '{' -> pushMode(JSON); -JSON_CLOSE: '}' -> popMode; \ No newline at end of file +JSON_CLOSE: '}' -> popMode; diff --git a/pfdl_scheduler/parser/PFDLLexer.py b/pfdl_scheduler/parser/PFDLLexer.py index 391e5bf..84e44b3 100644 --- a/pfdl_scheduler/parser/PFDLLexer.py +++ b/pfdl_scheduler/parser/PFDLLexer.py @@ -1,4 +1,4 @@ -# Generated from PFDLLexer.g4 by ANTLR 4.9.2 +# Generated from PFDLLexer.g4 by ANTLR 4.9.3 from antlr4 import * from io import StringIO import sys @@ -16,7 +16,7 @@ def serializedATN(): with StringIO() as buf: buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2A") - buf.write("\u01b6\b\1\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6") + buf.write("\u01b7\b\1\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6") buf.write("\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") buf.write("\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22") buf.write("\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30") @@ -36,30 +36,30 @@ def serializedATN(): buf.write("\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22") buf.write("\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\24\3\24\3\25") buf.write("\3\25\3\26\3\26\3\27\3\27\3\27\3\27\3\30\3\30\3\31\3\31") - buf.write("\3\32\3\32\3\33\3\33\6\33\u0103\n\33\r\33\16\33\u0104") - buf.write("\3\33\3\33\3\34\6\34\u010a\n\34\r\34\16\34\u010b\3\34") - buf.write("\3\34\3\35\5\35\u0111\n\35\3\35\3\35\7\35\u0115\n\35\f") - buf.write("\35\16\35\u0118\13\35\3\36\3\36\3\37\3\37\3 \3 \3!\3!") - buf.write('\3!\3"\3"\3#\3#\3#\3$\3$\3$\3%\3%\3%\3&\3&\3&\3&\3\'') - buf.write("\3'\3'\3(\3(\3)\3)\3*\3*\3+\3+\3,\3,\3-\6-\u0140\n-") - buf.write("\r-\16-\u0141\3.\3.\3.\3.\3/\3/\3/\3/\7/\u014c\n/\f/\16") - buf.write("/\u014f\13/\3/\3/\3\60\3\60\7\60\u0155\n\60\f\60\16\60") - buf.write("\u0158\13\60\3\61\3\61\7\61\u015c\n\61\f\61\16\61\u015f") - buf.write("\13\61\3\62\3\62\3\62\3\62\7\62\u0165\n\62\f\62\16\62") - buf.write("\u0168\13\62\3\62\3\62\3\63\3\63\3\63\3\63\3\63\3\64\3") + buf.write("\3\32\3\32\3\33\3\33\7\33\u0103\n\33\f\33\16\33\u0106") + buf.write("\13\33\3\33\3\33\3\34\6\34\u010b\n\34\r\34\16\34\u010c") + buf.write("\3\34\3\34\3\35\5\35\u0112\n\35\3\35\3\35\7\35\u0116\n") + buf.write("\35\f\35\16\35\u0119\13\35\3\36\3\36\3\37\3\37\3 \3 \3") + buf.write('!\3!\3!\3"\3"\3#\3#\3#\3$\3$\3$\3%\3%\3%\3&\3&\3&\3') + buf.write("&\3'\3'\3'\3(\3(\3)\3)\3*\3*\3+\3+\3,\3,\3-\6-\u0141") + buf.write("\n-\r-\16-\u0142\3.\3.\3.\3.\3/\3/\3/\3/\7/\u014d\n/\f") + buf.write("/\16/\u0150\13/\3/\3/\3\60\3\60\7\60\u0156\n\60\f\60\16") + buf.write("\60\u0159\13\60\3\61\3\61\7\61\u015d\n\61\f\61\16\61\u0160") + buf.write("\13\61\3\62\3\62\3\62\3\62\7\62\u0166\n\62\f\62\16\62") + buf.write("\u0169\13\62\3\62\3\62\3\63\3\63\3\63\3\63\3\63\3\64\3") buf.write("\64\3\64\3\64\3\64\3\64\3\65\3\65\3\66\3\66\3\67\3\67") - buf.write("\6\67\u017d\n\67\r\67\16\67\u017e\3\67\3\67\38\38\39\3") - buf.write("9\3:\3:\3;\5;\u018a\n;\3;\3;\3;\6;\u018f\n;\r;\16;\u0190") - buf.write("\5;\u0193\n;\3;\5;\u0196\n;\3<\3<\3<\7<\u019b\n<\f<\16") - buf.write("<\u019e\13<\5<\u01a0\n<\3=\3=\5=\u01a4\n=\3=\3=\3>\6>") - buf.write("\u01a9\n>\r>\16>\u01aa\3>\3>\3?\3?\3?\3?\3@\3@\3@\3@\4") - buf.write("\u014d\u0166\2A\4\5\6\6\b\7\n\b\f\t\16\n\20\13\22\f\24") + buf.write("\6\67\u017e\n\67\r\67\16\67\u017f\3\67\3\67\38\38\39\3") + buf.write("9\3:\3:\3;\5;\u018b\n;\3;\3;\3;\6;\u0190\n;\r;\16;\u0191") + buf.write("\5;\u0194\n;\3;\5;\u0197\n;\3<\3<\3<\7<\u019c\n<\f<\16") + buf.write("<\u019f\13<\5<\u01a1\n<\3=\3=\5=\u01a5\n=\3=\3=\3>\6>") + buf.write("\u01aa\n>\r>\16>\u01ab\3>\3>\3?\3?\3?\3?\3@\3@\3@\3@\4") + buf.write("\u014e\u0167\2A\4\5\6\6\b\7\n\b\f\t\16\n\20\13\22\f\24") buf.write('\r\26\16\30\17\32\20\34\21\36\22 \23"\24$\25&\26(\27') buf.write('*\30,\31.\32\60\33\62\34\64\35\66\368\37: "@#B$D%') buf.write("F&H'J(L)N*P+R,T-V.X/Z\60\\\61^\62`\63b\64d\65f\66h\67") buf.write("j8l9n:p;rx\2z\2|?~@\u0080A\4\2\3\f\3\2\f\f\4\2\13") buf.write('\13""\3\2\62;\3\2c|\6\2\62;C\\aac|\3\2C\\\3\2\63;\4') - buf.write('\2GGgg\4\2--//\5\2\13\f\17\17""\2\u01c6\2\4\3\2\2\2') + buf.write('\2GGgg\4\2--//\5\2\13\f\17\17""\2\u01c7\2\4\3\2\2\2') buf.write("\2\6\3\2\2\2\2\b\3\2\2\2\2\n\3\2\2\2\2\f\3\2\2\2\2\16") buf.write("\3\2\2\2\2\20\3\2\2\2\2\22\3\2\2\2\2\24\3\2\2\2\2\26\3") buf.write("\2\2\2\2\30\3\2\2\2\2\32\3\2\2\2\2\34\3\2\2\2\2\36\3\2") @@ -80,17 +80,17 @@ def serializedATN(): buf.write('\36\u00cf\3\2\2\2 \u00d6\3\2\2\2"\u00dd\3\2\2\2$\u00e5') buf.write("\3\2\2\2&\u00ea\3\2\2\2(\u00f0\3\2\2\2*\u00f2\3\2\2\2") buf.write(",\u00f4\3\2\2\2.\u00f6\3\2\2\2\60\u00fa\3\2\2\2\62\u00fc") - buf.write("\3\2\2\2\64\u00fe\3\2\2\2\66\u0100\3\2\2\28\u0109\3\2") - buf.write("\2\2:\u0110\3\2\2\2<\u0119\3\2\2\2>\u011b\3\2\2\2@\u011d") - buf.write("\3\2\2\2B\u011f\3\2\2\2D\u0122\3\2\2\2F\u0124\3\2\2\2") - buf.write("H\u0127\3\2\2\2J\u012a\3\2\2\2L\u012d\3\2\2\2N\u0131\3") - buf.write("\2\2\2P\u0134\3\2\2\2R\u0136\3\2\2\2T\u0138\3\2\2\2V\u013a") - buf.write("\3\2\2\2X\u013c\3\2\2\2Z\u013f\3\2\2\2\\\u0143\3\2\2\2") - buf.write("^\u0147\3\2\2\2`\u0152\3\2\2\2b\u0159\3\2\2\2d\u0160\3") - buf.write("\2\2\2f\u016b\3\2\2\2h\u0170\3\2\2\2j\u0176\3\2\2\2l\u0178") - buf.write("\3\2\2\2n\u017a\3\2\2\2p\u0182\3\2\2\2r\u0184\3\2\2\2") - buf.write("t\u0186\3\2\2\2v\u0189\3\2\2\2x\u019f\3\2\2\2z\u01a1\3") - buf.write("\2\2\2|\u01a8\3\2\2\2~\u01ae\3\2\2\2\u0080\u01b2\3\2\2") + buf.write("\3\2\2\2\64\u00fe\3\2\2\2\66\u0100\3\2\2\28\u010a\3\2") + buf.write("\2\2:\u0111\3\2\2\2<\u011a\3\2\2\2>\u011c\3\2\2\2@\u011e") + buf.write("\3\2\2\2B\u0120\3\2\2\2D\u0123\3\2\2\2F\u0125\3\2\2\2") + buf.write("H\u0128\3\2\2\2J\u012b\3\2\2\2L\u012e\3\2\2\2N\u0132\3") + buf.write("\2\2\2P\u0135\3\2\2\2R\u0137\3\2\2\2T\u0139\3\2\2\2V\u013b") + buf.write("\3\2\2\2X\u013d\3\2\2\2Z\u0140\3\2\2\2\\\u0144\3\2\2\2") + buf.write("^\u0148\3\2\2\2`\u0153\3\2\2\2b\u015a\3\2\2\2d\u0161\3") + buf.write("\2\2\2f\u016c\3\2\2\2h\u0171\3\2\2\2j\u0177\3\2\2\2l\u0179") + buf.write("\3\2\2\2n\u017b\3\2\2\2p\u0183\3\2\2\2r\u0185\3\2\2\2") + buf.write("t\u0187\3\2\2\2v\u018a\3\2\2\2x\u01a0\3\2\2\2z\u01a2\3") + buf.write("\2\2\2|\u01a9\3\2\2\2~\u01af\3\2\2\2\u0080\u01b3\3\2\2") buf.write("\2\u0082\u0083\7U\2\2\u0083\u0084\7v\2\2\u0084\u0085\7") buf.write("t\2\2\u0085\u0086\7w\2\2\u0086\u0087\7e\2\2\u0087\u0088") buf.write("\7v\2\2\u0088\5\3\2\2\2\u0089\u008a\7V\2\2\u008a\u008b") @@ -133,85 +133,84 @@ def serializedATN(): buf.write("\2\2\u00f7\u00f8\3\2\2\2\u00f8\u00f9\b\27\2\2\u00f9/\3") buf.write("\2\2\2\u00fa\u00fb\7$\2\2\u00fb\61\3\2\2\2\u00fc\u00fd") buf.write("\7]\2\2\u00fd\63\3\2\2\2\u00fe\u00ff\7_\2\2\u00ff\65\3") - buf.write("\2\2\2\u0100\u0102\7%\2\2\u0101\u0103\n\2\2\2\u0102\u0101") - buf.write("\3\2\2\2\u0103\u0104\3\2\2\2\u0104\u0102\3\2\2\2\u0104") - buf.write("\u0105\3\2\2\2\u0105\u0106\3\2\2\2\u0106\u0107\b\33\3") - buf.write("\2\u0107\67\3\2\2\2\u0108\u010a\t\3\2\2\u0109\u0108\3") - buf.write("\2\2\2\u010a\u010b\3\2\2\2\u010b\u0109\3\2\2\2\u010b\u010c") - buf.write("\3\2\2\2\u010c\u010d\3\2\2\2\u010d\u010e\b\34\3\2\u010e") - buf.write("9\3\2\2\2\u010f\u0111\7\17\2\2\u0110\u010f\3\2\2\2\u0110") - buf.write("\u0111\3\2\2\2\u0111\u0112\3\2\2\2\u0112\u0116\7\f\2\2") - buf.write('\u0113\u0115\7"\2\2\u0114\u0113\3\2\2\2\u0115\u0118\3') - buf.write("\2\2\2\u0116\u0114\3\2\2\2\u0116\u0117\3\2\2\2\u0117;") - buf.write("\3\2\2\2\u0118\u0116\3\2\2\2\u0119\u011a\7*\2\2\u011a") - buf.write("=\3\2\2\2\u011b\u011c\7+\2\2\u011c?\3\2\2\2\u011d\u011e") - buf.write("\7>\2\2\u011eA\3\2\2\2\u011f\u0120\7>\2\2\u0120\u0121") - buf.write("\7?\2\2\u0121C\3\2\2\2\u0122\u0123\7@\2\2\u0123E\3\2\2") - buf.write("\2\u0124\u0125\7@\2\2\u0125\u0126\7?\2\2\u0126G\3\2\2") - buf.write("\2\u0127\u0128\7?\2\2\u0128\u0129\7?\2\2\u0129I\3\2\2") - buf.write("\2\u012a\u012b\7#\2\2\u012b\u012c\7?\2\2\u012cK\3\2\2") - buf.write("\2\u012d\u012e\7C\2\2\u012e\u012f\7p\2\2\u012f\u0130\7") - buf.write("f\2\2\u0130M\3\2\2\2\u0131\u0132\7Q\2\2\u0132\u0133\7") - buf.write("t\2\2\u0133O\3\2\2\2\u0134\u0135\7#\2\2\u0135Q\3\2\2\2") - buf.write("\u0136\u0137\7,\2\2\u0137S\3\2\2\2\u0138\u0139\7\61\2") - buf.write("\2\u0139U\3\2\2\2\u013a\u013b\7/\2\2\u013bW\3\2\2\2\u013c") - buf.write("\u013d\7-\2\2\u013dY\3\2\2\2\u013e\u0140\t\4\2\2\u013f") - buf.write("\u013e\3\2\2\2\u0140\u0141\3\2\2\2\u0141\u013f\3\2\2\2") - buf.write("\u0141\u0142\3\2\2\2\u0142[\3\2\2\2\u0143\u0144\5Z-\2") - buf.write("\u0144\u0145\7\60\2\2\u0145\u0146\5Z-\2\u0146]\3\2\2\2") - buf.write("\u0147\u014d\7$\2\2\u0148\u0149\7^\2\2\u0149\u014c\7$") - buf.write("\2\2\u014a\u014c\13\2\2\2\u014b\u0148\3\2\2\2\u014b\u014a") - buf.write("\3\2\2\2\u014c\u014f\3\2\2\2\u014d\u014e\3\2\2\2\u014d") - buf.write("\u014b\3\2\2\2\u014e\u0150\3\2\2\2\u014f\u014d\3\2\2\2") - buf.write("\u0150\u0151\7$\2\2\u0151_\3\2\2\2\u0152\u0156\t\5\2\2") - buf.write("\u0153\u0155\t\6\2\2\u0154\u0153\3\2\2\2\u0155\u0158\3") - buf.write("\2\2\2\u0156\u0154\3\2\2\2\u0156\u0157\3\2\2\2\u0157a") - buf.write("\3\2\2\2\u0158\u0156\3\2\2\2\u0159\u015d\t\7\2\2\u015a") - buf.write("\u015c\t\6\2\2\u015b\u015a\3\2\2\2\u015c\u015f\3\2\2\2") - buf.write("\u015d\u015b\3\2\2\2\u015d\u015e\3\2\2\2\u015ec\3\2\2") - buf.write("\2\u015f\u015d\3\2\2\2\u0160\u0166\7$\2\2\u0161\u0162") - buf.write("\7^\2\2\u0162\u0165\7$\2\2\u0163\u0165\13\2\2\2\u0164") - buf.write("\u0161\3\2\2\2\u0164\u0163\3\2\2\2\u0165\u0168\3\2\2\2") - buf.write("\u0166\u0167\3\2\2\2\u0166\u0164\3\2\2\2\u0167\u0169\3") - buf.write("\2\2\2\u0168\u0166\3\2\2\2\u0169\u016a\7$\2\2\u016ae\3") - buf.write("\2\2\2\u016b\u016c\7v\2\2\u016c\u016d\7t\2\2\u016d\u016e") - buf.write("\7w\2\2\u016e\u016f\7g\2\2\u016fg\3\2\2\2\u0170\u0171") - buf.write("\7h\2\2\u0171\u0172\7c\2\2\u0172\u0173\7n\2\2\u0173\u0174") - buf.write("\7u\2\2\u0174\u0175\7g\2\2\u0175i\3\2\2\2\u0176\u0177") - buf.write("\7<\2\2\u0177k\3\2\2\2\u0178\u0179\7$\2\2\u0179m\3\2\2") - buf.write("\2\u017a\u017c\7%\2\2\u017b\u017d\n\2\2\2\u017c\u017b") - buf.write("\3\2\2\2\u017d\u017e\3\2\2\2\u017e\u017c\3\2\2\2\u017e") - buf.write("\u017f\3\2\2\2\u017f\u0180\3\2\2\2\u0180\u0181\b\67\3") - buf.write("\2\u0181o\3\2\2\2\u0182\u0183\7]\2\2\u0183q\3\2\2\2\u0184") - buf.write("\u0185\7_\2\2\u0185s\3\2\2\2\u0186\u0187\7.\2\2\u0187") - buf.write("u\3\2\2\2\u0188\u018a\7/\2\2\u0189\u0188\3\2\2\2\u0189") - buf.write("\u018a\3\2\2\2\u018a\u018b\3\2\2\2\u018b\u0192\5x<\2\u018c") - buf.write("\u018e\7\60\2\2\u018d\u018f\t\4\2\2\u018e\u018d\3\2\2") - buf.write("\2\u018f\u0190\3\2\2\2\u0190\u018e\3\2\2\2\u0190\u0191") - buf.write("\3\2\2\2\u0191\u0193\3\2\2\2\u0192\u018c\3\2\2\2\u0192") - buf.write("\u0193\3\2\2\2\u0193\u0195\3\2\2\2\u0194\u0196\5z=\2\u0195") - buf.write("\u0194\3\2\2\2\u0195\u0196\3\2\2\2\u0196w\3\2\2\2\u0197") - buf.write("\u01a0\7\62\2\2\u0198\u019c\t\b\2\2\u0199\u019b\t\4\2") - buf.write("\2\u019a\u0199\3\2\2\2\u019b\u019e\3\2\2\2\u019c\u019a") - buf.write("\3\2\2\2\u019c\u019d\3\2\2\2\u019d\u01a0\3\2\2\2\u019e") - buf.write("\u019c\3\2\2\2\u019f\u0197\3\2\2\2\u019f\u0198\3\2\2\2") - buf.write("\u01a0y\3\2\2\2\u01a1\u01a3\t\t\2\2\u01a2\u01a4\t\n\2") - buf.write("\2\u01a3\u01a2\3\2\2\2\u01a3\u01a4\3\2\2\2\u01a4\u01a5") - buf.write("\3\2\2\2\u01a5\u01a6\5x<\2\u01a6{\3\2\2\2\u01a7\u01a9") - buf.write("\t\13\2\2\u01a8\u01a7\3\2\2\2\u01a9\u01aa\3\2\2\2\u01aa") - buf.write("\u01a8\3\2\2\2\u01aa\u01ab\3\2\2\2\u01ab\u01ac\3\2\2\2") - buf.write("\u01ac\u01ad\b>\3\2\u01ad}\3\2\2\2\u01ae\u01af\7}\2\2") - buf.write("\u01af\u01b0\3\2\2\2\u01b0\u01b1\b?\2\2\u01b1\177\3\2") - buf.write("\2\2\u01b2\u01b3\7\177\2\2\u01b3\u01b4\3\2\2\2\u01b4\u01b5") - buf.write("\b@\4\2\u01b5\u0081\3\2\2\2\30\2\3\u0104\u010b\u0110\u0116") - buf.write("\u0141\u014b\u014d\u0156\u015d\u0164\u0166\u017e\u0189") - buf.write("\u0190\u0192\u0195\u019c\u019f\u01a3\u01aa\5\7\3\2\b\2") - buf.write("\2\6\2\2") + buf.write("\2\2\2\u0100\u0104\7%\2\2\u0101\u0103\n\2\2\2\u0102\u0101") + buf.write("\3\2\2\2\u0103\u0106\3\2\2\2\u0104\u0102\3\2\2\2\u0104") + buf.write("\u0105\3\2\2\2\u0105\u0107\3\2\2\2\u0106\u0104\3\2\2\2") + buf.write("\u0107\u0108\b\33\3\2\u0108\67\3\2\2\2\u0109\u010b\t\3") + buf.write("\2\2\u010a\u0109\3\2\2\2\u010b\u010c\3\2\2\2\u010c\u010a") + buf.write("\3\2\2\2\u010c\u010d\3\2\2\2\u010d\u010e\3\2\2\2\u010e") + buf.write("\u010f\b\34\3\2\u010f9\3\2\2\2\u0110\u0112\7\17\2\2\u0111") + buf.write("\u0110\3\2\2\2\u0111\u0112\3\2\2\2\u0112\u0113\3\2\2\2") + buf.write('\u0113\u0117\7\f\2\2\u0114\u0116\7"\2\2\u0115\u0114\3') + buf.write("\2\2\2\u0116\u0119\3\2\2\2\u0117\u0115\3\2\2\2\u0117\u0118") + buf.write("\3\2\2\2\u0118;\3\2\2\2\u0119\u0117\3\2\2\2\u011a\u011b") + buf.write("\7*\2\2\u011b=\3\2\2\2\u011c\u011d\7+\2\2\u011d?\3\2\2") + buf.write("\2\u011e\u011f\7>\2\2\u011fA\3\2\2\2\u0120\u0121\7>\2") + buf.write("\2\u0121\u0122\7?\2\2\u0122C\3\2\2\2\u0123\u0124\7@\2") + buf.write("\2\u0124E\3\2\2\2\u0125\u0126\7@\2\2\u0126\u0127\7?\2") + buf.write("\2\u0127G\3\2\2\2\u0128\u0129\7?\2\2\u0129\u012a\7?\2") + buf.write("\2\u012aI\3\2\2\2\u012b\u012c\7#\2\2\u012c\u012d\7?\2") + buf.write("\2\u012dK\3\2\2\2\u012e\u012f\7C\2\2\u012f\u0130\7p\2") + buf.write("\2\u0130\u0131\7f\2\2\u0131M\3\2\2\2\u0132\u0133\7Q\2") + buf.write("\2\u0133\u0134\7t\2\2\u0134O\3\2\2\2\u0135\u0136\7#\2") + buf.write("\2\u0136Q\3\2\2\2\u0137\u0138\7,\2\2\u0138S\3\2\2\2\u0139") + buf.write("\u013a\7\61\2\2\u013aU\3\2\2\2\u013b\u013c\7/\2\2\u013c") + buf.write("W\3\2\2\2\u013d\u013e\7-\2\2\u013eY\3\2\2\2\u013f\u0141") + buf.write("\t\4\2\2\u0140\u013f\3\2\2\2\u0141\u0142\3\2\2\2\u0142") + buf.write("\u0140\3\2\2\2\u0142\u0143\3\2\2\2\u0143[\3\2\2\2\u0144") + buf.write("\u0145\5Z-\2\u0145\u0146\7\60\2\2\u0146\u0147\5Z-\2\u0147") + buf.write("]\3\2\2\2\u0148\u014e\7$\2\2\u0149\u014a\7^\2\2\u014a") + buf.write("\u014d\7$\2\2\u014b\u014d\13\2\2\2\u014c\u0149\3\2\2\2") + buf.write("\u014c\u014b\3\2\2\2\u014d\u0150\3\2\2\2\u014e\u014f\3") + buf.write("\2\2\2\u014e\u014c\3\2\2\2\u014f\u0151\3\2\2\2\u0150\u014e") + buf.write("\3\2\2\2\u0151\u0152\7$\2\2\u0152_\3\2\2\2\u0153\u0157") + buf.write("\t\5\2\2\u0154\u0156\t\6\2\2\u0155\u0154\3\2\2\2\u0156") + buf.write("\u0159\3\2\2\2\u0157\u0155\3\2\2\2\u0157\u0158\3\2\2\2") + buf.write("\u0158a\3\2\2\2\u0159\u0157\3\2\2\2\u015a\u015e\t\7\2") + buf.write("\2\u015b\u015d\t\6\2\2\u015c\u015b\3\2\2\2\u015d\u0160") + buf.write("\3\2\2\2\u015e\u015c\3\2\2\2\u015e\u015f\3\2\2\2\u015f") + buf.write("c\3\2\2\2\u0160\u015e\3\2\2\2\u0161\u0167\7$\2\2\u0162") + buf.write("\u0163\7^\2\2\u0163\u0166\7$\2\2\u0164\u0166\13\2\2\2") + buf.write("\u0165\u0162\3\2\2\2\u0165\u0164\3\2\2\2\u0166\u0169\3") + buf.write("\2\2\2\u0167\u0168\3\2\2\2\u0167\u0165\3\2\2\2\u0168\u016a") + buf.write("\3\2\2\2\u0169\u0167\3\2\2\2\u016a\u016b\7$\2\2\u016b") + buf.write("e\3\2\2\2\u016c\u016d\7v\2\2\u016d\u016e\7t\2\2\u016e") + buf.write("\u016f\7w\2\2\u016f\u0170\7g\2\2\u0170g\3\2\2\2\u0171") + buf.write("\u0172\7h\2\2\u0172\u0173\7c\2\2\u0173\u0174\7n\2\2\u0174") + buf.write("\u0175\7u\2\2\u0175\u0176\7g\2\2\u0176i\3\2\2\2\u0177") + buf.write("\u0178\7<\2\2\u0178k\3\2\2\2\u0179\u017a\7$\2\2\u017a") + buf.write("m\3\2\2\2\u017b\u017d\7%\2\2\u017c\u017e\n\2\2\2\u017d") + buf.write("\u017c\3\2\2\2\u017e\u017f\3\2\2\2\u017f\u017d\3\2\2\2") + buf.write("\u017f\u0180\3\2\2\2\u0180\u0181\3\2\2\2\u0181\u0182\b") + buf.write("\67\3\2\u0182o\3\2\2\2\u0183\u0184\7]\2\2\u0184q\3\2\2") + buf.write("\2\u0185\u0186\7_\2\2\u0186s\3\2\2\2\u0187\u0188\7.\2") + buf.write("\2\u0188u\3\2\2\2\u0189\u018b\7/\2\2\u018a\u0189\3\2\2") + buf.write("\2\u018a\u018b\3\2\2\2\u018b\u018c\3\2\2\2\u018c\u0193") + buf.write("\5x<\2\u018d\u018f\7\60\2\2\u018e\u0190\t\4\2\2\u018f") + buf.write("\u018e\3\2\2\2\u0190\u0191\3\2\2\2\u0191\u018f\3\2\2\2") + buf.write("\u0191\u0192\3\2\2\2\u0192\u0194\3\2\2\2\u0193\u018d\3") + buf.write("\2\2\2\u0193\u0194\3\2\2\2\u0194\u0196\3\2\2\2\u0195\u0197") + buf.write("\5z=\2\u0196\u0195\3\2\2\2\u0196\u0197\3\2\2\2\u0197w") + buf.write("\3\2\2\2\u0198\u01a1\7\62\2\2\u0199\u019d\t\b\2\2\u019a") + buf.write("\u019c\t\4\2\2\u019b\u019a\3\2\2\2\u019c\u019f\3\2\2\2") + buf.write("\u019d\u019b\3\2\2\2\u019d\u019e\3\2\2\2\u019e\u01a1\3") + buf.write("\2\2\2\u019f\u019d\3\2\2\2\u01a0\u0198\3\2\2\2\u01a0\u0199") + buf.write("\3\2\2\2\u01a1y\3\2\2\2\u01a2\u01a4\t\t\2\2\u01a3\u01a5") + buf.write("\t\n\2\2\u01a4\u01a3\3\2\2\2\u01a4\u01a5\3\2\2\2\u01a5") + buf.write("\u01a6\3\2\2\2\u01a6\u01a7\5x<\2\u01a7{\3\2\2\2\u01a8") + buf.write("\u01aa\t\13\2\2\u01a9\u01a8\3\2\2\2\u01aa\u01ab\3\2\2") + buf.write("\2\u01ab\u01a9\3\2\2\2\u01ab\u01ac\3\2\2\2\u01ac\u01ad") + buf.write("\3\2\2\2\u01ad\u01ae\b>\3\2\u01ae}\3\2\2\2\u01af\u01b0") + buf.write("\7}\2\2\u01b0\u01b1\3\2\2\2\u01b1\u01b2\b?\2\2\u01b2\177") + buf.write("\3\2\2\2\u01b3\u01b4\7\177\2\2\u01b4\u01b5\3\2\2\2\u01b5") + buf.write("\u01b6\b@\4\2\u01b6\u0081\3\2\2\2\30\2\3\u0104\u010c\u0111") + buf.write("\u0117\u0142\u014c\u014e\u0157\u015e\u0165\u0167\u017f") + buf.write("\u018a\u0191\u0193\u0196\u019d\u01a0\u01a4\u01ab\5\7\3") + buf.write("\2\b\2\2\6\2\2") return buf.getvalue() class PFDLLexer(Lexer): - atn = ATNDeserializer().deserialize(serializedATN()) decisionsToDFA = [DFA(ds, i) for i, ds in enumerate(atn.decisionToState)] @@ -460,7 +459,7 @@ class PFDLLexer(Lexer): def __init__(self, input=None, output: TextIO = sys.stdout): super().__init__(input, output) - self.checkVersion("4.9.2") + self.checkVersion("4.9.3") self._interp = LexerATNSimulator( self, self.atn, self.decisionsToDFA, PredictionContextCache() )