uuagc

TfmToVisage

# Documentation

sem_Children :: Children -> T_Children

newtype T_Children

Constructors

T_Children (Map Identifier Attributes -> VisageRuleMap -> Map Identifier Attributes -> [VisageChild]) |

data Inh_Children

Constructors

Inh_Children |
Fields inhMap_Inh_Children :: Map Identifier Attributes rulemap_Inh_Children :: VisageRuleMap synMap_Inh_Children :: Map Identifier Attributes

data Syn_Children

Constructors

Syn_Children |
Fields vchildren_Syn_Children :: [VisageChild]

wrap_Children :: T_Children -> Inh_Children -> Syn_Children

sem_Children_Cons :: T_Child -> T_Children -> T_Children

sem_Children_Nil :: T_Children

sem_Expression :: Expression -> T_Expression

newtype T_Expression

Constructors

T_Expression Expression |

data Inh_Expression

Constructors

Inh_Expression |

data Syn_Expression

Constructors

Syn_Expression |
Fields self_Syn_Expression :: Expression

wrap_Expression :: T_Expression -> Inh_Expression -> Syn_Expression

sem_Expression_Expression :: Pos -> [HsToken] -> T_Expression

sem_Grammar :: Grammar -> T_Grammar

newtype T_Grammar

Constructors

T_Grammar VisageGrammar |

data Inh_Grammar

Constructors

Inh_Grammar |

data Syn_Grammar

Constructors

Syn_Grammar |
Fields visage_Syn_Grammar :: VisageGrammar

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 (Map Identifier Attributes -> Map Identifier Attributes -> (Map Identifier Attributes, Map Identifier Attributes, VisageNonterminal)) |

data Inh_Nonterminal

Constructors

Inh_Nonterminal |
Fields inhMap_Inh_Nonterminal :: Map Identifier Attributes synMap_Inh_Nonterminal :: Map Identifier Attributes

data Syn_Nonterminal

Constructors

Syn_Nonterminal |
Fields inhMap'_Syn_Nonterminal :: Map Identifier Attributes synMap'_Syn_Nonterminal :: Map Identifier Attributes vnont_Syn_Nonterminal :: VisageNonterminal

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 (Map Identifier Attributes -> Map Identifier Attributes -> (Map Identifier Attributes, Map Identifier Attributes, [VisageNonterminal])) |

data Inh_Nonterminals

Constructors

Inh_Nonterminals |
Fields inhMap_Inh_Nonterminals :: Map Identifier Attributes synMap_Inh_Nonterminals :: Map Identifier Attributes

data Syn_Nonterminals

Constructors

Syn_Nonterminals |
Fields inhMap'_Syn_Nonterminals :: Map Identifier Attributes synMap'_Syn_Nonterminals :: Map Identifier Attributes vnonts_Syn_Nonterminals :: [VisageNonterminal]

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 (Pattern, [(Identifier, Identifier)], Pattern, VisagePattern) |

data Inh_Pattern

Constructors

Inh_Pattern |

data Syn_Pattern

Constructors

Syn_Pattern |
Fields copy_Syn_Pattern :: Pattern fieldattrs_Syn_Pattern :: [(Identifier, Identifier)] self_Syn_Pattern :: Pattern vpat_Syn_Pattern :: VisagePattern

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 (Patterns, [(Identifier, Identifier)], Patterns, [VisagePattern]) |

data Inh_Patterns

Constructors

Inh_Patterns |

data Syn_Patterns

Constructors

Syn_Patterns |
Fields copy_Syn_Patterns :: Patterns fieldattrs_Syn_Patterns :: [(Identifier, Identifier)] self_Syn_Patterns :: Patterns vpats_Syn_Patterns :: [VisagePattern]

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 Identifier Attributes -> Map Identifier Attributes -> VisageProduction) |

data Inh_Production

Constructors

Inh_Production |
Fields inhMap_Inh_Production :: Map Identifier Attributes synMap_Inh_Production :: Map Identifier Attributes

data Syn_Production

Constructors

Syn_Production |
Fields vprod_Syn_Production :: VisageProduction

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 Identifier Attributes -> Map Identifier Attributes -> [VisageProduction]) |

data Inh_Productions

Constructors

Inh_Productions |
Fields inhMap_Inh_Productions :: Map Identifier Attributes synMap_Inh_Productions :: Map Identifier Attributes

data Syn_Productions

Constructors

Syn_Productions |
Fields vprods_Syn_Productions :: [VisageProduction]

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 VisageRule |

data Inh_Rule

Constructors

Inh_Rule |

data Syn_Rule

Constructors

Syn_Rule |
Fields vrule_Syn_Rule :: VisageRule

wrap_Rule :: T_Rule -> Inh_Rule -> Syn_Rule

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

sem_Rules :: Rules -> T_Rules

newtype T_Rules

Constructors

T_Rules [VisageRule] |

data Inh_Rules

Constructors

Inh_Rules |

data Syn_Rules

Constructors

Syn_Rules |
Fields vrules_Syn_Rules :: [VisageRule]

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 () |

data Inh_TypeSig

Constructors

Inh_TypeSig |

data Syn_TypeSig

Constructors

Syn_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 () |

data Inh_TypeSigs

Constructors

Inh_TypeSigs |

data Syn_TypeSigs

Constructors

Syn_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 (Map Identifier Attributes -> VisageRuleMap -> Map Identifier Attributes -> VisageChild) |

data Inh_Child

Constructors

Inh_Child |
Fields inhMap_Inh_Child :: Map Identifier Attributes rulemap_Inh_Child :: VisageRuleMap synMap_Inh_Child :: Map Identifier Attributes

data Syn_Child

Constructors

Syn_Child |
Fields vchild_Syn_Child :: VisageChild

wrap_Child :: T_Child -> Inh_Child -> Syn_Child

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

type VisageRuleMap = [(String, VisageRule)]

splitVRules :: [VisageRule] -> VisageRuleMap

unfoldvrs :: VisageRule -> VisageRuleMap

copyRule :: VisageRule -> (Identifier, Identifier) -> VisageRule

getForField :: String -> VisageRuleMap -> [VisageRule]