compilation/installation

4 warning errors on bit field will be generated. please ignore

dec: make ; make install

sun: make sun "C=/home/lctl/furukawa" ...

=====
table     - parameter/entry - specified by abbreviation
parameter - column          - specified by keyword
entry     - row             - specified by name or serial

=====
structure of table database file
!{any commant line}
!{any commant line}
!separator = '{separator character}'  separator for keyword
!separator = ' '
!keyword = "NAME NODE {list of keywords}"
!keyword = "NAME NODE ADR CH MAX TYPE"
!format  = "{scanf format to read parameters}"
!format  = "%s %s %d %d %d %x"
!{any commant line}
{name} {node} {adr} {ch} {max} {type}
ABCD xyz 10 3 20 a001


=====
#include <dynhash.h>

typedef struct HashTable tb2_hash;

struct _tb2_paramkey {		/* each column/parameter info */
	char *keyword;		/* keyword of each parameter */
	char type;		/* type (s/d/x/f) of parameter */
	char *format;		/* conversion format of each parameter */
};

typedef struct _tb2_spec {
	char *abbrev;		/* table name abbreviation */
	int num_entry;		/* number of rows */
	int num_param;		/* number of columns including NAME */
	tb2_hash *hash_name;	/* hash table pointer for name */
	tb2_hash *hash_serial;	/* hash table pointer for serial */
	struct _tb2_paramkey	/* each column/parameter info */
		*(tb2_paramkey[]);
} tb2_spec ;

union _tb2_parament {		/* each parameter info */
	char *string;		/* string type */
	int integer;		/* integer type */
	float real;		/* real type */
};

typedef struct _tb2_entry {
	int serial;		/* serial number starting at 1 */
	char *name;		/* name key */
	union _tb2_parament	/* each parameter info */
		*(tb2_parament[]);
} tb2_entry ;

void *tb2_malloc( size_t size );
char *tb2_strdup( const char *str );

