| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574 |
- {
- "send-receive": {
- "input": "SYSTEM: task_a = send*;\nSYSTEM: task_b = receive*;\nINTERACTION: task_a:send -> task_b:receive;",
- "expected": {
- "systems": {
- "task_a": {
- "type": "System",
- "id": "task_a",
- "body": [{
- "type": "Sequence",
- "body": [{
- "type": "Behavior",
- "id": "send",
- "scope": {
- "min": 0,
- "max": null
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "refs": [
- "send"
- ],
- "properties": {},
- "scope": {
- "min": 1,
- "max": 1
- }
- },
- "task_b": {
- "type": "System",
- "id": "task_b",
- "body": [{
- "type": "Sequence",
- "body": [{
- "type": "Behavior",
- "id": "receive",
- "scope": {
- "min": 0,
- "max": null
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "refs": [
- "receive"
- ],
- "properties": {},
- "scope": {
- "min": 1,
- "max": 1
- }
- }
- },
- "behaviors": {
- "send": {
- "type": "Behavior",
- "id": "send",
- "body": [],
- "refs": [],
- "properties": {}
- },
- "receive": {
- "type": "Behavior",
- "id": "receive",
- "body": [],
- "refs": [],
- "properties": {}
- }
- },
- "interactions": [{
- "type": "Then",
- "body": [{
- "type": "Selector",
- "system": "task_a",
- "pattern": [{
- "type": "Sequence",
- "body": [{
- "type": "Behavior",
- "id": "send",
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "pre": null,
- "post": null
- }, {
- "type": "Selector",
- "system": "task_b",
- "pattern": [{
- "type": "Sequence",
- "body": [{
- "type": "Behavior",
- "id": "receive",
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "pre": null,
- "post": null
- }]
- }],
- "triggers": [],
- "init": [],
- "ast": [{
- "type": "System",
- "id": "task_a",
- "body": [{
- "type": "Sequence",
- "body": [{
- "type": "Behavior",
- "id": "send",
- "scope": {
- "min": 0,
- "max": null
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "refs": [
- "send"
- ],
- "properties": {},
- "scope": {
- "min": 1,
- "max": 1
- }
- }, {
- "type": "System",
- "id": "task_b",
- "body": [{
- "type": "Sequence",
- "body": [{
- "type": "Behavior",
- "id": "receive",
- "scope": {
- "min": 0,
- "max": null
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "refs": [
- "receive"
- ],
- "properties": {},
- "scope": {
- "min": 1,
- "max": 1
- }
- }, {
- "type": "Then",
- "body": [{
- "type": "Selector",
- "system": "task_a",
- "pattern": [{
- "type": "Sequence",
- "body": [{
- "type": "Behavior",
- "id": "send",
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "pre": null,
- "post": null
- }, {
- "type": "Selector",
- "system": "task_b",
- "pattern": [{
- "type": "Sequence",
- "body": [{
- "type": "Behavior",
- "id": "receive",
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "pre": null,
- "post": null
- }]
- }],
- "errors": []
- }
- },
- "kruskal": {
- "input": "SYSTEM: kruskal = make_set* find_edges* return;\nBEHAVIOR: find_edges = found_edge | found_no_edge;\nBEHAVIOR: found_edge = union_vertices add_edge_to_forest;\nWHEN: kruskal:make_set { count++ };\nWHEN: kruskal:find_edges { count--; if (count == 0) return false; };",
- "expected": {
- "systems": {
- "kruskal": {
- "type": "System",
- "id": "kruskal",
- "body": [{
- "type": "Sequence",
- "body": [{
- "type": "Behavior",
- "id": "make_set",
- "scope": {
- "min": 0,
- "max": null
- }
- }, {
- "type": "Behavior",
- "id": "find_edges",
- "scope": {
- "min": 0,
- "max": null
- }
- }, {
- "type": "Behavior",
- "id": "return",
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "refs": [
- "make_set",
- "find_edges",
- "return"
- ],
- "properties": {},
- "scope": {
- "min": 1,
- "max": 1
- }
- }
- },
- "behaviors": {
- "find_edges": {
- "type": "Behavior",
- "id": "find_edges",
- "body": [{
- "type": "Alternation",
- "body": [{
- "type": "Behavior",
- "id": "found_edge",
- "scope": {
- "min": 1,
- "max": 1
- }
- }, {
- "type": "Behavior",
- "id": "found_no_edge",
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "refs": [
- "found_edge",
- "found_no_edge"
- ],
- "properties": {}
- },
- "found_edge": {
- "type": "Behavior",
- "id": "found_edge",
- "body": [{
- "type": "Sequence",
- "body": [{
- "type": "Behavior",
- "id": "union_vertices",
- "scope": {
- "min": 1,
- "max": 1
- }
- }, {
- "type": "Behavior",
- "id": "add_edge_to_forest",
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "refs": [
- "union_vertices",
- "add_edge_to_forest"
- ],
- "properties": {}
- },
- "make_set": {
- "type": "Behavior",
- "id": "make_set",
- "body": [],
- "refs": [],
- "properties": {}
- },
- "return": {
- "type": "Behavior",
- "id": "return",
- "body": [],
- "refs": [],
- "properties": {}
- },
- "found_no_edge": {
- "type": "Behavior",
- "id": "found_no_edge",
- "body": [],
- "refs": [],
- "properties": {}
- },
- "union_vertices": {
- "type": "Behavior",
- "id": "union_vertices",
- "body": [],
- "refs": [],
- "properties": {}
- },
- "add_edge_to_forest": {
- "type": "Behavior",
- "id": "add_edge_to_forest",
- "body": [],
- "refs": [],
- "properties": {}
- }
- },
- "interactions": [],
- "triggers": [{
- "type": "Trigger",
- "on": {
- "type": "Selector",
- "system": "kruskal",
- "pattern": [{
- "type": "Sequence",
- "body": [{
- "type": "Behavior",
- "id": "make_set",
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "pre": null,
- "post": null
- },
- "do": "count++"
- }, {
- "type": "Trigger",
- "on": {
- "type": "Selector",
- "system": "kruskal",
- "pattern": [{
- "type": "Sequence",
- "body": [{
- "type": "Behavior",
- "id": "find_edges",
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "pre": null,
- "post": null
- },
- "do": "count--; if (count == 0) return false;"
- }],
- "init": [],
- "ast": [{
- "type": "System",
- "id": "kruskal",
- "body": [{
- "type": "Sequence",
- "body": [{
- "type": "Behavior",
- "id": "make_set",
- "scope": {
- "min": 0,
- "max": null
- }
- }, {
- "type": "Behavior",
- "id": "find_edges",
- "scope": {
- "min": 0,
- "max": null
- }
- }, {
- "type": "Behavior",
- "id": "return",
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "refs": [
- "make_set",
- "find_edges",
- "return"
- ],
- "properties": {},
- "scope": {
- "min": 1,
- "max": 1
- }
- }, {
- "type": "Behavior",
- "id": "find_edges",
- "body": [{
- "type": "Alternation",
- "body": [{
- "type": "Behavior",
- "id": "found_edge",
- "scope": {
- "min": 1,
- "max": 1
- }
- }, {
- "type": "Behavior",
- "id": "found_no_edge",
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "refs": [
- "found_edge",
- "found_no_edge"
- ],
- "properties": {}
- }, {
- "type": "Behavior",
- "id": "found_edge",
- "body": [{
- "type": "Sequence",
- "body": [{
- "type": "Behavior",
- "id": "union_vertices",
- "scope": {
- "min": 1,
- "max": 1
- }
- }, {
- "type": "Behavior",
- "id": "add_edge_to_forest",
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "refs": [
- "union_vertices",
- "add_edge_to_forest"
- ],
- "properties": {}
- }, {
- "type": "Trigger",
- "on": {
- "type": "Selector",
- "system": "kruskal",
- "pattern": [{
- "type": "Sequence",
- "body": [{
- "type": "Behavior",
- "id": "make_set",
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "pre": null,
- "post": null
- },
- "do": "count++"
- }, {
- "type": "Trigger",
- "on": {
- "type": "Selector",
- "system": "kruskal",
- "pattern": [{
- "type": "Sequence",
- "body": [{
- "type": "Behavior",
- "id": "find_edges",
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "scope": {
- "min": 1,
- "max": 1
- }
- }],
- "pre": null,
- "post": null
- },
- "do": "count--; if (count == 0) return false;"
- }],
- "errors": []
- }
- }
- }
|