TypeFieldEnumAST.py (6690:4dc4e494e4d8) TypeFieldEnumAST.py (8086:bf0335d98250)
1# Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
2# Copyright (c) 2009 The Hewlett-Packard Development Company
3# All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions are
7# met: redistributions of source code must retain the above copyright
8# notice, this list of conditions and the following disclaimer;

--- 25 unchanged lines hidden (view full) ---

34
35 self.field_id = field_id
36 self.pairs_ast = pairs_ast
37
38 def __repr__(self):
39 return "[TypeFieldEnum: %r]" % self.field_id
40
41 def generate(self, type):
1# Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
2# Copyright (c) 2009 The Hewlett-Packard Development Company
3# All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions are
7# met: redistributions of source code must retain the above copyright
8# notice, this list of conditions and the following disclaimer;

--- 25 unchanged lines hidden (view full) ---

34
35 self.field_id = field_id
36 self.pairs_ast = pairs_ast
37
38 def __repr__(self):
39 return "[TypeFieldEnum: %r]" % self.field_id
40
41 def generate(self, type):
42 if str(type) == "State":
43 self.error("States must in a State Declaration, not a normal enum.")
44
42 # Add enumeration
43 if not type.enumAdd(self.field_id, self.pairs_ast.pairs):
44 self.error("Duplicate enumeration: %s:%s" % (type, self.field_id))
45
46 # Fill machine info
47 machine = self.symtab.state_machine
48
45 # Add enumeration
46 if not type.enumAdd(self.field_id, self.pairs_ast.pairs):
47 self.error("Duplicate enumeration: %s:%s" % (type, self.field_id))
48
49 # Fill machine info
50 machine = self.symtab.state_machine
51
49 if str(type) == "State":
50 if not machine:
51 self.error("State declaration not part of a machine.")
52 s = State(self.symtab, self.field_id, self.location, self.pairs)
53 machine.addState(s)
54
55 if str(type) == "Event":
56 if not machine:
57 self.error("Event declaration not part of a machine.")
58 e = Event(self.symtab, self.field_id, self.location, self.pairs)
59 machine.addEvent(e)
52 if str(type) == "Event":
53 if not machine:
54 self.error("Event declaration not part of a machine.")
55 e = Event(self.symtab, self.field_id, self.location, self.pairs)
56 machine.addEvent(e)