MemberExprAST.py (8644:acf68e5a8cd7) MemberExprAST.py (8936:c04af06738e0)
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;

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

53
54 # Verify that this is a valid field name for this type
55 if self.field in return_type.data_members:
56 # Return the type of the field
57 return return_type.data_members[self.field].type
58 else:
59 if "interface" in return_type:
60 interface_type = self.symtab.find(return_type["interface"]);
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;

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

53
54 # Verify that this is a valid field name for this type
55 if self.field in return_type.data_members:
56 # Return the type of the field
57 return return_type.data_members[self.field].type
58 else:
59 if "interface" in return_type:
60 interface_type = self.symtab.find(return_type["interface"]);
61 if self.field in interface_type.data_members:
62 # Return the type of the field
63 return interface_type.data_members[self.field].type
61 if interface_type != None:
62 if self.field in interface_type.data_members:
63 # Return the type of the field
64 return interface_type.data_members[self.field].type
64 self.error("Invalid object field: " +
65 "Type '%s' does not have data member %s" % \
66 (return_type, self.field))
65 self.error("Invalid object field: " +
66 "Type '%s' does not have data member %s" % \
67 (return_type, self.field))