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.
- package/README.md +130 -0
- package/bin/maestro.mjs +45 -0
- package/out/main/index.js +5293 -0
- package/out/preload/index.js +130 -0
- package/out/renderer/assets/apl-fqmucPXA.js +140 -0
- package/out/renderer/assets/asciiarmor-DucZyvP0.js +56 -0
- package/out/renderer/assets/asn1-BnOEsgAm.js +144 -0
- package/out/renderer/assets/asterisk-QAlztEwS.js +345 -0
- package/out/renderer/assets/brainfuck-DZVCuF_t.js +53 -0
- package/out/renderer/assets/clike-xqXYL6ge.js +805 -0
- package/out/renderer/assets/clojure-BhXMqnxz.js +849 -0
- package/out/renderer/assets/cmake-BGaNd9E7.js +71 -0
- package/out/renderer/assets/cobol-4yqQntpt.js +120 -0
- package/out/renderer/assets/coffeescript-D2dXvhEc.js +308 -0
- package/out/renderer/assets/commonlisp-CF_VNHQR.js +130 -0
- package/out/renderer/assets/crystal-DyuLTqLs.js +398 -0
- package/out/renderer/assets/css-c-jst79C.js +1783 -0
- package/out/renderer/assets/cypher-Dlu_3r4V.js +121 -0
- package/out/renderer/assets/d-UURgV0Ux.js +179 -0
- package/out/renderer/assets/diff-B_Bi2Crb.js +25 -0
- package/out/renderer/assets/dockerfile-Bvk733Ga.js +201 -0
- package/out/renderer/assets/dtd-Dy74G54E.js +114 -0
- package/out/renderer/assets/dylan-TSb-Nfix.js +314 -0
- package/out/renderer/assets/ebnf-4fKAGW3a.js +140 -0
- package/out/renderer/assets/ecl-B59qGGVg.js +178 -0
- package/out/renderer/assets/eiffel-Dze7nlu3.js +134 -0
- package/out/renderer/assets/elm-DG7jkhNZ.js +176 -0
- package/out/renderer/assets/erlang-BO6gOnGA.js +674 -0
- package/out/renderer/assets/factor-CMxFHDqz.js +65 -0
- package/out/renderer/assets/fcl-CDDUNjTj.js +141 -0
- package/out/renderer/assets/forth-B9D2JCeE.js +116 -0
- package/out/renderer/assets/fortran-CAG2BFbe.js +467 -0
- package/out/renderer/assets/gas-d3KEcW3x.js +294 -0
- package/out/renderer/assets/gherkin-DhZlEZiy.js +115 -0
- package/out/renderer/assets/groovy-CpwJiBl7.js +223 -0
- package/out/renderer/assets/haskell-ySd-OUo8.js +459 -0
- package/out/renderer/assets/haxe-7MlzfeYV.js +514 -0
- package/out/renderer/assets/http-BqypyemW.js +79 -0
- package/out/renderer/assets/idl-4HIGJlDI.js +985 -0
- package/out/renderer/assets/index-2SQReYbL.js +117 -0
- package/out/renderer/assets/index-B4G_DF7l.js +178 -0
- package/out/renderer/assets/index-BJ7HHtlW.css +4015 -0
- package/out/renderer/assets/index-BLk1t3tc.js +151 -0
- package/out/renderer/assets/index-BLtm0KYA.js +157 -0
- package/out/renderer/assets/index-BPgGZ4iY.js +82 -0
- package/out/renderer/assets/index-BQE9vCdv.js +332 -0
- package/out/renderer/assets/index-BYr39Do3.js +61 -0
- package/out/renderer/assets/index-Ba0sUbhl.js +47177 -0
- package/out/renderer/assets/index-BewSkGJT.js +1041 -0
- package/out/renderer/assets/index-BnId7J8H.js +1021 -0
- package/out/renderer/assets/index-Btn996gP.js +406 -0
- package/out/renderer/assets/index-C7i4WyfA.js +311 -0
- package/out/renderer/assets/index-CW9SAu99.js +385 -0
- package/out/renderer/assets/index-CXmk7jHk.js +291 -0
- package/out/renderer/assets/index-CyQp9UDR.js +82 -0
- package/out/renderer/assets/index-Da2gJ_Wd.js +704 -0
- package/out/renderer/assets/index-DkFO-IXC.js +2488 -0
- package/out/renderer/assets/index-DqrDpNqn.js +689 -0
- package/out/renderer/assets/index-Dw7p19YD.js +327 -0
- package/out/renderer/assets/index-QPm3UFYR.js +97 -0
- package/out/renderer/assets/index-RGiHNShF.js +1768 -0
- package/out/renderer/assets/index-RgZE5T_I.js +642 -0
- package/out/renderer/assets/index-t8kJBumF.js +312 -0
- package/out/renderer/assets/javascript-C_OHM9hj.js +994 -0
- package/out/renderer/assets/julia-Bs6JJhYG.js +407 -0
- package/out/renderer/assets/livescript-DmzgM3Yt.js +296 -0
- package/out/renderer/assets/lua-Cvg8VrAA.js +256 -0
- package/out/renderer/assets/mathematica-DNLOL9PQ.js +110 -0
- package/out/renderer/assets/mbox-Ga7d4MMN.js +117 -0
- package/out/renderer/assets/mirc-Dma3B8rS.js +107 -0
- package/out/renderer/assets/mllike-DHn7xckP.js +334 -0
- package/out/renderer/assets/modelica-0d55jYY0.js +147 -0
- package/out/renderer/assets/mscgen-DdqZYINH.js +135 -0
- package/out/renderer/assets/mumps-Btr8VblO.js +93 -0
- package/out/renderer/assets/nginx-DTDtBDVN.js +141 -0
- package/out/renderer/assets/nsis-3zG7tgur.js +62 -0
- package/out/renderer/assets/ntriples-CvgOYMpL.js +153 -0
- package/out/renderer/assets/octave-DYBj3-tl.js +200 -0
- package/out/renderer/assets/oz-R_e8WMIi.js +231 -0
- package/out/renderer/assets/pascal-GD8iposT.js +105 -0
- package/out/renderer/assets/perl-DL9mHpoi.js +1105 -0
- package/out/renderer/assets/pig-C_4T4YIV.js +101 -0
- package/out/renderer/assets/powershell-B0suO7Vd.js +328 -0
- package/out/renderer/assets/properties-BR-vP1aU.js +58 -0
- package/out/renderer/assets/protobuf-BxgpyhoW.js +77 -0
- package/out/renderer/assets/pug-CTXt1f8z.js +405 -0
- package/out/renderer/assets/puppet-Bdao66PW.js +137 -0
- package/out/renderer/assets/python-CvWbmiX4.js +427 -0
- package/out/renderer/assets/q-CrbCVq4a.js +131 -0
- package/out/renderer/assets/r-V7nswm59.js +170 -0
- package/out/renderer/assets/rpm-C-DLY-If.js +109 -0
- package/out/renderer/assets/ruby-JDKLJNK0.js +330 -0
- package/out/renderer/assets/sas-D2UG-yhZ.js +207 -0
- package/out/renderer/assets/scheme-BKzrkGJD.js +222 -0
- package/out/renderer/assets/shell-BlsXDxCn.js +222 -0
- package/out/renderer/assets/sieve-CjwBwOY5.js +135 -0
- package/out/renderer/assets/simple-mode-DMneyfDu.js +130 -0
- package/out/renderer/assets/smalltalk-BOIGQuhN.js +121 -0
- package/out/renderer/assets/solr-CwD7U71z.js +69 -0
- package/out/renderer/assets/sparql-DYskk2vE.js +249 -0
- package/out/renderer/assets/spreadsheet-Bgtt3oLP.js +87 -0
- package/out/renderer/assets/sql-BSrOzCRI.js +354 -0
- package/out/renderer/assets/stex-B6LNC55o.js +231 -0
- package/out/renderer/assets/stylus-BkS-boTH.js +565 -0
- package/out/renderer/assets/swift-FRZi1uvB.js +291 -0
- package/out/renderer/assets/tcl-CUcaCdmq.js +114 -0
- package/out/renderer/assets/textile-BnFpjsrl.js +414 -0
- package/out/renderer/assets/tiddlywiki-CjprD-Qp.js +218 -0
- package/out/renderer/assets/tiki-DK9DOeWn.js +268 -0
- package/out/renderer/assets/toml-BOuWGMcf.js +76 -0
- package/out/renderer/assets/troff-E1bJ0PPL.js +61 -0
- package/out/renderer/assets/ttcn-cfg-Dc39-fIP.js +133 -0
- package/out/renderer/assets/ttcn-tKd4HLu4.js +192 -0
- package/out/renderer/assets/turtle-Dq7-1WAf.js +124 -0
- package/out/renderer/assets/vb-Dp90gtsv.js +196 -0
- package/out/renderer/assets/vbscript-CI6_mxxU.js +479 -0
- package/out/renderer/assets/velocity-BwIZK1TH.js +149 -0
- package/out/renderer/assets/verilog-DDCYnHN8.js +430 -0
- package/out/renderer/assets/vhdl-DCkMIyT9.js +158 -0
- package/out/renderer/assets/webidl-BTLTThCm.js +204 -0
- package/out/renderer/assets/xquery-BrBUuxMR.js +525 -0
- package/out/renderer/assets/yacas-b5lAVEIl.js +130 -0
- package/out/renderer/assets/z80-BZV19vqv.js +93 -0
- package/out/renderer/index.html +16 -0
- 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
|
+
};
|