-- 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 ]