147 |
|
|
148 |
open(IP, $keyword_file) || die("$com: cannot open file '$keyword_file'.\n"); |
open(IP, $keyword_file) || die("$com: cannot open file '$keyword_file'.\n"); |
149 |
print "%{\n"; |
print "%{\n"; |
150 |
|
print "#include \"strmake.h\"\n"; |
151 |
print "#define START_VARIABLE\t$n_variable\n"; |
print "#define START_VARIABLE\t$n_variable\n"; |
152 |
print "#define START_WORD\t$n_word\n"; |
print "#define START_WORD\t$n_word\n"; |
153 |
print "#define START_SHARP\t$n_sharp\n"; |
print "#define START_SHARP\t$n_sharp\n"; |
237 |
print "const char *str;\n"; |
print "const char *str;\n"; |
238 |
print "int len;\n"; |
print "int len;\n"; |
239 |
print "{\n"; |
print "{\n"; |
240 |
print "\tstruct keyword *keyword = ${pre}_lookup(str, len);\n"; |
if ($type eq 'sharp') { |
241 |
|
print "\tchar *p = strtrim(str, TRIM_ALL, &len);\n"; |
242 |
|
print "\tstruct keyword *keyword = ${pre}_lookup(p, len);\n"; |
243 |
|
} else { |
244 |
|
print "\tstruct keyword *keyword = ${pre}_lookup(str, len);\n"; |
245 |
|
} |
246 |
print "\tint n = keyword ? keyword->token : 0;\n"; |
print "\tint n = keyword ? keyword->token : 0;\n"; |
247 |
print "\treturn IS_RESERVED_${TYPE}(n) ? n : 0;\n"; |
print "\treturn IS_RESERVED_${TYPE}(n) ? n : 0;\n"; |
248 |
print "}\n"; |
print "}\n"; |