asil-1.2: dist/build/Language.hs
-- UUAGC 0.9.36 (src/Language.ag)
module Language where
{-# LINE 6 "src/Language.ag" #-}
import Data.Word
{-# LINE 10 "dist/src/sdist.27680/asil-1.2/dist/build/Language.hs" #-}
-- BinOp -------------------------------------------------------
data BinOp = BinOp_Add
| BinOp_And
| BinOp_Div
| BinOp_Max
| BinOp_Min
| BinOp_Mod
| BinOp_Mul
| BinOp_Or
| BinOp_Rel (Rel )
| BinOp_Sub
deriving ( Eq,Show)
-- Coercion ----------------------------------------------------
data Coercion = Coercion_Any
| Coercion_Any'
| Coercion_Double
| Coercion_Instance
| Coercion_Int
| Coercion_None
| Coercion_String
| Coercion_UInt
deriving ( Eq,Show)
-- Instr -------------------------------------------------------
data Instr = Instr_Alt (Instr ) (Instr ) (Bool)
| Instr_Assert (Val )
| Instr_Assign (Int) (Val )
| Instr_BinOp (Val ) (Val ) (Val ) (BinOp )
| Instr_CallFun (Val ) (Params ) (Params )
| Instr_CallProp (Val ) (Params ) (Params )
| Instr_Coerce (Coercion ) (Val ) (Val )
| Instr_Dyn (Instr )
| Instr_Fail ((Maybe String))
| Instr_Last (Instr )
| Instr_Loop (Instr )
| Instr_Match (Match )
| Instr_Nop
| Instr_Pretty (Val ) (Params ) (Val )
| Instr_Scan (Val ) (Val ) (Params )
| Instr_Seq (Instr ) (Instr )
| Instr_Static (Instr )
| Instr_Type (Val ) (Val )
| Instr_TypeOf (Val ) (Val )
| Instr_UnOp (Val ) (Val ) (UnOp )
deriving ( Eq,Show)
-- Match -------------------------------------------------------
data Match = Match_BeginCall (Val ) (Val ) (Val ) (Params )
| Match_BeginCoerce (Val ) (Val ) (Coercion )
| Match_DoneCall (Val ) (Val ) (Val ) (Params )
| Match_DoneCoerce (Val ) (Val ) (Coercion )
| Match_EnterBlock (Val ) (Val ) (Val )
| Match_EnterFun (Val ) (Val ) (Val ) (Params )
| Match_FailBlock (Val ) (Val )
| Match_FailFun (Val ) (Val ) (Val ) (Val )
| Match_FailedCall (Val ) (Val ) (Val ) (Val )
| Match_FailedCoerce (Val ) (Val ) (Val ) (Coercion )
| Match_LeaveBlock (Val ) (Val )
| Match_LeaveFun (Val ) (Val ) (Val ) (Params )
deriving ( Eq,Show)
-- MaybeVal ----------------------------------------------------
type MaybeVal = Maybe Val
-- Param -------------------------------------------------------
data Param = Param_Param (Val )
deriving ( Eq,Show)
-- Params ------------------------------------------------------
data Params = Params_Any (Val )
| Params_Cons (Param ) (Params )
| Params_Nil
deriving ( Eq,Show)
-- Rel ---------------------------------------------------------
data Rel = Rel_Equal
| Rel_Greater
| Rel_GreaterEqual
| Rel_Negate (Rel )
| Rel_Smaller
| Rel_SmallerEqual
deriving ( Eq,Show)
-- Spec --------------------------------------------------------
data Spec = Spec_Instr (Instr )
deriving ( Eq,Show)
-- Type --------------------------------------------------------
data Type = Type_Any
| Type_Array (Type )
| Type_Base
| Type_Bool
| Type_Double
| Type_Int
| Type_Method
| Type_Object (String)
| Type_String
| Type_UInt
deriving ( Eq,Show)
-- UnOp --------------------------------------------------------
data UnOp = UnOp_Abs
| UnOp_ExtractJust
| UnOp_IsJust
| UnOp_IsNothing
| UnOp_Length
| UnOp_Neg
| UnOp_Not
deriving ( Eq,Show)
-- Val ---------------------------------------------------------
data Val = Val_Array (Vals )
| Val_Bool (Bool)
| Val_Dyn (Val ) (Val )
| Val_Ind (Val ) (Val )
| Val_Int (Int)
| Val_Method (String)
| Val_Prop (Val ) (String)
| Val_String (String)
| Val_Sym (Int)
| Val_Type (Type )
| Val_UInt (Word32)
deriving ( Eq,Show)
-- Vals --------------------------------------------------------
type Vals = [Val ]