This commit is contained in:
81
tests/goto_statement.aer
Normal file
81
tests/goto_statement.aer
Normal file
@@ -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();
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user