parse_errors.phpt 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. --TEST--
  2. Parse errors during token_get_all()
  3. --EXTENSIONS--
  4. tokenizer
  5. --FILE--
  6. <?php
  7. function test_parse_error($code) {
  8. try {
  9. var_dump(token_get_all($code, TOKEN_PARSE));
  10. } catch (ParseError $e) {
  11. echo $e->getMessage(), "\n";
  12. }
  13. foreach (token_get_all($code) as $token) {
  14. if (is_array($token)) {
  15. echo token_name($token[0]), " ($token[1])\n";
  16. } else {
  17. echo "$token\n";
  18. }
  19. }
  20. echo "\n";
  21. }
  22. test_parse_error('<?php var_dump(078);');
  23. test_parse_error('<?php var_dump("\u{xyz}");');
  24. test_parse_error('<?php var_dump("\u{ffffff}");');
  25. test_parse_error('<?php var_dump(078 + 078);');
  26. ?>
  27. --EXPECT--
  28. Invalid numeric literal
  29. T_OPEN_TAG (<?php )
  30. T_STRING (var_dump)
  31. (
  32. T_LNUMBER (078)
  33. )
  34. ;
  35. Invalid UTF-8 codepoint escape sequence
  36. T_OPEN_TAG (<?php )
  37. T_STRING (var_dump)
  38. (
  39. T_CONSTANT_ENCAPSED_STRING ("\u{xyz}")
  40. )
  41. ;
  42. Invalid UTF-8 codepoint escape sequence: Codepoint too large
  43. T_OPEN_TAG (<?php )
  44. T_STRING (var_dump)
  45. (
  46. T_CONSTANT_ENCAPSED_STRING ("\u{ffffff}")
  47. )
  48. ;
  49. Invalid numeric literal
  50. T_OPEN_TAG (<?php )
  51. T_STRING (var_dump)
  52. (
  53. T_LNUMBER (078)
  54. T_WHITESPACE ( )
  55. +
  56. T_WHITESPACE ( )
  57. T_LNUMBER (078)
  58. )
  59. ;