changeset 2a1a21f79047 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=2a1a21f79047
description:
ruby: slicc: derive DataMember class from Var instead of PairContainer
The DataMember class in Type.py was being derived from PairContainer. A
separate Var object was also created for the DataMember. This meant
some
duplication of across the members of these two classes (Var and
DataMember).
This patch changes DataMember from Var instead. There is no obvious
reason to
derive from PairContainer which can only hold pairs, something that Var
class
already supports. The only thing that DataMember has over Var is
init_code,
which is being retained. This change would later on help in having
pointers
in DataMembers.
diffstat:
src/mem/slicc/symbols/Type.py | 19 +++++++++----------
1 files changed, 9 insertions(+), 10 deletions(-)
diffs (37 lines):
diff -r d6fb95dbf3e2 -r 2a1a21f79047 src/mem/slicc/symbols/Type.py
--- a/src/mem/slicc/symbols/Type.py Thu Sep 17 14:00:33 2015 -0400
+++ b/src/mem/slicc/symbols/Type.py Fri Sep 18 13:27:47 2015 -0500
@@ -31,11 +31,11 @@
from slicc.symbols.Symbol import Symbol
from slicc.symbols.Var import Var
-class DataMember(PairContainer):
- def __init__(self, ident, type, pairs, init_code):
- super(DataMember, self).__init__(pairs)
- self.ident = ident
- self.type = type
+class DataMember(Var):
+ def __init__(self, symtab, ident, location, type, code, pairs,
+ machine, init_code):
+ super(DataMember, self).__init__(symtab, ident, location, type,
+ code, pairs, machine)
self.init_code = init_code
class Enumeration(PairContainer):
@@ -126,12 +126,11 @@
if ident in self.data_members:
return False
- member = DataMember(ident, type, pairs, init_code)
+ member = DataMember(self.symtab, ident, self.location, type,
+ "m_%s" % ident, pairs, None, init_code)
+
self.data_members[ident] = member
-
- var = Var(self.symtab, ident, self.location, type,
- "m_%s" % ident, {}, None)
- self.symtab.registerSym(ident, var)
+ self.symtab.registerSym(ident, member)
return True
def dataMemberType(self, ident):
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev