TypeFieldEnumAST.py (9298:9a087e046c58) TypeFieldEnumAST.py (11320:42ecb523c64a)
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;

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

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.")
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;

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

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
44
45 # Add enumeration
46 if not type.addEnum(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
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)
57
58 if str(type) == "RequestType":
59 if not machine:
60 self.error("RequestType declaration not part of a machine.")
61 s = RequestType(self.symtab, self.field_id, self.location,
62 self.pairs)
63 machine.addRequestType(s)
45 # Add enumeration
46 if not type.addEnum(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
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)
57
58 if str(type) == "RequestType":
59 if not machine:
60 self.error("RequestType declaration not part of a machine.")
61 s = RequestType(self.symtab, self.field_id, self.location,
62 self.pairs)
63 machine.addRequestType(s)