BNFC-meta-0.4.0.1: Deriving Parsers and Quasi-Quoters from BNF Grammars

Safe HaskellNone

Language.LBNF.Grammar

Documentation

myLexer :: String -> [Token]

tokens :: String -> [Token]

pListDef :: [Token] -> ParseMonad [Def]

pListItem :: [Token] -> ParseMonad [Item]

pDef :: [Token] -> ParseMonad Def

pRHS :: [Token] -> ParseMonad RHS

pListRHS :: [Token] -> ParseMonad [RHS]

pItem :: [Token] -> ParseMonad Item

pCat :: [Token] -> ParseMonad Cat

pCat1 :: [Token] -> ParseMonad Cat

pLabel :: [Token] -> ParseMonad Label

pMIdent :: [Token] -> ParseMonad MIdent

pHsTyp :: [Token] -> ParseMonad HsTyp

pHsTyp1 :: [Token] -> ParseMonad HsTyp

pListHsTyp :: [Token] -> ParseMonad [HsTyp]

pArg :: [Token] -> ParseMonad Arg

pListArg :: [Token] -> ParseMonad [Arg]

pExp :: [Token] -> ParseMonad Exp

pExp1 :: [Token] -> ParseMonad Exp

pExp2 :: [Token] -> ParseMonad Exp

pListExp2 :: [Token] -> ParseMonad [Exp]

pListExp :: [Token] -> ParseMonad [Exp]

pListString :: [Token] -> ParseMonad [String]

pReg2 :: [Token] -> ParseMonad Reg

pReg1 :: [Token] -> ParseMonad Reg

pReg3 :: [Token] -> ParseMonad Reg

pReg :: [Token] -> ParseMonad Reg

pListIdent :: [Token] -> ParseMonad [Ident]

grammar :: QuasiQuoter

listDef :: QuasiQuoter

listItem :: QuasiQuoter

def :: QuasiQuoter

rHS :: QuasiQuoter

listRHS :: QuasiQuoter

item :: QuasiQuoter

cat :: QuasiQuoter

cat1 :: QuasiQuoter

label :: QuasiQuoter

mIdent :: QuasiQuoter

hsTyp :: QuasiQuoter

hsTyp1 :: QuasiQuoter

listHsTyp :: QuasiQuoter

arg :: QuasiQuoter

listArg :: QuasiQuoter

exp :: QuasiQuoter

exp1 :: QuasiQuoter

exp2 :: QuasiQuoter

listExp2 :: QuasiQuoter

listExp :: QuasiQuoter

listString :: QuasiQuoter

minimumSize :: QuasiQuoter

reg2 :: QuasiQuoter

reg1 :: QuasiQuoter

reg3 :: QuasiQuoter

reg :: QuasiQuoter

listIdent :: QuasiQuoter

data Grammar

Constructors

Grammar [Def] 

Instances

data Def

Constructors

Rule Label Cat RHS 
Comment String 
Comments String String 
Internal Label Cat [Item] 
Token Ident Reg 
PosToken Ident Reg 
Entryp [Ident] 
Separator MinimumSize Cat String 
Terminator MinimumSize Cat String 
Coercions Ident Integer 
Rules Ident [RHS] 
Function Ident [Arg] Exp 
External Ident HsTyp 
AntiQuote String String String 
Derive [Ident] 
Layout [String] 
LayoutStop [String] 
LayoutTop 

Instances

Eq Def 
Ord Def 
Show Def 
Print Def 

data RHS

Constructors

RHS [Item] 
TRHS Reg 

Instances

Eq RHS 
Ord RHS 
Show RHS 
Print RHS 

data Item

Constructors

Terminal String 
NTerminal Cat 

Instances

Eq Item 
Ord Item 
Show Item 
Print Item 

data Cat

Constructors

OptCat Cat 
ListCat Cat 
IdCat Ident 

Instances

Eq Cat 
Ord Cat 
Show Cat 
Print Cat 

data Label

Constructors

Id Ident 
Wild 
ListE 
ListCons 
ListOne 
Aq MIdent 

Instances

Eq Label 
Ord Label 
Show Label 
Print Label 

data MIdent

Constructors

JIdent Ident 
NIdent 

Instances

Eq MIdent 
Ord MIdent 
Show MIdent 
Print MIdent 

data HsTyp

Instances

Eq HsTyp 
Ord HsTyp 
Show HsTyp 
Print HsTyp 

data Arg

Constructors

Arg Ident 

Instances

Eq Arg 
Ord Arg 
Show Arg 
Print Arg 

data Exp

Constructors

Cons Exp Exp 
App Ident [Exp] 
Var Ident 
LitInt Integer 
LitChar Char 
LitString String 
LitDouble Double 
List [Exp] 

Instances

Eq Exp 
Ord Exp 
Show Exp 
Print Exp 

data MinimumSize

Constructors

MNonempty 
MEmpty 

data Reg

Constructors

RSeq Reg Reg 
RAlt Reg Reg 
RMinus Reg Reg 
RStar Reg 
RPlus Reg 
ROpt Reg 
REps 
RChar Char 
RAlts String 
RSeqs String 
RDigit 
RLetter 
RUpper 
RLower 
RAny 

Instances

Eq Reg 
Ord Reg 
Show Reg 
Print Reg 

newtype Ident

Constructors

Ident String 

Instances

Eq Ident 
Ord Ident 
Show Ident 
Print Ident