Variable declaration added now

This commit is contained in:
Nathan Braswell
2016-01-15 19:10:52 -05:00
parent 785c6a6a8e
commit bf570f027c
6 changed files with 33 additions and 17 deletions

View File

@@ -47,6 +47,7 @@ obj c_generator (Object) {
top_level_c_passthrough += generate_simple_passthrough(backing.statement->statement.child)
}
ast_node::simple_passthrough(backing) top_level_c_passthrough += generate_simple_passthrough(child)
ast_node::declaration_statement(backing) variable_declarations += generate_declaration_statement(child) + ";\n"
ast_node::function(backing) {
// make sure not a template
// or a passthrough
@@ -83,6 +84,10 @@ obj c_generator (Object) {
return node->simple_passthrough.passthrough_str
}
fun generate_statement(node: *ast_node): string return generate(node->statement.child) + ";\n";
fun generate_declaration_statement(node: *ast_node): string {
var identifier = node->declaration_statement.identifier
return type_to_c(identifier->identifier.type) + " " + identifier->identifier.name
}
fun generate_return_statement(node: *ast_node): string return string("return ") + generate(node->return_statement.return_value);
fun generate_value(node: *ast_node): string return node->value.string_value;
fun generate_code_block(node: *ast_node): string {
@@ -114,6 +119,7 @@ obj c_generator (Object) {
ast_node::if_comp(backing) return generate_if_comp(node)
ast_node::simple_passthrough(backing) return generate_simple_passthrough(node)
ast_node::statement(backing) return generate_statement(node)
ast_node::declaration_statement(backing) return generate_declaration_statement(node)
ast_node::function(backing) return generate_function(node)
ast_node::function_call(backing) return generate_function_call(node)
ast_node::code_block(backing) return generate_code_block(node)