From 43e4f59e4f8a055aad856b6b0dd9df6d422c815d Mon Sep 17 00:00:00 2001 From: Brad Beckmann Date: Fri, 29 Jan 2010 20:29:13 -0800 Subject: [PATCH] ruby: Added message type check to OutPortDeclAST.py Though OutPort's message type is not used to generate code, this fix checks that the programmer's intent is correct. Eventually, we may want to remove the message type from the OutPort declaration statement. --- src/mem/slicc/ast/OutPortDeclAST.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/mem/slicc/ast/OutPortDeclAST.py b/src/mem/slicc/ast/OutPortDeclAST.py index e6ef31928..a387f6d91 100644 --- a/src/mem/slicc/ast/OutPortDeclAST.py +++ b/src/mem/slicc/ast/OutPortDeclAST.py @@ -30,6 +30,7 @@ from m5.util import code_formatter from slicc.ast.DeclAST import DeclAST from slicc.ast.TypeAST import TypeAST from slicc.symbols import Var +from slicc.symbols import Type class OutPortDeclAST(DeclAST): def __init__(self, slicc, ident, msg_type, var_expr, pairs): @@ -52,6 +53,10 @@ class OutPortDeclAST(DeclAST): "attribute. Type '%s' does not have this attribute.", (queue_type)) + if not self.symtab.find(self.msg_type.ident, Type): + self.error("The message type '%s' does not exist.", + self.msg_type.ident) + var = Var(self.symtab, self.ident, self.location, self.queue_type.type, str(code), self.pairs) self.symtab.newSymbol(var)