UNPKG

@composita/compiler

Version:

Composita language compiler.

22 lines 873 B
import { Lexer } from './lexer/lexer'; import { Parser } from './parser/parser'; import { CompilerDiagnosis } from './diagnosis/diagnosis'; import { Checker } from './checker/checker'; import { Generator } from './generator/generator'; export class Compiler { compile(uri, code) { const diagnosis = new CompilerDiagnosis(); const lexer = new Lexer(diagnosis, uri, code); const parser = new Parser(diagnosis, lexer); const ast = parser.parse(); if (diagnosis.hasErrors()) { diagnosis.print(console.log); throw new Error('Error during Lexing and/or Parsing. See console.log.'); } const checker = new Checker(); const symbols = checker.check(uri, ast); const generator = new Generator(); return generator.generate(symbols); } } //# sourceMappingURL=compiler.js.map