ok, let's start making sense now: typdef char * str;
authorxchaos <xchaos@4bb87942-c103-4e5a-b51c-0ebff58f8515>
Sat, 2 Feb 2008 02:01:16 +0000 (02:01 +0000)
committerxchaos <xchaos@4bb87942-c103-4e5a-b51c-0ebff58f8515>
Sat, 2 Feb 2008 02:01:16 +0000 (02:01 +0000)
git-svn-id: https://dev.arachne.cz/repos/cll1h/trunk@54 4bb87942-c103-4e5a-b51c-0ebff58f8515

cll1.h
demos/boolean.c
demos/for_ints_strs.c
demos/lists.c

diff --git a/cll1.h b/cll1.h
index b3c65a41e204708ea4cb2a37554a66fb7d903bd1..1d95db282f7c933a3218ddc412e6e444475b143b 100644 (file)
--- a/cll1.h
+++ b/cll1.h
@@ -53,7 +53,7 @@
 #include <mysql/mysql.h>
 #endif
 /* .----------------------------------------------------------------------.
-  /  2. C<<1 then buddhist section, updated 2008-01-26 xCh.
+  /  1. C<<1 then buddhist section, updated 2008-02-01 xCh.
  '----------------------------------------------------------------------- */
 #ifndef DISABLE_MODULE_THEN_BUDDHISM 
 #define then
 #define WHOKNOWS (int)(srandom((unsigned)time(NULL)),random()%2)
 #define create_var(ID,TYPE,EXPR) TYPE ID=(EXPR)
 #define def_var(ID,TYPE) TYPE ID
-//#define _CLL1_YES char *YES="TRUE\nYES\nJA\nOUI\nDA\nANO\nY\n1";
+//#define _CLL1_YES str YES="TRUE\nYES\nJA\nOUI\nDA\nANO\nY\n1";
 //#define atob(EXPR) (word_in_stri(YES,(EXPR))?1:0)
 //#else
-#define _CLL1_YES char *YES="TRUE";
+#define _CLL1_YES str YES="TRUE";
 #define atob(EXPR) (eqi((EXPR),YES)?1:0)
 #endif
 /* .----------------------------------------------------------------------.
-  /  1. C<<1 almost then buddhist section, updated 2008-01-26 xCh.
+  /  2. C<<1 almost then buddhist section, updated 2008-02-02 xCh.
  '----------------------------------------------------------------------- */
+typedef char * str;
+typedef FILE * file;
+typedef int bool;
 #define not !
 #define and &&
 #define or ||
-#define bool int
 #define TRUE 1
 #define FALSE 0
 #define WEIRDINT (1<<(sizeof(int)*8-1))
 #define btoa(EXPR) ((EXPR)?"TRUE":"FALSE")
 #define coalesce(VAR,EXPR) (VAR?VAR:(EXPR))
-#define _CLL1_GLOBALS char *NIL="NULL", *EOL="\n", *OFS=" ", *IFS=" \t\n"; unsigned RANDOM_SEED=0;
+#define _CLL1_GLOBALS str NIL="NULL", EOL="\n", OFS=" ", IFS=" \t\n"; unsigned RANDOM_SEED=0;
 /* .----------------------------------------------------------------------.
   /  4. C<<1 data declaration and allocation, updated 2008-01-31 xCh.
  '----------------------------------------------------------------------- */
 #define init_mem(...)  _mem_##TYPE##_( _ARG2(__VA_ARGS__,,) - 0 )
 #define construct_mem(TYPE) (struct TYPE *)_mem_##TYPE##_(void) { create_mem(this,TYPE);/* <-' */ _init_mem_##TYPE##_(this); return this; } _init_mem_##TYPE##_(this_is(TYPE))
 #define create_list(ID1,I2,TYPE) create_mem(ID1,TYPE); struct TYPE *ID2=((ID1->__next=NULL),ID1)
-#define create_str(ID,EXPR) char *ID=(EXPR)
-#define new_str(ID,...) char *ID=_cll1_get_str(__VA_ARGS__,NIL)
-#define def_str(ID) char *ID=NULL
-#define get_str(...) _cll1_get_str(__VA_ARGS__,NIL)
 #define create_context(ID) create_mem(ID,_CTXAtom)
 #define def_context(ID) def_mem(ID,_CTXAtom)
 #define list(TYPE) struct TYPE *__next
 /* .----------------------------------------------------------------------.
   /  5. C<<1 string manipulation, updated 2008-01-26 xCh.
  '----------------------------------------------------------------------- */
+#define get_str(...) _cll1_get_str(__VA_ARGS__,NIL)
 #define eq(A,B) !_cll1_strcmp(A,B)
 #define eqi(A,B) !_cll1_strcmpi(A,B)
 #define in_str(A,B) _cll1_strstr(A,B)
 #define this_arg argv[_I]
 #define next_arg ((_I+1<argc)?argv[_I]:NULL)
 #define skip_next _I++
