Ignore:
Timestamp:
2011-06-04T05:34:36+02:00 (4 years ago)
Author:
moo
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.