a line of wiki (to CR/LF)
a line of wiki (to CR/LF)
a sequence of lines
a sequence of lines
an optional line
an optional line
provide a realm
provide a realm
add a domain element to the topic
assoc : role
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
pattern match for ent.met
ent.met (parms)
msg name (a,b) : String
main entry point for an expression
main entry point for an expression
this one used for fiddles, see FiddleParser
this one used for fiddles, see FiddleParser
this is not parsed in the context of a wiki, it's just for a fiddle display...
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
assoc : role
this one used for fiddles, see FiddleParser
this one used for fiddles, see FiddleParser
this is not parsed in the context of a wiki, it's just for a fiddle display...
.mock a.role (attrs) => z.role (attrs)
this one used for fiddles, see FiddleParser
this one used for fiddles, see FiddleParser
just for display, not in the context of a wiki
.msg object.func (a,b) : (out)
def name (a,b) : String
todo is not working
optional attributes
optional attributes
optional script body
:<>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
.anno (params)
.anno (params)
annotation - applied to the next element. you can have just one for now
annotations have to be in the same page and are claimed by the first element that follows
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
.expect object.func (a,b)
.assoc name a:role -> z:role
parm definition / assignment
parm definition / assignment
name:<>type[kind]*~=default
<> means it's a ref, not ownership * means it's a list
optional script body
simple ident = expr assignemtn when calling
simple ident = expr assignemtn when calling
.class X [T] (a,b:String) extends A,B {}
.func name (a,b) : String
.expect object.func (a,b)
.flow e.a => expr
- text - i.e.
- text - i.e. step description
- text - i.e.
- text - i.e. step description todo is not working
.match a.role (attrs) // not used
condition - bool expr
name:type[kind] OPerator xx means it's a list
name:type[kind] OPerator xx means it's a list
pmatch is more than just a simple conditional expression
.msg object.func (a,b)
.msg object.func (a,b)
An NVP is either the spec or an instance of a function call, a message, a data object... whatever...
.receive object.func (a,b)
.receive object.func (a,b)
An NVP is either the spec or an instance of a function call, a message, a data object... whatever...
.option name:type=value
.option name:type=value
use them to set options
.when <tags> a.role (attrs) => z.role (attrs) tags are optional and could be rule, mock, model, impl etc - rule is the default for execution - mock is for mocks - others like model or impl are specific
ent.met - qualified ent so at least two elements
ent.met - qualified ent so at least two elements
(ent, act, fullString)
qualified idents, .
qualified idents, . notation, parsed as a single string
p.a.ent.met - qualified ent so at least two elements
p.a.ent.met - qualified ent so at least two elements
(ent, act, fullString)
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.
domain parser - for domain sections in a wiki