type-aware arithmetic expressions of the form "a OP b" - on various types, including json, strings, arrays etc
a "function-like" call: - built-in functions, - msg functions (exec'd in same engine, sync) - domain functions / class members
resolving qualified identifier, including arrays, ranges, json docs etc
composed boolean expression
simple boolean expression
const boolean expression
negated boolean expression
single term bool expression
boolean expression block - show the () when printing
details about the result: what values were involved?
a block i.e.
a block i.e. ( expr )
boolean expressions
constant expression - similar to PValue
a function
marker exception class for expr - understood by AST engine and treated nicer than a random exception
A map-like context of attribute values, used by the Diesel engine.
A map-like context of attribute values, used by the Diesel engine. Also, most expression evaluators work within a context.
These contexts are hierarchical, with inheritance and overwriting. Each engine has a root context. There are also scope contexts (which don't allow propagation of values) etc
They also capture a spec environment: a list of specs (could be drafts or a specific version)
Also, they have an optional domain - this is used to source values and functions and other objects for expressions. Normally, the domain is set by the engine at the root context level.
todo keep a ref to the original specs, to get more details, so for the duration of this context, the configuration is the right version
an expression
expressions parser.
expressions parser. this is a trait you can mix in your other DSL parsers, see SimpleExprParser for a concrete implementation
See http://specs.razie.com/wiki/Story:expr_story for possible expressions and examples
a range like 1..4 or ..5 etc
element has DSL form
element has DSL form
deserialization is assumed via parser
the idea is that all activities would have an external DSL form as well and can serialize themselves in that form
serialize the DEFINITION only - not including states/values
a json array
a json document block: - you may or may not use quotes for names -
a js expression js:a.b js:{...}
a "function" call: built-in functions, msg functions (exec'd in same engine, sync)
assignment - needed because the left side is more than just a val
a scala expression sc:a.b sc:{...}
context for an internal scope - parent is scope or Eng
context for an internal scope - parent is scope or Eng
todo when saving a context, do I save children too?
todo when loading context, how do I reover active scope contexts
a context - LIST, use to see speed of list
A simple parser for our simple specs
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()
static context will delegate updates to parent - good as temporary override when evaluating a message
static context will delegate updates to parent - good as temporary override when evaluating a message
Basic executable/actionable interface.
Basic executable/actionable interface. These process a default input value and return a Typed output value.
They are also invoked in a context - a set of objects in a certain role.
There are two major branches: WFunc and WfActivity. An action is a workflow specific thing and is aware of next actions, state of execution whatnot. It also does something so it's derived from WFunc.
WFunc by itself only does something and is not stateful. Most activities are like that.
just a constant expr
resolving qualified identifier, including arrays, ranges, json docs etc
qualified expr a.b.c - this is used in places as such... don't replace with just a
the rest from the first []