// $ANTLR start "entryRuleNodeRoot"
  // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parsetree/reconstr/parser/antlr/internal/InternalPartialSerializationTestLanguage.g:97:1: entryRuleNodeRoot returns [EObject current=null] : iv_ruleNodeRoot= ruleNodeRoot EOF ;
  public final EObject entryRuleNodeRoot() throws RecognitionException {
    EObject current = null;

    EObject iv_ruleNodeRoot = null;

    try {
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parsetree/reconstr/parser/antlr/internal/InternalPartialSerializationTestLanguage.g:98:2: (iv_ruleNodeRoot= ruleNodeRoot EOF )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parsetree/reconstr/parser/antlr/internal/InternalPartialSerializationTestLanguage.g:99:2: iv_ruleNodeRoot= ruleNodeRoot EOF
      {
        newCompositeNode(grammarAccess.getNodeRootRule());
        pushFollow(FollowSets000.FOLLOW_ruleNodeRoot_in_entryRuleNodeRoot165);
        iv_ruleNodeRoot = ruleNodeRoot();

        state._fsp--;

        current = iv_ruleNodeRoot;
        match(input, EOF, FollowSets000.FOLLOW_EOF_in_entryRuleNodeRoot175);
      }

    } catch (RecognitionException re) {
      recover(input, re);
      appendSkippedTokens();
    } finally {
    }
    return current;
  }
  // $ANTLR start "ruleNodeRoot"
  // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parsetree/reconstr/parser/antlr/internal/InternalPartialSerializationTestLanguage.g:106:1: ruleNodeRoot returns [EObject current=null] : (otherlv_0= '#1' ( (lv_node_1_0= ruleNode ) ) ) ;
  public final EObject ruleNodeRoot() throws RecognitionException {
    EObject current = null;

    Token otherlv_0 = null;
    EObject lv_node_1_0 = null;

    enterRule();

    try {
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parsetree/reconstr/parser/antlr/internal/InternalPartialSerializationTestLanguage.g:109:28: ( (otherlv_0= '#1' ( (lv_node_1_0= ruleNode ) ) ) )
      // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parsetree/reconstr/parser/antlr/internal/InternalPartialSerializationTestLanguage.g:110:1: (otherlv_0= '#1' ( (lv_node_1_0= ruleNode ) ) )
      {
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parsetree/reconstr/parser/antlr/internal/InternalPartialSerializationTestLanguage.g:110:1: (otherlv_0= '#1' ( (lv_node_1_0= ruleNode ) ) )
        // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parsetree/reconstr/parser/antlr/internal/InternalPartialSerializationTestLanguage.g:110:3: otherlv_0= '#1' ( (lv_node_1_0= ruleNode ) )
        {
          otherlv_0 = (Token) match(input, 11, FollowSets000.FOLLOW_11_in_ruleNodeRoot212);

          newLeafNode(
              otherlv_0, grammarAccess.getNodeRootAccess().getNumberSignDigitOneKeyword_0());

          // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parsetree/reconstr/parser/antlr/internal/InternalPartialSerializationTestLanguage.g:114:1: ( (lv_node_1_0= ruleNode ) )
          // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parsetree/reconstr/parser/antlr/internal/InternalPartialSerializationTestLanguage.g:115:1: (lv_node_1_0= ruleNode )
          {
            // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parsetree/reconstr/parser/antlr/internal/InternalPartialSerializationTestLanguage.g:115:1: (lv_node_1_0= ruleNode )
            // ../org.eclipse.xtext.tests/src-gen/org/eclipse/xtext/parsetree/reconstr/parser/antlr/internal/InternalPartialSerializationTestLanguage.g:116:3: lv_node_1_0= ruleNode
            {
              newCompositeNode(grammarAccess.getNodeRootAccess().getNodeNodeParserRuleCall_1_0());

              pushFollow(FollowSets000.FOLLOW_ruleNode_in_ruleNodeRoot233);
              lv_node_1_0 = ruleNode();

              state._fsp--;

              if (current == null) {
                current = createModelElementForParent(grammarAccess.getNodeRootRule());
              }
              set(current, "node", lv_node_1_0, "Node");
              afterParserOrEnumRuleCall();
            }
          }
        }
      }

      leaveRule();
    } catch (RecognitionException re) {
      recover(input, re);
      appendSkippedTokens();
    } finally {
    }
    return current;
  }