nl_tokens: Reads variable list ebnf variable_list :: = ( variable_declaration ) * variable_declaration
pl_tokens: function ( flags ) { const result = this . node ( "propertystatement" ) ; const properties = this . read_list ( /**
         * Reads a variable declaration
         *
         * ```ebnf
         *  variable_declaration ::= T_VARIABLE '=' scalar
         * ```
         */ function read_variable_declaration ( ) { const result = this . node ( "property" ) ; this . expect ( this . tok . T_VARIABLE ) ; let propName = this . node ( "identifier" ) ; const name = this . text ( ) . substring ( 1 ) ; // ignore $ this . next ( ) ; propName = propName ( name ) ; if ( this . token === ";" || this . token === "," ) { return result ( propName , null ) ; } else if ( this . token === "=" ) { // https://github.com/php/php-src/blob/master/Zend/zend_language_parser.y#L815 return <mask> ( propName , this . next ( ) . read_expr ( ) ) ; } else { this . expect ( [ "," , ";" , "=" ] ) ; return result ( propName , null ) ; } } , "," ) ; return result ( null , properties , flags ) ; }