Mercurial > hg > aim92
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 } |