updated grammar and added more working examples to the test cases

This commit is contained in:
Tom Everett
2016-03-02 20:11:59 -07:00
parent aecf2cc4af
commit 8eb36d4b3b
21 changed files with 5314 additions and 227 deletions
@@ -33,13 +33,17 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
grammar pdp7;
prog
: line +
: lineeol+ line? EOF
;
line
: declarations? comment? eol
: declarations? comment?
;
lineeol
: line eol
;
declarations
: declaration (';' declaration)*
;
@@ -58,7 +62,7 @@ argument
;
assignment
: (variable | LOC | RELOC) '=' expression
: (opcode | variable | LOC | RELOC) '=' expression
;
expression
@@ -77,7 +81,8 @@ atom
| DECIMAL
| DECIMAL_MINUS
| OCTAL
| signednumber
| NUMERIC_LITERAL
| '-' atom
;
// string chars, then potentially more than 1 octal constant, then potentially '>'
@@ -85,10 +90,6 @@ string
: STRING NUMERIC_LITERAL* '>'?
;
signednumber
: '-'? NUMERIC_LITERAL
;
eol
: EOL
;
@@ -262,7 +263,7 @@ DECIMAL_MINUS
STRING
: '<' [a-zA-Z0-9$*,%/]*
: '<' [a-zA-Z0-9$*,%/:?]*
;
@@ -36,6 +36,18 @@ public class pdp7BaseListener implements pdp7Listener {
* <p>The default implementation does nothing.</p>
*/
@Override public void exitLine(pdp7Parser.LineContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterLineeol(pdp7Parser.LineeolContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitLineeol(pdp7Parser.LineeolContext ctx) { }
/**
* {@inheritDoc}
*
@@ -144,18 +156,6 @@ public class pdp7BaseListener implements pdp7Listener {
* <p>The default implementation does nothing.</p>
*/
@Override public void exitString(pdp7Parser.StringContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterSignednumber(pdp7Parser.SignednumberContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitSignednumber(pdp7Parser.SignednumberContext ctx) { }
/**
* {@inheritDoc}
*
@@ -183,19 +183,19 @@ public class pdp7Lexer extends Lexer {
"V\u00abW\u00adX\u00afY\u00b1Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd"+
"`\u00bfa\u00c1b\u00c3c\u00c5d\u00c7e\u00c9f\u00cbg\u00cdh\u00cfi\u00d1"+
"j\u00d3k\u00d5l\u00d7m\u00d9n\u00dbo\u00ddp\3\2\n\6\2\60\60\62;C\\c|\4"+
"\2C\\c|\3\2\62;\4\2\62;ch\3\2\629\b\2&\',,..\61;C\\c|\4\2\f\f\17\17\4"+
"\2\13\13\"\"\u02bf\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13"+
"\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2"+
"\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2"+
"!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3"+
"\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2"+
"\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E"+
"\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2"+
"\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2"+
"\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k"+
"\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\2w\3\2"+
"\2\2\2y\3\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2\177\3\2\2\2\2\u0081\3\2\2\2\2"+
"\u0083\3\2\2\2\2\u0085\3\2\2\2\2\u0087\3\2\2\2\2\u0089\3\2\2\2\2\u008b"+
"\2C\\c|\3\2\62;\4\2\62;ch\3\2\629\t\2&\',,..\61<AAC\\c|\4\2\f\f\17\17"+
"\4\2\13\13\"\"\u02bf\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2"+
"\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3"+
"\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2"+
"\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2"+
"\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2"+
"\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2"+
"\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q"+
"\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2"+
"\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2"+
"\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\2w"+
"\3\2\2\2\2y\3\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2\177\3\2\2\2\2\u0081\3\2\2"+
"\2\2\u0083\3\2\2\2\2\u0085\3\2\2\2\2\u0087\3\2\2\2\2\u0089\3\2\2\2\2\u008b"+
"\3\2\2\2\2\u008d\3\2\2\2\2\u008f\3\2\2\2\2\u0091\3\2\2\2\2\u0093\3\2\2"+
"\2\2\u0095\3\2\2\2\2\u0097\3\2\2\2\2\u0099\3\2\2\2\2\u009b\3\2\2\2\2\u009d"+
"\3\2\2\2\2\u009f\3\2\2\2\2\u00a1\3\2\2\2\2\u00a3\3\2\2\2\2\u00a5\3\2\2"+
@@ -28,6 +28,16 @@ public interface pdp7Listener extends ParseTreeListener {
* @param ctx the parse tree
*/
void exitLine(pdp7Parser.LineContext ctx);
/**
* Enter a parse tree produced by {@link pdp7Parser#lineeol}.
* @param ctx the parse tree
*/
void enterLineeol(pdp7Parser.LineeolContext ctx);
/**
* Exit a parse tree produced by {@link pdp7Parser#lineeol}.
* @param ctx the parse tree
*/
void exitLineeol(pdp7Parser.LineeolContext ctx);
/**
* Enter a parse tree produced by {@link pdp7Parser#declarations}.
* @param ctx the parse tree
@@ -118,16 +128,6 @@ public interface pdp7Listener extends ParseTreeListener {
* @param ctx the parse tree
*/
void exitString(pdp7Parser.StringContext ctx);
/**
* Enter a parse tree produced by {@link pdp7Parser#signednumber}.
* @param ctx the parse tree
*/
void enterSignednumber(pdp7Parser.SignednumberContext ctx);
/**
* Exit a parse tree produced by {@link pdp7Parser#signednumber}.
* @param ctx the parse tree
*/
void exitSignednumber(pdp7Parser.SignednumberContext ctx);
/**
* Enter a parse tree produced by {@link pdp7Parser#eol}.
* @param ctx the parse tree
@@ -34,15 +34,15 @@ public class pdp7Parser extends Parser {
NUMERIC_LITERAL=103, DECIMAL=104, OCTAL=105, DECIMAL_MINUS=106, STRING=107,
COMMENT=108, EOL=109, WS=110;
public static final int
RULE_prog = 0, RULE_line = 1, RULE_declarations = 2, RULE_declaration = 3,
RULE_instruction = 4, RULE_argument = 5, RULE_assignment = 6, RULE_expression = 7,
RULE_multiplyingExpression = 8, RULE_atom = 9, RULE_string = 10, RULE_signednumber = 11,
RULE_prog = 0, RULE_line = 1, RULE_lineeol = 2, RULE_declarations = 3,
RULE_declaration = 4, RULE_instruction = 5, RULE_argument = 6, RULE_assignment = 7,
RULE_expression = 8, RULE_multiplyingExpression = 9, RULE_atom = 10, RULE_string = 11,
RULE_eol = 12, RULE_comment = 13, RULE_label = 14, RULE_variable = 15,
RULE_opcode = 16;
public static final String[] ruleNames = {
"prog", "line", "declarations", "declaration", "instruction", "argument",
"assignment", "expression", "multiplyingExpression", "atom", "string",
"signednumber", "eol", "comment", "label", "variable", "opcode"
"prog", "line", "lineeol", "declarations", "declaration", "instruction",
"argument", "assignment", "expression", "multiplyingExpression", "atom",
"string", "eol", "comment", "label", "variable", "opcode"
};
private static final String[] _LITERAL_NAMES = {
@@ -122,11 +122,15 @@ public class pdp7Parser extends Parser {
_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
public static class ProgContext extends ParserRuleContext {
public List<LineContext> line() {
return getRuleContexts(LineContext.class);
public TerminalNode EOF() { return getToken(pdp7Parser.EOF, 0); }
public List<LineeolContext> lineeol() {
return getRuleContexts(LineeolContext.class);
}
public LineContext line(int i) {
return getRuleContext(LineContext.class,i);
public LineeolContext lineeol(int i) {
return getRuleContext(LineeolContext.class,i);
}
public LineContext line() {
return getRuleContext(LineContext.class,0);
}
public ProgContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
@@ -145,24 +149,41 @@ public class pdp7Parser extends Parser {
public final ProgContext prog() throws RecognitionException {
ProgContext _localctx = new ProgContext(_ctx, getState());
enterRule(_localctx, 0, RULE_prog);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(35);
_errHandler.sync(this);
_la = _input.LA(1);
_alt = 1;
do {
{
{
setState(34);
line();
}
switch (_alt) {
case 1:
{
{
setState(34);
lineeol();
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(37);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << T__3) | (1L << T__4) | (1L << T__5) | (1L << T__6) | (1L << T__7) | (1L << T__8) | (1L << T__9) | (1L << T__10) | (1L << T__11) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__21) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__30) | (1L << T__31) | (1L << T__32) | (1L << T__33) | (1L << T__34) | (1L << T__35) | (1L << T__36) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__50) | (1L << T__51) | (1L << T__52) | (1L << T__53) | (1L << T__54) | (1L << T__55) | (1L << T__56) | (1L << T__57) | (1L << T__58) | (1L << T__59) | (1L << T__60) | (1L << T__61) | (1L << T__62))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (T__63 - 64)) | (1L << (T__64 - 64)) | (1L << (T__65 - 64)) | (1L << (T__66 - 64)) | (1L << (T__67 - 64)) | (1L << (T__68 - 64)) | (1L << (T__69 - 64)) | (1L << (T__70 - 64)) | (1L << (T__71 - 64)) | (1L << (T__72 - 64)) | (1L << (T__73 - 64)) | (1L << (T__74 - 64)) | (1L << (T__75 - 64)) | (1L << (T__76 - 64)) | (1L << (T__77 - 64)) | (1L << (T__78 - 64)) | (1L << (T__79 - 64)) | (1L << (T__80 - 64)) | (1L << (T__81 - 64)) | (1L << (T__82 - 64)) | (1L << (T__83 - 64)) | (1L << (T__84 - 64)) | (1L << (T__85 - 64)) | (1L << (T__86 - 64)) | (1L << (T__87 - 64)) | (1L << (T__88 - 64)) | (1L << (T__89 - 64)) | (1L << (T__90 - 64)) | (1L << (T__91 - 64)) | (1L << (T__92 - 64)) | (1L << (T__93 - 64)) | (1L << (LOC - 64)) | (1L << (RELOC - 64)) | (1L << (MINUS - 64)) | (1L << (LABEL - 64)) | (1L << (IDENTIFIER - 64)) | (1L << (NUMERIC_LITERAL - 64)) | (1L << (DECIMAL - 64)) | (1L << (OCTAL - 64)) | (1L << (DECIMAL_MINUS - 64)) | (1L << (STRING - 64)) | (1L << (COMMENT - 64)) | (1L << (EOL - 64)))) != 0) );
_alt = getInterpreter().adaptivePredict(_input,0,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
setState(40);
switch ( getInterpreter().adaptivePredict(_input,1,_ctx) ) {
case 1:
{
setState(39);
line();
}
break;
}
setState(42);
match(EOF);
}
}
catch (RecognitionException re) {
@@ -177,9 +198,6 @@ public class pdp7Parser extends Parser {
}
public static class LineContext extends ParserRuleContext {
public EolContext eol() {
return getRuleContext(EolContext.class,0);
}
public DeclarationsContext declarations() {
return getRuleContext(DeclarationsContext.class,0);
}
@@ -207,25 +225,67 @@ public class pdp7Parser extends Parser {
try {
enterOuterAlt(_localctx, 1);
{
setState(40);
switch ( getInterpreter().adaptivePredict(_input,1,_ctx) ) {
setState(45);
switch ( getInterpreter().adaptivePredict(_input,2,_ctx) ) {
case 1:
{
setState(39);
setState(44);
declarations();
}
break;
}
setState(43);
setState(48);
_la = _input.LA(1);
if (_la==COMMENT) {
{
setState(42);
setState(47);
comment();
}
}
setState(45);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class LineeolContext extends ParserRuleContext {
public LineContext line() {
return getRuleContext(LineContext.class,0);
}
public EolContext eol() {
return getRuleContext(EolContext.class,0);
}
public LineeolContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_lineeol; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof pdp7Listener ) ((pdp7Listener)listener).enterLineeol(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof pdp7Listener ) ((pdp7Listener)listener).exitLineeol(this);
}
}
public final LineeolContext lineeol() throws RecognitionException {
LineeolContext _localctx = new LineeolContext(_ctx, getState());
enterRule(_localctx, 4, RULE_lineeol);
try {
enterOuterAlt(_localctx, 1);
{
setState(50);
line();
setState(51);
eol();
}
}
@@ -263,26 +323,26 @@ public class pdp7Parser extends Parser {
public final DeclarationsContext declarations() throws RecognitionException {
DeclarationsContext _localctx = new DeclarationsContext(_ctx, getState());
enterRule(_localctx, 4, RULE_declarations);
enterRule(_localctx, 6, RULE_declarations);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(47);
setState(53);
declaration();
setState(52);
setState(58);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__0) {
{
{
setState(48);
setState(54);
match(T__0);
setState(49);
setState(55);
declaration();
}
}
setState(54);
setState(60);
_errHandler.sync(this);
_la = _input.LA(1);
}
@@ -340,53 +400,53 @@ public class pdp7Parser extends Parser {
public final DeclarationContext declaration() throws RecognitionException {
DeclarationContext _localctx = new DeclarationContext(_ctx, getState());
enterRule(_localctx, 6, RULE_declaration);
enterRule(_localctx, 8, RULE_declaration);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(58);
setState(64);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==LABEL) {
{
{
setState(55);
setState(61);
label();
}
}
setState(60);
setState(66);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(66);
setState(72);
_errHandler.sync(this);
_la = _input.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__3) | (1L << T__4) | (1L << T__5) | (1L << T__6) | (1L << T__7) | (1L << T__8) | (1L << T__9) | (1L << T__10) | (1L << T__11) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__21) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__30) | (1L << T__31) | (1L << T__32) | (1L << T__33) | (1L << T__34) | (1L << T__35) | (1L << T__36) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__50) | (1L << T__51) | (1L << T__52) | (1L << T__53) | (1L << T__54) | (1L << T__55) | (1L << T__56) | (1L << T__57) | (1L << T__58) | (1L << T__59) | (1L << T__60) | (1L << T__61) | (1L << T__62))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (T__63 - 64)) | (1L << (T__64 - 64)) | (1L << (T__65 - 64)) | (1L << (T__66 - 64)) | (1L << (T__67 - 64)) | (1L << (T__68 - 64)) | (1L << (T__69 - 64)) | (1L << (T__70 - 64)) | (1L << (T__71 - 64)) | (1L << (T__72 - 64)) | (1L << (T__73 - 64)) | (1L << (T__74 - 64)) | (1L << (T__75 - 64)) | (1L << (T__76 - 64)) | (1L << (T__77 - 64)) | (1L << (T__78 - 64)) | (1L << (T__79 - 64)) | (1L << (T__80 - 64)) | (1L << (T__81 - 64)) | (1L << (T__82 - 64)) | (1L << (T__83 - 64)) | (1L << (T__84 - 64)) | (1L << (T__85 - 64)) | (1L << (T__86 - 64)) | (1L << (T__87 - 64)) | (1L << (T__88 - 64)) | (1L << (T__89 - 64)) | (1L << (T__90 - 64)) | (1L << (T__91 - 64)) | (1L << (T__92 - 64)) | (1L << (T__93 - 64)) | (1L << (LOC - 64)) | (1L << (RELOC - 64)) | (1L << (MINUS - 64)) | (1L << (IDENTIFIER - 64)) | (1L << (NUMERIC_LITERAL - 64)) | (1L << (DECIMAL - 64)) | (1L << (OCTAL - 64)) | (1L << (DECIMAL_MINUS - 64)) | (1L << (STRING - 64)))) != 0)) {
{
setState(64);
switch ( getInterpreter().adaptivePredict(_input,5,_ctx) ) {
setState(70);
switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) {
case 1:
{
setState(61);
setState(67);
instruction();
}
break;
case 2:
{
setState(62);
setState(68);
assignment();
}
break;
case 3:
{
setState(63);
setState(69);
expression();
}
break;
}
}
setState(68);
setState(74);
_errHandler.sync(this);
_la = _input.LA(1);
}
@@ -429,28 +489,28 @@ public class pdp7Parser extends Parser {
public final InstructionContext instruction() throws RecognitionException {
InstructionContext _localctx = new InstructionContext(_ctx, getState());
enterRule(_localctx, 8, RULE_instruction);
enterRule(_localctx, 10, RULE_instruction);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(69);
setState(75);
opcode();
setState(73);
setState(79);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,7,_ctx);
_alt = getInterpreter().adaptivePredict(_input,8,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(70);
setState(76);
argument();
}
}
}
setState(75);
setState(81);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,7,_ctx);
_alt = getInterpreter().adaptivePredict(_input,8,_ctx);
}
}
}
@@ -485,11 +545,11 @@ public class pdp7Parser extends Parser {
public final ArgumentContext argument() throws RecognitionException {
ArgumentContext _localctx = new ArgumentContext(_ctx, getState());
enterRule(_localctx, 10, RULE_argument);
enterRule(_localctx, 12, RULE_argument);
try {
enterOuterAlt(_localctx, 1);
{
setState(76);
setState(82);
expression();
}
}
@@ -508,6 +568,9 @@ public class pdp7Parser extends Parser {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public OpcodeContext opcode() {
return getRuleContext(OpcodeContext.class,0);
}
public VariableContext variable() {
return getRuleContext(VariableContext.class,0);
}
@@ -529,36 +592,132 @@ public class pdp7Parser extends Parser {
public final AssignmentContext assignment() throws RecognitionException {
AssignmentContext _localctx = new AssignmentContext(_ctx, getState());
enterRule(_localctx, 12, RULE_assignment);
enterRule(_localctx, 14, RULE_assignment);
try {
enterOuterAlt(_localctx, 1);
{
setState(81);
setState(88);
switch (_input.LA(1)) {
case T__3:
case T__4:
case T__5:
case T__6:
case T__7:
case T__8:
case T__9:
case T__10:
case T__11:
case T__12:
case T__13:
case T__14:
case T__15:
case T__16:
case T__17:
case T__18:
case T__19:
case T__20:
case T__21:
case T__22:
case T__23:
case T__24:
case T__25:
case T__26:
case T__27:
case T__28:
case T__29:
case T__30:
case T__31:
case T__32:
case T__33:
case T__34:
case T__35:
case T__36:
case T__37:
case T__38:
case T__39:
case T__40:
case T__41:
case T__42:
case T__43:
case T__44:
case T__45:
case T__46:
case T__47:
case T__48:
case T__49:
case T__50:
case T__51:
case T__52:
case T__53:
case T__54:
case T__55:
case T__56:
case T__57:
case T__58:
case T__59:
case T__60:
case T__61:
case T__62:
case T__63:
case T__64:
case T__65:
case T__66:
case T__67:
case T__68:
case T__69:
case T__70:
case T__71:
case T__72:
case T__73:
case T__74:
case T__75:
case T__76:
case T__77:
case T__78:
case T__79:
case T__80:
case T__81:
case T__82:
case T__83:
case T__84:
case T__85:
case T__86:
case T__87:
case T__88:
case T__89:
case T__90:
case T__91:
case T__92:
case T__93:
{
setState(84);
opcode();
}
break;
case IDENTIFIER:
{
setState(78);
setState(85);
variable();
}
break;
case LOC:
{
setState(79);
setState(86);
match(LOC);
}
break;
case RELOC:
{
setState(80);
setState(87);
match(RELOC);
}
break;
default:
throw new NoViableAltException(this);
}
setState(83);
setState(90);
match(T__1);
setState(84);
setState(91);
expression();
}
}
@@ -604,36 +763,36 @@ public class pdp7Parser extends Parser {
public final ExpressionContext expression() throws RecognitionException {
ExpressionContext _localctx = new ExpressionContext(_ctx, getState());
enterRule(_localctx, 14, RULE_expression);
enterRule(_localctx, 16, RULE_expression);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(86);
setState(93);
multiplyingExpression();
setState(91);
setState(98);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,9,_ctx);
_alt = getInterpreter().adaptivePredict(_input,10,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(87);
setState(94);
_la = _input.LA(1);
if ( !(_la==PLUS || _la==MINUS) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
setState(88);
setState(95);
multiplyingExpression();
}
}
}
setState(93);
setState(100);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,9,_ctx);
_alt = getInterpreter().adaptivePredict(_input,10,_ctx);
}
}
}
@@ -679,31 +838,31 @@ public class pdp7Parser extends Parser {
public final MultiplyingExpressionContext multiplyingExpression() throws RecognitionException {
MultiplyingExpressionContext _localctx = new MultiplyingExpressionContext(_ctx, getState());
enterRule(_localctx, 16, RULE_multiplyingExpression);
enterRule(_localctx, 18, RULE_multiplyingExpression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(94);
setState(101);
atom();
setState(99);
setState(106);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==TIMES || _la==DIV) {
{
{
setState(95);
setState(102);
_la = _input.LA(1);
if ( !(_la==TIMES || _la==DIV) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
setState(96);
setState(103);
atom();
}
}
setState(101);
setState(108);
_errHandler.sync(this);
_la = _input.LA(1);
}
@@ -732,8 +891,9 @@ public class pdp7Parser extends Parser {
public TerminalNode DECIMAL() { return getToken(pdp7Parser.DECIMAL, 0); }
public TerminalNode DECIMAL_MINUS() { return getToken(pdp7Parser.DECIMAL_MINUS, 0); }
public TerminalNode OCTAL() { return getToken(pdp7Parser.OCTAL, 0); }
public SignednumberContext signednumber() {
return getRuleContext(SignednumberContext.class,0);
public TerminalNode NUMERIC_LITERAL() { return getToken(pdp7Parser.NUMERIC_LITERAL, 0); }
public AtomContext atom() {
return getRuleContext(AtomContext.class,0);
}
public AtomContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
@@ -751,65 +911,73 @@ public class pdp7Parser extends Parser {
public final AtomContext atom() throws RecognitionException {
AtomContext _localctx = new AtomContext(_ctx, getState());
enterRule(_localctx, 18, RULE_atom);
enterRule(_localctx, 20, RULE_atom);
try {
setState(110);
setState(119);
switch (_input.LA(1)) {
case IDENTIFIER:
enterOuterAlt(_localctx, 1);
{
setState(102);
setState(109);
variable();
}
break;
case LOC:
enterOuterAlt(_localctx, 2);
{
setState(103);
setState(110);
match(LOC);
}
break;
case RELOC:
enterOuterAlt(_localctx, 3);
{
setState(104);
setState(111);
match(RELOC);
}
break;
case STRING:
enterOuterAlt(_localctx, 4);
{
setState(105);
setState(112);
string();
}
break;
case DECIMAL:
enterOuterAlt(_localctx, 5);
{
setState(106);
setState(113);
match(DECIMAL);
}
break;
case DECIMAL_MINUS:
enterOuterAlt(_localctx, 6);
{
setState(107);
setState(114);
match(DECIMAL_MINUS);
}
break;
case OCTAL:
enterOuterAlt(_localctx, 7);
{
setState(108);
setState(115);
match(OCTAL);
}
break;
case MINUS:
case NUMERIC_LITERAL:
enterOuterAlt(_localctx, 8);
{
setState(109);
signednumber();
setState(116);
match(NUMERIC_LITERAL);
}
break;
case MINUS:
enterOuterAlt(_localctx, 9);
{
setState(117);
match(MINUS);
setState(118);
atom();
}
break;
default:
@@ -849,35 +1017,35 @@ public class pdp7Parser extends Parser {
public final StringContext string() throws RecognitionException {
StringContext _localctx = new StringContext(_ctx, getState());
enterRule(_localctx, 20, RULE_string);
enterRule(_localctx, 22, RULE_string);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(112);
setState(121);
match(STRING);
setState(116);
setState(125);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,12,_ctx);
_alt = getInterpreter().adaptivePredict(_input,13,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(113);
setState(122);
match(NUMERIC_LITERAL);
}
}
}
setState(118);
setState(127);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,12,_ctx);
_alt = getInterpreter().adaptivePredict(_input,13,_ctx);
}
setState(120);
setState(129);
_la = _input.LA(1);
if (_la==T__2) {
{
setState(119);
setState(128);
match(T__2);
}
}
@@ -895,53 +1063,6 @@ public class pdp7Parser extends Parser {
return _localctx;
}
public static class SignednumberContext extends ParserRuleContext {
public TerminalNode NUMERIC_LITERAL() { return getToken(pdp7Parser.NUMERIC_LITERAL, 0); }
public SignednumberContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_signednumber; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof pdp7Listener ) ((pdp7Listener)listener).enterSignednumber(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof pdp7Listener ) ((pdp7Listener)listener).exitSignednumber(this);
}
}
public final SignednumberContext signednumber() throws RecognitionException {
SignednumberContext _localctx = new SignednumberContext(_ctx, getState());
enterRule(_localctx, 22, RULE_signednumber);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(123);
_la = _input.LA(1);
if (_la==MINUS) {
{
setState(122);
match(MINUS);
}
}
setState(125);
match(NUMERIC_LITERAL);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class EolContext extends ParserRuleContext {
public TerminalNode EOL() { return getToken(pdp7Parser.EOL, 0); }
public EolContext(ParserRuleContext parent, int invokingState) {
@@ -964,7 +1085,7 @@ public class pdp7Parser extends Parser {
try {
enterOuterAlt(_localctx, 1);
{
setState(127);
setState(131);
match(EOL);
}
}
@@ -1001,7 +1122,7 @@ public class pdp7Parser extends Parser {
try {
enterOuterAlt(_localctx, 1);
{
setState(129);
setState(133);
match(COMMENT);
}
}
@@ -1038,7 +1159,7 @@ public class pdp7Parser extends Parser {
try {
enterOuterAlt(_localctx, 1);
{
setState(131);
setState(135);
match(LABEL);
}
}
@@ -1075,7 +1196,7 @@ public class pdp7Parser extends Parser {
try {
enterOuterAlt(_localctx, 1);
{
setState(133);
setState(137);
match(IDENTIFIER);
}
}
@@ -1112,7 +1233,7 @@ public class pdp7Parser extends Parser {
try {
enterOuterAlt(_localctx, 1);
{
setState(135);
setState(139);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__3) | (1L << T__4) | (1L << T__5) | (1L << T__6) | (1L << T__7) | (1L << T__8) | (1L << T__9) | (1L << T__10) | (1L << T__11) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__21) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__30) | (1L << T__31) | (1L << T__32) | (1L << T__33) | (1L << T__34) | (1L << T__35) | (1L << T__36) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__50) | (1L << T__51) | (1L << T__52) | (1L << T__53) | (1L << T__54) | (1L << T__55) | (1L << T__56) | (1L << T__57) | (1L << T__58) | (1L << T__59) | (1L << T__60) | (1L << T__61) | (1L << T__62))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (T__63 - 64)) | (1L << (T__64 - 64)) | (1L << (T__65 - 64)) | (1L << (T__66 - 64)) | (1L << (T__67 - 64)) | (1L << (T__68 - 64)) | (1L << (T__69 - 64)) | (1L << (T__70 - 64)) | (1L << (T__71 - 64)) | (1L << (T__72 - 64)) | (1L << (T__73 - 64)) | (1L << (T__74 - 64)) | (1L << (T__75 - 64)) | (1L << (T__76 - 64)) | (1L << (T__77 - 64)) | (1L << (T__78 - 64)) | (1L << (T__79 - 64)) | (1L << (T__80 - 64)) | (1L << (T__81 - 64)) | (1L << (T__82 - 64)) | (1L << (T__83 - 64)) | (1L << (T__84 - 64)) | (1L << (T__85 - 64)) | (1L << (T__86 - 64)) | (1L << (T__87 - 64)) | (1L << (T__88 - 64)) | (1L << (T__89 - 64)) | (1L << (T__90 - 64)) | (1L << (T__91 - 64)) | (1L << (T__92 - 64)) | (1L << (T__93 - 64)))) != 0)) ) {
_errHandler.recoverInline(this);
@@ -1133,41 +1254,43 @@ public class pdp7Parser extends Parser {
}
public static final String _serializedATN =
"\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3p\u008c\4\2\t\2\4"+
"\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3p\u0090\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"+
"\3\2\6\2&\n\2\r\2\16\2\'\3\3\5\3+\n\3\3\3\5\3.\n\3\3\3\3\3\3\4\3\4\3\4"+
"\7\4\65\n\4\f\4\16\48\13\4\3\5\7\5;\n\5\f\5\16\5>\13\5\3\5\3\5\3\5\7\5"+
"C\n\5\f\5\16\5F\13\5\3\6\3\6\7\6J\n\6\f\6\16\6M\13\6\3\7\3\7\3\b\3\b\3"+
"\b\5\bT\n\b\3\b\3\b\3\b\3\t\3\t\3\t\7\t\\\n\t\f\t\16\t_\13\t\3\n\3\n\3"+
"\n\7\nd\n\n\f\n\16\ng\13\n\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\5\13"+
"q\n\13\3\f\3\f\7\fu\n\f\f\f\16\fx\13\f\3\f\5\f{\n\f\3\r\5\r~\n\r\3\r\3"+
"\r\3\16\3\16\3\17\3\17\3\20\3\20\3\21\3\21\3\22\3\22\3\22\2\2\23\2\4\6"+
"\b\n\f\16\20\22\24\26\30\32\34\36 \"\2\5\3\2cd\3\2ef\3\2\6`\u0091\2%\3"+
"\2\2\2\4*\3\2\2\2\6\61\3\2\2\2\b<\3\2\2\2\nG\3\2\2\2\fN\3\2\2\2\16S\3"+
"\2\2\2\20X\3\2\2\2\22`\3\2\2\2\24p\3\2\2\2\26r\3\2\2\2\30}\3\2\2\2\32"+
"\u0081\3\2\2\2\34\u0083\3\2\2\2\36\u0085\3\2\2\2 \u0087\3\2\2\2\"\u0089"+
"\3\2\2\2$&\5\4\3\2%$\3\2\2\2&\'\3\2\2\2\'%\3\2\2\2\'(\3\2\2\2(\3\3\2\2"+
"\2)+\5\6\4\2*)\3\2\2\2*+\3\2\2\2+-\3\2\2\2,.\5\34\17\2-,\3\2\2\2-.\3\2"+
"\2\2./\3\2\2\2/\60\5\32\16\2\60\5\3\2\2\2\61\66\5\b\5\2\62\63\7\3\2\2"+
"\63\65\5\b\5\2\64\62\3\2\2\2\658\3\2\2\2\66\64\3\2\2\2\66\67\3\2\2\2\67"+
"\7\3\2\2\28\66\3\2\2\29;\5\36\20\2:9\3\2\2\2;>\3\2\2\2<:\3\2\2\2<=\3\2"+
"\2\2=D\3\2\2\2><\3\2\2\2?C\5\n\6\2@C\5\16\b\2AC\5\20\t\2B?\3\2\2\2B@\3"+
"\2\2\2BA\3\2\2\2CF\3\2\2\2DB\3\2\2\2DE\3\2\2\2E\t\3\2\2\2FD\3\2\2\2GK"+
"\5\"\22\2HJ\5\f\7\2IH\3\2\2\2JM\3\2\2\2KI\3\2\2\2KL\3\2\2\2L\13\3\2\2"+
"\2MK\3\2\2\2NO\5\20\t\2O\r\3\2\2\2PT\5 \21\2QT\7a\2\2RT\7b\2\2SP\3\2\2"+
"\2SQ\3\2\2\2SR\3\2\2\2TU\3\2\2\2UV\7\4\2\2VW\5\20\t\2W\17\3\2\2\2X]\5"+
"\22\n\2YZ\t\2\2\2Z\\\5\22\n\2[Y\3\2\2\2\\_\3\2\2\2][\3\2\2\2]^\3\2\2\2"+
"^\21\3\2\2\2_]\3\2\2\2`e\5\24\13\2ab\t\3\2\2bd\5\24\13\2ca\3\2\2\2dg\3"+
"\2\2\2ec\3\2\2\2ef\3\2\2\2f\23\3\2\2\2ge\3\2\2\2hq\5 \21\2iq\7a\2\2jq"+
"\7b\2\2kq\5\26\f\2lq\7j\2\2mq\7l\2\2nq\7k\2\2oq\5\30\r\2ph\3\2\2\2pi\3"+
"\2\2\2pj\3\2\2\2pk\3\2\2\2pl\3\2\2\2pm\3\2\2\2pn\3\2\2\2po\3\2\2\2q\25"+
"\3\2\2\2rv\7m\2\2su\7i\2\2ts\3\2\2\2ux\3\2\2\2vt\3\2\2\2vw\3\2\2\2wz\3"+
"\2\2\2xv\3\2\2\2y{\7\5\2\2zy\3\2\2\2z{\3\2\2\2{\27\3\2\2\2|~\7d\2\2}|"+
"\3\2\2\2}~\3\2\2\2~\177\3\2\2\2\177\u0080\7i\2\2\u0080\31\3\2\2\2\u0081"+
"\u0082\7o\2\2\u0082\33\3\2\2\2\u0083\u0084\7n\2\2\u0084\35\3\2\2\2\u0085"+
"\u0086\7g\2\2\u0086\37\3\2\2\2\u0087\u0088\7h\2\2\u0088!\3\2\2\2\u0089"+
"\u008a\t\4\2\2\u008a#\3\2\2\2\21\'*-\66<BDKS]epvz}";
"\3\2\6\2&\n\2\r\2\16\2\'\3\2\5\2+\n\2\3\2\3\2\3\3\5\3\60\n\3\3\3\5\3\63"+
"\n\3\3\4\3\4\3\4\3\5\3\5\3\5\7\5;\n\5\f\5\16\5>\13\5\3\6\7\6A\n\6\f\6"+
"\16\6D\13\6\3\6\3\6\3\6\7\6I\n\6\f\6\16\6L\13\6\3\7\3\7\7\7P\n\7\f\7\16"+
"\7S\13\7\3\b\3\b\3\t\3\t\3\t\3\t\5\t[\n\t\3\t\3\t\3\t\3\n\3\n\3\n\7\n"+
"c\n\n\f\n\16\nf\13\n\3\13\3\13\3\13\7\13k\n\13\f\13\16\13n\13\13\3\f\3"+
"\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\5\fz\n\f\3\r\3\r\7\r~\n\r\f\r\16\r"+
"\u0081\13\r\3\r\5\r\u0084\n\r\3\16\3\16\3\17\3\17\3\20\3\20\3\21\3\21"+
"\3\22\3\22\3\22\2\2\23\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"\2\5\3"+
"\2cd\3\2ef\3\2\6`\u0097\2%\3\2\2\2\4/\3\2\2\2\6\64\3\2\2\2\b\67\3\2\2"+
"\2\nB\3\2\2\2\fM\3\2\2\2\16T\3\2\2\2\20Z\3\2\2\2\22_\3\2\2\2\24g\3\2\2"+
"\2\26y\3\2\2\2\30{\3\2\2\2\32\u0085\3\2\2\2\34\u0087\3\2\2\2\36\u0089"+
"\3\2\2\2 \u008b\3\2\2\2\"\u008d\3\2\2\2$&\5\6\4\2%$\3\2\2\2&\'\3\2\2\2"+
"\'%\3\2\2\2\'(\3\2\2\2(*\3\2\2\2)+\5\4\3\2*)\3\2\2\2*+\3\2\2\2+,\3\2\2"+
"\2,-\7\2\2\3-\3\3\2\2\2.\60\5\b\5\2/.\3\2\2\2/\60\3\2\2\2\60\62\3\2\2"+
"\2\61\63\5\34\17\2\62\61\3\2\2\2\62\63\3\2\2\2\63\5\3\2\2\2\64\65\5\4"+
"\3\2\65\66\5\32\16\2\66\7\3\2\2\2\67<\5\n\6\289\7\3\2\29;\5\n\6\2:8\3"+
"\2\2\2;>\3\2\2\2<:\3\2\2\2<=\3\2\2\2=\t\3\2\2\2><\3\2\2\2?A\5\36\20\2"+
"@?\3\2\2\2AD\3\2\2\2B@\3\2\2\2BC\3\2\2\2CJ\3\2\2\2DB\3\2\2\2EI\5\f\7\2"+
"FI\5\20\t\2GI\5\22\n\2HE\3\2\2\2HF\3\2\2\2HG\3\2\2\2IL\3\2\2\2JH\3\2\2"+
"\2JK\3\2\2\2K\13\3\2\2\2LJ\3\2\2\2MQ\5\"\22\2NP\5\16\b\2ON\3\2\2\2PS\3"+
"\2\2\2QO\3\2\2\2QR\3\2\2\2R\r\3\2\2\2SQ\3\2\2\2TU\5\22\n\2U\17\3\2\2\2"+
"V[\5\"\22\2W[\5 \21\2X[\7a\2\2Y[\7b\2\2ZV\3\2\2\2ZW\3\2\2\2ZX\3\2\2\2"+
"ZY\3\2\2\2[\\\3\2\2\2\\]\7\4\2\2]^\5\22\n\2^\21\3\2\2\2_d\5\24\13\2`a"+
"\t\2\2\2ac\5\24\13\2b`\3\2\2\2cf\3\2\2\2db\3\2\2\2de\3\2\2\2e\23\3\2\2"+
"\2fd\3\2\2\2gl\5\26\f\2hi\t\3\2\2ik\5\26\f\2jh\3\2\2\2kn\3\2\2\2lj\3\2"+
"\2\2lm\3\2\2\2m\25\3\2\2\2nl\3\2\2\2oz\5 \21\2pz\7a\2\2qz\7b\2\2rz\5\30"+
"\r\2sz\7j\2\2tz\7l\2\2uz\7k\2\2vz\7i\2\2wx\7d\2\2xz\5\26\f\2yo\3\2\2\2"+
"yp\3\2\2\2yq\3\2\2\2yr\3\2\2\2ys\3\2\2\2yt\3\2\2\2yu\3\2\2\2yv\3\2\2\2"+
"yw\3\2\2\2z\27\3\2\2\2{\177\7m\2\2|~\7i\2\2}|\3\2\2\2~\u0081\3\2\2\2\177"+
"}\3\2\2\2\177\u0080\3\2\2\2\u0080\u0083\3\2\2\2\u0081\177\3\2\2\2\u0082"+
"\u0084\7\5\2\2\u0083\u0082\3\2\2\2\u0083\u0084\3\2\2\2\u0084\31\3\2\2"+
"\2\u0085\u0086\7o\2\2\u0086\33\3\2\2\2\u0087\u0088\7n\2\2\u0088\35\3\2"+
"\2\2\u0089\u008a\7g\2\2\u008a\37\3\2\2\2\u008b\u008c\7h\2\2\u008c!\3\2"+
"\2\2\u008d\u008e\t\4\2\2\u008e#\3\2\2\2\21\'*/\62<BHJQZdly\177\u0083";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {