[Python-checkins] commit of r41438 - in python/trunk: Include Parser Python

neal.norwitz@python.org neal.norwitz at python.org
Sun Nov 13 20:14:22 CET 2005


Author: neal.norwitz
Date: Sun Nov 13 20:14:20 2005
New Revision: 41438

Modified:
   python/trunk/Include/Python-ast.h
   python/trunk/Include/asdl.h
   python/trunk/Parser/asdl_c.py
   python/trunk/Python/Python-ast.c
   python/trunk/Python/asdl.c
Log:
Whoops, checkin consistent versions of *all* files to stop polluting
a bunch of names


Modified: python/trunk/Include/Python-ast.h
==============================================================================
--- python/trunk/Include/Python-ast.h	(original)
+++ python/trunk/Include/Python-ast.h	Sun Nov 13 20:14:20 2005
@@ -34,6 +34,7 @@
 
 typedef struct _alias *alias_ty;
 
+
 struct _mod {
         enum { Module_kind=1, Interactive_kind=2, Expression_kind=3,
                Suite_kind=4 } kind;
@@ -326,6 +327,7 @@
         identifier asname;
 };
 
+
 mod_ty Module(asdl_seq * body);
 mod_ty Interactive(asdl_seq * body);
 mod_ty Expression(expr_ty body);
@@ -388,6 +390,7 @@
                        asdl_seq * defaults);
 keyword_ty keyword(identifier arg, expr_ty value);
 alias_ty alias(identifier name, identifier asname);
+
 void free_mod(mod_ty);
 void free_stmt(stmt_ty);
 void free_expr(expr_ty);
@@ -402,3 +405,4 @@
 void free_arguments(arguments_ty);
 void free_keyword(keyword_ty);
 void free_alias(alias_ty);
+

Modified: python/trunk/Include/asdl.h
==============================================================================
--- python/trunk/Include/asdl.h	(original)
+++ python/trunk/Include/asdl.h	Sun Nov 13 20:14:20 2005
@@ -44,11 +44,4 @@
 #endif
 #define asdl_seq_LEN(S) ((S) == NULL ? 0 : (S)->size)
 
-/* Routines to marshal the basic types. */
-int marshal_write_int(PyObject **, int *, int);
-int marshal_write_bool(PyObject **, int *, bool);
-int marshal_write_identifier(PyObject **, int *, identifier);
-int marshal_write_string(PyObject **, int *, string);
-int marshal_write_object(PyObject **, int *, object);
-
 #endif /* !Py_ASDL_H */

Modified: python/trunk/Parser/asdl_c.py
==============================================================================
--- python/trunk/Parser/asdl_c.py	(original)
+++ python/trunk/Parser/asdl_c.py	Sun Nov 13 20:14:20 2005
@@ -367,7 +367,12 @@
 
 
 class StaticVisitor(PickleVisitor):
-    '''Very simple, always emit this static code'''
+    CODE = '''Very simple, always emit this static code.  Overide CODE'''
+
+    def visit(self, object):
+        self.emit(self.CODE, 0, reflow=False)
+
+class FreeUtilVisitor(StaticVisitor):
 
     CODE = '''static void
 free_seq_exprs(asdl_seq *seq)
@@ -390,10 +395,6 @@
 }
 '''
 
-    def visit(self, object):
-        self.emit(self.CODE, 0, reflow=False)
-
-
 class FreeVisitor(PickleVisitor):
 
     def func_begin(self, name, has_seq):
@@ -483,6 +484,77 @@
             self.emit("free_%s((%s)%s);" % (field.type, ctype, value), depth)
         
 
