Browse Source

Fix the compiler for better function declaration parsing

Yentl Van Tendeloo 8 years ago
parent
commit
6898835b72

BIN
bootstrap/bootstrap.m.gz


+ 2 - 2
interface/HUTN/hutn_compiler/declare_functions_visitor.py

@@ -13,7 +13,7 @@ class DeclareFunctionsVisitor(Visitor):
     def compute_parameter_types(self, tree):
         parameter_types = []
         for parameter in tree.get_children('parameter'):
-            type_specifier = parameter.get_tail()[2].get_text()
+            type_specifier = parameter.get_children("type_specifier")[0].get_text()
             parameter_types.append(types_mv.string_to_type(type_specifier))
         return parameter_types
 
@@ -23,7 +23,7 @@ class DeclareFunctionsVisitor(Visitor):
         return func_type
 
     def visit_funcdecl(self, tree):
-        func_name = tree.get_tail()[2].get_text()
+        func_name = tree.get_children("func_name")[0].get_text()
         func_type = self.compute_func_type(tree)
         parameter_types = self.compute_parameter_types(tree)
         self.set_type(tree, func_type)

+ 2 - 0
interface/HUTN/hutn_compiler/primitives_visitor.py

@@ -378,8 +378,10 @@ class PrimitivesVisitor(Visitor):
                     # Add the name in case we want to pre-compile in the MvK
                     self.dict(n, "name", self.value(string.ascii_lowercase[i]))
             b = self.get_primitive(func_body)
+
             if tree.get_children("MUTABLE"):
                 self.dict(vf, "mutable", self.node())
+
             self.dict(vf, "body", b)
         else:
             # TODO: fix funcdecl special case: "X function f(...) = ..."