code_formatter: make it easier to insert whitespace
authorNathan Binkert <nate@binkert.org>
Thu, 9 Sep 2010 21:15:41 +0000 (14:15 -0700)
committerNathan Binkert <nate@binkert.org>
Thu, 9 Sep 2010 21:15:41 +0000 (14:15 -0700)
a newline by just doing "code()". indent() and dedent() now take a
"count" parameter to indent/dedent multiple levels.

src/mem/slicc/symbols/StateMachine.py
src/python/m5/util/code_formatter.py

index e572755278d5b6ed6b7bf7a265bf8f3bb187a4f2..c1926fbabce9589f9755456f086d864686d6f562 100644 (file)
@@ -559,17 +559,17 @@ $vid->setDescription("[Version " + to_string(m_version) + ", ${ident}, name=${{v
 
 
         # Set the queue consumers
-        code.insert_newline()
+        code()
         for port in self.in_ports:
             code('${{port.code}}.setConsumer(this);')
 
         # Set the queue descriptions
-        code.insert_newline()
+        code()
         for port in self.in_ports:
             code('${{port.code}}.setDescription("[Version " + to_string(m_version) + ", $ident, $port]");')
 
         # Initialize the transition profiling
-        code.insert_newline()
+        code()
         for trans in self.transitions:
             # Figure out if we stall
             stall = False
index 47106e0d94cd7add6572a159db85b651a4b6ff01..023e189cd984f46d06cc72374b49ae0ad8944ac9 100644 (file)
@@ -131,12 +131,12 @@ class code_formatter(object):
         if args:
             self.__call__(args)
 
-    def indent(self):
-        self._indent_level += self._indent_spaces
+    def indent(self, count=1):
+        self._indent_level += self._indent_spaces * count
 
-    def dedent(self):
-        assert self._indent_level >= self._indent_spaces
-        self._indent_level -= self._indent_spaces
+    def dedent(self, count=1):
+        assert self._indent_level >= (self._indent_spaces * count)
+        self._indent_level -= self._indent_spaces * count
 
     def fix(self, status):
         previous = self._fix_newlines
@@ -200,10 +200,14 @@ class code_formatter(object):
 
             initial_newline = False
 
-    def insert_newline(self):
-        self._data.append('\n')
+    def __call__(self, *args, **kwargs):
+        if not args:
+            self._data.append('\n')
+            return
+
+        format = args[0]
+        args = args[1:]
 
-    def __call__(self, format, *args, **kwargs):
         frame = inspect.currentframe().f_back
 
         l = lookup(self, frame, *args, **kwargs)