claude-maestro 0.1.16

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 (125) hide show
  1. package/README.md +130 -0
  2. package/bin/maestro.mjs +45 -0
  3. package/out/main/index.js +5293 -0
  4. package/out/preload/index.js +130 -0
  5. package/out/renderer/assets/apl-fqmucPXA.js +140 -0
  6. package/out/renderer/assets/asciiarmor-DucZyvP0.js +56 -0
  7. package/out/renderer/assets/asn1-BnOEsgAm.js +144 -0
  8. package/out/renderer/assets/asterisk-QAlztEwS.js +345 -0
  9. package/out/renderer/assets/brainfuck-DZVCuF_t.js +53 -0
  10. package/out/renderer/assets/clike-xqXYL6ge.js +805 -0
  11. package/out/renderer/assets/clojure-BhXMqnxz.js +849 -0
  12. package/out/renderer/assets/cmake-BGaNd9E7.js +71 -0
  13. package/out/renderer/assets/cobol-4yqQntpt.js +120 -0
  14. package/out/renderer/assets/coffeescript-D2dXvhEc.js +308 -0
  15. package/out/renderer/assets/commonlisp-CF_VNHQR.js +130 -0
  16. package/out/renderer/assets/crystal-DyuLTqLs.js +398 -0
  17. package/out/renderer/assets/css-c-jst79C.js +1783 -0
  18. package/out/renderer/assets/cypher-Dlu_3r4V.js +121 -0
  19. package/out/renderer/assets/d-UURgV0Ux.js +179 -0
  20. package/out/renderer/assets/diff-B_Bi2Crb.js +25 -0
  21. package/out/renderer/assets/dockerfile-Bvk733Ga.js +201 -0
  22. package/out/renderer/assets/dtd-Dy74G54E.js +114 -0
  23. package/out/renderer/assets/dylan-TSb-Nfix.js +314 -0
  24. package/out/renderer/assets/ebnf-4fKAGW3a.js +140 -0
  25. package/out/renderer/assets/ecl-B59qGGVg.js +178 -0
  26. package/out/renderer/assets/eiffel-Dze7nlu3.js +134 -0
  27. package/out/renderer/assets/elm-DG7jkhNZ.js +176 -0
  28. package/out/renderer/assets/erlang-BO6gOnGA.js +674 -0
  29. package/out/renderer/assets/factor-CMxFHDqz.js +65 -0
  30. package/out/renderer/assets/fcl-CDDUNjTj.js +141 -0
  31. package/out/renderer/assets/forth-B9D2JCeE.js +116 -0
  32. package/out/renderer/assets/fortran-CAG2BFbe.js +467 -0
  33. package/out/renderer/assets/gas-d3KEcW3x.js +294 -0
  34. package/out/renderer/assets/gherkin-DhZlEZiy.js +115 -0
  35. package/out/renderer/assets/groovy-CpwJiBl7.js +223 -0
  36. package/out/renderer/assets/haskell-ySd-OUo8.js +459 -0
  37. package/out/renderer/assets/haxe-7MlzfeYV.js +514 -0
  38. package/out/renderer/assets/http-BqypyemW.js +79 -0
  39. package/out/renderer/assets/idl-4HIGJlDI.js +985 -0
  40. package/out/renderer/assets/index-2SQReYbL.js +117 -0
  41. package/out/renderer/assets/index-B4G_DF7l.js +178 -0
  42. package/out/renderer/assets/index-BJ7HHtlW.css +4015 -0
  43. package/out/renderer/assets/index-BLk1t3tc.js +151 -0
  44. package/out/renderer/assets/index-BLtm0KYA.js +157 -0
  45. package/out/renderer/assets/index-BPgGZ4iY.js +82 -0
  46. package/out/renderer/assets/index-BQE9vCdv.js +332 -0
  47. package/out/renderer/assets/index-BYr39Do3.js +61 -0
  48. package/out/renderer/assets/index-Ba0sUbhl.js +47177 -0
  49. package/out/renderer/assets/index-BewSkGJT.js +1041 -0
  50. package/out/renderer/assets/index-BnId7J8H.js +1021 -0
  51. package/out/renderer/assets/index-Btn996gP.js +406 -0
  52. package/out/renderer/assets/index-C7i4WyfA.js +311 -0
  53. package/out/renderer/assets/index-CW9SAu99.js +385 -0
  54. package/out/renderer/assets/index-CXmk7jHk.js +291 -0
  55. package/out/renderer/assets/index-CyQp9UDR.js +82 -0
  56. package/out/renderer/assets/index-Da2gJ_Wd.js +704 -0
  57. package/out/renderer/assets/index-DkFO-IXC.js +2488 -0
  58. package/out/renderer/assets/index-DqrDpNqn.js +689 -0
  59. package/out/renderer/assets/index-Dw7p19YD.js +327 -0
  60. package/out/renderer/assets/index-QPm3UFYR.js +97 -0
  61. package/out/renderer/assets/index-RGiHNShF.js +1768 -0
  62. package/out/renderer/assets/index-RgZE5T_I.js +642 -0
  63. package/out/renderer/assets/index-t8kJBumF.js +312 -0
  64. package/out/renderer/assets/javascript-C_OHM9hj.js +994 -0
  65. package/out/renderer/assets/julia-Bs6JJhYG.js +407 -0
  66. package/out/renderer/assets/livescript-DmzgM3Yt.js +296 -0
  67. package/out/renderer/assets/lua-Cvg8VrAA.js +256 -0
  68. package/out/renderer/assets/mathematica-DNLOL9PQ.js +110 -0
  69. package/out/renderer/assets/mbox-Ga7d4MMN.js +117 -0
  70. package/out/renderer/assets/mirc-Dma3B8rS.js +107 -0
  71. package/out/renderer/assets/mllike-DHn7xckP.js +334 -0
  72. package/out/renderer/assets/modelica-0d55jYY0.js +147 -0
  73. package/out/renderer/assets/mscgen-DdqZYINH.js +135 -0
  74. package/out/renderer/assets/mumps-Btr8VblO.js +93 -0
  75. package/out/renderer/assets/nginx-DTDtBDVN.js +141 -0
  76. package/out/renderer/assets/nsis-3zG7tgur.js +62 -0
  77. package/out/renderer/assets/ntriples-CvgOYMpL.js +153 -0
  78. package/out/renderer/assets/octave-DYBj3-tl.js +200 -0
  79. package/out/renderer/assets/oz-R_e8WMIi.js +231 -0
  80. package/out/renderer/assets/pascal-GD8iposT.js +105 -0
  81. package/out/renderer/assets/perl-DL9mHpoi.js +1105 -0
  82. package/out/renderer/assets/pig-C_4T4YIV.js +101 -0
  83. package/out/renderer/assets/powershell-B0suO7Vd.js +328 -0
  84. package/out/renderer/assets/properties-BR-vP1aU.js +58 -0
  85. package/out/renderer/assets/protobuf-BxgpyhoW.js +77 -0
  86. package/out/renderer/assets/pug-CTXt1f8z.js +405 -0
  87. package/out/renderer/assets/puppet-Bdao66PW.js +137 -0
  88. package/out/renderer/assets/python-CvWbmiX4.js +427 -0
  89. package/out/renderer/assets/q-CrbCVq4a.js +131 -0
  90. package/out/renderer/assets/r-V7nswm59.js +170 -0
  91. package/out/renderer/assets/rpm-C-DLY-If.js +109 -0
  92. package/out/renderer/assets/ruby-JDKLJNK0.js +330 -0
  93. package/out/renderer/assets/sas-D2UG-yhZ.js +207 -0
  94. package/out/renderer/assets/scheme-BKzrkGJD.js +222 -0
  95. package/out/renderer/assets/shell-BlsXDxCn.js +222 -0
  96. package/out/renderer/assets/sieve-CjwBwOY5.js +135 -0
  97. package/out/renderer/assets/simple-mode-DMneyfDu.js +130 -0
  98. package/out/renderer/assets/smalltalk-BOIGQuhN.js +121 -0
  99. package/out/renderer/assets/solr-CwD7U71z.js +69 -0
  100. package/out/renderer/assets/sparql-DYskk2vE.js +249 -0
  101. package/out/renderer/assets/spreadsheet-Bgtt3oLP.js +87 -0
  102. package/out/renderer/assets/sql-BSrOzCRI.js +354 -0
  103. package/out/renderer/assets/stex-B6LNC55o.js +231 -0
  104. package/out/renderer/assets/stylus-BkS-boTH.js +565 -0
  105. package/out/renderer/assets/swift-FRZi1uvB.js +291 -0
  106. package/out/renderer/assets/tcl-CUcaCdmq.js +114 -0
  107. package/out/renderer/assets/textile-BnFpjsrl.js +414 -0
  108. package/out/renderer/assets/tiddlywiki-CjprD-Qp.js +218 -0
  109. package/out/renderer/assets/tiki-DK9DOeWn.js +268 -0
  110. package/out/renderer/assets/toml-BOuWGMcf.js +76 -0
  111. package/out/renderer/assets/troff-E1bJ0PPL.js +61 -0
  112. package/out/renderer/assets/ttcn-cfg-Dc39-fIP.js +133 -0
  113. package/out/renderer/assets/ttcn-tKd4HLu4.js +192 -0
  114. package/out/renderer/assets/turtle-Dq7-1WAf.js +124 -0
  115. package/out/renderer/assets/vb-Dp90gtsv.js +196 -0
  116. package/out/renderer/assets/vbscript-CI6_mxxU.js +479 -0
  117. package/out/renderer/assets/velocity-BwIZK1TH.js +149 -0
  118. package/out/renderer/assets/verilog-DDCYnHN8.js +430 -0
  119. package/out/renderer/assets/vhdl-DCkMIyT9.js +158 -0
  120. package/out/renderer/assets/webidl-BTLTThCm.js +204 -0
  121. package/out/renderer/assets/xquery-BrBUuxMR.js +525 -0
  122. package/out/renderer/assets/yacas-b5lAVEIl.js +130 -0
  123. package/out/renderer/assets/z80-BZV19vqv.js +93 -0
  124. package/out/renderer/index.html +16 -0
  125. package/package.json +109 -0
