Simple utilities sink - stuff that doesn't fit anywhere else / objects in plain C Snapshot
tokparser.c
Go to the documentation of this file.
00001 #include "tokparser.h"                                                                      
00002 #include <string.h>                                                                      
00003 #include <malloc.h>                                                                      
00004 
00005 int parse_token(const char *token, TOKENDEF *tkdef)
00006 {
00007   int i;
00008   for(i=0 ; tkdef[i].token_type != -1 ; i++) {
00009     if ( strcmp(token, tkdef[i].type) == 0 ) {
00010       return tkdef[i].token_type;
00011     }
00012   }
00013   return -1;
00014 } 
00015 
00016 char  *token_possible_values(TOKENDEF *tkdef)
00017 {
00018   int i;
00019   int len = 0;
00020   char *ret;
00021 
00022   for(i=0 ; tkdef[i].token_type != -1 ; i++) {
00023     len += strlen( tkdef[i].type ) + 1;
00024   }
00025 
00026   ret = (char *) malloc( len + 1 );
00027   if (!ret) {
00028     return 0;
00029   }
00030 
00031   strcpy(ret, "" );
00032 
00033   for(i=0 ; tkdef[i].token_type != -1 ; i++) {
00034     strcat( ret, tkdef[i].type);
00035     strcat( ret, " " );
00036   }
00037 
00038   return ret;
00039 }
00040 
00041 const char *token_string_for_int(int value, TOKENDEF *tkdef)
00042 {
00043   int i;
00044 
00045   for(i=0 ; tkdef[i].token_type != -1 ; i++) {
00046     if ( tkdef[i].token_type == value ) {
00047       return tkdef[i].type;  
00048     }  
00049   }
00050   return "";
00051 }
00052 
00053