public final TypeFragmentContext typeFragment() throws RecognitionException {
		TypeFragmentContext _localctx = new TypeFragmentContext(_ctx, getState());
		enterRule(_localctx, 148, RULE_typeFragment);
		int _la;
		try {
			setState(1550);
			switch ( getInterpreter().adaptivePredict(_input,206,_ctx) ) {
			case 1:
				_localctx = new SeqFragmentContext(_localctx);
				enterOuterAlt(_localctx, 1);
				{
				setState(1525); match(T__9);
				setState(1526); match(T__37);
				}
				break;
			case 2:
				_localctx = new StaticSeqFragmentContext(_localctx);
				enterOuterAlt(_localctx, 2);
				{
				setState(1527); match(T__9);
				setState(1528); constant();
				setState(1529); match(T__37);
				}
				break;
			case 3:
				_localctx = new MultiSeqFragmentContext(_localctx);
				enterOuterAlt(_localctx, 3);
				{
				setState(1531); match(T__9);
				setState(1533); 
				_errHandler.sync(this);
				_la = _input.LA(1);
				do {
					{
					{
					setState(1532); ((MultiSeqFragmentContext)_localctx).s10 = match(T__45);
					((MultiSeqFragmentContext)_localctx).rank.add(((MultiSeqFragmentContext)_localctx).s10);
					}
					}
					setState(1535); 
					_errHandler.sync(this);
					_la = _input.LA(1);
				} while ( _la==T__45 );
				setState(1537); match(T__37);
				}
				break;
			case 4:
				_localctx = new StaticMultiSeqFragmentContext(_localctx);
				enterOuterAlt(_localctx, 4);
				{
				setState(1538); match(T__9);
				setState(1539); constant();
				setState(1542); 
				_errHandler.sync(this);
				_la = _input.LA(1);
				do {
					{
					{
					setState(1540); match(T__45);
					setState(1541); constant();
					}
					}
					setState(1544); 
					_errHandler.sync(this);
					_la = _input.LA(1);
				} while ( _la==T__45 );
				setState(1546); match(T__37);
				}
				break;
			case 5:
				_localctx = new SetFragmentContext(_localctx);
				enterOuterAlt(_localctx, 5);
				{
				setState(1548); match(T__52);
				setState(1549); match(T__21);
				}
				break;
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}