@@ -0,0 +1,65 @@
1
+ import { s as simpleMode } from "./simple-mode-DMneyfDu.js";
2
+ const factor = simpleMode({
3
+ start: [
4
+ // comments
5
+ { regex: /#?!.*/, token: "comment" },
6
+ // strings """, multiline --> state
7
+ { regex: /"""/, token: "string", next: "string3" },
8
+ { regex: /(STRING:)(\s)/, token: ["keyword", null], next: "string2" },
9
+ { regex: /\S*?"/, token: "string", next: "string" },
10
+ // numbers: dec, hex, unicode, bin, fractional, complex
11
+ { regex: /(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\-?\d+.?\d*)(?=\s)/, token: "number" },
12
+ //{regex: /[+-]?/} //fractional
13
+ // definition: defining word, defined word, etc
14
+ { regex: /((?:GENERIC)|\:?\:)(\s+)(\S+)(\s+)(\()/, token: ["keyword", null, "def", null, "bracket"], next: "stack" },
15
+ // method definition: defining word, type, defined word, etc
16
+ { regex: /(M\:)(\s+)(\S+)(\s+)(\S+)/, token: ["keyword", null, "def", null, "tag"] },
17
+ // vocabulary using --> state
18
+ { regex: /USING\:/, token: "keyword", next: "vocabulary" },
19
+ // vocabulary definition/use
20
+ { regex: /(USE\:|IN\:)(\s+)(\S+)(?=\s|$)/, token: ["keyword", null, "tag"] },
21
+ // definition: a defining word, defined word
22
+ { regex: /(\S+\:)(\s+)(\S+)(?=\s|$)/, token: ["keyword", null, "def"] },
23
+ // "keywords", incl. ; t f . [ ] { } defining words
24
+ { regex: /(?:;|\\|t|f|if|loop|while|until|do|PRIVATE>|<PRIVATE|\.|\S*\[|\]|\S*\{|\})(?=\s|$)/, token: "keyword" },
25
+ // <constructors> and the like
26
+ { regex: /\S+[\)>\.\*\?]+(?=\s|$)/, token: "builtin" },
27
+ { regex: /[\)><]+\S+(?=\s|$)/, token: "builtin" },
28
+ // operators
29
+ { regex: /(?:[\+\-\=\/\*<>])(?=\s|$)/, token: "keyword" },
30
+ // any id (?)
31
+ { regex: /\S+/, token: "variable" },
32
+ { regex: /\s+|./, token: null }
33
+ ],
34
+ vocabulary: [
35
+ { regex: /;/, token: "keyword", next: "start" },
36
+ { regex: /\S+/, token: "tag" },
37
+ { regex: /\s+|./, token: null }
38
+ ],
39
+ string: [
40
+ { regex: /(?:[^\\]|\\.)*?"/, token: "string", next: "start" },
41
+ { regex: /.*/, token: "string" }
42
+ ],
43
+ string2: [
44
+ { regex: /^;/, token: "keyword", next: "start" },
45
+ { regex: /.*/, token: "string" }
46
+ ],
47
+ string3: [
48
+ { regex: /(?:[^\\]|\\.)*?"""/, token: "string", next: "start" },
49
+ { regex: /.*/, token: "string" }
50
+ ],
51
+ stack: [
52
+ { regex: /\)/, token: "bracket", next: "start" },
53
+ { regex: /--/, token: "bracket" },
54
+ { regex: /\S+/, token: "meta" },
55
+ { regex: /\s+|./, token: null }
56
+ ],
57
+ languageData: {
58
+ name: "factor",
59
+ dontIndentStates: ["start", "vocabulary", "string", "string3", "stack"],
60
+ commentTokens: { line: "!" }
61
+ }
62
+ });
63
+ export {
64
+ factor
65
+ };
@@ -0,0 +1,141 @@
1
+ var keywords = {
2
+ "term": true,
3
+ "method": true,
4
+ "accu": true,
5
+ "rule": true,
6
+ "then": true,
7
+ "is": true,
8
+ "and": true,
9
+ "or": true,
10
+ "if": true,
11
+ "default": true
12
+ };
13
+ var start_blocks = {
14
+ "var_input": true,
15
+ "var_output": true,
16
+ "fuzzify": true,
17
+ "defuzzify": true,
18
+ "function_block": true,
19
+ "ruleblock": true
20
+ };
21
+ var end_blocks = {
22
+ "end_ruleblock": true,
23
+ "end_defuzzify": true,
24
+ "end_function_block": true,
25
+ "end_fuzzify": true,
26
+ "end_var": true
27
+ };
28
+ var atoms = {
29
+ "true": true,
30
+ "false": true,
31
+ "nan": true,
32
+ "real": true,
33
+ "min": true,
34
+ "max": true,
35
+ "cog": true,
36
+ "cogs": true
37
+ };
38
+ var isOperatorChar = /[+\-*&^%:=<>!|\/]/;
39
+ function tokenBase(stream, state) {
40
+ var ch = stream.next();
41
+ if (/[\d\.]/.test(ch)) {
42
+ if (ch == ".") {
43
+ stream.match(/^[0-9]+([eE][\-+]?[0-9]+)?/);
44
+ } else if (ch == "0") {
45
+ stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/);
46
+ } else {
47
+ stream.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/);
48
+ }
49
+ return "number";
50
+ }
51
+ if (ch == "/" || ch == "(") {
52
+ if (stream.eat("*")) {
53
+ state.tokenize = tokenComment;
54
+ return tokenComment(stream, state);
55
+ }
56
+ if (stream.eat("/")) {
57
+ stream.skipToEnd();
58
+ return "comment";
59
+ }
60
+ }
61
+ if (isOperatorChar.test(ch)) {
62
+ stream.eatWhile(isOperatorChar);
63
+ return "operator";
64
+ }
65
+ stream.eatWhile(/[\w\$_\xa1-\uffff]/);
66
+ var cur = stream.current().toLowerCase();
67
+ if (keywords.propertyIsEnumerable(cur) || start_blocks.propertyIsEnumerable(cur) || end_blocks.propertyIsEnumerable(cur)) {
68
+ return "keyword";
69
+ }
70
+ if (atoms.propertyIsEnumerable(cur)) return "atom";
71
+ return "variable";
72
+ }
73
+ function tokenComment(stream, state) {
74
+ var maybeEnd = false, ch;
75
+ while (ch = stream.next()) {
76
+ if ((ch == "/" || ch == ")") && maybeEnd) {
77
+ state.tokenize = tokenBase;
78
+ break;
79
+ }
80
+ maybeEnd = ch == "*";
81
+ }
82
+ return "comment";
83
+ }
84
+ function Context(indented, column, type, align, prev) {
85
+ this.indented = indented;
86
+ this.column = column;
87
+ this.type = type;
88
+ this.align = align;
89
+ this.prev = prev;
90
+ }
91
+ function pushContext(state, col, type) {
92
+ return state.context = new Context(state.indented, col, type, null, state.context);
93
+ }
94
+ function popContext(state) {
95
+ if (!state.context.prev) return;
96
+ var t = state.context.type;
97
+ if (t == "end_block")
98
+ state.indented = state.context.indented;
99
+ return state.context = state.context.prev;
100
+ }
101
+ const fcl = {
102
+ name: "fcl",
103
+ startState: function(indentUnit) {
104
+ return {
105
+ tokenize: null,
106
+ context: new Context(-indentUnit, 0, "top", false),
107
+ indented: 0,
108
+ startOfLine: true
109
+ };
110
+ },
111
+ token: function(stream, state) {
112
+ var ctx = state.context;
113
+ if (stream.sol()) {
114
+ if (ctx.align == null) ctx.align = false;
115
+ state.indented = stream.indentation();
116
+ state.startOfLine = true;
117
+ }
118
+ if (stream.eatSpace()) return null;
119
+ var style = (state.tokenize || tokenBase)(stream, state);
120
+ if (style == "comment") return style;
121
+ if (ctx.align == null) ctx.align = true;
122
+ var cur = stream.current().toLowerCase();
123
+ if (start_blocks.propertyIsEnumerable(cur)) pushContext(state, stream.column(), "end_block");
124
+ else if (end_blocks.propertyIsEnumerable(cur)) popContext(state);
125
+ state.startOfLine = false;
126
+ return style;
127
+ },
128
+ indent: function(state, textAfter, cx) {
129
+ if (state.tokenize != tokenBase && state.tokenize != null) return 0;
130
+ var ctx = state.context;
131
+ var closing = end_blocks.propertyIsEnumerable(textAfter);
132
+ if (ctx.align) return ctx.column + (closing ? 0 : 1);
133
+ else return ctx.indented + (closing ? 0 : cx.unit);
134
+ },
135
+ languageData: {
136
+ commentTokens: { line: "//", block: { open: "(*", close: "*)" } }
137
+ }
138
+ };
139
+ export {
140
+ fcl
141
+ };
@@ -0,0 +1,116 @@
1
+ function toWordList(words) {
2
+ var ret = [];
3
+ words.split(" ").forEach(function(e) {
4
+ ret.push({ name: e });
5
+ });
6
+ return ret;
7
+ }
8
+ var coreWordList = toWordList(
9
+ "INVERT AND OR XOR 2* 2/ LSHIFT RSHIFT 0= = 0< < > U< MIN MAX 2DROP 2DUP 2OVER 2SWAP ?DUP DEPTH DROP DUP OVER ROT SWAP >R R> R@ + - 1+ 1- ABS NEGATE S>D * M* UM* FM/MOD SM/REM UM/MOD */ */MOD / /MOD MOD HERE , @ ! CELL+ CELLS C, C@ C! CHARS 2@ 2! ALIGN ALIGNED +! ALLOT CHAR [CHAR] [ ] BL FIND EXECUTE IMMEDIATE COUNT LITERAL STATE ; DOES> >BODY EVALUATE SOURCE >IN <# # #S #> HOLD SIGN BASE >NUMBER HEX DECIMAL FILL MOVE . CR EMIT SPACE SPACES TYPE U. .R U.R ACCEPT TRUE FALSE <> U> 0<> 0> NIP TUCK ROLL PICK 2>R 2R@ 2R> WITHIN UNUSED MARKER I J TO COMPILE, [COMPILE] SAVE-INPUT RESTORE-INPUT PAD ERASE 2LITERAL DNEGATE D- D+ D0< D0= D2* D2/ D< D= DMAX DMIN D>S DABS M+ M*/ D. D.R 2ROT DU< CATCH THROW FREE RESIZE ALLOCATE CS-PICK CS-ROLL GET-CURRENT SET-CURRENT FORTH-WORDLIST GET-ORDER SET-ORDER PREVIOUS SEARCH-WORDLIST WORDLIST FIND ALSO ONLY FORTH DEFINITIONS ORDER -TRAILING /STRING SEARCH COMPARE CMOVE CMOVE> BLANK SLITERAL"
10
+ );
11
+ var immediateWordList = toWordList("IF ELSE THEN BEGIN WHILE REPEAT UNTIL RECURSE [IF] [ELSE] [THEN] ?DO DO LOOP +LOOP UNLOOP LEAVE EXIT AGAIN CASE OF ENDOF ENDCASE");
12
+ function searchWordList(wordList, word) {
13
+ var i;
14
+ for (i = wordList.length - 1; i >= 0; i--) {
15
+ if (wordList[i].name === word.toUpperCase()) {
16
+ return wordList[i];
17
+ }
18
+ }
19
+ return void 0;
20
+ }
21
+ const forth = {
22
+ name: "forth",
23
+ startState: function() {
24
+ return {
25
+ state: "",
26
+ base: 10,
27
+ coreWordList,
28
+ immediateWordList,
29
+ wordList: []
30
+ };
31
+ },
32
+ token: function(stream, stt) {
33
+ var mat;
34
+ if (stream.eatSpace()) {
35
+ return null;
36
+ }
37
+ if (stt.state === "") {
38
+ if (stream.match(/^(\]|:NONAME)(\s|$)/i)) {
39
+ stt.state = " compilation";
40
+ return "builtin";
41
+ }
42
+ mat = stream.match(/^(\:)\s+(\S+)(\s|$)+/);
43
+ if (mat) {
44
+ stt.wordList.push({ name: mat[2].toUpperCase() });
45
+ stt.state = " compilation";
46
+ return "def";
47
+ }
48
+ mat = stream.match(/^(VARIABLE|2VARIABLE|CONSTANT|2CONSTANT|CREATE|POSTPONE|VALUE|WORD)\s+(\S+)(\s|$)+/i);
49
+ if (mat) {
50
+ stt.wordList.push({ name: mat[2].toUpperCase() });
51
+ return "def";
52
+ }
53
+ mat = stream.match(/^(\'|\[\'\])\s+(\S+)(\s|$)+/);
54
+ if (mat) {
55
+ return "builtin";
56
+ }
57
+ } else {
58
+ if (stream.match(/^(\;|\[)(\s)/)) {
59
+ stt.state = "";
60
+ stream.backUp(1);
61
+ return "builtin";
62
+ }
63
+ if (stream.match(/^(\;|\[)($)/)) {
64
+ stt.state = "";
65
+ return "builtin";
66
+ }
67
+ if (stream.match(/^(POSTPONE)\s+\S+(\s|$)+/)) {
68
+ return "builtin";
69
+ }
70
+ }
71
+ mat = stream.match(/^(\S+)(\s+|$)/);
72
+ if (mat) {
73
+ if (searchWordList(stt.wordList, mat[1]) !== void 0) {
74
+ return "variable";
75
+ }
76
+ if (mat[1] === "\\") {
77
+ stream.skipToEnd();
78
+ return "comment";
79
+ }
80
+ if (searchWordList(stt.coreWordList, mat[1]) !== void 0) {
81
+ return "builtin";
82
+ }
83
+ if (searchWordList(stt.immediateWordList, mat[1]) !== void 0) {
84
+ return "keyword";
85
+ }
86
+ if (mat[1] === "(") {
87
+ stream.eatWhile(function(s) {
88
+ return s !== ")";
89
+ });
90
+ stream.eat(")");
91
+ return "comment";
92
+ }
93
+ if (mat[1] === ".(") {
94
+ stream.eatWhile(function(s) {
95
+ return s !== ")";
96
+ });
97
+ stream.eat(")");
98
+ return "string";
99
+ }
100
+ if (mat[1] === 'S"' || mat[1] === '."' || mat[1] === 'C"') {
101
+ stream.eatWhile(function(s) {
102
+ return s !== '"';
103
+ });
104
+ stream.eat('"');
105
+ return "string";
106
+ }
107
+ if (mat[1] - 68719476735) {
108
+ return "number";
109
+ }
110
+ return "atom";
111
+ }
112
+ }
113
+ };
114
+ export {
115
+ forth
116
+ };