]> granicus.if.org Git - php/commitdiff
adds missing tokens to list of semi-reserved words and regenerates test suite
authorMárcio Almada <marcio3w@gmail.com>
Fri, 4 Sep 2015 03:45:49 +0000 (00:45 -0300)
committerBob Weinand <bobwei9@hotmail.com>
Fri, 4 Sep 2015 13:02:50 +0000 (15:02 +0200)
Zend/tests/grammar/semi_reserved_001.phpt
Zend/tests/grammar/semi_reserved_002.phpt
Zend/tests/grammar/semi_reserved_003.phpt
Zend/tests/grammar/semi_reserved_004.phpt
Zend/tests/grammar/semi_reserved_005.phpt
Zend/zend_language_parser.y
ext/tokenizer/tests/token_get_all_TOKEN_PARSE_001.phpt

index c6bfd46611a494435b1ebfe7aa40173ca68e6b96..26b3638a47b48ca461016a4638e8208f8f20dad5 100644 (file)
@@ -7,9 +7,16 @@ class Obj
 {
     function empty(){ echo __METHOD__, PHP_EOL; }
     function callable(){ echo __METHOD__, PHP_EOL; }
+    function class(){ echo __METHOD__, PHP_EOL; }
     function trait(){ echo __METHOD__, PHP_EOL; }
     function extends(){ echo __METHOD__, PHP_EOL; }
     function implements(){ echo __METHOD__, PHP_EOL; }
+    function static(){ echo __METHOD__, PHP_EOL; }
+    function abstract(){ echo __METHOD__, PHP_EOL; }
+    function final(){ echo __METHOD__, PHP_EOL; }
+    function public(){ echo __METHOD__, PHP_EOL; }
+    function protected(){ echo __METHOD__, PHP_EOL; }
+    function private(){ echo __METHOD__, PHP_EOL; }
     function const(){ echo __METHOD__, PHP_EOL; }
     function enddeclare(){ echo __METHOD__, PHP_EOL; }
     function endfor(){ echo __METHOD__, PHP_EOL; }
@@ -22,6 +29,7 @@ class Obj
     function instanceof(){ echo __METHOD__, PHP_EOL; }
     function insteadof(){ echo __METHOD__, PHP_EOL; }
     function interface(){ echo __METHOD__, PHP_EOL; }
+    function namespace(){ echo __METHOD__, PHP_EOL; }
     function new(){ echo __METHOD__, PHP_EOL; }
     function or(){ echo __METHOD__, PHP_EOL; }
     function xor(){ echo __METHOD__, PHP_EOL; }
@@ -62,22 +70,33 @@ class Obj
     function die(){ echo __METHOD__, PHP_EOL; }
     function self(){ echo __METHOD__, PHP_EOL; }
     function parent(){ echo __METHOD__, PHP_EOL; }
-    function public(){ echo __METHOD__, PHP_EOL; }
-    function protected(){ echo __METHOD__, PHP_EOL; }
-    function private(){ echo __METHOD__, PHP_EOL; }
-    function static(){ echo __METHOD__, PHP_EOL; }
-    function abstract(){ echo __METHOD__, PHP_EOL; }
-    function final(){ echo __METHOD__, PHP_EOL; }
-    function class(){ echo __METHOD__, PHP_EOL; }
+    function isset(){ echo __METHOD__, PHP_EOL; }
+    function unset(){ echo __METHOD__, PHP_EOL; }
+    function __CLASS__(){ echo __METHOD__, PHP_EOL; }
+    function __TRAIT__(){ echo __METHOD__, PHP_EOL; }
+    function __FUNCTION__(){ echo __METHOD__, PHP_EOL; }
+    function __METHOD__(){ echo __METHOD__, PHP_EOL; }
+    function __LINE__(){ echo __METHOD__, PHP_EOL; }
+    function __FILE__(){ echo __METHOD__, PHP_EOL; }
+    function __DIR__(){ echo __METHOD__, PHP_EOL; }
+    function __NAMESPACE__(){ echo __METHOD__, PHP_EOL; }
+    function __halt_compiler(){ echo __METHOD__, PHP_EOL; }
 }
 
 $obj = new Obj;
 
 $obj->empty();
 $obj->callable();