+class MarshalUtilVisitor(StaticVisitor):
+
+    CODE = '''
+#define CHECKSIZE(BUF, OFF, MIN) { \\
+	int need = *(OFF) + MIN; \\
+	if (need >= PyString_GET_SIZE(*(BUF))) { \\
+		int newsize = PyString_GET_SIZE(*(BUF)) * 2; \\
+		if (newsize < need) \\
+			newsize = need; \\
+		if (_PyString_Resize((BUF), newsize) < 0) \\
+			return 0; \\
+	} \\
+} 
+
+static int 
+marshal_write_int(PyObject **buf, int *offset, int x)
+{
+	char *s;
+
+	CHECKSIZE(buf, offset, 4)
+	s = PyString_AS_STRING(*buf) + (*offset);
+	s[0] = (x & 0xff);
+	s[1] = (x >> 8) & 0xff;
+	s[2] = (x >> 16) & 0xff;
+	s[3] = (x >> 24) & 0xff;
+	*offset += 4;
+	return 1;
+}
+
+static int 
+marshal_write_bool(PyObject **buf, int *offset, bool b)
+{
+	if (b)
+		marshal_write_int(buf, offset, 1);
+	else
+		marshal_write_int(buf, offset, 0);
+	return 1;
+}
+
+static int 
+marshal_write_identifier(PyObject **buf, int *offset, identifier id)
+{
+	int l = PyString_GET_SIZE(id);
+	marshal_write_int(buf, offset, l);
+	CHECKSIZE(buf, offset, l);
+	memcpy(PyString_AS_STRING(*buf) + *offset,
+	       PyString_AS_STRING(id), l);
+	*offset += l;
+	return 1;
+}
+
+static int 
+marshal_write_string(PyObject **buf, int *offset, string s)
+{
+	int len = PyString_GET_SIZE(s);
+	marshal_write_int(buf, offset, len);
+	CHECKSIZE(buf, offset, len);
+	memcpy(PyString_AS_STRING(*buf) + *offset,
+	       PyString_AS_STRING(s), len);
+	*offset += len;
+	return 1;
+}
+
+static int 
+marshal_write_object(PyObject **buf, int *offset, object s)
+{
+	/* XXX */
+	return 0;
+}
+'''
+
 class MarshalFunctionVisitor(PickleVisitor):
 
     def func_begin(self, name, has_seq):
@@ -563,6 +635,7 @@
     def visit(self, object):
         for v in self.visitors:
             v.visit(object)
+            v.emit("", 0)
 
 def main(srcfile):
     auto_gen_msg = '/* File automatically generated by %s */\n' % sys.argv[0]
@@ -595,8 +668,9 @@
     print >> f
     v = ChainOfVisitors(MarshalPrototypeVisitor(f),
                         FunctionVisitor(f),
-                        StaticVisitor(f),
+                        FreeUtilVisitor(f),
                         FreeVisitor(f),
+                        MarshalUtilVisitor(f),
                         MarshalFunctionVisitor(f),
                         )
     v.visit(mod)

Modified: python/trunk/Python/Python-ast.c
==============================================================================
--- python/trunk/Python/Python-ast.c	(original)
+++ python/trunk/Python/Python-ast.c	Sun Nov 13 20:14:20 2005
@@ -17,6 +17,7 @@
 static int marshal_write_arguments(PyObject **, int *, arguments_ty);
 static int marshal_write_keyword(PyObject **, int *, keyword_ty);
 static int marshal_write_alias(PyObject **, int *, alias_ty);
+
 mod_ty
 Module(asdl_seq * body)
 {
@@ -1087,6 +1088,7 @@
         return p;
 }
 
+
 static void
 free_seq_exprs(asdl_seq *seq)
 {
@@ -1107,6 +1109,7 @@
         asdl_seq_free(seq);
 }
 
+
 void
 free_mod(mod_ty o)
 {
@@ -1533,6 +1536,76 @@
         free(o);
 }
 
