Init globals before lowering CTCE, allows CTCE to use imported functions, etc.

This commit is contained in:
Nathan Braswell
2016-07-06 00:16:39 -07:00
parent cd21e7a1cc
commit f71b5f3576
9 changed files with 86 additions and 14 deletions

View File

@@ -35,6 +35,13 @@ fun main(argc: int, argv: **char):int {
doing_repl = true
} else if (string(argv[1]) == "-v" || string(argv[1]) == "--version") {
println(compiler_version::version_string)
/*var version_c_string = #ctce(fun(): *char {*/
/*var version_string = string("Self-hosted Kraken compiler \"Kalypso\" - revision ") + from_system_command(string("git rev-list HEAD | wc -l"), 100) +*/
/*", commit: " + from_system_command(string("git rev-parse HEAD"), 100) +*/
/*", compile date: " + from_system_command(string("date"), 100) */
/*return version_string.toCharArray()*/
/*}())*/
/*println(version_c_string)*/
exit(0)
}
var input_file_offset = 1
@@ -100,13 +107,17 @@ fun main(argc: int, argv: **char):int {
// This is our REPL loop
var scope = ast_translation_unit_ptr(string("stdin"))
while (doing_repl) {
var line = get_line(string("> "), 100)
if (line == "end")
return 0
var trimmed_parse = trim(parse1.parse_input(line, string("stdin")))
var ast_expression = ast_pass.transform_expression(trimmed_parse, scope, map<string, *type>())
print_value(evaluate_constant_expression(ast_expression))
if (doing_repl) {
/*var globals = setup_globals(importer.name_ast_map)*/
while (doing_repl) {
var line = get_line(string("> "), 100)
if (line == "end")
return 0
var trimmed_parse = trim(parse1.parse_input(line, string("stdin")))
var ast_expression = ast_pass.transform_expression(trimmed_parse, scope, map<string, *type>())
print_value(evaluate_constant_expression(ast_expression))
/*print_value(evaluate_with_globals(ast_expression, &globals))*/
}
}
var kraken_file_name = string(argv[input_file_offset])