whole_func_string: function(token) {
      const body = this.node("block");
      const items = [];
      if (this.expect(":")) this.next();
      while (this.token != this.EOF && this.token !== token) {
        items.push(this.read_inner_statement());
      }
      if (this.expect(token)) this.next();
      this.expectEndOfStatement();
      return body(null, items);
    }
func_code_string: function(token) {
      const body = this.node("block");
      const items = [];
      if (this.expect(":")) this.next();
      while (this.token != this.EOF && this.token !== token) {
        items.push(this.read_inner_statement());
      }
      if (this.expect(token)) this.next();
      this.expectEndOfStatement();
      return body(null, items);
    }
func_documentation_string: Reads a short form of tokens
  @param {Number} token - The ending token
  @return {Block}