Drzewo.hs 747 B

12345678910111213141516171819202122
  1. module Drzewo (Nazwa, Wyrażenie(..), Typ(..), OpisaneWyrażenie(..)) where
  2. type Nazwa = String
  3. data Wyrażenie = Funkcja Nazwa Wyrażenie
  4. | Wywołanie Wyrażenie Wyrażenie
  5. | Zmienna Nazwa
  6. deriving (Eq, Show, Read)
  7. data Typ = TZmiennej Nazwa
  8. | Strzałka Typ Typ
  9. deriving (Eq)
  10. instance Show Typ where
  11. show (TZmiennej x) = '\'':x
  12. show (Strzałka s@(Strzałka _ _) t) = "("++(show s)++") -> "++(show t)
  13. show (Strzałka x y) = (show x)++" -> "++(show y)
  14. data OpisaneWyrażenie = OFunkcja Nazwa OpisaneWyrażenie Typ
  15. | OWywołanie OpisaneWyrażenie OpisaneWyrażenie Typ
  16. | OZmienna Nazwa Typ
  17. deriving (Eq, Show)