in src/main/java/org/apache/sysds/parser/dml/DmlParser.java [497:1346]
public final StatementContext statement() throws RecognitionException {
StatementContext _localctx = new StatementContext(_ctx, getState());
enterRule(_localctx, 2, RULE_statement);
// This actions occurs regardless of how many alternatives in this rule
((StatementContext)_localctx).info = new org.apache.sysds.parser.dml.StatementInfo();
int _la;
try {
int _alt;
setState(297);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,38,_ctx) ) {
case 1:
_localctx = new ImportStatementContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(37);
match(T__0);
setState(38);
match(T__1);
setState(39);
((ImportStatementContext)_localctx).filePath = match(STRING);
setState(40);
match(T__2);
setState(41);
match(T__3);
setState(42);
((ImportStatementContext)_localctx).namespace = match(ID);
setState(46);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,2,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(43);
match(T__4);
}
}
}
setState(48);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,2,_ctx);
}
}
break;
case 2:
_localctx = new PathStatementContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(49);
match(T__5);
setState(50);
match(T__1);
setState(51);
((PathStatementContext)_localctx).pathValue = match(STRING);
setState(52);
match(T__2);
setState(56);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,3,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(53);
match(T__4);
}
}
}
setState(58);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,3,_ctx);
}
}
break;
case 3:
_localctx = new FunctionCallAssignmentStatementContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(62);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,4,_ctx) ) {
case 1:
{
setState(59);
((FunctionCallAssignmentStatementContext)_localctx).targetList = dataIdentifier();
setState(60);
_la = _input.LA(1);
if ( !(_la==T__6 || _la==T__7) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
}
break;
}
setState(64);
((FunctionCallAssignmentStatementContext)_localctx).name = match(ID);
setState(65);
match(T__1);
setState(74);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__9) | (1L << T__27) | (1L << T__28) | (1L << T__40) | (1L << T__45) | (1L << T__46) | (1L << ID) | (1L << INT) | (1L << DOUBLE))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (COMMANDLINE_NAMED_ID - 65)) | (1L << (COMMANDLINE_POSITION_ID - 65)) | (1L << (STRING - 65)))) != 0)) {
{
setState(66);
((FunctionCallAssignmentStatementContext)_localctx).parameterizedExpression = parameterizedExpression();
((FunctionCallAssignmentStatementContext)_localctx).paramExprs.add(((FunctionCallAssignmentStatementContext)_localctx).parameterizedExpression);
setState(71);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__8) {
{
{
setState(67);
match(T__8);
setState(68);
((FunctionCallAssignmentStatementContext)_localctx).parameterizedExpression = parameterizedExpression();
((FunctionCallAssignmentStatementContext)_localctx).paramExprs.add(((FunctionCallAssignmentStatementContext)_localctx).parameterizedExpression);
}
}
setState(73);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
setState(76);
match(T__2);
setState(80);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,7,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(77);
match(T__4);
}
}
}
setState(82);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,7,_ctx);
}
}
break;
case 4:
_localctx = new FunctionCallMultiAssignmentStatementContext(_localctx);
enterOuterAlt(_localctx, 4);
{
setState(83);
match(T__9);
setState(84);
((FunctionCallMultiAssignmentStatementContext)_localctx).dataIdentifier = dataIdentifier();
((FunctionCallMultiAssignmentStatementContext)_localctx).targetList.add(((FunctionCallMultiAssignmentStatementContext)_localctx).dataIdentifier);
setState(89);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__8) {
{
{
setState(85);
match(T__8);
setState(86);
((FunctionCallMultiAssignmentStatementContext)_localctx).dataIdentifier = dataIdentifier();
((FunctionCallMultiAssignmentStatementContext)_localctx).targetList.add(((FunctionCallMultiAssignmentStatementContext)_localctx).dataIdentifier);
}
}
setState(91);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(92);
match(T__10);
setState(93);
_la = _input.LA(1);
if ( !(_la==T__6 || _la==T__7) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(94);
((FunctionCallMultiAssignmentStatementContext)_localctx).name = match(ID);
setState(95);
match(T__1);
setState(104);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__9) | (1L << T__27) | (1L << T__28) | (1L << T__40) | (1L << T__45) | (1L << T__46) | (1L << ID) | (1L << INT) | (1L << DOUBLE))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (COMMANDLINE_NAMED_ID - 65)) | (1L << (COMMANDLINE_POSITION_ID - 65)) | (1L << (STRING - 65)))) != 0)) {
{
setState(96);
((FunctionCallMultiAssignmentStatementContext)_localctx).parameterizedExpression = parameterizedExpression();
((FunctionCallMultiAssignmentStatementContext)_localctx).paramExprs.add(((FunctionCallMultiAssignmentStatementContext)_localctx).parameterizedExpression);
setState(101);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__8) {
{
{
setState(97);
match(T__8);
setState(98);
((FunctionCallMultiAssignmentStatementContext)_localctx).parameterizedExpression = parameterizedExpression();
((FunctionCallMultiAssignmentStatementContext)_localctx).paramExprs.add(((FunctionCallMultiAssignmentStatementContext)_localctx).parameterizedExpression);
}
}
setState(103);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
setState(106);
match(T__2);
setState(110);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,11,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(107);
match(T__4);
}
}
}
setState(112);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,11,_ctx);
}
}
break;
case 5:
_localctx = new IfdefAssignmentStatementContext(_localctx);
enterOuterAlt(_localctx, 5);
{
setState(113);
((IfdefAssignmentStatementContext)_localctx).targetList = dataIdentifier();
setState(114);
((IfdefAssignmentStatementContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !(_la==T__6 || _la==T__7) ) {
((IfdefAssignmentStatementContext)_localctx).op = (Token)_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(115);
match(T__11);
setState(116);
match(T__1);
setState(117);
((IfdefAssignmentStatementContext)_localctx).commandLineParam = dataIdentifier();
setState(118);
match(T__8);
setState(119);
((IfdefAssignmentStatementContext)_localctx).source = expression(0);
setState(120);
match(T__2);
setState(124);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,12,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(121);
match(T__4);
}
}
}
setState(126);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,12,_ctx);
}
}
break;
case 6:
_localctx = new AssignmentStatementContext(_localctx);
enterOuterAlt(_localctx, 6);
{
setState(127);
((AssignmentStatementContext)_localctx).targetList = dataIdentifier();
setState(128);
((AssignmentStatementContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !(_la==T__6 || _la==T__7) ) {
((AssignmentStatementContext)_localctx).op = (Token)_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(129);
((AssignmentStatementContext)_localctx).source = expression(0);
setState(133);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,13,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(130);
match(T__4);
}
}
}
setState(135);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,13,_ctx);
}
}
break;
case 7:
_localctx = new AccumulatorAssignmentStatementContext(_localctx);
enterOuterAlt(_localctx, 7);
{
setState(136);
((AccumulatorAssignmentStatementContext)_localctx).targetList = dataIdentifier();
setState(137);
((AccumulatorAssignmentStatementContext)_localctx).op = match(T__12);
setState(138);
((AccumulatorAssignmentStatementContext)_localctx).source = expression(0);
setState(142);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,14,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(139);
match(T__4);
}
}
}
setState(144);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,14,_ctx);
}
}
break;
case 8:
_localctx = new IfStatementContext(_localctx);
enterOuterAlt(_localctx, 8);
{
setState(145);
match(T__13);
setState(146);
match(T__1);
setState(147);
((IfStatementContext)_localctx).predicate = expression(0);
setState(148);
match(T__2);
setState(170);
_errHandler.sync(this);
switch (_input.LA(1)) {
case T__0:
case T__5:
case T__9:
case T__13:
case T__17:
case T__19:
case T__20:
case ID:
case COMMANDLINE_NAMED_ID:
case COMMANDLINE_POSITION_ID:
{
setState(149);
((IfStatementContext)_localctx).statement = statement();
((IfStatementContext)_localctx).ifBody.add(((IfStatementContext)_localctx).statement);
setState(153);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,15,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(150);
match(T__4);
}
}
}
setState(155);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,15,_ctx);
}
}
break;
case T__14:
{
setState(156);
match(T__14);
setState(166);
_errHandler.sync(this);
_la = _input.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << T__5) | (1L << T__9) | (1L << T__13) | (1L << T__17) | (1L << T__19) | (1L << T__20) | (1L << ID))) != 0) || _la==COMMANDLINE_NAMED_ID || _la==COMMANDLINE_POSITION_ID) {
{
{
setState(157);
((IfStatementContext)_localctx).statement = statement();
((IfStatementContext)_localctx).ifBody.add(((IfStatementContext)_localctx).statement);
setState(161);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__4) {
{
{
setState(158);
match(T__4);
}
}
setState(163);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
setState(168);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(169);
match(T__15);
}
break;
default:
throw new NoViableAltException(this);
}
setState(196);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,23,_ctx) ) {
case 1:
{
setState(172);
match(T__16);
setState(194);
_errHandler.sync(this);
switch (_input.LA(1)) {
case T__0:
case T__5:
case T__9:
case T__13:
case T__17:
case T__19:
case T__20:
case ID:
case COMMANDLINE_NAMED_ID:
case COMMANDLINE_POSITION_ID:
{
setState(173);
((IfStatementContext)_localctx).statement = statement();
((IfStatementContext)_localctx).elseBody.add(((IfStatementContext)_localctx).statement);
setState(177);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,19,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(174);
match(T__4);
}
}
}
setState(179);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,19,_ctx);
}
}
break;
case T__14:
{
setState(180);
match(T__14);
setState(190);
_errHandler.sync(this);
_la = _input.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << T__5) | (1L << T__9) | (1L << T__13) | (1L << T__17) | (1L << T__19) | (1L << T__20) | (1L << ID))) != 0) || _la==COMMANDLINE_NAMED_ID || _la==COMMANDLINE_POSITION_ID) {
{
{
setState(181);
((IfStatementContext)_localctx).statement = statement();
((IfStatementContext)_localctx).elseBody.add(((IfStatementContext)_localctx).statement);
setState(185);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__4) {
{
{
setState(182);
match(T__4);
}
}
setState(187);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
setState(192);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(193);
match(T__15);
}
break;
default:
throw new NoViableAltException(this);
}
}
break;
}
}
break;
case 9:
_localctx = new ForStatementContext(_localctx);
enterOuterAlt(_localctx, 9);
{
setState(198);
match(T__17);
setState(199);
match(T__1);
setState(200);
((ForStatementContext)_localctx).iterVar = match(ID);
setState(201);
match(T__18);
setState(202);
((ForStatementContext)_localctx).iterPred = iterablePredicate();
setState(207);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__8) {
{
{
setState(203);
match(T__8);
setState(204);
((ForStatementContext)_localctx).strictParameterizedExpression = strictParameterizedExpression();
((ForStatementContext)_localctx).parForParams.add(((ForStatementContext)_localctx).strictParameterizedExpression);
}
}
setState(209);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(210);
match(T__2);
setState(232);
_errHandler.sync(this);
switch (_input.LA(1)) {
case T__0:
case T__5:
case T__9:
case T__13:
case T__17:
case T__19:
case T__20:
case ID:
case COMMANDLINE_NAMED_ID:
case COMMANDLINE_POSITION_ID:
{
setState(211);
((ForStatementContext)_localctx).statement = statement();
((ForStatementContext)_localctx).body.add(((ForStatementContext)_localctx).statement);
setState(215);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,25,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(212);
match(T__4);
}
}
}
setState(217);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,25,_ctx);
}
}
break;
case T__14:
{
setState(218);
match(T__14);
setState(228);
_errHandler.sync(this);
_la = _input.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << T__5) | (1L << T__9) | (1L << T__13) | (1L << T__17) | (1L << T__19) | (1L << T__20) | (1L << ID))) != 0) || _la==COMMANDLINE_NAMED_ID || _la==COMMANDLINE_POSITION_ID) {
{
{
setState(219);
((ForStatementContext)_localctx).statement = statement();
((ForStatementContext)_localctx).body.add(((ForStatementContext)_localctx).statement);
setState(223);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__4) {
{
{
setState(220);
match(T__4);
}
}
setState(225);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
setState(230);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(231);
match(T__15);
}
break;
default:
throw new NoViableAltException(this);
}
}
break;
case 10:
_localctx = new ParForStatementContext(_localctx);
enterOuterAlt(_localctx, 10);
{
setState(234);
match(T__19);
setState(235);
match(T__1);
setState(236);
((ParForStatementContext)_localctx).iterVar = match(ID);
setState(237);
match(T__18);
setState(238);
((ParForStatementContext)_localctx).iterPred = iterablePredicate();
setState(243);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__8) {
{
{
setState(239);
match(T__8);
setState(240);
((ParForStatementContext)_localctx).strictParameterizedExpression = strictParameterizedExpression();
((ParForStatementContext)_localctx).parForParams.add(((ParForStatementContext)_localctx).strictParameterizedExpression);
}
}
setState(245);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(246);
match(T__2);
setState(268);
_errHandler.sync(this);
switch (_input.LA(1)) {
case T__0:
case T__5:
case T__9:
case T__13:
case T__17:
case T__19:
case T__20:
case ID:
case COMMANDLINE_NAMED_ID:
case COMMANDLINE_POSITION_ID:
{
setState(247);
((ParForStatementContext)_localctx).statement = statement();
((ParForStatementContext)_localctx).body.add(((ParForStatementContext)_localctx).statement);
setState(251);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,30,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(248);
match(T__4);
}
}
}
setState(253);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,30,_ctx);
}
}
break;
case T__14:
{
setState(254);
match(T__14);
setState(264);
_errHandler.sync(this);
_la = _input.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << T__5) | (1L << T__9) | (1L << T__13) | (1L << T__17) | (1L << T__19) | (1L << T__20) | (1L << ID))) != 0) || _la==COMMANDLINE_NAMED_ID || _la==COMMANDLINE_POSITION_ID) {
{
{
setState(255);
((ParForStatementContext)_localctx).statement = statement();
((ParForStatementContext)_localctx).body.add(((ParForStatementContext)_localctx).statement);
setState(259);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__4) {
{
{
setState(256);
match(T__4);
}
}
setState(261);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
setState(266);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(267);
match(T__15);
}
break;
default:
throw new NoViableAltException(this);
}
}
break;
case 11:
_localctx = new WhileStatementContext(_localctx);
enterOuterAlt(_localctx, 11);
{
setState(270);
match(T__20);
setState(271);
match(T__1);
setState(272);
((WhileStatementContext)_localctx).predicate = expression(0);
setState(273);
match(T__2);
setState(295);
_errHandler.sync(this);
switch (_input.LA(1)) {
case T__0:
case T__5:
case T__9:
case T__13:
case T__17:
case T__19:
case T__20:
case ID:
case COMMANDLINE_NAMED_ID:
case COMMANDLINE_POSITION_ID:
{
setState(274);
((WhileStatementContext)_localctx).statement = statement();
((WhileStatementContext)_localctx).body.add(((WhileStatementContext)_localctx).statement);
setState(278);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,34,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(275);
match(T__4);
}
}
}
setState(280);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,34,_ctx);
}
}
break;
case T__14:
{
setState(281);
match(T__14);
setState(291);
_errHandler.sync(this);
_la = _input.LA(1);
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << T__5) | (1L << T__9) | (1L << T__13) | (1L << T__17) | (1L << T__19) | (1L << T__20) | (1L << ID))) != 0) || _la==COMMANDLINE_NAMED_ID || _la==COMMANDLINE_POSITION_ID) {
{
{
setState(282);
((WhileStatementContext)_localctx).statement = statement();
((WhileStatementContext)_localctx).body.add(((WhileStatementContext)_localctx).statement);
setState(286);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__4) {
{
{
setState(283);
match(T__4);
}
}
setState(288);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
setState(293);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(294);
match(T__15);
}
break;
default:
throw new NoViableAltException(this);
}
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}