Example Lexer
/* The ``big switch'': guess token type, call a routine to parse it */ TOKEN gettoken() { TOKEN tok; int c, cclass; tok = talloc(); /* allocate new token */ skipblanks(); /* and comments */ if ((c = peekchar()) != EOF) { cclass = CHARCLASS[c]; if (cclass == ALPHA) identifier(tok); else if (cclass == NUMERIC) number(tok); else if (c == '\'') getstring(tok); else special(tok); } else EOFFLG = 1; return(tok); }