uuagc

DefaultRules

# Documentation

sem_Children :: Children -> T_Children

newtype T_Children

Constructors

T_Children (ConstructorIdent -> Bool -> Map Identifier Attributes -> Set Identifier -> NontermIdent -> [Identifier] -> Map Identifier Attributes -> (Seq Error, [(Identifier, Type, ChildKind)], [(Identifier, Attributes)], Children, [(Identifier, Attributes)])) |

data Inh_Children

Constructors

Inh_Children |
Fields con_Inh_Children :: !ConstructorIdent cr_Inh_Children :: !Bool inhMap_Inh_Children :: !(Map Identifier Attributes) merged_Inh_Children :: !(Set Identifier) nt_Inh_Children :: !NontermIdent params_Inh_Children :: ![Identifier] synMap_Inh_Children :: !(Map Identifier Attributes)

data Syn_Children

Constructors

Syn_Children |
Fields errors_Syn_Children :: !(Seq Error) fields_Syn_Children :: ![(Identifier, Type, ChildKind)] inputs_Syn_Children :: ![(Identifier, Attributes)] output_Syn_Children :: !Children outputs_Syn_Children :: ![(Identifier, Attributes)]

wrap_Children :: T_Children -> Inh_Children -> Syn_Children

sem_Children_Cons :: T_Child -> T_Children -> T_Children

sem_Children_Nil :: T_Children

sem_Grammar :: Grammar -> T_Grammar

newtype T_Grammar

Constructors

T_Grammar (Options -> (Seq Error, Grammar)) |

data Inh_Grammar

Constructors

Inh_Grammar |
Fields options_Inh_Grammar :: !Options

data Syn_Grammar

Constructors

Syn_Grammar |
Fields errors_Syn_Grammar :: !(Seq Error) output_Syn_Grammar :: !Grammar

wrap_Grammar :: T_Grammar -> Inh_Grammar -> Syn_Grammar

sem_Grammar_Grammar :: TypeSyns -> UseMap -> Derivings -> Set NontermIdent -> T_Nonterminals -> PragmaMap -> AttrOrderMap -> ParamMap -> 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))) -> T_Grammar

sem_Nonterminal :: Nonterminal -> T_Nonterminal

newtype T_Nonterminal

Constructors

T_Nonterminal (Set NontermIdent, Map Identifier Attributes, Map Identifier Attributes, T_Nonterminal_1) |

newtype T_Nonterminal_1

Constructors

T_Nonterminal_1 (Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression])) -> Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression])) -> Bool -> Map Identifier Attributes -> AttrOrderMap -> Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression))) -> Set NontermIdent -> Bool -> Options -> Map Identifier Attributes -> TypeSyns -> Int -> UseMap -> Set NontermIdent -> (Seq Error, Nonterminal, Int)) |

data Inh_Nonterminal

Constructors

Inh_Nonterminal |
Fields aroundsIn_Inh_Nonterminal :: !(Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))) augmentsIn_Inh_Nonterminal :: !(Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))) cr_Inh_Nonterminal :: !Bool inhMap_Inh_Nonterminal :: !(Map Identifier Attributes) manualAttrOrderMap_Inh_Nonterminal :: !AttrOrderMap mergesIn_Inh_Nonterminal :: !(Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression)))) nonterminals_Inh_Nonterminal :: !(Set NontermIdent) o_rename_Inh_Nonterminal :: !Bool options_Inh_Nonterminal :: !Options synMap_Inh_Nonterminal :: !(Map Identifier Attributes) typeSyns_Inh_Nonterminal :: !TypeSyns uniq_Inh_Nonterminal :: !Int useMap_Inh_Nonterminal :: !UseMap wrappers_Inh_Nonterminal :: !(Set NontermIdent)

data Syn_Nonterminal

Constructors

Syn_Nonterminal |
Fields collect_nts_Syn_Nonterminal :: !(Set NontermIdent) errors_Syn_Nonterminal :: !(Seq Error) inhMap'_Syn_Nonterminal :: !(Map Identifier Attributes) output_Syn_Nonterminal :: !Nonterminal synMap'_Syn_Nonterminal :: !(Map Identifier Attributes) uniq_Syn_Nonterminal :: !Int

