Changeset 1441 in svn for trunk/devel/sample.cpp.php


Ignore:
Timestamp:
2013-11-06T16:45:19+01:00 (20 months ago)
Author:
Xuefer
Message:

make sample work for all beside decompiler

File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/devel/sample.cpp.php

    r1436 r1441  
    1818
    1919namespace ns;
     20#define _Exception \Exception
    2021#endif
    2122
     
    3132        CONST_VALUE => CONST_VALUE
    3233        );
     34    static public $classProp;
    3335    static public $static_const1 = CONST_VALUE;
    3436    static public $static_const2 = self::CONST_VALUE;
     
    6264    /** doc */
    6365    protected $protected_property = array(2, 'str');
     66    public $array = array();
    6467#else
    6568    var $property = array(
     
    7275    /** doc */
    7376#endif
    74     PublicMethod function __construct($a, $b)
     77    PublicMethod function f1()
     78    {
     79    }
     80
     81    PublicMethod function f2()
     82    {
     83    }
     84
     85    PublicMethod function __construct($arg1, $arg2)
    7586    {
    7687        static $array = array(
     
    7990            CONST_VALUE => CONST_VALUE
    8091            );
    81         static $a = 1;
     92        static $static = 1;
    8293        static $str = 'string';
    8394        echo CONST_VALUE;
     
    8697        empty(ClassName::$classProp);
    8798        isset(ClassName::$classProp);
    88         unset(ClassName::$classProp);
    8999        ClassName::$classProp = 1;
    90100        echo ClassName::$classProp;
    91101#endif
    92         empty($obj->objProp);
    93         isset($obj->objProp);
    94 #if PHP_VERSION >= 500
    95         unset($obj->objProp);
    96 #endif
    97         $obj->objProp = 1;
    98         echo $obj->objProp;
     102        $object = $this;
     103        $object->a = 1;
     104        $object->b = 2;
     105        $object->prop = 'prop';
     106        empty($object->objProp);
     107        isset($object->objProp);
     108#if PHP_VERSION >= 500
     109        unset($object->objProp);
     110#endif
     111        $object->objProp = 1;
     112        echo $object->objProp;
    99113        empty($this->thisProp);
    100114        isset($this->thisProp);
     
    107121        unset($array['index']->valueProp);
    108122#endif
    109         unset($obj->array['index']);
     123        unset($object->array['index']);
    110124        unset($this->array['index']);
    111125        empty($_GET['get']);
     
    129143        unset($array['index']->indexProp);
    130144#endif
     145        $array['index'] = $object;
    131146        $array['index']->indexProp = 1;
    132147        echo $array['index']->indexProp;
     148        $GLOBALS['var'] = $object;
    133149        empty($GLOBALS['var']->indexProp);
    134150        isset($GLOBALS['var']->indexProp);
     
    138154        $GLOBALS['var']->indexProp = 1;
    139155        echo $GLOBALS['var']->indexProp;
    140         ClassName::__construct();
    141         ClassName::$func();
     156
     157        if (0) {
     158            ClassName::__construct();
     159        }
     160
     161        $method = 'method';
     162        ClassName::$method();
    142163        echo __CLASS__;
    143164        echo __METHOD__;
    144165        echo __FUNCTION__;
    145         $this->methodCall();
    146 #if PHP_VERSION >= 500
    147         throw new Exception();
    148         new Exception();
    149 #endif
    150     }
    151 #if PHP_VERSION >= 500
    152 
    153     /** doc */
    154     abstract public function abastractMethod();
     166        $this->method();
     167#if PHP_VERSION >= 500
     168        try {
     169            throw new _Exception();
     170            new _Exception();
     171        }
     172        catch (_Exception $e) {
     173        }
     174#endif
     175
     176        $a = 1;
     177        $b = $c = 2;
     178        $a = $b + $c;
     179        $a = $b + 1;
     180        $a = 1 + $b;
     181        $a = $b - $c;
     182        $a = $b * $c;
     183        $a = $b / $c;
     184        $a = $b % $c;
     185        $a = $b . $c;
     186        $a = $b = $c;
     187        $a = $b & $c;
     188        $a = $b | $c;
     189        $a = $b ^ $c;
     190        $a = ~$b;
     191        $a = -$b;
     192        $a = +$b;
     193        $a = $b >> $c;
     194        $a = $b >> $c;
     195        $a = $b == $c;
     196        $a = $b === $c;
     197        $a = $b != $c;
     198        $a = $b < $c;
     199        $a = $b <= $c;
     200        $a = $b <= $c;
     201        $a = $b++;
     202        $a = ++$b;
     203        $a = $object->b++;
     204        $a = ++$object->b;
     205        $a = $b--;
     206        $a = --$b;
     207        $a = $object->b--;
     208        $a = --$object->b;
     209        $a = !$b;
     210        $a = $b === $c;
     211        $a = $b !== $c;
     212        $a = $b << 2;
     213        $a = $b >> 3;
     214        $a += $b;
     215        $a -= $b;
     216        $a *= $b;
     217        $a /= $b;
     218        $a <<= $b;
     219        $a >>= $b;
     220        $a &= $b;
     221        $a |= $b;
     222        $a .= $b;
     223        $a %= $b;
     224        $a ^= $b;
     225        $a = 'a' . 'b';
     226        $a = 'a' . 'abc';
     227        @f1();
     228        print('1');
     229        $array = array('index' => 1);
     230        $a = $array['index'];
     231        $a = $object->prop;
     232        $a = $this->prop;
     233        $array['index'] = 1;
     234        $object->prop = 1;
     235        $this->prop = 1;
     236        $a = isset($b);
     237        $a = empty($b);
     238        unset($b);
     239        $b = 1;
     240        $a = isset($array['index']);
     241        $a = empty($array['index']);
     242        unset($array['index']);
     243        $a = isset($object->prop);
     244        $a = empty($object->prop);
     245#if PHP_VERSION >= 500
     246        unset($object->prop);
     247#endif
     248        $a = isset($this->prop);
     249        $a = empty($this->prop);
     250#if PHP_VERSION >= 500
     251        unset($this->prop);
     252        $a = isset(ClassName::$prop);
     253        $a = empty(ClassName::$prop);
     254#endif
     255        $a = (int) $b;
     256        $a = (double) $b;
     257        $a = (string) $b;
     258        $a = (array) $b;
     259        $a = (object) $b;
     260        $a = (bool) $b;
     261        $a = (unset) $b;
     262        $a = (array) $b;
     263        $a = (object) $b;
     264        $a = ($b ? $c : $d);
     265        $a = (f1() ? f2() : f3());
     266        ($a = $b) xor $c;
     267        ($a = $b) and $c;
     268        ($a = $b) or $c;
     269        $a = $b && $c;
     270        $a = $b || $c;
     271#if PHP_VERSION >= 530
     272        echo $this::CONST_VALUE;
     273        echo $object::CONST_VALUE;
     274        echo CONST_VALUE;
     275        $this::method();
     276        $object::method();
     277        $a = $b ?: $d;
     278        $a = ($b ?: $d) + $c;
     279        $a = f1() ?: f2();
     280        $a = ClassName::f1() ?: ClassName::f2();
     281        $a = ($b ? $c : $d);
     282        $a = ($b ? $c : $d) + $c;
     283        $a = (f1() ? f3() : f2());
     284
     285        if ($b ?: $d) {
     286            echo 'if ($b ?: $d)';
     287        }
     288
     289        if (($b ?: $d) + $c) {
     290            echo 'if (($b ?: $d) + $c)';
     291        }
     292
     293        if (f1() ?: f2()) {
     294            echo 'if (f1() ?: f2())';
     295        }
     296#endif
     297    }
     298
     299    public function __destruct()
     300    {
     301    }
     302#if PHP_VERSION >= 500
     303
     304    /** doc */
     305    abstract public function abstractMethod();
    155306#endif
    156307
     
    195346#endif
    196347
    197 function f1($f)
     348function f1()
     349{
     350}
     351
     352function f2()
     353{
     354}
     355
     356function f3()
     357{
     358}
     359
     360function generator($f)
    198361{
    199362    echo __FUNCTION__;
     
    214377    public function __construct()
    215378    {
    216         parent::__construct();
     379        parent::__construct('a', 'b');
    217380    }
    218381
     
    220383    {
    221384        parent::__destruct();
    222         functionCall();
    223385    }
    224386
     
    228390    }
    229391
     392    public function abstractMethod()
     393    {
     394    }
     395
     396    public function nothing()
     397    {
     398    }
     399
    230400    public function __toString()
    231401    {
     
    263433}
    264434#endif
     435
     436define('CONST_VALUE', 'const value');
     437$late = isset($_ENV['LATE']);
    265438
    266439if ($late) {
     
    282455echo "\r";
    283456echo "\n";
    284 echo str_replace(array('a' => 'a', 'b' => 'c'), 'b');
    285 $object = new ClassName();
     457var_dump(array('a' => 'a', 'b' => 'c'), 'b');
     458$object = new Child();
     459$className = 'ns\\Child';
    286460$object = new $className();
    287461#if PHP_VERSION >= 500
    288 $result = $object instanceof ClassName;
     462$result = $object instanceof Child;
    289463$cloned = clone $object;
    290464#endif
    291 $a = 1;
    292 $a = $b + $c;
    293 $a = $b + 1;
    294 $a = 1 + $b;
    295 $a = $b - $c;
    296 $a = $b * $c;
    297 $a = $b / $c;
    298 $a = $b % $c;
    299 $a = $b . $c;
    300 $a = $b = $c;
    301 $a = $b & $c;
    302 $a = $b | $c;
    303 $a = $b ^ $c;
    304 $a = ~$b;
    305 $a = -$b;
    306 $a = +$b;
    307 $a = $b >> $c;
    308 $a = $b >> $c;
    309 $a = $b == $c;
    310 $a = $b === $c;
    311 $a = $b != $c;
    312 $a = $b < $c;
    313 $a = $b <= $c;
    314 $a = $b <= $c;
    315 $a = $b++;
    316 $a = ++$b;
    317 $a = $obj->b++;
    318 $a = ++$obj->b;
    319 $a = $b--;
    320 $a = --$b;
    321 $a = $obj->b--;
    322 $a = --$obj->b;
    323 $a = !$b;
    324 $a = $b === $c;
    325 $a = $b !== $c;
    326 $a = $b << 2;
    327 $a = $b >> 3;
    328 $a += $b;
    329 $a -= $b;
    330 $a *= $b;
    331 $a /= $b;
    332 $a <<= $b;
    333 $a >>= $b;
    334 $a &= $b;
    335 $a |= $b;
    336 $a .= $b;
    337 $a %= $b;
    338 $a ^= $b;
    339 $a = 'a' . 'b';
    340 $a = 'a' . 'abc';
    341 @f1();
    342 print('1');
    343 $a = $array['index'];
    344 $a = $object->prop;
    345 $a = $this->prop;
    346 $array['index'] = 1;
    347 $object->prop = 1;
    348 $this->prop = 1;
    349 $a = isset($b);
    350 $a = empty($b);
    351 unset($b);
    352 $a = isset($array['index']);
    353 $a = empty($array['index']);
    354 unset($array['index']);
    355 $a = isset($object->prop);
    356 $a = empty($object->prop);
    357 #if PHP_VERSION >= 500
    358 unset($object->prop);
    359 #endif
    360 $a = isset($this->prop);
    361 $a = empty($this->prop);
    362 #if PHP_VERSION >= 500
    363 unset($this->prop);
    364 $a = isset(ClassName::$prop);
    365 $a = empty(ClassName::$prop);
    366 unset(ClassName::$prop);
    367 #endif
    368 $a = (int) $b;
    369 $a = (double) $b;
    370 $a = (string) $b;
    371 $a = (array) $b;
    372 $a = (object) $b;
    373 $a = (bool) $b;
    374 $a = (unset) $b;
    375 $a = (array) $b;
    376 $a = (object) $b;
    377 $a = ($b ? $c : $d);
    378 $a = (f1() ? f2() : f3());
    379 ($a = $b) xor $c;
    380 ($a = $b) and $c;
    381 ($a = $b) or $c;
    382 $a = $b && $c;
    383 $a = $b || $c;
    384465#if PHP_VERSION >= 500
    385466
     
    419500#endif
    420501
    421 if (if_()) {
     502if ('if()') {
    422503    echo 'if';
    423504
    424     if (innerIf_()) {
     505    if ('innerIf()') {
    425506        echo 'if innerIf';
    426507    }
    427508}
    428 else if (elseif_()) {
     509else if ('elseif_()') {
    429510    echo 'else if';
    430511
    431     if (innerIf_()) {
     512    if ('innerIf_()') {
    432513        echo 'if innerIf';
    433514    }
    434515}
    435516else {
    436     if (innerIf_()) {
     517    if ('innerIf_()') {
    437518        echo 'if innerIf';
    438519    }
     
    456537}
    457538
     539$array = array(
     540        array('a' => 'b')
     541        );
    458542foreach ($array as $value) {
    459543    foreach ($value as $key => $value) {
     
    464548}
    465549
    466 switch ($normalSwitch) {
     550switch ('$normalSwitch') {
    467551case 'case1':
    468552    echo 'case1';
    469553
    470     switch ($nestedSwitch) {
     554    switch ('$nestedSwitch') {
    471555    case 1:
    472556    }
     
    479563
    480564default:
    481     switch ($nestedSwitch) {
     565    switch ('$nestedSwitch') {
    482566    case 1:
    483567    }
     
    487571}
    488572
    489 switch ($switchWithoutDefault) {
     573switch ('$switchWithoutDefault') {
    490574case 'case1':
    491575    echo 'case1';
     
    497581}
    498582
    499 switch ($switchWithMiddleDefault) {
     583switch ('$switchWithMiddleDefault') {
    500584case 'case1':
    501585    echo 'case1';
     
    511595}
    512596
    513 switch ($switchWithInitialDefault) {
     597switch ('$switchWithInitialDefault') {
    514598default:
    515599    echo 'default';
     
    525609}
    526610
    527 switch (emptySwitch()) {
    528 }
    529 
    530 switch (defaultSwitch()) {
     611switch ('emptySwitch()') {
     612}
     613
     614switch ('defaultSwitch()') {
    531615default:
    532616}
     
    536620}
    537621
    538 while (1) {
     622$a = true;
     623while ($a) {
    539624    declare (ticks=1) {
    540625        echo 2;
    541626    }
     627    $a = false;
    542628}
    543629
     
    549635echo __LINE__;
    550636#if PHP_VERSION >= 530
    551 echo 'PHP 5.3+ code testing';
    552 const CONST_VALUE = 1;
    553 echo $this::CONST_VALUE;
    554 echo $a::CONST_VALUE;
    555 echo CONST_VALUE;
    556 $this::__construct();
    557 $obj::__construct();
    558 $a = $b ?: $d;
    559 $a = ($b ?: $d) + $c;
    560 $a = f1() ?: f2();
    561 $a = C::f1() ?: C::f2();
    562 $a = ($b ? $c : $d);
    563 $a = ($b ? $c : $d) + $c;
    564 $a = (f1() ? f3() : f2());
    565 
    566 if ($b ?: $d) {
    567     echo 'if ($b ?: $d)';
    568 }
    569 
    570 if (($b ?: $d) + $c) {
    571     echo 'if (($b ?: $d) + $c)';
    572 }
    573 
    574 if (f1() ?: f2()) {
    575     echo 'if (f1() ?: f2())';
    576 }
    577 
    578637echo 'goto a';
    579638goto a;
Note: See TracChangeset for help on using the changeset viewer.