+ else if (look_char == '\'')
+ {
+ off = 0;
+ look_char = (*fml->read_func)();
+ while (look_char != fml->eof_mark && look_char != '\'')
+ {
+ lex_buf[off++] = look_char;
+ if (look_char == '\\')
+ {
+ look_char = (*fml->read_func)();
+ switch (look_char)
+ {
+ case 'n':
+ lex_buf[off-1] = '\n';
+ break;
+ case 't':
+ lex_buf[off-1] = '\n';
+ break;
+ case '\'':
+ lex_buf[off-1] = '\'';
+ break;
+ default:
+ lex_buf[off-1] = look_char;
+ }
+ }
+ look_char = (*fml->read_func)();
+ }
+ lex_buf[off] = '\0';
+ look_type = 'a';
+ if (look_char == '\'')
+ look_char = (*fml->read_func)();
+ }