1
0
mirror of https://github.com/php/php-src.git synced 2026-04-27 01:48:26 +02:00
Commit Graph

53 Commits

Author SHA1 Message Date
Gabriel Caruso ded3d984c6 Use EXPECT instead of EXPECTF when possible
EXPECTF logic in run-tests.php is considerable, so let's avoid it.
2018-02-20 21:53:48 +01:00
Gabriel Caruso ce1d69a1f6 Use int instead of integer in type errors
PHP requires integer typehints to be written "int" and does not
allow "integer" as an alias. This changes type error messages to
match the actual type name and avoids confusing messages like
"must be of the type integer, integer given".
2018-02-04 19:08:23 +01:00
Márcio Almada c08b3922dd adds missing tokens to list of semi-reserved words and regenerates test suite 2015-09-04 15:02:50 +02:00
Nikita Popov a49ce7bb91 Don't return T_ERROR from token_get_all()
This turned out to be rather inconvenient after all. Instead just
return the same output we did on PHP 5. If people want to have an
error, use TOKEN_PARSE.
2015-07-09 23:02:21 +02:00
Nikita Popov d91aad5966 Fix bug #69430
Don't throw from token_get_all() unless TOKEN_PARSE is used. Errors
are reported as T_ERROR tokens.
2015-07-09 19:11:48 +02:00
Aaron Piotrowski 110e0a5a2c Merge branch 'master' into throwable-interface
# Conflicts:
#	Zend/zend_language_scanner.c
#	Zend/zend_language_scanner.l
#	ext/simplexml/tests/SimpleXMLElement_xpath.phpt
2015-06-14 18:53:11 -05:00
Bob Weinand 31f3eeb0c5 Fix tokenizer test due to recent changes 2015-05-26 00:17:27 +02:00
Aaron Piotrowski 64b167d201 Updated tests to reflect exception class changes. 2015-05-16 16:49:14 -05:00
Márcio Almada c2f3091b98 add missing SKIPIF section on test 2015-04-30 03:03:29 -03:00
Márcio Almada 110759386e ext tokenizer port + cleanup unused lexer states
we basically added a mechanism to store the token stream during parsing
and exposed the entire parser stack on the tokenizer extension through
an opt in flag: token_get_all($src, TOKEN_PARSE).

this change allows easy future language enhancements regarding context
aware parsing & scanning without further maintance on the tokenizer
extension while solves known inconsistencies "parseless" tokenizer
extension has when it handles `__halt_compiler()` presence.
2015-04-30 03:03:29 -03:00
Nikita Popov a8bf1c5d8f Throw ParseException from lexer
Primarily to avoid getting fatal errors from token_get_all().

Implemented using a magic E_ERROR token, which the lexer emits to
force a parser failure.
2015-04-02 16:31:17 +02:00
Andrea Faulds e5eb9530ab Use "float" and "integer" in typehint and zpp errors 2014-12-21 13:23:02 +00:00
Andrea Faulds 01554bf3e4 Merge branch 'master' into zppFailOnOverflow 2014-11-29 01:45:54 +00:00
Andrea Faulds ebaa42302a Skip buncha tests on 32-bit 2014-11-29 01:05:19 +00:00
Anatol Belski 9a91e5019d fix test 2014-11-20 14:37:17 +01:00
Veres Lajos 4b9535341a typo fixes - https://github.com/vlajos/misspell_fixer 2014-11-19 20:23:00 +00:00
Nikita Popov e7f252652f Fix tokenizer test to not depend on specific token numbers 2014-08-26 23:36:53 +02:00
Ferenc Kovacs 016b1f089e Fix bug #67392: token_name() does not return name for T_POW and T_POW_EQUAL token 2014-06-07 15:27:54 +02:00
Lior Kaplan 23d952ed60 Merge branch 'PHP-5.5' into PHP-5.6 2014-02-14 17:15:35 +02:00
Lior Kaplan c09bd9def0 Merge branch 'PHP-5.4' into PHP-5.5 2014-02-14 15:30:00 +02:00
Veres Lajos 35101e9ef4 a few typofixes 2014-02-14 14:51:10 +02:00
datibbaw aff56f3c45 add T_POW (**) operator
Fixed recognition of the operator

Added opcode, still doing multiply instead of pow()

opcode now always returns int(42)

The right answer, but always a float

Yanked code from pow() implementation.

Should not handle negative long as exponent ourselves

Added test cases from pow()

Moved precedence higher than '~'

Added GMP operator overloading

Added ZEND_ASSIGN_POW (**=) operator.

Added pow() as a language construct.

Adjusted test cases for changed precedence.

Reduced pow() to shell function around ZEND_API pow_function()

Reduced test case to only contain edge cases
Added overloading test case

Moved unary minus above T_POW

Revert "Added pow() as a language construct."

Bad bad bad idea.

This reverts commit f60b98cf7a8371233d800a6faa286ddba4432d02.

Reverted unary minus behaviour due to previous revert.
Convert arrays to int(0)
Exponent with array as a base becomes int(0)

Rebase against master

Fixed tokenizer test case
2014-02-06 14:41:21 +01:00
Xinchen Hui 4e84f72554 Fix test failed due to new Token T_YIELD 2012-09-02 13:15:23 +08:00
Nikita Popov 1823b16fa1 Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport
Merging master to fix Windows build

