churf/src/Grammar/Abs.hs
2023-02-04 13:20:46 +01:00

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)