resolmap into syms
Some checks failed
Check / Explore-Gitea-Actions (push) Failing after 8s

This commit is contained in:
sfja 2026-03-16 22:33:08 +01:00
parent 5af5bfed7f
commit f05812c18c
4 changed files with 15 additions and 15 deletions

View File

@ -2,17 +2,17 @@ import * as ast from "../ast.ts";
import { FileReporter, Loc } from "../diagnostics.ts";
import { Ty } from "../ty.ts";
import { builtins } from "./builtins.ts";
import { ResolveMap } from "./resolve.ts";
import { Syms } from "./resolve.ts";
export class Tys {
private nodeTys = new Map<number, Ty>();
private checker: Checker;
constructor(
private resols: ResolveMap,
private syms: Syms,
private reporter: FileReporter,
) {
this.checker = new Checker(this, this.resols, this.reporter);
this.checker = new Checker(this, this.syms, this.reporter);
}
expr(node: ast.Node): Ty {
@ -28,7 +28,7 @@ export class Tys {
class Checker {
constructor(
private tys: Tys,
private resols: ResolveMap,
private syms: Syms,
private reporter: FileReporter,
) {}
@ -40,7 +40,7 @@ class Checker {
}
if (node.is("Param")) {
const sym = this.resols.get(node);
const sym = this.syms.get(node);
if (sym.tag === "Let") {
const exprTy = this.tys.expr(sym.stmt.kind.expr);
@ -66,7 +66,7 @@ class Checker {
}
if (node.is("IdentExpr")) {
const sym = this.resols.get(node);
const sym = this.syms.get(node);
if (sym.tag === "Fn") {
return this.tys.expr(sym.stmt);
}

View File

@ -2,7 +2,7 @@ import * as ast from "../ast.ts";
import { FileReporter } from "../diagnostics.ts";
import { builtins } from "./builtins.ts";
export class ResolveMap {
export class Syms {
constructor(
private resols: Map<number, Sym>,
) {}
@ -35,7 +35,7 @@ export type Sym =
export function resolve(
file: ast.Node,
reporter: FileReporter,
): ResolveMap {
): Syms {
let syms = ResolverSyms.root();
const resols = new Map<number, Sym>();
@ -88,7 +88,7 @@ export function resolve(
},
});
return new ResolveMap(resols);
return new Syms(resols);
}
class ResolverSyms {

View File

@ -12,8 +12,8 @@ const text = await Deno.readTextFile(filename);
const fileRep = reporter.ofFile({ filename, text });
const fileAst = front.parse(text, fileRep);
const resols = front.resolve(fileAst, fileRep);
const tys = new front.Tys(resols, fileRep);
const syms = front.resolve(fileAst, fileRep);
const tys = new front.Tys(syms, fileRep);
let mainFn: ast.NodeWithKind<"FnStmt"> | null = null;
@ -36,7 +36,7 @@ if (!mainFn) {
Deno.exit(1);
}
const m = new middle.MiddleLowerer(resols, tys);
const m = new middle.MiddleLowerer(syms, tys);
const mainMiddleFn = m.lowerFn(mainFn);
if (!Deno.args.includes("--test")) {

View File

@ -1,5 +1,5 @@
import * as ast from "./ast.ts";
import { ResolveMap, Tys } from "./front/mod.ts";
import { Syms, Tys } from "./front/mod.ts";
import { Ty } from "./ty.ts";
import { BasicBlock, BinaryOp, Fn, Inst, InstKind } from "./mir.ts";
@ -7,7 +7,7 @@ export class MiddleLowerer {
private fns = new Map<number, Fn>();
constructor(
private resols: ResolveMap,
private resols: Syms,
private tys: Tys,
) {}
@ -28,7 +28,7 @@ class FnLowerer {
constructor(
private lowerer: MiddleLowerer,
private resols: ResolveMap,
private resols: Syms,
private tys: Tys,
private stmt: ast.FnStmt,
) {}