whole_func_string: function(typed) {
      const result = [this.read_use_declaration(typed)];
      while (this.token === ",") {
        this.next();
        if (typed) {
          if (
            this.token !== this.tok.T_FUNCTION &&
            this.token !== this.tok.T_CONST &&
            this.token !== this.tok.T_STRING
          ) {
            break;
          }
        } else if (
          this.token !== this.tok.T_STRING &&
          this.token !== this.tok.T_NS_SEPARATOR
        ) {
          break;
        }
        result.push(this.read_use_declaration(typed));
      }
      return result;
    }
func_code_string: function(typed) {
      const result = [this.read_use_declaration(typed)];
      while (this.token === ",") {
        this.next();
        if (typed) {
          if (
            this.token !== this.tok.T_FUNCTION &&
            this.token !== this.tok.T_CONST &&
            this.token !== this.tok.T_STRING
          ) {
            break;
          }
        } else if (
          this.token !== this.tok.T_STRING &&
          this.token !== this.tok.T_NS_SEPARATOR
        ) {
          break;
        }
        result.push(this.read_use_declaration(typed));
      }
      return result;
    }
func_documentation_string: Reads a list of use declarations
  ```ebnf
  use_declarations ::= use_declaration (',' use_declaration)*
  ```
  @see https://github.com/php/php-src/blob/master/Zend/zend_language_parser.y#L380
  @return {UseItem[]}