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

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

Language.JVM.ClassFile

Contents

Description

The class file is described in this module.

Synopsis

Documentation

data ClassFile r Source #

A ClassFile as described here.

Instances

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 #

Eq (ClassFile High) Source # 
Eq (ClassFile Low) Source # 
Ord (ClassFile Low) Source # 
Show (ClassFile High) Source # 
Show (ClassFile Low) Source # 
Generic (ClassFile High) Source # 

Associated Types

type Rep (ClassFile High) :: * -> * #

Generic (ClassFile Low) Source # 

Associated Types

type Rep (ClassFile Low) :: * -> * #

Binary (ClassFile Low) Source # 
NFData (ClassFile High) Source # 

Methods

rnf :: ClassFile High -> () #

NFData (ClassFile Low) Source # 

Methods

rnf :: ClassFile Low -> () #

type Rep (ClassFile High) Source # 
type Rep (ClassFile High) = D1 * (MetaData "ClassFile" "Language.JVM.ClassFile" "jvm-binary-0.1.0-JJ8Rr7ERir79pQaBJvdiXV" False) (C1 * (MetaCons "ClassFile" PrefixI True) ((:*:) * ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "cMagicNumber") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * Word32)) (S1 * (MetaSel (Just Symbol "cMinorVersion") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * Word16))) ((:*:) * (S1 * (MetaSel (Just Symbol "cMajorVersion") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * Word16)) ((:*:) * (S1 * (MetaSel (Just Symbol "cConstantPool") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (Choice (ConstantPool High) () High))) (S1 * (MetaSel (Just Symbol "cAccessFlags'") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (BitSet16 CAccessFlag)))))) ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "cThisClass") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (Ref ClassName High))) ((:*:) * (S1 * (MetaSel (Just Symbol "cSuperClass") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (Ref ClassName High))) (S1 * (MetaSel (Just Symbol "cInterfaces") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (SizedList16 (Ref ClassName High)))))) ((:*:) * (S1 * (MetaSel (Just Symbol "cFields'") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (SizedList16 (Field High)))) ((:*:) * (S1 * (MetaSel (Just Symbol "cMethods'") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (SizedList16 (Method High)))) (S1 * (MetaSel (Just Symbol "cAttributes") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (Attributes ClassAttributes High))))))))
type Rep (ClassFile Low) Source # 
type Rep (ClassFile Low) = D1 * (MetaData "ClassFile" "Language.JVM.ClassFile" "jvm-binary-0.1.0-JJ8Rr7ERir79pQaBJvdiXV" False) (C1 * (MetaCons "ClassFile" PrefixI True) ((:*:) * ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "cMagicNumber") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * Word32)) (S1 * (MetaSel (Just Symbol "cMinorVersion") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * Word16))) ((:*:) * (S1 * (MetaSel (Just Symbol "cMajorVersion") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * Word16)) ((:*:) * (S1 * (MetaSel (Just Symbol "cConstantPool") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (Choice (ConstantPool Low) () Low))) (S1 * (MetaSel (Just Symbol "cAccessFlags'") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (BitSet16 CAccessFlag)))))) ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "cThisClass") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (Ref ClassName Low))) ((:*:) * (S1 * (MetaSel (Just Symbol "cSuperClass") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (Ref ClassName Low))) (S1 * (MetaSel (Just Symbol "cInterfaces") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (SizedList16 (Ref ClassName Low)))))) ((:*:) * (S1 * (MetaSel (Just Symbol "cFields'") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (SizedList16 (Field Low)))) ((:*:) * (S1 * (MetaSel (Just Symbol "cMethods'") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (SizedList16 (Method Low)))) (S1 * (MetaSel (Just Symbol "cAttributes") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (Attributes ClassAttributes Low))))))))

cAccessFlags :: ClassFile r -> Set CAccessFlag Source #

Get the set of access flags

cFields :: ClassFile r -> [Field r] Source #

Get a list of Fields of a ClassFile.

cMethods :: ClassFile r -> [Method r] Source #

Get a list of Methods of a ClassFile.

Attributes

data ClassAttributes r Source #

Instances

Eq (ClassAttributes High) Source # 
Eq (ClassAttributes Low) Source # 
Ord (ClassAttributes Low) Source # 
Show (ClassAttributes High) Source # 
Show (ClassAttributes Low) Source # 
Generic (ClassAttributes High) Source # 
Generic (ClassAttributes Low) Source # 

Associated Types

type Rep (ClassAttributes Low) :: * -> * #

NFData (ClassAttributes High) Source # 

Methods

rnf :: ClassAttributes High -> () #

NFData (ClassAttributes Low) Source # 

Methods

rnf :: ClassAttributes Low -> () #

type Rep (ClassAttributes High) Source # 
type Rep (ClassAttributes High) = D1 * (MetaData "ClassAttributes" "Language.JVM.ClassFile" "jvm-binary-0.1.0-JJ8Rr7ERir79pQaBJvdiXV" False) (C1 * (MetaCons "ClassAttributes" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "caBootstrapMethods") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [BootstrapMethods High])) ((:*:) * (S1 * (MetaSel (Just Symbol "caSignature") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Signature High])) (S1 * (MetaSel (Just Symbol "caOthers") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Attribute High])))))
type Rep (ClassAttributes Low) Source # 
type Rep (ClassAttributes Low) = D1 * (MetaData "ClassAttributes" "Language.JVM.ClassFile" "jvm-binary-0.1.0-JJ8Rr7ERir79pQaBJvdiXV" False) (C1 * (MetaCons "ClassAttributes" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "caBootstrapMethods") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [BootstrapMethods Low])) ((:*:) * (S1 * (MetaSel (Just Symbol "caSignature") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Signature Low])) (S1 * (MetaSel (Just Symbol "caOthers") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Attribute Low])))))