syntax logoPlayer_syntax (logoPlayer_lexique) { rule { # Routine definition $PROGRAM$ @routineMap routineArray = {} !? routineArray $BEGIN$ !? routineArray $END$ $.$ } rule ?! @routineMap routineArray { repeat while !? routineArray end } rule ?! @routineMap ioRoutineArray { $ROUTINE$ $identifier$ ?let @lstring routineId [ !? ioRoutineArray insertKey !routineId ] log routineId $BEGIN$ !? ioRoutineArray $END$ } rule ?! @routineMap ioRoutineArray { repeat while !? ioRoutineArray end } rule ?! @routineMap ioRoutineArray { select or or !? ioRoutineArray end $;$ } rule { select $FORWARD$ or $ROTATE$ end $integer$ ?let @luint moveLen log moveLen } rule { $PEN$ select $UP$ or $DOWN$ end } rule ?! @routineMap ioRoutineArray { $CALL$ $identifier$ ?let @lstring routineId [ ioRoutineArray searchKey !routineId ] } }