+
+
+#define CHECKSIZE(BUF, OFF, MIN) { \
+	int need = *(OFF) + MIN; \
+	if (need >= PyString_GET_SIZE(*(BUF))) { \
+		int newsize = PyString_GET_SIZE(*(BUF)) * 2; \
+		if (newsize < need) \
+			newsize = need; \
+		if (_PyString_Resize((BUF), newsize) < 0) \
+			return 0; \
+	} \
+} 
+
+static int 
+marshal_write_int(PyObject **buf, int *offset, int x)
+{
+	char *s;
+
+	CHECKSIZE(buf, offset, 4)
+	s = PyString_AS_STRING(*buf) + (*offset);
+	s[0] = (x & 0xff);
+	s[1] = (x >> 8) & 0xff;
+	s[2] = (x >> 16) & 0xff;
+	s[3] = (x >> 24) & 0xff;
+	*offset += 4;
+	return 1;
+}
+
+static int 
+marshal_write_bool(PyObject **buf, int *offset, bool b)
+{
+	if (b)
+		marshal_write_int(buf, offset, 1);
+	else
+		marshal_write_int(buf, offset, 0);
+	return 1;
+}
+
+static int 
+marshal_write_identifier(PyObject **buf, int *offset, identifier id)
+{
+	int l = PyString_GET_SIZE(id);
+	marshal_write_int(buf, offset, l);
+	CHECKSIZE(buf, offset, l);
+	memcpy(PyString_AS_STRING(*buf) + *offset,
+	       PyString_AS_STRING(id), l);
+	*offset += l;
+	return 1;
+}
+
+static int 
+marshal_write_string(PyObject **buf, int *offset, string s)
+{
+	int len = PyString_GET_SIZE(s);
+	marshal_write_int(buf, offset, len);
+	CHECKSIZE(buf, offset, len);
+	memcpy(PyString_AS_STRING(*buf) + *offset,
+	       PyString_AS_STRING(s), len);
+	*offset += len;
+	return 1;
+}
+
+static int 
+marshal_write_object(PyObject **buf, int *offset, object s)
+{
+	/* XXX */
+	return 0;
+}
+
+
 static int
 marshal_write_mod(PyObject **buf, int *off, mod_ty o)
 {
@@ -2286,3 +2359,4 @@
         return 1;
 }
 
+

Modified: python/trunk/Python/asdl.c
==============================================================================
--- python/trunk/Python/asdl.c	(original)
+++ python/trunk/Python/asdl.c	Sun Nov 13 20:14:20 2005
@@ -24,69 +24,3 @@
 	PyObject_Free(seq);
 }
 
-#define CHECKSIZE(BUF, OFF, MIN) { \
-	int need = *(OFF) + MIN; \
-	if (need >= PyString_GET_SIZE(*(BUF))) { \
-		int newsize = PyString_GET_SIZE(*(BUF)) * 2; \
-		if (newsize < need) \
-			newsize = need; \
-		if (_PyString_Resize((BUF), newsize) < 0) \
-			return 0; \
-	} \
-} 
-
-int 
-marshal_write_int(PyObject **buf, int *offset, int x)
-{
-	char *s;
-
-	CHECKSIZE(buf, offset, 4)
-	s = PyString_AS_STRING(*buf) + (*offset);
-	s[0] = (x & 0xff);
-	s[1] = (x >> 8) & 0xff;
-	s[2] = (x >> 16) & 0xff;
-	s[3] = (x >> 24) & 0xff;
-	*offset += 4;
-	return 1;
-}
-
-int 
-marshal_write_bool(PyObject **buf, int *offset, bool b)
-{
-	if (b)
-		marshal_write_int(buf, offset, 1);
-	else
-		marshal_write_int(buf, offset, 0);
-	return 1;
-}
-
-int 
-marshal_write_identifier(PyObject **buf, int *offset, identifier id)
-{
-	int l = PyString_GET_SIZE(id);
-	marshal_write_int(buf, offset, l);
-	CHECKSIZE(buf, offset, l);
-	memcpy(PyString_AS_STRING(*buf) + *offset,
-	       PyString_AS_STRING(id), l);
-	*offset += l;
-	return 1;
-}
-
-int 
-marshal_write_string(PyObject **buf, int *offset, string s)
-{
-	int len = PyString_GET_SIZE(s);
-	marshal_write_int(buf, offset, len);
-	CHECKSIZE(buf, offset, len);
-	memcpy(PyString_AS_STRING(*buf) + *offset,
-	       PyString_AS_STRING(s), len);
-	*offset += len;
-	return 1;
-}
-
-int 
-marshal_write_object(PyObject **buf, int *offset, object s)
-{
-	/* XXX */
-	return 0;
-}


More information about the Python-checkins mailing list