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

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

Language.JVM.Attribute.Signature

Contents

Description

Based on the Signature Attribute, as documented here, and the signature syntax defined here.

Synopsis

Documentation

newtype Signature a Source #

Constructors

Signature (Ref Text a) 
Instances
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 #

Eq (Signature High) Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Eq (Signature Low) Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Ord (Signature Low) Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Show (Signature High) Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Show (Signature Low) Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Generic (Signature High) Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Associated Types

type Rep (Signature High) :: Type -> Type #

Generic (Signature Low) Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Associated Types

type Rep (Signature Low) :: Type -> Type #

Binary (Signature Low) Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

NFData (Signature High) Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Methods

rnf :: Signature High -> () #

NFData (Signature Low) Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Methods

rnf :: Signature Low -> () #

IsAttribute (Signature Low) Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep (Signature High) Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep (Signature High) = D1 (MetaData "Signature" "Language.JVM.Attribute.Signature" "jvm-binary-0.9.0-9S1OjG3yP2JAIJl8zf6L4B" True) (C1 (MetaCons "Signature" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ref Text High))))
type Rep (Signature Low) Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep (Signature Low) = D1 (MetaData "Signature" "Language.JVM.Attribute.Signature" "jvm-binary-0.9.0-9S1OjG3yP2JAIJl8zf6L4B" True) (C1 (MetaCons "Signature" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ref Text Low))))

Top Level Definitions

data ClassSignature Source #

Instances
Eq ClassSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Ord ClassSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Show ClassSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Generic ClassSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Associated Types

type Rep ClassSignature :: Type -> Type #

NFData ClassSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Methods

rnf :: ClassSignature -> () #

TextSerializable ClassSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep ClassSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep ClassSignature = D1 (MetaData "ClassSignature" "Language.JVM.Attribute.Signature" "jvm-binary-0.9.0-9S1OjG3yP2JAIJl8zf6L4B" False) (C1 (MetaCons "ClassSignature" PrefixI True) (S1 (MetaSel (Just "csTypeParameters") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [TypeParameter]) :*: (S1 (MetaSel (Just "csSuperclassSignature") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ClassType) :*: S1 (MetaSel (Just "csInterfaceSignatures") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ClassType]))))

data MethodSignature Source #

Instances
Eq MethodSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Ord MethodSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Show MethodSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Generic MethodSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Associated Types

type Rep MethodSignature :: Type -> Type #

NFData MethodSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Methods

rnf :: MethodSignature -> () #

TextSerializable MethodSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep MethodSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep MethodSignature = D1 (MetaData "MethodSignature" "Language.JVM.Attribute.Signature" "jvm-binary-0.9.0-9S1OjG3yP2JAIJl8zf6L4B" False) (C1 (MetaCons "MethodSignature" PrefixI True) ((S1 (MetaSel (Just "msTypeParameters") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [TypeParameter]) :*: S1 (MetaSel (Just "msArguments") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [TypeSignature])) :*: (S1 (MetaSel (Just "msResults") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe TypeSignature)) :*: S1 (MetaSel (Just "msThrows") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ThrowsSignature]))))

newtype FieldSignature Source #

Constructors

FieldSignature 
Instances
Eq FieldSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Ord FieldSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Show FieldSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Generic FieldSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Associated Types

type Rep FieldSignature :: Type -> Type #

NFData FieldSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Methods

rnf :: FieldSignature -> () #

TextSerializable FieldSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep FieldSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep FieldSignature = D1 (MetaData "FieldSignature" "Language.JVM.Attribute.Signature" "jvm-binary-0.9.0-9S1OjG3yP2JAIJl8zf6L4B" True) (C1 (MetaCons "FieldSignature" PrefixI True) (S1 (MetaSel (Just "fsRefType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ReferenceType)))

Handlers

Lower Level Definitions

data ClassType Source #

Instances
Eq ClassType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Ord ClassType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Show ClassType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Generic ClassType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Associated Types

type Rep ClassType :: Type -> Type #

NFData ClassType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Methods

rnf :: ClassType -> () #

TextSerializable ClassType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep ClassType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep ClassType = D1 (MetaData "ClassType" "Language.JVM.Attribute.Signature" "jvm-binary-0.9.0-9S1OjG3yP2JAIJl8zf6L4B" False) (C1 (MetaCons "ClassType" PrefixI True) (S1 (MetaSel (Just "ctsName") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 ClassName) :*: (S1 (MetaSel (Just "ctsInnerClass") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Maybe InnerClassType)) :*: S1 (MetaSel (Just "ctsTypeArguments") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Maybe TypeArgument]))))

classTypeFromName :: ClassName -> ClassType Source #

Create a classType from a Name Note the language is wierd here! Main.A is not Main$A, but MainT.A is!

data InnerClassType Source #

Instances
Eq InnerClassType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Ord InnerClassType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Show InnerClassType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Generic InnerClassType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Associated Types

type Rep InnerClassType :: Type -> Type #

NFData InnerClassType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Methods

rnf :: InnerClassType -> () #

type Rep InnerClassType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep InnerClassType = D1 (MetaData "InnerClassType" "Language.JVM.Attribute.Signature" "jvm-binary-0.9.0-9S1OjG3yP2JAIJl8zf6L4B" False) (C1 (MetaCons "InnerClassType" PrefixI True) (S1 (MetaSel (Just "ictsName") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Text) :*: (S1 (MetaSel (Just "ictsInnerClass") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Maybe InnerClassType)) :*: S1 (MetaSel (Just "ictsTypeArguments") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Maybe TypeArgument]))))

