@composita/compiler
Version:
Composita language compiler.
22 lines • 873 B
JavaScript
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