tinytool-v3:

Following on from tinytool-v2, now we change the specification to make
the first line special (setting the type):

  INPUT:
    first line: T (sets the type used in all other lines)
    foreach other line: F, Op pairs
  OUTPUT:
    foreach other line: "T F( T a, T b ) { return (a Op b); }"

Hence, now 'fullinput' starts:

  double
  plus,+
  minus,-
  times,*
  ...

To implement this new version, we add:

perlgen3		A standalone Perl script to generate functions
			including type names, width formatting - where the
			first line defines the typename

On Unix systems, make it executable and run it via:

  chmod +x perlgen*
  ./perlgen3 < fullinput

On Windows systems, use the following to run it:

  perl perlgen3 < fullinput

The output produced will be of the form:

  double double_plus         ( double a, double b ) { return (a+b); }
  double double_minus        ( double a, double b ) { return (a-b); }
  ...
  double double_squaredsum   ( double a, double b ) { return (a*a+b*b); }
  double double_max          ( double a, double b ) { return (a>b?a:b); }

I also include:

cgen3.c		A C version of perlgen3

Makefile	a Makefile to compile cgen3.c
