docs: public final EObject ruleNamedArgument() throws RecognitionException {
          EObject current = null;
  
          Token otherlv_0=null;
          Token lv_calledByName_1_0=null;
          EObject lv_value_2_0 = null;
  
  
  
          	enterRule();
  
          try {
              // InternalXtext.g:1657:2: ( ( ( ( (otherlv_0= RULE_ID ) ) ( (lv_calledByName_1_0= '=' ) ) )? ( (lv_value_2_0= ruleDisjunction ) ) ) )
              // InternalXtext.g:1658:2: ( ( ( (otherlv_0= RULE_ID ) ) ( (lv_calledByName_1_0= '=' ) ) )? ( (lv_value_2_0= ruleDisjunction ) ) )
              {
              // InternalXtext.g:1658:2: ( ( ( (otherlv_0= RULE_ID ) ) ( (lv_calledByName_1_0= '=' ) ) )? ( (lv_value_2_0= ruleDisjunction ) ) )
              // InternalXtext.g:1659:3: ( ( (otherlv_0= RULE_ID ) ) ( (lv_calledByName_1_0= '=' ) ) )? ( (lv_value_2_0= ruleDisjunction ) )
              {
              // InternalXtext.g:1659:3: ( ( (otherlv_0= RULE_ID ) ) ( (lv_calledByName_1_0= '=' ) ) )?
              int alt42=2;
              int LA42_0 = input.LA(1);
  
              if ( (LA42_0==RULE_ID) ) {
                  int LA42_1 = input.LA(2);
  
                  if ( (LA42_1==35) ) {
                      alt42=1;
                  }
              }
              switch (alt42) {
                  case 1 :
                      // InternalXtext.g:1660:4: ( (otherlv_0= RULE_ID ) ) ( (lv_calledByName_1_0= '=' ) )
                      {
                      // InternalXtext.g:1660:4: ( (otherlv_0= RULE_ID ) )
                      // InternalXtext.g:1661:5: (otherlv_0= RULE_ID )
                      {
                      // InternalXtext.g:1661:5: (otherlv_0= RULE_ID )
                      // InternalXtext.g:1662:6: otherlv_0= RULE_ID
                      {
  
                      						if (current==null) {
                      							current = createModelElement(grammarAccess.getNamedArgumentRule());
                      						}
                      					
                      otherlv_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_36); 
  
                      						newLeafNode(otherlv_0, grammarAccess.getNamedArgumentAccess().getParameterParameterCrossReference_0_0_0());
                      					
  
                      }
  
  
                      }
  
                      // InternalXtext.g:1673:4: ( (lv_calledByName_1_0= '=' ) )
                      // InternalXtext.g:1674:5: (lv_calledByName_1_0= '=' )
                      {
                      // InternalXtext.g:1674:5: (lv_calledByName_1_0= '=' )
                      // InternalXtext.g:1675:6: lv_calledByName_1_0= '='
                      {
                      lv_calledByName_1_0=(Token)match(input,35,FollowSets000.FOLLOW_26); 
  
                      						newLeafNode(lv_calledByName_1_0, grammarAccess.getNamedArgumentAccess().getCalledByNameEqualsSignKeyword_0_1_0());
                      					
  
                      						if (current==null) {
                      							current = createModelElement(grammarAccess.getNamedArgumentRule());
                      						}
                      						setWithLastConsumed(current, "calledByName", true, "=");
                      					
  
                      }
  
  
                      }
  
  
                      }
                      break;
  
              }
  
              // InternalXtext.g:1688:3: ( (lv_value_2_0= ruleDisjunction ) )
              // InternalXtext.g:1689:4: (lv_value_2_0= ruleDisjunction )
              {
              // InternalXtext.g:1689:4: (lv_value_2_0= ruleDisjunction )
              // InternalXtext.g:1690:5: lv_value_2_0= ruleDisjunction
              {
  
              					newCompositeNode(grammarAccess.getNamedArgumentAccess().getValueDisjunctionParserRuleCall_1_0());
              				
              pushFollow(FollowSets000.FOLLOW_2);
              lv_value_2_0=ruleDisjunction();
  
              state._fsp--;
  
  
              					if (current==null) {
              						current = createModelElementForParent(grammarAccess.getNamedArgumentRule());
              					}
              					set(
              						current,
              						"value",
              						lv_value_2_0,
              						"org.eclipse.xtext.Xtext.Disjunction");
              					afterParserOrEnumRuleCall();
              				
  
              }
  
  
              }
  
  
              }
  
  
              }
  
  
              	leaveRule();
  
          }
  
              catch (RecognitionException re) {
                  recover(input,re);
                  appendSkippedTokens();
              }
          finally {
          }
          return current;
      }