Hets - the Heterogeneous Tool Set
CopyrightChristian Maeder and Uni Bremen 2002-2006
LicenseGPLv2 or higher, see LICENSE.txt
MaintainerChristian.Maeder@dfki.de
Stabilityexperimental
Portabilityportable
Safe HaskellNone

CASL.MixfixParser

Description

Mixfix analysis of terms

Synopsis

Documentation

resolveFormula :: FormExtension f => (f -> f) -> MixResolve f -> MixResolve (FORMULA f) Source #

top-level resolution like resolveMixFrm that fails in case of diags

resolveMixfix :: FormExtension f => (f -> f) -> MixResolve f -> MixResolve (TERM f) Source #

top-level resolution like resolveMixTrm that fails in case of diags

type MixResolve f = GlobalAnnos -> (TokRules, Rules) -> f -> Result f Source #

the type for mixfix resolution

resolveMixTrm :: FormExtension f => (f -> f) -> MixResolve f -> MixResolve (TERM f) Source #

basic term resolution that supports recursion without failure

resolveMixFrm :: FormExtension f => (f -> f) -> MixResolve f -> MixResolve (FORMULA f) Source #

basic formula resolution that supports recursion without failure

type IdSets = ((Set Id, Set Id), Set Id) Source #

the precomputed sets of constant, op, and pred identifiers

mkIdSets :: Set Id -> Set Id -> Set Id -> IdSets Source #

construct IdSets from op and pred identifiers

unite2 :: [(Set Id, Set Id)] -> (Set Id, Set Id) Source #

makeRules :: GlobalAnnos -> IdSets -> (TokRules, Rules) Source #

construct rules from IdSets to be put into a Mix record

data Mix b s f e Source #

Constructors

MixRecord 

Fields

emptyMix :: Mix b s f e Source #

an initially empty record

extendMix :: Set Token -> Mix b s f e -> Mix b s f e Source #

ids_BASIC_SPEC :: (b -> IdSets) -> (s -> IdSets) -> BASIC_SPEC b s f -> IdSets Source #

get all ids of a basic spec

ids_SIG_ITEMS :: (s -> IdSets) -> SIG_ITEMS s f -> IdSets Source #

get all ids of a sig items

ids_OP_ITEM :: OP_ITEM f -> (Set Id, Set Id) Source #

get all op ids of an op item

ids_PRED_ITEM :: PRED_ITEM f -> Set Id Source #

get all pred ids of a pred item