optional attributes
optional attributes
true or false constants
true or false constants
single value expressions, where != 0 is true and != null is true
single value expressions, where != 0 is true and != null is true
main entry point for an expression
main entry point for an expression
a regular ident but also something in single quotes '[email protected] and - is a good ident eh'
a regular ident but also something in single quotes '[email protected] and - is a good ident eh'
allow JSON ids with double quotes, single quotes or no quotes
allow JSON ids with double quotes, single quotes or no quotes
optional attributes
optional attributes
:<>type[kind]* <> means it's a ref, not ownership * means it's a list
:<>type[kind]* <> means it's a ref, not ownership * means it's a list
parm assignment, left side can be a[5].name, useful in a $val
parm assignment, left side can be a[5].name, useful in a $val
parm definition / assignment
parm definition / assignment
name:<>type[kind]*~=default
<> means it's a ref, not ownership * means it's a list
simple ident = expr assignemtn when calling
simple ident = expr assignemtn when calling
qualified idents, .
qualified idents, . notation, parsed as a single string
qualified idents, .
qualified idents, . notation, parsed as a list
(Changed in version 2.9.0) The p0
call-by-name arguments is evaluated at most once per constructed Parser object, instead of on every need that arises during parsing.
A simple parser for our simple specs
DomParser is the actual Diesel/Dom parser. We extend from it to include its functionality and then we add its parsing rules with withBlocks()