@stevenvo780/st-lang 0.3.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 (87) hide show
  1. package/LICENSE +21 -0
  2. package/bin/st +3 -0
  3. package/dist/api.d.ts +157 -0
  4. package/dist/api.d.ts.map +1 -0
  5. package/dist/api.js +232 -0
  6. package/dist/api.js.map +1 -0
  7. package/dist/ast/nodes.d.ts +97 -0
  8. package/dist/ast/nodes.d.ts.map +1 -0
  9. package/dist/ast/nodes.js +6 -0
  10. package/dist/ast/nodes.js.map +1 -0
  11. package/dist/cli/index.d.ts +2 -0
  12. package/dist/cli/index.d.ts.map +1 -0
  13. package/dist/cli/index.js +278 -0
  14. package/dist/cli/index.js.map +1 -0
  15. package/dist/index.d.ts +16 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +80 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/lexer/lexer.d.ts +25 -0
  20. package/dist/lexer/lexer.d.ts.map +1 -0
  21. package/dist/lexer/lexer.js +358 -0
  22. package/dist/lexer/lexer.js.map +1 -0
  23. package/dist/lexer/tokens.d.ts +56 -0
  24. package/dist/lexer/tokens.d.ts.map +1 -0
  25. package/dist/lexer/tokens.js +85 -0
  26. package/dist/lexer/tokens.js.map +1 -0
  27. package/dist/parser/parser.d.ts +46 -0
  28. package/dist/parser/parser.d.ts.map +1 -0
  29. package/dist/parser/parser.js +415 -0
  30. package/dist/parser/parser.js.map +1 -0
  31. package/dist/profiles/classical/first-order.d.ts +13 -0
  32. package/dist/profiles/classical/first-order.d.ts.map +1 -0
  33. package/dist/profiles/classical/first-order.js +67 -0
  34. package/dist/profiles/classical/first-order.js.map +1 -0
  35. package/dist/profiles/classical/propositional.d.ts +16 -0
  36. package/dist/profiles/classical/propositional.d.ts.map +1 -0
  37. package/dist/profiles/classical/propositional.js +597 -0
  38. package/dist/profiles/classical/propositional.js.map +1 -0
  39. package/dist/profiles/interface.d.ts +11 -0
  40. package/dist/profiles/interface.d.ts.map +1 -0
  41. package/dist/profiles/interface.js +26 -0
  42. package/dist/profiles/interface.js.map +1 -0
  43. package/dist/profiles/modal/k.d.ts +13 -0
  44. package/dist/profiles/modal/k.d.ts.map +1 -0
  45. package/dist/profiles/modal/k.js +39 -0
  46. package/dist/profiles/modal/k.js.map +1 -0
  47. package/dist/profiles/paraconsistent/belnap.d.ts +13 -0
  48. package/dist/profiles/paraconsistent/belnap.d.ts.map +1 -0
  49. package/dist/profiles/paraconsistent/belnap.js +39 -0
  50. package/dist/profiles/paraconsistent/belnap.js.map +1 -0
  51. package/dist/protocol/handler.d.ts +17 -0
  52. package/dist/protocol/handler.d.ts.map +1 -0
  53. package/dist/protocol/handler.js +219 -0
  54. package/dist/protocol/handler.js.map +1 -0
  55. package/dist/repl/repl.d.ts +12 -0
  56. package/dist/repl/repl.d.ts.map +1 -0
  57. package/dist/repl/repl.js +237 -0
  58. package/dist/repl/repl.js.map +1 -0
  59. package/dist/runtime/interpreter.d.ts +41 -0
  60. package/dist/runtime/interpreter.d.ts.map +1 -0
  61. package/dist/runtime/interpreter.js +355 -0
  62. package/dist/runtime/interpreter.js.map +1 -0
  63. package/dist/tests/cli.test.d.ts +2 -0
  64. package/dist/tests/cli.test.d.ts.map +1 -0
  65. package/dist/tests/cli.test.js +184 -0
  66. package/dist/tests/cli.test.js.map +1 -0
  67. package/dist/tests/core.test.d.ts +2 -0
  68. package/dist/tests/core.test.d.ts.map +1 -0
  69. package/dist/tests/core.test.js +220 -0
  70. package/dist/tests/core.test.js.map +1 -0
  71. package/dist/tests/parser.test.d.ts +2 -0
  72. package/dist/tests/parser.test.d.ts.map +1 -0
  73. package/dist/tests/parser.test.js +180 -0
  74. package/dist/tests/parser.test.js.map +1 -0
  75. package/dist/tests/runner.d.ts +6 -0
  76. package/dist/tests/runner.d.ts.map +1 -0
  77. package/dist/tests/runner.js +69 -0
  78. package/dist/tests/runner.js.map +1 -0
  79. package/dist/text-layer/compiler.d.ts +19 -0
  80. package/dist/text-layer/compiler.d.ts.map +1 -0
  81. package/dist/text-layer/compiler.js +151 -0
  82. package/dist/text-layer/compiler.js.map +1 -0
  83. package/dist/types/index.d.ts +178 -0
  84. package/dist/types/index.d.ts.map +1 -0
  85. package/dist/types/index.js +6 -0
  86. package/dist/types/index.js.map +1 -0
  87. package/package.json +79 -0
