Grammar-to-code mappings
Table of Contents
About
This page shows some generated pseudo-code from rule constructs.
Rule modifiers and grammar attributes (like pin, recoverWhile) will add some lines.
List
Sequence
rule ::= part1 part2 part3
public boolean rule() {
<header>
boolean result = false;
result = part1();
result = result && part2();
result = result && part3();
if (!result) <rollback any state changes>
<footer>
return result;
}
Ordered choice
rule ::= part1 | part2 | part3
public boolean rule() {
<header>
boolean result = false;
result = part1();
if (!result) result = part2();
if (!result) result = part3();
if (!result) <rollback any state changes>
<footer>
return result;
}
Zero-or-more
rule ::= part *
public boolean rule() {
<header>
while (true) {
if (!part()) break;
}
<footer>
return true;
}