summaryrefslogtreecommitdiff
path: root/src/mem/slicc/symbols/SymbolTable.py
diff options
context:
space:
mode:
authorNathan Binkert <nate@binkert.org>2010-03-10 16:22:26 -0800
committerNathan Binkert <nate@binkert.org>2010-03-10 16:22:26 -0800
commitcf86532857ba1e199db6ff16541e7242c6225ff0 (patch)
treee107e443364bd326d791d2c19e126986cf4aa022 /src/mem/slicc/symbols/SymbolTable.py
parent1068ca85d0a29bfa71dc6a21a8d6c8888dce4bc3 (diff)
downloadgem5-cf86532857ba1e199db6ff16541e7242c6225ff0.tar.xz
slicc: have a central mechanism for creating a code_formatter.
This makes it easier to add global variables like protocol
Diffstat (limited to 'src/mem/slicc/symbols/SymbolTable.py')
-rw-r--r--src/mem/slicc/symbols/SymbolTable.py13
1 files changed, 9 insertions, 4 deletions
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('''
<html>
<head>
@@ -154,7 +159,7 @@ class SymbolTable(object):
''')
code.write(path, "index.html")
- code = code_formatter()
+ code = self.codeFormatter()
code("<HTML></HTML>")
code.write(path, "empty.html")