<prog> -> <sequence>
<sequence> -> <command> | <sequence><command>
<command> -> <if> | <statement> | <loop> | <infinite>
<if> -> if <cond> <sequence> end | if <cond> <sequence> else <sequence> end | if <cond> <sequence> <elif> else <sequence> end
<elif> -> elif <cond> <sequence> <elif> | elif <cond> <sequence>
<cond> -> rustle | boom | wind | true
<loop> -> <int> times <sequence> end
<infinite> -> forever <sequence> end
<int> -> <digit><int> | <digit>
<digit> -> 0|...|9
<statement> -> moveleft | moveright | stay
if condition
...
elif condition
...
else
...
end