Safe Haskell | Safe |
---|---|
Language | Haskell98 |
Combinators for building abstract syntax.
- assemblyRef :: AssemblyName -> Version -> PublicKeyToken -> AssemblyRef
- entryPoint :: MethodDecl
- localsInit :: [Local] -> MethodDecl
- maxStack :: Int -> MethodDecl
- add :: MethodDecl
- add_ovf :: MethodDecl
- add_ovf_un :: MethodDecl
- and :: MethodDecl
- beq :: Label -> MethodDecl
- bge :: Label -> MethodDecl
- bgt :: Label -> MethodDecl
- ble :: Label -> MethodDecl
- blt :: Label -> MethodDecl
- box :: PrimitiveType -> MethodDecl
- br :: Label -> MethodDecl
- break :: MethodDecl
- brfalse :: Label -> MethodDecl
- brtrue :: Label -> MethodDecl
- call :: [CallConv] -> PrimitiveType -> AssemblyName -> TypeName -> MethodName -> [PrimitiveType] -> MethodDecl
- callvirt :: PrimitiveType -> AssemblyName -> TypeName -> MethodName -> [PrimitiveType] -> MethodDecl
- castclass :: PrimitiveType -> MethodDecl
- ceq :: MethodDecl
- cgt :: MethodDecl
- ckfinite :: MethodDecl
- clt :: MethodDecl
- dup :: MethodDecl
- div :: MethodDecl
- div_un :: MethodDecl
- isinst :: TypeName -> MethodDecl
- ldarg :: Offset -> MethodDecl
- ldargN :: DottedName -> MethodDecl
- ldarga :: Offset -> MethodDecl
- ldargaN :: DottedName -> MethodDecl
- ldc_i4 :: Integer -> MethodDecl
- ldc_i8 :: Integer -> MethodDecl
- ldc_r4 :: Float -> MethodDecl
- ldc_r8 :: Double -> MethodDecl
- ldchar :: Char -> MethodDecl
- ldelem_i :: MethodDecl
- ldelem_i1 :: MethodDecl
- ldelem_i2 :: MethodDecl
- ldelem_i4 :: MethodDecl
- ldelem_i8 :: MethodDecl
- ldelem_u1 :: MethodDecl
- ldelem_u2 :: MethodDecl
- ldelem_u4 :: MethodDecl
- ldelem_u8 :: MethodDecl
- ldelem_r4 :: MethodDecl
- ldelem_r8 :: MethodDecl
- ldelem_ref :: MethodDecl
- ldelema :: MethodDecl
- ldfld :: PrimitiveType -> AssemblyName -> TypeName -> FieldName -> MethodDecl
- ldflda :: PrimitiveType -> AssemblyName -> TypeName -> FieldName -> MethodDecl
- ldftn :: PrimitiveType -> AssemblyName -> TypeName -> MethodName -> [PrimitiveType] -> MethodDecl
- ldftn_instance :: PrimitiveType -> AssemblyName -> TypeName -> MethodName -> [PrimitiveType] -> MethodDecl
- ldind_i :: MethodDecl
- ldind_i1 :: MethodDecl
- ldind_i2 :: MethodDecl
- ldind_i4 :: MethodDecl
- ldind_i8 :: MethodDecl
- ldind_r4 :: MethodDecl
- ldind_r8 :: MethodDecl
- ldind_ref :: MethodDecl
- ldind_u1 :: MethodDecl
- ldind_u2 :: MethodDecl
- ldind_u4 :: MethodDecl
- ldlen :: MethodDecl
- ldloc :: Offset -> MethodDecl
- ldlocN :: LocalName -> MethodDecl
- ldloca :: Offset -> MethodDecl
- ldlocaN :: LocalName -> MethodDecl
- ldnull :: MethodDecl
- ldsfld :: PrimitiveType -> AssemblyName -> TypeName -> FieldName -> MethodDecl
- ldsflda :: PrimitiveType -> AssemblyName -> TypeName -> FieldName -> MethodDecl
- ldstr :: String -> MethodDecl
- ldtoken :: PrimitiveType -> MethodDecl
- mul :: MethodDecl
- mul_ovf :: MethodDecl
- mul_ovf_un :: MethodDecl
- neg :: MethodDecl
- newarr :: PrimitiveType -> MethodDecl
- newobj :: AssemblyName -> TypeName -> [PrimitiveType] -> MethodDecl
- nop :: MethodDecl
- not :: MethodDecl
- or :: MethodDecl
- pop :: MethodDecl
- rem :: MethodDecl
- rem_un :: MethodDecl
- ret :: MethodDecl
- shl :: MethodDecl
- shr :: MethodDecl
- shr_un :: MethodDecl
- stelem_i :: MethodDecl
- stelem_i1 :: MethodDecl
- stelem_i2 :: MethodDecl
- stelem_i4 :: MethodDecl
- stelem_i8 :: MethodDecl
- stelem_r4 :: MethodDecl
- stelem_r8 :: MethodDecl
- stelem_ref :: MethodDecl
- stfld :: PrimitiveType -> AssemblyName -> TypeName -> FieldName -> MethodDecl
- stind_i :: MethodDecl
- stind_i1 :: MethodDecl
- stind_i2 :: MethodDecl
- stind_i4 :: MethodDecl
- stind_i8 :: MethodDecl
- stind_r4 :: MethodDecl
- stind_r8 :: MethodDecl
- stind_ref :: MethodDecl
- stloc :: Offset -> MethodDecl
- stlocN :: LocalName -> MethodDecl
- stsfld :: PrimitiveType -> AssemblyName -> TypeName -> FieldName -> MethodDecl
- sub :: MethodDecl
- sub_ovf :: MethodDecl
- sub_ovf_un :: MethodDecl
- switch :: [Label] -> MethodDecl
- tail :: MethodDecl
- tailcall :: MethodDecl -> MethodDecl
- throw :: MethodDecl
- unaligned :: Alignment -> MethodDecl
- unalignedPtr :: Alignment -> MethodDecl -> MethodDecl
- unbox :: PrimitiveType -> MethodDecl
- unbox_any :: PrimitiveType -> MethodDecl
- volatile :: MethodDecl
- volatilePtr :: MethodDecl -> MethodDecl
- xor :: MethodDecl
- label :: Label -> MethodDecl
- comment :: String -> MethodDecl
- extends :: TypeName -> Maybe TypeSpec
- noExtends :: Maybe TypeSpec
- noImplements :: [TypeSpec]
- classDef :: [ClassAttr] -> TypeName -> Maybe TypeSpec -> [TypeSpec] -> [FieldDef] -> [MethodDef] -> [TypeDef] -> TypeDef
- defaultCtor :: [Parameter] -> MethodDef
- extendsCtor :: AssemblyName -> TypeName -> [Parameter] -> MethodDef
- simpleAssembly :: [MethodDecl] -> Assembly
- mscorlibRef :: AssemblyRef
Assembly ref functions
assemblyRef :: AssemblyName -> Version -> PublicKeyToken -> AssemblyRef Source #
Directive functions
localsInit :: [Local] -> MethodDecl Source #
maxStack :: Int -> MethodDecl Source #
OpCode functions
add :: MethodDecl Source #
add_ovf :: MethodDecl Source #
and :: MethodDecl Source #
beq :: Label -> MethodDecl Source #
bge :: Label -> MethodDecl Source #
bgt :: Label -> MethodDecl Source #
ble :: Label -> MethodDecl Source #
blt :: Label -> MethodDecl Source #
box :: PrimitiveType -> MethodDecl Source #
br :: Label -> MethodDecl Source #
break :: MethodDecl Source #
brfalse :: Label -> MethodDecl Source #
brtrue :: Label -> MethodDecl Source #
call :: [CallConv] -> PrimitiveType -> AssemblyName -> TypeName -> MethodName -> [PrimitiveType] -> MethodDecl Source #
callvirt :: PrimitiveType -> AssemblyName -> TypeName -> MethodName -> [PrimitiveType] -> MethodDecl Source #
castclass :: PrimitiveType -> MethodDecl Source #
ceq :: MethodDecl Source #
cgt :: MethodDecl Source #
clt :: MethodDecl Source #
dup :: MethodDecl Source #
div :: MethodDecl Source #
div_un :: MethodDecl Source #
isinst :: TypeName -> MethodDecl Source #
ldarg :: Offset -> MethodDecl Source #
ldargN :: DottedName -> MethodDecl Source #
ldarga :: Offset -> MethodDecl Source #
ldargaN :: DottedName -> MethodDecl Source #
ldc_i4 :: Integer -> MethodDecl Source #
ldc_i8 :: Integer -> MethodDecl Source #
ldc_r4 :: Float -> MethodDecl Source #
ldc_r8 :: Double -> MethodDecl Source #
ldchar :: Char -> MethodDecl Source #
ldelema :: MethodDecl Source #
ldfld :: PrimitiveType -> AssemblyName -> TypeName -> FieldName -> MethodDecl Source #
ldflda :: PrimitiveType -> AssemblyName -> TypeName -> FieldName -> MethodDecl Source #
ldftn :: PrimitiveType -> AssemblyName -> TypeName -> MethodName -> [PrimitiveType] -> MethodDecl Source #
ldftn_instance :: PrimitiveType -> AssemblyName -> TypeName -> MethodName -> [PrimitiveType] -> MethodDecl Source #
ldind_i :: MethodDecl Source #
ldlen :: MethodDecl Source #
ldloc :: Offset -> MethodDecl Source #
ldlocN :: LocalName -> MethodDecl Source #
ldloca :: Offset -> MethodDecl Source #
ldlocaN :: LocalName -> MethodDecl Source #
ldnull :: MethodDecl Source #
ldsfld :: PrimitiveType -> AssemblyName -> TypeName -> FieldName -> MethodDecl Source #
ldsflda :: PrimitiveType -> AssemblyName -> TypeName -> FieldName -> MethodDecl Source #
ldstr :: String -> MethodDecl Source #
ldtoken :: PrimitiveType -> MethodDecl Source #
mul :: MethodDecl Source #
mul_ovf :: MethodDecl Source #
neg :: MethodDecl Source #
newarr :: PrimitiveType -> MethodDecl Source #
newobj :: AssemblyName -> TypeName -> [PrimitiveType] -> MethodDecl Source #
Creates a new object. Note that this function assumes the constructor returns Void. If this is not the case, call the Newobj constructor manually.
nop :: MethodDecl Source #
not :: MethodDecl Source #
or :: MethodDecl Source #
pop :: MethodDecl Source #
rem :: MethodDecl Source #
rem_un :: MethodDecl Source #
ret :: MethodDecl Source #
shl :: MethodDecl Source #
shr :: MethodDecl Source #
shr_un :: MethodDecl Source #
stfld :: PrimitiveType -> AssemblyName -> TypeName -> FieldName -> MethodDecl Source #
stind_i :: MethodDecl Source #
stloc :: Offset -> MethodDecl Source #
stlocN :: LocalName -> MethodDecl Source #
stsfld :: PrimitiveType -> AssemblyName -> TypeName -> FieldName -> MethodDecl Source #
sub :: MethodDecl Source #
sub_ovf :: MethodDecl Source #
switch :: [Label] -> MethodDecl Source #
tail :: MethodDecl Source #
tailcall :: MethodDecl -> MethodDecl Source #
throw :: MethodDecl Source #
unaligned :: Alignment -> MethodDecl Source #
unalignedPtr :: Alignment -> MethodDecl -> MethodDecl Source #
unbox :: PrimitiveType -> MethodDecl Source #
unbox_any :: PrimitiveType -> MethodDecl Source #
volatilePtr :: MethodDecl -> MethodDecl Source #
xor :: MethodDecl Source #
Convenient AST functions
label :: Label -> MethodDecl Source #
Relabel a labelled MethodDecl with a new label.
comment :: String -> MethodDecl Source #
noImplements :: [TypeSpec] Source #
classDef :: [ClassAttr] -> TypeName -> Maybe TypeSpec -> [TypeSpec] -> [FieldDef] -> [MethodDef] -> [TypeDef] -> TypeDef Source #
defaultCtor :: [Parameter] -> MethodDef Source #
extendsCtor :: AssemblyName -> TypeName -> [Parameter] -> MethodDef Source #
simpleAssembly :: [MethodDecl] -> Assembly Source #
Create a simple Assembly with one method containing the provided MethodDecls.