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

Safe Haskell | None
Language | Haskell2010

HelVM.HelPA.Assemblers.Backend.WSA.DSL

# Documentation

execDSL :: RWS Natural Instructions Natural a -> InstructionList #

reducePushS :: MonadWriter InstructionList m => SString -> m () #

pushLiteralS :: SString -> InstructionList #

pushLiteralC :: Char -> Instruction #

push :: MonadASM1V m #

pop :: MonadASM0 m #

dup :: MonadASM0 m #

swap :: MonadASM0 m #

reduceTest :: MonadASM1V m #

reduceAddOpt :: MonadASM1VO m #

reduceAdd :: MonadASM1V m #

add :: MonadASM0 m #

reduceSubOpt :: MonadASM1VO m #

reduceSub :: MonadASM1V m #

sub :: MonadASM0 m #

reduceMulOpt :: MonadASM1VO m #

reduceMul :: MonadASM1V m #

mul :: MonadASM0 m #

reduceDivOpt :: MonadASM1VO m #

reduceDiv :: MonadASM1V m #

div :: MonadASM0 m #

reduceModOpt :: MonadASM1VO m #

reduceMod :: MonadASM1V m #

mod :: MonadASM0 m #

reduceLoadOpt :: MonadASM1VO m #

reduceLoad :: MonadASM1V m #

load :: MonadASM0 m #

reduceStoreOpt :: MonadASM1VO m #

reduceStore :: MonadASM1V m #

store :: MonadASM0 m #

mark :: MonadASM1I m #

branch :: MonadASM1I m #

branchZ :: MonadASM1I m #

branchM :: MonadASM1I m #

branchNZ :: MonadASM1I m #

branchNM :: MonadASM1I m #

branchP :: MonadASM1I m #

branchNP :: MonadASM1I m #

return :: MonadASM0 m #

end :: MonadASM0 m #

type MonadASM1VO m = MonadASM m => Maybe IntegerValue -> m () #

type MonadASM1V m = MonadASM m => IntegerValue -> m () #

type MonadASM1IO m = MonadASM m => Maybe Identifier -> m () #

type MonadASM1I m = MonadASM m => Identifier -> m () #

type MonadASM0 m = MonadASM m => m () #

type MonadASM m = MonadDSL Instruction m #

type Instructions = [Instruction] #