2 changed files with 128 additions and 0 deletions
@ -0,0 +1,81 @@ |
|||
class Test { |
|||
|
|||
void goto_test1() { |
|||
int $i = 0; |
|||
a: |
|||
print("Foo $i\n"); |
|||
if($i > 5) |
|||
goto b; |
|||
$i++; |
|||
goto a; |
|||
b: |
|||
print("Bar $i\n\n"); |
|||
} |
|||
|
|||
void goto_test2(int $a = 2) { |
|||
switch($a) { |
|||
case 1: |
|||
print("\$a is 1\n\n"); |
|||
goto out; |
|||
case 2: |
|||
print("\$a is 2\n\n"); |
|||
goto out; |
|||
case 3: |
|||
print("\$a is 3\n\n"); |
|||
goto out; |
|||
case 4: |
|||
print("\$a is 4\n\n"); |
|||
goto out; |
|||
} |
|||
out: |
|||
} |
|||
|
|||
void goto_test3() { |
|||
int $a = 10; |
|||
a: |
|||
$a--; |
|||
print("$a\n"); |
|||
if($a > 5) { |
|||
goto a; |
|||
} |
|||
print("\n"); |
|||
} |
|||
|
|||
void goto_test4() { |
|||
string[] $headers = {'subject', 'bcc', 'to', 'cc', 'date', 'sender'}; |
|||
int $pos = 0; |
|||
int $c; |
|||
hIterator: { |
|||
$c = 0; |
|||
print($headers[$pos], "\n"); |
|||
cIterator: { |
|||
print(" ", $headers[$pos][$c], "\n"); |
|||
if(!($headers[$pos][++$c])) { |
|||
goto cIteratorExit; |
|||
} |
|||
goto cIterator; |
|||
} |
|||
cIteratorExit: { |
|||
if($headers[++$pos]) { |
|||
goto hIterator; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
class Program { |
|||
private object $test; |
|||
|
|||
void __construct() { |
|||
$this->test = new Test(); |
|||
} |
|||
|
|||
void main() { |
|||
$this->test->goto_test1(); |
|||
$this->test->goto_test2(); |
|||
$this->test->goto_test3(); |
|||
$this->test->goto_test4(); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,47 @@ |
|||
Foo 0 |
|||
Foo 1 |
|||
Foo 2 |
|||
Foo 3 |
|||
Foo 4 |
|||
Foo 5 |
|||
Foo 6 |
|||
Bar 6 |
|||
|
|||
$a is 2 |
|||
|
|||
9 |
|||
8 |
|||
7 |
|||
6 |
|||
5 |
|||
|
|||
subject |
|||
s |
|||
u |
|||
b |
|||
j |
|||
e |
|||
c |
|||
t |
|||
bcc |
|||
b |
|||
c |
|||
c |
|||
to |
|||
t |
|||
o |
|||
cc |
|||
c |
|||
c |
|||
date |
|||
d |
|||
a |
|||
t |
|||
e |
|||
sender |
|||
s |
|||
e |
|||
n |
|||
d |
|||
e |
|||
r |
Loading…
Reference in new issue