ekms 9.6.3-beta.13 → 9.6.3-beta.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,12 +4,53 @@
4
4
  "name": "actions",
5
5
  "operators": [
6
6
  "([doAction|do] ([action]))",
7
- "((action) <again>)"
7
+ "((action) <again>)",
8
+ "((action) [thenAction|then] (action))"
8
9
  ],
9
10
  "bridges": [
10
11
  {
11
12
  "id": "action"
12
13
  },
14
+ {
15
+ "id": "thenAction",
16
+ "level": 0,
17
+ "isA": [
18
+ "action"
19
+ ],
20
+ "before": [
21
+ "doAction"
22
+ ],
23
+ "selector": {
24
+ "left": [
25
+ {
26
+ "pattern": "(action))"
27
+ }
28
+ ],
29
+ "right": [
30
+ {
31
+ "pattern": "(action)"
32
+ }
33
+ ],
34
+ "passthrough": true
35
+ },
36
+ "bridge": "{ \n ...next(operator),\n operator: operator, \n listable: true, \n isList: true, \n before: before, \n after: after, \n value: append(before, after)\n }"
37
+ },
38
+ {
39
+ "id": "thenAction",
40
+ "level": 1,
41
+ "before": [
42
+ "doAction"
43
+ ],
44
+ "selector": {
45
+ "left": [
46
+ {
47
+ "pattern": "(action)"
48
+ }
49
+ ],
50
+ "passthrough": true
51
+ },
52
+ "bridge": "{ ...next(operator), value: append(before, operator.value) }"
53
+ },
13
54
  {
14
55
  "id": "again",
15
56
  "bridge": "{\n ...before[0],\n action: before[0],\n again: operator,\n interpolate: [{ property: 'action' }, { property: 'again' }]\n }"
@@ -38,6 +79,25 @@
38
79
  "bridge": "{\n ...next(operator),\n operator: operator,\n action: after[0],\n interpolate: [{ property: 'operator' }, { property: 'action' }]\n }"
39
80
  }
40
81
  ],
82
+ "words": {
83
+ "patterns": [
84
+ {
85
+ "pattern": [
86
+ "action",
87
+ {
88
+ "type": "digit"
89
+ }
90
+ ],
91
+ "allow_partial_matches": false,
92
+ "defs": [
93
+ {
94
+ "id": "action",
95
+ "initial": "{ value: text, instance: true }"
96
+ }
97
+ ]
98
+ }
99
+ ]
100
+ },
41
101
  "semantics": [
42
102
  {
43
103
  "match": "({context, isA}) => isA(context.marker, 'action')",
@@ -52,12 +112,53 @@
52
112
  "name": "actions",
53
113
  "operators": [
54
114
  "([doAction|do] ([action]))",
55
- "((action) <again>)"
115
+ "((action) <again>)",
116
+ "((action) [thenAction|then] (action))"
56
117
  ],
57
118
  "bridges": [
58
119
  {
59
120
  "id": "action"
60
121
  },
122
+ {
123
+ "id": "thenAction",
124
+ "level": 0,
125
+ "isA": [
126
+ "action"
127
+ ],
128
+ "before": [
129
+ "doAction"
130
+ ],
131
+ "selector": {
132
+ "left": [
133
+ {
134
+ "pattern": "(action))"
135
+ }
136
+ ],
137
+ "right": [
138
+ {
139
+ "pattern": "(action)"
140
+ }
141
+ ],
142
+ "passthrough": true
143
+ },
144
+ "bridge": "{ \n ...next(operator),\n operator: operator, \n listable: true, \n isList: true, \n before: before, \n after: after, \n value: append(before, after)\n }"
145
+ },
146
+ {
147
+ "id": "thenAction",
148
+ "level": 1,
149
+ "before": [
150
+ "doAction"
151
+ ],
152
+ "selector": {
153
+ "left": [
154
+ {
155
+ "pattern": "(action)"
156
+ }
157
+ ],
158
+ "passthrough": true
159
+ },
160
+ "bridge": "{ ...next(operator), value: append(before, operator.value) }"
161
+ },
61
162
  {
62
163
  "id": "again",
63
164
  "bridge": "{\n ...before[0],\n action: before[0],\n again: operator,\n interpolate: [{ property: 'action' }, { property: 'again' }]\n }"
@@ -86,6 +187,25 @@
86
187
  "bridge": "{\n ...next(operator),\n operator: operator,\n action: after[0],\n interpolate: [{ property: 'operator' }, { property: 'action' }]\n }"
87
188
  }
88
189
  ],
190
+ "words": {
191
+ "patterns": [
192
+ {
193
+ "pattern": [
194
+ "action",
195
+ {
196
+ "type": "digit"
197
+ }
198
+ ],
199
+ "allow_partial_matches": false,
200
+ "defs": [
201
+ {
202
+ "id": "action",
203
+ "initial": "{ value: text, instance: true }"
204
+ }
205
+ ]
206
+ }
207
+ ]
208
+ },
89
209
  "semantics": [
90
210
  {
91
211
  "priority": -1
package/common/actions.js CHANGED
@@ -5,16 +5,53 @@ const time = require("./time")
5
5
  const tests = require('./actions.test.json')
6
6
  const instance = require('./actions.instance.json')
7
7
 
8
+ /*
9
+ do patrol 1 then patrol 2 then patrol 3
10
+ do patrol 1 patrol 2 and then patrol 3
11
+ */
12
+
8
13
  const config = {
9
14
  name: 'actions',
10
15
  operators: [
11
16
  "([doAction|do] ([action]))",
12
17
  "((action) <again>)",
18
+ "((action) [thenAction|then] (action))",
13
19
  ],
14
20
  bridges: [
15
21
  {
16
22
  id: 'action',
17
23
  },
24
+ {
25
+ id: "thenAction",
26
+ level: 0,
27
+ isA: ['action'],
28
+ before: ['doAction'],
29
+ selector: {
30
+ left: [ { pattern: '(action))' } ],
31
+ right: [ { pattern: '(action)' } ],
32
+ passthrough: true
33
+ },
34
+ bridge: `{
35
+ ...next(operator),
36
+ operator: operator,
37
+ listable: true,
38
+ isList: true,
39
+ before: before,
40
+ after: after,
41
+ value: append(before, after)
42
+ }`
43
+ },
44
+ {
45
+ id: "thenAction",
46
+ level: 1,
47
+ before: ['doAction'],
48
+ selector: {
49
+ left: [ { pattern: '(action)' } ],
50
+ passthrough: true
51
+ },
52
+ bridge: "{ ...next(operator), value: append(before, operator.value) }"
53
+ },
54
+
18
55
  {
19
56
  id: 'again',
20
57
  bridge: `{
@@ -36,6 +73,11 @@ const config = {
36
73
  }`,
37
74
  },
38
75
  ],
76
+ words: {
77
+ patterns: [
78
+ { "pattern": ["action", { type: 'digit' }], allow_partial_matches: false, defs: [{id: "action", initial: "{ value: text, instance: true }" }]},
79
+ ],
80
+ },
39
81
  semantics: [
40
82
  {
41
83
  priority: -1,