docs: public final EObject ruleXCollectionLiteral() throws RecognitionException {
          EObject current = null;
  
          EObject this_XSetLiteral_0 = null;
  
          EObject this_XListLiteral_1 = null;
  
  
  
          	enterRule();
  
          try {
              // InternalSARL.g:13749:2: ( (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) )
              // InternalSARL.g:13750:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
              {
              // InternalSARL.g:13750:2: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
              int alt326=2;
              int LA326_0 = input.LA(1);
  
              if ( (LA326_0==106) ) {
                  int LA326_1 = input.LA(2);
  
                  if ( (LA326_1==55) ) {
                      alt326=2;
                  }
                  else if ( (LA326_1==29) ) {
                      alt326=1;
                  }
                  else {
                      if (state.backtracking>0) {state.failed=true; return current;}
                      NoViableAltException nvae =
                          new NoViableAltException("", 326, 1, input);
  
                      throw nvae;
                  }
              }
              else {
                  if (state.backtracking>0) {state.failed=true; return current;}
                  NoViableAltException nvae =
                      new NoViableAltException("", 326, 0, input);
  
                  throw nvae;
              }
              switch (alt326) {
                  case 1 :
                      // InternalSARL.g:13751:3: this_XSetLiteral_0= ruleXSetLiteral
                      {
                      if ( state.backtracking==0 ) {
  
                        			newCompositeNode(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0());
                        		
                      }
                      pushFollow(FOLLOW_2);
                      this_XSetLiteral_0=ruleXSetLiteral();
  
                      state._fsp--;
                      if (state.failed) return current;
                      if ( state.backtracking==0 ) {
  
                        			current = this_XSetLiteral_0;
                        			afterParserOrEnumRuleCall();
                        		
                      }
  
                      }
                      break;
                  case 2 :
                      // InternalSARL.g:13760:3: this_XListLiteral_1= ruleXListLiteral
                      {
                      if ( state.backtracking==0 ) {
  
                        			newCompositeNode(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1());
                        		
                      }
                      pushFollow(FOLLOW_2);
                      this_XListLiteral_1=ruleXListLiteral();
  
                      state._fsp--;
                      if (state.failed) return current;
                      if ( state.backtracking==0 ) {
  
                        			current = this_XListLiteral_1;
                        			afterParserOrEnumRuleCall();
                        		
                      }
  
                      }
                      break;
  
              }
  
  
              }
  
              if ( state.backtracking==0 ) {
  
                	leaveRule();
  
              }
          }
  
              catch (RecognitionException re) {
                  recover(input,re);
                  appendSkippedTokens();
              }
          finally {
          }
          return current;
      }