wrap_Nonterminal :: T_Nonterminal -> Inh_Nonterminal -> Syn_Nonterminal

sem_Nonterminal_Nonterminal :: NontermIdent -> [Identifier] -> Attributes -> Attributes -> T_Productions -> T_Nonterminal

sem_Nonterminals :: Nonterminals -> T_Nonterminals

newtype T_Nonterminals

Constructors

T_Nonterminals (Set NontermIdent, Map Identifier Attributes, Map Identifier Attributes, T_Nonterminals_1) |

newtype T_Nonterminals_1

Constructors

T_Nonterminals_1 (Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression])) -> Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression])) -> Bool -> Map Identifier Attributes -> AttrOrderMap -> Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression))) -> Set NontermIdent -> Bool -> Options -> Map Identifier Attributes -> TypeSyns -> Int -> UseMap -> Set NontermIdent -> (Seq Error, Nonterminals, Int)) |

data Inh_Nonterminals

Constructors

Inh_Nonterminals |
Fields aroundsIn_Inh_Nonterminals :: !(Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))) augmentsIn_Inh_Nonterminals :: !(Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))) cr_Inh_Nonterminals :: !Bool inhMap_Inh_Nonterminals :: !(Map Identifier Attributes) manualAttrOrderMap_Inh_Nonterminals :: !AttrOrderMap mergesIn_Inh_Nonterminals :: !(Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression)))) nonterminals_Inh_Nonterminals :: !(Set NontermIdent) o_rename_Inh_Nonterminals :: !Bool options_Inh_Nonterminals :: !Options synMap_Inh_Nonterminals :: !(Map Identifier Attributes) typeSyns_Inh_Nonterminals :: !TypeSyns uniq_Inh_Nonterminals :: !Int useMap_Inh_Nonterminals :: !UseMap wrappers_Inh_Nonterminals :: !(Set NontermIdent)

data Syn_Nonterminals

Constructors

Syn_Nonterminals |
Fields collect_nts_Syn_Nonterminals :: !(Set NontermIdent) errors_Syn_Nonterminals :: !(Seq Error) inhMap'_Syn_Nonterminals :: !(Map Identifier Attributes) output_Syn_Nonterminals :: !Nonterminals synMap'_Syn_Nonterminals :: !(Map Identifier Attributes) uniq_Syn_Nonterminals :: !Int

wrap_Nonterminals :: T_Nonterminals -> Inh_Nonterminals -> Syn_Nonterminals

sem_Nonterminals_Cons :: T_Nonterminal -> T_Nonterminals -> T_Nonterminals

sem_Nonterminals_Nil :: T_Nonterminals

sem_Pattern :: Pattern -> T_Pattern

newtype T_Pattern

Constructors

T_Pattern (ConstructorIdent -> NontermIdent -> (Bool, Pattern, Set (Identifier, Identifier), Seq Error, Set Identifier, Pattern)) |

data Inh_Pattern

Constructors

Inh_Pattern |
Fields con_Inh_Pattern :: !ConstructorIdent nt_Inh_Pattern :: !NontermIdent

data Syn_Pattern

Constructors

Syn_Pattern |
Fields containsVars_Syn_Pattern :: !Bool copy_Syn_Pattern :: !Pattern definedAttrs_Syn_Pattern :: !(Set (Identifier, Identifier)) errors_Syn_Pattern :: !(Seq Error) locals_Syn_Pattern :: !(Set Identifier) output_Syn_Pattern :: !Pattern

wrap_Pattern :: T_Pattern -> Inh_Pattern -> Syn_Pattern

sem_Pattern_Alias :: Identifier -> Identifier -> T_Pattern -> T_Pattern

sem_Pattern_Constr :: ConstructorIdent -> T_Patterns -> T_Pattern

sem_Pattern_Irrefutable :: T_Pattern -> T_Pattern

sem_Pattern_Product :: Pos -> T_Patterns -> T_Pattern

sem_Pattern_Underscore :: Pos -> T_Pattern

