Safe Haskell | Safe-Infered |
---|
Transform
Documentation
newtype T_Alt
Constructors
T_Alt (Map NontermIdent (Set ConstructorIdent) -> Set NontermIdent -> Set NontermIdent -> ([(NontermIdent, ConstructorIdent, Set Identifier)], [(NontermIdent, ConstructorIdent, [Type])], Set ConstructorIdent, [(NontermIdent, ConstructorIdent, FieldMap)], [(NontermIdent, ConstructorIdent, MaybeMacro)])) |
data Syn_Alt
Constructors
sem_Alt_Alt :: Pos -> T_ConstructorSet -> [Identifier] -> T_Fields -> MaybeMacro -> T_Alt
newtype T_Alts
Constructors
T_Alts (Map NontermIdent (Set ConstructorIdent) -> Set NontermIdent -> Set NontermIdent -> ([(NontermIdent, ConstructorIdent, Set Identifier)], [(NontermIdent, ConstructorIdent, [Type])], Set ConstructorIdent, [(NontermIdent, ConstructorIdent, FieldMap)], [(NontermIdent, ConstructorIdent, MaybeMacro)])) |
data Syn_Alts
Constructors
sem_Alts_Cons :: T_Alt -> T_Alts -> T_Alts
newtype T_Attrs
Constructors
T_Attrs (DataTypes -> Set NontermIdent -> Map NontermIdent (Attributes, Attributes) -> Map NontermIdent (Attributes, Attributes) -> Set NontermIdent -> Options -> (Map NontermIdent (Attributes, Attributes), Map NontermIdent (Attributes, Attributes), Seq Error, Map NontermIdent (Map Identifier (String, String, String)))) |
data Inh_Attrs
Constructors
Inh_Attrs | |
Fields
|
data Syn_Attrs
Constructors
Syn_Attrs | |
Fields
|
wrap_Attrs :: T_Attrs -> Inh_Attrs -> Syn_Attrs
newtype T_ConstructorSet
Constructors
T_ConstructorSet (Set ConstructorIdent, Set ConstructorIdent -> Set ConstructorIdent, Seq Error) |
data Inh_ConstructorSet
Constructors
Inh_ConstructorSet | |
data Syn_ConstructorSet
Constructors
Syn_ConstructorSet | |
newtype T_Elem
Constructors
data Inh_Elem
Constructors
Inh_Elem | |
Fields
|
data Syn_Elem
Constructors
sem_Elem_Attr :: Pos -> ClassContext -> T_NontSet -> [String] -> T_Attrs -> T_Elem
sem_Elem_Data :: Pos -> ClassContext -> T_NontSet -> [Identifier] -> T_Attrs -> T_Alts -> Bool -> T_Elem
sem_Elem_Deriving :: Pos -> T_NontSet -> [NontermIdent] -> T_Elem
sem_Elem_Nocatas :: Pos -> T_NontSet -> T_Elem
sem_Elem_Pragma :: Pos -> [NontermIdent] -> T_Elem
sem_Elem_Sem :: Pos -> ClassContext -> T_NontSet -> T_Attrs -> [String] -> T_SemAlts -> T_Elem
sem_Elem_Set :: Pos -> NontermIdent -> Bool -> T_NontSet -> T_Elem
sem_Elem_Txt :: Pos -> BlockKind -> Maybe NontermIdent -> [String] -> T_Elem
sem_Elem_Type :: Pos -> ClassContext -> NontermIdent -> [Identifier] -> ComplexType -> T_Elem
sem_Elem_Wrapper :: Pos -> T_NontSet -> T_Elem
newtype T_Elems
Constructors
data Inh_Elems
Constructors
Inh_Elems | |
Fields
|
data Syn_Elems
Constructors
wrap_Elems :: T_Elems -> Inh_Elems -> Syn_Elems
sem_Elems_Cons :: T_Elem -> T_Elems -> T_Elems
newtype T_Field
Constructors
T_Field (Set NontermIdent -> ([Type], [(Identifier, Type)])) |
data Syn_Field
Constructors
Syn_Field | |
Fields
|
wrap_Field :: T_Field -> Inh_Field -> Syn_Field
sem_Field_FChild :: Identifier -> Type -> T_Field
sem_Field_FCtx :: [Type] -> T_Field
sem_Fields :: Fields -> T_Fields
newtype T_Fields
Constructors
T_Fields (Set NontermIdent -> ([Type], [(Identifier, Type)])) |
data Inh_Fields
Constructors
Inh_Fields | |
Fields |
data Syn_Fields
Constructors
Syn_Fields | |
Fields
|
wrap_Fields :: T_Fields -> Inh_Fields -> Syn_Fields
sem_Fields_Cons :: T_Field -> T_Fields -> T_Fields
sem_NontSet :: NontSet -> T_NontSet
newtype T_NontSet
Constructors
T_NontSet (DataTypes -> Set NontermIdent -> DefinedSets -> (Set Identifier, Seq Error, Set NontermIdent)) |
data Inh_NontSet
Constructors
Inh_NontSet | |
data Syn_NontSet
Constructors
Syn_NontSet | |
Fields
|
wrap_NontSet :: T_NontSet -> Inh_NontSet -> Syn_NontSet
sem_NontSet_Intersect :: T_NontSet -> T_NontSet -> T_NontSet
sem_NontSet_Union :: T_NontSet -> T_NontSet -> T_NontSet
sem_Pattern :: Pattern -> T_Pattern
newtype T_Pattern
data Inh_Pattern
Constructors
Inh_Pattern | |
data Syn_Pattern
Constructors
Syn_Pattern | |
Fields
|
wrap_Pattern :: T_Pattern -> Inh_Pattern -> Syn_Pattern
sem_Pattern_Alias :: Identifier -> Identifier -> T_Pattern -> T_Pattern
sem_Pattern_Product :: Pos -> T_Patterns -> T_Pattern
sem_Patterns :: Patterns -> T_Patterns
newtype T_Patterns
Constructors
T_Patterns (Patterns, [AttrName], [Identifier], [AttrName] -> Patterns) |
data Inh_Patterns
Constructors
Inh_Patterns | |
data Syn_Patterns
Constructors
Syn_Patterns | |
Fields
|
wrap_Patterns :: T_Patterns -> Inh_Patterns -> Syn_Patterns
sem_Patterns_Cons :: T_Pattern -> T_Patterns -> T_Patterns
sem_SemAlt :: SemAlt -> T_SemAlt
newtype T_SemAlt
Constructors
T_SemAlt (Map NontermIdent (Attributes, Attributes) -> Map NontermIdent (Attributes, Attributes) -> DataTypes -> Set NontermIdent -> Options -> (AttrOrderMap, [(NontermIdent, ConstructorIdent, [AroundInfo])], [(NontermIdent, ConstructorIdent, [AugmentInfo])], [(NontermIdent, ConstructorIdent, [Identifier])], [(NontermIdent, ConstructorIdent, [MergeInfo])], [(NontermIdent, ConstructorIdent, RuleInfo)], [(NontermIdent, ConstructorIdent, SigInfo)], [(NontermIdent, ConstructorIdent, [UniqueInfo])], Seq Error, PragmaMap)) |
data Inh_SemAlt
Constructors
Inh_SemAlt | |
Fields |
data Syn_SemAlt
Constructors
wrap_SemAlt :: T_SemAlt -> Inh_SemAlt -> Syn_SemAlt
sem_SemAlt_SemAlt :: Pos -> T_ConstructorSet -> T_SemDefs -> T_SemAlt
sem_SemAlts :: SemAlts -> T_SemAlts
newtype T_SemAlts
Constructors
T_SemAlts (Map NontermIdent (Attributes, Attributes) -> Map NontermIdent (Attributes, Attributes) -> DataTypes -> Set NontermIdent -> Options -> (AttrOrderMap, [(NontermIdent, ConstructorIdent, [AroundInfo])], [(NontermIdent, ConstructorIdent, [AugmentInfo])], [(NontermIdent, ConstructorIdent, [Identifier])], [(NontermIdent, ConstructorIdent, [MergeInfo])], [(NontermIdent, ConstructorIdent, RuleInfo)], [(NontermIdent, ConstructorIdent, SigInfo)], [(NontermIdent, ConstructorIdent, [UniqueInfo])], Seq Error, PragmaMap)) |
data Inh_SemAlts
Constructors
Inh_SemAlts | |
Fields |
data Syn_SemAlts
Constructors
wrap_SemAlts :: T_SemAlts -> Inh_SemAlts -> Syn_SemAlts
sem_SemAlts_Cons :: T_SemAlt -> T_SemAlts -> T_SemAlts
sem_SemDef :: SemDef -> T_SemDef
newtype T_SemDef
Constructors
T_SemDef (Options -> ([AroundInfo], [AugmentInfo], [Identifier], Seq Error, [MergeInfo], Set Dependency, [Identifier], [RuleInfo], [SigInfo], [UniqueInfo])) |
data Inh_SemDef
Constructors
Inh_SemDef | |
Fields |
data Syn_SemDef
Constructors
Syn_SemDef | |
Fields
|
wrap_SemDef :: T_SemDef -> Inh_SemDef -> Syn_SemDef
sem_SemDef_AroundDef :: Identifier -> Expression -> T_SemDef
sem_SemDef_AttrOrderBefore :: [Occurrence] -> [Occurrence] -> T_SemDef
sem_SemDef_Def :: Pos -> Maybe Identifier -> T_Pattern -> Expression -> Bool -> Bool -> Bool -> T_SemDef
sem_SemDef_MergeDef :: Identifier -> Identifier -> [Identifier] -> Expression -> T_SemDef
sem_SemDef_SemPragma :: [NontermIdent] -> T_SemDef
sem_SemDef_TypeDef :: Pos -> Identifier -> Type -> T_SemDef
sem_SemDef_UniqueDef :: Identifier -> Identifier -> T_SemDef
sem_SemDefs :: SemDefs -> T_SemDefs
newtype T_SemDefs
Constructors
T_SemDefs (Options -> ([AroundInfo], [AugmentInfo], [Identifier], Seq Error, [MergeInfo], Set Dependency, [Identifier], [RuleInfo], [SigInfo], [UniqueInfo])) |
data Inh_SemDefs
Constructors
Inh_SemDefs | |
Fields |
data Syn_SemDefs
Constructors
Syn_SemDefs | |
Fields
|
wrap_SemDefs :: T_SemDefs -> Inh_SemDefs -> Syn_SemDefs
sem_SemDefs_Cons :: T_SemDef -> T_SemDefs -> T_SemDefs
newtype T_AG
Constructors
T_AG (Options -> ((Set NontermIdent, DataTypes, Map NontermIdent (Attributes, Attributes)), Blocks, Seq Error, Maybe (String, String, String), Grammar, Options -> Options)) |
data Syn_AG
Constructors
Syn_AG | |
Fields
|
type DefinedSets = Map Identifier (Set NontermIdent)
type FieldMap = [(Identifier, Type)]
type DataTypes = Map NontermIdent (Map ConstructorIdent FieldMap)
type AttrName = (Identifier, Identifier)
type RuleInfo = (Maybe Identifier, [AttrName] -> Pattern, Expression, [AttrName], Bool, String, Bool, Bool)
type SigInfo = (Identifier, Type)
type UniqueInfo = (Identifier, Identifier)
type AugmentInfo = (Identifier, Expression)
type AroundInfo = (Identifier, Expression)
type MergeInfo = (Identifier, Identifier, [Identifier], Expression)
checkDuplicate :: (Identifier -> Identifier -> Error) -> Identifier -> val -> Map Identifier val -> (Map Identifier val, Seq Error)
checkDuplicates :: (Identifier -> Identifier -> Error) -> [(Identifier, val)] -> Map Identifier val -> (Map Identifier val, Seq Error)
foldErrors :: (b -> t -> (t, Seq a)) -> t -> [b] -> (t, Seq a)
checkForDuplicates :: (Identifier -> Identifier -> Error) -> [Identifier] -> [Error]
equalId :: Identifier -> Identifier -> Bool
type RulesAndErrors = ([Rule], Seq Error)
type SigsAndErrors = ([TypeSig], Seq Error)
type InstsAndErrors = ([(Identifier, Type)], Seq Error)
type UniquesAndErrors = (Map Identifier Identifier, Seq Error)
type AugmentsAndErrors = (Map Identifier [Expression], Seq Error)
type AroundsAndErrors = (Map Identifier [Expression], Seq Error)
type MergesAndErrors = (Map Identifier (Identifier, [Identifier], Expression), Seq Error)
type AttrOverwrite = Map AttrName Bool
type AccumRuleCheck = (RulesAndErrors, AttrOverwrite)
type AccumDefiCheck = (Seq Error, AttrOverwrite, [AttrName], [AttrName])
checkRules :: Map NontermIdent (Attributes, Attributes) -> Map NontermIdent (Map ConstructorIdent FieldMap) -> Map NontermIdent (Map ConstructorIdent [Identifier]) -> Map NontermIdent (Map ConstructorIdent [SigInfo]) -> Map NontermIdent (Map ConstructorIdent [MergeInfo]) -> NontermIdent -> ConstructorIdent -> [RuleInfo] -> RulesAndErrors
checkRuleNames :: NontermIdent -> ConstructorIdent -> [RuleInfo] -> Seq Error
checkSigs :: NontermIdent -> ConstructorIdent -> [SigInfo] -> SigsAndErrors
checkInsts :: Set NontermIdent -> Map NontermIdent (Map ConstructorIdent [SigInfo]) -> Map NontermIdent (Map ConstructorIdent [(Identifier, Type)]) -> NontermIdent -> ConstructorIdent -> [Identifier] -> InstsAndErrors
checkUniques :: Map NontermIdent (Attributes, Attributes) -> NontermIdent -> ConstructorIdent -> [UniqueInfo] -> UniquesAndErrors
checkAugments :: Map NontermIdent (Attributes, Attributes) -> NontermIdent -> ConstructorIdent -> [AugmentInfo] -> AugmentsAndErrors
checkArounds :: Map NontermIdent (Map ConstructorIdent [(Identifier, Type)]) -> NontermIdent -> ConstructorIdent -> [AroundInfo] -> AroundsAndErrors
checkMerges :: Set NontermIdent -> Map NontermIdent (Map ConstructorIdent [Identifier]) -> Map NontermIdent (Map ConstructorIdent [(Identifier, Type)]) -> NontermIdent -> ConstructorIdent -> [MergeInfo] -> MergesAndErrors
unionunionplusplus :: Map NontermIdent (Map ConstructorIdent [a]) -> Map NontermIdent (Map ConstructorIdent [a]) -> Map NontermIdent (Map ConstructorIdent [a])
mkUniqueRules :: Options -> Map NontermIdent (Map ConstructorIdent [(Identifier, Type)]) -> Map NontermIdent (Map ConstructorIdent [(Identifier, Type)]) -> Map NontermIdent (Attributes, Attributes) -> NontermIdent -> ConstructorIdent -> Map Identifier Identifier -> [Rule]
flattenDatas :: DataTypes -> Map NontermIdent (Set NontermIdent)
reachableFrom :: Map NontermIdent (Set NontermIdent) -> Set NontermIdent -> Set NontermIdent
invert :: Map NontermIdent (Set NontermIdent) -> Map NontermIdent (Set NontermIdent)
path :: Map NontermIdent (Set NontermIdent) -> NontermIdent -> NontermIdent -> Set NontermIdent
isSeparator :: Char -> Bool
pragmaMapUnion :: PragmaMap -> PragmaMap -> PragmaMap
pragmaMapSingle :: NontermIdent -> ConstructorIdent -> Set Identifier -> PragmaMap
orderMapSingle :: NontermIdent -> ConstructorIdent -> Set Dependency -> AttrOrderMap
mergeParams :: ParamMap -> ParamMap -> ParamMap
mergeCtx :: ContextMap -> ContextMap -> ContextMap
mergeQuant :: QuantMap -> QuantMap -> QuantMap
checkAttrs :: Map NontermIdent a -> [NontermIdent] -> [(Identifier, val)] -> [(Identifier, val1)] -> Map NontermIdent (Map Identifier val, Map Identifier val1) -> (Map NontermIdent (Map Identifier val, Map Identifier val1), Seq Error)
addSelf :: Ord k1 => k1 -> Map k1 (Map k a, Map Identifier Type) -> Map k1 (Map k a, Map Identifier Type)
makeType :: Set NontermIdent -> Type -> Type
constructGrammar :: Set NontermIdent -> ParamMap -> Map NontermIdent (Map ConstructorIdent (Set Identifier)) -> DataTypes -> Map NontermIdent (Map ConstructorIdent [Type]) -> Map NontermIdent (Attributes, Attributes) -> Map NontermIdent (Map Identifier (String, String, String)) -> Derivings -> Set NontermIdent -> Map NontermIdent (Map ConstructorIdent [Rule]) -> Map NontermIdent (Map ConstructorIdent [TypeSig]) -> Map NontermIdent (Map ConstructorIdent [(Identifier, Type)]) -> TypeSyns -> PragmaMap -> AttrOrderMap -> ContextMap -> QuantMap -> UniqueMap -> Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression])) -> Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression])) -> Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression))) -> Map NontermIdent (Map ConstructorIdent MaybeMacro) -> Grammar