nl_tokens: Reads an IF statement
pl_tokens: function ( ) { const result = this . node ( "if" ) ; let body = null ; let alternate = null ; let shortForm = false ; let test = null ; test = this . next ( ) . read_if_expr ( ) ; if ( this . token === ":" ) { shortForm = true ; this . next ( ) ; body = this . node ( "block" ) ; const items = [ ] ; while ( this . token !== this . EOF && this . <mask> !== this . tok . T_ENDIF ) { if ( this . token === this . tok . T_ELSEIF ) { alternate = this . read_elseif_short ( ) ; break ; } else if ( this . token === this . tok . T_ELSE ) { alternate = this . read_else_short ( ) ; break ; } items . push ( this . read_inner_statement ( ) ) ; } body = body ( null , items ) ; this . expect ( this . tok . T_ENDIF ) && this . next ( ) ; this . expectEndOfStatement ( ) ; } else { body = this . read_statement ( ) ; if ( this . token === this . tok . T_ELSEIF ) { alternate = this . read_if ( ) ; } else if ( this . token === this . tok . T_ELSE ) { alternate = this . next ( ) . read_statement ( ) ; } } return result ( test , body , alternate , shortForm ) ; }