docs: public final EObject ruleConditionalBranch() throws RecognitionException {
          EObject current = null;
  
          Token otherlv_2=null;
          Token otherlv_4=null;
          EObject this_UnorderedGroup_0 = null;
  
          EObject lv_guardCondition_3_0 = null;
  
          EObject lv_elements_5_0 = null;
  
  
  
          	enterRule();
  
          try {
              // InternalXtext.g:1048:2: ( (this_UnorderedGroup_0= ruleUnorderedGroup | ( () otherlv_2= '<' ( (lv_guardCondition_3_0= ruleDisjunction ) ) otherlv_4= '>' ( (lv_elements_5_0= ruleAbstractToken ) )+ ) ) )
              // InternalXtext.g:1049:2: (this_UnorderedGroup_0= ruleUnorderedGroup | ( () otherlv_2= '<' ( (lv_guardCondition_3_0= ruleDisjunction ) ) otherlv_4= '>' ( (lv_elements_5_0= ruleAbstractToken ) )+ ) )
              {
              // InternalXtext.g:1049:2: (this_UnorderedGroup_0= ruleUnorderedGroup | ( () otherlv_2= '<' ( (lv_guardCondition_3_0= ruleDisjunction ) ) otherlv_4= '>' ( (lv_elements_5_0= ruleAbstractToken ) )+ ) )
              int alt28=2;
              int LA28_0 = input.LA(1);
  
              if ( ((LA28_0>=RULE_STRING && LA28_0<=RULE_ID)||LA28_0==15||LA28_0==34||(LA28_0>=39 && LA28_0<=40)||(LA28_0>=42 && LA28_0<=43)) ) {
                  alt28=1;
              }
              else if ( (LA28_0==27) ) {
                  alt28=2;
              }
              else {
                  NoViableAltException nvae =
                      new NoViableAltException("", 28, 0, input);
  
                  throw nvae;
              }
              switch (alt28) {
                  case 1 :
                      // InternalXtext.g:1050:3: this_UnorderedGroup_0= ruleUnorderedGroup
                      {
  
                      			newCompositeNode(grammarAccess.getConditionalBranchAccess().getUnorderedGroupParserRuleCall_0());
                      		
                      pushFollow(FollowSets000.FOLLOW_2);
                      this_UnorderedGroup_0=ruleUnorderedGroup();
  
                      state._fsp--;
  
  
                      			current = this_UnorderedGroup_0;
                      			afterParserOrEnumRuleCall();
                      		
  
                      }
                      break;
                  case 2 :
                      // InternalXtext.g:1059:3: ( () otherlv_2= '<' ( (lv_guardCondition_3_0= ruleDisjunction ) ) otherlv_4= '>' ( (lv_elements_5_0= ruleAbstractToken ) )+ )
                      {
                      // InternalXtext.g:1059:3: ( () otherlv_2= '<' ( (lv_guardCondition_3_0= ruleDisjunction ) ) otherlv_4= '>' ( (lv_elements_5_0= ruleAbstractToken ) )+ )
                      // InternalXtext.g:1060:4: () otherlv_2= '<' ( (lv_guardCondition_3_0= ruleDisjunction ) ) otherlv_4= '>' ( (lv_elements_5_0= ruleAbstractToken ) )+
                      {
                      // InternalXtext.g:1060:4: ()
                      // InternalXtext.g:1061:5: 
                      {
  
                      					current = forceCreateModelElement(
                      						grammarAccess.getConditionalBranchAccess().getGroupAction_1_0(),
                      						current);
                      				
  
                      }
  
                      otherlv_2=(Token)match(input,27,FollowSets000.FOLLOW_26); 
  
                      				newLeafNode(otherlv_2, grammarAccess.getConditionalBranchAccess().getLessThanSignKeyword_1_1());
                      			
                      // InternalXtext.g:1071:4: ( (lv_guardCondition_3_0= ruleDisjunction ) )
                      // InternalXtext.g:1072:5: (lv_guardCondition_3_0= ruleDisjunction )
                      {
                      // InternalXtext.g:1072:5: (lv_guardCondition_3_0= ruleDisjunction )
                      // InternalXtext.g:1073:6: lv_guardCondition_3_0= ruleDisjunction
                      {
  
                      						newCompositeNode(grammarAccess.getConditionalBranchAccess().getGuardConditionDisjunctionParserRuleCall_1_2_0());
                      					
                      pushFollow(FollowSets000.FOLLOW_27);
                      lv_guardCondition_3_0=ruleDisjunction();
  
                      state._fsp--;
  
  
                      						if (current==null) {
                      							current = createModelElementForParent(grammarAccess.getConditionalBranchRule());
                      						}
                      						set(
                      							current,
                      							"guardCondition",
                      							lv_guardCondition_3_0,
                      							"org.eclipse.xtext.Xtext.Disjunction");
                      						afterParserOrEnumRuleCall();
                      					
  
                      }
  
  
                      }
  
                      otherlv_4=(Token)match(input,28,FollowSets000.FOLLOW_28); 
  
                      				newLeafNode(otherlv_4, grammarAccess.getConditionalBranchAccess().getGreaterThanSignKeyword_1_3());
                      			
                      // InternalXtext.g:1094:4: ( (lv_elements_5_0= ruleAbstractToken ) )+
                      int cnt27=0;
                      loop27:
                      do {
                          int alt27=2;
                          int LA27_0 = input.LA(1);
  
                          if ( ((LA27_0>=RULE_STRING && LA27_0<=RULE_ID)||LA27_0==15||LA27_0==34||(LA27_0>=39 && LA27_0<=40)||(LA27_0>=42 && LA27_0<=43)) ) {
                              alt27=1;
                          }
  
  
                          switch (alt27) {
                      	case 1 :
                      	    // InternalXtext.g:1095:5: (lv_elements_5_0= ruleAbstractToken )
                      	    {
                      	    // InternalXtext.g:1095:5: (lv_elements_5_0= ruleAbstractToken )
                      	    // InternalXtext.g:1096:6: lv_elements_5_0= ruleAbstractToken
                      	    {
  
                      	    						newCompositeNode(grammarAccess.getConditionalBranchAccess().getElementsAbstractTokenParserRuleCall_1_4_0());
                      	    					
                      	    pushFollow(FollowSets000.FOLLOW_29);
                      	    lv_elements_5_0=ruleAbstractToken();
  
                      	    state._fsp--;
  
  
                      	    						if (current==null) {
                      	    							current = createModelElementForParent(grammarAccess.getConditionalBranchRule());
                      	    						}
                      	    						add(
                      	    							current,
                      	    							"elements",
                      	    							lv_elements_5_0,
                      	    							"org.eclipse.xtext.Xtext.AbstractToken");
                      	    						afterParserOrEnumRuleCall();
                      	    					
  
                      	    }
  
  
                      	    }
                      	    break;
  
                      	default :
                      	    if ( cnt27 >= 1 ) break loop27;
                                  EarlyExitException eee =
                                      new EarlyExitException(27, input);
                                  throw eee;
                          }
                          cnt27++;
                      } while (true);
  
  
                      }
  
  
                      }
                      break;
  
              }
  
  
              }
  
  
              	leaveRule();
  
          }
  
              catch (RecognitionException re) {
                  recover(input,re);
                  appendSkippedTokens();
              }
          finally {
          }
          return current;
      }