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