From c6f1d959be74de55b0c90f3c961314791342d03e Mon Sep 17 00:00:00 2001 From: Steve Reinhardt Date: Fri, 29 Jan 2010 20:29:17 -0800 Subject: ruby: Make SLICC-generated objects SimObjects. Also add SLICC support for state-machine parameter defaults (passed through to Python as SimObject Param defaults). --- src/mem/slicc/symbols/SymbolTable.py | 57 ------------------------------------ 1 file changed, 57 deletions(-) (limited to 'src/mem/slicc/symbols/SymbolTable.py') diff --git a/src/mem/slicc/symbols/SymbolTable.py b/src/mem/slicc/symbols/SymbolTable.py index 6b1bf13e6..deb971eb9 100644 --- a/src/mem/slicc/symbols/SymbolTable.py +++ b/src/mem/slicc/symbols/SymbolTable.py @@ -133,63 +133,6 @@ class SymbolTable(object): for symbol in self.sym_vec: symbol.writeCodeFiles(path) - self.writeControllerFactory(path) - - def writeControllerFactory(self, path): - code = code_formatter() - - code(''' -/** \\file ControllerFactory.hh - * Auto generatred C++ code started by $__file__:$__line__ - */ - -#ifndef CONTROLLERFACTORY_H -#define CONTROLLERFACTORY_H - -#include -class Network; -class AbstractController; - -class ControllerFactory { - public: - static AbstractController *createController(const std::string &controller_type, const std::string &name); -}; -#endif // CONTROLLERFACTORY_H''') - code.write(path, "ControllerFactory.hh") - - code = code_formatter() - code(''' -/** \\file ControllerFactory.cc - * Auto generatred C++ code started by $__file__:$__line__ - */ - -#include "mem/protocol/ControllerFactory.hh" -#include "mem/ruby/slicc_interface/AbstractController.hh" -#include "mem/protocol/MachineType.hh" -''') - - controller_types = [] - for symbol in self.getAllType(StateMachine): - code('#include "mem/protocol/${{symbol.ident}}_Controller.hh"') - controller_types.append(symbol.ident) - - code(''' -AbstractController *ControllerFactory::createController(const std::string &controller_type, const std::string &name) { -''') - - for ct in controller_types: - code(''' - if (controller_type == "$ct") - return new ${ct}_Controller(name); -''') - - code(''' - assert(0); // invalid controller type - return NULL; -} -''') - code.write(path, "ControllerFactory.cc") - def writeHTMLFiles(self, path): machines = list(self.getAllType(StateMachine)) if len(machines) > 1: -- cgit v1.2.3