sem_Patterns :: Patterns -> T_Patterns

newtype T_Patterns

Constructors

T_Patterns (ConstructorIdent -> NontermIdent -> (Bool, Patterns, Set (Identifier, Identifier), Seq Error, Set Identifier, Patterns)) |

data Inh_Patterns

Constructors

Inh_Patterns |
Fields con_Inh_Patterns :: !ConstructorIdent nt_Inh_Patterns :: !NontermIdent

data Syn_Patterns

Constructors

Syn_Patterns |
Fields containsVars_Syn_Patterns :: !Bool copy_Syn_Patterns :: !Patterns definedAttrs_Syn_Patterns :: !(Set (Identifier, Identifier)) errors_Syn_Patterns :: !(Seq Error) locals_Syn_Patterns :: !(Set Identifier) output_Syn_Patterns :: !Patterns

wrap_Patterns :: T_Patterns -> Inh_Patterns -> Syn_Patterns

sem_Patterns_Cons :: T_Pattern -> T_Patterns -> T_Patterns

sem_Patterns_Nil :: T_Patterns

sem_Production :: Production -> T_Production

newtype T_Production

Constructors

T_Production (Map ConstructorIdent (Map Identifier [Expression]) -> Map ConstructorIdent (Map Identifier [Expression]) -> Bool -> Attributes -> Map Identifier Attributes -> Attributes -> AttrOrderMap -> Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression)) -> Set NontermIdent -> NontermIdent -> Bool -> Options -> [Identifier] -> Attributes -> Map Identifier Attributes -> Attributes -> TypeSyns -> Int -> Map Identifier (String, String, String) -> Set NontermIdent -> (Seq Error, Production, Int)) |

data Inh_Production

Constructors

Inh_Production |
Fields aroundsIn_Inh_Production :: !(Map ConstructorIdent (Map Identifier [Expression])) augmentsIn_Inh_Production :: !(Map ConstructorIdent (Map Identifier [Expression])) cr_Inh_Production :: !Bool inh_Inh_Production :: !Attributes inhMap_Inh_Production :: !(Map Identifier Attributes) inhOrig_Inh_Production :: !Attributes manualAttrOrderMap_Inh_Production :: !AttrOrderMap mergesIn_Inh_Production :: !(Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression))) nonterminals_Inh_Production :: !(Set NontermIdent) nt_Inh_Production :: !NontermIdent o_rename_Inh_Production :: !Bool options_Inh_Production :: !Options params_Inh_Production :: ![Identifier] syn_Inh_Production :: !Attributes synMap_Inh_Production :: !(Map Identifier Attributes) synOrig_Inh_Production :: !Attributes typeSyns_Inh_Production :: !TypeSyns uniq_Inh_Production :: !Int useMap_Inh_Production :: !(Map Identifier (String, String, String)) wrappers_Inh_Production :: !(Set NontermIdent)

data Syn_Production

Constructors

Syn_Production |
Fields errors_Syn_Production :: !(Seq Error) output_Syn_Production :: !Production uniq_Syn_Production :: !Int

wrap_Production :: T_Production -> Inh_Production -> Syn_Production

sem_Production_Production :: ConstructorIdent -> [Identifier] -> [Type] -> T_Children -> T_Rules -> T_TypeSigs -> MaybeMacro -> T_Production

sem_Productions :: Productions -> T_Productions

newtype T_Productions

Constructors

T_Productions (Map ConstructorIdent (Map Identifier [Expression]) -> Map ConstructorIdent (Map Identifier [Expression]) -> Bool -> Attributes -> Map Identifier Attributes -> Attributes -> AttrOrderMap -> Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression)) -> Set NontermIdent -> NontermIdent -> Bool -> Options -> [Identifier] -> Attributes -> Map Identifier Attributes -> Attributes -> TypeSyns -> Int -> Map Identifier (String, String, String) -> Set NontermIdent -> (Seq Error, Productions, Int)) |

data Inh_Productions

Constructors

