|
|
@@ -81,10 +81,10 @@
|
|
|
model.behaviors[ref] = new ast.Behavior(ref, [], [])
|
|
|
}
|
|
|
|
|
|
- return warnify(model);
|
|
|
+ return errorCheck(model);
|
|
|
};
|
|
|
|
|
|
- var warnify = function warnify(model) {
|
|
|
+ var errorCheck = function errorCheck(model) {
|
|
|
model.errors = ast.errors;
|
|
|
|
|
|
for (var i in model.interactions) {
|
|
|
@@ -241,25 +241,25 @@ interaction_statement "Interaction"
|
|
|
{ return interaction; }
|
|
|
|
|
|
interaction_body
|
|
|
- = first:system_item_selector _ type:THEN _
|
|
|
- second:system_item_selector rest:(_ THEN _ a:system_item_selector { return a; })*
|
|
|
+ = first:selector_pattern _ type:THEN _
|
|
|
+ second:selector_pattern rest:(_ THEN _ a:selector_pattern { return a; })*
|
|
|
{ return new ast.Interaction(type, [first, second].concat(rest)); }
|
|
|
- / first:system_item_selector_sans _ type:JOIN _
|
|
|
- second:system_item_selector_sans rest:(_ JOIN _ a:system_item_selector_sans { return a; })*
|
|
|
+ / first:selector_pattern_sans _ type:JOIN _
|
|
|
+ second:selector_pattern_sans rest:(_ JOIN _ a:selector_pattern_sans { return a; })*
|
|
|
{ return new ast.Interaction(type, [first, second].concat(rest)); }
|
|
|
|
|
|
interaction_type
|
|
|
= _ t:( THEN / JOIN ) _
|
|
|
{ return t; }
|
|
|
|
|
|
-system_item_selector "Selector"
|
|
|
+selector_pattern "Selector"
|
|
|
= !{ ast.selector = true; }
|
|
|
- _ pre:( "{" c:embedded_code "}" { return c; } )? _
|
|
|
+ _ pre:( "{" c:code_block "}" { return c; } )? _
|
|
|
sys:system_id ":" _ pattern:behavior_pattern
|
|
|
- _ post:( "{" c:embedded_code "}" { return c; } )? _
|
|
|
+ _ post:( "{" c:code_block "}" { return c; } )? _
|
|
|
{ ast.selector = false; return new ast.Selector(sys, pattern, pre, post); }
|
|
|
|
|
|
-system_item_selector_sans "Selector"
|
|
|
+selector_pattern_sans "Selector"
|
|
|
= !{ ast.selector = true; }
|
|
|
_ sys:system_id ":" _ pattern:behavior_pattern _
|
|
|
{ ast.selector = false; return new ast.Selector(sys, pattern); }
|
|
|
@@ -268,7 +268,7 @@ behavior_pattern "Behavior Pattern"
|
|
|
= ( alternation / sequence )+
|
|
|
|
|
|
alternation
|
|
|
- = head:behavior_pattern_item tail:( _PIPE_ item:behavior_pattern_item { return item; } )+
|
|
|
+ = head:pattern_element tail:( _PIPE_ item:pattern_element { return item; } )+
|
|
|
{
|
|
|
var body = [head].concat(tail);
|
|
|
for (var i = 0; i < body.length; i++) {
|
|
|
@@ -279,7 +279,7 @@ alternation
|
|
|
}
|
|
|
|
|
|
sequence
|
|
|
- = body:behavior_pattern_item+
|
|
|
+ = body:pattern_element+
|
|
|
{
|
|
|
for (var i = 0; i < body.length; i++) {
|
|
|
if (body[i].scope.max && body[i].scope.min > body[i].scope.max)
|
|
|
@@ -288,7 +288,7 @@ sequence
|
|
|
return new ast.Sequence(body);
|
|
|
}
|
|
|
|
|
|
-behavior_pattern_item
|
|
|
+pattern_element
|
|
|
= _ i:group q:quantifier? _
|
|
|
{ return scopify(i, q); }
|
|
|
/ _ i:event_ref q:quantifier? _
|
|
|
@@ -309,15 +309,15 @@ quantifier_range
|
|
|
{ return minmaxify(lo, hi); }
|
|
|
|
|
|
trigger "Trigger"
|
|
|
- = _WHEN_ _COLON_ selector:system_item_selector_sans "{" body:embedded_code "}"
|
|
|
+ = _WHEN_ _COLON_ selector:selector_pattern_sans "{" body:code_block "}"
|
|
|
{ return new ast.Trigger(selector, body); }
|
|
|
|
|
|
init "Init Block"
|
|
|
- = _INIT_ _COLON_ system:system_id? _ "{" body:embedded_code "}"
|
|
|
+ = _INIT_ _COLON_ system:system_id? _ "{" body:code_block "}"
|
|
|
{ return new ast.Init(system, body); }
|
|
|
|
|
|
-embedded_code
|
|
|
- = [^{}]* ( "{" embedded_code "}" )? [^{}]*
|
|
|
+code_block
|
|
|
+ = [^{}]* ( "{" code_block "}" )? [^{}]*
|
|
|
{ return text().trim(); }
|
|
|
|
|
|
behavior_id = id:ID { return id; }
|