@@ -0,0 +1,358 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Lexer — Tokenizador
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Lexer = void 0;
7
+ const tokens_1 = require("./tokens");
8
+ class Lexer {
9
+ source;
10
+ tokens = [];
11
+ pos = 0;
12
+ line = 1;
13
+ column = 1;
14
+ file;
15
+ diagnostics = [];
16
+ constructor(source, file = '<stdin>') {
17
+ this.source = source;
18
+ this.file = file;
19
+ }
20
+ tokenize() {
21
+ this.tokens = [];
22
+ this.pos = 0;
23
+ this.line = 1;
24
+ this.column = 1;
25
+ while (this.pos < this.source.length) {
26
+ this.skipWhitespace();
27
+ if (this.pos >= this.source.length)
28
+ break;
29
+ const ch = this.source[this.pos];
30
+ // Comentarios
31
+ if (ch === '/' && this.peek(1) === '/') {
32
+ this.readLineComment();
33
+ continue;
34
+ }
35
+ // Newlines
36
+ if (ch === '\n') {
37
+ this.addToken(tokens_1.TokenType.NEWLINE, '\n');
38
+ this.pos++;
39
+ this.line++;
40
+ this.column = 1;
41
+ continue;
42
+ }
43
+ // Strings
44
+ if (ch === '"') {
45
+ this.readString();
46
+ continue;
47
+ }
48
+ // Números
49
+ if (this.isDigit(ch)) {
50
+ this.readNumber();
51
+ continue;
52
+ }
53
+ // Identificadores / Keywords
54
+ if (this.isAlpha(ch) || ch === '_') {
55
+ this.readIdentifier();
56
+ continue;
57
+ }
58
+ // Operadores y delimitadores
59
+ switch (ch) {
60
+ case '(':
61
+ this.addToken(tokens_1.TokenType.LPAREN, '(');
62
+ this.advance();
63
+ break;
64
+ case ')':
65
+ this.addToken(tokens_1.TokenType.RPAREN, ')');
66
+ this.advance();
67
+ break;
68
+ case '{':
69
+ this.addToken(tokens_1.TokenType.LBRACE, '{');
70
+ this.advance();
71
+ break;
72
+ case '}':
73
+ this.addToken(tokens_1.TokenType.RBRACE, '}');
74
+ this.advance();
75
+ break;
76
+ case '[':
77
+ if (this.peek(1) === '[') {
78
+ // Leer todo el contenido de [[ ... ]] como un solo token STRING
79
+ this.advance(); // skip first [
80
+ this.advance(); // skip second [
81
+ let anchorContent = '';
82
+ while (this.pos < this.source.length) {
83
+ if (this.source[this.pos] === ']' && this.peek(1) === ']') {
84
+ break;
85
+ }
86
+ anchorContent += this.source[this.pos];
87
+ this.advance();
88
+ }
89
+ this.addToken(tokens_1.TokenType.LBRACKET_DOUBLE, '[[');
90
+ this.tokens.push({
91
+ type: tokens_1.TokenType.STRING,
92
+ value: anchorContent,
93
+ line: this.line,
94
+ column: this.column,
95
+ });
96
+ if (this.pos < this.source.length && this.source[this.pos] === ']') {
97
+ this.advance(); // skip first ]
98
+ this.advance(); // skip second ]
99
+ }
100
+ this.addToken(tokens_1.TokenType.RBRACKET_DOUBLE, ']]');
101
+ }
102
+ else {
103
+ this.addToken(tokens_1.TokenType.LBRACKET, '[');
104
+ this.advance();
105
+ }
106
+ break;
107
+ case ']':
108
+ if (this.peek(1) === ']') {
109
+ this.addToken(tokens_1.TokenType.RBRACKET_DOUBLE, ']]');
110
+ this.advance();
111
+ this.advance();
112
+ }
113
+ else {
114
+ this.addToken(tokens_1.TokenType.RBRACKET, ']');
115
+ this.advance();
116
+ }
117
+ break;
118
+ case ',':
119
+ this.addToken(tokens_1.TokenType.COMMA, ',');
120
+ this.advance();
121
+ break;
122
+ case '#':
123
+ this.addToken(tokens_1.TokenType.HASH, '#');
124
+ this.advance();
125
+ break;
126
+ case '.':
127
+ this.addToken(tokens_1.TokenType.DOT, '.');
128
+ this.advance();
129
+ break;
130
+ case '&':
131
+ this.addToken(tokens_1.TokenType.AND, '&');
132
+ this.advance();
133
+ break;
134
+ case '|':
135
+ this.addToken(tokens_1.TokenType.OR, '|');
136
+ this.advance();
137
+ break;
138
+ case '!':
139
+ this.addToken(tokens_1.TokenType.NOT, '!');
140
+ this.advance();
141
+ break;
142
+ case '=':
143
+ this.addToken(tokens_1.TokenType.EQUALS, '=');
144
+ this.advance();
145
+ break;
146
+ case ':':
147
+ this.addToken(tokens_1.TokenType.COLON, ':');
148
+ this.advance();
149
+ break;
150
+ case '-':
151
+ if (this.peek(1) === '>') {
152
+ this.addToken(tokens_1.TokenType.ARROW, '->');
153
+ this.advance();
154
+ this.advance();
155
+ }
156
+ else {
157
+ this.diagnostics.push({
158
+ severity: 'error',
159
+ message: `Caracter inesperado: '${ch}'`,
160
+ file: this.file,
161
+ line: this.line,
162
+ column: this.column,
163
+ });
164
+ this.advance();
165
+ }
166
+ break;
167
+ case '<':
168
+ if (this.peek(1) === '-' && this.peek(2) === '>') {
169
+ this.addToken(tokens_1.TokenType.BICONDITIONAL, '<->');
170
+ this.advance();
171
+ this.advance();
172
+ this.advance();
173
+ }
174
+ else if (this.peek(1) === '-') {
175
+ this.addToken(tokens_1.TokenType.BACK_ARROW, '<-');
176
+ this.advance();
177
+ this.advance();
178
+ }
179
+ else {
180
+ this.diagnostics.push({
181
+ severity: 'error',
182
+ message: `Caracter inesperado: '${ch}'`,
183
+ file: this.file,
184
+ line: this.line,
185
+ column: this.column,
186
+ });
187
+ this.advance();
188
+ }
189
+ break;
190
+ default:
191
+ this.diagnostics.push({
192
+ severity: 'error',
193
+ message: `Caracter inesperado: '${ch}' (code: ${ch.charCodeAt(0)})`,
194
+ file: this.file,
195
+ line: this.line,
196
+ column: this.column,
197
+ });
198
+ this.advance();
199
+ }
200
+ }
201
+ this.addToken(tokens_1.TokenType.EOF, '');
202
+ return this.tokens;
203
+ }
204
+ addToken(type, value) {
205
+ this.tokens.push({
206
+ type,
207
+ value,
208
+ line: this.line,
209
+ column: this.column,
210
+ });
211
+ }
212
+ advance() {
213
+ this.pos++;
214
+ this.column++;
215
+ }
216
+ peek(offset = 0) {
217
+ const idx = this.pos + offset;
218
+ if (idx >= this.source.length)
219
+ return '\0';
220
+ return this.source[idx];
221
+ }
222
+ skipWhitespace() {
223
+ while (this.pos < this.source.length) {
224
+ const ch = this.source[this.pos];
225
+ if (ch === ' ' || ch === '\t' || ch === '\r') {
226
+ this.advance();
227
+ }
228
+ else {
229
+ break;
230
+ }
231
+ }
232
+ }
233
+ isDigit(ch) {
234
+ return ch >= '0' && ch <= '9';
235
+ }
236
+ isAlpha(ch) {
237
+ return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || ch === '_';
238
+ }
239
+ isAlphaNum(ch) {
240
+ return this.isAlpha(ch) || this.isDigit(ch);
241
+ }
242
+ readLineComment() {
243
+ const startCol = this.column;
244
+ let value = '';
245
+ this.pos += 2; // skip //
246
+ this.column += 2;
247
+ while (this.pos < this.source.length && this.source[this.pos] !== '\n') {
248
+ value += this.source[this.pos];
249
+ this.advance();
250
+ }
251
+ // no emitimos token de comentario, lo descartamos
252
+ }
253
+ readString() {
254
+ const startCol = this.column;
255
+ this.advance(); // skip opening "
256
+ let value = '';
257
+ while (this.pos < this.source.length && this.source[this.pos] !== '"') {
258
+ if (this.source[this.pos] === '\\') {
259
+ this.advance();
260
+ if (this.pos < this.source.length) {
261
+ const escaped = this.source[this.pos];
262
+ switch (escaped) {
263
+ case 'n':
264
+ value += '\n';
265
+ break;
266
+ case 't':
267
+ value += '\t';
268
+ break;
269
+ case '\\':
270
+ value += '\\';
271
+ break;
272
+ case '"':
273
+ value += '"';
274
+ break;
275
+ default: value += escaped;
276
+ }
277
+ this.advance();
278
+ }
279
+ }
280
+ else {
281
+ if (this.source[this.pos] === '\n') {
282
+ this.line++;
283
+ this.column = 0;
284
+ }
285
+ value += this.source[this.pos];
286
+ this.advance();
287
+ }
288
+ }
289
+ if (this.pos >= this.source.length) {
290
+ this.diagnostics.push({
291
+ severity: 'error',
292
+ message: 'String no terminado',
293
+ file: this.file,
294
+ line: this.line,
295
+ column: startCol,
296
+ });
297
+ }
298
+ else {
299
+ this.advance(); // skip closing "
300
+ }
301
+ this.tokens.push({
302
+ type: tokens_1.TokenType.STRING,
303
+ value,
304
+ line: this.line,
305
+ column: startCol,
306
+ });
307
+ }
308
+ readNumber() {
309
+ const startCol = this.column;
310
+ let value = '';
311
+ while (this.pos < this.source.length && this.isDigit(this.source[this.pos])) {
312
+ value += this.source[this.pos];
313
+ this.advance();
314
+ }
315
+ if (this.pos < this.source.length && this.source[this.pos] === '.') {
316
+ value += '.';
317
+ this.advance();
318
+ while (this.pos < this.source.length && this.isDigit(this.source[this.pos])) {
319
+ value += this.source[this.pos];
320
+ this.advance();
321
+ }
322
+ }
323
+ this.tokens.push({
324
+ type: tokens_1.TokenType.NUMBER,
325
+ value,
326
+ line: this.line,
327
+ column: startCol,
328
+ });
329
+ }
330
+ readIdentifier() {
331
+ const startCol = this.column;
332
+ let value = '';
333
+ while (this.pos < this.source.length && this.isAlphaNum(this.source[this.pos])) {
334
+ value += this.source[this.pos];
335
+ this.advance();
336
+ }
337
+ const lower = value.toLowerCase();
338
+ const kwType = tokens_1.KEYWORDS[lower];
339
+ if (kwType) {
340
+ this.tokens.push({
341
+ type: kwType,
342
+ value: lower,
343
+ line: this.line,
344
+ column: startCol,
345
+ });
346
+ }
347
+ else {
348
+ this.tokens.push({
349
+ type: tokens_1.TokenType.IDENTIFIER,
350
+ value,
351
+ line: this.line,
352
+ column: startCol,
353
+ });
354
+ }
355
+ }
356
+ }
357
+ exports.Lexer = Lexer;
358
+ //# sourceMappingURL=lexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexer.js","sourceRoot":"","sources":["../../src/lexer/lexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ export declare enum TokenType {
2
+ LOGIC = "LOGIC",
3
+ AXIOM = "AXIOM",
4
+ THEOREM = "THEOREM",
5
+ DERIVE = "DERIVE",
6
+ FROM = "FROM",
7
+ CHECK = "CHECK",
8
+ VALID = "VALID",
9
+ SATISFIABLE = "SATISFIABLE",
10
+ EQUIVALENT = "EQUIVALENT",
11
+ PROVE = "PROVE",
12
+ COUNTERMODEL = "COUNTERMODEL",
13
+ TRUTH_TABLE = "TRUTH_TABLE",
14
+ LET = "LET",
15
+ PASSAGE = "PASSAGE",
16
+ FORMALIZE = "FORMALIZE",
17
+ AS = "AS",
18
+ CLAIM = "CLAIM",
19
+ SUPPORT = "SUPPORT",
20
+ CONFIDENCE = "CONFIDENCE",
21
+ CONTEXT = "CONTEXT",
22
+ RENDER = "RENDER",
23
+ ARROW = "ARROW",// ->
24
+ AND = "AND",// &
25
+ OR = "OR",// |
26
+ NOT = "NOT",// !
27
+ BICONDITIONAL = "BICONDITIONAL",// <->
28
+ BACK_ARROW = "BACK_ARROW",// <-
29
+ EQUALS = "EQUALS",// =
30
+ LPAREN = "LPAREN",// (
31
+ RPAREN = "RPAREN",// )
32
+ LBRACE = "LBRACE",// {
33
+ RBRACE = "RBRACE",// }
34
+ LBRACKET_DOUBLE = "LBRACKET_DOUBLE",// [[
35
+ RBRACKET_DOUBLE = "RBRACKET_DOUBLE",// ]]
36
+ LBRACKET = "LBRACKET",// [
37
+ RBRACKET = "RBRACKET",// ]
38
+ IDENTIFIER = "IDENTIFIER",
39
+ STRING = "STRING",
40
+ NUMBER = "NUMBER",
41
+ COMMA = "COMMA",// ,
42
+ COLON = "COLON",// :
43
+ HASH = "HASH",// #
44
+ DOT = "DOT",// .
45
+ NEWLINE = "NEWLINE",
46
+ EOF = "EOF",
47
+ COMMENT = "COMMENT"
48
+ }
49
+ export interface Token {
50
+ type: TokenType;
51
+ value: string;
52
+ line: number;
53
+ column: number;
54
+ }
55
+ export declare const KEYWORDS: Record<string, TokenType>;
56
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/lexer/tokens.ts"],"names":[],"mappings":"AAIA,oBAAY,SAAS;IAEnB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;IACf,WAAW,gBAAgB;IAC3B,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,EAAE,OAAO;IACT,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,MAAM,WAAW;IAGjB,KAAK,UAAU,CAAY,KAAK;IAChC,GAAG,QAAQ,CAAgB,IAAI;IAC/B,EAAE,OAAO,CAAkB,IAAI;IAC/B,GAAG,QAAQ,CAAgB,IAAI;IAC/B,aAAa,kBAAkB,CAAE,MAAM;IACvC,UAAU,eAAe,CAAE,KAAK;IAChC,MAAM,WAAW,CAAU,IAAI;IAG/B,MAAM,WAAW,CAAU,IAAI;IAC/B,MAAM,WAAW,CAAU,IAAI;IAC/B,MAAM,WAAW,CAAU,IAAI;IAC/B,MAAM,WAAW,CAAU,IAAI;IAC/B,eAAe,oBAAoB,CAAE,KAAK;IAC1C,eAAe,oBAAoB,CAAE,KAAK;IAC1C,QAAQ,aAAa,CAAM,IAAI;IAC/B,QAAQ,aAAa,CAAM,IAAI;IAG/B,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,MAAM,WAAW;IAGjB,KAAK,UAAU,CAAY,IAAI;IAC/B,KAAK,UAAU,CAAY,IAAI;IAC/B,IAAI,SAAS,CAAc,IAAI;IAC/B,GAAG,QAAQ,CAAgB,IAAI;IAG/B,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAsB9C,CAAC"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Lexer — Tokens
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.KEYWORDS = exports.TokenType = void 0;
7
+ var TokenType;
8
+ (function (TokenType) {
9
+ // Keywords
10
+ TokenType["LOGIC"] = "LOGIC";
11
+ TokenType["AXIOM"] = "AXIOM";
12
+ TokenType["THEOREM"] = "THEOREM";
13
+ TokenType["DERIVE"] = "DERIVE";
14
+ TokenType["FROM"] = "FROM";
15
+ TokenType["CHECK"] = "CHECK";
16
+ TokenType["VALID"] = "VALID";
17
+ TokenType["SATISFIABLE"] = "SATISFIABLE";
18
+ TokenType["EQUIVALENT"] = "EQUIVALENT";
19
+ TokenType["PROVE"] = "PROVE";
20
+ TokenType["COUNTERMODEL"] = "COUNTERMODEL";
21
+ TokenType["TRUTH_TABLE"] = "TRUTH_TABLE";
22
+ TokenType["LET"] = "LET";
23
+ TokenType["PASSAGE"] = "PASSAGE";
24
+ TokenType["FORMALIZE"] = "FORMALIZE";
25
+ TokenType["AS"] = "AS";
26
+ TokenType["CLAIM"] = "CLAIM";
27
+ TokenType["SUPPORT"] = "SUPPORT";
28
+ TokenType["CONFIDENCE"] = "CONFIDENCE";
29
+ TokenType["CONTEXT"] = "CONTEXT";
30
+ TokenType["RENDER"] = "RENDER";
31
+ // Operators
32
+ TokenType["ARROW"] = "ARROW";
33
+ TokenType["AND"] = "AND";
34
+ TokenType["OR"] = "OR";
35
+ TokenType["NOT"] = "NOT";
36
+ TokenType["BICONDITIONAL"] = "BICONDITIONAL";
37
+ TokenType["BACK_ARROW"] = "BACK_ARROW";
38
+ TokenType["EQUALS"] = "EQUALS";
39
+ // Delimiters
40
+ TokenType["LPAREN"] = "LPAREN";
41
+ TokenType["RPAREN"] = "RPAREN";
42
+ TokenType["LBRACE"] = "LBRACE";
43
+ TokenType["RBRACE"] = "RBRACE";
44
+ TokenType["LBRACKET_DOUBLE"] = "LBRACKET_DOUBLE";
45
+ TokenType["RBRACKET_DOUBLE"] = "RBRACKET_DOUBLE";
46
+ TokenType["LBRACKET"] = "LBRACKET";
47
+ TokenType["RBRACKET"] = "RBRACKET";
48
+ // Literals
49
+ TokenType["IDENTIFIER"] = "IDENTIFIER";
50
+ TokenType["STRING"] = "STRING";
51
+ TokenType["NUMBER"] = "NUMBER";
52
+ // Punctuation
53
+ TokenType["COMMA"] = "COMMA";
54
+ TokenType["COLON"] = "COLON";
55
+ TokenType["HASH"] = "HASH";
56
+ TokenType["DOT"] = "DOT";
57
+ // Special
58
+ TokenType["NEWLINE"] = "NEWLINE";
59
+ TokenType["EOF"] = "EOF";
60
+ TokenType["COMMENT"] = "COMMENT";
61
+ })(TokenType || (exports.TokenType = TokenType = {}));
62
+ exports.KEYWORDS = {
63
+ 'logic': TokenType.LOGIC,
64
+ 'axiom': TokenType.AXIOM,
65
+ 'theorem': TokenType.THEOREM,
66
+ 'derive': TokenType.DERIVE,
67
+ 'from': TokenType.FROM,
68
+ 'check': TokenType.CHECK,
69
+ 'valid': TokenType.VALID,
70
+ 'satisfiable': TokenType.SATISFIABLE,
71
+ 'equivalent': TokenType.EQUIVALENT,
72
+ 'prove': TokenType.PROVE,
73
+ 'countermodel': TokenType.COUNTERMODEL,
74
+ 'truth_table': TokenType.TRUTH_TABLE,
75
+ 'let': TokenType.LET,
76
+ 'passage': TokenType.PASSAGE,
77
+ 'formalize': TokenType.FORMALIZE,
78
+ 'as': TokenType.AS,
79
+ 'claim': TokenType.CLAIM,
80
+ 'support': TokenType.SUPPORT,
81
+ 'confidence': TokenType.CONFIDENCE,
82
+ 'context': TokenType.CONTEXT,
83
+ 'render': TokenType.RENDER,
84
+ };
85
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/lexer/tokens.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,oBAAoB;AACpB,+DAA+D;;;AAE/D,IAAY,SA0DX;AA1DD,WAAY,SAAS;IACnB,WAAW;IACX,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,gCAAmB,CAAA;IACnB,8BAAiB,CAAA;IACjB,0BAAa,CAAA;IACb,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,wCAA2B,CAAA;IAC3B,sCAAyB,CAAA;IACzB,4BAAe,CAAA;IACf,0CAA6B,CAAA;IAC7B,wCAA2B,CAAA;IAC3B,wBAAW,CAAA;IACX,gCAAmB,CAAA;IACnB,oCAAuB,CAAA;IACvB,sBAAS,CAAA;IACT,4BAAe,CAAA;IACf,gCAAmB,CAAA;IACnB,sCAAyB,CAAA;IACzB,gCAAmB,CAAA;IACnB,8BAAiB,CAAA;IAEjB,YAAY;IACZ,4BAAe,CAAA;IACf,wBAAW,CAAA;IACX,sBAAS,CAAA;IACT,wBAAW,CAAA;IACX,4CAA+B,CAAA;IAC/B,sCAAyB,CAAA;IACzB,8BAAiB,CAAA;IAEjB,aAAa;IACb,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,gDAAmC,CAAA;IACnC,gDAAmC,CAAA;IACnC,kCAAqB,CAAA;IACrB,kCAAqB,CAAA;IAErB,WAAW;IACX,sCAAyB,CAAA;IACzB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IAEjB,cAAc;IACd,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,wBAAW,CAAA;IAEX,UAAU;IACV,gCAAmB,CAAA;IACnB,wBAAW,CAAA;IACX,gCAAmB,CAAA;AACrB,CAAC,EA1DW,SAAS,yBAAT,SAAS,QA0DpB;AASY,QAAA,QAAQ,GAA8B;IACjD,OAAO,EAAE,SAAS,CAAC,KAAK;IACxB,OAAO,EAAE,SAAS,CAAC,KAAK;IACxB,SAAS,EAAE,SAAS,CAAC,OAAO;IAC5B,QAAQ,EAAE,SAAS,CAAC,MAAM;IAC1B,MAAM,EAAE,SAAS,CAAC,IAAI;IACtB,OAAO,EAAE,SAAS,CAAC,KAAK;IACxB,OAAO,EAAE,SAAS,CAAC,KAAK;IACxB,aAAa,EAAE,SAAS,CAAC,WAAW;IACpC,YAAY,EAAE,SAAS,CAAC,UAAU;IAClC,OAAO,EAAE,SAAS,CAAC,KAAK;IACxB,cAAc,EAAE,SAAS,CAAC,YAAY;IACtC,aAAa,EAAE,SAAS,CAAC,WAAW;IACpC,KAAK,EAAE,SAAS,CAAC,GAAG;IACpB,SAAS,EAAE,SAAS,CAAC,OAAO;IAC5B,WAAW,EAAE,SAAS,CAAC,SAAS;IAChC,IAAI,EAAE,SAAS,CAAC,EAAE;IAClB,OAAO,EAAE,SAAS,CAAC,KAAK;IACxB,SAAS,EAAE,SAAS,CAAC,OAAO;IAC5B,YAAY,EAAE,SAAS,CAAC,UAAU;IAClC,SAAS,EAAE,SAAS,CAAC,OAAO;IAC5B,QAAQ,EAAE,SAAS,CAAC,MAAM;CAC3B,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { Diagnostic } from '../types';
2
+ import { Program } from '../ast/nodes';
3
+ export declare class Parser {
4
+ private tokens;
5
+ private pos;
6
+ private file;
7
+ diagnostics: Diagnostic[];
8
+ constructor(file?: string);
9
+ parse(source: string): Program;
10
+ private parseStatement;
11
+ private parseLogicDecl;
12
+ private parseAxiomDecl;
13
+ private parseTheoremDecl;
14
+ private parseDeriveCmd;
15
+ private parseCheckCmd;
16
+ private parseProveCmd;
17
+ private parseCountermodelCmd;
18
+ private parseTruthTableCmd;
19
+ private parseLetDecl;
20
+ private parseClaimDecl;
21
+ private parseSupportDecl;
22
+ private parseConfidenceDecl;
23
+ private parseContextDecl;
24
+ private parseRenderCmd;
25
+ private parseFormula;
26
+ private parseBiconditional;
27
+ private parseImplication;
28
+ private parseDisjunction;
29
+ private parseConjunction;
30
+ private parseUnary;
31
+ private parseAtom;
32
+ private parseIdList;
33
+ private formulaToString;
34
+ private current;
35
+ private advance;
36
+ private isAtEnd;
37
+ private checkType;
38
+ private match;
39
+ private expect;
40
+ private expectOneOf;
41
+ private expectIdent;
42
+ private loc;
43
+ private skipNewlines;
44
+ private advanceToNextStatement;
45
+ }
46
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAMA,OAAO,EAAW,UAAU,EAAkB,MAAM,UAAU,CAAC;AAC/D,OAAO,EACL,OAAO,EAKR,MAAM,cAAc,CAAC;AAEtB,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,IAAI,CAAS;IACd,WAAW,EAAE,UAAU,EAAE,CAAM;gBAE1B,IAAI,GAAE,MAAkB;IAIpC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAkC9B,OAAO,CAAC,cAAc;IA2CtB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,YAAY;IAqCpB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,SAAS;IAuBjB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,GAAG;IAKX,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,sBAAsB;CAM/B"}