Inh_Productions |
Fields aroundsIn_Inh_Productions :: !(Map ConstructorIdent (Map Identifier [Expression])) augmentsIn_Inh_Productions :: !(Map ConstructorIdent (Map Identifier [Expression])) cr_Inh_Productions :: !Bool inh_Inh_Productions :: !Attributes inhMap_Inh_Productions :: !(Map Identifier Attributes) inhOrig_Inh_Productions :: !Attributes manualAttrOrderMap_Inh_Productions :: !AttrOrderMap mergesIn_Inh_Productions :: !(Map ConstructorIdent (Map Identifier (Identifier, [Identifier], Expression))) nonterminals_Inh_Productions :: !(Set NontermIdent) nt_Inh_Productions :: !NontermIdent o_rename_Inh_Productions :: !Bool options_Inh_Productions :: !Options params_Inh_Productions :: ![Identifier] syn_Inh_Productions :: !Attributes synMap_Inh_Productions :: !(Map Identifier Attributes) synOrig_Inh_Productions :: !Attributes typeSyns_Inh_Productions :: !TypeSyns uniq_Inh_Productions :: !Int useMap_Inh_Productions :: !(Map Identifier (String, String, String)) wrappers_Inh_Productions :: !(Set NontermIdent)

data Syn_Productions

Constructors

Syn_Productions |
Fields errors_Syn_Productions :: !(Seq Error) output_Syn_Productions :: !Productions uniq_Syn_Productions :: !Int

wrap_Productions :: T_Productions -> Inh_Productions -> Syn_Productions

sem_Productions_Cons :: T_Production -> T_Productions -> T_Productions

sem_Productions_Nil :: T_Productions

sem_Rule :: Rule -> T_Rule

newtype T_Rule

Constructors

T_Rule (ConstructorIdent -> NontermIdent -> Options -> Int -> (Bool, Set (Identifier, Identifier), Seq Error, Bool, Set Identifier, Rule, Rules, Set Identifier, Int)) |

data Inh_Rule

Constructors

Inh_Rule |
Fields con_Inh_Rule :: !ConstructorIdent nt_Inh_Rule :: !NontermIdent options_Inh_Rule :: !Options uniq_Inh_Rule :: !Int

data Syn_Rule

Constructors

Syn_Rule |
Fields containsVars_Syn_Rule :: !Bool definedAttrs_Syn_Rule :: !(Set (Identifier, Identifier)) errors_Syn_Rule :: !(Seq Error) isPure_Syn_Rule :: !Bool locals_Syn_Rule :: !(Set Identifier) output_Syn_Rule :: !Rule outputs_Syn_Rule :: !Rules ruleNames_Syn_Rule :: !(Set Identifier) uniq_Syn_Rule :: !Int

wrap_Rule :: T_Rule -> Inh_Rule -> Syn_Rule

sem_Rule_Rule :: Maybe Identifier -> T_Pattern -> Expression -> Bool -> String -> Bool -> Bool -> Bool -> Maybe Error -> Bool -> T_Rule

sem_Rules :: Rules -> T_Rules

newtype T_Rules

Constructors

T_Rules (ConstructorIdent -> NontermIdent -> Options -> Int -> (Set (Identifier, Identifier), Seq Error, Set Identifier, Rules, Set Identifier, Int)) |

data Inh_Rules

Constructors

Inh_Rules |
Fields con_Inh_Rules :: !ConstructorIdent nt_Inh_Rules :: !NontermIdent options_Inh_Rules :: !Options uniq_Inh_Rules :: !Int

data Syn_Rules

Constructors

Syn_Rules |
Fields definedAttrs_Syn_Rules :: !(Set (Identifier, Identifier)) errors_Syn_Rules :: !(Seq Error) locals_Syn_Rules :: !(Set Identifier) output_Syn_Rules :: !Rules ruleNames_Syn_Rules :: !(Set Identifier) uniq_Syn_Rules :: !Int

wrap_Rules :: T_Rules -> Inh_Rules -> Syn_Rules

sem_Rules_Cons :: T_Rule -> T_Rules -> T_Rules

sem_Rules_Nil :: T_Rules

