27 lines
615 B
Haskell
27 lines
615 B
Haskell
-- File generated by the BNF Converter (bnfc 2.9.4.1).
|
|
|
|
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
|
|
|
|
-- | The abstract syntax of language Grammar.
|
|
|
|
module Grammar.Abs where
|
|
|
|
import Prelude (Integer, String)
|
|
import qualified Prelude as C (Eq, Ord, Show, Read)
|
|
import qualified Data.String
|
|
|
|
data Program = Program Exp
|
|
deriving (C.Eq, C.Ord, C.Show, C.Read)
|
|
|
|
data Exp
|
|
= EId Ident
|
|
| EInt Integer
|
|
| EApp Exp Exp
|
|
| EAdd Exp Exp
|
|
| ESub Exp Exp
|
|
| EAbs Ident Exp
|
|
deriving (C.Eq, C.Ord, C.Show, C.Read)
|
|
|
|
newtype Ident = Ident String
|
|
deriving (C.Eq, C.Ord, C.Show, C.Read, Data.String.IsString)
|
|
|