+$obj->class();
 $obj->trait();
 $obj->extends();
 $obj->implements();
+$obj->static();
+$obj->abstract();
+$obj->final();
+$obj->public();
+$obj->protected();
+$obj->private();
 $obj->const();
 $obj->enddeclare();
 $obj->endfor();
@@ -90,6 +109,7 @@ $obj->goto();
 $obj->instanceof();
 $obj->insteadof();
 $obj->interface();
+$obj->namespace();
 $obj->new();
 $obj->or();
 $obj->xor();
@@ -130,22 +150,33 @@ $obj->catch();
 $obj->die();
 $obj->self();
 $obj->parent();
-$obj->public();
-$obj->protected();
-$obj->private();
-$obj->static();
-$obj->abstract();
-$obj->final();
-$obj->class();
+$obj->isset();
+$obj->unset();
+$obj->__CLASS__();
+$obj->__TRAIT__();
+$obj->__FUNCTION__();
+$obj->__METHOD__();
+$obj->__LINE__();
+$obj->__FILE__();
+$obj->__DIR__();
+$obj->__NAMESPACE__();
+$obj->__halt_compiler();
 
 echo "\nDone\n";
 
 --EXPECTF--
 Obj::empty
 Obj::callable
+Obj::class
 Obj::trait
 Obj::extends
 Obj::implements
+Obj::static
+Obj::abstract
+Obj::final
+Obj::public
+Obj::protected
+Obj::private
 Obj::const
 Obj::enddeclare
 Obj::endfor
@@ -158,6 +189,7 @@ Obj::goto
 Obj::instanceof
 Obj::insteadof
 Obj::interface
+Obj::namespace
 Obj::new
 Obj::or
 Obj::xor
@@ -198,12 +230,16 @@ Obj::catch
 Obj::die
 Obj::self
 Obj::parent
-Obj::public
-Obj::protected
-Obj::private
-Obj::static
-Obj::abstract
-Obj::final
-Obj::class
+Obj::isset
+Obj::unset
+Obj::__CLASS__
+Obj::__TRAIT__
+Obj::__FUNCTION__
+Obj::__METHOD__
+Obj::__LINE__
+Obj::__FILE__
+Obj::__DIR__
+Obj::__NAMESPACE__
+Obj::__halt_compiler
 
 Done
