]> granicus.if.org Git - python/commitdiff
make this work on 2.4
authorBenjamin Peterson <benjamin@python.org>
Tue, 9 Aug 2011 23:38:57 +0000 (18:38 -0500)
committerBenjamin Peterson <benjamin@python.org>
Tue, 9 Aug 2011 23:38:57 +0000 (18:38 -0500)
Parser/asdl_c.py

index b4c31c34f5e7f6510be8cddd8cdcd98575201935..ce8425aa7c67ca284476d93966c14fee6b00216e 100755 (executable)
@@ -1,10 +1,10 @@
 #! /usr/bin/env python
 """Generate C code from an ASDL description."""
-from __future__ import with_statement
 
 # TO DO
 # handle fields that have a type but no name
 
+import errno
 import os
 import sys
 import StringIO
@@ -1170,11 +1170,23 @@ def main(srcfile):
         f.write("mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode);\n")
         f.write("int PyAST_Check(PyObject* obj);\n")
         s = f.getvalue()
-        with open(p, "r") as fp:
-            write = fp.read() != s
+        write = True
+        try:
+            fp = open(p, "r")
+        except IOError as e:
+            if e.errno != errno.ENOENT:
+                raise
+        else:
+            try:
+                write = fp.read() != s
+            finally:
+                fp.close()
         if write:
-            with open(p, "w") as fp:
-                f.write(s)
+            fp = open(p, "w")
+            try:
+                fp.write(s)
+            finally:
+                fp.close()
 
     if SRC_DIR:
         p = os.path.join(SRC_DIR, str(mod.name) + "-ast.c")