summaryrefslogtreecommitdiff
path: root/src/mem/slicc/ast/TypeFieldEnumAST.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/slicc/ast/TypeFieldEnumAST.py')
-rw-r--r--src/mem/slicc/ast/TypeFieldEnumAST.py9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/mem/slicc/ast/TypeFieldEnumAST.py b/src/mem/slicc/ast/TypeFieldEnumAST.py
index 138fff793..398604550 100644
--- a/src/mem/slicc/ast/TypeFieldEnumAST.py
+++ b/src/mem/slicc/ast/TypeFieldEnumAST.py
@@ -39,6 +39,9 @@ class TypeFieldEnumAST(TypeFieldAST):
return "[TypeFieldEnum: %r]" % self.field_id
def generate(self, type):
+ if str(type) == "State":
+ self.error("States must in a State Declaration, not a normal enum.")
+
# Add enumeration
if not type.enumAdd(self.field_id, self.pairs_ast.pairs):
self.error("Duplicate enumeration: %s:%s" % (type, self.field_id))
@@ -46,12 +49,6 @@ class TypeFieldEnumAST(TypeFieldAST):
# Fill machine info
machine = self.symtab.state_machine
- if str(type) == "State":
- if not machine:
- self.error("State declaration not part of a machine.")
- s = State(self.symtab, self.field_id, self.location, self.pairs)
- machine.addState(s)
-
if str(type) == "Event":
if not machine:
self.error("Event declaration not part of a machine.")