@ascent-lang/dev 0.4.0 → 0.5.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.
- package/dist/errors/index.js +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/interpreter.d.ts +2 -2
- package/dist/interpreter.d.ts.map +1 -1
- package/dist/interpreter.js +12 -0
- package/dist/interpreter.js.map +1 -1
- package/dist/lexer/index.d.ts.map +1 -1
- package/dist/lexer/index.js +4 -1
- package/dist/lexer/index.js.map +1 -1
- package/dist/lexer/token.d.ts +1 -1
- package/dist/lexer/token.d.ts.map +1 -1
- package/dist/lib.d.ts +2 -0
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js.map +1 -1
- package/dist/parser/ast.d.ts +3 -3
- package/dist/parser/ast.d.ts.map +1 -1
- package/dist/parser/expr.d.ts.map +1 -1
- package/dist/parser/expr.js +21 -4
- package/dist/parser/expr.js.map +1 -1
- package/dist/parser/type-expr.d.ts +2 -2
- package/dist/parser/type-expr.d.ts.map +1 -1
- package/dist/parser/typechecker.d.ts +18 -2
- package/dist/parser/typechecker.d.ts.map +1 -1
- package/dist/parser/typechecker.js +21 -4
- package/dist/parser/typechecker.js.map +1 -1
- package/dist/parser/typed-ast.d.ts +2 -2
- package/dist/parser/typed-ast.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/errors/index.ts +1 -1
- package/src/errors/typechecker.yml +3 -2
- package/src/index.ts +5 -4
- package/src/interpreter.ts +16 -3
- package/src/lexer/index.ts +3 -1
- package/src/lexer/token.ts +1 -0
- package/src/lib.ts +2 -0
- package/src/parser/ast.ts +3 -3
- package/src/parser/expr.ts +22 -5
- package/src/parser/type-expr.ts +3 -3
- package/src/parser/typechecker.ts +23 -4
- package/src/parser/typed-ast.ts +2 -2
package/dist/errors/index.js
CHANGED
|
@@ -322,7 +322,7 @@ export const ERRORS = [
|
|
|
322
322
|
"category": "type",
|
|
323
323
|
"summary": "An operator was used on types it doesn't accept.",
|
|
324
324
|
"message": "I can't use '{op}' on {operands}.",
|
|
325
|
-
"explanation": "Operators only work on certain types: '+', '-', '*', and '
|
|
325
|
+
"explanation": "Operators only work on certain types: '+', '-', '*', '/', and '**' need numbers (Int or Float); 'div' and 'mod' need whole numbers (Int); 'and', 'or', and 'not' need True/False values (Bool); and a comparison needs two values of the same kind. '{op}' doesn't work on {operands}."
|
|
326
326
|
},
|
|
327
327
|
{
|
|
328
328
|
"code": "T0010",
|
package/dist/errors/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { readFile } from 'node:fs/promises';
|
|
|
4
4
|
import chalk from 'chalk';
|
|
5
5
|
import { Lexer } from './lexer/index.js';
|
|
6
6
|
import { parse, parseTokens } from './parser/index.js';
|
|
7
|
-
import { typecheck } from './parser/typechecker.js';
|
|
7
|
+
import { typecheck, TypeEnv } from './parser/typechecker.js';
|
|
8
8
|
import { formatValue } from './parser/printer.js';
|
|
9
9
|
import { formatTypedStmt } from './parser/typed-printer.js';
|
|
10
10
|
import { executeStmt, executeProgram, Environment, ProgramInputs } from './interpreter.js';
|
|
@@ -115,6 +115,7 @@ const runRepl = async () => {
|
|
|
115
115
|
process.stdout.write(chalk.bold.green('Ascent') + ' REPL\n');
|
|
116
116
|
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
117
117
|
const env = new Environment();
|
|
118
|
+
const typeEnv = new TypeEnv();
|
|
118
119
|
try {
|
|
119
120
|
while (true) {
|
|
120
121
|
const line = await rl.question(PROMPT);
|
|
@@ -146,7 +147,7 @@ const runRepl = async () => {
|
|
|
146
147
|
}
|
|
147
148
|
}
|
|
148
149
|
else if (parseResult.program !== null) {
|
|
149
|
-
const typeResult = typecheck(parseResult.program);
|
|
150
|
+
const typeResult = typecheck(parseResult.program, typeEnv);
|
|
150
151
|
const typeErrors = typeResult.errorMarkers;
|
|
151
152
|
if (typeErrors.length > 0) {
|
|
152
153
|
for (const marker of typeErrors) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/interpreter.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ProgramArg } from './parser/ast.js';
|
|
2
2
|
import type { TypedExpr, TypedStatement, TypedProgram } from './parser/typed-ast.js';
|
|
3
3
|
export type PrimitiveValue = ({
|
|
4
4
|
type: 'Int';
|
|
@@ -36,7 +36,7 @@ export declare const executeStmt: (stmt: TypedStatement, env: Environment) => Ru
|
|
|
36
36
|
export declare class ProgramInputs {
|
|
37
37
|
private readonly argDefs;
|
|
38
38
|
private readonly values;
|
|
39
|
-
constructor(argDefs:
|
|
39
|
+
constructor(argDefs: ProgramArg[]);
|
|
40
40
|
set(name: string, value: PrimitiveValue): this;
|
|
41
41
|
get(name: string): PrimitiveValue | undefined;
|
|
42
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../src/interpreter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,
|
|
1
|
+
{"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../src/interpreter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAc,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGjG,MAAM,MAAM,cAAc,GAAG,CACzB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACpC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CACvB,cAAc,GACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CACnB,CAAC;AAIF,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,WAAW,GAAG,YAAY,CAAC;AAO7D,qBAAa,WAAW;IAGH,OAAO,CAAC,QAAQ,CAAC,MAAM;IAF1C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA8B;gBAEf,MAAM,GAAE,WAAW,GAAG,IAAW;IAE9D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI3C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IASlE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,YAAY;IAUvD,KAAK,IAAI,WAAW;CAG5B;AAYD,eAAO,MAAM,YAAY,GAAI,MAAM,SAAS,EAAE,KAAK,WAAW,KAAG,YA0FhE,CAAC;AAWF,eAAO,MAAM,WAAW,GAAI,MAAM,cAAc,EAAE,KAAK,WAAW,KAAG,YA8BpE,CAAC;AAmKF,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;gBAEzC,OAAO,EAAE,UAAU,EAAE;IAIjC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI;IAY9C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;CAGrD;AAID,eAAO,MAAM,cAAc,GACzB,SAAS,YAAY,EACrB,SAAQ,aAA+C,KACtD,YAaF,CAAC"}
|
package/dist/interpreter.js
CHANGED
|
@@ -307,6 +307,18 @@ const evaluateBinary = (op, left, right) => {
|
|
|
307
307
|
throw new Error('division by zero');
|
|
308
308
|
return { type: 'Float', value: asFloat(left) / divisor };
|
|
309
309
|
}
|
|
310
|
+
if (op === '**') {
|
|
311
|
+
if (left.type === 'Int' && right.type === 'Int') {
|
|
312
|
+
// The result type is fixed at Int ** Int -> Int regardless of the
|
|
313
|
+
// exponent's runtime sign (§5), so a negative exponent — which would
|
|
314
|
+
// need a fractional result — can't be silently truncated; it crashes.
|
|
315
|
+
if (right.value < 0n) {
|
|
316
|
+
throw new Error('negative exponent on Int ** Int — use a Float base instead, e.g. 2.0 ** -1');
|
|
317
|
+
}
|
|
318
|
+
return { type: 'Int', value: left.value ** right.value };
|
|
319
|
+
}
|
|
320
|
+
return { type: 'Float', value: Math.pow(asFloat(left), asFloat(right)) };
|
|
321
|
+
}
|
|
310
322
|
if (left.type === 'Int' && right.type === 'Int') {
|
|
311
323
|
const v = op === '+' ? left.value + right.value
|
|
312
324
|
: op === '-' ? left.value - right.value
|
package/dist/interpreter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../src/interpreter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../src/interpreter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lexer/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,MAAM,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAa,MAAM,YAAY,CAAC;AAKnD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,CAAC,CAAS;IAClB,OAAO,CAAC,YAAY,CAAgB;gBAEjB,GAAG,EAAE,MAAM;IAI9B,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,UAAU;IAuBlB,OAAO,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lexer/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,MAAM,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAa,MAAM,YAAY,CAAC;AAKnD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,CAAC,CAAS;IAClB,OAAO,CAAC,YAAY,CAAgB;gBAEjB,GAAG,EAAE,MAAM;IAI9B,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,UAAU;IAuBlB,OAAO,CAAC,SAAS;IAkEV,QAAQ,IAAI,SAAS;CAW7B"}
|
package/dist/lexer/index.js
CHANGED
|
@@ -115,7 +115,10 @@ export class Lexer {
|
|
|
115
115
|
switch (ch) {
|
|
116
116
|
case '+': return this.token('PLUS', start);
|
|
117
117
|
case '-': return this.token('MINUS', start);
|
|
118
|
-
case '*':
|
|
118
|
+
case '*':
|
|
119
|
+
if (this.c.match('*'))
|
|
120
|
+
return this.token('STAR_STAR', start);
|
|
121
|
+
return this.token('STAR', start);
|
|
119
122
|
case '/': return this.token('SLASH', start);
|
|
120
123
|
case '=':
|
|
121
124
|
if (this.c.match('='))
|
package/dist/lexer/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lexer/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lexer/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lexer/token.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type TokenKind = 'INT_LIT' | 'FLOAT_LIT' | 'STR_LIT' | 'BOOL_LIT' | 'NONE_LIT' | 'DONE_LIT' | 'SLOT' | 'PLUS' | 'MINUS' | 'STAR' | 'SLASH' | 'KW_DIV' | 'KW_MOD' | 'KW_AND' | 'KW_OR' | 'KW_NOT' | 'KW_FIX' | 'KW_MUT' | 'KW_IF' | 'KW_ELSE' | 'KW_WHILE' | 'KW_ARGS' | 'TYPE_NAME' | 'COLON' | 'EQUALS' | 'EQ_EQ' | 'BANG_EQ' | 'LT' | 'LT_EQ' | 'GT' | 'GT_EQ' | 'DOT' | 'COMMA' | 'SEMICOLON' | 'LPAREN' | 'RPAREN' | 'LBRACE' | 'RBRACE' | 'LBRACKET' | 'RBRACKET' | 'ERROR' | 'EOF';
|
|
1
|
+
export type TokenKind = 'INT_LIT' | 'FLOAT_LIT' | 'STR_LIT' | 'BOOL_LIT' | 'NONE_LIT' | 'DONE_LIT' | 'SLOT' | 'PLUS' | 'MINUS' | 'STAR' | 'STAR_STAR' | 'SLASH' | 'KW_DIV' | 'KW_MOD' | 'KW_AND' | 'KW_OR' | 'KW_NOT' | 'KW_FIX' | 'KW_MUT' | 'KW_IF' | 'KW_ELSE' | 'KW_WHILE' | 'KW_ARGS' | 'TYPE_NAME' | 'COLON' | 'EQUALS' | 'EQ_EQ' | 'BANG_EQ' | 'LT' | 'LT_EQ' | 'GT' | 'GT_EQ' | 'DOT' | 'COMMA' | 'SEMICOLON' | 'LPAREN' | 'RPAREN' | 'LBRACE' | 'RBRACE' | 'LBRACKET' | 'RBRACKET' | 'ERROR' | 'EOF';
|
|
2
2
|
export interface Position {
|
|
3
3
|
offset: number;
|
|
4
4
|
line: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/lexer/token.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,WAAW,GACX,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,SAAS,GACT,UAAU,GACV,SAAS,GACT,WAAW,GACX,OAAO,GACP,QAAQ,GACR,OAAO,GACP,SAAS,GACT,IAAI,GACJ,OAAO,GACP,IAAI,GACJ,OAAO,GACP,KAAK,GACL,OAAO,GACP,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,UAAU,GACV,OAAO,GACP,KAAK,CAAC;AAEV,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,EAAE,QAAQ,CAAC;CACf;AAMD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAK1B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;CACZ"}
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/lexer/token.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,WAAW,GACX,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,GACN,WAAW,GACX,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,SAAS,GACT,UAAU,GACV,SAAS,GACT,WAAW,GACX,OAAO,GACP,QAAQ,GACR,OAAO,GACP,SAAS,GACT,IAAI,GACJ,OAAO,GACP,IAAI,GACJ,OAAO,GACP,KAAK,GACL,OAAO,GACP,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,UAAU,GACV,OAAO,GACP,KAAK,CAAC;AAEV,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,EAAE,QAAQ,CAAC;CACf;AAMD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAK1B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;CACZ"}
|
package/dist/lib.d.ts
CHANGED
|
@@ -2,8 +2,10 @@ export { Lexer } from './lexer/index.js';
|
|
|
2
2
|
export type { LexResult } from './lexer/index.js';
|
|
3
3
|
export { parse, parseTokens } from './parser/index.js';
|
|
4
4
|
export type { ParseResult } from './parser/index.js';
|
|
5
|
+
export type { Program, ProgramArg } from './parser/ast.js';
|
|
5
6
|
export { typecheck } from './parser/typechecker.js';
|
|
6
7
|
export type { TypedResult } from './parser/typechecker.js';
|
|
8
|
+
export type { TypedProgram } from './parser/typed-ast.js';
|
|
7
9
|
export { Environment, evaluateExpr, executeStmt, executeProgram, ProgramInputs, } from './interpreter.js';
|
|
8
10
|
export type { RuntimeValue, AssignResult, PrimitiveValue } from './interpreter.js';
|
|
9
11
|
export { formatExpr, formatStmt, formatValue, valueToString } from './parser/printer.js';
|
package/dist/lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EACL,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,wEAAwE;AACxE,8DAA8D;AAC9D,EAAE;AACF,kDAAkD;AAClD,mGAAmG;AACnG,qDAAqD;AACrD,EAAE;AACF,iEAAiE;AACjE,0DAA0D;AAC1D,EAAE;AACF,gEAAgE;AAChE,6CAA6C;AAC7C,2DAA2D;AAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGzC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,wEAAwE;AACxE,8DAA8D;AAC9D,EAAE;AACF,kDAAkD;AAClD,mGAAmG;AACnG,qDAAqD;AACrD,EAAE;AACF,iEAAiE;AACjE,0DAA0D;AAC1D,EAAE;AACF,gEAAgE;AAChE,6CAA6C;AAC7C,2DAA2D;AAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGzC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIvD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIpD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,GACd,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/parser/ast.d.ts
CHANGED
|
@@ -40,7 +40,7 @@ export type Literal = ({
|
|
|
40
40
|
span: Span;
|
|
41
41
|
});
|
|
42
42
|
export type UnaryOp = '-' | 'not';
|
|
43
|
-
export type ArithmeticOp = '+' | '-' | '*' | '/' | 'div' | 'mod';
|
|
43
|
+
export type ArithmeticOp = '+' | '-' | '*' | '/' | 'div' | 'mod' | '**';
|
|
44
44
|
export type ComparisonOp = '==' | '!=' | '<' | '<=' | '>' | '>=';
|
|
45
45
|
export type BooleanOp = 'and' | 'or';
|
|
46
46
|
export type BinaryOp = ArithmeticOp | ComparisonOp | BooleanOp;
|
|
@@ -121,12 +121,12 @@ export type Statement = ({
|
|
|
121
121
|
span: Span;
|
|
122
122
|
});
|
|
123
123
|
export type ArgType = 'Int' | 'Float' | 'Bool' | 'String';
|
|
124
|
-
export type
|
|
124
|
+
export type ProgramArg = {
|
|
125
125
|
name: string;
|
|
126
126
|
type: ArgType;
|
|
127
127
|
};
|
|
128
128
|
export type Program = {
|
|
129
|
-
args:
|
|
129
|
+
args: ProgramArg[];
|
|
130
130
|
stmts: Statement[];
|
|
131
131
|
};
|
|
132
132
|
//# sourceMappingURL=ast.d.ts.map
|
package/dist/parser/ast.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/parser/ast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAI9C,MAAM,MAAM,QAAQ,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AACnG,MAAM,MAAM,QAAQ,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AACxE,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3C,MAAM,MAAM,OAAO,GAAG,CAClB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CACrD,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;AAClC,MAAM,MAAM,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/parser/ast.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr.d.ts","sourceRoot":"","sources":["../../src/parser/expr.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAqB,MAAM,UAAU,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"expr.d.ts","sourceRoot":"","sources":["../../src/parser/expr.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAqB,MAAM,UAAU,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAoGrD,wBAAgB,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,SAAI,GAAG,IAAI,GAAG,IAAI,CAmEjE"}
|
package/dist/parser/expr.js
CHANGED
|
@@ -16,13 +16,23 @@ import { parseBlock, parseIf } from './stmt.js';
|
|
|
16
16
|
// threshold passed down on each recursive call.
|
|
17
17
|
//
|
|
18
18
|
// This ladder is the single source of truth for what binds tighter
|
|
19
|
-
// than what: postfix (`.method()`, `[index]`)
|
|
20
|
-
// unary '-',
|
|
21
|
-
//
|
|
19
|
+
// than what: postfix (`.method()`, `[index]`) and '**' bind tightest
|
|
20
|
+
// (tighter even than unary '-', per §5 of design.md — `-2 ** 2` is
|
|
21
|
+
// `-(2 ** 2)`), then unary '-', then '*'/'/'/'div'/'mod', then '+'/'-',
|
|
22
|
+
// then the comparisons, then 'not', then 'and', then 'or', loosest —
|
|
22
23
|
// the word operators sit below the comparisons (§5 of design.md), so
|
|
23
24
|
// `a == b and c == d` groups as `(a == b) and (c == d)`, never
|
|
24
25
|
// `a == (b and c) == d`. Every table below is keyed off these numbers
|
|
25
26
|
// instead of inlining its own.
|
|
27
|
+
//
|
|
28
|
+
// EXPONENT shares POSTFIX's tier rather than sitting strictly above it.
|
|
29
|
+
// '**' is right-associative, so its right operand is parsed with
|
|
30
|
+
// `minBp = infix.bp` (not `+ 1`, see the loop below) — if EXPONENT
|
|
31
|
+
// outbid POSTFIX, that recursive parse would stop *before* absorbing a
|
|
32
|
+
// trailing postfix chain (`2 ** a.b()` would parse `a` alone, leaving
|
|
33
|
+
// `.b()` to wrongly attach to the whole `2 ** a` once control returned
|
|
34
|
+
// to the caller). Equal tiers let the right-hand parse swallow both a
|
|
35
|
+
// further '**' and any postfix chain in one pass.
|
|
26
36
|
const BP = {
|
|
27
37
|
OR: 1,
|
|
28
38
|
AND: 2,
|
|
@@ -32,6 +42,7 @@ const BP = {
|
|
|
32
42
|
MULTIPLICATIVE: 6,
|
|
33
43
|
UNARY: 7,
|
|
34
44
|
POSTFIX: 7,
|
|
45
|
+
EXPONENT: 7,
|
|
35
46
|
};
|
|
36
47
|
// Every binary operator this parser knows about has one row in this
|
|
37
48
|
// table. Adding the next one means adding a row, never touching the
|
|
@@ -59,6 +70,8 @@ const INFIX_OPS = {
|
|
|
59
70
|
SLASH: { op: '/', bp: BP.MULTIPLICATIVE, assoc: 'left' },
|
|
60
71
|
KW_DIV: { op: 'div', bp: BP.MULTIPLICATIVE, assoc: 'left' },
|
|
61
72
|
KW_MOD: { op: 'mod', bp: BP.MULTIPLICATIVE, assoc: 'left' },
|
|
73
|
+
// Right-associative — `2 ** 3 ** 2` groups as `2 ** (3 ** 2)` (§5).
|
|
74
|
+
STAR_STAR: { op: '**', bp: BP.EXPONENT, assoc: 'right' },
|
|
62
75
|
};
|
|
63
76
|
// Postfix table — dot-calls and indexing are "led" operators exactly
|
|
64
77
|
// like the binary ones above (they look left at the value already
|
|
@@ -122,7 +135,11 @@ export function parseExpr(ts, minBp = 0) {
|
|
|
122
135
|
// operators reuse the same `bp + 1` call — it still keeps looser
|
|
123
136
|
// operators out of the right operand, and the `chained` check
|
|
124
137
|
// above is what stops them from reappearing at this level.
|
|
125
|
-
|
|
138
|
+
// Right-associative operators ('**') do the opposite: reusing the
|
|
139
|
+
// same `bp` (not `+ 1`) lets a second '**' at this level be
|
|
140
|
+
// absorbed into the right operand instead of returned to this loop,
|
|
141
|
+
// which is what makes `2 ** 3 ** 2` group as `2 ** (3 ** 2)`.
|
|
142
|
+
const right = parseExpr(ts, infix.assoc === 'right' ? infix.bp : infix.bp + 1);
|
|
126
143
|
if (right === null) {
|
|
127
144
|
return null;
|
|
128
145
|
}
|
package/dist/parser/expr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr.js","sourceRoot":"","sources":["../../src/parser/expr.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEhD,0EAA0E;AAC1E,EAAE;AACF,qEAAqE;AACrE,qEAAqE;AACrE,oEAAoE;AACpE,qEAAqE;AACrE,4BAA4B;AAC5B,EAAE;AACF,sEAAsE;AACtE,gEAAgE;AAChE,iEAAiE;AACjE,sEAAsE;AACtE,mEAAmE;AACnE,gEAAgE;AAChE,gDAAgD;AAChD,EAAE;AACF,mEAAmE;AACnE,mEAAmE;AACnE,8DAA8D;AAC9D,4DAA4D;AAC5D,qEAAqE;AACrE,+DAA+D;AAC/D,sEAAsE;AACtE,+BAA+B;AAC/B,MAAM,EAAE,GAAG;IACT,EAAE,EAAE,CAAC;IACL,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,CAAC;IACX,cAAc,EAAE,CAAC;IACjB,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;CACF,CAAC;AAEX,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,+DAA+D;AAC/D,oEAAoE;AACpE,4DAA4D;AAC5D,wEAAwE;AACxE,kEAAkE;AAClE,kEAAkE;AAClE,mBAAmB;AACnB,MAAM,SAAS,GAAqF;IAClG,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;IAC7C,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;IAChD,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;IACrD,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;IACvD,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;IACjD,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;IACrD,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;IACjD,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;IACrD,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;IACjD,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;IAClD,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE;IACvD,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE;IACxD,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE;IAC3D,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE;CAC5D,CAAC;AAEF,qEAAqE;AACrE,kEAAkE;AAClE,kEAAkE;AAClE,sEAAsE;AACtE,qEAAqE;AACrE,oDAAoD;AACpD,MAAM,WAAW,GAA+C;IAC9D,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE;IACvB,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE;CAC7B,CAAC;AAEF,sEAAsE;AACtE,sEAAsE;AACtE,wEAAwE;AACxE,wEAAwE;AACxE,mEAAmE;AACnE,MAAM,UAAU,GAA4D;IAC1E,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE;IAChC,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE;CAClC,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,EAAe,EAAE,KAAK,GAAG,CAAC;IAClD,IAAI,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IACzB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kEAAkE;IAClE,qEAAqE;IACrE,qEAAqE;IACrE,kEAAkE;IAClE,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC;QAE5B,kEAAkE;QAClE,iEAAiE;QACjE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,OAAO,CAAC,EAAE,GAAG,KAAK;gBAAE,MAAM;YAC9B,IAAI,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACzE,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC/B,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;YAC5C,MAAM;QACR,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC3B,IAAI,OAAO,EAAE,CAAC;gBACZ,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;gBACnC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,uBAAuB;QAErC,gEAAgE;QAChE,+DAA+D;QAC/D,iEAAiE;QACjE,8DAA8D;QAC9D,iEAAiE;QACjE,iEAAiE;QACjE,8DAA8D;QAC9D,2DAA2D;QAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,GAAG;YACL,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI;YACJ,KAAK;YACL,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;SACtD,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,sEAAsE;AACtE,wDAAwD;AACxD,SAAS,eAAe,CAAC,EAAe,EAAE,QAAc;IACtD,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,cAAc;IAE5B,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC9B,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,sBAAsB;IAEpC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChC,yEAAyE;QACzE,mDAAmD;QACnD,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,cAAc;IAE9C,MAAM,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACzG,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEjC,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,QAAQ;QACR,MAAM,EAAE,SAAS,CAAC,KAAK;QACvB,IAAI,EAAE,MAAM,CAAC,KAAK;QAClB,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;KACjE,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,SAAS,UAAU,CAAC,EAAe,EAAE,IAAU;IAC7C,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,cAAc;IAEhD,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAC5B,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7F,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEnC,OAAO;QACL,IAAI,EAAE,OAAO;QACb,IAAI;QACJ,KAAK;QACL,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE;KACzD,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,wEAAwE;AACxE,qEAAqE;AACrE,kEAAkE;AAClE,SAAS,SAAS,CAAC,EAAe;IAChC,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAEtB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3B,EAAE,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;YACxB,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC7B,EAAE,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;YAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3B,EAAE,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IACpF,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC5B,EAAE,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,MAAM;YACjB,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,MAAM;YAC3B,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC5B,EAAE,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IAChE,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC5B,EAAE,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IAChE,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,EAAE,CAAC,OAAO,EAAE,CAAC;QACb,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1B,EAAE,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,cAAc;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,EAAE,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAC3F,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,oEAAoE;AACpE,SAAS,SAAS,CAAC,EAAe,EAAE,MAAa;IAC/C,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,cAAc;IAC9C,MAAM,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACzG,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEjC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,MAAM,CAAC,KAAK;QACpB,IAAI,EAAE,MAAM,CAAC,KAAK;QAClB,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;KAC/D,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,SAAS,SAAS,CAAC,EAAe;IAChC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,cAAc;IAC5C,MAAM,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACzG,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEjC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AACnH,CAAC"}
|
|
1
|
+
{"version":3,"file":"expr.js","sourceRoot":"","sources":["../../src/parser/expr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { TypeExpr,
|
|
1
|
+
import type { TypeExpr, ProgramArg } from './ast.js';
|
|
2
2
|
import type { TokenStream } from './token-stream.js';
|
|
3
3
|
export declare function parseTypeExpr(ts: TokenStream): TypeExpr | null;
|
|
4
|
-
export declare function parseArgsSection(ts: TokenStream):
|
|
4
|
+
export declare function parseArgsSection(ts: TokenStream): ProgramArg[] | null;
|
|
5
5
|
//# sourceMappingURL=type-expr.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-expr.d.ts","sourceRoot":"","sources":["../../src/parser/type-expr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"type-expr.d.ts","sourceRoot":"","sources":["../../src/parser/type-expr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAW,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,wBAAgB,aAAa,CAAC,EAAE,EAAE,WAAW,GAAG,QAAQ,GAAG,IAAI,CAsB9D;AA6BD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,WAAW,GAAG,UAAU,EAAE,GAAG,IAAI,CAarE"}
|
|
@@ -1,9 +1,25 @@
|
|
|
1
1
|
import type { Program } from './ast.js';
|
|
2
|
-
import type { Marker } from '../lexer/token.js';
|
|
2
|
+
import type { Marker, Span } from '../lexer/token.js';
|
|
3
3
|
import type { TypedProgram } from './typed-ast.js';
|
|
4
|
+
import { AscentType } from '../types/types.js';
|
|
4
5
|
export interface TypedResult {
|
|
5
6
|
program: TypedProgram | null;
|
|
6
7
|
errorMarkers: Marker[];
|
|
7
8
|
}
|
|
8
|
-
|
|
9
|
+
interface Binding {
|
|
10
|
+
ty: AscentType;
|
|
11
|
+
origin: 'fix' | 'mut' | 'arg';
|
|
12
|
+
declSpan: Span | null;
|
|
13
|
+
}
|
|
14
|
+
export declare class TypeEnv {
|
|
15
|
+
private readonly parent;
|
|
16
|
+
private vars;
|
|
17
|
+
constructor(parent?: TypeEnv | null);
|
|
18
|
+
get(name: string): Binding | null;
|
|
19
|
+
set(name: string, ty: AscentType, origin: Binding['origin'], declSpan?: Span | null): void;
|
|
20
|
+
child(): TypeEnv;
|
|
21
|
+
ownEntries(): IterableIterator<[string, Binding]>;
|
|
22
|
+
}
|
|
23
|
+
export declare const typecheck: (program: Program, parentEnv?: TypeEnv) => TypedResult;
|
|
24
|
+
export {};
|
|
9
25
|
//# sourceMappingURL=typechecker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typechecker.d.ts","sourceRoot":"","sources":["../../src/parser/typechecker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,OAAO,EAA0C,MAAM,UAAU,CAAC;AACjG,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"typechecker.d.ts","sourceRoot":"","sources":["../../src/parser/typechecker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,OAAO,EAA0C,MAAM,UAAU,CAAC;AACjG,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAkD,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,EACL,UAAU,EAEX,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAMD,UAAU,OAAO;IACf,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAC9B,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;CACvB;AAGD,qBAAa,OAAO;IAEC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAD1C,OAAO,CAAC,IAAI,CAA8B;gBACN,MAAM,GAAE,OAAO,GAAG,IAAW;IAE1D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAIjC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAE,IAAI,GAAG,IAAW,GAAG,IAAI;IAIhG,KAAK,IAAI,OAAO;IAOhB,UAAU,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAGzD;AAwbD,eAAO,MAAM,SAAS,GAAI,SAAS,OAAO,EAAE,YAAY,OAAO,KAAG,WA0BjE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { INT_TYPE, FLOAT_TYPE, BOOL_TYPE, STRING_TYPE, NONE_TYPE, DONE_TYPE, listOfType, leastCommonType, isAssignableTo, typeToString, } from '../types/types.js';
|
|
2
2
|
// A chain of scopes mirroring Environment in the interpreter.
|
|
3
|
-
class TypeEnv {
|
|
3
|
+
export class TypeEnv {
|
|
4
4
|
parent;
|
|
5
5
|
vars = new Map();
|
|
6
6
|
constructor(parent = null) {
|
|
@@ -15,6 +15,12 @@ class TypeEnv {
|
|
|
15
15
|
child() {
|
|
16
16
|
return new TypeEnv(this);
|
|
17
17
|
}
|
|
18
|
+
// The bindings declared directly in this scope (not inherited from a
|
|
19
|
+
// parent) — used to promote a successful trial scope's new names into
|
|
20
|
+
// a persistent parent, e.g. across REPL lines.
|
|
21
|
+
ownEntries() {
|
|
22
|
+
return this.vars.entries();
|
|
23
|
+
}
|
|
18
24
|
}
|
|
19
25
|
// ---- Type formation: ⊢ T type --------------------------------------
|
|
20
26
|
//
|
|
@@ -168,7 +174,8 @@ const inferExpr = (expr, env, markers, contextType = null) => {
|
|
|
168
174
|
switch (expr.op) {
|
|
169
175
|
case '+':
|
|
170
176
|
case '-':
|
|
171
|
-
case '*':
|
|
177
|
+
case '*':
|
|
178
|
+
case '**': {
|
|
172
179
|
if ((lt.kind !== 'Int' && lt.kind !== 'Float') || (rt.kind !== 'Int' && rt.kind !== 'Float')) {
|
|
173
180
|
return operandError(markers, expr.op, expr.span, lt, rt);
|
|
174
181
|
}
|
|
@@ -463,9 +470,14 @@ const inferStmt = (stmt, env, markers) => {
|
|
|
463
470
|
}
|
|
464
471
|
}
|
|
465
472
|
};
|
|
466
|
-
|
|
473
|
+
// parentEnv lets a caller (the REPL) carry name bindings across separate
|
|
474
|
+
// typecheck() calls: each call type-checks into a child scope, and only
|
|
475
|
+
// promotes its new bindings into parentEnv once the whole program
|
|
476
|
+
// succeeds, so a line that fails typechecking never leaks a partial
|
|
477
|
+
// declaration into later lines.
|
|
478
|
+
export const typecheck = (program, parentEnv) => {
|
|
467
479
|
const markers = [];
|
|
468
|
-
const env = new TypeEnv();
|
|
480
|
+
const env = parentEnv !== undefined ? parentEnv.child() : new TypeEnv();
|
|
469
481
|
for (const arg of program.args) {
|
|
470
482
|
env.set(arg.name, typeFromName(arg.type), 'arg');
|
|
471
483
|
}
|
|
@@ -483,6 +495,11 @@ export const typecheck = (program) => {
|
|
|
483
495
|
if (failed || markers.length > 0) {
|
|
484
496
|
return { program: null, errorMarkers: markers };
|
|
485
497
|
}
|
|
498
|
+
if (parentEnv !== undefined) {
|
|
499
|
+
for (const [name, binding] of env.ownEntries()) {
|
|
500
|
+
parentEnv.set(name, binding.ty, binding.origin, binding.declSpan);
|
|
501
|
+
}
|
|
502
|
+
}
|
|
486
503
|
return { program: { args: program.args, stmts: typedStmts }, errorMarkers: [] };
|
|
487
504
|
};
|
|
488
505
|
//# sourceMappingURL=typechecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typechecker.js","sourceRoot":"","sources":["../../src/parser/typechecker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"typechecker.js","sourceRoot":"","sources":["../../src/parser/typechecker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Span } from '../lexer/token.js';
|
|
2
|
-
import type { UnaryOp, BinaryOp,
|
|
2
|
+
import type { UnaryOp, BinaryOp, ProgramArg, TypeExpr } from './ast.js';
|
|
3
3
|
import type { AscentType } from '../types/types.js';
|
|
4
4
|
export type TypedLiteral = ({
|
|
5
5
|
kind: 'literal';
|
|
@@ -124,7 +124,7 @@ export type TypedStatement = ({
|
|
|
124
124
|
span: Span;
|
|
125
125
|
});
|
|
126
126
|
export type TypedProgram = {
|
|
127
|
-
args:
|
|
127
|
+
args: ProgramArg[];
|
|
128
128
|
stmts: TypedStatement[];
|
|
129
129
|
};
|
|
130
130
|
//# sourceMappingURL=typed-ast.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-ast.d.ts","sourceRoot":"","sources":["../../src/parser/typed-ast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"typed-ast.d.ts","sourceRoot":"","sources":["../../src/parser/typed-ast.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/errors/index.ts
CHANGED
|
@@ -325,7 +325,7 @@ export const ERRORS: ErrorEntry[] = [
|
|
|
325
325
|
"category": "type",
|
|
326
326
|
"summary": "An operator was used on types it doesn't accept.",
|
|
327
327
|
"message": "I can't use '{op}' on {operands}.",
|
|
328
|
-
"explanation": "Operators only work on certain types: '+', '-', '*', and '
|
|
328
|
+
"explanation": "Operators only work on certain types: '+', '-', '*', '/', and '**' need numbers (Int or Float); 'div' and 'mod' need whole numbers (Int); 'and', 'or', and 'not' need True/False values (Bool); and a comparison needs two values of the same kind. '{op}' doesn't work on {operands}."
|
|
329
329
|
},
|
|
330
330
|
{
|
|
331
331
|
"code": "T0010",
|
|
@@ -104,8 +104,9 @@
|
|
|
104
104
|
summary: An operator was used on types it doesn't accept.
|
|
105
105
|
message: "I can't use '{op}' on {operands}."
|
|
106
106
|
explanation: >-
|
|
107
|
-
Operators only work on certain types: '+', '-', '*', and '
|
|
108
|
-
(Int or Float); 'div' and 'mod' need whole numbers (Int); 'and',
|
|
107
|
+
Operators only work on certain types: '+', '-', '*', '/', and '**' need
|
|
108
|
+
numbers (Int or Float); 'div' and 'mod' need whole numbers (Int); 'and',
|
|
109
|
+
'or', and 'not' need True/False values (Bool); and a comparison needs two
|
|
109
110
|
values of the same kind. '{op}' doesn't work on {operands}.
|
|
110
111
|
|
|
111
112
|
- code: T0010
|
package/src/index.ts
CHANGED
|
@@ -4,13 +4,13 @@ import { readFile } from 'node:fs/promises';
|
|
|
4
4
|
import chalk from 'chalk';
|
|
5
5
|
import { Lexer } from './lexer/index.js';
|
|
6
6
|
import { parse, parseTokens } from './parser/index.js';
|
|
7
|
-
import { typecheck } from './parser/typechecker.js';
|
|
7
|
+
import { typecheck, TypeEnv } from './parser/typechecker.js';
|
|
8
8
|
import { formatValue } from './parser/printer.js';
|
|
9
9
|
import { formatTypedStmt } from './parser/typed-printer.js';
|
|
10
10
|
import { executeStmt, executeProgram, Environment, ProgramInputs, RuntimeValue } from './interpreter.js';
|
|
11
11
|
import { elaborate } from './errors/elaborate.js';
|
|
12
12
|
import { renderTerminal } from './errors/render.js';
|
|
13
|
-
import type {
|
|
13
|
+
import type { ProgramArg } from './parser/ast.js';
|
|
14
14
|
|
|
15
15
|
// \x01 and \x02 bracket invisible bytes so readline counts the visible
|
|
16
16
|
// width of the prompt correctly — without them cursor positioning breaks.
|
|
@@ -37,7 +37,7 @@ const parseCliFlags = (argv: string[]): Map<string, string> => {
|
|
|
37
37
|
|
|
38
38
|
// Converts raw CLI strings to RuntimeValues according to each ArgDef.
|
|
39
39
|
// Exits on missing or ill-typed args.
|
|
40
|
-
const bindArgs = (argDefs:
|
|
40
|
+
const bindArgs = (argDefs: ProgramArg[], cliFlags: Map<string, string>): ProgramInputs => {
|
|
41
41
|
const inputs = new ProgramInputs(argDefs);
|
|
42
42
|
for (const def of argDefs) {
|
|
43
43
|
const raw = cliFlags.get(def.name);
|
|
@@ -125,6 +125,7 @@ const runRepl = async (): Promise<void> => {
|
|
|
125
125
|
|
|
126
126
|
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
127
127
|
const env = new Environment();
|
|
128
|
+
const typeEnv = new TypeEnv();
|
|
128
129
|
|
|
129
130
|
try {
|
|
130
131
|
while (true) {
|
|
@@ -159,7 +160,7 @@ const runRepl = async (): Promise<void> => {
|
|
|
159
160
|
process.stdout.write(renderTerminal(elaborate(marker, line), line, null) + '\n');
|
|
160
161
|
}
|
|
161
162
|
} else if (parseResult.program !== null) {
|
|
162
|
-
const typeResult = typecheck(parseResult.program);
|
|
163
|
+
const typeResult = typecheck(parseResult.program, typeEnv);
|
|
163
164
|
const typeErrors = typeResult.errorMarkers;
|
|
164
165
|
|
|
165
166
|
if (typeErrors.length > 0) {
|
package/src/interpreter.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BinaryOp,
|
|
1
|
+
import type { BinaryOp, ProgramArg } from './parser/ast.js';
|
|
2
2
|
import type { TypedExpr, TypedBlock, TypedStatement, TypedProgram } from './parser/typed-ast.js';
|
|
3
3
|
import { INT_TYPE, subtype, type AscentType } from './types/types.js';
|
|
4
4
|
|
|
@@ -332,6 +332,19 @@ const evaluateBinary = (op: BinaryOp, left: RuntimeValue, right: RuntimeValue):
|
|
|
332
332
|
return { type: 'Float', value: asFloat(left) / divisor };
|
|
333
333
|
}
|
|
334
334
|
|
|
335
|
+
if (op === '**') {
|
|
336
|
+
if (left.type === 'Int' && right.type === 'Int') {
|
|
337
|
+
// The result type is fixed at Int ** Int -> Int regardless of the
|
|
338
|
+
// exponent's runtime sign (§5), so a negative exponent — which would
|
|
339
|
+
// need a fractional result — can't be silently truncated; it crashes.
|
|
340
|
+
if (right.value < 0n) {
|
|
341
|
+
throw new Error('negative exponent on Int ** Int — use a Float base instead, e.g. 2.0 ** -1');
|
|
342
|
+
}
|
|
343
|
+
return { type: 'Int', value: left.value ** right.value };
|
|
344
|
+
}
|
|
345
|
+
return { type: 'Float', value: Math.pow(asFloat(left), asFloat(right)) };
|
|
346
|
+
}
|
|
347
|
+
|
|
335
348
|
if (left.type === 'Int' && right.type === 'Int') {
|
|
336
349
|
const v = op === '+' ? left.value + right.value
|
|
337
350
|
: op === '-' ? left.value - right.value
|
|
@@ -350,10 +363,10 @@ const evaluateBinary = (op: BinaryOp, left: RuntimeValue, right: RuntimeValue):
|
|
|
350
363
|
// names — no separate syntax check needed), and a value whose type doesn't
|
|
351
364
|
// match the arg's declared type.
|
|
352
365
|
export class ProgramInputs {
|
|
353
|
-
private readonly argDefs: Map<string,
|
|
366
|
+
private readonly argDefs: Map<string, ProgramArg>;
|
|
354
367
|
private readonly values = new Map<string, PrimitiveValue>();
|
|
355
368
|
|
|
356
|
-
public constructor(argDefs:
|
|
369
|
+
public constructor(argDefs: ProgramArg[]) {
|
|
357
370
|
this.argDefs = new Map(argDefs.map(def => [def.name, def]));
|
|
358
371
|
}
|
|
359
372
|
|
package/src/lexer/index.ts
CHANGED
|
@@ -130,7 +130,9 @@ export class Lexer {
|
|
|
130
130
|
switch (ch) {
|
|
131
131
|
case '+': return this.token('PLUS', start);
|
|
132
132
|
case '-': return this.token('MINUS', start);
|
|
133
|
-
case '*':
|
|
133
|
+
case '*':
|
|
134
|
+
if (this.c.match('*')) return this.token('STAR_STAR', start);
|
|
135
|
+
return this.token('STAR', start);
|
|
134
136
|
case '/': return this.token('SLASH', start);
|
|
135
137
|
case '=':
|
|
136
138
|
if (this.c.match('=')) return this.token('EQ_EQ', start);
|
package/src/lexer/token.ts
CHANGED
|
@@ -9,6 +9,7 @@ export type TokenKind =
|
|
|
9
9
|
| 'PLUS' // '+'
|
|
10
10
|
| 'MINUS' // '-'
|
|
11
11
|
| 'STAR' // '*'
|
|
12
|
+
| 'STAR_STAR' // '**' — raises the left operand to the right operand's power
|
|
12
13
|
| 'SLASH' // '/', always real division — yields a Float
|
|
13
14
|
| 'KW_DIV' // the keyword div — Int-only floor division
|
|
14
15
|
| 'KW_MOD' // the keyword mod — Int-only floored modulo
|
package/src/lib.ts
CHANGED
|
@@ -18,9 +18,11 @@ export type { LexResult } from './lexer/index.js';
|
|
|
18
18
|
|
|
19
19
|
export { parse, parseTokens } from './parser/index.js';
|
|
20
20
|
export type { ParseResult } from './parser/index.js';
|
|
21
|
+
export type { Program, ProgramArg } from './parser/ast.js';
|
|
21
22
|
|
|
22
23
|
export { typecheck } from './parser/typechecker.js';
|
|
23
24
|
export type { TypedResult } from './parser/typechecker.js';
|
|
25
|
+
export type { TypedProgram } from './parser/typed-ast.js';
|
|
24
26
|
|
|
25
27
|
export {
|
|
26
28
|
Environment,
|
package/src/parser/ast.ts
CHANGED
|
@@ -16,7 +16,7 @@ export type Literal = (
|
|
|
16
16
|
);
|
|
17
17
|
|
|
18
18
|
export type UnaryOp = '-' | 'not';
|
|
19
|
-
export type ArithmeticOp = '+' | '-' | '*' | '/' | 'div' | 'mod';
|
|
19
|
+
export type ArithmeticOp = '+' | '-' | '*' | '/' | 'div' | 'mod' | '**';
|
|
20
20
|
export type ComparisonOp = '==' | '!=' | '<' | '<=' | '>' | '>=';
|
|
21
21
|
export type BooleanOp = 'and' | 'or';
|
|
22
22
|
export type BinaryOp = ArithmeticOp | ComparisonOp | BooleanOp;
|
|
@@ -60,6 +60,6 @@ export type Statement = (
|
|
|
60
60
|
);
|
|
61
61
|
|
|
62
62
|
export type ArgType = 'Int' | 'Float' | 'Bool' | 'String';
|
|
63
|
-
export type
|
|
63
|
+
export type ProgramArg = { name: string; type: ArgType };
|
|
64
64
|
|
|
65
|
-
export type Program = { args:
|
|
65
|
+
export type Program = { args: ProgramArg[]; stmts: Statement[] };
|
package/src/parser/expr.ts
CHANGED
|
@@ -20,13 +20,23 @@ import { parseBlock, parseIf } from './stmt.js';
|
|
|
20
20
|
// threshold passed down on each recursive call.
|
|
21
21
|
//
|
|
22
22
|
// This ladder is the single source of truth for what binds tighter
|
|
23
|
-
// than what: postfix (`.method()`, `[index]`)
|
|
24
|
-
// unary '-',
|
|
25
|
-
//
|
|
23
|
+
// than what: postfix (`.method()`, `[index]`) and '**' bind tightest
|
|
24
|
+
// (tighter even than unary '-', per §5 of design.md — `-2 ** 2` is
|
|
25
|
+
// `-(2 ** 2)`), then unary '-', then '*'/'/'/'div'/'mod', then '+'/'-',
|
|
26
|
+
// then the comparisons, then 'not', then 'and', then 'or', loosest —
|
|
26
27
|
// the word operators sit below the comparisons (§5 of design.md), so
|
|
27
28
|
// `a == b and c == d` groups as `(a == b) and (c == d)`, never
|
|
28
29
|
// `a == (b and c) == d`. Every table below is keyed off these numbers
|
|
29
30
|
// instead of inlining its own.
|
|
31
|
+
//
|
|
32
|
+
// EXPONENT shares POSTFIX's tier rather than sitting strictly above it.
|
|
33
|
+
// '**' is right-associative, so its right operand is parsed with
|
|
34
|
+
// `minBp = infix.bp` (not `+ 1`, see the loop below) — if EXPONENT
|
|
35
|
+
// outbid POSTFIX, that recursive parse would stop *before* absorbing a
|
|
36
|
+
// trailing postfix chain (`2 ** a.b()` would parse `a` alone, leaving
|
|
37
|
+
// `.b()` to wrongly attach to the whole `2 ** a` once control returned
|
|
38
|
+
// to the caller). Equal tiers let the right-hand parse swallow both a
|
|
39
|
+
// further '**' and any postfix chain in one pass.
|
|
30
40
|
const BP = {
|
|
31
41
|
OR: 1,
|
|
32
42
|
AND: 2,
|
|
@@ -36,6 +46,7 @@ const BP = {
|
|
|
36
46
|
MULTIPLICATIVE: 6,
|
|
37
47
|
UNARY: 7,
|
|
38
48
|
POSTFIX: 7,
|
|
49
|
+
EXPONENT: 7,
|
|
39
50
|
} as const;
|
|
40
51
|
|
|
41
52
|
// Every binary operator this parser knows about has one row in this
|
|
@@ -49,7 +60,7 @@ const BP = {
|
|
|
49
60
|
// 'or' belongs to a tier below 'and' — the same "same precedence,
|
|
50
61
|
// left-associative" shape as '+'/'-' — so `a or b or c` groups as
|
|
51
62
|
// `(a or b) or c`.
|
|
52
|
-
const INFIX_OPS: Partial<Record<TokenKind, { op: BinaryOp; bp: number; assoc: 'left' | 'none' }>> = {
|
|
63
|
+
const INFIX_OPS: Partial<Record<TokenKind, { op: BinaryOp; bp: number; assoc: 'left' | 'right' | 'none' }>> = {
|
|
53
64
|
KW_OR: { op: 'or', bp: BP.OR, assoc: 'left' },
|
|
54
65
|
KW_AND: { op: 'and', bp: BP.AND, assoc: 'left' },
|
|
55
66
|
EQ_EQ: { op: '==', bp: BP.COMPARISON, assoc: 'none' },
|
|
@@ -64,6 +75,8 @@ const INFIX_OPS: Partial<Record<TokenKind, { op: BinaryOp; bp: number; assoc: 'l
|
|
|
64
75
|
SLASH: { op: '/', bp: BP.MULTIPLICATIVE, assoc: 'left' },
|
|
65
76
|
KW_DIV: { op: 'div', bp: BP.MULTIPLICATIVE, assoc: 'left' },
|
|
66
77
|
KW_MOD: { op: 'mod', bp: BP.MULTIPLICATIVE, assoc: 'left' },
|
|
78
|
+
// Right-associative — `2 ** 3 ** 2` groups as `2 ** (3 ** 2)` (§5).
|
|
79
|
+
STAR_STAR: { op: '**', bp: BP.EXPONENT, assoc: 'right' },
|
|
67
80
|
};
|
|
68
81
|
|
|
69
82
|
// Postfix table — dot-calls and indexing are "led" operators exactly
|
|
@@ -135,7 +148,11 @@ export function parseExpr(ts: TokenStream, minBp = 0): Expr | null {
|
|
|
135
148
|
// operators reuse the same `bp + 1` call — it still keeps looser
|
|
136
149
|
// operators out of the right operand, and the `chained` check
|
|
137
150
|
// above is what stops them from reappearing at this level.
|
|
138
|
-
|
|
151
|
+
// Right-associative operators ('**') do the opposite: reusing the
|
|
152
|
+
// same `bp` (not `+ 1`) lets a second '**' at this level be
|
|
153
|
+
// absorbed into the right operand instead of returned to this loop,
|
|
154
|
+
// which is what makes `2 ** 3 ** 2` group as `2 ** (3 ** 2)`.
|
|
155
|
+
const right = parseExpr(ts, infix.assoc === 'right' ? infix.bp : infix.bp + 1);
|
|
139
156
|
if (right === null) {
|
|
140
157
|
return null;
|
|
141
158
|
}
|
package/src/parser/type-expr.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TypeExpr,
|
|
1
|
+
import type { TypeExpr, ProgramArg, ArgType } from './ast.js';
|
|
2
2
|
import type { TokenStream } from './token-stream.js';
|
|
3
3
|
|
|
4
4
|
// 'Int', 'Float', 'Bool', 'String', or 'List<Type>' — used in type annotations.
|
|
@@ -30,7 +30,7 @@ export function parseTypeExpr(ts: TokenStream): TypeExpr | null {
|
|
|
30
30
|
// annotation this only allows a bare type name (no 'List<…>'), so it
|
|
31
31
|
// reads the TYPE_NAME token directly rather than going through
|
|
32
32
|
// parseTypeExpr.
|
|
33
|
-
function parseArgDef(ts: TokenStream):
|
|
33
|
+
function parseArgDef(ts: TokenStream): ProgramArg | null {
|
|
34
34
|
const nameTok = ts.peek();
|
|
35
35
|
if (nameTok.kind !== 'SLOT') {
|
|
36
36
|
ts.report('S0003', nameTok.span);
|
|
@@ -53,7 +53,7 @@ function parseArgDef(ts: TokenStream): ArgDef | null {
|
|
|
53
53
|
// 'args (name: Type, …) ;' — the program's typed input declaration, if
|
|
54
54
|
// present. Returns [] (not null) when there's no 'args' keyword at all;
|
|
55
55
|
// null is reserved for an actual parse error.
|
|
56
|
-
export function parseArgsSection(ts: TokenStream):
|
|
56
|
+
export function parseArgsSection(ts: TokenStream): ProgramArg[] | null {
|
|
57
57
|
if (ts.peek().kind !== 'KW_ARGS') return [];
|
|
58
58
|
ts.advance(); // consume 'args'
|
|
59
59
|
|
|
@@ -22,7 +22,7 @@ interface Binding {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
// A chain of scopes mirroring Environment in the interpreter.
|
|
25
|
-
class TypeEnv {
|
|
25
|
+
export class TypeEnv {
|
|
26
26
|
private vars = new Map<string, Binding>();
|
|
27
27
|
public constructor(private readonly parent: TypeEnv | null = null) { }
|
|
28
28
|
|
|
@@ -37,6 +37,13 @@ class TypeEnv {
|
|
|
37
37
|
public child(): TypeEnv {
|
|
38
38
|
return new TypeEnv(this);
|
|
39
39
|
}
|
|
40
|
+
|
|
41
|
+
// The bindings declared directly in this scope (not inherited from a
|
|
42
|
+
// parent) — used to promote a successful trial scope's new names into
|
|
43
|
+
// a persistent parent, e.g. across REPL lines.
|
|
44
|
+
public ownEntries(): IterableIterator<[string, Binding]> {
|
|
45
|
+
return this.vars.entries();
|
|
46
|
+
}
|
|
40
47
|
}
|
|
41
48
|
|
|
42
49
|
// ---- Type formation: ⊢ T type --------------------------------------
|
|
@@ -191,7 +198,7 @@ const inferExpr = (
|
|
|
191
198
|
|
|
192
199
|
let type: AscentType;
|
|
193
200
|
switch (expr.op) {
|
|
194
|
-
case '+': case '-': case '*': {
|
|
201
|
+
case '+': case '-': case '*': case '**': {
|
|
195
202
|
if ((lt.kind !== 'Int' && lt.kind !== 'Float') || (rt.kind !== 'Int' && rt.kind !== 'Float')) {
|
|
196
203
|
return operandError(markers, expr.op, expr.span, lt, rt);
|
|
197
204
|
}
|
|
@@ -472,9 +479,14 @@ const inferStmt = (stmt: Statement, env: TypeEnv, markers: Marker[]): TypedState
|
|
|
472
479
|
}
|
|
473
480
|
};
|
|
474
481
|
|
|
475
|
-
|
|
482
|
+
// parentEnv lets a caller (the REPL) carry name bindings across separate
|
|
483
|
+
// typecheck() calls: each call type-checks into a child scope, and only
|
|
484
|
+
// promotes its new bindings into parentEnv once the whole program
|
|
485
|
+
// succeeds, so a line that fails typechecking never leaks a partial
|
|
486
|
+
// declaration into later lines.
|
|
487
|
+
export const typecheck = (program: Program, parentEnv?: TypeEnv): TypedResult => {
|
|
476
488
|
const markers: Marker[] = [];
|
|
477
|
-
const env = new TypeEnv();
|
|
489
|
+
const env = parentEnv !== undefined ? parentEnv.child() : new TypeEnv();
|
|
478
490
|
|
|
479
491
|
for (const arg of program.args) {
|
|
480
492
|
env.set(arg.name, typeFromName(arg.type), 'arg');
|
|
@@ -490,5 +502,12 @@ export const typecheck = (program: Program): TypedResult => {
|
|
|
490
502
|
if (failed || markers.length > 0) {
|
|
491
503
|
return { program: null, errorMarkers: markers };
|
|
492
504
|
}
|
|
505
|
+
|
|
506
|
+
if (parentEnv !== undefined) {
|
|
507
|
+
for (const [name, binding] of env.ownEntries()) {
|
|
508
|
+
parentEnv.set(name, binding.ty, binding.origin, binding.declSpan);
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
|
|
493
512
|
return { program: { args: program.args, stmts: typedStmts }, errorMarkers: [] };
|
|
494
513
|
};
|
package/src/parser/typed-ast.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Span } from '../lexer/token.js';
|
|
2
|
-
import type { UnaryOp, BinaryOp,
|
|
2
|
+
import type { UnaryOp, BinaryOp, ProgramArg, TypeExpr } from './ast.js';
|
|
3
3
|
import type { AscentType } from '../types/types.js';
|
|
4
4
|
|
|
5
5
|
// Every typed expression carries `type`: the Type inferred by the type
|
|
@@ -58,6 +58,6 @@ export type TypedStatement = (
|
|
|
58
58
|
);
|
|
59
59
|
|
|
60
60
|
export type TypedProgram = {
|
|
61
|
-
args:
|
|
61
|
+
args: ProgramArg[];
|
|
62
62
|
stmts: TypedStatement[];
|
|
63
63
|
};
|