diff --git a/CommentMacro.g4 b/CommentMacro.g4 index 596078e..b15b662 100644 --- a/CommentMacro.g4 +++ b/CommentMacro.g4 @@ -39,42 +39,42 @@ statement : macro (':' macro)* NEWLINE? ; macro - : 'GM' master (device)? // Go Master - | 'GM' master SLASH number (device)? // Go Master - | 'HM' master (device)? // Halt Master - | 'AM' master (device)? // Assert Master - | 'RM' master (device)? // Relesae Master - | 'RA' (device)? // Release All - | 'RO' (device)? // Release Others - | 'FM' master SLASH number (time)? (device)? // Fade Master - | 'FGM' number (time)? (device)? // Fade Grand Master - | 'CM' number (device)? // Choose Master - | 'GL' target (device)? // Go List - | 'GL' target SLASH number (device)? // Go List - | 'HL' target (device)? // Halt List - | 'AL' target (device)? // Assert List - | 'RL' target (device)? // Release List - | 'GB' target (device)? // Go Batch - | 'HB' target (device)? // Halt Batch - | 'AB' target (device)? // Assert Batch - | 'RB' target (device)? // Release Batch - | 'GS' target (device)? // Go Scene - | 'HS' target (device)? // Halt Scene - | 'AS' target (device)? // Assert Scene - | 'RS' target (device)? // Release Scene - | 'CP' number (device)? // Change Page - | 'CP' NEXT (device)? // Next Page - | 'CP' PREV (device)? // Prev Page - | 'RV' number (device)? // Recall View - | 'RN' device // Reset Node - | 'GK' target (device)? // Go Keystroke Macro - | 'HK' target (device)? // Halt Keystroke Macro - | 'RK' target (device)? // Stop Keystroke Macro + : op='GM' ( t=target | '*' ) (dev=device)? // Go Master + | op='GM' ( t=target | '*' ) '/' n=number (dev=device)? // Go Master + | op='HM' ( t=target | '*' ) (dev=device)? // Halt Master + | op='AM' ( t=target | '*' ) (dev=device)? // Assert Master + | op='RM' ( t=target | '*' ) (dev=device)? // Relesae Master + | op='RA' (dev=device)? // Release All + | op='RO' (dev=device)? // Release Others + | op='FM' ( t=target | '*' ) '/' n=number (f=time)? (dev=device)? // Fade Master + | op='FGM' n=number (f=time)? (dev=device)? // Fade Grand Master + | op='CM' n=number (dev=device)? // Choose Master + | op='GL' t=target (dev=device)? // Go List + | op='GL' t=target '/' n=number (dev=device)? // Go List + | op='HL' t=target (dev=device)? // Halt List + | op='AL' t=target (dev=device)? // Assert List + | op='RL' t=target (dev=device)? // Release List + | op='GB' t=target (dev=device)? // Go Batch + | op='HB' t=target (dev=device)? // Halt Batch + | op='AB' t=target (dev=device)? // Assert Batch + | op='RB' t=target (dev=device)? // Release Batch + | op='GS' t=target (dev=device)? // Go Scene + | op='HS' t=target (dev=device)? // Halt Scene + | op='AS' t=target (dev=device)? // Assert Scene + | op='RS' t=target (dev=device)? // Release Scene + | op='CP' n=number (dev=device)? // Change Page + | op='CP' d='+' (dev=device)? // Next Page + | op='CP' d='-' (dev=device)? // Prev Page + | op='RV' n=number (dev=device)? // Recall View + | op='RN' dev=device // Reset Node + | op='GK' t=target (dev=device)? // Go Keystroke Macro + | op='HK' t=target (dev=device)? // Halt Keystroke Macro + | op='RK' t=target (dev=device)? // Stop Keystroke Macro ; master : (target | CURRENT) ; -time : TIME number ; -device : nodeType number ; +time : TIME n=number ; +device : ntype=nodeType n=number ; nodeType : WHOLEHOG @@ -88,7 +88,7 @@ target ; span - : number THRU number + : n1=number THRU n2=number ; number : NUMBER ; diff --git a/CommentMacroLexer.py b/CommentMacroLexer.py index 08c8b3e..98767ec 100644 --- a/CommentMacroLexer.py +++ b/CommentMacroLexer.py @@ -15,24 +15,24 @@ def serializedATN(): buf.write("\4\31\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36") buf.write("\t\36\4\37\t\37\4 \t \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%") buf.write("\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4,\t,\4-\t-\3\2") - buf.write("\3\2\3\3\3\3\3\3\3\4\3\4\3\4\3\5\3\5\3\5\3\6\3\6\3\6\3") - buf.write("\7\3\7\3\7\3\b\3\b\3\b\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\13") - buf.write("\3\13\3\13\3\f\3\f\3\f\3\r\3\r\3\r\3\16\3\16\3\16\3\17") - buf.write("\3\17\3\17\3\20\3\20\3\20\3\21\3\21\3\21\3\22\3\22\3\22") + buf.write("\3\2\3\3\3\3\3\3\3\4\3\4\3\5\3\5\3\5\3\6\3\6\3\6\3\7\3") + buf.write("\7\3\7\3\b\3\b\3\b\3\t\3\t\3\t\3\n\3\n\3\n\3\13\3\13\3") + buf.write("\13\3\13\3\f\3\f\3\f\3\r\3\r\3\r\3\16\3\16\3\16\3\17\3") + buf.write("\17\3\17\3\20\3\20\3\20\3\21\3\21\3\21\3\22\3\22\3\22") buf.write("\3\23\3\23\3\23\3\24\3\24\3\24\3\25\3\25\3\25\3\26\3\26") buf.write("\3\26\3\27\3\27\3\27\3\30\3\30\3\30\3\31\3\31\3\31\3\32") - buf.write("\3\32\3\32\3\33\3\33\3\33\3\34\3\34\3\34\3\35\3\35\3\35") - buf.write("\3\36\3\36\3\37\3\37\3 \6 \u00b5\n \r \16 \u00b6\3 \3") - buf.write(" \6 \u00bb\n \r \16 \u00bc\5 \u00bf\n \3!\3!\3\"\3\"\3") - buf.write("#\3#\3$\3$\3%\3%\3&\3&\3\'\3\'\3(\3(\3)\3)\3)\3)\3*\5") - buf.write("*\u00d6\n*\3*\3*\3+\6+\u00db\n+\r+\16+\u00dc\3+\3+\3,") - buf.write("\3,\3,\3,\3,\3,\7,\u00e7\n,\f,\16,\u00ea\13,\3,\3,\3,") - buf.write("\3,\3,\3,\3,\7,\u00f3\n,\f,\16,\u00f6\13,\3,\3,\5,\u00fa") + buf.write("\3\32\3\33\3\33\3\34\3\34\3\34\3\35\3\35\3\35\3\36\3\36") + buf.write("\3\36\3\37\3\37\3\37\3 \3 \3 \3!\3!\3\"\3\"\3#\6#\u00bb") + buf.write("\n#\r#\16#\u00bc\3#\3#\6#\u00c1\n#\r#\16#\u00c2\5#\u00c5") + buf.write("\n#\3$\3$\3%\3%\3&\3&\3\'\3\'\3(\3(\3)\3)\3)\3)\3*\5*") + buf.write("\u00d6\n*\3*\3*\3+\6+\u00db\n+\r+\16+\u00dc\3+\3+\3,\3") + buf.write(",\3,\3,\3,\3,\7,\u00e7\n,\f,\16,\u00ea\13,\3,\3,\3,\3") + buf.write(",\3,\3,\3,\7,\u00f3\n,\f,\16,\u00f6\13,\3,\3,\5,\u00fa") buf.write("\n,\3,\3,\3-\3-\3-\3-\7-\u0102\n-\f-\16-\u0105\13-\3-") buf.write("\3-\7-\u0109\n-\f-\16-\u010c\13-\5-\u010e\n-\3-\3-\4\u00e8") buf.write("\u00f4\2.\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25") buf.write("\f\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+") - buf.write("\27-\30/\31\61\32\63\33\65\34\67\359\36;\37=\2? A!C\"") + buf.write("\27-\30/\31\61\32\63\33\65\34\67\359\36;\37= ?!A\"C\2") buf.write("E#G$I%K&M\'O(Q)S*U+W,Y-\3\2\7\3\2\62;\4\2JJjj\4\2FFff") buf.write("\4\2\13\13\"\"\4\2\f\f\17\17\2\u011a\2\3\3\2\2\2\2\5\3") buf.write("\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") @@ -41,84 +41,84 @@ def serializedATN(): buf.write("\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2") buf.write("\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3") buf.write("\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2") - buf.write("\2\2;\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2") + buf.write("\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2E\3\2") buf.write("\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3") buf.write("\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y") - buf.write("\3\2\2\2\3[\3\2\2\2\5]\3\2\2\2\7`\3\2\2\2\tc\3\2\2\2\13") - buf.write("f\3\2\2\2\ri\3\2\2\2\17l\3\2\2\2\21o\3\2\2\2\23r\3\2\2") - buf.write("\2\25v\3\2\2\2\27y\3\2\2\2\31|\3\2\2\2\33\177\3\2\2\2") - buf.write("\35\u0082\3\2\2\2\37\u0085\3\2\2\2!\u0088\3\2\2\2#\u008b") - buf.write("\3\2\2\2%\u008e\3\2\2\2\'\u0091\3\2\2\2)\u0094\3\2\2\2") - buf.write("+\u0097\3\2\2\2-\u009a\3\2\2\2/\u009d\3\2\2\2\61\u00a0") - buf.write("\3\2\2\2\63\u00a3\3\2\2\2\65\u00a6\3\2\2\2\67\u00a9\3") - buf.write("\2\2\29\u00ac\3\2\2\2;\u00af\3\2\2\2=\u00b1\3\2\2\2?\u00b4") - buf.write("\3\2\2\2A\u00c0\3\2\2\2C\u00c2\3\2\2\2E\u00c4\3\2\2\2") + buf.write("\3\2\2\2\3[\3\2\2\2\5]\3\2\2\2\7`\3\2\2\2\tb\3\2\2\2\13") + buf.write("e\3\2\2\2\rh\3\2\2\2\17k\3\2\2\2\21n\3\2\2\2\23q\3\2\2") + buf.write("\2\25t\3\2\2\2\27x\3\2\2\2\31{\3\2\2\2\33~\3\2\2\2\35") + buf.write("\u0081\3\2\2\2\37\u0084\3\2\2\2!\u0087\3\2\2\2#\u008a") + buf.write("\3\2\2\2%\u008d\3\2\2\2\'\u0090\3\2\2\2)\u0093\3\2\2\2") + buf.write("+\u0096\3\2\2\2-\u0099\3\2\2\2/\u009c\3\2\2\2\61\u009f") + buf.write("\3\2\2\2\63\u00a2\3\2\2\2\65\u00a4\3\2\2\2\67\u00a6\3") + buf.write("\2\2\29\u00a9\3\2\2\2;\u00ac\3\2\2\2=\u00af\3\2\2\2?\u00b2") + buf.write("\3\2\2\2A\u00b5\3\2\2\2C\u00b7\3\2\2\2E\u00ba\3\2\2\2") buf.write("G\u00c6\3\2\2\2I\u00c8\3\2\2\2K\u00ca\3\2\2\2M\u00cc\3") buf.write("\2\2\2O\u00ce\3\2\2\2Q\u00d0\3\2\2\2S\u00d5\3\2\2\2U\u00da") buf.write("\3\2\2\2W\u00f9\3\2\2\2Y\u010d\3\2\2\2[\\\7<\2\2\\\4\3") - buf.write("\2\2\2]^\7I\2\2^_\7O\2\2_\6\3\2\2\2`a\7J\2\2ab\7O\2\2") - buf.write("b\b\3\2\2\2cd\7C\2\2de\7O\2\2e\n\3\2\2\2fg\7T\2\2gh\7") - buf.write("O\2\2h\f\3\2\2\2ij\7T\2\2jk\7C\2\2k\16\3\2\2\2lm\7T\2") - buf.write("\2mn\7Q\2\2n\20\3\2\2\2op\7H\2\2pq\7O\2\2q\22\3\2\2\2") - buf.write("rs\7H\2\2st\7I\2\2tu\7O\2\2u\24\3\2\2\2vw\7E\2\2wx\7O") - buf.write("\2\2x\26\3\2\2\2yz\7I\2\2z{\7N\2\2{\30\3\2\2\2|}\7J\2") - buf.write("\2}~\7N\2\2~\32\3\2\2\2\177\u0080\7C\2\2\u0080\u0081\7") - buf.write("N\2\2\u0081\34\3\2\2\2\u0082\u0083\7T\2\2\u0083\u0084") - buf.write("\7N\2\2\u0084\36\3\2\2\2\u0085\u0086\7I\2\2\u0086\u0087") - buf.write("\7D\2\2\u0087 \3\2\2\2\u0088\u0089\7J\2\2\u0089\u008a") - buf.write("\7D\2\2\u008a\"\3\2\2\2\u008b\u008c\7C\2\2\u008c\u008d") - buf.write("\7D\2\2\u008d$\3\2\2\2\u008e\u008f\7T\2\2\u008f\u0090") - buf.write("\7D\2\2\u0090&\3\2\2\2\u0091\u0092\7I\2\2\u0092\u0093") - buf.write("\7U\2\2\u0093(\3\2\2\2\u0094\u0095\7J\2\2\u0095\u0096") - buf.write("\7U\2\2\u0096*\3\2\2\2\u0097\u0098\7C\2\2\u0098\u0099") - buf.write("\7U\2\2\u0099,\3\2\2\2\u009a\u009b\7T\2\2\u009b\u009c") - buf.write("\7U\2\2\u009c.\3\2\2\2\u009d\u009e\7E\2\2\u009e\u009f") - buf.write("\7R\2\2\u009f\60\3\2\2\2\u00a0\u00a1\7T\2\2\u00a1\u00a2") - buf.write("\7X\2\2\u00a2\62\3\2\2\2\u00a3\u00a4\7T\2\2\u00a4\u00a5") - buf.write("\7P\2\2\u00a5\64\3\2\2\2\u00a6\u00a7\7I\2\2\u00a7\u00a8") - buf.write("\7M\2\2\u00a8\66\3\2\2\2\u00a9\u00aa\7J\2\2\u00aa\u00ab") - buf.write("\7M\2\2\u00ab8\3\2\2\2\u00ac\u00ad\7T\2\2\u00ad\u00ae") - buf.write("\7M\2\2\u00ae:\3\2\2\2\u00af\u00b0\7.\2\2\u00b0<\3\2\2") - buf.write("\2\u00b1\u00b2\t\2\2\2\u00b2>\3\2\2\2\u00b3\u00b5\5=\37") - buf.write("\2\u00b4\u00b3\3\2\2\2\u00b5\u00b6\3\2\2\2\u00b6\u00b4") - buf.write("\3\2\2\2\u00b6\u00b7\3\2\2\2\u00b7\u00be\3\2\2\2\u00b8") - buf.write("\u00ba\7\60\2\2\u00b9\u00bb\5=\37\2\u00ba\u00b9\3\2\2") - buf.write("\2\u00bb\u00bc\3\2\2\2\u00bc\u00ba\3\2\2\2\u00bc\u00bd") - buf.write("\3\2\2\2\u00bd\u00bf\3\2\2\2\u00be\u00b8\3\2\2\2\u00be") - buf.write("\u00bf\3\2\2\2\u00bf@\3\2\2\2\u00c0\u00c1\7\61\2\2\u00c1") - buf.write("B\3\2\2\2\u00c2\u00c3\7@\2\2\u00c3D\3\2\2\2\u00c4\u00c5") - buf.write("\7-\2\2\u00c5F\3\2\2\2\u00c6\u00c7\7/\2\2\u00c7H\3\2\2") - buf.write("\2\u00c8\u00c9\7,\2\2\u00c9J\3\2\2\2\u00ca\u00cb\7v\2") - buf.write("\2\u00cbL\3\2\2\2\u00cc\u00cd\t\3\2\2\u00cdN\3\2\2\2\u00ce") - buf.write("\u00cf\t\4\2\2\u00cfP\3\2\2\2\u00d0\u00d1\7K\2\2\u00d1") - buf.write("\u00d2\7Q\2\2\u00d2\u00d3\7R\2\2\u00d3R\3\2\2\2\u00d4") - buf.write("\u00d6\7\17\2\2\u00d5\u00d4\3\2\2\2\u00d5\u00d6\3\2\2") - buf.write("\2\u00d6\u00d7\3\2\2\2\u00d7\u00d8\7\f\2\2\u00d8T\3\2") - buf.write("\2\2\u00d9\u00db\t\5\2\2\u00da\u00d9\3\2\2\2\u00db\u00dc") - buf.write("\3\2\2\2\u00dc\u00da\3\2\2\2\u00dc\u00dd\3\2\2\2\u00dd") - buf.write("\u00de\3\2\2\2\u00de\u00df\b+\2\2\u00dfV\3\2\2\2\u00e0") - buf.write("\u00e1\7>\2\2\u00e1\u00e2\7#\2\2\u00e2\u00e3\7/\2\2\u00e3") - buf.write("\u00e4\7/\2\2\u00e4\u00e8\3\2\2\2\u00e5\u00e7\13\2\2\2") - buf.write("\u00e6\u00e5\3\2\2\2\u00e7\u00ea\3\2\2\2\u00e8\u00e9\3") - buf.write("\2\2\2\u00e8\u00e6\3\2\2\2\u00e9\u00eb\3\2\2\2\u00ea\u00e8") - buf.write("\3\2\2\2\u00eb\u00ec\7/\2\2\u00ec\u00ed\7/\2\2\u00ed\u00fa") - buf.write("\7@\2\2\u00ee\u00ef\7\61\2\2\u00ef\u00f0\7,\2\2\u00f0") - buf.write("\u00f4\3\2\2\2\u00f1\u00f3\13\2\2\2\u00f2\u00f1\3\2\2") - buf.write("\2\u00f3\u00f6\3\2\2\2\u00f4\u00f5\3\2\2\2\u00f4\u00f2") - buf.write("\3\2\2\2\u00f5\u00f7\3\2\2\2\u00f6\u00f4\3\2\2\2\u00f7") - buf.write("\u00f8\7,\2\2\u00f8\u00fa\7\61\2\2\u00f9\u00e0\3\2\2\2") - buf.write("\u00f9\u00ee\3\2\2\2\u00fa\u00fb\3\2\2\2\u00fb\u00fc\b") - buf.write(",\2\2\u00fcX\3\2\2\2\u00fd\u00fe\7\61\2\2\u00fe\u00ff") - buf.write("\7\61\2\2\u00ff\u0103\3\2\2\2\u0100\u0102\n\6\2\2\u0101") - buf.write("\u0100\3\2\2\2\u0102\u0105\3\2\2\2\u0103\u0101\3\2\2\2") - buf.write("\u0103\u0104\3\2\2\2\u0104\u010e\3\2\2\2\u0105\u0103\3") - buf.write("\2\2\2\u0106\u010a\7%\2\2\u0107\u0109\n\6\2\2\u0108\u0107") - buf.write("\3\2\2\2\u0109\u010c\3\2\2\2\u010a\u0108\3\2\2\2\u010a") - buf.write("\u010b\3\2\2\2\u010b\u010e\3\2\2\2\u010c\u010a\3\2\2\2") - buf.write("\u010d\u00fd\3\2\2\2\u010d\u0106\3\2\2\2\u010e\u010f\3") - buf.write("\2\2\2\u010f\u0110\b-\2\2\u0110Z\3\2\2\2\16\2\u00b6\u00bc") - buf.write("\u00be\u00d5\u00dc\u00e8\u00f4\u00f9\u0103\u010a\u010d") - buf.write("\3\b\2\2") + buf.write("\2\2\2]^\7I\2\2^_\7O\2\2_\6\3\2\2\2`a\7\61\2\2a\b\3\2") + buf.write("\2\2bc\7J\2\2cd\7O\2\2d\n\3\2\2\2ef\7C\2\2fg\7O\2\2g\f") + buf.write("\3\2\2\2hi\7T\2\2ij\7O\2\2j\16\3\2\2\2kl\7T\2\2lm\7C\2") + buf.write("\2m\20\3\2\2\2no\7T\2\2op\7Q\2\2p\22\3\2\2\2qr\7H\2\2") + buf.write("rs\7O\2\2s\24\3\2\2\2tu\7H\2\2uv\7I\2\2vw\7O\2\2w\26\3") + buf.write("\2\2\2xy\7E\2\2yz\7O\2\2z\30\3\2\2\2{|\7I\2\2|}\7N\2\2") + buf.write("}\32\3\2\2\2~\177\7J\2\2\177\u0080\7N\2\2\u0080\34\3\2") + buf.write("\2\2\u0081\u0082\7C\2\2\u0082\u0083\7N\2\2\u0083\36\3") + buf.write("\2\2\2\u0084\u0085\7T\2\2\u0085\u0086\7N\2\2\u0086 \3") + buf.write("\2\2\2\u0087\u0088\7I\2\2\u0088\u0089\7D\2\2\u0089\"\3") + buf.write("\2\2\2\u008a\u008b\7J\2\2\u008b\u008c\7D\2\2\u008c$\3") + buf.write("\2\2\2\u008d\u008e\7C\2\2\u008e\u008f\7D\2\2\u008f&\3") + buf.write("\2\2\2\u0090\u0091\7T\2\2\u0091\u0092\7D\2\2\u0092(\3") + buf.write("\2\2\2\u0093\u0094\7I\2\2\u0094\u0095\7U\2\2\u0095*\3") + buf.write("\2\2\2\u0096\u0097\7J\2\2\u0097\u0098\7U\2\2\u0098,\3") + buf.write("\2\2\2\u0099\u009a\7C\2\2\u009a\u009b\7U\2\2\u009b.\3") + buf.write("\2\2\2\u009c\u009d\7T\2\2\u009d\u009e\7U\2\2\u009e\60") + buf.write("\3\2\2\2\u009f\u00a0\7E\2\2\u00a0\u00a1\7R\2\2\u00a1\62") + buf.write("\3\2\2\2\u00a2\u00a3\7-\2\2\u00a3\64\3\2\2\2\u00a4\u00a5") + buf.write("\7/\2\2\u00a5\66\3\2\2\2\u00a6\u00a7\7T\2\2\u00a7\u00a8") + buf.write("\7X\2\2\u00a88\3\2\2\2\u00a9\u00aa\7T\2\2\u00aa\u00ab") + buf.write("\7P\2\2\u00ab:\3\2\2\2\u00ac\u00ad\7I\2\2\u00ad\u00ae") + buf.write("\7M\2\2\u00ae<\3\2\2\2\u00af\u00b0\7J\2\2\u00b0\u00b1") + buf.write("\7M\2\2\u00b1>\3\2\2\2\u00b2\u00b3\7T\2\2\u00b3\u00b4") + buf.write("\7M\2\2\u00b4@\3\2\2\2\u00b5\u00b6\7.\2\2\u00b6B\3\2\2") + buf.write("\2\u00b7\u00b8\t\2\2\2\u00b8D\3\2\2\2\u00b9\u00bb\5C\"") + buf.write("\2\u00ba\u00b9\3\2\2\2\u00bb\u00bc\3\2\2\2\u00bc\u00ba") + buf.write("\3\2\2\2\u00bc\u00bd\3\2\2\2\u00bd\u00c4\3\2\2\2\u00be") + buf.write("\u00c0\7\60\2\2\u00bf\u00c1\5C\"\2\u00c0\u00bf\3\2\2\2") + buf.write("\u00c1\u00c2\3\2\2\2\u00c2\u00c0\3\2\2\2\u00c2\u00c3\3") + buf.write("\2\2\2\u00c3\u00c5\3\2\2\2\u00c4\u00be\3\2\2\2\u00c4\u00c5") + buf.write("\3\2\2\2\u00c5F\3\2\2\2\u00c6\u00c7\7@\2\2\u00c7H\3\2") + buf.write("\2\2\u00c8\u00c9\7,\2\2\u00c9J\3\2\2\2\u00ca\u00cb\7v") + buf.write("\2\2\u00cbL\3\2\2\2\u00cc\u00cd\t\3\2\2\u00cdN\3\2\2\2") + buf.write("\u00ce\u00cf\t\4\2\2\u00cfP\3\2\2\2\u00d0\u00d1\7K\2\2") + buf.write("\u00d1\u00d2\7Q\2\2\u00d2\u00d3\7R\2\2\u00d3R\3\2\2\2") + buf.write("\u00d4\u00d6\7\17\2\2\u00d5\u00d4\3\2\2\2\u00d5\u00d6") + buf.write("\3\2\2\2\u00d6\u00d7\3\2\2\2\u00d7\u00d8\7\f\2\2\u00d8") + buf.write("T\3\2\2\2\u00d9\u00db\t\5\2\2\u00da\u00d9\3\2\2\2\u00db") + buf.write("\u00dc\3\2\2\2\u00dc\u00da\3\2\2\2\u00dc\u00dd\3\2\2\2") + buf.write("\u00dd\u00de\3\2\2\2\u00de\u00df\b+\2\2\u00dfV\3\2\2\2") + buf.write("\u00e0\u00e1\7>\2\2\u00e1\u00e2\7#\2\2\u00e2\u00e3\7/") + buf.write("\2\2\u00e3\u00e4\7/\2\2\u00e4\u00e8\3\2\2\2\u00e5\u00e7") + buf.write("\13\2\2\2\u00e6\u00e5\3\2\2\2\u00e7\u00ea\3\2\2\2\u00e8") + buf.write("\u00e9\3\2\2\2\u00e8\u00e6\3\2\2\2\u00e9\u00eb\3\2\2\2") + buf.write("\u00ea\u00e8\3\2\2\2\u00eb\u00ec\7/\2\2\u00ec\u00ed\7") + buf.write("/\2\2\u00ed\u00fa\7@\2\2\u00ee\u00ef\7\61\2\2\u00ef\u00f0") + buf.write("\7,\2\2\u00f0\u00f4\3\2\2\2\u00f1\u00f3\13\2\2\2\u00f2") + buf.write("\u00f1\3\2\2\2\u00f3\u00f6\3\2\2\2\u00f4\u00f5\3\2\2\2") + buf.write("\u00f4\u00f2\3\2\2\2\u00f5\u00f7\3\2\2\2\u00f6\u00f4\3") + buf.write("\2\2\2\u00f7\u00f8\7,\2\2\u00f8\u00fa\7\61\2\2\u00f9\u00e0") + buf.write("\3\2\2\2\u00f9\u00ee\3\2\2\2\u00fa\u00fb\3\2\2\2\u00fb") + buf.write("\u00fc\b,\2\2\u00fcX\3\2\2\2\u00fd\u00fe\7\61\2\2\u00fe") + buf.write("\u00ff\7\61\2\2\u00ff\u0103\3\2\2\2\u0100\u0102\n\6\2") + buf.write("\2\u0101\u0100\3\2\2\2\u0102\u0105\3\2\2\2\u0103\u0101") + buf.write("\3\2\2\2\u0103\u0104\3\2\2\2\u0104\u010e\3\2\2\2\u0105") + buf.write("\u0103\3\2\2\2\u0106\u010a\7%\2\2\u0107\u0109\n\6\2\2") + buf.write("\u0108\u0107\3\2\2\2\u0109\u010c\3\2\2\2\u010a\u0108\3") + buf.write("\2\2\2\u010a\u010b\3\2\2\2\u010b\u010e\3\2\2\2\u010c\u010a") + buf.write("\3\2\2\2\u010d\u00fd\3\2\2\2\u010d\u0106\3\2\2\2\u010e") + buf.write("\u010f\3\2\2\2\u010f\u0110\b-\2\2\u0110Z\3\2\2\2\16\2") + buf.write("\u00bc\u00c2\u00c4\u00d5\u00dc\u00e8\u00f4\u00f9\u0103") + buf.write("\u010a\u010d\3\b\2\2") return buf.getvalue() @@ -157,11 +157,11 @@ class CommentMacroLexer(Lexer): T__26 = 27 T__27 = 28 T__28 = 29 - NUMBER = 30 - SLASH = 31 - THRU = 32 - NEXT = 33 - PREV = 34 + T__29 = 30 + T__30 = 31 + T__31 = 32 + NUMBER = 33 + THRU = 34 CURRENT = 35 TIME = 36 WHOLEHOG = 37 @@ -177,22 +177,22 @@ class CommentMacroLexer(Lexer): modeNames = [ "DEFAULT_MODE" ] literalNames = [ "", - "':'", "'GM'", "'HM'", "'AM'", "'RM'", "'RA'", "'RO'", "'FM'", - "'FGM'", "'CM'", "'GL'", "'HL'", "'AL'", "'RL'", "'GB'", "'HB'", - "'AB'", "'RB'", "'GS'", "'HS'", "'AS'", "'RS'", "'CP'", "'RV'", - "'RN'", "'GK'", "'HK'", "'RK'", "','", "'/'", "'>'", "'+'", - "'-'", "'*'", "'t'", "'IOP'" ] + "':'", "'GM'", "'/'", "'HM'", "'AM'", "'RM'", "'RA'", "'RO'", + "'FM'", "'FGM'", "'CM'", "'GL'", "'HL'", "'AL'", "'RL'", "'GB'", + "'HB'", "'AB'", "'RB'", "'GS'", "'HS'", "'AS'", "'RS'", "'CP'", + "'+'", "'-'", "'RV'", "'RN'", "'GK'", "'HK'", "'RK'", "','", + "'>'", "'*'", "'t'", "'IOP'" ] symbolicNames = [ "", - "NUMBER", "SLASH", "THRU", "NEXT", "PREV", "CURRENT", "TIME", - "WHOLEHOG", "DP8K", "IOP", "NEWLINE", "WS", "COMMENT", "LINE_COMMENT" ] + "NUMBER", "THRU", "CURRENT", "TIME", "WHOLEHOG", "DP8K", "IOP", + "NEWLINE", "WS", "COMMENT", "LINE_COMMENT" ] ruleNames = [ "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16", "T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "T__24", "T__25", - "T__26", "T__27", "T__28", "DIGIT", "NUMBER", "SLASH", - "THRU", "NEXT", "PREV", "CURRENT", "TIME", "WHOLEHOG", + "T__26", "T__27", "T__28", "T__29", "T__30", "T__31", + "DIGIT", "NUMBER", "THRU", "CURRENT", "TIME", "WHOLEHOG", "DP8K", "IOP", "NEWLINE", "WS", "COMMENT", "LINE_COMMENT" ] grammarFileName = "CommentMacro.g4" diff --git a/CommentMacroListener.py b/CommentMacroListener.py index c979090..66703e8 100644 --- a/CommentMacroListener.py +++ b/CommentMacroListener.py @@ -35,15 +35,6 @@ class CommentMacroListener(ParseTreeListener): pass - # Enter a parse tree produced by CommentMacroParser#master. - def enterMaster(self, ctx:CommentMacroParser.MasterContext): - pass - - # Exit a parse tree produced by CommentMacroParser#master. - def exitMaster(self, ctx:CommentMacroParser.MasterContext): - pass - - # Enter a parse tree produced by CommentMacroParser#time. def enterTime(self, ctx:CommentMacroParser.TimeContext): pass diff --git a/CommentMacroParser.py b/CommentMacroParser.py index aa917e9..8b0956e 100644 --- a/CommentMacroParser.py +++ b/CommentMacroParser.py @@ -8,117 +8,124 @@ import sys def serializedATN(): with StringIO() as buf: buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3-") - buf.write("\u00ed\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7") - buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\3\2\6\2\30\n\2\r\2") - buf.write("\16\2\31\3\2\3\2\3\3\3\3\3\3\7\3!\n\3\f\3\16\3$\13\3\3") - buf.write("\3\5\3\'\n\3\3\3\5\3*\n\3\3\4\3\4\3\4\5\4/\n\4\3\4\3\4") - buf.write("\3\4\3\4\3\4\5\4\66\n\4\3\4\3\4\3\4\5\4;\n\4\3\4\3\4\3") - buf.write("\4\5\4@\n\4\3\4\3\4\3\4\5\4E\n\4\3\4\3\4\5\4I\n\4\3\4") - buf.write("\3\4\5\4M\n\4\3\4\3\4\3\4\3\4\3\4\5\4T\n\4\3\4\5\4W\n") - buf.write("\4\3\4\3\4\3\4\5\4\\\n\4\3\4\5\4_\n\4\3\4\3\4\3\4\5\4") - buf.write("d\n\4\3\4\3\4\3\4\5\4i\n\4\3\4\3\4\3\4\3\4\3\4\5\4p\n") - buf.write("\4\3\4\3\4\3\4\5\4u\n\4\3\4\3\4\3\4\5\4z\n\4\3\4\3\4\3") - buf.write("\4\5\4\177\n\4\3\4\3\4\3\4\5\4\u0084\n\4\3\4\3\4\3\4\5") - buf.write("\4\u0089\n\4\3\4\3\4\3\4\5\4\u008e\n\4\3\4\3\4\3\4\5\4") - buf.write("\u0093\n\4\3\4\3\4\3\4\5\4\u0098\n\4\3\4\3\4\3\4\5\4\u009d") - buf.write("\n\4\3\4\3\4\3\4\5\4\u00a2\n\4\3\4\3\4\3\4\5\4\u00a7\n") - buf.write("\4\3\4\3\4\3\4\5\4\u00ac\n\4\3\4\3\4\3\4\5\4\u00b1\n\4") - buf.write("\3\4\3\4\3\4\5\4\u00b6\n\4\3\4\3\4\3\4\5\4\u00bb\n\4\3") - buf.write("\4\3\4\3\4\3\4\3\4\5\4\u00c2\n\4\3\4\3\4\3\4\5\4\u00c7") - buf.write("\n\4\3\4\3\4\3\4\5\4\u00cc\n\4\5\4\u00ce\n\4\3\5\3\5\5") - buf.write("\5\u00d2\n\5\3\6\3\6\3\6\3\7\3\7\3\7\3\b\3\b\3\t\3\t\5") - buf.write("\t\u00de\n\t\3\t\3\t\7\t\u00e2\n\t\f\t\16\t\u00e5\13\t") - buf.write("\3\n\3\n\3\n\3\n\3\13\3\13\3\13\2\2\f\2\4\6\b\n\f\16\20") - buf.write("\22\24\2\3\3\2\')\2\u0127\2\27\3\2\2\2\4)\3\2\2\2\6\u00cd") - buf.write("\3\2\2\2\b\u00d1\3\2\2\2\n\u00d3\3\2\2\2\f\u00d6\3\2\2") - buf.write("\2\16\u00d9\3\2\2\2\20\u00dd\3\2\2\2\22\u00e6\3\2\2\2") - buf.write("\24\u00ea\3\2\2\2\26\30\5\4\3\2\27\26\3\2\2\2\30\31\3") - buf.write("\2\2\2\31\27\3\2\2\2\31\32\3\2\2\2\32\33\3\2\2\2\33\34") - buf.write("\7\2\2\3\34\3\3\2\2\2\35\"\5\6\4\2\36\37\7\3\2\2\37!\5") - buf.write("\6\4\2 \36\3\2\2\2!$\3\2\2\2\" \3\2\2\2\"#\3\2\2\2#&\3") - buf.write("\2\2\2$\"\3\2\2\2%\'\7*\2\2&%\3\2\2\2&\'\3\2\2\2\'*\3") - buf.write("\2\2\2(*\7*\2\2)\35\3\2\2\2)(\3\2\2\2*\5\3\2\2\2+,\7\4") - buf.write("\2\2,.\5\b\5\2-/\5\f\7\2.-\3\2\2\2./\3\2\2\2/\u00ce\3") - buf.write("\2\2\2\60\61\7\4\2\2\61\62\5\b\5\2\62\63\7!\2\2\63\65") - buf.write("\5\24\13\2\64\66\5\f\7\2\65\64\3\2\2\2\65\66\3\2\2\2\66") - buf.write("\u00ce\3\2\2\2\678\7\5\2\28:\5\b\5\29;\5\f\7\2:9\3\2\2") - buf.write("\2:;\3\2\2\2;\u00ce\3\2\2\2<=\7\6\2\2=?\5\b\5\2>@\5\f") - buf.write("\7\2?>\3\2\2\2?@\3\2\2\2@\u00ce\3\2\2\2AB\7\7\2\2BD\5") - buf.write("\b\5\2CE\5\f\7\2DC\3\2\2\2DE\3\2\2\2E\u00ce\3\2\2\2FH") - buf.write("\7\b\2\2GI\5\f\7\2HG\3\2\2\2HI\3\2\2\2I\u00ce\3\2\2\2") - buf.write("JL\7\t\2\2KM\5\f\7\2LK\3\2\2\2LM\3\2\2\2M\u00ce\3\2\2") - buf.write("\2NO\7\n\2\2OP\5\b\5\2PQ\7!\2\2QS\5\24\13\2RT\5\n\6\2") - buf.write("SR\3\2\2\2ST\3\2\2\2TV\3\2\2\2UW\5\f\7\2VU\3\2\2\2VW\3") - buf.write("\2\2\2W\u00ce\3\2\2\2XY\7\13\2\2Y[\5\24\13\2Z\\\5\n\6") - buf.write("\2[Z\3\2\2\2[\\\3\2\2\2\\^\3\2\2\2]_\5\f\7\2^]\3\2\2\2") - buf.write("^_\3\2\2\2_\u00ce\3\2\2\2`a\7\f\2\2ac\5\24\13\2bd\5\f") - buf.write("\7\2cb\3\2\2\2cd\3\2\2\2d\u00ce\3\2\2\2ef\7\r\2\2fh\5") - buf.write("\20\t\2gi\5\f\7\2hg\3\2\2\2hi\3\2\2\2i\u00ce\3\2\2\2j") - buf.write("k\7\r\2\2kl\5\20\t\2lm\7!\2\2mo\5\24\13\2np\5\f\7\2on") - buf.write("\3\2\2\2op\3\2\2\2p\u00ce\3\2\2\2qr\7\16\2\2rt\5\20\t") - buf.write("\2su\5\f\7\2ts\3\2\2\2tu\3\2\2\2u\u00ce\3\2\2\2vw\7\17") - buf.write("\2\2wy\5\20\t\2xz\5\f\7\2yx\3\2\2\2yz\3\2\2\2z\u00ce\3") - buf.write("\2\2\2{|\7\20\2\2|~\5\20\t\2}\177\5\f\7\2~}\3\2\2\2~\177") - buf.write("\3\2\2\2\177\u00ce\3\2\2\2\u0080\u0081\7\21\2\2\u0081") - buf.write("\u0083\5\20\t\2\u0082\u0084\5\f\7\2\u0083\u0082\3\2\2") - buf.write("\2\u0083\u0084\3\2\2\2\u0084\u00ce\3\2\2\2\u0085\u0086") - buf.write("\7\22\2\2\u0086\u0088\5\20\t\2\u0087\u0089\5\f\7\2\u0088") - buf.write("\u0087\3\2\2\2\u0088\u0089\3\2\2\2\u0089\u00ce\3\2\2\2") - buf.write("\u008a\u008b\7\23\2\2\u008b\u008d\5\20\t\2\u008c\u008e") - buf.write("\5\f\7\2\u008d\u008c\3\2\2\2\u008d\u008e\3\2\2\2\u008e") - buf.write("\u00ce\3\2\2\2\u008f\u0090\7\24\2\2\u0090\u0092\5\20\t") - buf.write("\2\u0091\u0093\5\f\7\2\u0092\u0091\3\2\2\2\u0092\u0093") - buf.write("\3\2\2\2\u0093\u00ce\3\2\2\2\u0094\u0095\7\25\2\2\u0095") - buf.write("\u0097\5\20\t\2\u0096\u0098\5\f\7\2\u0097\u0096\3\2\2") - buf.write("\2\u0097\u0098\3\2\2\2\u0098\u00ce\3\2\2\2\u0099\u009a") - buf.write("\7\26\2\2\u009a\u009c\5\20\t\2\u009b\u009d\5\f\7\2\u009c") - buf.write("\u009b\3\2\2\2\u009c\u009d\3\2\2\2\u009d\u00ce\3\2\2\2") - buf.write("\u009e\u009f\7\27\2\2\u009f\u00a1\5\20\t\2\u00a0\u00a2") - buf.write("\5\f\7\2\u00a1\u00a0\3\2\2\2\u00a1\u00a2\3\2\2\2\u00a2") - buf.write("\u00ce\3\2\2\2\u00a3\u00a4\7\30\2\2\u00a4\u00a6\5\20\t") - buf.write("\2\u00a5\u00a7\5\f\7\2\u00a6\u00a5\3\2\2\2\u00a6\u00a7") - buf.write("\3\2\2\2\u00a7\u00ce\3\2\2\2\u00a8\u00a9\7\31\2\2\u00a9") - buf.write("\u00ab\5\24\13\2\u00aa\u00ac\5\f\7\2\u00ab\u00aa\3\2\2") - buf.write("\2\u00ab\u00ac\3\2\2\2\u00ac\u00ce\3\2\2\2\u00ad\u00ae") - buf.write("\7\31\2\2\u00ae\u00b0\7#\2\2\u00af\u00b1\5\f\7\2\u00b0") - buf.write("\u00af\3\2\2\2\u00b0\u00b1\3\2\2\2\u00b1\u00ce\3\2\2\2") - buf.write("\u00b2\u00b3\7\31\2\2\u00b3\u00b5\7$\2\2\u00b4\u00b6\5") - buf.write("\f\7\2\u00b5\u00b4\3\2\2\2\u00b5\u00b6\3\2\2\2\u00b6\u00ce") - buf.write("\3\2\2\2\u00b7\u00b8\7\32\2\2\u00b8\u00ba\5\24\13\2\u00b9") - buf.write("\u00bb\5\f\7\2\u00ba\u00b9\3\2\2\2\u00ba\u00bb\3\2\2\2") - buf.write("\u00bb\u00ce\3\2\2\2\u00bc\u00bd\7\33\2\2\u00bd\u00ce") - buf.write("\5\f\7\2\u00be\u00bf\7\34\2\2\u00bf\u00c1\5\20\t\2\u00c0") - buf.write("\u00c2\5\f\7\2\u00c1\u00c0\3\2\2\2\u00c1\u00c2\3\2\2\2") - buf.write("\u00c2\u00ce\3\2\2\2\u00c3\u00c4\7\35\2\2\u00c4\u00c6") - buf.write("\5\20\t\2\u00c5\u00c7\5\f\7\2\u00c6\u00c5\3\2\2\2\u00c6") - buf.write("\u00c7\3\2\2\2\u00c7\u00ce\3\2\2\2\u00c8\u00c9\7\36\2") - buf.write("\2\u00c9\u00cb\5\20\t\2\u00ca\u00cc\5\f\7\2\u00cb\u00ca") - buf.write("\3\2\2\2\u00cb\u00cc\3\2\2\2\u00cc\u00ce\3\2\2\2\u00cd") - buf.write("+\3\2\2\2\u00cd\60\3\2\2\2\u00cd\67\3\2\2\2\u00cd<\3\2") - buf.write("\2\2\u00cdA\3\2\2\2\u00cdF\3\2\2\2\u00cdJ\3\2\2\2\u00cd") - buf.write("N\3\2\2\2\u00cdX\3\2\2\2\u00cd`\3\2\2\2\u00cde\3\2\2\2") - buf.write("\u00cdj\3\2\2\2\u00cdq\3\2\2\2\u00cdv\3\2\2\2\u00cd{\3") - buf.write("\2\2\2\u00cd\u0080\3\2\2\2\u00cd\u0085\3\2\2\2\u00cd\u008a") - buf.write("\3\2\2\2\u00cd\u008f\3\2\2\2\u00cd\u0094\3\2\2\2\u00cd") - buf.write("\u0099\3\2\2\2\u00cd\u009e\3\2\2\2\u00cd\u00a3\3\2\2\2") - buf.write("\u00cd\u00a8\3\2\2\2\u00cd\u00ad\3\2\2\2\u00cd\u00b2\3") - buf.write("\2\2\2\u00cd\u00b7\3\2\2\2\u00cd\u00bc\3\2\2\2\u00cd\u00be") - buf.write("\3\2\2\2\u00cd\u00c3\3\2\2\2\u00cd\u00c8\3\2\2\2\u00ce") - buf.write("\7\3\2\2\2\u00cf\u00d2\5\20\t\2\u00d0\u00d2\7%\2\2\u00d1") - buf.write("\u00cf\3\2\2\2\u00d1\u00d0\3\2\2\2\u00d2\t\3\2\2\2\u00d3") - buf.write("\u00d4\7&\2\2\u00d4\u00d5\5\24\13\2\u00d5\13\3\2\2\2\u00d6") - buf.write("\u00d7\5\16\b\2\u00d7\u00d8\5\24\13\2\u00d8\r\3\2\2\2") - buf.write("\u00d9\u00da\t\2\2\2\u00da\17\3\2\2\2\u00db\u00de\5\24") - buf.write("\13\2\u00dc\u00de\5\22\n\2\u00dd\u00db\3\2\2\2\u00dd\u00dc") - buf.write("\3\2\2\2\u00de\u00e3\3\2\2\2\u00df\u00e0\7\37\2\2\u00e0") - buf.write("\u00e2\5\20\t\2\u00e1\u00df\3\2\2\2\u00e2\u00e5\3\2\2") - buf.write("\2\u00e3\u00e1\3\2\2\2\u00e3\u00e4\3\2\2\2\u00e4\21\3") - buf.write("\2\2\2\u00e5\u00e3\3\2\2\2\u00e6\u00e7\5\24\13\2\u00e7") - buf.write("\u00e8\7\"\2\2\u00e8\u00e9\5\24\13\2\u00e9\23\3\2\2\2") - buf.write("\u00ea\u00eb\7 \2\2\u00eb\25\3\2\2\2*\31\"&).\65:?DHL") - buf.write("SV[^choty~\u0083\u0088\u008d\u0092\u0097\u009c\u00a1\u00a6") - buf.write("\u00ab\u00b0\u00b5\u00ba\u00c1\u00c6\u00cb\u00cd\u00d1") - buf.write("\u00dd\u00e3") + buf.write("\u00f9\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7") + buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\3\2\6\2\26\n\2\r\2\16\2\27\3") + buf.write("\2\3\2\3\3\3\3\3\3\7\3\37\n\3\f\3\16\3\"\13\3\3\3\5\3") + buf.write("%\n\3\3\3\5\3(\n\3\3\4\3\4\3\4\5\4-\n\4\3\4\5\4\60\n\4") + buf.write("\3\4\3\4\3\4\5\4\65\n\4\3\4\3\4\3\4\5\4:\n\4\3\4\3\4\3") + buf.write("\4\5\4?\n\4\3\4\5\4B\n\4\3\4\3\4\3\4\5\4G\n\4\3\4\5\4") + buf.write("J\n\4\3\4\3\4\3\4\5\4O\n\4\3\4\5\4R\n\4\3\4\3\4\5\4V\n") + buf.write("\4\3\4\3\4\5\4Z\n\4\3\4\3\4\3\4\5\4_\n\4\3\4\3\4\3\4\5") + buf.write("\4d\n\4\3\4\5\4g\n\4\3\4\3\4\3\4\5\4l\n\4\3\4\5\4o\n\4") + buf.write("\3\4\3\4\3\4\5\4t\n\4\3\4\3\4\3\4\5\4y\n\4\3\4\3\4\3\4") + buf.write("\3\4\3\4\5\4\u0080\n\4\3\4\3\4\3\4\5\4\u0085\n\4\3\4\3") + buf.write("\4\3\4\5\4\u008a\n\4\3\4\3\4\3\4\5\4\u008f\n\4\3\4\3\4") + buf.write("\3\4\5\4\u0094\n\4\3\4\3\4\3\4\5\4\u0099\n\4\3\4\3\4\3") + buf.write("\4\5\4\u009e\n\4\3\4\3\4\3\4\5\4\u00a3\n\4\3\4\3\4\3\4") + buf.write("\5\4\u00a8\n\4\3\4\3\4\3\4\5\4\u00ad\n\4\3\4\3\4\3\4\5") + buf.write("\4\u00b2\n\4\3\4\3\4\3\4\5\4\u00b7\n\4\3\4\3\4\3\4\5\4") + buf.write("\u00bc\n\4\3\4\3\4\3\4\5\4\u00c1\n\4\3\4\3\4\3\4\5\4\u00c6") + buf.write("\n\4\3\4\3\4\3\4\5\4\u00cb\n\4\3\4\3\4\3\4\3\4\3\4\5\4") + buf.write("\u00d2\n\4\3\4\3\4\3\4\5\4\u00d7\n\4\3\4\3\4\3\4\5\4\u00dc") + buf.write("\n\4\5\4\u00de\n\4\3\5\3\5\3\5\3\6\3\6\3\6\3\7\3\7\3\b") + buf.write("\3\b\5\b\u00ea\n\b\3\b\3\b\7\b\u00ee\n\b\f\b\16\b\u00f1") + buf.write("\13\b\3\t\3\t\3\t\3\t\3\n\3\n\3\n\2\2\13\2\4\6\b\n\f\16") + buf.write("\20\22\2\3\3\2\')\2\u0139\2\25\3\2\2\2\4\'\3\2\2\2\6\u00dd") + buf.write("\3\2\2\2\b\u00df\3\2\2\2\n\u00e2\3\2\2\2\f\u00e5\3\2\2") + buf.write("\2\16\u00e9\3\2\2\2\20\u00f2\3\2\2\2\22\u00f6\3\2\2\2") + buf.write("\24\26\5\4\3\2\25\24\3\2\2\2\26\27\3\2\2\2\27\25\3\2\2") + buf.write("\2\27\30\3\2\2\2\30\31\3\2\2\2\31\32\7\2\2\3\32\3\3\2") + buf.write("\2\2\33 \5\6\4\2\34\35\7\3\2\2\35\37\5\6\4\2\36\34\3\2") + buf.write("\2\2\37\"\3\2\2\2 \36\3\2\2\2 !\3\2\2\2!$\3\2\2\2\" \3") + buf.write("\2\2\2#%\7*\2\2$#\3\2\2\2$%\3\2\2\2%(\3\2\2\2&(\7*\2\2") + buf.write("\'\33\3\2\2\2\'&\3\2\2\2(\5\3\2\2\2),\7\4\2\2*-\5\16\b") + buf.write("\2+-\7%\2\2,*\3\2\2\2,+\3\2\2\2-/\3\2\2\2.\60\5\n\6\2") + buf.write("/.\3\2\2\2/\60\3\2\2\2\60\u00de\3\2\2\2\61\64\7\4\2\2") + buf.write("\62\65\5\16\b\2\63\65\7%\2\2\64\62\3\2\2\2\64\63\3\2\2") + buf.write("\2\65\66\3\2\2\2\66\67\7\5\2\2\679\5\22\n\28:\5\n\6\2") + buf.write("98\3\2\2\29:\3\2\2\2:\u00de\3\2\2\2;>\7\6\2\2<\3\2\2\2>=\3\2\2\2?A\3\2\2\2@B\5\n\6\2A@") + buf.write("\3\2\2\2AB\3\2\2\2B\u00de\3\2\2\2CF\7\7\2\2DG\5\16\b\2") + buf.write("EG\7%\2\2FD\3\2\2\2FE\3\2\2\2GI\3\2\2\2HJ\5\n\6\2IH\3") + buf.write("\2\2\2IJ\3\2\2\2J\u00de\3\2\2\2KN\7\b\2\2LO\5\16\b\2M") + buf.write("O\7%\2\2NL\3\2\2\2NM\3\2\2\2OQ\3\2\2\2PR\5\n\6\2QP\3\2") + buf.write("\2\2QR\3\2\2\2R\u00de\3\2\2\2SU\7\t\2\2TV\5\n\6\2UT\3") + buf.write("\2\2\2UV\3\2\2\2V\u00de\3\2\2\2WY\7\n\2\2XZ\5\n\6\2YX") + buf.write("\3\2\2\2YZ\3\2\2\2Z\u00de\3\2\2\2[^\7\13\2\2\\_\5\16\b") + buf.write("\2]_\7%\2\2^\\\3\2\2\2^]\3\2\2\2_`\3\2\2\2`a\7\5\2\2a") + buf.write("c\5\22\n\2bd\5\b\5\2cb\3\2\2\2cd\3\2\2\2df\3\2\2\2eg\5") + buf.write("\n\6\2fe\3\2\2\2fg\3\2\2\2g\u00de\3\2\2\2hi\7\f\2\2ik") + buf.write("\5\22\n\2jl\5\b\5\2kj\3\2\2\2kl\3\2\2\2ln\3\2\2\2mo\5") + buf.write("\n\6\2nm\3\2\2\2no\3\2\2\2o\u00de\3\2\2\2pq\7\r\2\2qs") + buf.write("\5\22\n\2rt\5\n\6\2sr\3\2\2\2st\3\2\2\2t\u00de\3\2\2\2") + buf.write("uv\7\16\2\2vx\5\16\b\2wy\5\n\6\2xw\3\2\2\2xy\3\2\2\2y") + buf.write("\u00de\3\2\2\2z{\7\16\2\2{|\5\16\b\2|}\7\5\2\2}\177\5") + buf.write("\22\n\2~\u0080\5\n\6\2\177~\3\2\2\2\177\u0080\3\2\2\2") + buf.write("\u0080\u00de\3\2\2\2\u0081\u0082\7\17\2\2\u0082\u0084") + buf.write("\5\16\b\2\u0083\u0085\5\n\6\2\u0084\u0083\3\2\2\2\u0084") + buf.write("\u0085\3\2\2\2\u0085\u00de\3\2\2\2\u0086\u0087\7\20\2") + buf.write("\2\u0087\u0089\5\16\b\2\u0088\u008a\5\n\6\2\u0089\u0088") + buf.write("\3\2\2\2\u0089\u008a\3\2\2\2\u008a\u00de\3\2\2\2\u008b") + buf.write("\u008c\7\21\2\2\u008c\u008e\5\16\b\2\u008d\u008f\5\n\6") + buf.write("\2\u008e\u008d\3\2\2\2\u008e\u008f\3\2\2\2\u008f\u00de") + buf.write("\3\2\2\2\u0090\u0091\7\22\2\2\u0091\u0093\5\16\b\2\u0092") + buf.write("\u0094\5\n\6\2\u0093\u0092\3\2\2\2\u0093\u0094\3\2\2\2") + buf.write("\u0094\u00de\3\2\2\2\u0095\u0096\7\23\2\2\u0096\u0098") + buf.write("\5\16\b\2\u0097\u0099\5\n\6\2\u0098\u0097\3\2\2\2\u0098") + buf.write("\u0099\3\2\2\2\u0099\u00de\3\2\2\2\u009a\u009b\7\24\2") + buf.write("\2\u009b\u009d\5\16\b\2\u009c\u009e\5\n\6\2\u009d\u009c") + buf.write("\3\2\2\2\u009d\u009e\3\2\2\2\u009e\u00de\3\2\2\2\u009f") + buf.write("\u00a0\7\25\2\2\u00a0\u00a2\5\16\b\2\u00a1\u00a3\5\n\6") + buf.write("\2\u00a2\u00a1\3\2\2\2\u00a2\u00a3\3\2\2\2\u00a3\u00de") + buf.write("\3\2\2\2\u00a4\u00a5\7\26\2\2\u00a5\u00a7\5\16\b\2\u00a6") + buf.write("\u00a8\5\n\6\2\u00a7\u00a6\3\2\2\2\u00a7\u00a8\3\2\2\2") + buf.write("\u00a8\u00de\3\2\2\2\u00a9\u00aa\7\27\2\2\u00aa\u00ac") + buf.write("\5\16\b\2\u00ab\u00ad\5\n\6\2\u00ac\u00ab\3\2\2\2\u00ac") + buf.write("\u00ad\3\2\2\2\u00ad\u00de\3\2\2\2\u00ae\u00af\7\30\2") + buf.write("\2\u00af\u00b1\5\16\b\2\u00b0\u00b2\5\n\6\2\u00b1\u00b0") + buf.write("\3\2\2\2\u00b1\u00b2\3\2\2\2\u00b2\u00de\3\2\2\2\u00b3") + buf.write("\u00b4\7\31\2\2\u00b4\u00b6\5\16\b\2\u00b5\u00b7\5\n\6") + buf.write("\2\u00b6\u00b5\3\2\2\2\u00b6\u00b7\3\2\2\2\u00b7\u00de") + buf.write("\3\2\2\2\u00b8\u00b9\7\32\2\2\u00b9\u00bb\5\22\n\2\u00ba") + buf.write("\u00bc\5\n\6\2\u00bb\u00ba\3\2\2\2\u00bb\u00bc\3\2\2\2") + buf.write("\u00bc\u00de\3\2\2\2\u00bd\u00be\7\32\2\2\u00be\u00c0") + buf.write("\7\33\2\2\u00bf\u00c1\5\n\6\2\u00c0\u00bf\3\2\2\2\u00c0") + buf.write("\u00c1\3\2\2\2\u00c1\u00de\3\2\2\2\u00c2\u00c3\7\32\2") + buf.write("\2\u00c3\u00c5\7\34\2\2\u00c4\u00c6\5\n\6\2\u00c5\u00c4") + buf.write("\3\2\2\2\u00c5\u00c6\3\2\2\2\u00c6\u00de\3\2\2\2\u00c7") + buf.write("\u00c8\7\35\2\2\u00c8\u00ca\5\22\n\2\u00c9\u00cb\5\n\6") + buf.write("\2\u00ca\u00c9\3\2\2\2\u00ca\u00cb\3\2\2\2\u00cb\u00de") + buf.write("\3\2\2\2\u00cc\u00cd\7\36\2\2\u00cd\u00de\5\n\6\2\u00ce") + buf.write("\u00cf\7\37\2\2\u00cf\u00d1\5\16\b\2\u00d0\u00d2\5\n\6") + buf.write("\2\u00d1\u00d0\3\2\2\2\u00d1\u00d2\3\2\2\2\u00d2\u00de") + buf.write("\3\2\2\2\u00d3\u00d4\7 \2\2\u00d4\u00d6\5\16\b\2\u00d5") + buf.write("\u00d7\5\n\6\2\u00d6\u00d5\3\2\2\2\u00d6\u00d7\3\2\2\2") + buf.write("\u00d7\u00de\3\2\2\2\u00d8\u00d9\7!\2\2\u00d9\u00db\5") + buf.write("\16\b\2\u00da\u00dc\5\n\6\2\u00db\u00da\3\2\2\2\u00db") + buf.write("\u00dc\3\2\2\2\u00dc\u00de\3\2\2\2\u00dd)\3\2\2\2\u00dd") + buf.write("\61\3\2\2\2\u00dd;\3\2\2\2\u00ddC\3\2\2\2\u00ddK\3\2\2") + buf.write("\2\u00ddS\3\2\2\2\u00ddW\3\2\2\2\u00dd[\3\2\2\2\u00dd") + buf.write("h\3\2\2\2\u00ddp\3\2\2\2\u00ddu\3\2\2\2\u00ddz\3\2\2\2") + buf.write("\u00dd\u0081\3\2\2\2\u00dd\u0086\3\2\2\2\u00dd\u008b\3") + buf.write("\2\2\2\u00dd\u0090\3\2\2\2\u00dd\u0095\3\2\2\2\u00dd\u009a") + buf.write("\3\2\2\2\u00dd\u009f\3\2\2\2\u00dd\u00a4\3\2\2\2\u00dd") + buf.write("\u00a9\3\2\2\2\u00dd\u00ae\3\2\2\2\u00dd\u00b3\3\2\2\2") + buf.write("\u00dd\u00b8\3\2\2\2\u00dd\u00bd\3\2\2\2\u00dd\u00c2\3") + buf.write("\2\2\2\u00dd\u00c7\3\2\2\2\u00dd\u00cc\3\2\2\2\u00dd\u00ce") + buf.write("\3\2\2\2\u00dd\u00d3\3\2\2\2\u00dd\u00d8\3\2\2\2\u00de") + buf.write("\7\3\2\2\2\u00df\u00e0\7&\2\2\u00e0\u00e1\5\22\n\2\u00e1") + buf.write("\t\3\2\2\2\u00e2\u00e3\5\f\7\2\u00e3\u00e4\5\22\n\2\u00e4") + buf.write("\13\3\2\2\2\u00e5\u00e6\t\2\2\2\u00e6\r\3\2\2\2\u00e7") + buf.write("\u00ea\5\22\n\2\u00e8\u00ea\5\20\t\2\u00e9\u00e7\3\2\2") + buf.write("\2\u00e9\u00e8\3\2\2\2\u00ea\u00ef\3\2\2\2\u00eb\u00ec") + buf.write("\7\"\2\2\u00ec\u00ee\5\16\b\2\u00ed\u00eb\3\2\2\2\u00ee") + buf.write("\u00f1\3\2\2\2\u00ef\u00ed\3\2\2\2\u00ef\u00f0\3\2\2\2") + buf.write("\u00f0\17\3\2\2\2\u00f1\u00ef\3\2\2\2\u00f2\u00f3\5\22") + buf.write("\n\2\u00f3\u00f4\7$\2\2\u00f4\u00f5\5\22\n\2\u00f5\21") + buf.write("\3\2\2\2\u00f6\u00f7\7#\2\2\u00f7\23\3\2\2\2/\27 $\',") + buf.write("/\649>AFINQUY^cfknsx\177\u0084\u0089\u008e\u0093\u0098") + buf.write("\u009d\u00a2\u00a7\u00ac\u00b1\u00b6\u00bb\u00c0\u00c5") + buf.write("\u00ca\u00d1\u00d6\u00db\u00dd\u00e9\u00ef") return buf.getvalue() @@ -132,12 +139,12 @@ class CommentMacroParser ( Parser ): sharedContextCache = PredictionContextCache() - literalNames = [ "", "':'", "'GM'", "'HM'", "'AM'", "'RM'", - "'RA'", "'RO'", "'FM'", "'FGM'", "'CM'", "'GL'", "'HL'", - "'AL'", "'RL'", "'GB'", "'HB'", "'AB'", "'RB'", "'GS'", - "'HS'", "'AS'", "'RS'", "'CP'", "'RV'", "'RN'", "'GK'", - "'HK'", "'RK'", "','", "", "'/'", "'>'", "'+'", - "'-'", "'*'", "'t'", "", "", "'IOP'" ] + literalNames = [ "", "':'", "'GM'", "'/'", "'HM'", "'AM'", + "'RM'", "'RA'", "'RO'", "'FM'", "'FGM'", "'CM'", "'GL'", + "'HL'", "'AL'", "'RL'", "'GB'", "'HB'", "'AB'", "'RB'", + "'GS'", "'HS'", "'AS'", "'RS'", "'CP'", "'+'", "'-'", + "'RV'", "'RN'", "'GK'", "'HK'", "'RK'", "','", "", + "'>'", "'*'", "'t'", "", "", "'IOP'" ] symbolicNames = [ "", "", "", "", "", "", "", "", @@ -146,23 +153,23 @@ class CommentMacroParser ( Parser ): "", "", "", "", "", "", "", "", "", "", "", "", - "", "", "NUMBER", "SLASH", "THRU", - "NEXT", "PREV", "CURRENT", "TIME", "WHOLEHOG", "DP8K", - "IOP", "NEWLINE", "WS", "COMMENT", "LINE_COMMENT" ] + "", "", "", "", + "", "NUMBER", "THRU", "CURRENT", "TIME", + "WHOLEHOG", "DP8K", "IOP", "NEWLINE", "WS", "COMMENT", + "LINE_COMMENT" ] RULE_prog = 0 RULE_statement = 1 RULE_macro = 2 - RULE_master = 3 - RULE_time = 4 - RULE_device = 5 - RULE_nodeType = 6 - RULE_target = 7 - RULE_span = 8 - RULE_number = 9 + RULE_time = 3 + RULE_device = 4 + RULE_nodeType = 5 + RULE_target = 6 + RULE_span = 7 + RULE_number = 8 - ruleNames = [ "prog", "statement", "macro", "master", "time", "device", - "nodeType", "target", "span", "number" ] + ruleNames = [ "prog", "statement", "macro", "time", "device", "nodeType", + "target", "span", "number" ] EOF = Token.EOF T__0=1 @@ -194,11 +201,11 @@ class CommentMacroParser ( Parser ): T__26=27 T__27=28 T__28=29 - NUMBER=30 - SLASH=31 - THRU=32 - NEXT=33 - PREV=34 + T__29=30 + T__30=31 + T__31=32 + NUMBER=33 + THRU=34 CURRENT=35 TIME=36 WHOLEHOG=37 @@ -254,19 +261,19 @@ class CommentMacroParser ( Parser ): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 21 + self.state = 19 self._errHandler.sync(self) _la = self._input.LA(1) while True: - self.state = 20 + self.state = 18 self.statement() - self.state = 23 + self.state = 21 self._errHandler.sync(self) _la = self._input.LA(1) - if not ((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.T__1) | (1 << CommentMacroParser.T__2) | (1 << CommentMacroParser.T__3) | (1 << CommentMacroParser.T__4) | (1 << CommentMacroParser.T__5) | (1 << CommentMacroParser.T__6) | (1 << CommentMacroParser.T__7) | (1 << CommentMacroParser.T__8) | (1 << CommentMacroParser.T__9) | (1 << CommentMacroParser.T__10) | (1 << CommentMacroParser.T__11) | (1 << CommentMacroParser.T__12) | (1 << CommentMacroParser.T__13) | (1 << CommentMacroParser.T__14) | (1 << CommentMacroParser.T__15) | (1 << CommentMacroParser.T__16) | (1 << CommentMacroParser.T__17) | (1 << CommentMacroParser.T__18) | (1 << CommentMacroParser.T__19) | (1 << CommentMacroParser.T__20) | (1 << CommentMacroParser.T__21) | (1 << CommentMacroParser.T__22) | (1 << CommentMacroParser.T__23) | (1 << CommentMacroParser.T__24) | (1 << CommentMacroParser.T__25) | (1 << CommentMacroParser.T__26) | (1 << CommentMacroParser.T__27) | (1 << CommentMacroParser.NEWLINE))) != 0)): + if not ((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.T__1) | (1 << CommentMacroParser.T__3) | (1 << CommentMacroParser.T__4) | (1 << CommentMacroParser.T__5) | (1 << CommentMacroParser.T__6) | (1 << CommentMacroParser.T__7) | (1 << CommentMacroParser.T__8) | (1 << CommentMacroParser.T__9) | (1 << CommentMacroParser.T__10) | (1 << CommentMacroParser.T__11) | (1 << CommentMacroParser.T__12) | (1 << CommentMacroParser.T__13) | (1 << CommentMacroParser.T__14) | (1 << CommentMacroParser.T__15) | (1 << CommentMacroParser.T__16) | (1 << CommentMacroParser.T__17) | (1 << CommentMacroParser.T__18) | (1 << CommentMacroParser.T__19) | (1 << CommentMacroParser.T__20) | (1 << CommentMacroParser.T__21) | (1 << CommentMacroParser.T__22) | (1 << CommentMacroParser.T__23) | (1 << CommentMacroParser.T__26) | (1 << CommentMacroParser.T__27) | (1 << CommentMacroParser.T__28) | (1 << CommentMacroParser.T__29) | (1 << CommentMacroParser.T__30) | (1 << CommentMacroParser.NEWLINE))) != 0)): break - self.state = 25 + self.state = 23 self.match(CommentMacroParser.EOF) except RecognitionException as re: localctx.exception = re @@ -312,37 +319,37 @@ class CommentMacroParser ( Parser ): self.enterRule(localctx, 2, self.RULE_statement) self._la = 0 # Token type try: - self.state = 39 + self.state = 37 self._errHandler.sync(self) token = self._input.LA(1) - if token in [CommentMacroParser.T__1, CommentMacroParser.T__2, CommentMacroParser.T__3, CommentMacroParser.T__4, CommentMacroParser.T__5, CommentMacroParser.T__6, CommentMacroParser.T__7, CommentMacroParser.T__8, CommentMacroParser.T__9, CommentMacroParser.T__10, CommentMacroParser.T__11, CommentMacroParser.T__12, CommentMacroParser.T__13, CommentMacroParser.T__14, CommentMacroParser.T__15, CommentMacroParser.T__16, CommentMacroParser.T__17, CommentMacroParser.T__18, CommentMacroParser.T__19, CommentMacroParser.T__20, CommentMacroParser.T__21, CommentMacroParser.T__22, CommentMacroParser.T__23, CommentMacroParser.T__24, CommentMacroParser.T__25, CommentMacroParser.T__26, CommentMacroParser.T__27]: + if token in [CommentMacroParser.T__1, CommentMacroParser.T__3, CommentMacroParser.T__4, CommentMacroParser.T__5, CommentMacroParser.T__6, CommentMacroParser.T__7, CommentMacroParser.T__8, CommentMacroParser.T__9, CommentMacroParser.T__10, CommentMacroParser.T__11, CommentMacroParser.T__12, CommentMacroParser.T__13, CommentMacroParser.T__14, CommentMacroParser.T__15, CommentMacroParser.T__16, CommentMacroParser.T__17, CommentMacroParser.T__18, CommentMacroParser.T__19, CommentMacroParser.T__20, CommentMacroParser.T__21, CommentMacroParser.T__22, CommentMacroParser.T__23, CommentMacroParser.T__26, CommentMacroParser.T__27, CommentMacroParser.T__28, CommentMacroParser.T__29, CommentMacroParser.T__30]: self.enterOuterAlt(localctx, 1) - self.state = 27 + self.state = 25 self.macro() - self.state = 32 + self.state = 30 self._errHandler.sync(self) _la = self._input.LA(1) while _la==CommentMacroParser.T__0: - self.state = 28 + self.state = 26 self.match(CommentMacroParser.T__0) - self.state = 29 + self.state = 27 self.macro() - self.state = 34 + self.state = 32 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 36 + self.state = 34 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,2,self._ctx) if la_ == 1: - self.state = 35 + self.state = 33 self.match(CommentMacroParser.NEWLINE) pass elif token in [CommentMacroParser.NEWLINE]: self.enterOuterAlt(localctx, 2) - self.state = 38 + self.state = 36 self.match(CommentMacroParser.NEWLINE) pass else: @@ -361,18 +368,21 @@ class CommentMacroParser ( Parser ): def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): super().__init__(parent, invokingState) self.parser = parser + self.op = None # Token + self.t = None # TargetContext + self.dev = None # DeviceContext + self.n = None # NumberContext + self.f = None # TimeContext + self.d = None # Token - def master(self): - return self.getTypedRuleContext(CommentMacroParser.MasterContext,0) + def target(self): + return self.getTypedRuleContext(CommentMacroParser.TargetContext,0) def device(self): return self.getTypedRuleContext(CommentMacroParser.DeviceContext,0) - def SLASH(self): - return self.getToken(CommentMacroParser.SLASH, 0) - def number(self): return self.getTypedRuleContext(CommentMacroParser.NumberContext,0) @@ -381,16 +391,6 @@ class CommentMacroParser ( Parser ): return self.getTypedRuleContext(CommentMacroParser.TimeContext,0) - def target(self): - return self.getTypedRuleContext(CommentMacroParser.TargetContext,0) - - - def NEXT(self): - return self.getToken(CommentMacroParser.NEXT, 0) - - def PREV(self): - return self.getToken(CommentMacroParser.PREV, 0) - def getRuleIndex(self): return CommentMacroParser.RULE_macro @@ -411,517 +411,589 @@ class CommentMacroParser ( Parser ): self.enterRule(localctx, 4, self.RULE_macro) self._la = 0 # Token type try: - self.state = 203 + self.state = 219 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,36,self._ctx) + la_ = self._interp.adaptivePredict(self._input,42,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 41 - self.match(CommentMacroParser.T__1) + self.state = 39 + localctx.op = self.match(CommentMacroParser.T__1) self.state = 42 - self.master() - self.state = 44 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [CommentMacroParser.NUMBER]: + self.state = 40 + localctx.t = self.target() + pass + elif token in [CommentMacroParser.CURRENT]: + self.state = 41 + self.match(CommentMacroParser.CURRENT) + pass + else: + raise NoViableAltException(self) + + self.state = 45 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 43 - self.device() + self.state = 44 + localctx.dev = self.device() pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 46 - self.match(CommentMacroParser.T__1) self.state = 47 - self.master() - self.state = 48 - self.match(CommentMacroParser.SLASH) - self.state = 49 - self.number() - self.state = 51 + localctx.op = self.match(CommentMacroParser.T__1) + self.state = 50 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [CommentMacroParser.NUMBER]: + self.state = 48 + localctx.t = self.target() + pass + elif token in [CommentMacroParser.CURRENT]: + self.state = 49 + self.match(CommentMacroParser.CURRENT) + pass + else: + raise NoViableAltException(self) + + self.state = 52 + self.match(CommentMacroParser.T__2) + self.state = 53 + localctx.n = self.number() + self.state = 55 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 50 - self.device() + self.state = 54 + localctx.dev = self.device() pass elif la_ == 3: self.enterOuterAlt(localctx, 3) - self.state = 53 - self.match(CommentMacroParser.T__2) - self.state = 54 - self.master() - self.state = 56 + self.state = 57 + localctx.op = self.match(CommentMacroParser.T__3) + self.state = 60 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [CommentMacroParser.NUMBER]: + self.state = 58 + localctx.t = self.target() + pass + elif token in [CommentMacroParser.CURRENT]: + self.state = 59 + self.match(CommentMacroParser.CURRENT) + pass + else: + raise NoViableAltException(self) + + self.state = 63 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 55 - self.device() + self.state = 62 + localctx.dev = self.device() pass elif la_ == 4: self.enterOuterAlt(localctx, 4) - self.state = 58 - self.match(CommentMacroParser.T__3) - self.state = 59 - self.master() - self.state = 61 + self.state = 65 + localctx.op = self.match(CommentMacroParser.T__4) + self.state = 68 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [CommentMacroParser.NUMBER]: + self.state = 66 + localctx.t = self.target() + pass + elif token in [CommentMacroParser.CURRENT]: + self.state = 67 + self.match(CommentMacroParser.CURRENT) + pass + else: + raise NoViableAltException(self) + + self.state = 71 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 60 - self.device() + self.state = 70 + localctx.dev = self.device() pass elif la_ == 5: self.enterOuterAlt(localctx, 5) - self.state = 63 - self.match(CommentMacroParser.T__4) - self.state = 64 - self.master() - self.state = 66 + self.state = 73 + localctx.op = self.match(CommentMacroParser.T__5) + self.state = 76 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [CommentMacroParser.NUMBER]: + self.state = 74 + localctx.t = self.target() + pass + elif token in [CommentMacroParser.CURRENT]: + self.state = 75 + self.match(CommentMacroParser.CURRENT) + pass + else: + raise NoViableAltException(self) + + self.state = 79 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 65 - self.device() + self.state = 78 + localctx.dev = self.device() pass elif la_ == 6: self.enterOuterAlt(localctx, 6) - self.state = 68 - self.match(CommentMacroParser.T__5) - self.state = 70 + self.state = 81 + localctx.op = self.match(CommentMacroParser.T__6) + self.state = 83 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 69 - self.device() + self.state = 82 + localctx.dev = self.device() pass elif la_ == 7: self.enterOuterAlt(localctx, 7) - self.state = 72 - self.match(CommentMacroParser.T__6) - self.state = 74 + self.state = 85 + localctx.op = self.match(CommentMacroParser.T__7) + self.state = 87 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 73 - self.device() + self.state = 86 + localctx.dev = self.device() pass elif la_ == 8: self.enterOuterAlt(localctx, 8) - self.state = 76 - self.match(CommentMacroParser.T__7) - self.state = 77 - self.master() - self.state = 78 - self.match(CommentMacroParser.SLASH) - self.state = 79 - self.number() - self.state = 81 + self.state = 89 + localctx.op = self.match(CommentMacroParser.T__8) + self.state = 92 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [CommentMacroParser.NUMBER]: + self.state = 90 + localctx.t = self.target() + pass + elif token in [CommentMacroParser.CURRENT]: + self.state = 91 + self.match(CommentMacroParser.CURRENT) + pass + else: + raise NoViableAltException(self) + + self.state = 94 + self.match(CommentMacroParser.T__2) + self.state = 95 + localctx.n = self.number() + self.state = 97 self._errHandler.sync(self) _la = self._input.LA(1) if _la==CommentMacroParser.TIME: - self.state = 80 - self.time() + self.state = 96 + localctx.f = self.time() - self.state = 84 + self.state = 100 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 83 - self.device() + self.state = 99 + localctx.dev = self.device() pass elif la_ == 9: self.enterOuterAlt(localctx, 9) - self.state = 86 - self.match(CommentMacroParser.T__8) - self.state = 87 - self.number() - self.state = 89 + self.state = 102 + localctx.op = self.match(CommentMacroParser.T__9) + self.state = 103 + localctx.n = self.number() + self.state = 105 self._errHandler.sync(self) _la = self._input.LA(1) if _la==CommentMacroParser.TIME: - self.state = 88 - self.time() + self.state = 104 + localctx.f = self.time() - self.state = 92 + self.state = 108 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 91 - self.device() + self.state = 107 + localctx.dev = self.device() pass elif la_ == 10: self.enterOuterAlt(localctx, 10) - self.state = 94 - self.match(CommentMacroParser.T__9) - self.state = 95 - self.number() - self.state = 97 + self.state = 110 + localctx.op = self.match(CommentMacroParser.T__10) + self.state = 111 + localctx.n = self.number() + self.state = 113 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 96 - self.device() + self.state = 112 + localctx.dev = self.device() pass elif la_ == 11: self.enterOuterAlt(localctx, 11) - self.state = 99 - self.match(CommentMacroParser.T__10) - self.state = 100 - self.target() - self.state = 102 + self.state = 115 + localctx.op = self.match(CommentMacroParser.T__11) + self.state = 116 + localctx.t = self.target() + self.state = 118 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 101 - self.device() + self.state = 117 + localctx.dev = self.device() pass elif la_ == 12: self.enterOuterAlt(localctx, 12) - self.state = 104 - self.match(CommentMacroParser.T__10) - self.state = 105 - self.target() - self.state = 106 - self.match(CommentMacroParser.SLASH) - self.state = 107 - self.number() - self.state = 109 + self.state = 120 + localctx.op = self.match(CommentMacroParser.T__11) + self.state = 121 + localctx.t = self.target() + self.state = 122 + self.match(CommentMacroParser.T__2) + self.state = 123 + localctx.n = self.number() + self.state = 125 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 108 - self.device() + self.state = 124 + localctx.dev = self.device() pass elif la_ == 13: self.enterOuterAlt(localctx, 13) - self.state = 111 - self.match(CommentMacroParser.T__11) - self.state = 112 - self.target() - self.state = 114 + self.state = 127 + localctx.op = self.match(CommentMacroParser.T__12) + self.state = 128 + localctx.t = self.target() + self.state = 130 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 113 - self.device() + self.state = 129 + localctx.dev = self.device() pass elif la_ == 14: self.enterOuterAlt(localctx, 14) - self.state = 116 - self.match(CommentMacroParser.T__12) - self.state = 117 - self.target() - self.state = 119 + self.state = 132 + localctx.op = self.match(CommentMacroParser.T__13) + self.state = 133 + localctx.t = self.target() + self.state = 135 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 118 - self.device() + self.state = 134 + localctx.dev = self.device() pass elif la_ == 15: self.enterOuterAlt(localctx, 15) - self.state = 121 - self.match(CommentMacroParser.T__13) - self.state = 122 - self.target() - self.state = 124 + self.state = 137 + localctx.op = self.match(CommentMacroParser.T__14) + self.state = 138 + localctx.t = self.target() + self.state = 140 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 123 - self.device() + self.state = 139 + localctx.dev = self.device() pass elif la_ == 16: self.enterOuterAlt(localctx, 16) - self.state = 126 - self.match(CommentMacroParser.T__14) - self.state = 127 - self.target() - self.state = 129 + self.state = 142 + localctx.op = self.match(CommentMacroParser.T__15) + self.state = 143 + localctx.t = self.target() + self.state = 145 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 128 - self.device() + self.state = 144 + localctx.dev = self.device() pass elif la_ == 17: self.enterOuterAlt(localctx, 17) - self.state = 131 - self.match(CommentMacroParser.T__15) - self.state = 132 - self.target() - self.state = 134 + self.state = 147 + localctx.op = self.match(CommentMacroParser.T__16) + self.state = 148 + localctx.t = self.target() + self.state = 150 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 133 - self.device() + self.state = 149 + localctx.dev = self.device() pass elif la_ == 18: self.enterOuterAlt(localctx, 18) - self.state = 136 - self.match(CommentMacroParser.T__16) - self.state = 137 - self.target() - self.state = 139 + self.state = 152 + localctx.op = self.match(CommentMacroParser.T__17) + self.state = 153 + localctx.t = self.target() + self.state = 155 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 138 - self.device() + self.state = 154 + localctx.dev = self.device() pass elif la_ == 19: self.enterOuterAlt(localctx, 19) - self.state = 141 - self.match(CommentMacroParser.T__17) - self.state = 142 - self.target() - self.state = 144 + self.state = 157 + localctx.op = self.match(CommentMacroParser.T__18) + self.state = 158 + localctx.t = self.target() + self.state = 160 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 143 - self.device() + self.state = 159 + localctx.dev = self.device() pass elif la_ == 20: self.enterOuterAlt(localctx, 20) - self.state = 146 - self.match(CommentMacroParser.T__18) - self.state = 147 - self.target() - self.state = 149 + self.state = 162 + localctx.op = self.match(CommentMacroParser.T__19) + self.state = 163 + localctx.t = self.target() + self.state = 165 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 148 - self.device() + self.state = 164 + localctx.dev = self.device() pass elif la_ == 21: self.enterOuterAlt(localctx, 21) - self.state = 151 - self.match(CommentMacroParser.T__19) - self.state = 152 - self.target() - self.state = 154 + self.state = 167 + localctx.op = self.match(CommentMacroParser.T__20) + self.state = 168 + localctx.t = self.target() + self.state = 170 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 153 - self.device() + self.state = 169 + localctx.dev = self.device() pass elif la_ == 22: self.enterOuterAlt(localctx, 22) - self.state = 156 - self.match(CommentMacroParser.T__20) - self.state = 157 - self.target() - self.state = 159 + self.state = 172 + localctx.op = self.match(CommentMacroParser.T__21) + self.state = 173 + localctx.t = self.target() + self.state = 175 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 158 - self.device() + self.state = 174 + localctx.dev = self.device() pass elif la_ == 23: self.enterOuterAlt(localctx, 23) - self.state = 161 - self.match(CommentMacroParser.T__21) - self.state = 162 - self.target() - self.state = 164 + self.state = 177 + localctx.op = self.match(CommentMacroParser.T__22) + self.state = 178 + localctx.t = self.target() + self.state = 180 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 163 - self.device() + self.state = 179 + localctx.dev = self.device() pass elif la_ == 24: self.enterOuterAlt(localctx, 24) - self.state = 166 - self.match(CommentMacroParser.T__22) - self.state = 167 - self.number() - self.state = 169 + self.state = 182 + localctx.op = self.match(CommentMacroParser.T__23) + self.state = 183 + localctx.n = self.number() + self.state = 185 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 168 - self.device() + self.state = 184 + localctx.dev = self.device() pass elif la_ == 25: self.enterOuterAlt(localctx, 25) - self.state = 171 - self.match(CommentMacroParser.T__22) - self.state = 172 - self.match(CommentMacroParser.NEXT) - self.state = 174 + self.state = 187 + localctx.op = self.match(CommentMacroParser.T__23) + self.state = 188 + localctx.d = self.match(CommentMacroParser.T__24) + self.state = 190 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 173 - self.device() + self.state = 189 + localctx.dev = self.device() pass elif la_ == 26: self.enterOuterAlt(localctx, 26) - self.state = 176 - self.match(CommentMacroParser.T__22) - self.state = 177 - self.match(CommentMacroParser.PREV) - self.state = 179 + self.state = 192 + localctx.op = self.match(CommentMacroParser.T__23) + self.state = 193 + localctx.d = self.match(CommentMacroParser.T__25) + self.state = 195 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 178 - self.device() + self.state = 194 + localctx.dev = self.device() pass elif la_ == 27: self.enterOuterAlt(localctx, 27) - self.state = 181 - self.match(CommentMacroParser.T__23) - self.state = 182 - self.number() - self.state = 184 + self.state = 197 + localctx.op = self.match(CommentMacroParser.T__26) + self.state = 198 + localctx.n = self.number() + self.state = 200 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 183 - self.device() + self.state = 199 + localctx.dev = self.device() pass elif la_ == 28: self.enterOuterAlt(localctx, 28) - self.state = 186 - self.match(CommentMacroParser.T__24) - self.state = 187 - self.device() + self.state = 202 + localctx.op = self.match(CommentMacroParser.T__27) + self.state = 203 + localctx.dev = self.device() pass elif la_ == 29: self.enterOuterAlt(localctx, 29) - self.state = 188 - self.match(CommentMacroParser.T__25) - self.state = 189 - self.target() - self.state = 191 + self.state = 204 + localctx.op = self.match(CommentMacroParser.T__28) + self.state = 205 + localctx.t = self.target() + self.state = 207 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 190 - self.device() + self.state = 206 + localctx.dev = self.device() pass elif la_ == 30: self.enterOuterAlt(localctx, 30) - self.state = 193 - self.match(CommentMacroParser.T__26) - self.state = 194 - self.target() - self.state = 196 + self.state = 209 + localctx.op = self.match(CommentMacroParser.T__29) + self.state = 210 + localctx.t = self.target() + self.state = 212 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 195 - self.device() + self.state = 211 + localctx.dev = self.device() pass elif la_ == 31: self.enterOuterAlt(localctx, 31) - self.state = 198 - self.match(CommentMacroParser.T__27) - self.state = 199 - self.target() - self.state = 201 + self.state = 214 + localctx.op = self.match(CommentMacroParser.T__30) + self.state = 215 + localctx.t = self.target() + self.state = 217 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0): - self.state = 200 - self.device() + self.state = 216 + localctx.dev = self.device() pass @@ -935,61 +1007,6 @@ class CommentMacroParser ( Parser ): self.exitRule() return localctx - class MasterContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def target(self): - return self.getTypedRuleContext(CommentMacroParser.TargetContext,0) - - - def CURRENT(self): - return self.getToken(CommentMacroParser.CURRENT, 0) - - def getRuleIndex(self): - return CommentMacroParser.RULE_master - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMaster" ): - listener.enterMaster(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMaster" ): - listener.exitMaster(self) - - - - - def master(self): - - localctx = CommentMacroParser.MasterContext(self, self._ctx, self.state) - self.enterRule(localctx, 6, self.RULE_master) - try: - self.enterOuterAlt(localctx, 1) - self.state = 207 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [CommentMacroParser.NUMBER]: - self.state = 205 - self.target() - pass - elif token in [CommentMacroParser.CURRENT]: - self.state = 206 - self.match(CommentMacroParser.CURRENT) - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - class TimeContext(ParserRuleContext): def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): @@ -1020,12 +1037,12 @@ class CommentMacroParser ( Parser ): def time(self): localctx = CommentMacroParser.TimeContext(self, self._ctx, self.state) - self.enterRule(localctx, 8, self.RULE_time) + self.enterRule(localctx, 6, self.RULE_time) try: self.enterOuterAlt(localctx, 1) - self.state = 209 + self.state = 221 self.match(CommentMacroParser.TIME) - self.state = 210 + self.state = 222 self.number() except RecognitionException as re: localctx.exception = re @@ -1040,6 +1057,8 @@ class CommentMacroParser ( Parser ): def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): super().__init__(parent, invokingState) self.parser = parser + self.ntype = None # NodeTypeContext + self.n = None # NumberContext def nodeType(self): return self.getTypedRuleContext(CommentMacroParser.NodeTypeContext,0) @@ -1066,13 +1085,13 @@ class CommentMacroParser ( Parser ): def device(self): localctx = CommentMacroParser.DeviceContext(self, self._ctx, self.state) - self.enterRule(localctx, 10, self.RULE_device) + self.enterRule(localctx, 8, self.RULE_device) try: self.enterOuterAlt(localctx, 1) - self.state = 212 - self.nodeType() - self.state = 213 - self.number() + self.state = 224 + localctx.ntype = self.nodeType() + self.state = 225 + localctx.n = self.number() except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) @@ -1113,11 +1132,11 @@ class CommentMacroParser ( Parser ): def nodeType(self): localctx = CommentMacroParser.NodeTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 12, self.RULE_nodeType) + self.enterRule(localctx, 10, self.RULE_nodeType) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 215 + self.state = 227 _la = self._input.LA(1) if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << CommentMacroParser.WHOLEHOG) | (1 << CommentMacroParser.DP8K) | (1 << CommentMacroParser.IOP))) != 0)): self._errHandler.recoverInline(self) @@ -1170,35 +1189,35 @@ class CommentMacroParser ( Parser ): def target(self): localctx = CommentMacroParser.TargetContext(self, self._ctx, self.state) - self.enterRule(localctx, 14, self.RULE_target) + self.enterRule(localctx, 12, self.RULE_target) try: self.enterOuterAlt(localctx, 1) - self.state = 219 + self.state = 231 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,38,self._ctx) + la_ = self._interp.adaptivePredict(self._input,43,self._ctx) if la_ == 1: - self.state = 217 + self.state = 229 self.number() pass elif la_ == 2: - self.state = 218 + self.state = 230 self.span() pass - self.state = 225 + self.state = 237 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,39,self._ctx) + _alt = self._interp.adaptivePredict(self._input,44,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: - self.state = 221 - self.match(CommentMacroParser.T__28) - self.state = 222 + self.state = 233 + self.match(CommentMacroParser.T__31) + self.state = 234 self.target() - self.state = 227 + self.state = 239 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,39,self._ctx) + _alt = self._interp.adaptivePredict(self._input,44,self._ctx) except RecognitionException as re: localctx.exception = re @@ -1213,6 +1232,11 @@ class CommentMacroParser ( Parser ): def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): super().__init__(parent, invokingState) self.parser = parser + self.n1 = None # NumberContext + self.n2 = None # NumberContext + + def THRU(self): + return self.getToken(CommentMacroParser.THRU, 0) def number(self, i:int=None): if i is None: @@ -1221,9 +1245,6 @@ class CommentMacroParser ( Parser ): return self.getTypedRuleContext(CommentMacroParser.NumberContext,i) - def THRU(self): - return self.getToken(CommentMacroParser.THRU, 0) - def getRuleIndex(self): return CommentMacroParser.RULE_span @@ -1241,15 +1262,15 @@ class CommentMacroParser ( Parser ): def span(self): localctx = CommentMacroParser.SpanContext(self, self._ctx, self.state) - self.enterRule(localctx, 16, self.RULE_span) + self.enterRule(localctx, 14, self.RULE_span) try: self.enterOuterAlt(localctx, 1) - self.state = 228 - self.number() - self.state = 229 + self.state = 240 + localctx.n1 = self.number() + self.state = 241 self.match(CommentMacroParser.THRU) - self.state = 230 - self.number() + self.state = 242 + localctx.n2 = self.number() except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) @@ -1284,10 +1305,10 @@ class CommentMacroParser ( Parser ): def number(self): localctx = CommentMacroParser.NumberContext(self, self._ctx, self.state) - self.enterRule(localctx, 18, self.RULE_number) + self.enterRule(localctx, 16, self.RULE_number) try: self.enterOuterAlt(localctx, 1) - self.state = 232 + self.state = 244 self.match(CommentMacroParser.NUMBER) except RecognitionException as re: localctx.exception = re