@starpak/lang 0.0.0-stage → 0.1.3

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 (58) hide show
  1. package/LICENSE +22 -0
  2. package/lib/ast.d.ts +341 -0
  3. package/lib/ast.d.ts.map +1 -0
  4. package/lib/ast.js +9 -0
  5. package/lib/ast.js.map +1 -0
  6. package/lib/checker.d.ts +17 -0
  7. package/lib/checker.d.ts.map +1 -0
  8. package/lib/checker.js +525 -0
  9. package/lib/checker.js.map +1 -0
  10. package/lib/diagnostics.d.ts +46 -0
  11. package/lib/diagnostics.d.ts.map +1 -0
  12. package/lib/diagnostics.js +77 -0
  13. package/lib/diagnostics.js.map +1 -0
  14. package/lib/emit/lua.d.ts +19 -0
  15. package/lib/emit/lua.d.ts.map +1 -0
  16. package/lib/emit/lua.js +451 -0
  17. package/lib/emit/lua.js.map +1 -0
  18. package/lib/emit/ts.d.ts +42 -0
  19. package/lib/emit/ts.d.ts.map +1 -0
  20. package/lib/emit/ts.js +950 -0
  21. package/lib/emit/ts.js.map +1 -0
  22. package/lib/index.d.ts +18 -0
  23. package/lib/index.d.ts.map +1 -0
  24. package/lib/index.js +54 -0
  25. package/lib/index.js.map +1 -0
  26. package/lib/lexer.d.ts +10 -0
  27. package/lib/lexer.d.ts.map +1 -0
  28. package/lib/lexer.js +282 -0
  29. package/lib/lexer.js.map +1 -0
  30. package/lib/parser.d.ts +11 -0
  31. package/lib/parser.d.ts.map +1 -0
  32. package/lib/parser.js +1138 -0
  33. package/lib/parser.js.map +1 -0
  34. package/lib/token.d.ts +32 -0
  35. package/lib/token.d.ts.map +1 -0
  36. package/lib/token.js +18 -0
  37. package/lib/token.js.map +1 -0
  38. package/lib/types.d.ts +63 -0
  39. package/lib/types.d.ts.map +1 -0
  40. package/lib/types.js +177 -0
  41. package/lib/types.js.map +1 -0
  42. package/lib/version.d.ts +25 -0
  43. package/lib/version.d.ts.map +1 -0
  44. package/lib/version.js +47 -0
  45. package/lib/version.js.map +1 -0
  46. package/package.json +10 -3
  47. package/src/ast.ts +467 -0
  48. package/src/checker.ts +554 -0
  49. package/src/diagnostics.ts +100 -0
  50. package/src/emit/lua.ts +484 -0
  51. package/src/emit/ts.ts +1024 -0
  52. package/src/index.ts +24 -0
  53. package/src/lexer.ts +301 -0
  54. package/src/parser.ts +1257 -0
  55. package/src/token.ts +34 -0
  56. package/src/types.ts +218 -0
  57. package/src/version.ts +44 -0
  58. package/README.md +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts.js","sourceRoot":"","sources":["../../src/emit/ts.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Spak Lang - Public API
