Copyright | (c) Juan García Garland |
---|---|
License | GPL |
Maintainer | jpgarcia@fing.edu.uy |
Stability | experimental |
Portability | POSIX |
Safe Haskell | None |
Language | Haskell2010 |
Synopsis
- str2Sym :: String -> TypeQ
- attLabel :: String -> Name -> DecsQ
- attMono :: String -> Name -> DecsQ
- attPoly :: String -> DecsQ
- attLabels :: [(String, Name)] -> Q [Dec]
- addNont :: String -> Q [Dec]
- addNTLabel :: String -> Q [Dec]
- addNTType :: String -> Q [Dec]
- type family Terminal s :: Either NT T where ...
- type family NonTerminal s where ...
- data SymTH
- addChi :: String -> Name -> SymTH -> Q [Dec]
- addPrd :: String -> Name -> Q [Dec]
- addPrdLabel :: String -> Name -> DecsQ
- addPrdType :: Monad m => [Char] -> Name -> m [Dec]
- addProd :: String -> Name -> [(String, SymTH)] -> Q [Dec]
- class Prods (lhs :: NT) (name :: Symbol) (rhs :: [(Symbol, Symbol)])
- getInstances :: Q [InstanceDec]
- showInstances :: Q Exp
- addInstance :: Name -> String -> [(Name, Name)] -> Q [Dec]
- typeList :: [(Name, Name)] -> Q Type
- nameToSymbol :: Show a => a -> TypeQ
- nameToSymbolBase :: Name -> TypeQ
- isNTName :: Name -> Bool
- closeNT :: Name -> Q [Dec]
- isInstanceOf :: Name -> Dec -> Bool
- mkCon :: InstanceDec -> Con
- mkBangP :: (a, Name) -> (Bang, Type)
- mkBangPR :: (a, Name) -> (a, Bang, Type)
- getTList :: Type -> [(Name, Name)]
- getTListNT :: Type -> [(Name, Name)]
- mkClause :: InstanceDec -> Clause
- toSemRec :: [(Name, Name)] -> Exp
- closeNTs :: [Name] -> Q [Dec]
- mkSemFunc :: Name -> Q [Dec]
- mkSemFuncs :: [Name] -> Q [Dec]
Attribute labels
attLabel :: String -> Name -> DecsQ Source #
TH function to define a typed attribute label given a name and a quoted type
Non terminals
Productions
type family NonTerminal s where ... Source #
NonTerminal s = Left s |
getInstances :: Q [InstanceDec] Source #
showInstances :: Q Exp Source #
nameToSymbol :: Show a => a -> TypeQ Source #
nameToSymbolBase :: Name -> TypeQ Source #
mkCon :: InstanceDec -> Con Source #
mkClause :: InstanceDec -> Clause Source #
like |mkCon| in semantic functions, builds a case