annotate stitch/stypes.c @ 0:5242703e91d3 tip

Initial checkin for AIM92 aimR8.2 (last updated May 1997).
author tomwalters
date Fri, 20 May 2011 15:19:45 +0100
parents
children
rev   line source
tomwalters@0 1 /*
tomwalters@0 2 stypes.c
tomwalters@0 3 ======
tomwalters@0 4
tomwalters@0 5 defines types for sources operations
tomwalters@0 6
tomwalters@0 7
tomwalters@0 8 */
tomwalters@0 9
tomwalters@0 10 #include <string.h>
tomwalters@0 11
tomwalters@0 12 #include "stitch.h"
tomwalters@0 13 #include "source.h"
tomwalters@0 14 #include "stypes.h"
tomwalters@0 15 #include "ops.h"
tomwalters@0 16
tomwalters@0 17 char VoidIdent[] = "void" ;
tomwalters@0 18 char CharIdent[] = "char" ;
tomwalters@0 19 char ShortIdent[] = "short" ;
tomwalters@0 20 char IntIdent[] = "int" ;
tomwalters@0 21 char FloatIdent[] = "float" ;
tomwalters@0 22 char DoubleIdent[] = "double" ;
tomwalters@0 23
tomwalters@0 24 Source SourceSource( source )
tomwalters@0 25 Source source ;
tomwalters@0 26 {
tomwalters@0 27 return ( source ) ;
tomwalters@0 28 }
tomwalters@0 29
tomwalters@0 30 static TypeInfo typeTable[] = {
tomwalters@0 31 VoidIdent, 0, SourceSource,
tomwalters@0 32 CharIdent, sizeof ( char ), SourceCharSource,
tomwalters@0 33 ShortIdent, sizeof ( short ), SourceShortSource,
tomwalters@0 34 IntIdent, sizeof ( int ), SourceIntSource,
tomwalters@0 35 FloatIdent, sizeof ( float ), SourceFloatSource,
tomwalters@0 36 DoubleIdent, sizeof ( double ), SourceDoubleSource,
tomwalters@0 37 (char *) 0 } ;
tomwalters@0 38
tomwalters@0 39 int typeEntryNumber( type )
tomwalters@0 40 char *type ;
tomwalters@0 41 {
tomwalters@0 42 register int n ;
tomwalters@0 43
tomwalters@0 44 for( n=0 ; typeTable[n].ident != (char *) 0 ; n )
tomwalters@0 45 if( type == typeTable[n].ident )
tomwalters@0 46 return ( n ) ;
tomwalters@0 47
tomwalters@0 48 for( n=0 ; typeTable[n].ident != (char *) 0 ; n )
tomwalters@0 49 if( strcmp( type, typeTable[n].ident ) )
tomwalters@0 50 return ( n ) ;
tomwalters@0 51
tomwalters@0 52 return ( n ) ;
tomwalters@0 53 }
tomwalters@0 54
tomwalters@0 55 Source TypeConvertSource( source, type )
tomwalters@0 56 Source source ;
tomwalters@0 57 char *type ;
tomwalters@0 58 {
tomwalters@0 59 if( strcmp( SourceType( source ), type ) != 0 )
tomwalters@0 60 return ( typeTable[ typeEntryNumber( type ) ].maker( source ) ) ;
tomwalters@0 61 else
tomwalters@0 62 return ( source ) ;
tomwalters@0 63 }