diff options
author | Guido van Rossum <guido@python.org> | 1993-10-26 17:58:25 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1993-10-26 17:58:25 (GMT) |
commit | 12d12c5faf4d770160b7975b54e8f9b12694e012 (patch) | |
tree | e5528ca45963a90c5797073228090d221cdc6bba /Include | |
parent | 444fc7c90cf210ec72f1c4204310f659263b6f75 (diff) | |
download | cpython-12d12c5faf4d770160b7975b54e8f9b12694e012.zip cpython-12d12c5faf4d770160b7975b54e8f9b12694e012.tar.gz cpython-12d12c5faf4d770160b7975b54e8f9b12694e012.tar.bz2 |
* compile.[ch]: support for lambda()
* PROTO.h, mymalloc.h: added #ifdefs for TURBOC and GNUC.
* allobjects.h: added #include "rangeobject.h"
* Grammar: added lambda_input; relaxed syntax for exec.
* bltinmodule.c: added bagof, map, reduce, lambda, xrange.
* tupleobject.[ch]: added resizetuple().
* rangeobject.[ch]: new object type to speed up range operations (not
convinced this is needed!!!)
Diffstat (limited to 'Include')
-rw-r--r-- | Include/allobjects.h | 1 | ||||
-rw-r--r-- | Include/compile.h | 4 | ||||
-rw-r--r-- | Include/graminit.h | 4 | ||||
-rw-r--r-- | Include/mymalloc.h | 10 | ||||
-rw-r--r-- | Include/rangeobject.h | 41 | ||||
-rw-r--r-- | Include/tupleobject.h | 1 |
6 files changed, 58 insertions, 3 deletions
diff --git a/Include/allobjects.h b/Include/allobjects.h index 8f9091a..17d6dd2 100644 --- a/Include/allobjects.h +++ b/Include/allobjects.h @@ -46,6 +46,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "intobject.h" #include "longobject.h" #include "floatobject.h" +#include "rangeobject.h" #include "stringobject.h" #include "tupleobject.h" #include "listobject.h" diff --git a/Include/compile.h b/Include/compile.h index a23fea1..2b0b29e 100644 --- a/Include/compile.h +++ b/Include/compile.h @@ -54,10 +54,12 @@ extern typeobject Codetype; /* Public interface */ struct _node; /* Declare the existence of this type */ -codeobject *compile PROTO((struct _node *, char *)); +codeobject *_compile PROTO((struct _node *, char *, int)); codeobject *newcodeobject PROTO((object *, object *, object *, object *, object *)); +#define compile(n,f) (_compile((n),(f),0)) + #ifdef __cplusplus } #endif diff --git a/Include/graminit.h b/Include/graminit.h index 288e333..735838c 100644 --- a/Include/graminit.h +++ b/Include/graminit.h @@ -1,7 +1,7 @@ #define single_input 256 #define file_input 257 -#define expr_input 258 -#define eval_input 259 +#define eval_input 258 +#define lambda_input 259 #define funcdef 260 #define parameters 261 #define varargslist 262 diff --git a/Include/mymalloc.h b/Include/mymalloc.h index 959f296..24e2125 100644 --- a/Include/mymalloc.h +++ b/Include/mymalloc.h @@ -51,6 +51,16 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #define HAVE_STDLIB #endif +#ifdef __TURBOC__ +#define ANY void +#define HAVE_STDLIB +#endif + +#ifdef __GNUC__ +#define ANY void +#define HAVE_STDLIB +#endif + #ifndef ANY #define ANY char #endif diff --git a/Include/rangeobject.h b/Include/rangeobject.h new file mode 100644 index 0000000..39d20c6 --- /dev/null +++ b/Include/rangeobject.h @@ -0,0 +1,41 @@ +/*********************************************************** +Copyright 1991, 1992, 1993 by Stichting Mathematisch Centrum, +Amsterdam, The Netherlands. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the names of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +******************************************************************/ + +/* Range object interface */ + +/* +123456789-123456789-123456789-123456789-123456789-123456789-123456789-12 + +rangeobject represents an integer range. This is an immutable object; +a range cannot change its value after creation. + +Range objects behave like the corresponding tuple objects except that +they are represented by a start, stop, and step datamembers. +*/ + +extern typeobject Rangetype; + +#define is_rangeobject(op) ((op)->ob_type == &Rangetype) + +extern object *newrangeobject PROTO((long, long, long, int)); diff --git a/Include/tupleobject.h b/Include/tupleobject.h index b5f2230..8fe28a2 100644 --- a/Include/tupleobject.h +++ b/Include/tupleobject.h @@ -58,6 +58,7 @@ extern int gettuplesize PROTO((object *)); extern object *gettupleitem PROTO((object *, int)); extern int settupleitem PROTO((object *, int, object *)); extern object *gettupleslice PROTO((object *, int, int)); +extern int resizetuple PROTO((object **, int)); /* Macro, trading safety for speed */ #define GETTUPLEITEM(op, i) ((op)->ob_item[i]) |