ewe-0.1.0.43: src/Language/EWE/AbsSyn.hs
-- UUAGC 0.9.52.1 (src-ag/Language/EWE/AbsSyn.ag)
module Language.EWE.AbsSyn where
-- Cond --------------------------------------------------------
{-
alternatives:
alternative CLET:
alternative CLT:
alternative CGET:
alternative CGT:
alternative CE:
alternative CNE:
-}
data Cond = CLET
| CLT
| CGET
| CGT
| CE
| CNE
deriving ( Eq,Show)
-- Equ ---------------------------------------------------------
{-
alternatives:
alternative Tuple:
child x1 : {String}
child x2 : {Int}
-}
type Equ = ( (String),(Int))
-- Equates -----------------------------------------------------
{-
alternatives:
alternative Cons:
child hd : Equ
child tl : Equates
alternative Nil:
-}
type Equates = [Equ]
-- Instr -------------------------------------------------------
{-
alternatives:
alternative IMMI:
child dest : MRef
child int : {Int}
alternative IMMS:
child dest : MRef
child string : {String}
alternative IMRPC:
child dest : MRef
child int : {Int}
alternative SPC:
child oper : MRef
alternative IMMM:
child dest : MRef
child oper : MRef
alternative IAdd:
child dest : MRef
child left : MRef
child right : MRef
alternative ISub:
child dest : MRef
child left : MRef
child right : MRef
alternative IMul:
child dest : MRef
child left : MRef
child right : MRef
alternative IDiv:
child dest : MRef
child left : MRef
child right : MRef
alternative IMod:
child dest : MRef
child left : MRef
child right : MRef
alternative IMRI:
child dest : MRef
child oper : MRef
child int : {Int}
alternative IMMR:
child dest : MRef
child int : {Int}
child oper : MRef
alternative IRI:
child oper : MRef
alternative IWI:
child oper : MRef
alternative IRS:
child left : MRef
child right : MRef
alternative IWS:
child oper : MRef
alternative IGI:
child int : {Int}
alternative IGS:
child string : {String}
alternative IFI:
child bcond : MRef
child cond : Cond
child then : MRef
child int : {Int}
alternative IFS:
child bcond : MRef
child cond : Cond
child then : MRef
child string : {String}
alternative IH:
alternative IB:
alternative INI:
-}
data Instr = IMMI (MRef) (Int)
| IMMS (MRef) (String)
| IMRPC (MRef) (Int)
| SPC (MRef)
| IMMM (MRef) (MRef)
| IAdd (MRef) (MRef) (MRef)
| ISub (MRef) (MRef) (MRef)
| IMul (MRef) (MRef) (MRef)
| IDiv (MRef) (MRef) (MRef)
| IMod (MRef) (MRef) (MRef)
| IMRI (MRef) (MRef) (Int)
| IMMR (MRef) (Int) (MRef)
| IRI (MRef)
| IWI (MRef)
| IRS (MRef) (MRef)
| IWS (MRef)
| IGI (Int)
| IGS (String)
| IFI (MRef) (Cond) (MRef) (Int)
| IFS (MRef) (Cond) (MRef) (String)
| IH
| IB
| INI
deriving ( Eq,Show)
-- Labels ------------------------------------------------------
{-
alternatives:
alternative Cons:
child hd : {String}
child tl : Labels
alternative Nil:
-}
type Labels = [(String)]
-- MRef --------------------------------------------------------
{-
alternatives:
alternative MRefI:
child int : {Int}
alternative MRefId:
child string : {String}
-}
data MRef = MRefI (Int)
| MRefId (String)
deriving ( Eq,Show)
-- Prog --------------------------------------------------------
{-
alternatives:
alternative Prg:
child stms : Stmts
child equates : Equates
-}
data Prog = Prg (Stmts) (Equates)
deriving ( Eq,Show)
-- Stmt --------------------------------------------------------
{-
alternatives:
alternative Stmt:
child labels : Labels
child instr : Instr
-}
data Stmt = Stmt (Labels) (Instr)
deriving ( Eq,Show)
-- Stmts -------------------------------------------------------
{-
alternatives:
alternative Cons:
child hd : Stmt
child tl : Stmts
alternative Nil:
-}
type Stmts = [Stmt]