ruby: slicc: slight change to rule for transitions
authorNilay Vaish <nilay@cs.wisc.edu>
Sat, 19 Apr 2014 14:00:31 +0000 (09:00 -0500)
committerNilay Vaish <nilay@cs.wisc.edu>
Sat, 19 Apr 2014 14:00:31 +0000 (09:00 -0500)
It had an unnecessary pairs token which is being removed.

src/mem/slicc/ast/DeclAST.py
src/mem/slicc/ast/TransitionDeclAST.py
src/mem/slicc/parser.py
src/mem/slicc/symbols/Transition.py

index 1adb313213b35632c3080001860b7c4abed21cd1..8b0f4ea961b362cc524b6b04d9024d5302ff52c7 100644 (file)
@@ -28,7 +28,7 @@
 from slicc.ast.AST import AST
 
 class DeclAST(AST):
-    def __init__(self, slicc, pairs):
+    def __init__(self, slicc, pairs = None):
         super(DeclAST, self).__init__(slicc, pairs)
 
     def files(self, parent=None):
index 41e5b9aff6a6b538e5ebc07052129bda378d66e5..2de70794050fe51a546116a6fdc14ac724ab3934 100644 (file)
@@ -29,9 +29,9 @@ from slicc.ast.DeclAST import DeclAST
 from slicc.symbols import Transition
 
 class TransitionDeclAST(DeclAST):
-    def __init__(self, slicc, request_types, states, events, next_state, pairs,
+    def __init__(self, slicc, request_types, states, events, next_state,
                  actions):
-        super(TransitionDeclAST, self).__init__(slicc, pairs)
+        super(TransitionDeclAST, self).__init__(slicc)
 
         self.request_types = request_types
         self.states = states
@@ -69,6 +69,5 @@ class TransitionDeclAST(DeclAST):
                     self.error("Invalid event: %s is not part of machine: %s" % \
                                (event, machine))
                 t = Transition(self.symtab, machine, state, event, next_state,
-                               self.actions, self.request_types, self.location,
-                               self.pairs)
+                               self.actions, self.request_types, self.location)
                 machine.addTransition(t)
index d0d26afe812a362cf50023cde501e06094d9c6cf..1a8fbd93793e4a69121313536869cd692249bd89 100644 (file)
@@ -278,20 +278,20 @@ class SLICC(Grammar):
         p[0] = ast.OutPortDeclAST(self, p[3], p[5], p[7], p[8])
 
     def p_decl__trans0(self, p):
-        "decl : TRANS '(' idents ',' idents ',' ident pairs ')' idents"
-        p[0] = ast.TransitionDeclAST(self, [], p[3], p[5], p[7], p[8], p[10])
+        "decl : TRANS '(' idents ',' idents ',' ident ')' idents"
+        p[0] = ast.TransitionDeclAST(self, [], p[3], p[5], p[7], p[9])
 
     def p_decl__trans1(self, p):
-        "decl : TRANS '(' idents ',' idents           pairs ')' idents"
-        p[0] = ast.TransitionDeclAST(self, [], p[3], p[5], None, p[6], p[8])
+        "decl : TRANS '(' idents ',' idents ')' idents"
+        p[0] = ast.TransitionDeclAST(self, [], p[3], p[5], None, p[7])
 
     def p_decl__trans2(self, p):
-        "decl : TRANS '(' idents ',' idents ',' ident pairs ')' idents idents"
-        p[0] = ast.TransitionDeclAST(self, p[10], p[3], p[5], p[7], p[8], p[11])
+        "decl : TRANS '(' idents ',' idents ',' ident ')' idents idents"
+        p[0] = ast.TransitionDeclAST(self, p[9], p[3], p[5], p[7], p[10])
 
     def p_decl__trans3(self, p):
-        "decl : TRANS '(' idents ',' idents           pairs ')' idents idents"
-        p[0] = ast.TransitionDeclAST(self, p[8], p[3], p[5], None, p[6], p[9])
+        "decl : TRANS '(' idents ',' idents ')' idents idents"
+        p[0] = ast.TransitionDeclAST(self, p[7], p[3], p[5], None, p[8])
 
     def p_decl__extern0(self, p):
         "decl : EXTERN_TYPE '(' type pairs ')' SEMI"
index 96bb0056c8c53e536fdac2b4239f9e369b566a56..4a7a72a6c4db9326f2b92837fecd23b284193523 100644 (file)
@@ -29,9 +29,9 @@ from slicc.symbols.Symbol import Symbol
 
 class Transition(Symbol):
     def __init__(self, table, machine, state, event, nextState, actions,
-                 request_types, location, pairs):
+                 request_types, location):
         ident = "%s|%s" % (state, event)
-        super(Transition, self).__init__(table, ident, location, pairs)
+        super(Transition, self).__init__(table, ident, location)
 
         self.state = machine.states[state]
         self.event = machine.events[event]