code: function() {
      if (
        this.token === this.tok.T_NS_SEPARATOR ||
        this.token === this.tok.T_STRING ||
        this.token === this.tok.T_NAMESPACE
      ) {
        let result = this.read_namespace_name(true);
        if (this.token === this.tok.T_DOUBLE_COLON) {
          result = this.read_static_getter(result);
        }
        return result;
      } else if (this.is("VARIABLE")) {
        return this.read_variable(true, false, false);
      } else {
        this.expect([this.tok.T_STRING, "VARIABLE"]);
      }
    }
docs: Reads a class name
  ```ebnf
  read_new_class_name ::= namespace_name | variable
  ```