added if_statements

This commit is contained in:
Nathan Braswell
2016-01-19 02:06:30 -05:00
parent 458299abe1
commit 4493dfd861
4 changed files with 37 additions and 5 deletions

View File

@@ -93,6 +93,12 @@ obj c_generator (Object) {
fun generate_assignment_statement(node: *ast_node): string {
return generate(node->assignment_statement.to) + " = " + generate(node->assignment_statement.from)
}
fun generate_if_statement(node: *ast_node): string {
var if_str = string("if (") + generate(node->if_statement.condition) + ") {\n" + generate(node->if_statement.then_part) + "}"
if (node->if_statement.else_part)
if_str += string(" else {\n") + generate(node->if_statement.else_part) + "}"
return if_str + "\n"
}
fun generate_identifier(node: *ast_node): string {
return node->identifier.name
}
@@ -133,6 +139,7 @@ obj c_generator (Object) {
ast_node::statement(backing) return generate_statement(node)
ast_node::declaration_statement(backing) return generate_declaration_statement(node)
ast_node::assignment_statement(backing) return generate_assignment_statement(node)
ast_node::if_statement(backing) return generate_if_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)