eo-phi-normalizer-1.0.0: src/Language/EO/Phi/Syntax/Abs.hs
-- File generated by the BNF Converter (bnfc 2.9.5).
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-- | The abstract syntax of language Syntax.
module Language.EO.Phi.Syntax.Abs where
import Prelude (String)
import qualified Prelude as C (Eq, Ord, Show, Read)
import qualified Data.String
import qualified Data.Data as C (Data, Typeable)
import qualified GHC.Generics as C (Generic)
data Program = Program [Binding]
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic)
data MetaId
= MetaIdLabel LabelMetaId
| MetaIdTail TailMetaId
| MetaIdBindings BindingsMetaId
| MetaIdObject ObjectMetaId
| MetaIdBytes BytesMetaId
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic)
data Object
= Formation [Binding]
| Application Object [Binding]
| ObjectDispatch Object Attribute
| GlobalObject
| ThisObject
| Termination
| MetaSubstThis Object Object
| MetaObject ObjectMetaId
| MetaTailContext Object TailMetaId
| MetaFunction MetaFunctionName Object
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic)
data Binding
= AlphaBinding Attribute Object
| EmptyBinding Attribute
| DeltaBinding Bytes
| DeltaEmptyBinding
| LambdaBinding Function
| MetaBindings BindingsMetaId
| MetaDeltaBinding BytesMetaId
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic)
data Attribute
= Phi
| Rho
| Label LabelId
| Alpha AlphaIndex
| MetaAttr LabelMetaId
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic)
data RuleAttribute = ObjectAttr Attribute | DeltaAttr | LambdaAttr
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic)
data PeeledObject = PeeledObject ObjectHead [ObjectAction]
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic)
data ObjectHead
= HeadFormation [Binding] | HeadGlobal | HeadThis | HeadTermination
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic)
data ObjectAction
= ActionApplication [Binding] | ActionDispatch Attribute
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic)
newtype Bytes = Bytes String
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic, Data.String.IsString)
newtype Function = Function String
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic, Data.String.IsString)
newtype LabelId = LabelId String
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic, Data.String.IsString)
newtype AlphaIndex = AlphaIndex String
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic, Data.String.IsString)
newtype LabelMetaId = LabelMetaId String
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic, Data.String.IsString)
newtype TailMetaId = TailMetaId String
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic, Data.String.IsString)
newtype BindingsMetaId = BindingsMetaId String
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic, Data.String.IsString)
newtype ObjectMetaId = ObjectMetaId String
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic, Data.String.IsString)
newtype BytesMetaId = BytesMetaId String
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic, Data.String.IsString)
newtype MetaFunctionName = MetaFunctionName String
deriving (C.Eq, C.Ord, C.Show, C.Read, C.Data, C.Typeable, C.Generic, Data.String.IsString)