diff --git a/stdlib/ast_transformation.krak b/stdlib/ast_transformation.krak index e6098da..3160a1f 100644 --- a/stdlib/ast_transformation.krak +++ b/stdlib/ast_transformation.krak @@ -1,6 +1,7 @@ import symbol:* import tree:* import vector:* +import queue:* import stack:* import map:* import util:* diff --git a/stdlib/importer.krak b/stdlib/importer.krak index aa5ce34..2a9c0c6 100644 --- a/stdlib/importer.krak +++ b/stdlib/importer.krak @@ -1,7 +1,7 @@ import symbol:* import tree:* import vector:* -import queue:* +import stack:* import map:* import util:* import string:* @@ -151,7 +151,7 @@ fun trim(parse_tree: *tree): *tree { return parse_tree } fun remove_node(remove: symbol, parse_tree: *tree) { - var to_process = queue<*tree>() + var to_process = stack<*tree>() to_process.push(parse_tree) while(!to_process.empty()) { var node = to_process.pop() @@ -174,7 +174,7 @@ fun remove_node(remove: symbol, parse_tree: *tree) { } } fun collapse_node(remove: symbol, parse_tree: *tree) { - var to_process = queue<*tree>() + var to_process = stack<*tree>() to_process.push(parse_tree) while(!to_process.empty()) { var node = to_process.pop() diff --git a/stdlib/pass_common.krak b/stdlib/pass_common.krak index 502b55d..25bc084 100644 --- a/stdlib/pass_common.krak +++ b/stdlib/pass_common.krak @@ -196,7 +196,7 @@ fun get_builtin_function(name: string, param_types: vector<*type>, syntax: *tree } if (name == "&" && param_types.size == 1) return ast_function_ptr(name, type_ptr(param_types, param_types[0]->clone_with_increased_indirection()), vector<*ast_node>(), false) - if (name == "\*" && param_types.size == 1) { + if (name == "*" && param_types.size == 1) { if (param_types[0]->indirection == 0) error(syntax, string("drereferencing not a pointer: ") + name) else diff --git a/stdlib/stack.krak b/stdlib/stack.krak index 5f2569d..d30de54 100644 --- a/stdlib/stack.krak +++ b/stdlib/stack.krak @@ -24,6 +24,10 @@ obj stack (Object, Serializable) { data.construct() return this } + fun construct(ammt: int): *stack { + data.construct(ammt) + return this + } fun copy_construct(other: *stack) { data.copy_construct(&other->data) } @@ -59,6 +63,9 @@ obj stack (Object, Serializable) { fun size(): int { return data.size } + fun available(): int { + return data.available + } fun empty():bool { return data.size == 0 }