// $ANTLR 3.0.1 /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g 2008-01-12 11:15:51 package fr.lifl.stc.stan.dsl; import java.util.Vector; import org.antlr.runtime.*; import java.util.Stack; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.util.HashMap; import org.antlr.runtime.tree.*; public class dslParser extends Parser { public static final String[] tokenNames = new String[] { "", "", "", "", "IDENTIFIER", "COMMA", "EOL", "COMMENT", "LETTER", "WS", "'share with'", "'secret'", "'strict secret'", "'Static'", "'IO'", "'Exception'" }; public static final int COMMA=5; public static final int LETTER=8; public static final int WS=9; public static final int EOF=-1; public static final int EOL=6; public static final int COMMENT=7; public static final int IDENTIFIER=4; public dslParser(TokenStream input) { super(input); ruleMemo = new HashMap[15+1]; } protected TreeAdaptor adaptor = new CommonTreeAdaptor(); public void setTreeAdaptor(TreeAdaptor adaptor) { this.adaptor = adaptor; } public TreeAdaptor getTreeAdaptor() { return adaptor; } public String[] getTokenNames() { return tokenNames; } public String getGrammarFileName() { return "/home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g"; } /* Result of parsing */ public PolicyManager policies = new PolicyManager(); public static class s_return extends ParserRuleReturnScope { public Vector id_list; Object tree; public Object getTree() { return tree; } }; // $ANTLR start s // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:24:1: s returns [Vector id_list] : id= IDENTIFIER ( COMMA res= s )* ; public final s_return s() throws RecognitionException { s_return retval = new s_return(); retval.start = input.LT(1); Object root_0 = null; Token id=null; Token COMMA1=null; s_return res = null; Object id_tree=null; Object COMMA1_tree=null; try { // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:25:3: (id= IDENTIFIER ( COMMA res= s )* ) // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:26:4: id= IDENTIFIER ( COMMA res= s )* { root_0 = (Object)adaptor.nil(); if ( backtracking==0 ) { retval.id_list = new Vector(); } id=(Token)input.LT(1); match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_s75); if (failed) return retval; if ( backtracking==0 ) { id_tree = (Object)adaptor.create(id); adaptor.addChild(root_0, id_tree); } if ( backtracking==0 ) { retval.id_list.add(id.getText()); } // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:33:4: ( COMMA res= s )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); if ( (LA1_0==COMMA) ) { int LA1_1 = input.LA(2); if ( (synpred1()) ) { alt1=1; } } switch (alt1) { case 1 : // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:33:5: COMMA res= s { COMMA1=(Token)input.LT(1); match(input,COMMA,FOLLOW_COMMA_in_s87); if (failed) return retval; pushFollow(FOLLOW_s_in_s96); res=s(); _fsp--; if (failed) return retval; if ( backtracking==0 ) adaptor.addChild(root_0, res.getTree()); if ( backtracking==0 ) { retval.id_list.addAll(res.id_list); } } break; default : break loop1; } } while (true); } retval.stop = input.LT(-1); if ( backtracking==0 ) { retval.tree = (Object)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { } return retval; } // $ANTLR end s public static class r_s_return extends ParserRuleReturnScope { Object tree; public Object getTree() { return tree; } }; // $ANTLR start r_s // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:41:1: r_s : sources= s 'share with' targets= t eol ; public final r_s_return r_s() throws RecognitionException { r_s_return retval = new r_s_return(); retval.start = input.LT(1); Object root_0 = null; Token string_literal2=null; s_return sources = null; t_return targets = null; eol_return eol3 = null; Object string_literal2_tree=null; try { // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:41:5: (sources= s 'share with' targets= t eol ) // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:41:7: sources= s 'share with' targets= t eol { root_0 = (Object)adaptor.nil(); pushFollow(FOLLOW_s_in_r_s120); sources=s(); _fsp--; if (failed) return retval; if ( backtracking==0 ) adaptor.addChild(root_0, sources.getTree()); string_literal2=(Token)input.LT(1); match(input,10,FOLLOW_10_in_r_s122); if (failed) return retval; if ( backtracking==0 ) { string_literal2_tree = (Object)adaptor.create(string_literal2); root_0 = (Object)adaptor.becomeRoot(string_literal2_tree, root_0); } pushFollow(FOLLOW_t_in_r_s127); targets=t(); _fsp--; if (failed) return retval; if ( backtracking==0 ) adaptor.addChild(root_0, targets.getTree()); if ( backtracking==0 ) { ShareWith cur_policy = new ShareWith(); for(String s : sources.id_list) cur_policy.addSource(s); for(String s : targets.t_list) cur_policy.addTarget(s); policies.addShareWith(cur_policy); } pushFollow(FOLLOW_eol_in_r_s135); eol3=eol(); _fsp--; if (failed) return retval; if ( backtracking==0 ) adaptor.addChild(root_0, eol3.getTree()); } retval.stop = input.LT(-1); if ( backtracking==0 ) { retval.tree = (Object)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { } return retval; } // $ANTLR end r_s public static class r_c_return extends ParserRuleReturnScope { Object tree; public Object getTree() { return tree; } }; // $ANTLR start r_c // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:55:1: r_c : source= IDENTIFIER 'secret' target= s eol ; public final r_c_return r_c() throws RecognitionException { r_c_return retval = new r_c_return(); retval.start = input.LT(1); Object root_0 = null; Token source=null; Token string_literal4=null; s_return target = null; eol_return eol5 = null; Object source_tree=null; Object string_literal4_tree=null; try { // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:55:5: (source= IDENTIFIER 'secret' target= s eol ) // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:56:3: source= IDENTIFIER 'secret' target= s eol { root_0 = (Object)adaptor.nil(); source=(Token)input.LT(1); match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_r_c151); if (failed) return retval; if ( backtracking==0 ) { source_tree = (Object)adaptor.create(source); adaptor.addChild(root_0, source_tree); } string_literal4=(Token)input.LT(1); match(input,11,FOLLOW_11_in_r_c153); if (failed) return retval; if ( backtracking==0 ) { string_literal4_tree = (Object)adaptor.create(string_literal4); root_0 = (Object)adaptor.becomeRoot(string_literal4_tree, root_0); } pushFollow(FOLLOW_s_in_r_c158); target=s(); _fsp--; if (failed) return retval; if ( backtracking==0 ) adaptor.addChild(root_0, target.getTree()); if ( backtracking==0 ) { Secret cur_policy = new Secret(); cur_policy.addSource(source.getText()); for(String s : target.id_list) cur_policy.addTarget(s); policies.addSecret(cur_policy); } pushFollow(FOLLOW_eol_in_r_c168); eol5=eol(); _fsp--; if (failed) return retval; if ( backtracking==0 ) adaptor.addChild(root_0, eol5.getTree()); } retval.stop = input.LT(-1); if ( backtracking==0 ) { retval.tree = (Object)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { } return retval; } // $ANTLR end r_c public static class r_p_return extends ParserRuleReturnScope { Object tree; public Object getTree() { return tree; } }; // $ANTLR start r_p // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:70:1: r_p : sources= s 'strict secret' eol ; public final r_p_return r_p() throws RecognitionException { r_p_return retval = new r_p_return(); retval.start = input.LT(1); Object root_0 = null; Token string_literal6=null; s_return sources = null; eol_return eol7 = null; Object string_literal6_tree=null; try { // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:70:5: (sources= s 'strict secret' eol ) // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:71:3: sources= s 'strict secret' eol { root_0 = (Object)adaptor.nil(); pushFollow(FOLLOW_s_in_r_p186); sources=s(); _fsp--; if (failed) return retval; if ( backtracking==0 ) adaptor.addChild(root_0, sources.getTree()); string_literal6=(Token)input.LT(1); match(input,12,FOLLOW_12_in_r_p188); if (failed) return retval; if ( backtracking==0 ) { string_literal6_tree = (Object)adaptor.create(string_literal6); root_0 = (Object)adaptor.becomeRoot(string_literal6_tree, root_0); } if ( backtracking==0 ) { for(String s : sources.id_list) policies.addStrictSecret(s); } pushFollow(FOLLOW_eol_in_r_p197); eol7=eol(); _fsp--; if (failed) return retval; if ( backtracking==0 ) adaptor.addChild(root_0, eol7.getTree()); } retval.stop = input.LT(-1); if ( backtracking==0 ) { retval.tree = (Object)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { } return retval; } // $ANTLR end r_p public static class t_return extends ParserRuleReturnScope { public Vector t_list; Object tree; public Object getTree() { return tree; } }; // $ANTLR start t // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:79:1: t returns [Vector t_list] : (res_cp= s | res_st= ( 'Static' | 'IO' | 'Exception' ) ) ( COMMA res_rec= t )* ; public final t_return t() throws RecognitionException { t_return retval = new t_return(); retval.start = input.LT(1); Object root_0 = null; Token res_st=null; Token COMMA8=null; s_return res_cp = null; t_return res_rec = null; Object res_st_tree=null; Object COMMA8_tree=null; try { // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:80:2: ( (res_cp= s | res_st= ( 'Static' | 'IO' | 'Exception' ) ) ( COMMA res_rec= t )* ) // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:81:3: (res_cp= s | res_st= ( 'Static' | 'IO' | 'Exception' ) ) ( COMMA res_rec= t )* { root_0 = (Object)adaptor.nil(); if ( backtracking==0 ) { retval.t_list = new Vector(); } // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:84:3: (res_cp= s | res_st= ( 'Static' | 'IO' | 'Exception' ) ) int alt2=2; int LA2_0 = input.LA(1); if ( (LA2_0==IDENTIFIER) ) { alt2=1; } else if ( ((LA2_0>=13 && LA2_0<=15)) ) { alt2=2; } else { if (backtracking>0) {failed=true; return retval;} NoViableAltException nvae = new NoViableAltException("84:3: (res_cp= s | res_st= ( 'Static' | 'IO' | 'Exception' ) )", 2, 0, input); throw nvae; } switch (alt2) { case 1 : // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:84:4: res_cp= s { pushFollow(FOLLOW_s_in_t223); res_cp=s(); _fsp--; if (failed) return retval; if ( backtracking==0 ) adaptor.addChild(root_0, res_cp.getTree()); if ( backtracking==0 ) { for(String s : res_cp.id_list) retval.t_list.add(s); } } break; case 2 : // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:89:4: res_st= ( 'Static' | 'IO' | 'Exception' ) { res_st=(Token)input.LT(1); if ( (input.LA(1)>=13 && input.LA(1)<=15) ) { input.consume(); if ( backtracking==0 ) adaptor.addChild(root_0, adaptor.create(res_st)); errorRecovery=false;failed=false; } else { if (backtracking>0) {failed=true; return retval;} MismatchedSetException mse = new MismatchedSetException(null,input); recoverFromMismatchedSet(input,mse,FOLLOW_set_in_t234); throw mse; } if ( backtracking==0 ) { retval.t_list.add(res_st.getText()); } } break; } // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:94:3: ( COMMA res_rec= t )* loop3: do { int alt3=2; int LA3_0 = input.LA(1); if ( (LA3_0==COMMA) ) { int LA3_2 = input.LA(2); if ( (synpred5()) ) { alt3=1; } } switch (alt3) { case 1 : // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:94:4: COMMA res_rec= t { COMMA8=(Token)input.LT(1); match(input,COMMA,FOLLOW_COMMA_in_t253); if (failed) return retval; pushFollow(FOLLOW_t_in_t261); res_rec=t(); _fsp--; if (failed) return retval; if ( backtracking==0 ) adaptor.addChild(root_0, res_rec.getTree()); if ( backtracking==0 ) { retval.t_list.addAll(res_rec.t_list); } } break; default : break loop3; } } while (true); } retval.stop = input.LT(-1); if ( backtracking==0 ) { retval.tree = (Object)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { } return retval; } // $ANTLR end t public static class policy_return extends ParserRuleReturnScope { Object tree; public Object getTree() { return tree; } }; // $ANTLR start policy // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:103:1: policy : ( r_c | r_s | r_p )+ ; public final policy_return policy() throws RecognitionException { policy_return retval = new policy_return(); retval.start = input.LT(1); Object root_0 = null; r_c_return r_c9 = null; r_s_return r_s10 = null; r_p_return r_p11 = null; try { // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:103:8: ( ( r_c | r_s | r_p )+ ) // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:103:10: ( r_c | r_s | r_p )+ { root_0 = (Object)adaptor.nil(); // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:103:10: ( r_c | r_s | r_p )+ int cnt4=0; loop4: do { int alt4=4; int LA4_0 = input.LA(1); if ( (LA4_0==IDENTIFIER) ) { switch ( input.LA(2) ) { case 11: { alt4=1; } break; case COMMA: { int LA4_4 = input.LA(3); if ( (LA4_4==IDENTIFIER) ) { switch ( input.LA(4) ) { case COMMA: { int LA4_8 = input.LA(5); if ( (synpred7()) ) { alt4=2; } else if ( (synpred8()) ) { alt4=3; } } break; case 12: { alt4=3; } break; case 10: { alt4=2; } break; } } } break; case 12: { alt4=3; } break; case 10: { alt4=2; } break; } } switch (alt4) { case 1 : // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:103:11: r_c { pushFollow(FOLLOW_r_c_in_policy284); r_c9=r_c(); _fsp--; if (failed) return retval; if ( backtracking==0 ) adaptor.addChild(root_0, r_c9.getTree()); } break; case 2 : // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:103:15: r_s { pushFollow(FOLLOW_r_s_in_policy286); r_s10=r_s(); _fsp--; if (failed) return retval; if ( backtracking==0 ) adaptor.addChild(root_0, r_s10.getTree()); } break; case 3 : // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:103:19: r_p { pushFollow(FOLLOW_r_p_in_policy288); r_p11=r_p(); _fsp--; if (failed) return retval; if ( backtracking==0 ) adaptor.addChild(root_0, r_p11.getTree()); } break; default : if ( cnt4 >= 1 ) break loop4; if (backtracking>0) {failed=true; return retval;} EarlyExitException eee = new EarlyExitException(4, input); throw eee; } cnt4++; } while (true); } retval.stop = input.LT(-1); if ( backtracking==0 ) { retval.tree = (Object)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { } return retval; } // $ANTLR end policy public static class eol_return extends ParserRuleReturnScope { Object tree; public Object getTree() { return tree; } }; // $ANTLR start eol // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:106:1: eol : EOL ; public final eol_return eol() throws RecognitionException { eol_return retval = new eol_return(); retval.start = input.LT(1); Object root_0 = null; Token EOL12=null; Object EOL12_tree=null; try { // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:107:2: ( EOL ) // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:108:3: EOL { root_0 = (Object)adaptor.nil(); EOL12=(Token)input.LT(1); match(input,EOL,FOLLOW_EOL_in_eol306); if (failed) return retval; if ( backtracking==0 ) { } } retval.stop = input.LT(-1); if ( backtracking==0 ) { retval.tree = (Object)adaptor.rulePostProcessing(root_0); adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); } } catch (RecognitionException re) { reportError(re); recover(input,re); } finally { } return retval; } // $ANTLR end eol // $ANTLR start synpred1 public final void synpred1_fragment() throws RecognitionException { // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:33:5: ( COMMA s ) // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:33:5: COMMA s { match(input,COMMA,FOLLOW_COMMA_in_synpred187); if (failed) return ; pushFollow(FOLLOW_s_in_synpred196); s(); _fsp--; if (failed) return ; } } // $ANTLR end synpred1 // $ANTLR start synpred5 public final void synpred5_fragment() throws RecognitionException { // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:94:4: ( COMMA t ) // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:94:4: COMMA t { match(input,COMMA,FOLLOW_COMMA_in_synpred5253); if (failed) return ; pushFollow(FOLLOW_t_in_synpred5261); t(); _fsp--; if (failed) return ; } } // $ANTLR end synpred5 // $ANTLR start synpred7 public final void synpred7_fragment() throws RecognitionException { // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:103:15: ( r_s ) // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:103:15: r_s { pushFollow(FOLLOW_r_s_in_synpred7286); r_s(); _fsp--; if (failed) return ; } } // $ANTLR end synpred7 // $ANTLR start synpred8 public final void synpred8_fragment() throws RecognitionException { // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:103:19: ( r_p ) // /home/glibersat/FAC/MRI/SEE/STANdsl/STAN/src/fr/lifl/stc/stan/dsl/dsl.g:103:19: r_p { pushFollow(FOLLOW_r_p_in_synpred8288); r_p(); _fsp--; if (failed) return ; } } // $ANTLR end synpred8 public final boolean synpred7() { backtracking++; int start = input.mark(); try { synpred7_fragment(); // can never throw exception } catch (RecognitionException re) { System.err.println("impossible: "+re); } boolean success = !failed; input.rewind(start); backtracking--; failed=false; return success; } public final boolean synpred1() { backtracking++; int start = input.mark(); try { synpred1_fragment(); // can never throw exception } catch (RecognitionException re) { System.err.println("impossible: "+re); } boolean success = !failed; input.rewind(start); backtracking--; failed=false; return success; } public final boolean synpred5() { backtracking++; int start = input.mark(); try { synpred5_fragment(); // can never throw exception } catch (RecognitionException re) { System.err.println("impossible: "+re); } boolean success = !failed; input.rewind(start); backtracking--; failed=false; return success; } public final boolean synpred8() { backtracking++; int start = input.mark(); try { synpred8_fragment(); // can never throw exception } catch (RecognitionException re) { System.err.println("impossible: "+re); } boolean success = !failed; input.rewind(start); backtracking--; failed=false; return success; } public static final BitSet FOLLOW_IDENTIFIER_in_s75 = new BitSet(new long[]{0x0000000000000022L}); public static final BitSet FOLLOW_COMMA_in_s87 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_s_in_s96 = new BitSet(new long[]{0x0000000000000022L}); public static final BitSet FOLLOW_s_in_r_s120 = new BitSet(new long[]{0x0000000000000400L}); public static final BitSet FOLLOW_10_in_r_s122 = new BitSet(new long[]{0x000000000000E010L}); public static final BitSet FOLLOW_t_in_r_s127 = new BitSet(new long[]{0x0000000000000040L}); public static final BitSet FOLLOW_eol_in_r_s135 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_IDENTIFIER_in_r_c151 = new BitSet(new long[]{0x0000000000000800L}); public static final BitSet FOLLOW_11_in_r_c153 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_s_in_r_c158 = new BitSet(new long[]{0x0000000000000040L}); public static final BitSet FOLLOW_eol_in_r_c168 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_s_in_r_p186 = new BitSet(new long[]{0x0000000000001000L}); public static final BitSet FOLLOW_12_in_r_p188 = new BitSet(new long[]{0x0000000000000040L}); public static final BitSet FOLLOW_eol_in_r_p197 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_s_in_t223 = new BitSet(new long[]{0x0000000000000022L}); public static final BitSet FOLLOW_set_in_t234 = new BitSet(new long[]{0x0000000000000022L}); public static final BitSet FOLLOW_COMMA_in_t253 = new BitSet(new long[]{0x000000000000E010L}); public static final BitSet FOLLOW_t_in_t261 = new BitSet(new long[]{0x0000000000000022L}); public static final BitSet FOLLOW_r_c_in_policy284 = new BitSet(new long[]{0x0000000000000012L}); public static final BitSet FOLLOW_r_s_in_policy286 = new BitSet(new long[]{0x0000000000000012L}); public static final BitSet FOLLOW_r_p_in_policy288 = new BitSet(new long[]{0x0000000000000012L}); public static final BitSet FOLLOW_EOL_in_eol306 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_COMMA_in_synpred187 = new BitSet(new long[]{0x0000000000000010L}); public static final BitSet FOLLOW_s_in_synpred196 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_COMMA_in_synpred5253 = new BitSet(new long[]{0x000000000000E010L}); public static final BitSet FOLLOW_t_in_synpred5261 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_r_s_in_synpred7286 = new BitSet(new long[]{0x0000000000000002L}); public static final BitSet FOLLOW_r_p_in_synpred8288 = new BitSet(new long[]{0x0000000000000002L}); }