21 lines
603 B
Plaintext
21 lines
603 B
Plaintext
// cell qbe - Compile a source file to QBE intermediate language
|
|
|
|
var fd = use("fd")
|
|
var json = use("json")
|
|
var tokenize = use("tokenize")
|
|
var parse = use("parse")
|
|
var fold = use("fold")
|
|
var mcode = use("mcode")
|
|
var streamline = use("streamline")
|
|
var qbe_macros = use("qbe")
|
|
var qbe_emit = use("qbe_emit")
|
|
var filename = args[0]
|
|
var src = text(fd.slurp(filename))
|
|
var result = tokenize(src, filename)
|
|
var ast = parse(result.tokens, src, filename, tokenize)
|
|
var folded = fold(ast)
|
|
var compiled = mcode(folded)
|
|
var optimized = streamline(compiled)
|
|
var il = qbe_emit(optimized, qbe_macros)
|
|
log.compile(il)
|