mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-16 16:29:32 -06:00
58 lines
1.3 KiB
Haskell
58 lines
1.3 KiB
Haskell
----------------------------------------------------------------------
|
|
-- |
|
|
-- Module : Values
|
|
-- Maintainer : AR
|
|
-- Stability : (stable)
|
|
-- Portability : (portable)
|
|
--
|
|
-- > CVS $Date: 2005/04/21 16:22:32 $
|
|
-- > CVS $Author: bringert $
|
|
-- > CVS $Revision: 1.7 $
|
|
--
|
|
-- (Description of the module)
|
|
-----------------------------------------------------------------------------
|
|
|
|
module GF.Grammar.Values (
|
|
-- ** Values used in TC type checking
|
|
Val(..), Env,
|
|
-- ** Annotated tree used in editing
|
|
Binds, Constraints, MetaSubst,
|
|
-- ** For TC
|
|
valAbsInt, valAbsFloat, valAbsString, vType,
|
|
isPredefCat,
|
|
eType,
|
|
) where
|
|
|
|
import GF.Infra.Ident
|
|
import GF.Grammar.Grammar
|
|
import GF.Grammar.Predef
|
|
|
|
-- values used in TC type checking
|
|
|
|
data Val = VGen Int Ident | VApp Val Val | VCn QIdent | VRecType [(Label,Val)] | VType | VClos Env Term
|
|
deriving (Eq,Show)
|
|
|
|
type Env = [(Ident,Val)]
|
|
|
|
type Binds = [(Ident,Val)]
|
|
type Constraints = [(Val,Val)]
|
|
type MetaSubst = [(MetaId,Val)]
|
|
|
|
|
|
-- for TC
|
|
|
|
valAbsInt :: Val
|
|
valAbsInt = VCn (cPredefAbs, cInt)
|
|
|
|
valAbsFloat :: Val
|
|
valAbsFloat = VCn (cPredefAbs, cFloat)
|
|
|
|
valAbsString :: Val
|
|
valAbsString = VCn (cPredefAbs, cString)
|
|
|
|
vType :: Val
|
|
vType = VType
|
|
|
|
eType :: Term
|
|
eType = Sort cType
|