fixed error message generation bug in SLICC ast files
authorBrad Beckmann <Brad.Beckmann@amd.com>
Tue, 27 Oct 2009 00:06:32 +0000 (17:06 -0700)
committerBrad Beckmann <Brad.Beckmann@amd.com>
Tue, 27 Oct 2009 00:06:32 +0000 (17:06 -0700)
src/mem/slicc/ast/ChipComponentAccessAST.py
src/mem/slicc/ast/MemberExprAST.py
src/mem/slicc/ast/MethodCallExprAST.py
src/mem/slicc/ast/ReturnStatementAST.py
src/mem/slicc/ast/TypeFieldEnumAST.py
src/mem/slicc/ast/TypeFieldMemberAST.py
src/mem/slicc/ast/TypeFieldMethodAST.py

index 841220c9488161c26863521edb260e4348402362..bbb1b61e9c957ea20a97c16c769fb33ac2b96e23 100644 (file)
@@ -85,8 +85,8 @@ class ChipMethodAccessAST(ChipComponentAccessAST):
 
         # Verify that this is a method of the object
         if not var.type.methodExist(methodId):
-            error("%s: Type '%s' does not have a method '%s'" % \
-                  ("Invalid method call", var.type, methodId))
+            self.error("%s: Type '%s' does not have a method '%s'" % \
+                       ("Invalid method call", var.type, methodId))
 
         expected_size = len(var.type.methodParamType(methodId))
         if len(self.expr_vec) != expected_size:
index 113bb188a4d81a0e92562a7d452b3212d8e041d9..c62e287416080886f9c8d99b83ee5813a31e6a5c 100644 (file)
@@ -47,9 +47,9 @@ class MemberExprAST(ExprAST):
 
         # Verify that this is a valid field name for this type
         if self.field not in return_type.data_members:
-            error("Invalid object field: " +
-                  "Type '%s' does not have data member %s" % \
-                  (return_type, self.field))
+            self.error("Invalid object field: " +
+                       "Type '%s' does not have data member %s" % \
+                       (return_type, self.field))
 
         # Return the type of the field
         return return_type.data_members[self.field].type
index ecfe43cdbd0c17cfcc2ac01abc6c91ffe13e4498..d423ee4a7c00ac11e50a28e3286cad41a4155ee2 100644 (file)
@@ -55,22 +55,22 @@ class MethodCallExprAST(ExprAST):
 
         # Verify that this is a method of the object
         if methodId not in obj_type.methods:
-            error("Invalid method call: Type '%s' does not have a method '%s'",
-                  obj_type, methodId)
+            self.error("Invalid method call: Type '%s' does not have a method '%s'",
+                       obj_type, methodId)
 
         if len(self.expr_ast_vec) != \
                len(obj_type.methods[methodId].param_types):
             # Right number of parameters
-            error("Wrong number of parameters for function name: '%s', " + \
-                  "expected: , actual: ", proc_name,
+            self.error("Wrong number of parameters for function name: '%s', " + \
+                       "expected: , actual: ", proc_name,
                   len(obj_type.methods[methodId].param_types),
                   len(self.expr_ast_vec))
 
         for actual_type, expected_type in \
                 zip(paramTypes, obj_type.methods[methodId].param_types):
             if actual_type != expected_type:
-                error("Type mismatch: expected: %s actual: %s",
-                       expected_type, actual_type)
+                self.error("Type mismatch: expected: %s actual: %s",
+                           expected_type, actual_type)
 
         # Return the return type of the method
         return obj_type.methods[methodId].return_type
index 1d08a7234e11b46ed84d8d729d39f9de1ee42650..f1aff1c3280fdebdb16d7891c2ac0fcabfca3287 100644 (file)
@@ -42,7 +42,7 @@ class ReturnStatementAST(StatementAST):
 
         # Is return valid here?
         if return_type is None:
-            error("Invalid 'return' statement")
+            self.error("Invalid 'return' statement")
 
         # The return type must match
         if return_type != actual_type:
index d068666ad49722ff8e4aebb863f4127590b96e41..138fff7930d164e44e92c1f15f10092e93ff1f52 100644 (file)
@@ -41,19 +41,19 @@ class TypeFieldEnumAST(TypeFieldAST):
     def generate(self, type):
         # Add enumeration
         if not type.enumAdd(self.field_id, self.pairs_ast.pairs):
-            error("Duplicate enumeration: %s:%s" % (type, self.field_id))
+            self.error("Duplicate enumeration: %s:%s" % (type, self.field_id))
 
         # Fill machine info
         machine = self.symtab.state_machine
 
         if str(type) == "State":
             if not machine:
-                error("State declaration not part of a machine.")
+                self.error("State declaration not part of a machine.")
             s = State(self.symtab, self.field_id, self.location, self.pairs)
             machine.addState(s)
 
         if str(type) == "Event":
             if not machine:
-                error("Event declaration not part of a machine.")
+                self.error("Event declaration not part of a machine.")
             e = Event(self.symtab, self.field_id, self.location, self.pairs)
             machine.addEvent(e)
index 285d5b6225c951e89593676ac75199ab23c1aaf2..a601536643933ac78d87bed83e39ef338dd94964 100644 (file)
@@ -54,4 +54,4 @@ class TypeFieldMemberAST(TypeFieldAST):
         if not type.dataMemberAdd(self.field_id, field_type, self.pairs,
                                   init_code):
 
-            error("Duplicate data member: %s:%s" % (type_ptr, field_id))
+            self.error("Duplicate data member: %s:%s" % (type_ptr, field_id))
index 337b15597254a8d9a068bd6068bbe73902e5668e..2c8cf3f7beb73ea93b53d3e2208550db7be5ee04 100644 (file)
@@ -47,4 +47,4 @@ class TypeFieldMethodAST(TypeFieldAST):
 
         # Add method
         if not type.methodAdd(self.ident, return_type, types):
-            error("Duplicate method: %s:%s()" % (type, self.ident))
+            self.error("Duplicate method: %s:%s()" % (type, self.ident))