whole_func_string: function Node(t, init) {
      var token = t.token;
      if (token) {
          // If init.type exists it will override token.type.
          this.type = token.type;
          this.value = token.value;
          this.lineno = token.lineno;
  
          // Start and end are file positions for error handling.
          this.start = token.start;
          this.end = token.end;
      } else {
          this.lineno = t.lineno;
      }
  
      // Node uses a tokenizer for debugging (getSource, filename getter).
      this.tokenizer = t;
      this.children = [];
  
      for (var prop in init)
          this[prop] = init[prop];
  }
func_code_string: function Node(t, init) {
      var token = t.token;
      if (token) {
          // If init.type exists it will override token.type.
          this.type = token.type;
          this.value = token.value;
          this.lineno = token.lineno;
  
          // Start and end are file positions for error handling.
          this.start = token.start;
          this.end = token.end;
      } else {
          this.lineno = t.lineno;
      }
  
      // Node uses a tokenizer for debugging (getSource, filename getter).
      this.tokenizer = t;
      this.children = [];
  
      for (var prop in init)
          this[prop] = init[prop];
  }
func_documentation_string: /*
  Node :: (tokenizer, optional init object) -> node