Aer Interpreter Source
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

81 lines
1.2 KiB

class Test {
public 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");
}
public 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:
}
public void goto_test3() {
int $a = 10;
a:
$a--;
print("$a\n");
if($a > 5) {
goto a;
}
print("\n");
}
public 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(strlen($headers[$pos]) <= ++$c) {
goto cIteratorExit;
}
goto cIterator;
}
cIteratorExit: {
if(array_key_exists(++$pos, $headers)) {
goto hIterator;
}
}
}
}
}
class Program {
private object $test;
public void __construct() {
$this->test = new Test();
}
public void main() {
$this->test->goto_test1();
$this->test->goto_test2();
$this->test->goto_test3();
$this->test->goto_test4();
}
}