#grammar Minilanguage {
rule start { START | BEGIN }
rule command { help | showversion | quit }
rule commands { [<command>]+ }
rule stop { STOP | END }
token prog {
<start>
<commands>
<stop>
}
#}
# verarbeitet das Match-Objekt
sub execute (Match $prog) {
say "Running...";
my $i = 0;
for split( rx/\s+/, $prog<prog><commands> ) -> $cmd
{
say " { $i++}: $cmd";
}
say "Done.";
}
my $example_prog = 'START showversion quit STOP';
my $parsed = $example_prog ~~ /<prog>/;
execute($parsed) if $parsed;
say $parsed.perl; # dump Match objekt
Regeln definieren eine einfache Grammatik
Dieser Text ist der Zeitschriften-Ausgabe 08/2007 von iX entnommen.
iOS, Android, Windows Phone 7 und HTML5 - das neue Sonderheft von heise Developer führt Einsteiger und Profis in die Programmierung mobiler Geräte ein.