-- Haskell module generated by the BNF converter

module SkelRL where

import qualified AbsRL

type Err = Either String
type Result = Err String

failure :: Show a => a -> Result
failure x = Left $ "Undefined case: " ++ show x

transIdent :: AbsRL.Ident -> Result
transIdent x = case x of
  AbsRL.Ident string -> failure x
transRL :: AbsRL.RL -> Result
transRL x = case x of
  AbsRL.ERL rlblks -> failure x
transRlblk :: AbsRL.Rlblk -> Result
transRlblk x = case x of
  AbsRL.Brlblk ident from steps jump -> failure x
transFrom :: AbsRL.From -> Result
transFrom x = case x of
  AbsRL.Ffrom ident -> failure x
  AbsRL.Ffi exp ident1 ident2 -> failure x
  AbsRL.Fentry -> failure x
transJump :: AbsRL.Jump -> Result
transJump x = case x of
  AbsRL.Jgoto ident -> failure x
  AbsRL.Jif exp ident1 ident2 -> failure x
  AbsRL.Jexit -> failure x
transStep :: AbsRL.Step -> Result
transStep x = case x of
  AbsRL.SasnAdd ident exp -> failure x
  AbsRL.SasnMin ident exp -> failure x
  AbsRL.SasnXor ident exp -> failure x
  AbsRL.SasnArrAdd ident exp1 exp2 -> failure x
  AbsRL.SasnArrMin ident exp1 exp2 -> failure x
  AbsRL.SasnArrXor ident exp1 exp2 -> failure x
  AbsRL.Spush ident1 ident2 -> failure x
  AbsRL.Spop ident1 ident2 -> failure x
  AbsRL.Sskip -> failure x
transExp :: AbsRL.Exp -> Result
transExp x = case x of
  AbsRL.Etop exp -> failure x
  AbsRL.Eempty exp -> failure x
  AbsRL.Exor exp1 exp2 -> failure x
  AbsRL.Eeq exp1 exp2 -> failure x
  AbsRL.Ene exp1 exp2 -> failure x
  AbsRL.Elt exp1 exp2 -> failure x
  AbsRL.Egt exp1 exp2 -> failure x
  AbsRL.Ele exp1 exp2 -> failure x
  AbsRL.Ege exp1 exp2 -> failure x
  AbsRL.Eadd exp1 exp2 -> failure x
  AbsRL.Emin exp1 exp2 -> failure x
  AbsRL.Emul exp1 exp2 -> failure x
  AbsRL.Ediv exp1 exp2 -> failure x
  AbsRL.Earr exp1 exp2 -> failure x
  AbsRL.Econ integer -> failure x
  AbsRL.Evar ident -> failure x