3
+ */
4
+ export * from './token';
5
+ export * from './ast';
6
+ export * from './lexer';
7
+ export * from './parser';
8
+ export * from './checker';
9
+ export { CODES, error, warning, countBySeverity, formatDiagnostic } from './diagnostics';
10
+ export type { Diagnostic, DiagnosticCode, Severity } from './diagnostics';
11
+ export { emitTypeScript, typeAnn } from './emit/ts';
12
+ export type { EmitOptions } from './emit/ts';
13
+ export { emitLua } from './emit/lua';
14
+ export type { EmitLuaOptions } from './emit/lua';
15
+ export { VERSION_PATTERN, isValidVersion, parseVersion, versionBanner, } from './version';
16
+ export { ANY, NIL, NUMBER, STRING, BOOLEAN, fromTypeAnn, union, isNil, withoutNil, isAssignable, print as printType, } from './types';
17
+ export type { Type, AnyType, NilType, PrimType } from './types';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACxF,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EACL,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,GAC7D,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EACjC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EACnD,KAAK,IAAI,SAAS,GACnB,MAAM,SAAS,CAAA;AAChB,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA"}
package/lib/index.js ADDED
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /**
3
+ * Spak Lang - Public API
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.printType = exports.isAssignable = exports.withoutNil = exports.isNil = exports.union = exports.fromTypeAnn = exports.BOOLEAN = exports.STRING = exports.NUMBER = exports.NIL = exports.ANY = exports.versionBanner = exports.parseVersion = exports.isValidVersion = exports.VERSION_PATTERN = exports.emitLua = exports.typeAnn = exports.emitTypeScript = exports.formatDiagnostic = exports.countBySeverity = exports.warning = exports.error = exports.CODES = void 0;
21
+ __exportStar(require("./token"), exports);
22
+ __exportStar(require("./ast"), exports);
23
+ __exportStar(require("./lexer"), exports);
24
+ __exportStar(require("./parser"), exports);
25
+ __exportStar(require("./checker"), exports);
26
+ var diagnostics_1 = require("./diagnostics");
27
+ Object.defineProperty(exports, "CODES", { enumerable: true, get: function () { return diagnostics_1.CODES; } });
28
+ Object.defineProperty(exports, "error", { enumerable: true, get: function () { return diagnostics_1.error; } });
29
+ Object.defineProperty(exports, "warning", { enumerable: true, get: function () { return diagnostics_1.warning; } });
30
+ Object.defineProperty(exports, "countBySeverity", { enumerable: true, get: function () { return diagnostics_1.countBySeverity; } });
31
+ Object.defineProperty(exports, "formatDiagnostic", { enumerable: true, get: function () { return diagnostics_1.formatDiagnostic; } });
32
+ var ts_1 = require("./emit/ts");
33
+ Object.defineProperty(exports, "emitTypeScript", { enumerable: true, get: function () { return ts_1.emitTypeScript; } });
34
+ Object.defineProperty(exports, "typeAnn", { enumerable: true, get: function () { return ts_1.typeAnn; } });
35
+ var lua_1 = require("./emit/lua");
36
+ Object.defineProperty(exports, "emitLua", { enumerable: true, get: function () { return lua_1.emitLua; } });
37
+ var version_1 = require("./version");
38
+ Object.defineProperty(exports, "VERSION_PATTERN", { enumerable: true, get: function () { return version_1.VERSION_PATTERN; } });
39
+ Object.defineProperty(exports, "isValidVersion", { enumerable: true, get: function () { return version_1.isValidVersion; } });
40
+ Object.defineProperty(exports, "parseVersion", { enumerable: true, get: function () { return version_1.parseVersion; } });
41
+ Object.defineProperty(exports, "versionBanner", { enumerable: true, get: function () { return version_1.versionBanner; } });
42
+ var types_1 = require("./types");
43
+ Object.defineProperty(exports, "ANY", { enumerable: true, get: function () { return types_1.ANY; } });
44
+ Object.defineProperty(exports, "NIL", { enumerable: true, get: function () { return types_1.NIL; } });
45
+ Object.defineProperty(exports, "NUMBER", { enumerable: true, get: function () { return types_1.NUMBER; } });
46
+ Object.defineProperty(exports, "STRING", { enumerable: true, get: function () { return types_1.STRING; } });
47
+ Object.defineProperty(exports, "BOOLEAN", { enumerable: true, get: function () { return types_1.BOOLEAN; } });
48
+ Object.defineProperty(exports, "fromTypeAnn", { enumerable: true, get: function () { return types_1.fromTypeAnn; } });
49
+ Object.defineProperty(exports, "union", { enumerable: true, get: function () { return types_1.union; } });
50
+ Object.defineProperty(exports, "isNil", { enumerable: true, get: function () { return types_1.isNil; } });
51
+ Object.defineProperty(exports, "withoutNil", { enumerable: true, get: function () { return types_1.withoutNil; } });
52
+ Object.defineProperty(exports, "isAssignable", { enumerable: true, get: function () { return types_1.isAssignable; } });
53
+ Object.defineProperty(exports, "printType", { enumerable: true, get: function () { return types_1.print; } });
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;AAEH,0CAAuB;AACvB,wCAAqB;AACrB,0CAAuB;AACvB,2CAAwB;AACxB,4CAAyB;AACzB,6CAAwF;AAA/E,oGAAA,KAAK,OAAA;AAAE,oGAAA,KAAK,OAAA;AAAE,sGAAA,OAAO,OAAA;AAAE,8GAAA,eAAe,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AAEjE,gCAAmD;AAA1C,oGAAA,cAAc,OAAA;AAAE,6FAAA,OAAO,OAAA;AAEhC,kCAAoC;AAA3B,8FAAA,OAAO,OAAA;AAEhB,qCAEkB;AADhB,0GAAA,eAAe,OAAA;AAAE,yGAAA,cAAc,OAAA;AAAE,uGAAA,YAAY,OAAA;AAAE,wGAAA,aAAa,OAAA;AAE9D,iCAIgB;AAHd,4FAAA,GAAG,OAAA;AAAE,4FAAA,GAAG,OAAA;AAAE,+FAAA,MAAM,OAAA;AAAE,+FAAA,MAAM,OAAA;AAAE,gGAAA,OAAO,OAAA;AACjC,oGAAA,WAAW,OAAA;AAAE,8FAAA,KAAK,OAAA;AAAE,8FAAA,KAAK,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,qGAAA,YAAY,OAAA;AACnD,kGAAA,KAAK,OAAa"}
package/lib/lexer.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Spak Lang - Lexer
3
+ *
4
+ * Converts source text into a flat token stream. Newlines are significant
5
+ * (statement separators) and consecutive blank lines are collapsed into a
6
+ * single NEWLINE token.
7
+ */
8
+ import { Token } from './token';
9
+ export declare function tokenize(source: string): Token[];
10
+ //# sourceMappingURL=lexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAa,MAAM,SAAS,CAAA;AAyD1C,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CA2OhD"}
package/lib/lexer.js ADDED
@@ -0,0 +1,282 @@
1
+ "use strict";
2
+ /**
3
+ * Spak Lang - Lexer
4
+ *
5
+ * Converts source text into a flat token stream. Newlines are significant
6
+ * (statement separators) and consecutive blank lines are collapsed into a
7
+ * single NEWLINE token.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.tokenize = tokenize;
11
+ const token_1 = require("./token");
12
+ const KEYWORDS = new Set([
13
+ 'and', 'break', 'class', 'const', 'continue', 'do', 'else', 'elseif',
14
+ 'end', 'export', 'false', 'fn', 'for', 'from', 'global', 'if', 'import',
15
+ 'in', 'match', 'nil', 'not', 'or', 'repeat', 'return', 'spawn', 'then',
16
+ 'throw', 'true', 'try', 'catch', 'finally', 'type', 'unless', 'until',
17
+ 'when', 'while', 'async', 'await', 'extends', 'self', 'as', 'default',
18
+ ]);
19
+ /** Longest match wins, so multi-character operators come first. */
20
+ const OPERATORS = [
21
+ '...', '..<', '..', '|>', '?.', '??', '->', '==', '~=', '<=', '>=', '//',
22
+ '+', '-', '*', '/', '%', '^', '#', '<', '>', '=', '(', ')', '{', '}', '[',
23
+ ']', ',', ':', '.', '@', '|', '?',
24
+ ];
25
+ const ESCAPES = {
26
+ n: '\n',
27
+ t: '\t',
28
+ r: '\r',
29
+ '0': '\0',
30
+ '\\': '\\',
31
+ '"': '"',
32
+ "'": "'",
33
+ };
34
+ function isDigit(ch) {
35
+ return ch !== undefined && ch >= '0' && ch <= '9';
36
+ }
37
+ function isHexDigit(ch) {
38
+ return ch !== undefined && ((ch >= '0' && ch <= '9') ||
39
+ (ch >= 'a' && ch <= 'f') ||
40
+ (ch >= 'A' && ch <= 'F'));
41
+ }
42
+ function isIdentStart(ch) {
43
+ return ch !== undefined && ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || ch === '_');
44
+ }
45
+ function isIdentPart(ch) {
46
+ return isIdentStart(ch) || isDigit(ch);
47
+ }
48
+ function syntaxError(message, line, column) {
49
+ return new SyntaxError(`${message} (line ${line}, column ${column})`);
50
+ }
51
+ function decodeEscapes(raw) {
52
+ return raw.replace(/\\(.)/g, (match, ch) => ESCAPES[ch] ?? ch);
53
+ }
54
+ function tokenize(source) {
55
+ const tokens = [];
56
+ let index = 0;
57
+ let line = 1;
58
+ let column = 1;
59
+ /** Pending `---` doc lines, attached to the next non-newline token. */
60
+ let pendingDoc;
61
+ let pendingDocLine = 0;
62
+ function advance(count = 1) {
63
+ let consumed = '';
64
+ for (let i = 0; i < count && index < source.length; i++) {
65
+ const ch = source[index++];
66
+ consumed += ch;
67
+ if (ch === '\n') {
68
+ line++;
69
+ column = 1;
70
+ }
71
+ else {
72
+ column++;
73
+ }
74
+ }
75
+ return consumed;
76
+ }
77
+ function push(type, value, start, startLine, startColumn, fstring) {
78
+ const token = {
79
+ type,
80
+ value,
81
+ line: startLine,
82
+ column: startColumn,
83
+ start,
84
+ end: index,
85
+ };
86
+ if (fstring)
87
+ token.fstring = true;
88
+ if (type !== token_1.TokenType.Newline && pendingDoc) {
89
+ token.doc = pendingDoc.join('\n');
90
+ pendingDoc = undefined;
91
+ }
92
+ tokens.push(token);
93
+ }
94
+ function pushNewline(start, startLine, startColumn) {
95
+ if (!tokens.length)
96
+ return;
97
+ if (tokens[tokens.length - 1].type === token_1.TokenType.Newline)
98
+ return;
99
+ push(token_1.TokenType.Newline, '\n', start, startLine, startColumn);
100
+ }
101
+ function scanNumber() {
102
+ const start = index;
103
+ const startLine = line;
104
+ const startColumn = column;
105
+ if (source[index] === '0' && (source[index + 1] === 'x' || source[index + 1] === 'X')) {
106
+ advance(2);
107
+ let digits = 0;
108
+ while (isHexDigit(source[index]) || source[index] === '_') {
109
+ if (source[index] !== '_')
110
+ digits++;
111
+ advance();
112
+ }
113
+ if (!digits)
114
+ throw syntaxError('Invalid hexadecimal number', startLine, startColumn);
115
+ }
116
+ else if (source[index] === '0' && (source[index + 1] === 'b' || source[index + 1] === 'B')) {
117
+ advance(2);
118
+ let digits = 0;
119
+ while (source[index] === '0' || source[index] === '1' || source[index] === '_') {
120
+ if (source[index] !== '_')
121
+ digits++;
122
+ advance();
123
+ }
124
+ if (!digits)
125
+ throw syntaxError('Invalid binary number', startLine, startColumn);
126
+ }
127
+ else {
128
+ let digits = 0;
129
+ while (isDigit(source[index]) || source[index] === '_') {
130
+ if (source[index] !== '_')
131
+ digits++;
132
+ advance();
133
+ }
134
+ if (source[index] === '.' && source[index + 1] !== '.') {
135
+ if (isDigit(source[index + 1]) || source[index + 1] === undefined) {
136
+ advance();
137
+ while (isDigit(source[index]) || source[index] === '_') {
138
+ if (source[index] !== '_')
139
+ digits++;
140
+ advance();
141
+ }
142
+ }
143
+ }
144
+ if (source[index] === 'e' || source[index] === 'E') {
145
+ let lookahead = index + 1;
146
+ if (source[lookahead] === '+' || source[lookahead] === '-')
147
+ lookahead++;
148
+ if (isDigit(source[lookahead])) {
149
+ advance();
150
+ if (source[index] === '+' || source[index] === '-')
151
+ advance();
152
+ while (isDigit(source[index]) || source[index] === '_')
153
+ advance();
154
+ }
155
+ }
156
+ if (!digits)
157
+ throw syntaxError('Invalid number', startLine, startColumn);
158
+ }
159
+ push(token_1.TokenType.Number, source.slice(start, index), start, startLine, startColumn);
160
+ }
161
+ function scanString(quote, fstring) {
162
+ const start = index;
163
+ const startLine = line;
164
+ const startColumn = column;
165
+ const multiline = source.startsWith('"""', index);
166
+ advance(multiline ? 3 : 1);
167
+ const closing = multiline ? '"""' : quote;
168
+ let raw = '';
169
+ while (index < source.length) {
170
+ if (source.startsWith(closing, index)) {
171
+ advance(closing.length);
172
+ const value = fstring || multiline ? raw : decodeEscapes(raw);
173
+ push(fstring ? token_1.TokenType.FString : token_1.TokenType.String, value, start, startLine, startColumn, fstring);
174
+ return;
175
+ }
176
+ const ch = source[index];
177
+ if (ch === '\\' && !multiline) {
178
+ raw += ch;
179
+ advance();
180
+ if (index < source.length) {
181
+ raw += source[index];
182
+ advance();
183
+ }
184
+ continue;
185
+ }
186
+ raw += ch;
187
+ advance();
188
+ }
189
+ throw syntaxError('Unterminated string literal', startLine, startColumn);
190
+ }
191
+ while (index < source.length) {
192
+ const ch = source[index];
193
+ const start = index;
194
+ const startLine = line;
195
+ const startColumn = column;
196
+ if (ch === ' ' || ch === '\t' || ch === '\r') {
197
+ advance();
198
+ continue;
199
+ }
200
+ if (ch === '\n') {
201
+ // A blank line breaks a doc comment run.
202
+ if (pendingDoc && pendingDocLine !== startLine)
203
+ pendingDoc = undefined;
204
+ advance();
205
+ pushNewline(start, startLine, startColumn);
206
+ continue;
207
+ }
208
+ if (ch === '-' && source[index + 1] === '-') {
209
+ // Block comment: --[[ ... ]]
210
+ if (source[index + 2] === '[' && source[index + 3] === '[') {
211
+ pendingDoc = undefined;
212
+ advance(4);
213
+ while (index < source.length && !(source[index] === ']' && source[index + 1] === ']')) {
214
+ advance();
215
+ }
216
+ if (index >= source.length) {
217
+ throw syntaxError('Unterminated block comment', startLine, startColumn);
218
+ }
219
+ advance(2);
220
+ continue;
221
+ }
222
+ // Line comment, including doc comments (--- ...)
223
+ const isDoc = source[index + 2] === '-';
224
+ while (index < source.length && source[index] !== '\n')
225
+ advance();
226
+ if (isDoc) {
227
+ if (pendingDoc && pendingDocLine !== startLine - 1)
228
+ pendingDoc = undefined;
229
+ if (!pendingDoc)
230
+ pendingDoc = [];
231
+ pendingDoc.push(source.slice(start, index).replace(/^---\s?/, '').trimEnd());
232
+ pendingDocLine = startLine;
233
+ }
234
+ else {
235
+ pendingDoc = undefined;
236
+ }
237
+ continue;
238
+ }
239
+ if (ch === ';') {
240
+ advance();
241
+ push(token_1.TokenType.Semicolon, ';', start, startLine, startColumn);
242
+ continue;
243
+ }
244
+ if (ch === '"' || ch === "'") {
245
+ scanString(ch, false);
246
+ continue;
247
+ }
248
+ if (ch === 'f' && (source[index + 1] === '"' || source[index + 1] === "'")) {
249
+ advance();
250
+ scanString(source[index], true);
251
+ continue;
252
+ }
253
+ if (isDigit(ch) || (ch === '.' && isDigit(source[index + 1]))) {
254
+ scanNumber();
255
+ continue;
256
+ }
257
+ if (isIdentStart(ch)) {
258
+ while (isIdentPart(source[index]))
259
+ advance();
260
+ const value = source.slice(start, index);
261
+ push(KEYWORDS.has(value) ? token_1.TokenType.Keyword : token_1.TokenType.Identifier, value, start, startLine, startColumn);
262
+ continue;
263
+ }
264
+ const operator = OPERATORS.find((candidate) => source.startsWith(candidate, index));
265
+ if (operator) {
266
+ advance(operator.length);
267
+ push(token_1.TokenType.Operator, operator, start, startLine, startColumn);
268
+ continue;
269
+ }
270
+ throw syntaxError(`Unexpected character "${ch}"`, line, column);
271
+ }
272
+ tokens.push({
273
+ type: token_1.TokenType.EOF,
274
+ value: '',
275
+ line,
276
+ column,
277
+ start: index,
278
+ end: index,
279
+ });
280
+ return tokens;
281
+ }
282
+ //# sourceMappingURL=lexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexer.js","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Spak Lang - Recursive descent parser
3
+ *
4
+ * Produces an AST (`Program`) from Spak source. The grammar follows
5
+ * docs/syntax/spak-lang.md.
6
+ */
7
+ import type { Expr, Program } from './ast';
8
+ export declare function parse(source: string): Program;
9
+ /** Parses a single expression; mainly useful for tooling and f-string chunks. */
10
+ export declare function parseExpression(source: string): Expr;
11
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAYV,IAAI,EAmBJ,OAAO,EAoBR,MAAM,OAAO,CAAA;AAuqCd,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEpD"}