Simple utilities sink - stuff that doesn't fit anywhere else / objects in plain C Snapshot
|
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