module LogoRep // aritmeticky vyraz type expr = Int of int // ciselna hodnota | Var of int // index parametru aktualni funkce | Plus of expr * expr | Minus of expr * expr | Mul of expr * expr | Div of expr * expr // jedno volani funkce type stmt = Turn of expr // otoceni ve stupnich, proti smeru rucicek | Forward of expr // pohyb | Pen of expr // sirka pera | Color of expr * expr * expr // barva pera | If of expr * stmt list // if | Repeat of expr * stmt list // repeat | Split of stmt list // split | UserFun of expr list * int // uzivatelska funkce, ma seznam parametru a index tela // uzivatelska metoda si pamatuje pocet parametru a kod type userfun = int * stmt list // cely program type prog = Prog of stmt list * userfun array // kod a pole uzivatelskych metod