java-classfile/src/Language/Java/Classfile.hs

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