drakongen 1.0.0

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.
Files changed (157) hide show
  1. package/.vscode/launch.json +18 -0
  2. package/LICENSE +24 -0
  3. package/README.md +80 -0
  4. package/browser/drakongen.js +1303 -0
  5. package/browsertest.html +84 -0
  6. package/buildbrowser +4 -0
  7. package/buildexamples.js +61 -0
  8. package/examples/00.Empty.drakon +1 -0
  9. package/examples/00.Empty.txt +5 -0
  10. package/examples/01. /320/221/320/265/320/273/321/213/320/270/314/206.drakon" +13 -0
  11. package/examples/01. /320/221/320/265/320/273/321/213/320/271.json" +16 -0
  12. package/examples/01. /320/221/320/265/320/273/321/213/320/271.txt" +4 -0
  13. package/examples/02. /320/247/320/265/314/210/321/200/320/275/321/213/320/270/314/206.drakon" +28 -0
  14. package/examples/02. /320/247/321/221/321/200/320/275/321/213/320/271.json" +31 -0
  15. package/examples/02. /320/247/321/221/321/200/320/275/321/213/320/271.txt" +10 -0
  16. package/examples/03. /320/241/320/265/321/200/321/213/320/270/314/206.drakon" +20 -0
  17. package/examples/03. /320/241/320/265/321/200/321/213/320/271.json" +23 -0
  18. package/examples/03. /320/241/320/265/321/200/321/213/320/271.txt" +6 -0
  19. package/examples/04. /320/221/321/203/321/200/321/213/320/270/314/206.drakon" +25 -0
  20. package/examples/04. /320/221/321/203/321/200/321/213/320/271.json" +29 -0
  21. package/examples/04. /320/221/321/203/321/200/321/213/320/271.txt" +7 -0
  22. package/examples/05. /320/226/320/265/314/210/320/273/321/202/321/213/320/270/314/206.drakon" +25 -0
  23. package/examples/05. /320/226/321/221/320/273/321/202/321/213/320/271.json" +29 -0
  24. package/examples/05. /320/226/321/221/320/273/321/202/321/213/320/271.txt" +7 -0
  25. package/examples/06. /320/221/320/260/320/263/321/200/320/276/320/262/321/213/320/270/314/206.drakon" +30 -0
  26. package/examples/06. /320/221/320/260/320/263/321/200/320/276/320/262/321/213/320/271.json" +35 -0
  27. package/examples/06. /320/221/320/260/320/263/321/200/320/276/320/262/321/213/320/271.txt" +10 -0
  28. package/examples/07. /320/244/320/270/320/276/320/273/320/265/321/202/320/276/320/262/321/213/320/270/314/206.drakon" +42 -0
  29. package/examples/07. /320/244/320/270/320/276/320/273/320/265/321/202/320/276/320/262/321/213/320/271.json" +49 -0
  30. package/examples/07. /320/244/320/270/320/276/320/273/320/265/321/202/320/276/320/262/321/213/320/271.txt" +14 -0
  31. package/examples/08. /320/221/320/270/321/200/321/216/320/267/320/276/320/262/321/213/320/270/314/206.drakon" +27 -0
  32. package/examples/08. /320/221/320/270/321/200/321/216/320/267/320/276/320/262/321/213/320/271.json" +27 -0
  33. package/examples/08. /320/221/320/270/321/200/321/216/320/267/320/276/320/262/321/213/320/271.txt" +6 -0
  34. package/examples/09. /320/236/321/200/320/260/320/275/320/266/320/265/320/262/321/213/320/270/314/206.drakon" +37 -0
  35. package/examples/09. /320/236/321/200/320/260/320/275/320/266/320/265/320/262/321/213/320/271.json" +39 -0
  36. package/examples/09. /320/236/321/200/320/260/320/275/320/266/320/265/320/262/321/213/320/271.txt" +10 -0
  37. package/examples/10. /320/240/320/276/320/267/320/276/320/262/321/213/320/270/314/206.drakon" +42 -0
  38. package/examples/10. /320/240/320/276/320/267/320/276/320/262/321/213/320/271.json" +54 -0
  39. package/examples/10. /320/240/320/276/320/267/320/276/320/262/321/213/320/271.txt" +16 -0
  40. package/examples/11. /320/227/320/260/321/211/320/270/321/202/320/275/321/213/320/270/314/206.drakon" +37 -0
  41. package/examples/11. /320/227/320/260/321/211/320/270/321/202/320/275/321/213/320/271.json" +39 -0
  42. package/examples/11. /320/227/320/260/321/211/320/270/321/202/320/275/321/213/320/271.txt" +10 -0
  43. package/examples/12. /320/221/320/276/320/273/320/276/321/202/320/275/321/213/320/270/314/206.drakon" +44 -0
  44. package/examples/12. /320/221/320/276/320/273/320/276/321/202/320/275/321/213/320/271.json" +43 -0
  45. package/examples/12. /320/221/320/276/320/273/320/276/321/202/320/275/321/213/320/271.txt" +10 -0
  46. package/examples/13. /320/241/320/260/320/273/320/260/321/202/320/276/320/262/321/213/320/270/314/206.drakon" +54 -0
  47. package/examples/13. /320/241/320/260/320/273/320/260/321/202/320/276/320/262/321/213/320/271.json" +63 -0
  48. package/examples/13. /320/241/320/260/320/273/320/260/321/202/320/276/320/262/321/213/320/271.txt" +18 -0
  49. package/examples/14. /320/227/320/276/320/273/320/276/321/202/320/276/320/270/314/206.drakon" +64 -0
  50. package/examples/14. /320/227/320/276/320/273/320/276/321/202/320/276/320/271.json" +73 -0
  51. package/examples/14. /320/227/320/276/320/273/320/276/321/202/320/276/320/271.txt" +22 -0
  52. package/examples/15. /320/241/320/270/320/275/320/270/320/270/314/206.drakon" +54 -0
  53. package/examples/15. /320/241/320/270/320/275/320/270/320/271.json" +87 -0
  54. package/examples/15. /320/241/320/270/320/275/320/270/320/271.txt" +26 -0
  55. package/examples/16. /320/223/320/276/320/273/321/203/320/261/320/276/320/270/314/206.drakon" +37 -0
  56. package/examples/16. /320/223/320/276/320/273/321/203/320/261/320/276/320/271.json" +48 -0
  57. package/examples/16. /320/223/320/276/320/273/321/203/320/261/320/276/320/271.txt" +13 -0
  58. package/examples/17. /320/241/320/260/320/273/320/260/321/202/320/276/320/262/321/213/320/270/314/206.drakon" +39 -0
  59. package/examples/17. /320/241/320/260/320/273/320/260/321/202/320/276/320/262/321/213/320/271.json" +41 -0
  60. package/examples/17. /320/241/320/260/320/273/320/260/321/202/320/276/320/262/321/213/320/271.txt" +10 -0
  61. package/examples/18. /320/241/321/202/320/260/320/273/321/214/320/275/320/276/320/270/314/206.drakon" +49 -0
  62. package/examples/18. /320/241/321/202/320/260/320/273/321/214/320/275/320/276/320/271.json" +67 -0
  63. package/examples/18. /320/241/321/202/320/260/320/273/321/214/320/275/320/276/320/271.txt" +19 -0
  64. package/examples/19. Lilla.drakon +39 -0
  65. package/examples/19. Lilla.json +45 -0
  66. package/examples/19. Lilla.txt +11 -0
  67. package/examples/Adaptive design.drakon +116 -0
  68. package/examples/Adaptive design.json +153 -0
  69. package/examples/Adaptive design.txt +47 -0
  70. package/examples/And test.drakon +46 -0
  71. package/examples/And test.json +46 -0
  72. package/examples/And test.txt +10 -0
  73. package/examples/Arrow - double exit.drakon +41 -0
  74. package/examples/Arrow - double exit.json +62 -0
  75. package/examples/Arrow - double exit.txt +14 -0
  76. package/examples/Complex arrow.drakon +93 -0
  77. package/examples/Complex arrow.json +162 -0
  78. package/examples/Complex arrow.txt +43 -0
  79. package/examples/DoubleArrow.drakon +53 -0
  80. package/examples/DoubleArrow.json +86 -0
  81. package/examples/DoubleArrow.txt +18 -0
  82. package/examples/Find pointing nodes.drakon +104 -0
  83. package/examples/Find pointing nodes.json +137 -0
  84. package/examples/Find pointing nodes.txt +29 -0
  85. package/examples/How to tune PID on a quadcopter.drakon +488 -0
  86. package/examples/How to tune PID on a quadcopter.json +734 -0
  87. package/examples/How to tune PID on a quadcopter.txt +169 -0
  88. package/examples/Or test.drakon +47 -0
  89. package/examples/Or test.json +46 -0
  90. package/examples/Or test.txt +10 -0
  91. package/examples/Silhouette test 1.drakon +47 -0
  92. package/examples/Silhouette test 1.json +82 -0
  93. package/examples/Silhouette test 1.txt +24 -0
  94. package/examples/Work out action-check.drakon +30 -0
  95. package/examples/Work out action-check.json +45 -0
  96. package/examples/Work out action-check.txt +9 -0
  97. package/examples/Workout foreach.drakon +63 -0
  98. package/examples/Workout foreach.json +62 -0
  99. package/examples/Workout foreach.txt +14 -0
  100. package/examples/ar01.drakon +25 -0
  101. package/examples/ar01.json +40 -0
  102. package/examples/ar01.txt +7 -0
  103. package/examples/ar02.drakon +30 -0
  104. package/examples/ar02.json +45 -0
  105. package/examples/ar02.txt +10 -0
  106. package/examples/ar03.drakon +32 -0
  107. package/examples/ar03.json +44 -0
  108. package/examples/ar03.txt +7 -0
  109. package/examples/ar04.drakon +37 -0
  110. package/examples/ar04.json +49 -0
  111. package/examples/ar04.txt +10 -0
  112. package/examples/ar05.drakon +37 -0
  113. package/examples/ar05.json +59 -0
  114. package/examples/ar05.txt +11 -0
  115. package/examples/ar06.drakon +40 -0
  116. package/examples/ar06.json +70 -0
  117. package/examples/ar06.txt +13 -0
  118. package/examples/ar07.drakon +40 -0
  119. package/examples/ar07.json +70 -0
  120. package/examples/ar07.txt +13 -0
  121. package/examples/ar08.drakon +47 -0
  122. package/examples/ar08.json +81 -0
  123. package/examples/ar08.txt +16 -0
  124. package/examples/ar09.drakon +52 -0
  125. package/examples/ar09.json +87 -0
  126. package/examples/ar09.txt +17 -0
  127. package/examples/ar10.drakon +52 -0
  128. package/examples/ar10.json +88 -0
  129. package/examples/ar10.txt +18 -0
  130. package/examples/ar11.drakon +47 -0
  131. package/examples/ar11.json +82 -0
  132. package/examples/ar11.txt +17 -0
  133. package/examples/ar12.drakon +37 -0
  134. package/examples/ar12.json +49 -0
  135. package/examples/ar12.txt +10 -0
  136. package/examples/getToken.drakon +76 -0
  137. package/examples/getToken.json +88 -0
  138. package/examples/getToken.txt +41 -0
  139. package/examples/tmp.drakon +49 -0
  140. package/examples/tmp.json +82 -0
  141. package/examples/tmp.txt +37 -0
  142. package/package.json +21 -0
  143. package/prompts/drakonToPrompt.txt +139 -0
  144. package/prompts/index.txt +17 -0
  145. package/prompts/printPseudo.txt +116 -0
  146. package/src/browserTools.js +39 -0
  147. package/src/drakonToPromptStruct.js +44 -0
  148. package/src/drakonToStruct.js +416 -0
  149. package/src/drakongen.js +16 -0
  150. package/src/index.js +17 -0
  151. package/src/main.js +157 -0
  152. package/src/nodeTools.js +38 -0
  153. package/src/printPseudo.js +167 -0
  154. package/src/structFlow.js +382 -0
  155. package/src/technicalTree.js +84 -0
  156. package/src/tools.js +36 -0
  157. package/src/translate.js +108 -0
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "ar01",
3
+ "params": "",
4
+ "branches": [
5
+ {
6
+ "branchId": 0,
7
+ "start": "17",
8
+ "body": [
9
+ {
10
+ "id": "17",
11
+ "type": "loop",
12
+ "content": "",
13
+ "body": [
14
+ {
15
+ "type": "question",
16
+ "id": "4",
17
+ "content": "3",
18
+ "yes": [
19
+ {
20
+ "type": "break"
21
+ }
22
+ ],
23
+ "no": [
24
+ {
25
+ "id": "arrow-stub-17",
26
+ "type": "loopend",
27
+ "start": "17"
28
+ }
29
+ ]
30
+ }
31
+ ]
32
+ },
33
+ {
34
+ "id": "2",
35
+ "type": "end"
36
+ }
37
+ ]
38
+ }
39
+ ]
40
+ }
@@ -0,0 +1,7 @@
1
+ Procedure "ar01"
2
+
3
+ Algorithm:
4
+ Loop forever
5
+ If 3
6
+ break
7
+ End of procedure
@@ -0,0 +1,30 @@
1
+ {
2
+ "type": "drakon",
3
+ "items": {
4
+ "2": {
5
+ "type": "end"
6
+ },
7
+ "4": {
8
+ "type": "question",
9
+ "flag1": 1,
10
+ "one": "2",
11
+ "two": "14",
12
+ "content": "3"
13
+ },
14
+ "14": {
15
+ "type": "action",
16
+ "one": "20",
17
+ "content": "4"
18
+ },
19
+ "20": {
20
+ "type": "arrow-loop",
21
+ "one": "4",
22
+ "content": ""
23
+ },
24
+ "28": {
25
+ "type": "branch",
26
+ "branchId": 0,
27
+ "one": "20"
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "ar02",
3
+ "params": "",
4
+ "branches": [
5
+ {
6
+ "branchId": 0,
7
+ "start": "20",
8
+ "body": [
9
+ {
10
+ "id": "20",
11
+ "type": "loop",
12
+ "content": "",
13
+ "body": [
14
+ {
15
+ "type": "question",
16
+ "id": "4",
17
+ "content": "3",
18
+ "yes": [
19
+ {
20
+ "type": "break"
21
+ }
22
+ ],
23
+ "no": [
24
+ {
25
+ "id": "14",
26
+ "type": "action",
27
+ "content": "4"
28
+ },
29
+ {
30
+ "id": "arrow-stub-20",
31
+ "type": "loopend",
32
+ "start": "20"
33
+ }
34
+ ]
35
+ }
36
+ ]
37
+ },
38
+ {
39
+ "id": "2",
40
+ "type": "end"
41
+ }
42
+ ]
43
+ }
44
+ ]
45
+ }
@@ -0,0 +1,10 @@
1
+ Procedure "ar02"
2
+
3
+ Algorithm:
4
+ Loop forever
5
+ If 3
6
+ break
7
+ Else
8
+ 4
9
+
10
+ End of procedure
@@ -0,0 +1,32 @@
1
+ {
2
+ "type": "drakon",
3
+ "items": {
4
+ "2": {
5
+ "type": "end"
6
+ },
7
+ "4": {
8
+ "type": "question",
9
+ "flag1": 1,
10
+ "one": "28",
11
+ "two": "20",
12
+ "content": "3"
13
+ },
14
+ "20": {
15
+ "type": "arrow-loop",
16
+ "one": "4",
17
+ "content": ""
18
+ },
19
+ "28": {
20
+ "type": "question",
21
+ "flag1": 1,
22
+ "one": "2",
23
+ "two": "20",
24
+ "content": "5"
25
+ },
26
+ "48": {
27
+ "type": "branch",
28
+ "branchId": 0,
29
+ "one": "20"
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "ar03",
3
+ "params": "",
4
+ "branches": [
5
+ {
6
+ "branchId": 0,
7
+ "start": "20",
8
+ "body": [
9
+ {
10
+ "id": "20",
11
+ "type": "loop",
12
+ "content": "",
13
+ "body": [
14
+ {
15
+ "type": "question",
16
+ "id": "4",
17
+ "content": {
18
+ "operator": "and",
19
+ "left": "3",
20
+ "right": "5"
21
+ },
22
+ "yes": [
23
+ {
24
+ "type": "break"
25
+ }
26
+ ],
27
+ "no": [
28
+ {
29
+ "id": "arrow-stub-20",
30
+ "type": "loopend",
31
+ "start": "20"
32
+ }
33
+ ]
34
+ }
35
+ ]
36
+ },
37
+ {
38
+ "id": "2",
39
+ "type": "end"
40
+ }
41
+ ]
42
+ }
43
+ ]
44
+ }
@@ -0,0 +1,7 @@
1
+ Procedure "ar03"
2
+
3
+ Algorithm:
4
+ Loop forever
5
+ If 3 and 5
6
+ break
7
+ End of procedure
@@ -0,0 +1,37 @@
1
+ {
2
+ "type": "drakon",
3
+ "items": {
4
+ "2": {
5
+ "type": "end"
6
+ },
7
+ "4": {
8
+ "type": "question",
9
+ "flag1": 1,
10
+ "one": "28",
11
+ "two": "14",
12
+ "content": "3"
13
+ },
14
+ "14": {
15
+ "type": "action",
16
+ "one": "20",
17
+ "content": "4"
18
+ },
19
+ "20": {
20
+ "type": "arrow-loop",
21
+ "one": "4",
22
+ "content": ""
23
+ },
24
+ "28": {
25
+ "type": "question",
26
+ "flag1": 1,
27
+ "one": "2",
28
+ "two": "14",
29
+ "content": "5"
30
+ },
31
+ "47": {
32
+ "type": "branch",
33
+ "branchId": 0,
34
+ "one": "20"
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "ar04",
3
+ "params": "",
4
+ "branches": [
5
+ {
6
+ "branchId": 0,
7
+ "start": "20",
8
+ "body": [
9
+ {
10
+ "id": "20",
11
+ "type": "loop",
12
+ "content": "",
13
+ "body": [
14
+ {
15
+ "type": "question",
16
+ "id": "4",
17
+ "content": {
18
+ "operator": "and",
19
+ "left": "3",
20
+ "right": "5"
21
+ },
22
+ "yes": [
23
+ {
24
+ "type": "break"
25
+ }
26
+ ],
27
+ "no": [
28
+ {
29
+ "id": "14",
30
+ "type": "action",
31
+ "content": "4"
32
+ },
33
+ {
34
+ "id": "arrow-stub-20",
35
+ "type": "loopend",
36
+ "start": "20"
37
+ }
38
+ ]
39
+ }
40
+ ]
41
+ },
42
+ {
43
+ "id": "2",
44
+ "type": "end"
45
+ }
46
+ ]
47
+ }
48
+ ]
49
+ }
@@ -0,0 +1,10 @@
1
+ Procedure "ar04"
2
+
3
+ Algorithm:
4
+ Loop forever
5
+ If 3 and 5
6
+ break
7
+ Else
8
+ 4
9
+
10
+ End of procedure
@@ -0,0 +1,37 @@
1
+ {
2
+ "type": "drakon",
3
+ "items": {
4
+ "2": {
5
+ "type": "end"
6
+ },
7
+ "4": {
8
+ "type": "question",
9
+ "flag1": 1,
10
+ "one": "28",
11
+ "two": "48",
12
+ "content": "3"
13
+ },
14
+ "20": {
15
+ "type": "arrow-loop",
16
+ "one": "4",
17
+ "content": ""
18
+ },
19
+ "28": {
20
+ "type": "question",
21
+ "flag1": 1,
22
+ "one": "2",
23
+ "two": "20",
24
+ "content": "5"
25
+ },
26
+ "48": {
27
+ "type": "action",
28
+ "one": "20",
29
+ "content": "4"
30
+ },
31
+ "51": {
32
+ "type": "branch",
33
+ "branchId": 0,
34
+ "one": "20"
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "ar05",
3
+ "params": "",
4
+ "branches": [
5
+ {
6
+ "branchId": 0,
7
+ "start": "20",
8
+ "body": [
9
+ {
10
+ "id": "20",
11
+ "type": "loop",
12
+ "content": "",
13
+ "body": [
14
+ {
15
+ "type": "question",
16
+ "id": "4",
17
+ "content": "3",
18
+ "yes": [
19
+ {
20
+ "type": "question",
21
+ "id": "28",
22
+ "content": "5",
23
+ "yes": [
24
+ {
25
+ "type": "break"
26
+ }
27
+ ],
28
+ "no": [
29
+ {
30
+ "id": "arrow-stub-20",
31
+ "type": "loopend",
32
+ "start": "20"
33
+ }
34
+ ]
35
+ }
36
+ ],
37
+ "no": [
38
+ {
39
+ "id": "48",
40
+ "type": "action",
41
+ "content": "4"
42
+ },
43
+ {
44
+ "id": "arrow-stub-20",
45
+ "type": "loopend",
46
+ "start": "20"
47
+ }
48
+ ]
49
+ }
50
+ ]
51
+ },
52
+ {
53
+ "id": "2",
54
+ "type": "end"
55
+ }
56
+ ]
57
+ }
58
+ ]
59
+ }
@@ -0,0 +1,11 @@
1
+ Procedure "ar05"
2
+
3
+ Algorithm:
4
+ Loop forever
5
+ If 3
6
+ If 5
7
+ break
8
+ Else
9
+ 4
10
+
11
+ End of procedure
@@ -0,0 +1,40 @@
1
+ {
2
+ "type": "drakon",
3
+ "items": {
4
+ "2": {
5
+ "type": "end"
6
+ },
7
+ "4": {
8
+ "type": "select",
9
+ "one": "5",
10
+ "content": "3"
11
+ },
12
+ "5": {
13
+ "type": "case",
14
+ "one": "2",
15
+ "content": "4",
16
+ "two": "8"
17
+ },
18
+ "8": {
19
+ "type": "case",
20
+ "one": "2",
21
+ "content": "5",
22
+ "two": "9"
23
+ },
24
+ "9": {
25
+ "type": "case",
26
+ "one": "29",
27
+ "content": "6"
28
+ },
29
+ "29": {
30
+ "type": "arrow-loop",
31
+ "one": "4",
32
+ "content": ""
33
+ },
34
+ "37": {
35
+ "type": "branch",
36
+ "branchId": 0,
37
+ "one": "29"
38
+ }
39
+ }
40
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "name": "ar06",
3
+ "params": "",
4
+ "branches": [
5
+ {
6
+ "branchId": 0,
7
+ "start": "29",
8
+ "body": [
9
+ {
10
+ "id": "29",
11
+ "type": "loop",
12
+ "content": "",
13
+ "body": [
14
+ {
15
+ "type": "question",
16
+ "id": "5",
17
+ "content": {
18
+ "operator": "or",
19
+ "left": {
20
+ "operator": "equal",
21
+ "left": "3",
22
+ "right": "4"
23
+ },
24
+ "right": {
25
+ "operator": "equal",
26
+ "left": "3",
27
+ "right": "5"
28
+ }
29
+ },
30
+ "yes": [
31
+ {
32
+ "type": "break"
33
+ }
34
+ ],
35
+ "no": [
36
+ {
37
+ "type": "question",
38
+ "id": "9",
39
+ "content": {
40
+ "operator": "equal",
41
+ "left": "3",
42
+ "right": "6"
43
+ },
44
+ "yes": [],
45
+ "no": [
46
+ {
47
+ "id": "9-unexpected",
48
+ "type": "error",
49
+ "content": "3",
50
+ "message": "Unexpected case value"
51
+ }
52
+ ]
53
+ },
54
+ {
55
+ "id": "arrow-stub-29",
56
+ "type": "loopend",
57
+ "start": "29"
58
+ }
59
+ ]
60
+ }
61
+ ]
62
+ },
63
+ {
64
+ "id": "2",
65
+ "type": "end"
66
+ }
67
+ ]
68
+ }
69
+ ]
70
+ }
@@ -0,0 +1,13 @@
1
+ Procedure "ar06"
2
+
3
+ Algorithm:
4
+ Loop forever
5
+ If (3 == 4) or (3 == 5)
6
+ break
7
+ Else
8
+ If not (3 == 6)
9
+ Error:
10
+ Unexpected case value
11
+ 3
12
+
13
+ End of procedure
@@ -0,0 +1,40 @@
1
+ {
2
+ "type": "drakon",
3
+ "items": {
4
+ "2": {
5
+ "type": "end"
6
+ },
7
+ "4": {
8
+ "type": "select",
9
+ "one": "5",
10
+ "content": "3"
11
+ },
12
+ "5": {
13
+ "type": "case",
14
+ "one": "2",
15
+ "content": "4",
16
+ "two": "8"
17
+ },
18
+ "8": {
19
+ "type": "case",
20
+ "one": "29",
21
+ "content": "5",
22
+ "two": "9"
23
+ },
24
+ "9": {
25
+ "type": "case",
26
+ "one": "29",
27
+ "content": "6"
28
+ },
29
+ "29": {
30
+ "type": "arrow-loop",
31
+ "one": "4",
32
+ "content": ""
33
+ },
34
+ "42": {
35
+ "type": "branch",
36
+ "branchId": 0,
37
+ "one": "29"
38
+ }
39
+ }
40
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "name": "ar07",
3
+ "params": "",
4
+ "branches": [
5
+ {
6
+ "branchId": 0,
7
+ "start": "29",
8
+ "body": [
9
+ {
10
+ "id": "29",
11
+ "type": "loop",
12
+ "content": "",
13
+ "body": [
14
+ {
15
+ "type": "question",
16
+ "id": "5",
17
+ "content": {
18
+ "operator": "equal",
19
+ "left": "3",
20
+ "right": "4"
21
+ },
22
+ "yes": [
23
+ {
24
+ "type": "break"
25
+ }
26
+ ],
27
+ "no": [
28
+ {
29
+ "type": "question",
30
+ "id": "8",
31
+ "content": {
32
+ "operator": "or",
33
+ "left": {
34
+ "operator": "equal",
35
+ "left": "3",
36
+ "right": "5"
37
+ },
38
+ "right": {
39
+ "operator": "equal",
40
+ "left": "3",
41
+ "right": "6"
42
+ }
43
+ },
44
+ "yes": [],
45
+ "no": [
46
+ {
47
+ "id": "9-unexpected",
48
+ "type": "error",
49
+ "content": "3",
50
+ "message": "Unexpected case value"
51
+ }
52
+ ]
53
+ },
54
+ {
55
+ "id": "arrow-stub-29",
56
+ "type": "loopend",
57
+ "start": "29"
58
+ }
59
+ ]
60
+ }
61
+ ]
62
+ },
63
+ {
64
+ "id": "2",
65
+ "type": "end"
66
+ }
67
+ ]
68
+ }
69
+ ]
70
+ }