From 183100b8cbe137da906631166f6664e4ef1bb612 Mon Sep 17 00:00:00 2001 From: Nilay Vaish Date: Sat, 19 Apr 2014 09:00:31 -0500 Subject: [PATCH] ruby: slicc: slight change to rule for transitions It had an unnecessary pairs token which is being removed. --- src/mem/slicc/ast/DeclAST.py | 2 +- src/mem/slicc/ast/TransitionDeclAST.py | 7 +++---- src/mem/slicc/parser.py | 16 ++++++++-------- src/mem/slicc/symbols/Transition.py | 4 ++-- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/mem/slicc/ast/DeclAST.py b/src/mem/slicc/ast/DeclAST.py index 1adb31321..8b0f4ea96 100644 --- a/src/mem/slicc/ast/DeclAST.py +++ b/src/mem/slicc/ast/DeclAST.py @@ -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): diff --git a/src/mem/slicc/ast/TransitionDeclAST.py b/src/mem/slicc/ast/TransitionDeclAST.py index 41e5b9aff..2de707940 100644 --- a/src/mem/slicc/ast/TransitionDeclAST.py +++ b/src/mem/slicc/ast/TransitionDeclAST.py @@ -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) diff --git a/src/mem/slicc/parser.py b/src/mem/slicc/parser.py index d0d26afe8..1a8fbd937 100644 --- a/src/mem/slicc/parser.py +++ b/src/mem/slicc/parser.py @@ -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" diff --git a/src/mem/slicc/symbols/Transition.py b/src/mem/slicc/symbols/Transition.py index 96bb0056c..4a7a72a6c 100644 --- a/src/mem/slicc/symbols/Transition.py +++ b/src/mem/slicc/symbols/Transition.py @@ -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] -- 2.30.2