diff --git a/c.py b/c.py index a6a4095..ba4acd2 100755 --- a/c.py +++ b/c.py @@ -213,19 +213,21 @@ class CodeGen: res = "{}\n{}".format(res, self.generate(node)) return res + def generate_head(self, node): + args = ", ".join("int {}".format(n) for n in node.args) + return "int {}({})".format(node.name, args) + def generate_proto(self, node): case = node.__class__ if case == DefNode: - args = ", ".join("int {}".format(n) for n in node.args) - return "int {}({});".format(node.name, args) + return "{};".format(self.generate_head(node)) return "" def generate(self, node): case = node.__class__ if case == DefNode: - args = ", ".join("int {}".format(n) for n in node.args) body = self.generate(node.body) - return "int {}({}) {{ return {}; }}".format(node.name, args, body) + return "{} {{ return {}; }}".format(self.generate_head(node), body) if case == IntegerNode: return str(node.value) if case == CallNode: