Start -> Start Start Start -> if Podminka { Prikaz } | if Podminka { Prikaz } Konec_podminky | Prikaz Konec_podminky -> else if Podminka { Prikaz } Konec_podminky Konec_podminky -> else Podminka { Prikaz } Podminka -> Promenna Operator Retezec | (Promenna Operator Retezec) | Promenna Operator Retezec Bool_spojka Podminka| (Promenna Operator Retezec) Bool_spojka Podminka| ! Podminka Bool_spojka -> | | & | ^ Promenna -> $X Retezec -> T | R T -> "Y" | 'Z' | N N -> //jakekoliv cislo X -> [A-Za-Z0-9_-]+ Y -> //cokoliv s escapovanymi uvozovkami Z -> //cokoliv s escapovanymi apostrofy A -> // cokoliv s escapovanymi lomitky R -> /A/ Retezec -> Retezec.Retezec | Promenna.Retezec | Retezec.Promenna | Promenna | Promenna.Promenna Operator -> == | === | != | !== | <= | >= | < | > | ~~ | !~ | ~~~ | !~~ Prikaz -> PrikazPrikaz Prikaz -> Prirazeni | Akce Prirazeni -> Promenna = Retezec | Promenna = Akce Akce -> Co -> Jak Retezec Co -> copy | _ Jak -> pipe | mail | _ -- promenna: $[A-Za-Z0-9_-]+ string: "[^\n]*" | '[^\n]*' | cislo klicove slovo whitespace whitespace s novym radkem operator leva zavorka prava zavorka leva slozena zavorka prava slozena zavorka sipka EOF