sem_TypeSig :: TypeSig -> T_TypeSig

newtype T_TypeSig

Constructors

T_TypeSig (NontermIdent -> [Identifier] -> TypeSig) |

data Inh_TypeSig

Constructors

Inh_TypeSig |
Fields nt_Inh_TypeSig :: !NontermIdent params_Inh_TypeSig :: ![Identifier]

data Syn_TypeSig

Constructors

Syn_TypeSig |
Fields output_Syn_TypeSig :: !TypeSig

wrap_TypeSig :: T_TypeSig -> Inh_TypeSig -> Syn_TypeSig

sem_TypeSig_TypeSig :: Identifier -> Type -> T_TypeSig

sem_TypeSigs :: TypeSigs -> T_TypeSigs

newtype T_TypeSigs

Constructors

T_TypeSigs (NontermIdent -> [Identifier] -> TypeSigs) |

data Inh_TypeSigs

Constructors

Inh_TypeSigs |
Fields nt_Inh_TypeSigs :: !NontermIdent params_Inh_TypeSigs :: ![Identifier]

data Syn_TypeSigs

Constructors

Syn_TypeSigs |
Fields output_Syn_TypeSigs :: !TypeSigs

wrap_TypeSigs :: T_TypeSigs -> Inh_TypeSigs -> Syn_TypeSigs

sem_TypeSigs_Cons :: T_TypeSig -> T_TypeSigs -> T_TypeSigs

sem_TypeSigs_Nil :: T_TypeSigs

sem_Child :: Child -> T_Child

newtype T_Child

Constructors

T_Child (ConstructorIdent -> Bool -> Map Identifier Attributes -> Set Identifier -> NontermIdent -> [Identifier] -> Map Identifier Attributes -> (Seq Error, (Identifier, Type, ChildKind), Attributes, Identifier, Child, Attributes)) |

data Inh_Child

Constructors

Inh_Child |
Fields con_Inh_Child :: !ConstructorIdent cr_Inh_Child :: !Bool inhMap_Inh_Child :: !(Map Identifier Attributes) merged_Inh_Child :: !(Set Identifier) nt_Inh_Child :: !NontermIdent params_Inh_Child :: ![Identifier] synMap_Inh_Child :: !(Map Identifier Attributes)

data Syn_Child

Constructors

Syn_Child |
Fields errors_Syn_Child :: !(Seq Error) field_Syn_Child :: !(Identifier, Type, ChildKind) inherited_Syn_Child :: !Attributes name_Syn_Child :: !Identifier output_Syn_Child :: !Child synthesized_Syn_Child :: !Attributes

wrap_Child :: T_Child -> Inh_Child -> Syn_Child

sem_Child_Child :: Identifier -> Type -> ChildKind -> T_Child

splitAttrs :: Map Identifier a -> [Identifier] -> ([(Identifier, a)], [Identifier])

removeDefined :: Set (Identifier, Identifier) -> (Identifier, Attributes) -> (Identifier, [Identifier])

makeRule :: (Identifier, Identifier) -> Expression -> String -> Bool -> Maybe Error -> Rule

useRule :: Set Identifier -> [(Identifier, Attributes)] -> (Identifier, (String, String, String)) -> Rule

selfRule :: Bool -> Identifier -> [HsToken] -> Rule

copyRule :: Options -> Set NontermIdent -> Identifier -> Identifier -> Bool -> Set Identifier -> (Map Identifier Identifier, (Identifier, [Identifier])) -> ([Rule], Seq Error)

addAugments :: (Identifier, [Expression]) -> [Rule] -> [Rule]

addArounds :: (Identifier, [Expression]) -> [Rule] -> [Rule]

addMerges :: (Identifier, (Identifier, [Identifier], Expression)) -> [Rule] -> [Rule]

elimSelfId :: NontermIdent -> [Identifier] -> Type -> Type

elimSelfStr :: NontermIdent -> [String] -> Type -> Type

mkRuleAlias :: Rule -> (Rule, Maybe Rule)

needsMultiRules :: Options -> Bool

multiRule :: Rule -> Int -> ([Rule], Int)