index b2c20028cae89d40f7167f6463e90ba12656c7e2..483ac8ce80941982c29bd7ea552ad3f5f139ad2f 100644 (file)
@@ -7,9 +7,16 @@ class Obj
 {
     static function empty(){ echo __METHOD__, PHP_EOL; }
     static function callable(){ echo __METHOD__, PHP_EOL; }
+    static function class(){ echo __METHOD__, PHP_EOL; }
     static function trait(){ echo __METHOD__, PHP_EOL; }
     static function extends(){ echo __METHOD__, PHP_EOL; }
     static function implements(){ echo __METHOD__, PHP_EOL; }
+    static function static(){ echo __METHOD__, PHP_EOL; }
+    static function abstract(){ echo __METHOD__, PHP_EOL; }
+    static function final(){ echo __METHOD__, PHP_EOL; }
+    static function public(){ echo __METHOD__, PHP_EOL; }
+    static function protected(){ echo __METHOD__, PHP_EOL; }
+    static function private(){ echo __METHOD__, PHP_EOL; }
     static function const(){ echo __METHOD__, PHP_EOL; }
     static function enddeclare(){ echo __METHOD__, PHP_EOL; }
     static function endfor(){ echo __METHOD__, PHP_EOL; }
@@ -22,6 +29,7 @@ class Obj
     static function instanceof(){ echo __METHOD__, PHP_EOL; }
     static function insteadof(){ echo __METHOD__, PHP_EOL; }
     static function interface(){ echo __METHOD__, PHP_EOL; }
+    static function namespace(){ echo __METHOD__, PHP_EOL; }
     static function new(){ echo __METHOD__, PHP_EOL; }
     static function or(){ echo __METHOD__, PHP_EOL; }
     static function xor(){ echo __METHOD__, PHP_EOL; }
@@ -62,20 +70,31 @@ class Obj
     static function die(){ echo __METHOD__, PHP_EOL; }
     static function self(){ echo __METHOD__, PHP_EOL; }
     static function parent(){ echo __METHOD__, PHP_EOL; }
-    static function public(){ echo __METHOD__, PHP_EOL; }
-    static function protected(){ echo __METHOD__, PHP_EOL; }
-    static function private(){ echo __METHOD__, PHP_EOL; }
-    static function static(){ echo __METHOD__, PHP_EOL; }
-    static function abstract(){ echo __METHOD__, PHP_EOL; }
-    static function final(){ echo __METHOD__, PHP_EOL; }
-    static function class(){ echo __METHOD__, PHP_EOL; }
+    static function isset(){ echo __METHOD__, PHP_EOL; }
+    static function unset(){ echo __METHOD__, PHP_EOL; }
+    static function __CLASS__(){ echo __METHOD__, PHP_EOL; }
+    static function __TRAIT__(){ echo __METHOD__, PHP_EOL; }
+    static function __FUNCTION__(){ echo __METHOD__, PHP_EOL; }
+    static function __METHOD__(){ echo __METHOD__, PHP_EOL; }
+    static function __LINE__(){ echo __METHOD__, PHP_EOL; }
+    static function __FILE__(){ echo __METHOD__, PHP_EOL; }
+    static function __DIR__(){ echo __METHOD__, PHP_EOL; }
+    static function __NAMESPACE__(){ echo __METHOD__, PHP_EOL; }
+    static function __halt_compiler(){ echo __METHOD__, PHP_EOL; }
 }
 
 Obj::empty();
 Obj::callable();
+Obj::class();
 Obj::trait();
 Obj::extends();
 Obj::implements();
+Obj::static();
+Obj::abstract();
+Obj::final();
+Obj::public();
+Obj::protected();
+Obj::private();
 Obj::const();
 Obj::enddeclare();
 Obj::endfor();
@@ -88,6 +107,7 @@ Obj::goto();
 Obj::instanceof();
 Obj::insteadof();
 Obj::interface();
+Obj::namespace();
 Obj::new();
 Obj::or();
 Obj::xor();
@@ -128,22 +148,33 @@ Obj::catch();
 Obj::die();
 Obj::self();
 Obj::parent();
-Obj::public();
-Obj::protected();
-Obj::private();
-Obj::static();
-Obj::abstract();
-Obj::final();
-Obj::class();
+Obj::isset();
+Obj::unset();
+Obj::__CLASS__();
+Obj::__TRAIT__();
+Obj::__FUNCTION__();
+Obj::__METHOD__();
+Obj::__LINE__();
+Obj::__FILE__();
+Obj::__DIR__();
+Obj::__NAMESPACE__();
+Obj::__halt_compiler();
 
 echo "\nDone\n";
 
 --EXPECTF--
 Obj::empty
 Obj::callable
+Obj::class
 Obj::trait
 Obj::extends
 Obj::implements
+Obj::static
+Obj::abstract
+Obj::final
+Obj::public
+Obj::protected
+Obj::private
 Obj::const
 Obj::enddeclare
 Obj::endfor
@@ -156,6 +187,7 @@ Obj::goto
 Obj::instanceof
 Obj::insteadof
 Obj::interface
+Obj::namespace
 Obj::new
 Obj::or
 Obj::xor
