slige/compiler/main.ts

22 lines
646 B
TypeScript
Raw Normal View History

2024-12-10 21:42:15 +01:00
import { Checker } from "./checker.ts";
import { Lexer } from "./lexer.ts";
import { Lowerer } from "./lowerer.ts";
import { Parser } from "./parser.ts";
import { Resolver } from "./resolver.ts";
2024-11-04 14:54:55 +01:00
2024-12-09 13:57:48 +01:00
const text = await Deno.readTextFile("example.slg");
2024-11-04 14:54:55 +01:00
const lexer = new Lexer(text);
2024-11-20 15:41:20 +01:00
2024-12-10 10:39:12 +01:00
const parser = new Parser(lexer);
const ast = parser.parseStmts();
new Resolver().resolve(ast);
new Checker().check(ast);
2024-12-09 13:57:48 +01:00
// console.log(JSON.stringify(ast, null, 4))
2024-12-10 14:36:41 +01:00
const lowerer = new Lowerer();
lowerer.lower(ast);
2024-12-10 23:30:15 +01:00
lowerer.printProgram();
2024-12-10 14:36:41 +01:00
const program = lowerer.finish();
2024-12-11 00:03:19 +01:00
//console.log(JSON.stringify(program, null, 4));
console.log(JSON.stringify(program));