jvm-binary-0.1.0: A library for reading Java class-files

Copyright(c) Christian Gram Kalhauge 2018
LicenseMIT
Maintainerkalhuage@cs.ucla.edu
Safe HaskellNone
LanguageHaskell2010

Language.JVM.Staged

Contents

Description

 

Synopsis

Documentation

class Staged s where Source #

Minimal complete definition

stage | evolve, devolve

Methods

stage :: LabelM m => (forall s'. Staged s' => s' r -> m (s' r')) -> s r -> m (s r') Source #

evolve :: EvolveM m => s Low -> m (s High) Source #

devolve :: DevolveM m => s High -> m (s Low) Source #

Instances

Staged InvokeDynamic Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> InvokeDynamic r -> m (InvokeDynamic r') Source #

evolve :: EvolveM m => InvokeDynamic Low -> m (InvokeDynamic High) Source #

devolve :: DevolveM m => InvokeDynamic High -> m (InvokeDynamic Low) Source #

Staged MethodHandleInterface Source # 
Staged MethodHandleMethod Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> MethodHandleMethod r -> m (MethodHandleMethod r') Source #

evolve :: EvolveM m => MethodHandleMethod Low -> m (MethodHandleMethod High) Source #

devolve :: DevolveM m => MethodHandleMethod High -> m (MethodHandleMethod Low) Source #

Staged MethodHandleField Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> MethodHandleField r -> m (MethodHandleField r') Source #

evolve :: EvolveM m => MethodHandleField Low -> m (MethodHandleField High) Source #

devolve :: DevolveM m => MethodHandleField High -> m (MethodHandleField Low) Source #

Staged MethodHandle Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> MethodHandle r -> m (MethodHandle r') Source #

evolve :: EvolveM m => MethodHandle Low -> m (MethodHandle High) Source #

devolve :: DevolveM m => MethodHandle High -> m (MethodHandle Low) Source #

Staged Constant Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> Constant r -> m (Constant r') Source #

evolve :: EvolveM m => Constant Low -> m (Constant High) Source #

devolve :: DevolveM m => Constant High -> m (Constant Low) Source #

Staged CConstant Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> CConstant r -> m (CConstant r') Source #

evolve :: EvolveM m => CConstant Low -> m (CConstant High) Source #

devolve :: DevolveM m => CConstant High -> m (CConstant Low) Source #

Staged Invocation Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> Invocation r -> m (Invocation r') Source #

evolve :: EvolveM m => Invocation Low -> m (Invocation High) Source #

devolve :: DevolveM m => Invocation High -> m (Invocation Low) Source #

Staged ExactArrayType Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> ExactArrayType r -> m (ExactArrayType r') Source #

evolve :: EvolveM m => ExactArrayType Low -> m (ExactArrayType High) Source #

devolve :: DevolveM m => ExactArrayType High -> m (ExactArrayType Low) Source #

Staged Attribute Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> Attribute r -> m (Attribute r') Source #

evolve :: EvolveM m => Attribute Low -> m (Attribute High) Source #

devolve :: DevolveM m => Attribute High -> m (Attribute Low) Source #

Staged VerificationTypeInfo Source # 
Staged StackMapFrameType Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> StackMapFrameType r -> m (StackMapFrameType r') Source #

evolve :: EvolveM m => StackMapFrameType Low -> m (StackMapFrameType High) Source #

devolve :: DevolveM m => StackMapFrameType High -> m (StackMapFrameType Low) Source #

Staged Signature Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> Signature r -> m (Signature r') Source #

evolve :: EvolveM m => Signature Low -> m (Signature High) Source #

devolve :: DevolveM m => Signature High -> m (Signature Low) Source #

Staged Exceptions Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> Exceptions r -> m (Exceptions r') Source #

evolve :: EvolveM m => Exceptions Low -> m (Exceptions High) Source #

devolve :: DevolveM m => Exceptions High -> m (Exceptions Low) Source #

Staged ConstantValue Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> ConstantValue r -> m (ConstantValue r') Source #

evolve :: EvolveM m => ConstantValue Low -> m (ConstantValue High) Source #

devolve :: DevolveM m => ConstantValue High -> m (ConstantValue Low) Source #

Staged Code Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> Code r -> m (Code r') Source #

evolve :: EvolveM m => Code Low -> m (Code High) Source #

devolve :: DevolveM m => Code High -> m (Code Low) Source #

Staged BootstrapMethod Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> BootstrapMethod r -> m (BootstrapMethod r') Source #

evolve :: EvolveM m => BootstrapMethod Low -> m (BootstrapMethod High) Source #

devolve :: DevolveM m => BootstrapMethod High -> m (BootstrapMethod Low) Source #

Staged BootstrapMethods Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> BootstrapMethods r -> m (BootstrapMethods r') Source #

evolve :: EvolveM m => BootstrapMethods Low -> m (BootstrapMethods High) Source #

devolve :: DevolveM m => BootstrapMethods High -> m (BootstrapMethods Low) Source #

Staged Method Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> Method r -> m (Method r') Source #

evolve :: EvolveM m => Method Low -> m (Method High) Source #

devolve :: DevolveM m => Method High -> m (Method Low) Source #

Staged Field Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> Field r -> m (Field r') Source #

evolve :: EvolveM m => Field Low -> m (Field High) Source #

devolve :: DevolveM m => Field High -> m (Field Low) Source #

Staged ClassFile Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> ClassFile r -> m (ClassFile r') Source #

evolve :: EvolveM m => ClassFile Low -> m (ClassFile High) Source #

devolve :: DevolveM m => ClassFile High -> m (ClassFile Low) Source #

Referenceable r => Staged (InClass r) Source # 

Methods

stage :: LabelM m => (forall (s' :: * -> *). Staged s' => s' r -> m (s' r')) -> InClass r r -> m (InClass r r') Source #

evolve :: EvolveM m => InClass r Low -> m (InClass r High) Source #

devolve :: DevolveM m => InClass r High -> m (InClass r Low) Source #

Monad Classes

class Monad m => LabelM m where Source #

Methods

label :: String -> m a -> m a Source #

label the current position in the class-file, good for debugging

class LabelM m => EvolveM m where Source #

Minimal complete definition

link, attributeError

Methods

link :: Referenceable r => Index -> m r Source #

attributeError :: String -> m r Source #

class LabelM m => DevolveM m where Source #

Minimal complete definition

unlink

Methods

unlink :: Referenceable r => r -> m Index Source #

Re-exports