@@ -196,12 +228,16 @@ Obj::catch
 Obj::die
 Obj::self
 Obj::parent
-Obj::public
-Obj::protected
-Obj::private
-Obj::static
-Obj::abstract
-Obj::final
-Obj::class
+Obj::isset
+Obj::unset
+Obj::__CLASS__
+Obj::__TRAIT__
+Obj::__FUNCTION__
+Obj::__METHOD__
+Obj::__LINE__
+Obj::__FILE__
+Obj::__DIR__
+Obj::__NAMESPACE__
+Obj::__halt_compiler
 
 Done
index fe2c44dc4c1110138fffe8b3a27a46d470d0b8b3..d63824017ecfa1fe660938a735c6b299c62af8ac 100644 (file)
@@ -69,6 +69,18 @@ class Obj
     var $catch = 'catch';
     var $die = 'die';
     var $self = 'self';
+    var $parent = 'parent';
+    var $isset = 'isset';
+    var $unset = 'unset';
+    var $__CLASS__ = '__CLASS__';
+    var $__TRAIT__ = '__TRAIT__';
+    var $__FUNCTION__ = '__FUNCTION__';
+    var $__METHOD__ = '__METHOD__';
+    var $__LINE__ = '__LINE__';
+    var $__FILE__ = '__FILE__';
+    var $__DIR__ = '__DIR__';
+    var $__NAMESPACE__ = '__NAMESPACE__';
+    var $__halt_compiler = '__halt_compiler';
 }
 
 $obj = new Obj;
@@ -137,6 +149,18 @@ echo $obj->as, PHP_EOL;
 echo $obj->catch, PHP_EOL;
 echo $obj->die, PHP_EOL;
 echo $obj->self, PHP_EOL;
+echo $obj->parent, PHP_EOL;
+echo $obj->isset, PHP_EOL;
+echo $obj->unset, PHP_EOL;
+echo $obj->__CLASS__, PHP_EOL;
+echo $obj->__TRAIT__, PHP_EOL;
+echo $obj->__FUNCTION__, PHP_EOL;
+echo $obj->__METHOD__, PHP_EOL;
+echo $obj->__LINE__, PHP_EOL;
+echo $obj->__FILE__, PHP_EOL;
+echo $obj->__DIR__, PHP_EOL;
+echo $obj->__NAMESPACE__, PHP_EOL;
+echo $obj->__halt_compiler, PHP_EOL;
 
 echo "\nDone\n";
 
@@ -206,5 +230,17 @@ as
 catch
 die
 self
+parent
+isset
+unset
+__CLASS__
+__TRAIT__
+__FUNCTION__
+__METHOD__
+__LINE__
+__FILE__
+__DIR__
+__NAMESPACE__
+__halt_compiler
 
 Done
index 40c5df14ef0a205178d0c174db9ac10d2a19ff91..38963870a066a6d9e08fd8956c9216bec5933b29 100644 (file)
@@ -70,6 +70,17 @@ class Obj
     static $die = 'die';
     static $self = 'self';
     static $parent = 'parent';
+    static $isset = 'isset';
+    static $unset = 'unset';
+    static $__CLASS__ = '__CLASS__';
+    static $__TRAIT__ = '__TRAIT__';
+    static $__FUNCTION__ = '__FUNCTION__';
+    static $__METHOD__ = '__METHOD__';
+    static $__LINE__ = '__LINE__';
+    static $__FILE__ = '__FILE__';
+    static $__DIR__ = '__DIR__';
+    static $__NAMESPACE__ = '__NAMESPACE__';
+    static $__halt_compiler = '__halt_compiler';
 }
 
 echo Obj::$empty, PHP_EOL;
@@ -137,6 +148,17 @@ echo Obj::$catch, PHP_EOL;
 echo Obj::$die, PHP_EOL;
 echo Obj::$self, PHP_EOL;
 echo Obj::$parent, PHP_EOL;
