docs: public final AntlrDatatypeRuleToken ruleCommonModifier() throws RecognitionException {
          AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
  
          Token kw=null;
  
  
          	enterRule();
  
          try {
              // InternalSARL.g:9674:2: ( (kw= 'public' | kw= 'private' | kw= 'protected' | kw= 'package' | kw= 'abstract' | kw= 'static' | kw= 'dispatch' | kw= 'final' | kw= 'strictfp' | kw= 'native' | kw= 'volatile' | kw= 'synchronized' | kw= 'transient' ) )
              // InternalSARL.g:9675:2: (kw= 'public' | kw= 'private' | kw= 'protected' | kw= 'package' | kw= 'abstract' | kw= 'static' | kw= 'dispatch' | kw= 'final' | kw= 'strictfp' | kw= 'native' | kw= 'volatile' | kw= 'synchronized' | kw= 'transient' )
              {
              // InternalSARL.g:9675:2: (kw= 'public' | kw= 'private' | kw= 'protected' | kw= 'package' | kw= 'abstract' | kw= 'static' | kw= 'dispatch' | kw= 'final' | kw= 'strictfp' | kw= 'native' | kw= 'volatile' | kw= 'synchronized' | kw= 'transient' )
              int alt252=13;
              switch ( input.LA(1) ) {
              case 78:
                  {
                  alt252=1;
                  }
                  break;
              case 79:
                  {
                  alt252=2;
                  }
                  break;
              case 80:
                  {
                  alt252=3;
                  }
                  break;
              case 25:
                  {
                  alt252=4;
                  }
                  break;
              case 81:
                  {
                  alt252=5;
                  }
                  break;
              case 82:
                  {
                  alt252=6;
                  }
                  break;
              case 83:
                  {
                  alt252=7;
                  }
                  break;
              case 84:
                  {
                  alt252=8;
                  }
                  break;
              case 85:
                  {
                  alt252=9;
                  }
                  break;
              case 86:
                  {
                  alt252=10;
                  }
                  break;
              case 87:
                  {
                  alt252=11;
                  }
                  break;
              case 88:
                  {
                  alt252=12;
                  }
                  break;
              case 89:
                  {
                  alt252=13;
                  }
                  break;
              default:
                  if (state.backtracking>0) {state.failed=true; return current;}
                  NoViableAltException nvae =
                      new NoViableAltException("", 252, 0, input);
  
                  throw nvae;
              }
  
              switch (alt252) {
                  case 1 :
                      // InternalSARL.g:9676:3: kw= 'public'
                      {
                      kw=(Token)match(input,78,FOLLOW_2); if (state.failed) return current;
                      if ( state.backtracking==0 ) {
  
                        			current.merge(kw);
                        			newLeafNode(kw, grammarAccess.getCommonModifierAccess().getPublicKeyword_0());
                        		
                      }
  
                      }
                      break;
                  case 2 :
                      // InternalSARL.g:9682:3: kw= 'private'
                      {
                      kw=(Token)match(input,79,FOLLOW_2); if (state.failed) return current;
                      if ( state.backtracking==0 ) {
  
                        			current.merge(kw);
                        			newLeafNode(kw, grammarAccess.getCommonModifierAccess().getPrivateKeyword_1());
                        		
                      }
  
                      }
                      break;
                  case 3 :
                      // InternalSARL.g:9688:3: kw= 'protected'
                      {
                      kw=(Token)match(input,80,FOLLOW_2); if (state.failed) return current;
                      if ( state.backtracking==0 ) {
  
                        			current.merge(kw);
                        			newLeafNode(kw, grammarAccess.getCommonModifierAccess().getProtectedKeyword_2());
                        		
                      }
  
                      }
                      break;
                  case 4 :
                      // InternalSARL.g:9694:3: kw= 'package'
                      {
                      kw=(Token)match(input,25,FOLLOW_2); if (state.failed) return current;
                      if ( state.backtracking==0 ) {
  
                        			current.merge(kw);
                        			newLeafNode(kw, grammarAccess.getCommonModifierAccess().getPackageKeyword_3());
                        		
                      }
  
                      }
                      break;
                  case 5 :
                      // InternalSARL.g:9700:3: kw= 'abstract'
                      {
                      kw=(Token)match(input,81,FOLLOW_2); if (state.failed) return current;
                      if ( state.backtracking==0 ) {
  
                        			current.merge(kw);
                        			newLeafNode(kw, grammarAccess.getCommonModifierAccess().getAbstractKeyword_4());
                        		
                      }
  
                      }
                      break;
                  case 6 :
                      // InternalSARL.g:9706:3: kw= 'static'
                      {
                      kw=(Token)match(input,82,FOLLOW_2); if (state.failed) return current;
                      if ( state.backtracking==0 ) {
  
                        			current.merge(kw);
                        			newLeafNode(kw, grammarAccess.getCommonModifierAccess().getStaticKeyword_5());
                        		
                      }
  
                      }
                      break;
                  case 7 :
                      // InternalSARL.g:9712:3: kw= 'dispatch'
                      {
                      kw=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
                      if ( state.backtracking==0 ) {
  
                        			current.merge(kw);
                        			newLeafNode(kw, grammarAccess.getCommonModifierAccess().getDispatchKeyword_6());
                        		
                      }
  
                      }
                      break;
                  case 8 :
                      // InternalSARL.g:9718:3: kw= 'final'
                      {
                      kw=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
                      if ( state.backtracking==0 ) {
  
                        			current.merge(kw);
                        			newLeafNode(kw, grammarAccess.getCommonModifierAccess().getFinalKeyword_7());
                        		
                      }
  
                      }
                      break;
                  case 9 :
                      // InternalSARL.g:9724:3: kw= 'strictfp'
                      {
                      kw=(Token)match(input,85,FOLLOW_2); if (state.failed) return current;
                      if ( state.backtracking==0 ) {
  
                        			current.merge(kw);
                        			newLeafNode(kw, grammarAccess.getCommonModifierAccess().getStrictfpKeyword_8());
                        		
                      }
  
                      }
                      break;
                  case 10 :
                      // InternalSARL.g:9730:3: kw= 'native'
                      {
                      kw=(Token)match(input,86,FOLLOW_2); if (state.failed) return current;
                      if ( state.backtracking==0 ) {
  
                        			current.merge(kw);
                        			newLeafNode(kw, grammarAccess.getCommonModifierAccess().getNativeKeyword_9());
                        		
                      }
  
                      }
                      break;
                  case 11 :
                      // InternalSARL.g:9736:3: kw= 'volatile'
                      {
                      kw=(Token)match(input,87,FOLLOW_2); if (state.failed) return current;
                      if ( state.backtracking==0 ) {
  
                        			current.merge(kw);
                        			newLeafNode(kw, grammarAccess.getCommonModifierAccess().getVolatileKeyword_10());
                        		
                      }
  
                      }
                      break;
                  case 12 :
                      // InternalSARL.g:9742:3: kw= 'synchronized'
                      {
                      kw=(Token)match(input,88,FOLLOW_2); if (state.failed) return current;
                      if ( state.backtracking==0 ) {
  
                        			current.merge(kw);
                        			newLeafNode(kw, grammarAccess.getCommonModifierAccess().getSynchronizedKeyword_11());
                        		
                      }
  
                      }
                      break;
                  case 13 :
                      // InternalSARL.g:9748:3: kw= 'transient'
                      {
                      kw=(Token)match(input,89,FOLLOW_2); if (state.failed) return current;
                      if ( state.backtracking==0 ) {
  
                        			current.merge(kw);
                        			newLeafNode(kw, grammarAccess.getCommonModifierAccess().getTransientKeyword_12());
                        		
                      }
  
                      }
                      break;
  
              }
  
  
              }
  
              if ( state.backtracking==0 ) {
  
                	leaveRule();
  
              }
          }
  
              catch (RecognitionException re) {
                  recover(input,re);
                  appendSkippedTokens();
              }
          finally {
          }
          return current;
      }