asil-1.2: dist/build/CFG.hs
-- UUAGC 0.9.36 (src/CFG.ag)
module CFG where
{-# LINE 6 "src/CFG.ag" #-}
import Data.Word
import ByteCode
{-# LINE 11 "dist/src/sdist.27680/asil-1.2/dist/build/CFG.hs" #-}
-- CFG ---------------------------------------------------------
data CFG = CFG_CFG !(Int) !(Segments )
-- CFGs --------------------------------------------------------
type CFGs = [CFG ]
-- Code --------------------------------------------------------
data Code = Code_Jump !(Int) !(JumpCond )
| Code_Label !(Int)
| Code_Nop
| Code_Switch !(Int) !(([Int]))
-- Codes -------------------------------------------------------
type Codes = [Code ]
-- JumpCond ----------------------------------------------------
data JumpCond = JumpCond_IfEq
| JumpCond_IfFalse
| JumpCond_IfGe
| JumpCond_IfGt
| JumpCond_IfLe
| JumpCond_IfLt
| JumpCond_IfNGe
| JumpCond_IfNGt
| JumpCond_IfNLe
| JumpCond_IfNLt
| JumpCond_IfNe
| JumpCond_IfStrictEq
| JumpCond_IfStrictNe
| JumpCond_IfTrue
| JumpCond_Jump
| JumpCond_None
-- Node --------------------------------------------------------
data Node = Node_Opaque !(Instruction)
| Node_Pseudo !(Int) !(Pseudo ) !(Codes )
-- Nodes -------------------------------------------------------
type Nodes = [Node ]
-- Program -----------------------------------------------------
data Program = Program_Program !(CFGs )
-- Programs ----------------------------------------------------
type Programs = [Program ]
-- Pseudo ------------------------------------------------------
data Pseudo = Pseudo_BeginCall
| Pseudo_BeginCoerce
| Pseudo_DoneCall
| Pseudo_DoneCoerce
| Pseudo_EnterBlock
| Pseudo_EnterFun
| Pseudo_FailBlock
| Pseudo_FailFun
| Pseudo_FailedCall
| Pseudo_FailedCoerce
| Pseudo_LeaveBlock
| Pseudo_LeaveFun
| Pseudo_Nop
-- Segment -----------------------------------------------------
data Segment = Segment_Segment !(Int) !(Nodes ) !(Code )
-- Segments ----------------------------------------------------
type Segments = [Segment ]