jvm-binary-0.4.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 # 
Instance details

Defined in Language.JVM.Staged

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 # 
Instance details

Defined in Language.JVM.Staged

Staged MethodHandleMethod Source # 
Instance details

Defined in Language.JVM.Staged

Staged MethodHandleField Source # 
Instance details

Defined in Language.JVM.Staged

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 # 
Instance details

Defined in Language.JVM.Staged

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 # 
Instance details

Defined in Language.JVM.Staged

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 # 
Instance details

Defined in Language.JVM.ByteCode

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 # 
Instance details

Defined in Language.JVM.ByteCode

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 Attribute Source # 
Instance details

Defined in Language.JVM.Attribute.Base

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 # 
Instance details

Defined in Language.JVM.Attribute.StackMapTable

Staged StackMapFrameType Source # 
Instance details

Defined in Language.JVM.Attribute.StackMapTable

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 # 
Instance details

Defined in Language.JVM.Attribute.Signature

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 # 
Instance details

Defined in Language.JVM.Attribute.Exceptions

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 EnclosingMethod Source # 
Instance details

Defined in Language.JVM.Attribute.EnclosingMethod

Methods

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

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

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

Staged ConstantValue Source # 
Instance details

Defined in Language.JVM.Attribute.ConstantValue

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 # 
Instance details

Defined in Language.JVM.Attribute.Code

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 # 
Instance details

Defined in Language.JVM.Attribute.BootstrapMethods

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 # 
Instance details

Defined in Language.JVM.Attribute.BootstrapMethods

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 # 
Instance details

Defined in Language.JVM.Method

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 # 
Instance details

Defined in Language.JVM.Field

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 InnerClass Source # 
Instance details

Defined in Language.JVM.Attribute.InnerClasses

Methods

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

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

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

Staged InnerClasses Source # 
Instance details

Defined in Language.JVM.Attribute.InnerClasses

Methods

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

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

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

Staged ClassFile Source # 
Instance details

Defined in Language.JVM.ClassFile

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). 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 # 
Instance details

Defined in Language.JVM.Staged

Methods

stage :: LabelM m => (forall (s' :: Type -> Type). Staged s' => s' r0 -> m (s' r')) -> InClass r r0 -> 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 #

Minimal complete definition

Nothing

Methods

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

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

class LabelM m => DevolveM m where Source #

Methods

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

AttributeLocation

Re-exports