Conflicts:
	Zend/zend_language_scanner.c
	Zend/zend_language_scanner_defs.h
	Zend/zend_vm_def.h
2012-08-20 13:37:53 +02:00
Stanislav Malyshev 3336e1e78c Merge branch 'pull-request/31'
* pull-request/31:
  Fix lexing of nested heredoc strings in token_get_all()
2012-08-19 21:43:04 -07:00
Nikita Popov 99f93dd9a8 Add T_YIELD in tokenizer_data.c
Also had to fix up some tokenizer tests that were affected by the token
number changes.
2012-07-22 20:32:56 +02:00
Nikita Popov 4cf90e06c9 Fix lexing of nested heredoc strings in token_get_all()
This fixes bug #60097.

Before two global variables CG(heredoc) and CG(heredoc_len) were used to
track the current heredoc label. In order to support nested heredoc
strings the *previous* heredoc label was assigned as the token value of
T_START_HEREDOC and the language_parser.y assigned that to CG(heredoc).

This created a dependency of the lexer on the parser. Thus the
token_get_all() function, which accesses the lexer directly without
also running the parser, was not able to tokenize nested heredoc strings
(and leaked memory). Same applies for the source-code highlighting
functions.

The new approach is to maintain a heredoc_label_stack in the lexer, which
contains all active heredoc labels.

As it is no longer required, T_START_HEREDOC and T_END_HEREDOC now don't
carry a token value anymore.

In order to make the work with zend_ptr_stack in this context more
convenient I added a new function zend_ptr_stack_top(), which retrieves the
top element of the stack (similar to zend_stack_top()).
2012-03-31 21:53:30 +02:00
Stanislav Malyshev 5063a77128 Fixed bug #54084 (token_get_all with regards to __halt_compiler is not binary safe) 2011-11-08 04:59:17 +00:00
Stanislav Malyshev 0d591e599f Fixed bug #54084 (token_get_all with regards to __halt_compiler is not binary safe) 2011-11-08 04:59:17 +00:00
Stefan Marr 0158804a15 Added __TRAIT__ magic constant [TRAITS] [DOC]
# __TRAIT__ behaves like __CLASS__ more or less but is constraint to traits.
# Since traits are not types, there are not many valid use cases, and trying
# to use __TRAIT__ to make traits more like classes is discouraged.
2011-07-31 17:39:30 +00:00
Stefan Marr dbc6849bca Added __TRAIT__ magic constant [TRAITS] [DOC]
# __TRAIT__ behaves like __CLASS__ more or less but is constraint to traits.
# Since traits are not types, there are not many valid use cases, and trying
# to use __TRAIT__ to make traits more like classes is discouraged.
2011-07-31 17:39:30 +00:00
Stefan Marr 7e5a214251 Added: SKIP when tokenizer extension is not available 2011-07-31 16:35:09 +00:00
Stefan Marr 03f514d0a0 Added: SKIP when tokenizer extension is not available 2011-07-31 16:35:09 +00:00
Ilia Alshanetsky 1d984a7ffd Fixed bug #54089 (token_get_all() does not stop after __halt_compiler). 2011-02-28 15:18:27 +00:00
Ilia Alshanetsky 847f519d41 Fixed tests 2010-05-24 18:52:36 +00:00
Ilia Alshanetsky 6ce4737d94 Fixed tests 2010-05-20 22:53:38 +00:00
Felipe Pena 78f43a53f7 - Fixed tests 2010-04-26 14:15:44 +00:00
Felipe Pena b3ded59e3e - Added T_GOTO
- Fixed tests
2008-03-30 21:48:24 +00:00
Steve Seear 4c2b3336a2 Adding tokenizer test 2008-03-19 17:43:50 +00:00
Marcus Boerger af316021e8 - Rewrite scanner to be based on re2c instead of flex
The full patch is available as:
  http://php.net/~helly/php-re2c-5.3-20080316.diff.txt
  This is against php-re2c repository version 98
  An older patch against version 97 is available under:
  http://php.net/~helly/php-re2c-97-20080316.diff.txt
2008-03-16 21:06:55 +00:00
Hannes Magnusson 70b10b2b39 Fix test 2007-12-16 19:17:54 +00:00
Raghubansh Kumar 035dc8bdf6 New testcases for token_get_all() function 2007-12-14 16:21:33 +00:00
Dmitry Stogov 80d2409fd8 Improved compilation of heredocs and interpolated strings. (Matt, Dmitry) 2007-05-18 13:12:05 +00:00
Antony Dovgal 3aaf8bbdb7 fix test 2007-04-10 10:49:16 +00:00
Johannes Schlüter 8591b20d4e - MFH: Added linenumbers to array returned by token_get_all() 2007-04-08 00:18:38 +00:00
Ilia Alshanetsky 09dec62672 Fixed tokenizer tests 2006-04-20 01:06:58 +00:00
Derick Rethans 0839cadef6 - Fixed broken test case. 2006-01-04 10:31:58 +00:00
Antony Dovgal c92ae847c7 add missing skipif conditions
fix existing ones
2005-12-21 11:42:06 +00:00
Ilia Alshanetsky 3ce27140dc Fixed bug #35655 (whitespace following end of heredoc is lost). 2005-12-13 20:55:42 +00:00
Antony Dovgal bd8df0b32a add 2 new tests
now we have one extension absolutely covered by tests, yay! =)
2005-12-01 18:22:11 +00:00