nl_tokens: https : // github . com / php / php - src / blob / 493524454d66adde84e00d249d607ecd540de99f / Zend / zend_language_parser . y#L1231
pl_tokens: function ( ) { let offset = this . node ( ) ; if ( this . token === this . tok . T_STRING ) { const text = this . text ( ) ; this . next ( ) ; offset = offset ( "identifier" , text ) ; } else if ( this . token === this . tok . T_NUM_STRING ) { const num = this . text ( ) ; this . next ( ) ; offset = offset ( "number" , num , null ) ; } else if ( this . token === this . tok . T_VARIABLE ) { const name = this . text ( ) . substring ( 1 ) ; this . next ( ) ; offset = <mask> ( "variable" , name , false , false ) ; } else { this . expect ( [ this . tok . T_STRING , this . tok . T_NUM_STRING , this . tok . T_VARIABLE ] ) ; // fallback : consider as identifier const text = this . text ( ) ; this . next ( ) ; offset = offset ( "identifier" , text ) ; } return offset ; }