summaryrefslogtreecommitdiff
path: root/src/mem/slicc/ast/InPortDeclAST.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/slicc/ast/InPortDeclAST.py')
-rw-r--r--src/mem/slicc/ast/InPortDeclAST.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mem/slicc/ast/InPortDeclAST.py b/src/mem/slicc/ast/InPortDeclAST.py
index ad48ea4b8..5aa27bae8 100644
--- a/src/mem/slicc/ast/InPortDeclAST.py
+++ b/src/mem/slicc/ast/InPortDeclAST.py
@@ -30,6 +30,8 @@ from slicc.ast.TypeAST import TypeAST
from slicc.symbols import Func, Type, Var
class InPortDeclAST(DeclAST):
+ max_port_rank = 0
+
def __init__(self, slicc, ident, msg_type, var_expr, pairs, statements):
super(InPortDeclAST, self).__init__(slicc, pairs)
@@ -38,6 +40,9 @@ class InPortDeclAST(DeclAST):
self.var_expr = var_expr
self.statements = statements
self.queue_type = TypeAST(slicc, "InPort")
+ if self.pairs.has_key("rank"):
+ InPortDeclAST.max_port_rank = max(self.pairs["rank"],
+ InPortDeclAST.max_port_rank)
def __repr__(self):
return "[InPortDecl: %s]" % self.ident
@@ -126,3 +131,6 @@ class InPortDeclAST(DeclAST):
self.error("InPort declaration not part of a machine.")
machine.addInPort(in_port)
+
+ # Include max_rank to be used by StateMachine.py
+ in_port["max_port_rank"] = InPortDeclAST.max_port_rank