data ReferenceType Source #

Instances
Eq ReferenceType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Ord ReferenceType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Show ReferenceType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Generic ReferenceType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Associated Types

type Rep ReferenceType :: Type -> Type #

NFData ReferenceType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Methods

rnf :: ReferenceType -> () #

TextSerializable ReferenceType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep ReferenceType Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

data ThrowsSignature Source #

Instances
Eq ThrowsSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Ord ThrowsSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Show ThrowsSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Generic ThrowsSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Associated Types

type Rep ThrowsSignature :: Type -> Type #

NFData ThrowsSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Methods

rnf :: ThrowsSignature -> () #

TextSerializable ThrowsSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep ThrowsSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep ThrowsSignature = D1 (MetaData "ThrowsSignature" "Language.JVM.Attribute.Signature" "jvm-binary-0.9.0-9S1OjG3yP2JAIJl8zf6L4B" False) (C1 (MetaCons "ThrowsClass" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ClassType)) :+: C1 (MetaCons "ThrowsTypeVariable" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 TypeVariable)))

data TypeSignature Source #

Instances
Eq TypeSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Ord TypeSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Show TypeSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Generic TypeSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Associated Types

type Rep TypeSignature :: Type -> Type #

NFData TypeSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Methods

rnf :: TypeSignature -> () #

TextSerializable TypeSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep TypeSignature Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep TypeSignature = D1 (MetaData "TypeSignature" "Language.JVM.Attribute.Signature" "jvm-binary-0.9.0-9S1OjG3yP2JAIJl8zf6L4B" False) (C1 (MetaCons "ReferenceType" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ReferenceType)) :+: C1 (MetaCons "BaseType" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 JBaseType)))

data TypeArgument Source #

Instances
Eq TypeArgument Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Ord TypeArgument Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Show TypeArgument Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Generic TypeArgument Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Associated Types

type Rep TypeArgument :: Type -> Type #

NFData TypeArgument Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Methods

rnf :: TypeArgument -> () #

type Rep TypeArgument Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep TypeArgument = D1 (MetaData "TypeArgument" "Language.JVM.Attribute.Signature" "jvm-binary-0.9.0-9S1OjG3yP2JAIJl8zf6L4B" False) (C1 (MetaCons "TypeArgument" PrefixI True) (S1 (MetaSel (Just "taWildcard") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Wildcard)) :*: S1 (MetaSel (Just "taType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ReferenceType)))

data TypeParameter Source #

Instances
Eq TypeParameter Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Ord TypeParameter Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Show TypeParameter Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Generic TypeParameter Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Associated Types

type Rep TypeParameter :: Type -> Type #

NFData TypeParameter Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Methods

rnf :: TypeParameter -> () #

TextSerializable TypeParameter Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep TypeParameter Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep TypeParameter = D1 (MetaData "TypeParameter" "Language.JVM.Attribute.Signature" "jvm-binary-0.9.0-9S1OjG3yP2JAIJl8zf6L4B" False) (C1 (MetaCons "TypeParameter" PrefixI True) (S1 (MetaSel (Just "tpIdentifier") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text) :*: (S1 (MetaSel (Just "tpClassBound") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe ReferenceType)) :*: S1 (MetaSel (Just "tpInterfaceBound") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ReferenceType]))))

newtype TypeVariable Source #

Constructors

TypeVariable 

Fields

Instances
Eq TypeVariable Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Ord TypeVariable Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Show TypeVariable Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Generic TypeVariable Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Associated Types

type Rep TypeVariable :: Type -> Type #

NFData TypeVariable Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Methods

rnf :: TypeVariable -> () #

TextSerializable TypeVariable Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep TypeVariable Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep TypeVariable = D1 (MetaData "TypeVariable" "Language.JVM.Attribute.Signature" "jvm-binary-0.9.0-9S1OjG3yP2JAIJl8zf6L4B" True) (C1 (MetaCons "TypeVariable" PrefixI True) (S1 (MetaSel (Just "tvAsText") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text)))

data Wildcard Source #

Constructors

WildPlus 
WildMinus 
Instances
Eq Wildcard Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Ord Wildcard Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Show Wildcard Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Generic Wildcard Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Associated Types

type Rep Wildcard :: Type -> Type #

Methods

from :: Wildcard -> Rep Wildcard x #

to :: Rep Wildcard x -> Wildcard #

NFData Wildcard Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

Methods

rnf :: Wildcard -> () #

TextSerializable Wildcard Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep Wildcard Source # 
Instance details

Defined in Language.JVM.Attribute.Signature

type Rep Wildcard = D1 (MetaData "Wildcard" "Language.JVM.Attribute.Signature" "jvm-binary-0.9.0-9S1OjG3yP2JAIJl8zf6L4B" False) (C1 (MetaCons "WildPlus" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "WildMinus" PrefixI False) (U1 :: Type -> Type))

Parsers