+echo Obj::$isset, PHP_EOL;
+echo Obj::$unset, PHP_EOL;
+echo Obj::$__CLASS__, PHP_EOL;
+echo Obj::$__TRAIT__, PHP_EOL;
+echo Obj::$__FUNCTION__, PHP_EOL;
+echo Obj::$__METHOD__, PHP_EOL;
+echo Obj::$__LINE__, PHP_EOL;
+echo Obj::$__FILE__, PHP_EOL;
+echo Obj::$__DIR__, PHP_EOL;
+echo Obj::$__NAMESPACE__, PHP_EOL;
+echo Obj::$__halt_compiler, PHP_EOL;
 
 echo "\nDone\n";
 
@@ -206,5 +228,16 @@ catch
 die
 self
 parent
+isset
+unset
+__CLASS__
+__TRAIT__
+__FUNCTION__
+__METHOD__
+__LINE__
+__FILE__
+__DIR__
+__NAMESPACE__
+__halt_compiler
 
 Done
index 3ad0830b099f83b01ff984cd823975731394fe90..b2b8471bf0dc70865ea0ac1fbe2ad10aa807707a 100644 (file)
@@ -10,6 +10,12 @@ class Obj
     const TRAIT = 'trait';
     const EXTENDS = 'extends';
     const IMPLEMENTS = 'implements';
+    const STATIC = 'static';
+    const ABSTRACT = 'abstract';
+    const FINAL = 'final';
+    const PUBLIC = 'public';
+    const PROTECTED = 'protected';
+    const PRIVATE = 'private';
     const CONST = 'const';
     const ENDDECLARE = 'enddeclare';
     const ENDFOR = 'endfor';
@@ -63,12 +69,17 @@ class Obj
     const DIE = 'die';
     const SELF = 'self';
     const PARENT = 'parent';
-    const PUBLIC = 'public';
-    const PROTECTED = 'protected';
-    const PRIVATE = 'private';
-    const STATIC = 'static';
-    const ABSTRACT = 'abstract';
-    const FINAL = 'final';
+    const ISSET = 'isset';
+    const UNSET = 'unset';
+    const __CLASS__ = '__CLASS__';
+    const __TRAIT__ = '__TRAIT__';
+    const __FUNCTION__ = '__FUNCTION__';
+    const __METHOD__ = '__METHOD__';
+    const __LINE__ = '__LINE__';
+    const __FILE__ = '__FILE__';
+    const __DIR__ = '__DIR__';
+    const __NAMESPACE__ = '__NAMESPACE__';
+    const __HALT_COMPILER = '__halt_compiler';
 }
 
 echo Obj::EMPTY, PHP_EOL;
@@ -76,6 +87,12 @@ echo Obj::CALLABLE, PHP_EOL;
 echo Obj::TRAIT, PHP_EOL;
 echo Obj::EXTENDS, PHP_EOL;
 echo Obj::IMPLEMENTS, PHP_EOL;
+echo Obj::STATIC, PHP_EOL;
+echo Obj::ABSTRACT, PHP_EOL;
+echo Obj::FINAL, PHP_EOL;
+echo Obj::PUBLIC, PHP_EOL;
+echo Obj::PROTECTED, PHP_EOL;
+echo Obj::PRIVATE, PHP_EOL;
 echo Obj::CONST, PHP_EOL;
 echo Obj::ENDDECLARE, PHP_EOL;
 echo Obj::ENDFOR, PHP_EOL;
@@ -129,12 +146,17 @@ echo Obj::CATCH, PHP_EOL;
 echo Obj::DIE, PHP_EOL;
 echo Obj::SELF, PHP_EOL;
 echo Obj::PARENT, PHP_EOL;
