From dd5c72e5a7e09634c992092f80dafe82f4274d45 Mon Sep 17 00:00:00 2001 From: Nilay Vaish Date: Thu, 20 Feb 2014 17:26:49 -0600 Subject: [PATCH] ruby: slicc: slight code refactoring --- src/mem/slicc/ast/MethodCallExprAST.py | 26 ++++++++++++-------------- src/mem/slicc/ast/ObjDeclAST.py | 6 ------ 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/src/mem/slicc/ast/MethodCallExprAST.py b/src/mem/slicc/ast/MethodCallExprAST.py index cf30cfa96..bf133b374 100644 --- a/src/mem/slicc/ast/MethodCallExprAST.py +++ b/src/mem/slicc/ast/MethodCallExprAST.py @@ -140,23 +140,21 @@ class MemberMethodCallExprAST(MethodCallExprAST): implemented_paramTypes.append(implemented_paramType) + implementedMethodId = "" if implements_interface: - implementedMethodId = obj_type.methodIdAbstract(self.proc_name, - implemented_paramTypes) - else: - implementedMethodId = "" + implementedMethodId = obj_type.methodIdAbstract( + self.proc_name, implemented_paramTypes) if implementedMethodId not in obj_type.methods: - self.error("Invalid method call: " \ - "Type '%s' does not have a method %s, '%s' nor '%s'", - obj_type, self.proc_name, methodId, implementedMethodId) - else: - # - # Replace the methodId with the implementedMethodId found in - # the method list. - # - methodId = implementedMethodId - return_type = obj_type.methods[methodId].return_type + self.error("Invalid method call: Type '%s' " \ + "does not have a method %s, '%s' nor '%s'", + obj_type, self.proc_name, methodId, + implementedMethodId) + + # Replace the methodId with the implementedMethodId + # found in the method list. + methodId = implementedMethodId + return_type = obj_type.methods[methodId].return_type if return_type.isInterface: prefix = "static_cast<%s &>" % return_type.c_ident diff --git a/src/mem/slicc/ast/ObjDeclAST.py b/src/mem/slicc/ast/ObjDeclAST.py index a87ede724..4fd85d143 100644 --- a/src/mem/slicc/ast/ObjDeclAST.py +++ b/src/mem/slicc/ast/ObjDeclAST.py @@ -39,8 +39,6 @@ class ObjDeclAST(DeclAST): return "[ObjDecl: %r]" % self.ident def generate(self): - machineComponentSym = False - if "network" in self and not ("virtual_network" in self or "physical_network" in self) : self.error("Network queues require a 'virtual_network' attribute") @@ -84,7 +82,3 @@ class ObjDeclAST(DeclAST): machine.addObject(v) self.symtab.newSymbol(v) - - # used to cheat-- that is, access components in other machines - if machineComponentSym: - self.symtab.newMachComponentSym(v) -- 2.30.2