packages feed

ewe-0.1.0.43: src-ag/Language/EWE/AbsSyn.ag

data MRef | MRefI  Int
          | MRefId String

deriving MRef : Eq, Show

data Cond | CLET
          | CLT
          | CGET
          | CGT
          | CE
          | CNE

deriving Cond: Eq, Show

type Equ = (String,Int)

type Equates = [Equ]

type Labels = [String]

data Stmt | Stmt labels :: Labels instr :: Instr

deriving Stmt: Eq, Show

type Stmts = [Stmt]

data Prog | Prg stms    :: Stmts
                equates :: Equates

deriving Prog : Eq, Show

data Instr | IMMI  dest :: MRef Int         -- Move a int into memory
           | IMMS  dest :: MRef String      -- Move a string into memory
           | IMRPC dest :: MRef Int         -- Move a relative PC into memory
           | SPC   oper :: MRef             -- Set PC from memory
           | IMMM  dest,oper :: MRef        -- Move Memory to Memory
           | IAdd  dest,left,right :: MRef  -- Add two Memory References
           | ISub  dest,left,right :: MRef  -- Sub two Memory References
           | IMul  dest,left,right :: MRef  -- Mul two Memory References
           | IDiv  dest,left,right :: MRef  -- Div two Memory References
           | IMod  dest,left,right ::  MRef -- Mod two Memory References
           | IMRI  dest,oper :: MRef Int    -- Move to Memory Ref
           | IMMR  dest :: MRef Int oper :: MRef -- Move to Memory Ref
           | IRI   oper :: MRef             -- Read an Int into a Mem Ref
           | IWI   oper :: MRef             -- Write an Int from a Mem Ref
           | IRS   left, right :: MRef      -- Read a Str
           | IWS   oper :: MRef             -- Write a Str
           | IGI  Int                       -- Goto to line
           | IGS  String                    -- Goto sym
           | IFI  bcond :: MRef cond :: Cond then :: MRef Int        -- If Cond then Int
           | IFS  bcond :: MRef cond :: Cond then :: MRef String     --
           | IH                             -- Halt
           | IB                             -- Break
           | INI

deriving Instr : Eq, Show