Index: b-example/Makefile
===================================================================
--- rcb-example/Makefile	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,24 +1,0 @@
-CC=../../bin/cfa
-CFLAGS=-g
-
-%.i: %.c
-	-$(CC) $(CFLAGS) -CFA $< > $@
-
-%.o: %.i
-	$(CC) $(CFLAGS) -c -o $@ $<
-
-all: vector_test
-
-vector_test: vector_test.o vector_int.o fstream.o iostream.o array.o iterator.o
-fstream_test: fstream_test.o fstream.o iostream.o
-
-array.o: array.i array.h iterator.h
-iterator.o: iterator.i iterator.h iostream.h
-vector_test.o: vector_test.i vector_int.h iostream.h fstream.h
-vector_int.o: vector_int.i vector_int.h
-fstream_test.o: fstream_test.i iostream.h fstream.h
-fstream.o: fstream.i iostream.h fstream.h
-iostream.o: iostream.i iostream.h
-
-clean:
-	rm -f fstream_test vector_test *.i *.o
Index: b-example/array.c
===================================================================
--- rcb-example/array.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,28 +1,0 @@
-// "cfa -c -o array.o array.c"
-// "cfa -CFA array.c > array_out.c"
-// "gcc32 array_out.c ../LibCfa/libcfa.a"
-
-#include "array.h"
-
-/// forall( type array_type, elt_type | bounded_array( array_type, elt_type ) )
-/// [ array_iterator begin, array_iterator end ]
-/// get_iterators( array_type array )
-/// {
-///   begin = 0;
-///   end = array_last( array );
-/// }
-
-forall( type array_type, type elt_type | bounded_array( array_type, elt_type ) )
-elt_type *
-get_begin( array_type array )
-{
-  return &array[ 0 ];
-}
-
-forall( type array_type, type elt_type | bounded_array( array_type, elt_type ) )
-elt_type *
-get_end( array_type array )
-{
-  return &array[ array_last( array ) ] + 1;
-}
-
Index: b-example/array.h
===================================================================
--- rcb-example/array.h	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,26 +1,0 @@
-#ifndef ARRAY_H
-#define ARRAY_H
-
-#include "iterator.h"
-
-context array( type array_type, type elt_type )
-{
-  lvalue elt_type ?[?]( array_type, int );
-};
-
-context bounded_array( type array_type, type elt_type | array( array_type, elt_type ) )
-{
-  int array_last( array_type );
-};
-
-// implement iterator_for
-
-typedef int array_iterator;
-/// forall( type array_type, elt_type | bounded_array( array_type, elt_type ) )
-/// [ array_iterator begin, array_iterator end ] get_iterators( array_type );
-forall( type array_type, type elt_type | bounded_array( array_type, elt_type ) )
-elt_type *get_begin( array_type );
-forall( type array_type, type elt_type | bounded_array( array_type, elt_type ) )
-elt_type *get_end( array_type );
-
-#endif /* #ifndef ARRAY_H */
Index: b-example/fstream.c
===================================================================
--- rcb-example/fstream.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,137 +1,0 @@
-// "cfa -E fstream.c > fstream_out.c"
-// "cfa -c -o fstream.o fstream.c"
-#include "fstream.h"
-
-#undef __cplusplus
-extern "C" {
-#include <stdio.h>
-#include <stdlib.h>
-}
-
-struct ofstream
-{
-  FILE *file;
-  int fail;
-};
-
-ofstream *
-write( ofstream *os, const char *data, streamsize_type size )
-{
-  if( !os->fail ) {
-    fwrite( data, size, 1, os->file );
-    os->fail = ferror( os->file );
-  }
-  return os;
-}
-
-int
-fail( ofstream *os )
-{
-  return os->fail;
-}
-
-static ofstream*
-make_ofstream()
-{
-  ofstream *new_stream = malloc( sizeof( ofstream ) );
-  new_stream->fail = 0;
-  return new_stream;
-}
-
-ofstream *
-ofstream_stdout()
-{
-  ofstream *stdout_stream = make_ofstream();
-  stdout_stream->file = stdout;
-  return stdout_stream;
-}
-
-ofstream *
-ofstream_stderr()
-{
-  ofstream *stderr_stream = make_ofstream();
-  stderr_stream->file = stderr;
-  return stderr_stream;
-}
-
-ofstream *
-ofstream_fromfile( const char *name )
-{
-  ofstream *file_stream = make_ofstream();
-  file_stream->file = fopen( name, "w" );
-  file_stream->fail = file_stream->file == 0;
-  return file_stream;
-}
-
-void
-ofstream_close( ofstream *os )
-{
-  if( os->file != stdout && os->file != stderr ) {
-    os->fail = fclose( os->file );
-  }
-  free( os );
-}
-
-struct ifstream
-{
-  FILE *file;
-  int fail;
-  int eof;
-};
-
-ifstream *
-read( ifstream *is, char *data, streamsize_type size )
-{
-  if( !is->fail && !is->eof ) {
-    fread( data, size, 1, is->file );
-    is->fail = ferror( is->file );
-    is->eof = feof( is->file );
-  }
-  return is;
-}
-  
-ifstream *unread( ifstream *is, char c )
-{
-  if( !is->fail ) {
-    if( EOF == ungetc( c, is->file ) ) {
-      is->fail = 1;
-    }
-  }
-  return is;
-}
-
-int fail( ifstream *is )
-{
-  return is->fail;
-}
-
-int eof( ifstream *is )
-{
-  return is->eof;
-}
-
-static ifstream*
-make_ifstream()
-{
-  ifstream *new_stream = malloc( sizeof( ifstream ) );
-  new_stream->fail = 0;
-  new_stream->eof = 0;
-  return new_stream;
-}
-
-ifstream *ifstream_stdin()
-{
-  ifstream *stdin_stream = make_ifstream();
-  stdin_stream->file = stdin;
-  return stdin_stream;
-}
-
-ifstream *
-ifstream_fromfile( const char *name )
-{
-  ifstream *file_stream = make_ifstream();
-  file_stream->file = fopen( name, "r" );
-  file_stream->fail = file_stream->file == 0;
-  return file_stream;
-}
-
Index: b-example/fstream.h
===================================================================
--- rcb-example/fstream.h	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,28 +1,0 @@
-#ifndef FSTREAM_H
-#define FSTREAM_H
-
-#include "iostream.h"
-
-typedef struct ofstream ofstream;
-
-/* implement context ostream */
-ofstream *write( ofstream *, const char *, streamsize_type );
-int fail( ofstream * );
-
-ofstream *ofstream_stdout();
-ofstream *ofstream_stderr();
-ofstream *ofstream_fromfile( const char *name );
-void ofstream_close( ofstream *os );
-
-typedef struct ifstream ifstream;
-
-/* implement context istream */
-ifstream *read( ifstream *, char *, streamsize_type );
-ifstream *unread( ifstream *, char );
-int fail( ifstream * );
-int eof( ifstream * );
-
-ifstream *ifstream_stdin();
-ifstream *ifstream_fromfile( const char *name );
-
-#endif /* #ifndef FSTREAM_H */
Index: b-example/fstream_test.c
===================================================================
--- rcb-example/fstream_test.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,17 +1,0 @@
-// "cfa -c -o fstream_test.o fstream_test.c"
-// "cfa -CFA fstream_test.c > fstream_test_out.c"
-// "gcc31 -c fstream_test_out.c"
-
-#include "fstream.h"
-
-int
-main()
-{
-  ofstream *sout = ofstream_stdout();
-  ifstream *sin = ifstream_stdin();
-  int nombre;
-  sout << "Appuyez un nombre, s'il vous plâit:\n";
-  sin >> &nombre;
-  sout << "Vous avez appuyé: " << nombre << "\n";
-  return 0;
-}
Index: b-example/fwrite.c
===================================================================
--- rcb-example/fwrite.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,11 +1,0 @@
-// "cfa -CFA fwrite.c > fwrite.i"
-// "cfa fwrite.i"
-
-#include <stdio.h>
-
-int
-main()
-{
-  fwrite( "test\n", 5, 1, stdout );
-  return 0;
-}
Index: b-example/hello.c
===================================================================
--- rcb-example/hello.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,16 +1,0 @@
-// "cfa hello.c fstream.c iostream.o"
-// "cfa -CFA hello.c > hello.i"
-// "cfa hello.i fstream.i iostream.o"
-
-extern "C" {
-int printf( const char*, ... );
-}
-
-#include "fstream.h"
-
-int main() {
-  ofstream *sout = ofstream_stdout();
-  write( sout, "test\n", 5 );
-  sout << "Bonjour au monde!\n";
-  return 0;
-}
Index: b-example/index.h
===================================================================
--- rcb-example/index.h	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,6 +1,0 @@
-context index( type T )
-{
-  T ?+?( T, T );
-  T ?-?( T, T );
-  const T 0, 1;
-};
Index: b-example/iostream.c
===================================================================
--- rcb-example/iostream.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,67 +1,0 @@
-// "cfa -c -o iostream.o iostream.c"
-// "cfa -v -E iostream.c > iostream_out.c"
-// "cfa -CFA iostream.c > iostream_out.c"
-// "cfa iostream_out.c"
-// "gcc32 iostream_out.c LibCfa/libcfa.a"
-
-#include "iostream.h"
-#undef __cplusplus
-extern "C" {
-#include <string.h>
-#include <ctype.h>
-#include <stdio.h>
-}
-
-forall( dtype ostype | ostream( ostype ) )
-ostype *
-?<<?( ostype *os, char c )
-{
-  return write( os, &c, 1 );
-}
-
-forall( dtype ostype | ostream( ostype ) )
-ostype *
-?<<?( ostype *os, int i )
-{
-  char buffer[20];      // larger than the largest integer
-  sprintf( buffer, "%d", i );
-  return write( os, buffer, strlen( buffer ) );
-}
-
-forall( dtype ostype | ostream( ostype ) )
-ostype *
-?<<?( ostype *os, const char *cp )
-{
-  return write( os, cp, strlen( cp ) );
-}
-
-forall( dtype istype | istream( istype ) )
-istype *
-?>>?( istype *is, char *cp )
-{
-  return read( is, cp, 1 );
-}
-
-forall( dtype istype | istream( istype ) )
-istype *
-?>>?( istype *is, int *ip )
-{
-  char cur;
-  
-  // skip some whitespace
-  do {
-    is >> &cur;
-    if( fail( is ) || eof( is ) ) return is;
-  } while( !( cur >= '0' && cur <= '9' ) );
-  
-  // accumulate digits
-  *ip = 0;
-  while( cur >= '0' && cur <= '9' ) {
-    *ip = *ip * 10 + ( cur - '0' );
-    is >> &cur;
-    if( fail( is ) || eof( is ) ) return is;
-  }
-  
-  unread( is, cur );
-  return is;
-}
Index: b-example/iostream.h
===================================================================
--- rcb-example/iostream.h	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,45 +1,0 @@
-#ifndef IOSTREAM_H
-#define IOSTREAM_H
-
-typedef unsigned long streamsize_type;
-
-context ostream( dtype ostype )
-{
-  ostype *write( ostype *, const char *, streamsize_type );
-  int fail( ostype * );
-};
-
-context writeable( type T )
-{
-  forall( dtype ostype | ostream( ostype ) ) ostype * ?<<?( ostype *, T );
-};
-
-// implement writable for some intrinsic types
-
-forall( dtype ostype | ostream( ostype ) ) ostype * ?<<?( ostype *, char );
-
-forall( dtype ostype | ostream( ostype ) ) ostype * ?<<?( ostype *, int );
-
-forall( dtype ostype | ostream( ostype ) ) ostype * ?<<?( ostype *, const char * );
-
-
-context istream( dtype istype )
-{
-  istype *read( istype *, char *, streamsize_type );
-  istype *unread( istype *, char );
-  int fail( istype * );
-  int eof( istype * );
-};
-
-context readable( type T )
-{
-  forall( dtype istype | istream( istype ) ) istype * ?<<?( istype *, T );
-};
-
-forall( dtype istype | istream( istype ) )
-istype * ?>>?( istype *, char* );
-
-forall( dtype istype | istream( istype ) )
-istype * ?>>?( istype *, int* );
-
-#endif /* #ifndef IOSTREAM_H */
Index: b-example/iterator.c
===================================================================
--- rcb-example/iterator.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,28 +1,0 @@
-// "cfa iterator.c"
-// "cfa -CFA iterator.c > iterator_out.c"
-// "gcc31 iterator_out.c ../LibCfa/libcfa.a"
-
-#include "iterator.h"
-
-/// forall( type iterator_type, type elt_type | iterator( iterator_type, elt_type ) )
-/// void
-/// for_each( iterator_type begin, iterator_type end, void (*func)( elt_type ) )
-/// {
-///   iterator_type i;
-///   for( i = begin; i != end; ++i ) {
-///     func( *i );
-///   }
-/// }
-
-forall( type elt_type | writeable( elt_type ),
-        type iterator_type | iterator( iterator_type, elt_type ),
-        dtype os_type | ostream( os_type ) )
-void
-write_all( iterator_type begin, iterator_type end, os_type *os )
-{
-  iterator_type i;
-  for( i = begin; i != end; ++i ) {
-    os << *i << ' ';
-  }
-}
-
Index: b-example/iterator.h
===================================================================
--- rcb-example/iterator.h	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,30 +1,0 @@
-#ifndef ITERATOR_H
-#define ITERATOR_H
-
-#include "iostream.h"
-
-context iterator( type iterator_type, type elt_type )
-{
-  iterator_type ?++( iterator_type* );
-  iterator_type ++?( iterator_type* );
-  int ?==?( iterator_type, iterator_type );
-  int ?!=?( iterator_type, iterator_type );
-  lvalue elt_type *?( iterator_type );
-};
-
-context iterator_for( type iterator_type, type collection_type, type elt_type | iterator( iterator_type, elt_type ) )
-{
-///   [ iterator_type begin, iterator_type end ] get_iterators( collection_type );
-  iterator_type get_begin( collection_type );
-  iterator_type get_end( collection_type );
-};
-
-forall( type iterator_type, type elt_type | iterator( iterator_type, elt_type ) )
-void for_each( iterator_type begin, iterator_type end, void (*func)( elt_type ) );
-
-forall( type elt_type | writeable( elt_type ),
-        type iterator_type | iterator( iterator_type, elt_type ),
-        dtype os_type | ostream( os_type ) )
-void write_all( iterator_type begin, iterator_type end, os_type *os );
-
-#endif /* #ifndef ITERATOR_H */
Index: b-example/test.c
===================================================================
--- rcb-example/test.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,20 +1,0 @@
-// "cfa -c -o test.o test.c"
-// "cfa -CFA test.c > test_out.c"
-// "gcc31 -c test_out.c -o test.o"
-
-#include "fstream.h"
-#include "vector_int.h"
-
-int
-main()
-{
-  ofstream *sout = ofstream_stdout();
-  vector_int vec = vector_int_allocate();
-  int index;
-  switch(1) {
-  case 1:
-    sout << vec[ index ];
-  }
-  sout << "\n";
-  return 0;
-}
Index: b-example/vector_int.c
===================================================================
--- rcb-example/vector_int.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,67 +1,0 @@
-// "cfa vector_int.c"
-
-#include "vector_int.h"
-
-#undef __cplusplus
-extern "C" {
-#include <stdlib.h>
-#include <assert.h>
-}
-
-#define DEFAULT_CAPACITY 20
-
-vector_int
-vector_int_allocate()
-{
-  return vector_int_allocate( DEFAULT_CAPACITY );
-}
-
-vector_int
-vector_int_allocate( int reserve )
-{
-  vector_int new_vector;
-  new_vector.last = -1;
-  new_vector.capacity = reserve;
-  new_vector.data = malloc( sizeof( int ) * reserve );
-  return new_vector;
-}
-
-void
-vector_int_deallocate( vector_int vec )
-{
-  free( vec.data );
-}
-
-void
-reserve( vector_int *vec, int reserve )
-{
-  if( reserve > vec->capacity ) {
-    vec->data = realloc( vec->data, sizeof( int ) * reserve );
-    vec->capacity = reserve;
-  }
-}
-
-void append( vector_int *vec, int element )
-{
-  vec->last++;
-  if( vec->last == vec->capacity ) {
-    vec->capacity *= 2;
-    vec->data = realloc( vec->data, sizeof( int ) * vec->capacity );
-  }
-  vec->data[ vec->last ] = element;
-}
-
-// implement bounded_array
-
-lvalue int
-?[?]( vector_int vec, int index )
-{
-  return vec.data[ index ];
-}
-
-int
-array_last( vector_int vec )
-{
-  return vec.last;
-}
-
Index: b-example/vector_int.h
===================================================================
--- rcb-example/vector_int.h	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,24 +1,0 @@
-#ifndef VECTOR_INT_H
-#define VECTOR_INT_H
-
-typedef struct vector_int
-{
-  int last;
-  int capacity;
-  int *data;
-} vector_int;
-
-
-vector_int vector_int_allocate();
-vector_int vector_int_allocate( int reserve );
-void vector_int_deallocate( vector_int );
-
-void reserve( vector_int *vec, int reserve );
-void append( vector_int *vec, int element );
-
-// implement bounded_array
-
-lvalue int ?[?]( vector_int vec, int index );
-int array_last( vector_int vec );
-
-#endif /* #ifndef VECTOR_INT_H */
Index: b-example/vector_test.c
===================================================================
--- rcb-example/vector_test.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,34 +1,0 @@
-// "cfa -c -o vector_test.o vector_test.c"
-// "cfa -CFA vector_test.c > vector_test_out.c"
-// "cfa -E vector_test.c > vector_test_out.c"
-// "gcc31 -c vector_test_out.c -o vector_test.o"
-
-#include "fstream.h"
-#include "vector_int.h"
-#include "array.h"
-
-extern "C" {
-int printf( const char *, ... );
-}
-
-int
-main()
-{
-  ofstream *sout = ofstream_stdout();
-  ifstream *sin = ifstream_stdin();
-  vector_int vec = vector_int_allocate();
-  int nombre;
-  for(;;) {
-    sin >> &nombre;
-    if( fail( sin ) || eof( sin ) ) break;
-    append( &vec, nombre );
-  }
-  sout << "Array elements: ";
-  write_all( get_begin( vec ), get_end( vec ), sout );
-///   int index;
-///   for( index = 0; index <= array_last( vec ); ++index ) {
-///     sout << vec[ index ] << " ";
-///   }
-  sout << "\n";
-  return 0;
-}
Index: anslator/Abstype.c
===================================================================
--- translator/Abstype.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,28 +1,0 @@
-// "cfa-cpp -nx Abstype.c"
-
-type T | { T x( T ); };
-
-T y( T t )
-{
-	T t_instance;
-	return x( t );
-}
-
-forall(type T) lvalue T			*?(                T* );
-int		?++( int *);
-int ?=?( int*, int );
-forall(dtype DT) DT* 		   	?=?(                DT *          *,          DT* );
-
-type U = int*;
-
-U x( U u )
-{
-	U u_instance = u;
-	(*u)++;
-	return u;
-}
-
-int *break_abstraction( U u )
-{
-	return u;
-}
Index: anslator/ctxts.c
===================================================================
--- translator/ctxts.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,11 +1,0 @@
-context has_f( type T )
-{
-  T f( T );
-};
-
-context has_g( type U | has_f( U ) )
-{
-  U g( U );
-};
-
-forall( type V | has_g( V ) ) void h( V );
Index: anslator/esskaykay.c
===================================================================
--- translator/esskaykay.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,11 +1,0 @@
-// "./cfa-cpp -cn esskaykay.c"
-
-// forall (type A, type B, type C) C ess (C (*f) (A,B), B (*g) (A), A x) { return f(x,g(x)); }
-forall (type A, type B, type C) C ess (C (*(*f)(A))(B), B (*g)(A), A x) { return f(x)(g(x)); }
-
-// forall (type A, type B) A kay (A a, B b) { return a; }
-forall (type A, type B) A (*kay(A a))(B b);
-
-// Now is the following function well-typed, or not?
-
-forall (type A) A esskaykay (A x) { ess (kay, kay, x); }
Index: anslator/factorial.c
===================================================================
--- translator/factorial.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,18 +1,0 @@
-//#include <stdio.h>
-
-int
-factorial( int n )
-{
-  if( n ) {
-    return factorial( n - 1 );
-  } else {
-    return 1;
-  }
-}
-
-int
-main()
-{
-  printf( "result is %d\n", factorial( 6 ) );
-  return 0;
-}
Index: anslator/forall.c
===================================================================
--- translator/forall.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,46 +1,0 @@
-// "./cfa forall.c"
-
-typedef forall ( type T ) int (*f)( int );
-
-forall( type T )
-    void swap( T left, T right ) {
-	T temp = left;
-	left = right;
-	right = temp;
-    }
-
-context sumable( type T ) {
-    const T 0;
-    T ?+?(T, T);
-    T ?++(T*);
-    [T] ?+=?(T*,T);
-};
-
-forall( type T | sumable( T ) )
-    T sum( int n, T a[] ) {
-	T total = 0;
-	int i;
-	for ( i = 0; i < n; i += 1 )
-	    total = total + a[i];
-	return total;
-    }
-
-forall( type T | { T ?+?(T, T); T ?++(T*); [T] ?+=?(T*,T); } )
-    T twice( T t ) {
-	return t + t;
-    }
-
-forall( type T | { const T 0; int ?!=?(T, T); int ?<?(T, T); } )
-    T min( T t1, T t2 ) {
-	return t1 < t2 ? t1 : t2;
-    }
-
-int main() {
-    int x = 1, y = 2, a[10];
-    float f;
-
-    swap( x, y );
-    twice( x );
-    f = min( 4.0, 3.0 );
-    sum( 10, a );
-}
Index: anslator/forward.c
===================================================================
--- translator/forward.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,12 +1,0 @@
-// "./cfa-cpp -nc forward.c"
-
-forall(type T) lvalue T *?( T* );
-int ?=?( int*, int );
-
-struct q { int y; };
-struct q *x;
-
-void f()
-{
-	*x;
-}
Index: anslator/huge.c
===================================================================
--- translator/huge.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,8 +1,0 @@
-int huge (int n, forall (type T) T (*f) (T))
-{
-        if (n <= 0)
-                return f(0);
-        else
-                return huge (n-1, f(f));
-}
-
Index: anslator/identity.c
===================================================================
--- translator/identity.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,19 +1,0 @@
-// './cfa identity.c'
-
-extern "C" {
-int printf( const char *fmt, ... );
-}
-
-forall( type T )
-T
-identity( T t )
-{
-  return t;
-}
-
-int
-main()
-{
-  printf( "result of identity of 5 is %d\n", identity( 5 ) );
-  return 0;
-}
Index: anslator/it_out.c
===================================================================
--- translator/it_out.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,102 +1,0 @@
-# 1 "iterator.c"
-# 1 "<built-in>"
-# 1 "<command line>"
-# 1 "iterator.c"
-# 1 "iterator.h" 1
-
-
-
-# 1 "iostream.h" 1
-
-
-
-typedef unsigned long streamsize_type;
-
-
-
-context ostream( dtype os_type )
-{
-
-  os_type *write( os_type *, const char *, streamsize_type );
-
-
-  int fail( os_type * );
-};
-
-
-
-
-context writeable( type T )
-{
-  forall( dtype os_type | ostream( os_type ) ) os_type * ?<<?( os_type *, T );
-};
-
-
-
-forall( dtype os_type | ostream( os_type ) ) os_type * ?<<?( os_type *, char );
-forall( dtype os_type | ostream( os_type ) ) os_type * ?<<?( os_type *, int );
-forall( dtype os_type | ostream( os_type ) ) os_type * ?<<?( os_type *, const char * );
-
-
-
-
-context istream( dtype is_type )
-{
-
-  is_type *read( is_type *, char *, streamsize_type );
-
-
-  is_type *unread( is_type *, char );
-
-
-  int fail( is_type * );
-
-
-  int eof( is_type * );
-};
-
-
-
-
-context readable( type T )
-{
-  forall( dtype is_type | istream( is_type ) ) is_type * ?<<?( is_type *, T );
-};
-
-
-
-forall( dtype is_type | istream( is_type ) ) is_type * ?>>?( is_type *, char* );
-forall( dtype is_type | istream( is_type ) ) is_type * ?>>?( is_type *, int* );
-# 5 "iterator.h" 2
-
-
-context iterator( type iterator_type, type elt_type )
-{
-
-  iterator_type ?++( iterator_type* );
-  iterator_type ++?( iterator_type* );
-
-
-  int ?==?( iterator_type, iterator_type );
-  int ?!=?( iterator_type, iterator_type );
-
-
-  lvalue elt_type *?( iterator_type );
-};
-
-
-
-forall( type elt_type | writeable( elt_type ),
-        type iterator_type | iterator( iterator_type, elt_type ),
-        dtype os_type | ostream( os_type ) )
-void write_all( iterator_type begin, iterator_type end, os_type *os );
-# 2 "iterator.c" 2
-
-forall( type elt_type | writeable( elt_type ),
-        type iterator_type | iterator( iterator_type, elt_type ),
-        dtype os_type | ostream( os_type ) )
-void
-write_all( elt_type begin, iterator_type end, os_type *os )
-{
-    os << begin;
-}
Index: anslator/min.c
===================================================================
--- translator/min.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,18 +1,0 @@
-// "./cfa min.c"
-// "./cfa -CFA min.c > min_out.c"
-// "gcc32 -g min_out.c LibCfa/libcfa.a"
-
-extern "C" {
-  int printf( const char *, ... );
-}
-
-forall( type T | { const T 0; int ?!=?(T, T); int ?<?(T, T); } )
-    T min( T t1, T t2 ) {
-	return t1 < t2 ? t1 : t2;
-    }
-
-int main() {
-    float f;
-    f = min( 4.0, 3.0 );
-    printf( "result is %f\n", f );
-}
Index: anslator/new.c
===================================================================
--- translator/new.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,16 +1,0 @@
-// "./cfa-cpp -c new.c"
-
-forall( type T )
-void f( T *t )
-{
-  t--;
-///   *t;
-///   ++t;
-///   t+=2;
-///   t+2;
-///   --t;
-///   t-=2;
-///   t-4;
-///   t[7];
-///   7[t];
-}
Index: anslator/prolog.c
===================================================================
--- translator/prolog.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,35 +1,0 @@
-// "./cfa prolog.c"
-
-extern "C" { extern int printf( const char *fmt, ... ); }
-
-void printResult( int x ) { printf( "int\n" ); }
-void printResult( double x ) { printf( "double\n" ); }
-void printResult( char * x ) { printf( "char*\n" ); }
-
-void is_arithmetic( int x ) {}
-void is_arithmetic( double x ) {}
-
-void is_integer( int x ) {}
-
-context ArithmeticType( type T )
-{
-  void is_arithmetic( T );
-};
-
-context IntegralType( type T | ArithmeticType( T ) )
-{
-  void is_integer( T );
-};
-
-forall( type T | IntegralType( T ) | { void printResult( T ); } ) void hornclause( T param )
-{
-  printResult( param );
-}
-
-int main()
-{
-  int x;
-  double x;
-  char * x;
-  hornclause( x );
-}
Index: anslator/quad.c
===================================================================
--- translator/quad.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,24 +1,0 @@
-// "./cfa quad.c"
-// "./cfa -CFA quad.c > quad_out.c"
-// "gcc31 -g quad_out.c LibCfa/libcfa.a"
-
-#include <stdio.h>
-
-forall( type T | { T ?*?( T, T ); } )
-T square( T t )
-{
-  return t * t;
-}
-
-forall( type U | { U square( U ); } )
-U quad( U u )
-{
-  return square( square( u ) );
-}
-
-int
-main()
-{
-  printf( "result of quad of 5 is %d\n", quad( 5 ) );
-  return 0;
-}
Index: anslator/resume-1.cc
===================================================================
--- translator/resume-1.cc	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,39 +1,0 @@
-#include <uC++.h>
-#include <uIOStream.h>
-
-typedef void (*fixup)( int &i, fixup r1, fixup r2 );
-
-void f( int &i, fixup r1, fixup r2 );
-void g( int &i, fixup r1, fixup r2 );
-
-void h1( int &i, fixup r1, fixup r2 ) {
-	i -= 1;
-	uCout << "h1, i:" << i << endl;
-	f( i, r1, r2 );
-}
-void h2( int &i, fixup r1, fixup r2 ) {
-	i -= 2;
-	uCout << "h2, i:" << i << endl;
-	g( i, r1, r2 );
-}
-
-void f( int &i, fixup r1, fixup r2 ) {
-	i -= 1;
-	uCout << "f, i:" << i << endl;
-	if ( i > 0 ) {
-		if ( i % 2 != 0 ) r2(i, r1, r2);
-		g( i, r1, r2 );
-	}
-}
-void g( int &i, fixup r1, fixup r2 ) {
-	i -= 1;
-	uCout << "g, i:" << i << endl;
-	if ( i > 0 ) {
-		f( i );
-		r1(i, r1, r2);
-	}
-}
-void uMain::main() {
-	int i = 20;
-	f( i, h1, h2 );
-}
Index: anslator/resume-2.cc
===================================================================
--- translator/resume-2.cc	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,47 +1,0 @@
-#include <uC++.h>
-#include <uIOStream.h>
-
-struct h1;
-struct h2;
-
-void f( int &i, h1 &r1, h2 &r2 );
-void g( int &i, h1 &r1, h2 &r2 );
-
-struct h1 {
-	void operator()( int &i, h1 &r1, h2 &r2 ) {
-		i -= 1;
-		uCout << "h1, i:" << i << endl;
-		f( i, r1, r2 );
-	}
-};
-		
-struct h2 {
-	void operator()( int &i, h1 &r1, h2 &r2 ) {
-		i -= 2;
-		uCout << "h2, i:" << i << endl;
-		g( i, r1, r2 );
-	}
-};
-		
-void f( int &i, h1 &r1, h2 &r2 ) {
-	i -= 1;
-	uCout << "f, i:" << i << endl;
-	if ( i > 0 ) {
-		if ( i % 2 != 0 ) r2(i, r1, r2);
-		g( i, r1, r2 );
-	}
-}
-void g( int &i, h1 &r1, h2 &r2 ) {
-	i -= 1;
-	uCout << "g, i:" << i << endl;
-	if ( i > 0 ) {
-		f( i, r1, r2 );
-		r1(i, r1, r2);
-	}
-}
-void uMain::main() {
-	int i = 20;
-	h1 r1;
-	h2 r2;
-	f( i, r1, r2 );
-}
Index: anslator/resume-3.cc
===================================================================
--- translator/resume-3.cc	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,43 +1,0 @@
-#include <uC++.h>
-#include <uIOStream.h>
-
-template< class fixup >
-void f( int &i, fixup r1, fixup r2 );
-template< class fixup >
-void g( int &i, fixup r1, fixup r2 );
-
-template< class fixup >
-void h1( int &i, fixup r1, fixup r2 ) {
-	i -= 1;
-	uCout << "h1, i:" << i << endl;
-	f( i, r1, r2 );
-}
-template< class fixup >
-void h2( int &i, fixup r1, fixup r2 ) {
-	i -= 2;
-	uCout << "h2, i:" << i << endl;
-	g( i, r1, r2 );
-}
-
-template< class fixup >
-void f( int &i, fixup r1, fixup r2 ) {
-	i -= 1;
-	uCout << "f, i:" << i << endl;
-	if ( i > 0 ) {
-		if ( i % 2 != 0 ) r2(i, r1, r2);
-		g( i, r1, r2 );
-	}
-}
-template< class fixup >
-void g( int &i, fixup r1, fixup r2 ) {
-	i -= 1;
-	uCout << "g, i:" << i << endl;
-	if ( i > 0 ) {
-		f( i );
-		r1(i, r1, r2);
-	}
-}
-void uMain::main() {
-	int i = 20;
-	f( i, h1, h2 );
-}
Index: anslator/resume-orig
===================================================================
--- translator/resume-orig	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,60 +1,0 @@
-#include <uC++.h>
-#include <uIOStream.h>
-
-uRaiseEvent R1 {
-  public:
-	int &i;
-	R1( int &i ) : i(i) {}
-};
-uInitEvent( R1 );
-
-uRaiseEvent R2 {
-  public:
-	int &i;
-	R2( int &i ) : i(i) {}
-};
-uInitEvent( R2 );
-
-void f( int &i );
-void g( int &i );
-
-void h1( R1 &r ) {
-	r.i -= 1;
-	uCout << "h1, i:" << r.i << endl;
-	f( r.i );
-}
-void h2( R2 &r ) {
-	r.i -= 2;
-	uCout << "h2, i:" << r.i << endl;
-	g( r.i );
-}
-
-void f( int &i ) {
-	i -= 1;
-	uCout << "f, i:" << i << endl;
-	if ( i > 0 ) {
-		try <R1,h1><R2,h2> {
-			if ( i % 2 != 0 ) uRaise R2(i);
-			g( i );
-		}
-	}
-}
-void g( int &i ) {
-	i -= 1;
-	uCout << "g, i:" << i << endl;
-	if ( i > 0 ) {
-		try <R1,h1><R2,h2> {
-			f( i );
-			uRaise R1(i);
-		}
-	}
-}
-void uMain::main() {
-	int i = 20;
-	f( i );
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
-
Index: anslator/resume-orig.cc
===================================================================
--- translator/resume-orig.cc	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,60 +1,0 @@
-#include <uC++.h>
-#include <uIOStream.h>
-
-uRaiseEvent R1 {
-  public:
-	int &i;
-	R1( int &i ) : i(i) {}
-};
-uInitEvent( R1 );
-
-uRaiseEvent R2 {
-  public:
-	int &i;
-	R2( int &i ) : i(i) {}
-};
-uInitEvent( R2 );
-
-void f( int &i );
-void g( int &i );
-
-void h1( R1 &r ) {
-	r.i -= 1;
-	uCout << "h1, i:" << r.i << endl;
-	f( r.i );
-}
-void h2( R2 &r ) {
-	r.i -= 2;
-	uCout << "h2, i:" << r.i << endl;
-	g( r.i );
-}
-
-void f( int &i ) {
-	i -= 1;
-	uCout << "f, i:" << i << endl;
-	if ( i > 0 ) {
-		try <R1,h1><R2,h2> {
-			if ( i % 2 != 0 ) uRaise R2(i);
-			g( i );
-		}
-	}
-}
-void g( int &i ) {
-	i -= 1;
-	uCout << "g, i:" << i << endl;
-	if ( i > 0 ) {
-		try <R1,h1><R2,h2> {
-			f( i );
-			uRaise R1(i);
-		}
-	}
-}
-void uMain::main() {
-	int i = 20;
-	f( i );
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// End: //
-
Index: anslator/rodolfo1.c
===================================================================
--- translator/rodolfo1.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,9 +1,0 @@
-// "./cfa-cpp -c rodolfo1.c"
-
-void
-f()
-{
-	int a, b = 4, c = 5;
-	a = b + c;
-	int d = a + 7;
-}
Index: anslator/rodolfo2.c
===================================================================
--- translator/rodolfo2.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,10 +1,0 @@
-// "./cfa-cpp -c rodolfo2.c"
-
-int a = 7;
-
-void f() {
-        int b;
-        b = a;
-        int a = 8;
-        assert( b == 7 );
-}
Index: anslator/s.c
===================================================================
--- translator/s.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,7 +1,0 @@
-int ?!=?( int, int );
-int 0;
-
-void f()
-{
-  0 ? 4 : 5;
-}
Index: anslator/simple.c
===================================================================
--- translator/simple.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,23 +1,0 @@
-// './cfa square.c'
-
-context has_star( type T )
-{
-  T ?*?( T, T );
-};
-
-int ?*?( int, int );
-extern "C" { void printf( const char *, ... ); }
-int ?=?( int*, int );
-
-forall( type T | has_star( T ) )
-T
-square( T t )
-{
-  return t * t;
-}
-
-int
-main()
-{
-  printf( "result of square of 5 is %d\n", square( 5 ) );
-}
Index: anslator/simple.out.c
===================================================================
--- translator/simple.out.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,38 +1,0 @@
-struct _ctx_has_star
-{
-    void (*___operator_multiply__PF2tT_2tT2tT_)();
-    void (*_adapterF2tT_2tT2tT_)(void (*)(), void *, void *, void *);
-};
-int ___operator_multiply__Fi_ii_(int , int );
-struct _ctx_has_star _ctx_has_star0 = { ((void (*)())(&___operator_multiply__Fi_ii_)), _adapterF2tT_2tT2tT_ };
-void printf(const char *, ...);
-int ___operator_assign__Fi_Pii_(int *, int );
-void __square__A1_0_0____operator_assign__PF2t0_P2t02t0______ctx_has_star_2t0_F2t0_2t0_(void (*_adapterF2tT_P2tT2tT_)(void (*)(), void *, void *, void *), void (*_adapterF2tT_2tT2tT_)(void (*)(), void *, void *, void *), long unsigned int T, void (*___operator_assign__PF2tT_P2tT2tT_)(), struct _ctx_has_star _ctx_has_star_2tT, void *_retparm, void *__t__2tT)
-{
-    void _adapterF2tT_2tT2tT_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1)
-    {
-        ((*((void *)_ret))=((void *(*)(void *, void *))_adaptee)((*((void *)_p0)), (*((void *)_p1))));
-    }
-
-    _ctx_has_star_2tT._adapterF2tT_2tT2tT_(_ctx_has_star_2tT.___operator_multiply__PF2tT_2tT2tT_, _retparm, __t__2tT, __t__2tT);
-    return ;
-}
-
-int main()
-{
-    int _temp0;
-    int _temp1;
-    (_temp1=5);
-    void _adapterFi_Pii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1)
-    {
-        ((*((int *)_ret))=((int (*)(int *, int ))_adaptee)(_p0, (*((int *)_p1))));
-    }
-
-    void _adapterFi_ii_(void (*_adaptee)(), void *_ret, void *_p0, void *_p1)
-    {
-        ((*((int *)_ret))=((int (*)(int , int ))_adaptee)((*((int *)_p0)), (*((int *)_p1))));
-    }
-
-    printf(((const char *)"result of square of 5 is %d\n"), (__square__A1_0_0____operator_assign__PF2t0_P2t02t0______ctx_has_star_2t0_F2t0_2t0_(_adapterFi_Pii_, _adapterFi_ii_, sizeof(int ), ((void (*)())___operator_assign__Fi_Pii_), _ctx_has_star0, (&_temp0), (&_temp1)) , _temp0));
-}
-
Index: anslator/simplePoly.c
===================================================================
--- translator/simplePoly.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,17 +1,0 @@
-// './cfa-cpp -nc < simplePoly.c'
-
-forall( type T, type U | { T f( T, U ); } ) T q( T t, U u )
-{
-  return f( t, u );
-//  return t;
-}
-
-int f( int, double* );
-
-void g( void )
-{
-  int y;
-  double x;
-//  if( y )
-    q( 3, &x );
-}
Index: anslator/simpler.c
===================================================================
--- translator/simpler.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,9 +1,0 @@
-// "./cfa-cpp -c simpler.c"
-
-forall( type T ) T id( T, T );
-
-int
-main()
-{
-  id( 0, 7 );
-}
Index: anslator/specialize.c
===================================================================
--- translator/specialize.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,43 +1,0 @@
-// "./cfa specialize.c"
-// "./cfa -g simple.c"
-// "./cfa -CFA simple.c > simple_out.c"
-
-/// void f( const int * );
-/// 
-/// void m()
-/// {
-///   f( 0 );
-/// }
-
-/// forall( dtype T ) T* f( T* );
-/// void g( int* (*)(int*) );
-/// 
-/// int m() {
-///   g( f );
-/// }
-
-/// void f1( void (*q)( forall( dtype U ) U* (*p)( U* ) ) );
-/// void g1( int* (*)(int*) );
-/// 
-/// int m1() {
-///   f1( g1 );
-/// }
-
-extern "C" {
-  int printf( const char*, ... );
-}
-
-forall( type T ) T f( T t )
-{
-  printf( "in f; sizeof T is %d\n", sizeof( T ) );
-  return t;
-}
-
-void g( int (*p)(int) )
-{
-  printf( "g: f(7) returned %d\n", f(7) );
-}
-
-int main() {
-  g( f );
-}
Index: anslator/square.c
===================================================================
--- translator/square.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,20 +1,0 @@
-// './cfa square.c'
-
-#undef __cplusplus
-extern "C" {
-#include <stdio.h>
-}
-
-forall( type T | { T ?*?( T, T ); })
-T
-square( T t )
-{
-  return t * t;
-}
-
-int
-main()
-{
-  printf( "result of square of 5 is %d\n", square( 5 ) );
-  return 0;
-}
Index: anslator/square.cf
===================================================================
--- translator/square.cf	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,20 +1,0 @@
-// './cfa square.c'
-
-#undef __cplusplus
-extern "C" {
-#include <stdio.h>
-}
-
-forall( type T | { T ?*?( T, T ); })
-T
-square( T t )
-{
-  return t * t;
-}
-
-int
-main()
-{
-  printf( "result of square of 5 is %d\n", square( 5 ) );
-  return 0;
-}
Index: anslator/sum.c
===================================================================
--- translator/sum.c	(revision a0d9f9418e3d60d93ffe3e14a8865ad439ab16d9)
+++ 	(revision )
@@ -1,35 +1,0 @@
-// "./cfa -g sum.c"
-// "./cfa -CFA sum.c > sum_out.c"
-// "gcc32 -g sum_out.c LibCfa/libcfa.a"
-
-extern "C" {
-  int printf( const char *, ... );
-}
-
-context sumable( type T ) {
-    const T 0;
-    T ?+?(T, T);
-    T ?++(T*);
-    [T] ?+=?(T*,T);
-};
-
-forall( type T | sumable( T ) )
-    T sum( int n, T a[] ) {
-	T total = 0;
-	int i;
-	for ( i = 0; i < n; i += 1 )
-	    total = total + a[i];
-	return total;
-    }
-
-int
-main()
-{
-  int a[ 10 ];
-  int i;
-  for( i = 0; i < 10; ++i ) {
-    a[ i ] = i;
-  }
-  printf( "the sum is %d\n", sum( 10, a ) );
-  return 0;
-}
