TypeFieldEnumAST.py (6657:ef5fae93a3b2) TypeFieldEnumAST.py (6690:4dc4e494e4d8)
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 # Add enumeration
43 if not type.enumAdd(self.field_id, self.pairs_ast.pairs):
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 # Add enumeration
43 if not type.enumAdd(self.field_id, self.pairs_ast.pairs):
44 error("Duplicate enumeration: %s:%s" % (type, self.field_id))
44 self.error("Duplicate enumeration: %s:%s" % (type, self.field_id))
45
46 # Fill machine info
47 machine = self.symtab.state_machine
48
49 if str(type) == "State":
50 if not machine:
45
46 # Fill machine info
47 machine = self.symtab.state_machine
48
49 if str(type) == "State":
50 if not machine:
51 error("State declaration not part of a 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:
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 error("Event declaration not part of a 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)
58 e = Event(self.symtab, self.field_id, self.location, self.pairs)
59 machine.addEvent(e)