whole_func_string: function() {
      const result = this.token;
      if (result == this.tok.T_FINAL) {
        this.next();
        return [0, 0, 2];
      } else if (result == this.tok.T_ABSTRACT) {
        this.next();
        return [0, 0, 1];
      }
      return [0, 0, 0];
    }
func_code_string: function() {
      const result = this.token;
      if (result == this.tok.T_FINAL) {
        this.next();
        return [0, 0, 2];
      } else if (result == this.tok.T_ABSTRACT) {
        this.next();
        return [0, 0, 1];
      }
      return [0, 0, 0];
    }
func_documentation_string: Read the class visibility
  ```ebnf
  class_scope ::= (T_FINAL | T_ABSTRACT)?
  ```