-echo Obj::PUBLIC, PHP_EOL;
-echo Obj::PROTECTED, PHP_EOL;
-echo Obj::PRIVATE, PHP_EOL;
-echo Obj::STATIC, PHP_EOL;
-echo Obj::ABSTRACT, PHP_EOL;
-echo Obj::FINAL, PHP_EOL;
+echo Obj::ISSET, PHP_EOL;
+echo Obj::UNSET, PHP_EOL;
+echo Obj::__CLASS__, PHP_EOL;
+echo Obj::__TRAIT__, PHP_EOL;
+echo Obj::__FUNCTION__, PHP_EOL;
+echo Obj::__METHOD__, PHP_EOL;
+echo Obj::__LINE__, PHP_EOL;
+echo Obj::__FILE__, PHP_EOL;
+echo Obj::__DIR__, PHP_EOL;
+echo Obj::__NAMESPACE__, PHP_EOL;
+echo Obj::__HALT_COMPILER, PHP_EOL;
 
 echo "\nDone\n";
 
@@ -144,6 +166,12 @@ callable
 trait
 extends
 implements
+static
+abstract
+final
+public
+protected
+private
 const
 enddeclare
 endfor
@@ -197,11 +225,16 @@ catch
 die
 self
 parent
-public
-protected
-private
-static
-abstract
-final
+isset
+unset
+__CLASS__
+__TRAIT__
+__FUNCTION__
+__METHOD__
+__LINE__
+__FILE__
+__DIR__
+__NAMESPACE__
+__halt_compiler
 
 Done
index 87365a145e68f8f8c4aecb409c695121d89277b2..c52c252f6c27993b67020ee2bf57f396efe91635 100644 (file)
@@ -272,6 +272,7 @@ reserved_non_modifiers:
        | T_THROW | T_USE | T_INSTEADOF | T_GLOBAL | T_VAR | T_UNSET | T_ISSET | T_EMPTY | T_CONTINUE | T_GOTO
        | T_FUNCTION | T_CONST | T_RETURN | T_PRINT | T_YIELD | T_LIST | T_SWITCH | T_ENDSWITCH | T_CASE | T_DEFAULT | T_BREAK
        | T_ARRAY | T_CALLABLE | T_EXTENDS | T_IMPLEMENTS | T_NAMESPACE | T_TRAIT | T_INTERFACE | T_CLASS
+       | T_CLASS_C | T_TRAIT_C | T_FUNC_C | T_METHOD_C | T_LINE | T_FILE | T_DIR | T_NS_C | T_HALT_COMPILER
 ;
 
 semi_reserved:
index eb0e3009643a8b1d769e22b1ba64747da136be5c..fc166e2fc61ac77069ec63db3157dd08068b7e16 100644 (file)
@@ -11,6 +11,7 @@ $x->$continue;
 X::continue();
 $x->continue();
 X::class;
+$x->__halt_compiler();
 
 class X {
     const CONTINUE = 1;
@@ -60,22 +61,28 @@ L7: T_STRING X
 L7: T_DOUBLE_COLON ::
 L7: T_STRING class
 ;
-L9: T_CLASS class
-L9: T_STRING X
+L8: T_VARIABLE $x
+L8: T_OBJECT_OPERATOR ->
+L8: T_STRING __halt_compiler
+(
+)
+;
+L10: T_CLASS class
+L10: T_STRING X
 {
-L10: T_CONST const
-L10: T_STRING CONTINUE
+L11: T_CONST const
+L11: T_STRING CONTINUE
 =
-L10: T_LNUMBER 1
+L11: T_LNUMBER 1
 ;
-L11: T_PUBLIC public
-L11: T_VARIABLE $x
+L12: T_PUBLIC public
+L12: T_VARIABLE $x
 =
-L11: T_STRING self
-L11: T_DOUBLE_COLON ::
-L11: T_STRING CONTINUE
+L12: T_STRING self
+L12: T_DOUBLE_COLON ::
+L12: T_STRING CONTINUE
 +
-L11: T_LNUMBER 1
+L12: T_LNUMBER 1
 ;
 }
-Done
+Done
\ No newline at end of file