1 #!/usr/bin/env python 2 3 """ 4 Additional program AST nodes. 5 6 Copyright (C) 2006, 2007 Paul Boddie <paul@boddie.org.uk> 7 8 This program is free software; you can redistribute it and/or modify it under 9 the terms of the GNU General Public License as published by the Free Software 10 Foundation; either version 3 of the License, or (at your option) any later 11 version. 12 13 This program is distributed in the hope that it will be useful, but WITHOUT 14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 15 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 16 details. 17 18 You should have received a copy of the GNU General Public License along with 19 this program. If not, see <http://www.gnu.org/licenses/>. 20 """ 21 22 class Self: 23 24 """ 25 A program node encapsulating object/context information in an argument list. 26 This is not particularly like Attribute, Class, Instance or other such 27 things, since it actually appears in the program representation. 28 """ 29 30 def __init__(self, attribute): 31 self.types = set() 32 self.types.add(attribute) 33 34 class Op: 35 36 "A replacement AST node representing an operation in a Compare construct." 37 38 def __init__(self, name, expr): 39 self.name = name 40 self.expr = expr 41 42 # vim: tabstop=4 expandtab shiftwidth=4