From cf86532857ba1e199db6ff16541e7242c6225ff0 Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Wed, 10 Mar 2010 16:22:26 -0800 Subject: slicc: have a central mechanism for creating a code_formatter. This makes it easier to add global variables like protocol --- src/mem/slicc/symbols/SymbolTable.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 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 deb971eb9..dd45ac06c 100644 --- a/src/mem/slicc/symbols/SymbolTable.py +++ b/src/mem/slicc/symbols/SymbolTable.py @@ -33,7 +33,9 @@ from slicc.symbols.Type import Type from slicc.util import Location class SymbolTable(object): - def __init__(self): + def __init__(self, slicc): + self.slicc = slicc + self.sym_vec = [] self.sym_map_vec = [ {} ] self.machine_components = {} @@ -52,6 +54,9 @@ class SymbolTable(object): def __repr__(self): return "[SymbolTable]" # FIXME + def codeFormatter(self, *args, **kwargs): + return self.slicc.codeFormatter(*args, **kwargs) + def newSymbol(self, sym): self.registerSym(str(sym), sym) self.sym_vec.append(sym) @@ -118,7 +123,7 @@ class SymbolTable(object): yield symbol def writeCodeFiles(self, path): - code = code_formatter() + code = self.codeFormatter() code(''' /** Auto generated C++ code started by $__file__:$__line__ */ @@ -140,7 +145,7 @@ class SymbolTable(object): else: name = "empty.html" - code = code_formatter() + code = self.codeFormatter() code(''' @@ -154,7 +159,7 @@ class SymbolTable(object): ''') code.write(path, "index.html") - code = code_formatter() + code = self.codeFormatter() code("") code.write(path, "empty.html") -- cgit v1.2.3