multiple-evalution-of-args-safe versions of repeat() { } and for_range() { } macros
[svn/Cll1h/.git] / demos / lists.c
index 2c4218d76d2b09e72167414e8875f0359f32e262..81eddae23c3750e2ebb40e54f55610d15f5b96be 100644 (file)
@@ -1,54 +1,91 @@
-
 #include "cll1.h"
 
-struct Zaznam
+def_mem(Record)
 {
  int i;
char *j
- list(Zaznam);
-} *zaznam,*zaznamy=NULL;
str s
+ list(Record);
+};
 
 program
 { 
- puts("4x insert(zaznam,zaznamy,order_by,i);");
- create(zaznam, Zaznam);
- zaznam->i=1; 
- zaznam->j="ddd";
- insert(zaznam,zaznamy,order_by,i);
- create(zaznam, Zaznam);
- zaznam->i=3; 
- zaznam->j="bbbbb";
- insert(zaznam,zaznamy,order_by,i);
- create(zaznam, Zaznam);
- zaznam->i=0; 
- zaznam->j="e";
- insert(zaznam,zaznamy,order_by,i);
- create(zaznam, Zaznam);
- zaznam->i=2; 
- zaznam->j="cc";
- insert(zaznam,zaznamy,order_by,i);
- every(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
-
- puts("1x append(zaznam,zaznamy);");
- create(zaznam, Zaznam);
- zaznam->i=4; 
- zaznam->j="aaa";
- append(zaznam,zaznamy);
- every(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
-
- puts("sort(zaznam,zaznamy,desc_order_by,i);");
- sort(zaznam,zaznamy,desc_order_by,i);
- every(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
-
- puts("sort(zaznam,zaznamy,desc_sort_by,j);");
- sort(zaznam,zaznamy,desc_sort_by,j);
- every(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
-
- puts("remove(zaznam,zaznamy,zaznam->i==1);");
- remove(zaznam,zaznamy,zaznam->i==1);
- every(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
-
- puts("drop(zaznam,zaznamy);");
- drop(zaznam,zaznamy);
- every(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
+ Record record, records=NULL;
+
+ print("4x insert(record,records,order_by_int,i);");
+
+ record=get_mem(Record);
+ record->i=1; 
+ record->s="ddd";
+ insert(record,records,order_by_int,i);
+
+ record=get_mem(Record);
+ record->i=3; 
+ record->s="BBBB";
+ insert(record,records,order_by_int,i);
+
+ record=get_mem(Record);
+ record->i=4; 
+ record->s="e";
+ insert(record,records,order_by_int,i);
+
+ record=get_mem(Record);
+ record->i=2; 
+ record->s="aaaa";
+ insert(record,records,order_by_int,i);
+
+ for_each(record,records)
+ {
+  printf("i=%d, s=%s\n",record->i,record->s);
+ }
+
+ print("1x append(record,records);");
+ record=get_mem(Record);
+ record->i=0; 
+ record->s="ccc";
+ append(record,records);
+ for_each(record,records)
+ {
+  printf("i=%d, s=%s\n",record->i,record->s);
+ }
+
+ print("sort(record,records,order_by_int_desc,i);");
+ sort(record,records,order_by_int_desc,i);
+
+ for_each(record,records)
+ {
+  printf("i=%d, s=%s\n",record->i,record->s);
+ }
+
+ print("sort(record,records,order_by_str,s);");
+ sort(record,records,order_by_str,s);
+
+ for_each(record,records)
+ {
+  printf("i=%d, s=%s\n",record->i,record->s);
+ }
+
+ print("sort(record,records,order_by_ascii_desc,s);");
+ sort(record,records,order_by_ascii_desc,s);
+ for_each(record,records)
+ {
+  printf("i=%d, s=%s\n",record->i,record->s);
+ }
+
+ print("remove(record,records,record->i==1);");
+ remove(record,records,record->i==1); 
+ for_each(record,records)
+ {
+  printf("i=%d, s=%s\n",record->i,record->s);
+ }
+
+ print("drop(record,records);");
+ drop(record,records);
+
+ for_each(record,records)
+ {
+  printf("i=%d, s=%s\n",record->i,record->s);
+ }
 }
This page took 0.155231 seconds and 4 git commands to generate.