public final ProgramContext program() throws RecognitionException {
   ProgramContext _localctx = new ProgramContext(_ctx, getState());
   enterRule(_localctx, 0, RULE_program);
   int _la;
   try {
     enterOuterAlt(_localctx, 1);
     {
       setState(13);
       _errHandler.sync(this);
       _la = _input.LA(1);
       do {
         {
           {
             setState(12);
             statement();
           }
         }
         setState(15);
         _errHandler.sync(this);
         _la = _input.LA(1);
       } while ((((_la) & ~0x3f) == 0
           && ((1L << _la)
                   & ((1L << T__0)
                       | (1L << T__1)
                       | (1L << T__3)
                       | (1L << T__5)
                       | (1L << T__6)
                       | (1L << NOT)
                       | (1L << ID)
                       | (1L << NUMBER)))
               != 0));
     }
   } catch (RecognitionException re) {
     _localctx.exception = re;
     _errHandler.reportError(this, re);
     _errHandler.recover(this, re);
   } finally {
     exitRule();
   }
   return _localctx;
 }
 public final ProgramContext program() throws RecognitionException {
   ProgramContext _localctx = new ProgramContext(_ctx, getState());
   enterRule(_localctx, 0, RULE_program);
   try {
     enterOuterAlt(_localctx, 1);
     {
       setState(10);
       match(T__0);
       setState(11);
       series();
       setState(12);
       match(T__1);
     }
   } catch (RecognitionException re) {
     _localctx.exception = re;
     _errHandler.reportError(this, re);
     _errHandler.recover(this, re);
   } finally {
     exitRule();
   }
   return _localctx;
 }