function(flags) {
    if (this.expect(this.tok.T_CONST)) {
      this.next();
    }
    const result = this.node("classconstant");
    const items = this.read_list(
      /**
       * Reads a constant declaration
       *
       * ```ebnf
       *  constant_declaration ::= (T_STRING | IDENTIFIER) '=' expr
       * ```
       * @return {Constant} [:link:](AST.md#constant)
       */
      function read_constant_declaration() {
        const result = this.node("constant");
        let constName = null;
        let value = null;
        if (
          this.token === this.tok.T_STRING ||
          (this.php7 && this.is("IDENTIFIER"))
        ) {
          constName = this.node("identifier");
          const name = this.text();
          this.next();
          constName = constName(name);
        } else {
          this.expect("IDENTIFIER");
        }
        if (this.expect("=")) {
          value = this.next().read_expr();
        }
        return result(constName, value);
      },
      ","
    );

    return result(null, items, flags);
  }
function(flags) {
    if (this.expect(this.tok.T_CONST)) {
      this.next();
    }
    const result = this.node("classconstant");
    const items = this.read_list(
      
      function read_constant_declaration() {
        const result = this.node("constant");
        let constName = null;
        let value = null;
        if (
          this.token === this.tok.T_STRING ||
          (this.php7 && this.is("IDENTIFIER"))
        ) {
          constName = this.node("identifier");
          const name = this.text();
          this.next();
          constName = constName(name);
        } else {
          this.expect("IDENTIFIER");
        }
        if (this.expect("=")) {
          value = this.next().read_expr();
        }
        return result(constName, value);
      },
      ","
    );

    return result(null, items, flags);
  }
function ( flags ) { if ( this . expect ( this . tok . T_CONST ) ) { this . next ( ) ; } const result = this . node ( "classconstant" ) ; const items = this . read_list ( /**
       * Reads a constant declaration
       *
       * ```ebnf
       *  constant_declaration ::= (T_STRING | IDENTIFIER) '=' expr
       * ```
       * @return {Constant} [:link:](AST.md#constant)
       */ function read_constant_declaration ( ) { const result = this . node ( "constant" ) ; let constName = null ; let value = null ; if ( this . token === this . tok . T_STRING || ( this . php7 && this . is ( "IDENTIFIER" ) ) ) { constName = this . node ( "identifier" ) ; const name = this . text ( ) ; this . next ( ) ; constName = constName ( name ) ; } else { this . expect ( "IDENTIFIER" ) ; } if ( this . expect ( "=" ) ) { value = this . next ( ) . read_expr ( ) ; } return result ( constName , value ) ; } , "," ) ; return result ( null , items , flags ) ; }
Reads constant list
```ebnf
constant_list ::= T_CONST (constant_declaration ',')* constant_declaration
```
Reads constant list ebnf constant_list :: = T_CONST ( constant_declaration ) * constant_declaration