public final List<Pair<Integer, Integer>> granularityInclude() throws RecognitionException {
		List<Pair<Integer, Integer>> microIntervals = null;


		Pair<Integer, Integer> p1 =null;
		Pair<Integer, Integer> p2 =null;

		microIntervals = new ArrayList<>();
		try {
			// druidG.g:351:2: ( ( WS INCLUDE ( WS )? LPARAN ( WS )? (p1= pairNums ( ',' p2= pairNums )* ) ( WS )? RPARAN ) )
			// druidG.g:352:2: ( WS INCLUDE ( WS )? LPARAN ( WS )? (p1= pairNums ( ',' p2= pairNums )* ) ( WS )? RPARAN )
			{
			// druidG.g:352:2: ( WS INCLUDE ( WS )? LPARAN ( WS )? (p1= pairNums ( ',' p2= pairNums )* ) ( WS )? RPARAN )
			// druidG.g:352:4: WS INCLUDE ( WS )? LPARAN ( WS )? (p1= pairNums ( ',' p2= pairNums )* ) ( WS )? RPARAN
			{
			match(input,WS,FOLLOW_WS_in_granularityInclude2436); 
			match(input,INCLUDE,FOLLOW_INCLUDE_in_granularityInclude2438); 
			// druidG.g:352:15: ( WS )?
			int alt165=2;
			int LA165_0 = input.LA(1);
			if ( (LA165_0==WS) ) {
				alt165=1;
			}
			switch (alt165) {
				case 1 :
					// druidG.g:352:15: WS
					{
					match(input,WS,FOLLOW_WS_in_granularityInclude2440); 
					}
					break;

			}

			match(input,LPARAN,FOLLOW_LPARAN_in_granularityInclude2443); 
			// druidG.g:352:26: ( WS )?
			int alt166=2;
			int LA166_0 = input.LA(1);
			if ( (LA166_0==WS) ) {
				alt166=1;
			}
			switch (alt166) {
				case 1 :
					// druidG.g:352:26: WS
					{
					match(input,WS,FOLLOW_WS_in_granularityInclude2445); 
					}
					break;

			}

			// druidG.g:352:30: (p1= pairNums ( ',' p2= pairNums )* )
			// druidG.g:352:31: p1= pairNums ( ',' p2= pairNums )*
			{
			pushFollow(FOLLOW_pairNums_in_granularityInclude2451);
			p1=pairNums();
			state._fsp--;

			microIntervals.add(p1);
			// druidG.g:352:69: ( ',' p2= pairNums )*
			loop167:
			while (true) {
				int alt167=2;
				int LA167_0 = input.LA(1);
				if ( (LA167_0==91) ) {
					alt167=1;
				}

				switch (alt167) {
				case 1 :
					// druidG.g:352:70: ',' p2= pairNums
					{
					match(input,91,FOLLOW_91_in_granularityInclude2456); 
					pushFollow(FOLLOW_pairNums_in_granularityInclude2460);
					p2=pairNums();
					state._fsp--;

					microIntervals.add(p2);
					}
					break;

				default :
					break loop167;
				}
			}

			}

			// druidG.g:352:115: ( WS )?
			int alt168=2;
			int LA168_0 = input.LA(1);
			if ( (LA168_0==WS) ) {
				alt168=1;
			}
			switch (alt168) {
				case 1 :
					// druidG.g:352:115: WS
					{
					match(input,WS,FOLLOW_WS_in_granularityInclude2467); 
					}
					break;

			}

			match(input,RPARAN,FOLLOW_RPARAN_in_granularityInclude2470); 
			}

			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return microIntervals;
	}
public final List < Pair < Integer , Integer > > granularityInclude ( ) throws RecognitionException { List < Pair < Integer , Integer > > microIntervals = null ; Pair < Integer , Integer > p1 = null ; Pair < Integer , Integer > p2 = null ; microIntervals = new ArrayList < > ( ) ; try { { { match ( input , WS , FOLLOW_WS_in_granularityInclude2436 ) ; match ( input , INCLUDE , FOLLOW_INCLUDE_in_granularityInclude2438 ) ; int alt165 = 2 ; int LA165_0 = input . LA ( 1 ) ; if ( ( LA165_0 == WS ) ) { alt165 = 1 ; } switch ( alt165 ) { case 1 : { match ( input , WS , FOLLOW_WS_in_granularityInclude2440 ) ; } break ; } match ( input , LPARAN , FOLLOW_LPARAN_in_granularityInclude2443 ) ; int alt166 = 2 ; int LA166_0 = input . LA ( 1 ) ; if ( ( LA166_0 == WS ) ) { alt166 = 1 ; } switch ( alt166 ) { case 1 : { match ( input , WS , FOLLOW_WS_in_granularityInclude2445 ) ; } break ; } { pushFollow ( FOLLOW_pairNums_in_granularityInclude2451 ) ; p1 = pairNums ( ) ; state . _fsp -- ; microIntervals . add ( p1 ) ; loop167 : while ( true ) { int alt167 = 2 ; int LA167_0 = input . LA ( 1 ) ; if ( ( LA167_0 == 91 ) ) { alt167 = 1 ; } switch ( alt167 ) { case 1 : { match ( input , 91 , FOLLOW_91_in_granularityInclude2456 ) ; pushFollow ( FOLLOW_pairNums_in_granularityInclude2460 ) ; p2 = pairNums ( ) ; state . _fsp -- ; microIntervals . add ( p2 ) ; } break ; default : break loop167 ; } } } int alt168 = 2 ; int LA168_0 = input . LA ( 1 ) ; if ( ( LA168_0 == WS ) ) { alt168 = 1 ; } switch ( alt168 ) { case 1 : { match ( input , WS , FOLLOW_WS_in_granularityInclude2467 ) ; } break ; } match ( input , RPARAN , FOLLOW_RPARAN_in_granularityInclude2470 ) ; } } } catch ( RecognitionException re ) { reportError ( re ) ; recover ( input , re ) ; } finally { } return microIntervals ; }
druidG.g:349:1: granularityInclude returns [List<Pair<Integer, Integer>> microIntervals] : ( WS INCLUDE ( WS )? LPARAN ( WS )? (p1= pairNums ( ',' p2= pairNums )* ) ( WS )? RPARAN ) ;