From 1c94cd2f03fa43c0e1a532fb200eb64f45ed44f4 Mon Sep 17 00:00:00 2001 From: Nathan Braswell Date: Fri, 23 Mar 2018 01:27:44 -0400 Subject: [PATCH] Small, but added system call to bytecode --- stdlib/bytecode_generator.krak | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/stdlib/bytecode_generator.krak b/stdlib/bytecode_generator.krak index ee2758b..2f3a196 100644 --- a/stdlib/bytecode_generator.krak +++ b/stdlib/bytecode_generator.krak @@ -1,4 +1,5 @@ import io:* +import os:* import mem:* import map:* import hash_map:* @@ -329,7 +330,6 @@ obj bytecode_generator (Object) { // iterate through asts name_ast_map.for_each(fun(name: string, tree_pair: pair<*tree,*ast_node>) { // iterate through children for each ast - // do lambdas seperatly, so we can reconstitute the enclosing object if it has one tree_pair.second->translation_unit.lambdas.for_each(fun(child: *ast_node) { generate_function_definition(child) }) @@ -1164,6 +1164,8 @@ obj bytecode_generator (Object) { registers[2] = (fgets( *(registers[0]) cast **char, *(registers[0] + #sizeof<*char>) cast *int, *(registers[0] + #sizeof<*char> + #sizeof) cast **void)) cast long + else if (func_start == system_addr) + registers[2] = (system( *(registers[0]) cast **char)) cast long else error(string("bad extern call number") + func_start) } else {