Aer/tests/goto_statement.aer
belliash 55acf8111f
All checks were successful
The build was successful.
Assume private visibility for all class members by default.
In most (all?) modern OOP languages class members visibility is assumed to be private and programmer has to consciously set it to public or protected. PHP has the different approach what can cause a security flaws in written scripts. AerScript will not follow this way, as it seems to be conceptually broken.
2019-05-17 08:40:41 +02:00

82 lines
1.2 KiB
Plaintext

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(!($headers[$pos][++$c])) {
goto cIteratorExit;
}
goto cIterator;
}
cIteratorExit: {
if($headers[++$pos]) {
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();
}
}