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,13 @@
1
+ Procedure "ar07"
2
+
3
+ Algorithm:
4
+ Loop forever
5
+ If 3 == 4
6
+ break
7
+ Else
8
+ If not ((3 == 5) or (3 == 6))
9
+ Error:
10
+ Unexpected case value
11
+ 3
12
+
13
+ End of procedure
@@ -0,0 +1,47 @@
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": "42",
27
+ "content": "6"
28
+ },
29
+ "29": {
30
+ "type": "arrow-loop",
31
+ "one": "4",
32
+ "content": ""
33
+ },
34
+ "42": {
35
+ "type": "question",
36
+ "flag1": 1,
37
+ "one": "29",
38
+ "two": "29",
39
+ "content": "7"
40
+ },
41
+ "58": {
42
+ "type": "branch",
43
+ "branchId": 0,
44
+ "one": "29"
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "ar08",
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": "equal",
33
+ "left": "3",
34
+ "right": "5"
35
+ },
36
+ "yes": [],
37
+ "no": [
38
+ {
39
+ "type": "question",
40
+ "id": "9",
41
+ "content": {
42
+ "operator": "equal",
43
+ "left": "3",
44
+ "right": "6"
45
+ },
46
+ "yes": [],
47
+ "no": [
48
+ {
49
+ "id": "9-unexpected",
50
+ "type": "error",
51
+ "content": "3",
52
+ "message": "Unexpected case value"
53
+ }
54
+ ]
55
+ },
56
+ {
57
+ "type": "question",
58
+ "id": "42",
59
+ "content": "7",
60
+ "yes": [],
61
+ "no": []
62
+ }
63
+ ]
64
+ },
65
+ {
66
+ "id": "arrow-stub-29",
67
+ "type": "loopend",
68
+ "start": "29"
69
+ }
70
+ ]
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "id": "2",
76
+ "type": "end"
77
+ }
78
+ ]
79
+ }
80
+ ]
81
+ }
@@ -0,0 +1,16 @@
1
+ Procedure "ar08"
2
+
3
+ Algorithm:
4
+ Loop forever
5
+ If 3 == 4
6
+ break
7
+ Else
8
+ If not (3 == 5)
9
+ If not (3 == 6)
10
+ Error:
11
+ Unexpected case value
12
+ 3
13
+
14
+ If 7
15
+ Pass
16
+ End of procedure
@@ -0,0 +1,52 @@
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": "42",
27
+ "content": "6"
28
+ },
29
+ "29": {
30
+ "type": "arrow-loop",
31
+ "one": "4",
32
+ "content": ""
33
+ },
34
+ "42": {
35
+ "type": "question",
36
+ "flag1": 1,
37
+ "one": "29",
38
+ "two": "58",
39
+ "content": "7"
40
+ },
41
+ "58": {
42
+ "type": "action",
43
+ "one": "29",
44
+ "content": "8"
45
+ },
46
+ "61": {
47
+ "type": "branch",
48
+ "branchId": 0,
49
+ "one": "29"
50
+ }
51
+ }
52
+ }
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "ar09",
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": "equal",
33
+ "left": "3",
34
+ "right": "5"
35
+ },
36
+ "yes": [],
37
+ "no": [
38
+ {
39
+ "type": "question",
40
+ "id": "9",
41
+ "content": {
42
+ "operator": "equal",
43
+ "left": "3",
44
+ "right": "6"
45
+ },
46
+ "yes": [],
47
+ "no": [
48
+ {
49
+ "id": "9-unexpected",
50
+ "type": "error",
51
+ "content": "3",
52
+ "message": "Unexpected case value"
53
+ }
54
+ ]
55
+ },
56
+ {
57
+ "type": "question",
58
+ "id": "42",
59
+ "content": "7",
60
+ "yes": [],
61
+ "no": [
62
+ {
63
+ "id": "58",
64
+ "type": "action",
65
+ "content": "8"
66
+ }
67
+ ]
68
+ }
69
+ ]
70
+ },
71
+ {
72
+ "id": "arrow-stub-29",
73
+ "type": "loopend",
74
+ "start": "29"
75
+ }
76
+ ]
77
+ }
78
+ ]
79
+ },
80
+ {
81
+ "id": "2",
82
+ "type": "end"
83
+ }
84
+ ]
85
+ }
86
+ ]
87
+ }
@@ -0,0 +1,17 @@
1
+ Procedure "ar09"
2
+
3
+ Algorithm:
4
+ Loop forever
5
+ If 3 == 4
6
+ break
7
+ Else
8
+ If not (3 == 5)
9
+ If not (3 == 6)
10
+ Error:
11
+ Unexpected case value
12
+ 3
13
+
14
+ If not (7)
15
+ 8
16
+
17
+ End of procedure
@@ -0,0 +1,52 @@
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": "61",
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
+ "61": {
35
+ "type": "question",
36
+ "flag1": 1,
37
+ "one": "29",
38
+ "two": "71",
39
+ "content": "7"
40
+ },
41
+ "71": {
42
+ "type": "action",
43
+ "one": "29",
44
+ "content": "8"
45
+ },
46
+ "82": {
47
+ "type": "branch",
48
+ "branchId": 0,
49
+ "one": "29"
50
+ }
51
+ }
52
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "name": "ar10",
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": "equal",
33
+ "left": "3",
34
+ "right": "5"
35
+ },
36
+ "yes": [
37
+ {
38
+ "type": "question",
39
+ "id": "61",
40
+ "content": "7",
41
+ "yes": [],
42
+ "no": [
43
+ {
44
+ "id": "71",
45
+ "type": "action",
46
+ "content": "8"
47
+ }
48
+ ]
49
+ }
50
+ ],
51
+ "no": [
52
+ {
53
+ "type": "question",
54
+ "id": "9",
55
+ "content": {
56
+ "operator": "equal",
57
+ "left": "3",
58
+ "right": "6"
59
+ },
60
+ "yes": [],
61
+ "no": [
62
+ {
63
+ "id": "9-unexpected",
64
+ "type": "error",
65
+ "content": "3",
66
+ "message": "Unexpected case value"
67
+ }
68
+ ]
69
+ }
70
+ ]
71
+ },
72
+ {
73
+ "id": "arrow-stub-29",
74
+ "type": "loopend",
75
+ "start": "29"
76
+ }
77
+ ]
78
+ }
79
+ ]
80
+ },
81
+ {
82
+ "id": "2",
83
+ "type": "end"
84
+ }
85
+ ]
86
+ }
87
+ ]
88
+ }
@@ -0,0 +1,18 @@
1
+ Procedure "ar10"
2
+
3
+ Algorithm:
4
+ Loop forever
5
+ If 3 == 4
6
+ break
7
+ Else
8
+ If 3 == 5
9
+ If not (7)
10
+ 8
11
+
12
+ Else
13
+ If not (3 == 6)
14
+ Error:
15
+ Unexpected case value
16
+ 3
17
+
18
+ End of procedure
@@ -0,0 +1,47 @@
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": "60",
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
+ "60": {
35
+ "type": "question",
36
+ "flag1": 1,
37
+ "one": "29",
38
+ "two": "29",
39
+ "content": "7"
40
+ },
41
+ "76": {
42
+ "type": "branch",
43
+ "branchId": 0,
44
+ "one": "29"
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,82 @@
1
+ {
2
+ "name": "ar11",
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": "equal",
33
+ "left": "3",
34
+ "right": "5"
35
+ },
36
+ "yes": [
37
+ {
38
+ "type": "question",
39
+ "id": "60",
40
+ "content": "7",
41
+ "yes": [],
42
+ "no": []
43
+ }
44
+ ],
45
+ "no": [
46
+ {
47
+ "type": "question",
48
+ "id": "9",
49
+ "content": {
50
+ "operator": "equal",
51
+ "left": "3",
52
+ "right": "6"
53
+ },
54
+ "yes": [],
55
+ "no": [
56
+ {
57
+ "id": "9-unexpected",
58
+ "type": "error",
59
+ "content": "3",
60
+ "message": "Unexpected case value"
61
+ }
62
+ ]
63
+ }
64
+ ]
65
+ },
66
+ {
67
+ "id": "arrow-stub-29",
68
+ "type": "loopend",
69
+ "start": "29"
70
+ }
71
+ ]
72
+ }
73
+ ]
74
+ },
75
+ {
76
+ "id": "2",
77
+ "type": "end"
78
+ }
79
+ ]
80
+ }
81
+ ]
82
+ }
@@ -0,0 +1,17 @@
1
+ Procedure "ar11"
2
+
3
+ Algorithm:
4
+ Loop forever
5
+ If 3 == 4
6
+ break
7
+ Else
8
+ If 3 == 5
9
+ If 7
10
+ Pass
11
+ Else
12
+ If not (3 == 6)
13
+ Error:
14
+ Unexpected case value
15
+ 3
16
+
17
+ 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": "2",
11
+ "two": "57",
12
+ "content": "3"
13
+ },
14
+ "57": {
15
+ "type": "question",
16
+ "flag1": 1,
17
+ "one": "2",
18
+ "two": "68",
19
+ "content": "5"
20
+ },
21
+ "68": {
22
+ "type": "action",
23
+ "one": "74",
24
+ "content": "4"
25
+ },
26
+ "74": {
27
+ "type": "arrow-loop",
28
+ "one": "4",
29
+ "content": ""
30
+ },
31
+ "82": {
32
+ "type": "branch",
33
+ "branchId": 0,
34
+ "one": "74"
35
+ }
36
+ }
37
+ }