-#define if_exists(A,B,C) for_search(A,B,C) break; if(A)
+#define if_exists(NODE,HEAD,EXPR) for_search(NODE,HEAD,EXPR) break; if(NODE)
 #define if_args if(argc>1)
 #define switch_for_args  for_args switch_str(this_arg)
 #define switch_str(STR) _NEW(S,STR)
index ed44988b4d7d5294e3a85246f04e35fe69e915aa..77d1967d16ba7bbc9d6f943c7ca119526a27dfa0 100644 (file)
@@ -4,7 +4,7 @@ program
 {
  const bool t = TRUE, f = FALSE;
  bool l, m = MAYBE;
def_str(s);
str s;
 
  print("TRUE and FALSE =", btoa(t and f) );
  print("TRUE or FALSE =", btoa(t or f) );
@@ -17,6 +17,6 @@ program
  for_strs(s, "TRUE","false","yes","NO","True","FALSE","YES","no","Yes","No","1","0","abc","xyz","Eyes","Ears","rue","alse","oui","no","ano","ne"," ","NULL",NULL,EOL,"","ano","ne")
  {
   l = atob(s);
-  echo("\"", s, "\"\tmeans ", btoa(l),EOL);
+  echo("\"", s, "\"\tmeans ", btoa(l), EOL);
  } 
 }
index e21987a4c70f5f0565bd6ee39cd37db6aba1c0ed..dbcc3d70c8b5a9f699461851393d4b801fff920f 100644 (file)
@@ -3,7 +3,7 @@
 program
 {
  int i;
char *s;
str s;
  
  echo("for_ints(i,  8,1,-2,745,-32,-64,27,4) ): ");
  for_ints(i,  8,1,-2,745,-32,-64,27,4 ) printf(" [%d]",i);
index e31102eeed03411b19c135c6256b3ef5b839b2d6..2cc0c52735104a611e8c964354fb9e6269bde997 100644 (file)
@@ -3,7 +3,7 @@
 mem Zaznam
 {
  int i;
char *j
str s
  list(Zaznam);
 };
 
@@ -14,42 +14,42 @@ program
  print("4x insert(zaznam,zaznamy,order_by,i);");
  zaznam=get_mem(Zaznam);
  zaznam->i=1; 
- zaznam->j="ddd";
+ zaznam->s="ddd";
  insert(zaznam,zaznamy,order_by,i);
  zaznam=get_mem(Zaznam);
  zaznam->i=3; 
- zaznam->j="bbbbb";
+ zaznam->s="bbbbb";
  insert(zaznam,zaznamy,order_by,i);
  zaznam=get_mem(Zaznam);
  zaznam->i=4; 
- zaznam->j="e";
+ zaznam->s="e";
  insert(zaznam,zaznamy,order_by,i);
  zaznam=get_mem(Zaznam);
  zaznam->i=2; 
- zaznam->j="aaaa";
+ zaznam->s="aaaa";
  insert(zaznam,zaznamy,order_by,i);
- for_each(zaznam,zaznamy) printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
+ for_each(zaznam,zaznamy) printf("i=%d, s=%s\n",zaznam->i,zaznam->s);
 
  print("1x append(zaznam,zaznamy);");
  zaznam=get_mem(Zaznam);
  zaznam->i=0; 
- zaznam->j="ccc";
+ zaznam->s="ccc";
  append(zaznam,zaznamy);
- for_each(zaznam,zaznamy) printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
+ for_each(zaznam,zaznamy) printf("i=%d, s=%s\n",zaznam->i,zaznam->s);
 
  print("sort(zaznam,zaznamy,desc_order_by,i);");
  sort(zaznam,zaznamy,desc_order_by,i);
- for_each(zaznam,zaznamy) printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
+ for_each(zaznam,zaznamy) printf("i=%d, s=%s\n",zaznam->i,zaznam->s);
 
- print("sort(zaznam,zaznamy,sort_by,j);");
- sort(zaznam,zaznamy,sort_by,j);
- for_each(zaznam,zaznamy) printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
+ print("sort(zaznam,zaznamy,sort_by,s);");
+ sort(zaznam,zaznamy,sort_by,s);
+ for_each(zaznam,zaznamy) printf("i=%d, s=%s\n",zaznam->i,zaznam->s);
 
  print("remove(zaznam,zaznamy,zaznam->i==1);");
  remove(zaznam,zaznamy,zaznam->i==1);
- for_each(zaznam,zaznamy) printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
+ for_each(zaznam,zaznamy) printf("i=%d, s=%s\n",zaznam->i,zaznam->s);
 
  print("drop(zaznam,zaznamy);");
  drop(zaznam,zaznamy);
- for_each(zaznam,zaznamy) printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
+ for_each(zaznam,zaznamy) printf("i=%d, s=%s\n",zaznam->i,zaznam->s);
 }
This page took 0.192068 seconds and 4 git commands to generate.