packages feed

fortran-src-0.13.0: src/Language/Fortran/Repr/Value/Machine.hs

{-# LANGUAGE DerivingVia #-}

module Language.Fortran.Repr.Value.Machine where

import Language.Fortran.Repr.Value.Scalar.Machine
import Language.Fortran.Repr.Type

import GHC.Generics ( Generic )
import Data.Data ( Data )
import Data.Binary ( Binary )
import Text.PrettyPrint.GenericPretty ( Out )

-- | A Fortran value (scalar only currently).
data FValue = MkFScalarValue FScalarValue
    deriving stock (Show, Generic, Data, Eq)
    deriving anyclass (Binary, Out)

fValueType :: FValue -> FType
fValueType = \case
  MkFScalarValue a -> MkFScalarType $ fScalarValueType a