Changeset 817 in svn for branches/1.3/decompilesample.php


Ignore:
Timestamp:
2011-06-04T03:34:36Z (4 years ago)
Author:
Xuefer
Message:

merge from trunk: disassembler/decompiler improvements

Location:
branches/1.3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/1.3

  • branches/1.3/decompilesample.php

    r784 r817  
    6565    /** doc */
    6666    protected function protectedMethod(ClassName $a, $b = array(
    67         array('array')
    68         ))
     67            array('array')
     68            ))
    6969    {
    7070        $runtimeArray = array('1');
     
    155155
    156156if ($late) {
    157 class LateBindingClass
    158 {}
    159 
    160 function lateBindingFunction($arg)
    161 {
    162     echo 'lateFunction';
    163 }
     157    class LateBindingClass
     158    {
     159        public function __construct()
     160        {
     161        }
     162    }
     163
     164    function lateBindingFunction($arg)
     165    {
     166        echo 'lateFunction';
     167    }
    164168}
    165169
     
    204208$a = $obj->b--;
    205209$a = --$obj->b;
    206 $a = $b xor $c;
    207210$a = !$b;
    208211$a = $b === $c;
     
    250253$a = (object) $b;
    251254// PHP6+ $a = (scalar) $b;
    252 $a = $b ? $c : $d;
    253 $a = f1() ? f2() : f3();
    254 $a = $b and $c;
    255 $a = $b or $c;
     255$a = ($b ? $c : $d);
     256$a = (f1() ? f2() : f3());
     257($a = $b) xor $c;
     258($a = $b) and $c;
     259($a = $b) or $c;
    256260$a = $b && $c;
    257261$a = $b || $c;
    258262
    259 try {
    260     echo 'outer try 1';
     263do {
    261264    try {
    262         echo 'inner try';
    263     }
    264     catch (InnerException $e) {
     265        echo 'outer try 1';
     266
     267        try {
     268            echo 'inner try';
     269        }
     270        catch (InnerException $e) {
     271            echo $e;
     272        }
     273
     274        echo 'outer try 2';
     275    }
     276    catch (OuterException $e) {
    265277        echo $e;
    266278    }
    267     echo 'outer try 2';
    268 }
    269 catch (OuterException $e) {
    270     echo $e;
    271 }
    272 
    273 if ($a) {
    274     echo 'if ($a)';
    275 }
    276 else if ($b) {
    277     echo 'else if ($b)';
     279} while (0);
     280
     281if (if_()) {
     282    echo 'if';
     283
     284    if (innerIf_()) {
     285        echo 'if innerIf';
     286    }
     287}
     288else if (elseif_()) {
     289    echo 'else if';
     290
     291    if (innerIf_()) {
     292        echo 'if innerIf';
     293    }
    278294}
    279295else {
     296    if (innerIf_()) {
     297        echo 'if innerIf';
     298    }
     299
    280300    echo 'else';
    281301}
     
    289309} while (false);
    290310
    291 for ($i = 1; $i < 10; ++$i) {
     311$i = 1;
     312
     313for (; $i < 10; ++$i) {
    292314    echo $i;
    293315    break;
     
    295317
    296318foreach ($array as $key => $value) {
    297     foreach ($array as $key => $value) {
     319    foreach ($value as $key => $value) {
    298320        echo $key . ' = ' . $value . "\n";
    299321        break 2;
     
    302324}
    303325
    304 switch ($switch) {
     326switch ($normalSwitch) {
    305327case 'case1':
    306328    echo 'case1';
     329
     330    switch ($nestedSwitch) {
     331    case 1:
     332    }
     333
    307334    break;
    308335
     
    312339
    313340default:
     341    switch ($nestedSwitch) {
     342    case 1:
     343    }
     344
    314345    echo 'default';
    315346    break;
     347}
     348
     349switch ($switchWithoutDefault) {
     350case 'case1':
     351    echo 'case1';
     352    break;
     353
     354case 'case2':
     355    echo 'case2';
     356    break;
     357}
     358
     359switch ($switchWithMiddleDefault) {
     360case 'case1':
     361    echo 'case1';
     362    break;
     363
     364default:
     365    echo 'default';
     366    break;
     367
     368case 'case2':
     369    echo 'case2';
     370    break;
     371}
     372
     373switch ($switchWithInitialDefault) {
     374default:
     375    echo 'default';
     376    break;
     377
     378case 'case1':
     379    echo 'case1';
     380    break;
     381
     382case 'case2':
     383    echo 'case2';
     384    break;
     385}
     386
     387switch (emptySwitch()) {
     388}
     389
     390switch (emptySwitch()) {
     391default:
    316392}
    317393
    318394declare (ticks=1) {
    319395    echo 1;
    320     echo 2;
     396    while (1) {
     397        echo 2;
     398    }
    321399}
    322400
     
    336414$this::__construct();
    337415$obj::__construct();
    338 
    339416$a = $b ?: $d;
    340417$a = ($b ?: $d) + $c;
    341418$a = f1() ?: f2();
     419$a = ($b ? $c : $d);
     420$a = ($b ? $c : $d) + $c;
     421$a = (f1() ? f3() : f2());
     422
     423if ($b ?: $d) {
     424    echo 'if ($b ?: $d)';
     425}
     426
     427if (($b ?: $d) + $c) {
     428    echo 'if (($b ?: $d) + $c)';
     429}
     430
     431if (f1() ?: f2()) {
     432    echo 'if (f1() ?: f2())';
     433}
    342434
    343435echo 'goto a';
    344436goto a;
    345437
    346 for ($i = 1; $i <= 2; ++$i) {
     438$i = 1;
     439
     440for (; $i <= 2; ++$i) {
    347441    goto a;
    348442}
     
    350444a:
    351445echo 'label a';
    352 echo preg_replace_callback('~-([a-z])~', function ($match) {
     446echo preg_replace_callback('~-([a-z])~', function($match) {
    353447    return strtoupper($match[1]);
    354448}, 'hello-world');
    355 $greet = function ($name) {
     449$greet = function($name) {
    356450    printf("Hello %s\r\n", $name);
    357451};
Note: See TracChangeset for help on using the changeset viewer.