docs: public final EObject ruleNegatedToken() throws RecognitionException {
          EObject current = null;
  
          Token otherlv_0=null;
          EObject lv_terminal_1_0 = null;
  
  
  
          	enterRule();
  
          try {
              // InternalXtext.g:3336:2: ( (otherlv_0= '!' ( (lv_terminal_1_0= ruleTerminalTokenElement ) ) ) )
              // InternalXtext.g:3337:2: (otherlv_0= '!' ( (lv_terminal_1_0= ruleTerminalTokenElement ) ) )
              {
              // InternalXtext.g:3337:2: (otherlv_0= '!' ( (lv_terminal_1_0= ruleTerminalTokenElement ) ) )
              // InternalXtext.g:3338:3: otherlv_0= '!' ( (lv_terminal_1_0= ruleTerminalTokenElement ) )
              {
              otherlv_0=(Token)match(input,41,FollowSets000.FOLLOW_47); 
  
              			newLeafNode(otherlv_0, grammarAccess.getNegatedTokenAccess().getExclamationMarkKeyword_0());
              		
              // InternalXtext.g:3342:3: ( (lv_terminal_1_0= ruleTerminalTokenElement ) )
              // InternalXtext.g:3343:4: (lv_terminal_1_0= ruleTerminalTokenElement )
              {
              // InternalXtext.g:3343:4: (lv_terminal_1_0= ruleTerminalTokenElement )
              // InternalXtext.g:3344:5: lv_terminal_1_0= ruleTerminalTokenElement
              {
  
              					newCompositeNode(grammarAccess.getNegatedTokenAccess().getTerminalTerminalTokenElementParserRuleCall_1_0());
              				
              pushFollow(FollowSets000.FOLLOW_2);
              lv_terminal_1_0=ruleTerminalTokenElement();
  
              state._fsp--;
  
  
              					if (current==null) {
              						current = createModelElementForParent(grammarAccess.getNegatedTokenRule());
              					}
              					set(
              						current,
              						"terminal",
              						lv_terminal_1_0,
              						"org.eclipse.xtext.Xtext.TerminalTokenElement");
              					afterParserOrEnumRuleCall();
              				
  
              }
  
  
              }
  
  
              }
  
  
              }
  
  
              	leaveRule();
  
          }
  
              catch (RecognitionException re) {
                  recover(input,re);
                  appendSkippedTokens();
              }
          finally {
          }
          return current;
      }