rev 636 - in trunk: pr/test src
SVN User <[email protected]> Fri, 18 Jun 2004 20:25:19 -0400
| Newsgroups | gmane.comp.lang.prothon.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: mark
Date: 2004-06-18 20:25:16 -0400 (Fri, 18 Jun 2004)
New Revision: 636
Modified:
trunk/pr/test/test.pr
trunk/src/builtins-core.c
Log:
object.range works
Modified: trunk/pr/test/test.pr
===================================================================
--- trunk/pr/test/test.pr 2004-06-18 23:55:59 UTC (rev 635)
+++ trunk/pr/test/test.pr 2004-06-19 00:25:16 UTC (rev 636)
@@ -1,19 +1,4 @@
#!/usr/bin/env prothon
-def f():
- if 'static' not in f.attrs_:
- f.static = 0
- f.static += 1
-
- tmp = f.static
- def outer.f():
- f.static += 1
- return f.static
- f.static = tmp
-
- return f.static
-
-print f()
-print f()
-print f()
-
+for i in range(20, 0, -2):
+ print i
Modified: trunk/src/builtins-core.c
===================================================================
--- trunk/src/builtins-core.c 2004-06-18 23:55:59 UTC (rev 635)
+++ trunk/src/builtins-core.c 2004-06-19 00:25:16 UTC (rev 636)
@@ -841,7 +841,7 @@
MODULE_START(RangeGen)
{
- RangeGen_OBJ = NEW_OBJ(Gen_OBJ);
+ RangeGen_OBJ = NEW_OBJ(NULL);
MODULE_ADD_TO_OBJ(RangeGen, OBJ(OBJECT), "Range");
MODULE_SET_DOC(RangeGen, "range generator object prototype");
set_obj_id(RangeGen_OBJ, *, RangeGen);
@@ -861,6 +861,7 @@
return NULL;
}
range_obj = NEW_OBJ(RangeGen_OBJ);
+ SET_TYPE_IF_EXC(RangeGen_OBJ, range_obj, DATA_TYPE_DATAPTR) return NULL;
range_obj->data.ptr = rangep = (range_p) pr_malloc(sizeof(range_t));
rangep->size = sizeof(range_t);
rangep->value = start;
@@ -884,6 +885,10 @@
return res;
}
+DEF(RangeGen, iter_, NULL) {
+ return self;
+}
+
// ***************************** MAIN_MODULE_INIT *****************************
MAIN_MODULE_INIT(Core)
@@ -978,6 +983,7 @@
MODULE_ADD_SYM(Func, objList_);
MODULE_SUB_INIT(RangeGen);
+ MODULE_ADD_SYM(RangeGen, iter_);
MODULE_ADD_SYM(RangeGen, next);
check_exceptions(ist);