symantic-6.3.0.20170807: Library for Typed Tagless-Final Higher-Order Composable DSL

Safe HaskellNone
LanguageHaskell2010

Language.Symantic.Compiling.Grammar

Contents

Synopsis

Class Gram_Term_Name

class (Gram_Terminal g, Gram_Rule g, Gram_Alt g, Gram_Try g, Gram_App g, Gram_AltApp g, Gram_RegL g, Gram_CF g, Gram_Comment g, Gram_Op g, Gram_Mod g) => Gram_Term_Name g where Source #

Class Gram_Term_Type

class (Gram_Terminal g, Gram_Rule g, Gram_Alt g, Gram_AltApp g, Gram_App g, Gram_CF g, Gram_Comment g, Gram_Term_Name g, Gram_Type src g) => Gram_Term_Type src g where Source #

Instances

(Gram_Source src RuleEBNF, Constable (* -> * -> *) (->), Constable (* -> * -> *) (,), Constable (* -> *) []) => Gram_Term_Type src RuleEBNF Source # 
(Gram_Source src EBNF, Constable (* -> * -> *) (->), Constable (* -> * -> *) (,), Constable (* -> *) []) => Gram_Term_Type src EBNF Source # 
Gram_Term_Type src g => Gram_Term_Type src (CF g) Source # 

Type Error_Term_Gram

Class Gram_Term

class (Gram_Source src g, Gram_Error Error_Term_Gram g, Gram_Terminal g, Gram_Rule g, Gram_Alt g, Gram_App g, Gram_AltApp g, Gram_CF g, Gram_Comment g, Gram_Type src g, Gram_Term_Name g, Gram_Term_Type src g, Gram_Term_Atoms src ss g, Gram_State (Imports NameTe, Modules src ss) g) => Gram_Term src ss g where Source #

Methods

g_term :: CF g (AST_Term src ss) Source #

g_term_operators :: CF g (AST_Term src ss) Source #

g_term_atom :: CF g (AST_Term src ss) Source #

g_term_group :: CF g (AST_Term src ss) Source #

g_term_abst :: CF g (AST_Term src ss) Source #

g_term_abst_args_body :: CF g [(NameTe, AST_Type src)] -> CF g (AST_Term src ss) -> CF g ([(NameTe, AST_Type src)], AST_Term src ss) Source #

g_term_let :: CF g (AST_Term src ss) Source #

Instances

(Gram_Term_Atoms src ss RuleEBNF, Gram_Source src RuleEBNF, Constable (* -> * -> *) (->), Constable (* -> * -> *) (,), Constable (* -> *) []) => Gram_Term src ss RuleEBNF Source # 
(Gram_Term_Atoms src ss EBNF, Gram_Source src EBNF, Constable (* -> * -> *) (->), Constable (* -> * -> *) (,), Constable (* -> *) []) => Gram_Term src ss EBNF Source # 
(Gram_Term src ss g, Gram_Term_Atoms src ss (CF g)) => Gram_Term src ss (CF g) Source # 

Methods

g_term :: CF (CF g) (AST_Term src ss) Source #

g_term_operators :: CF (CF g) (AST_Term src ss) Source #

g_term_atom :: CF (CF g) (AST_Term src ss) Source #

g_term_group :: CF (CF g) (AST_Term src ss) Source #

g_term_abst :: CF (CF g) (AST_Term src ss) Source #

g_term_abst_args_body :: CF (CF g) [(NameTe, AST_Type src)] -> CF (CF g) (AST_Term src ss) -> CF (CF g) ([(NameTe, AST_Type src)], AST_Term src ss) Source #

g_term_let :: CF (CF g) (AST_Term src ss) Source #

Class Gram_Term_Atoms

type Gram_Term_Atoms src ss g = Gram_Term_AtomsR src ss ss g Source #

Class Gram_Term_AtomsR

class Gram_Term_AtomsR src ss rs g where Source #

Minimal complete definition

g_term_atomsR

Methods

g_term_atomsR :: [CF g (AST_Term src ss)] Source #

Instances

Gram_Term_AtomsR src ss ([] *) g Source # 

Methods

g_term_atomsR :: [CF g (AST_Term src ss)] Source #

(Gram_Term_AtomsFor k src ss g t, Gram_Term_AtomsR src ss rs g) => Gram_Term_AtomsR src ss ((:) * (Proxy k t) rs) g Source # 

Methods

g_term_atomsR :: [CF g (AST_Term src ss)] Source #

Class Gram_Term_AtomsFor

class Gram_Term_AtomsFor src ss g t where Source #

Methods

g_term_atomsFor :: [CF g (AST_Term src ss)] Source #

gram_term :: forall g. Gram_Term () '[Proxy (->), Proxy Integer] g => [CF g ()] Source #