helpa-0.4.5.3: HELPA - Heavenly Esoteric Little Portable Assembler to esoteric languages

Safe Haskell | None
Language | Haskell2010

HelVM.HelPA.Assemblers.Backend.WSA.DSL

# Documentation

execDSL :: Natural -> ReaderT Natural (Writer Instructions) () -> InstructionList #

reduceTest :: DSL1V m #

reduceSub :: DSL1V m #

reduceAdd :: DSL1V m #

reduceMul :: DSL1V m #

reduceDiv :: DSL1V m #

reduceMod :: DSL1V m #

reduceLoad :: DSL1V m #

reduceStore :: DSL1V m #

reduceBranchNZ :: DSL1I m #

reduceBranchNM :: DSL1I m #

reduceBranchP :: DSL1I m #

reduceBranchNP :: DSL1I m #

add :: DSL0 m #

sub :: DSL0 m #

mul :: DSL0 m #

div :: DSL0 m #

mod :: DSL0 m #

load :: DSL0 m #

swap :: DSL0 m #

push :: DSL1V m #

store :: DSL0 m #

branchZ :: DSL1I m #

branchM :: DSL1I m #

branch :: DSL1I m #

mark :: DSL1I m #

dup :: DSL0 m #

pop :: DSL0 m #

calculateLocalLabel :: Identifier -> Natural -> Natural -> Identifier #

dsl :: DSL m => Instruction -> m () #

type DSL1V m = DSL m => IntegerValue -> m () #

type DSL1I m = DSL m => Identifier -> m () #

type DSL0 m = DSL m => m () #

type DSL m = (MonadWriter Instructions m, MonadReader Natural m) #

type Instructions = [Instruction] #