00001
00024
00025
00026
00027
00028
00029
00030
00031 #include <sent/stddefs.h>
00032 #include <sent/dfa.h>
00033 #include <ctype.h>
00034
00044 WORD_ID
00045 dfa_symbol_lookup(DFA_INFO *dinfo, char *terminalname)
00046 {
00047 WORD_ID id;
00048 int c;
00049 char *p;
00050
00051
00052 for(p=terminalname;*p!='\0';p++) {
00053 c = *p;
00054 if (! isdigit(c)) {
00055 jlog("Error: dfa_lookup: terminal number is not digit in dict! [%s]\n", terminalname);
00056 return(WORD_INVALID);
00057 }
00058 }
00059
00060
00061
00062 id = atoi(terminalname);
00063 if (id >= dinfo->term_num) return(WORD_INVALID);
00064 else return(id);
00065 }