| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Little.Earley.Examples
Description
Some examples of grammars.
Grammars
arithG :: Grammar ArithN CharT Char Source #
Grammar of arithmetic expressions.
SUM ::= PRODUCT | SUM [+-] PRODUCT PRODUCT ::= FACTOR | PRODUCT [*/] FACTOR FACTOR ::= NUMBER | [(] NUMBER [)] NUMBER ::= [0-9] | [0-9] NUMBER
Example
pparse arithG SUM "1+2*3"
aArithG :: Grammar ArithN CharT Char Source #
Ambiguous grammar of arithmetic expressions.
SUM ::= PRODUCT | SUM [+-] SUM PRODUCT ::= FACTOR | PRODUCT [*/] PRODUCT FACTOR ::= NUMBER | [(] NUMBER [)] NUMBER ::= [0-9] | [0-9] NUMBER
Example
pparse aArithG SUM "1+2-3"
mlG :: Grammar MlN String String Source #
ML-like syntax.
TERM ::= ATOMS
| "fun" VAR "->" TERM
| "let" VAR "=" TERM "in" TERM
| "if" TERM "then" TERM
| "if" TERM "then" TERM "else" TERM
ATOMS ::= ATOM | ATOMS ATOM
ATOM ::= VAR
| "(" TERM ")"
VAR ::= "a" | "b" | "c" | ...Example
Featuring the if-then-else ambiguity.
pparse mlG TERM (words "if a then if b then c else d")
jsonG :: Grammar JsonN String String Source #
JSON grammar.
JSON ::= "null" | "true" | "false" | (number) | (string) | "{" OBJECT "}" | "[" ARRAY "]"
OBJECT ::= (string) ":" JSON | (string) ":" JSON "," OBJECT
ARRAY ::= JSON | JSON "," ARRAYExample
pparse jsonG JSON (words "{ \"key\" : \"answer\" , \"contents\" : 42 }")
Symbols
Non-terminals for arithmetic expressions.
Non-terminals for lambda expressions.
Instances
| Bounded LambdaN Source # | |
| Enum LambdaN Source # | |
| Eq LambdaN Source # | |
| Ord LambdaN Source # | |
Defined in Little.Earley.Examples | |
| Show LambdaN Source # | |
Non-terminals for an ML-like language.
Non-terminals for JSON.