====== Request for Comments: Improved parser error message ====== * Version: 1.0 * Date: 2011-05-16 * Author: Felipe Pena * Status: Implemented in 5.4 * Discussion: [[http://markmail.org/thread/2vptpqr72xumbfsh|May 16, 2011]] ===== Introduction ===== The purpose of this RFC is to propose a naming of our tokens to have an crypto-less parser error messages. This is simply achieved by using an old Bison feature. ==== BC ==== There is no BC break. The token_*() functions aren't affected by the patch. $ sapi/cli/php -r 'var_dump(token_name(318));' string(6) "T_ECHO" ==== Examples ==== $ sapi/cli/php -r 'class abc foo' Patched: Parse error: syntax error, unexpected 'foo' (T_STRING), expecting '{' in Command line code on line 1 Current: Parse error: syntax error, unexpected T_STRING, expecting '{' in Command line code on line 1 $ sapi/cli/php -r 'function ""' Patched: Parse error: syntax error, unexpected '""' (T_CONSTANT_ENCAPSED_STRING), expecting identifier (T_STRING) or '(' in Command line code on line 1 Current: Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting T_STRING or '(' in Command line code on line 1 $ sapi/cli/php -r 'echo ::a;' Patched: Parse error: syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM) in Command line code on line 1 nexpected '::' in Command line code on line 1 Current: Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in Command line code on line 1 $ sapi/cli/php -r 'echo <<=' Patched: Parse error: syntax error, unexpected '<<=' (T_SL_EQUAL) in Command line code on line 1 Current: Parse error: syntax error, unexpected T_SL_EQUAL in Command line code on line 1 $ sapi/cli/php -r 'class ' Patched: Parse error: syntax error, unexpected end of file, expecting identifier (T_STRING) in Command line code on line 1 Current: Parse error: syntax error, unexpected $end, expecting T_STRING in Command line code on line 1 ===== Patch ===== * http://felipe.ath.cx/diff/improved-error-message.diff