#include #include #include #include static char current_ext; int is_ext(char c) { return (c && c != '.' && !isspace(c)); } void cpu_error(int code) { } char *lex_inst(char *s, int *inst_len, char **ext, int *ext_len, int *ext_count) { char *inst = s; int count = *ext_count; for (; is_ext(*s); s++); *inst_len = s - inst; for (; *s++ == '.' && count < MAX_QUALIFIERS;) { ext[count] = s; for (; is_ext(*s); s++); ext_len[count] = s - ext[count]; (ext_len[count] <= 0) ? (cpu_error(34)) : (count++); } *ext_count = count; current_ext = (count > 0) ? tolower(ext[0][0]) : '\0'; return s; }