33 lines
1.2 KiB
Haskell
33 lines
1.2 KiB
Haskell
{-# LANGUAGE DerivingVia #-}
|
|
{-# LANGUAGE DeriveGeneric #-}
|
|
module Language.Java.Classfile (Classfile(..)) where
|
|
|
|
import GHC.Generics (Generic, Generically(Generically))
|
|
|
|
import Language.Java.Classfile.Version (Version)
|
|
import Language.Java.Classfile.Magic (Magic)
|
|
import Language.Java.Classfile.Extractable (Extractable)
|
|
import Language.Java.Classfile.ConstantPool (ConstantPool)
|
|
import Language.Java.Classfile.Flags (Flags)
|
|
import Language.Java.Classfile.ClassFlag (ClassFlag)
|
|
import Language.Java.Classfile.ConstantPool.References (ClassReference)
|
|
import Language.Java.Classfile.Interfaces (Interfaces)
|
|
import Language.Java.Classfile.Fields (Fields)
|
|
import Language.Java.Classfile.Methods (Methods)
|
|
import Language.Java.Classfile.Attributes (Attributes)
|
|
|
|
|
|
data Classfile = Classfile
|
|
{ magic :: Magic
|
|
, version :: Version
|
|
, constantPool :: ConstantPool
|
|
, accessFlags :: Flags ClassFlag
|
|
, this :: ClassReference
|
|
, super :: ClassReference
|
|
, interfaces :: Interfaces
|
|
, fields :: Fields
|
|
, methods :: Methods
|
|
, attributes :: Attributes
|
|
}
|
|
deriving stock (Show, Generic)
|
|
deriving Extractable via Generically Classfile
|