From 458299abe18755411894f118ba054fa91ffb185c Mon Sep 17 00:00:00 2001 From: Nathan Braswell Date: Mon, 18 Jan 2016 18:10:07 -0500 Subject: [PATCH] Add perentheses to all operators so that acutal perentheses are preserved and the kraken order of operations is maintained --- stdlib/c_generator.krak | 2 +- tests/to_parse.krak | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/stdlib/c_generator.krak b/stdlib/c_generator.krak index d68d487..a11e8f3 100644 --- a/stdlib/c_generator.krak +++ b/stdlib/c_generator.krak @@ -114,7 +114,7 @@ obj c_generator (Object) { var func_name = generate(node->function_call.func) var parameters = node->function_call.parameters if (func_name == "+" || func_name == "-" || func_name == "*" || func_name == "/" || func_name == "||" || func_name == "&&") - return generate(parameters[0]) + func_name + generate(parameters[1]) + return string("(") + generate(parameters[0]) + func_name + generate(parameters[1]) + string(")") var call_string = string() parameters.for_each(fun(param: *ast_node) { if (call_string != "") diff --git a/tests/to_parse.krak b/tests/to_parse.krak index 6d8f5b3..766042f 100644 --- a/tests/to_parse.krak +++ b/tests/to_parse.krak @@ -16,6 +16,8 @@ fun main(): int { simple_print(1 + 2) var again = 2 + 4 - 1 * 400 simple_print(again) + again = 2 + (4 - 1) * 400 + simple_print(again) var another_declaration: int = 8.0 simple_print(another_declaration) var yet_another_declaration = "Hello Marcus\n"