Mercurial > hg > tinycc
changeset 188:df98fb0378c7
[project @ 2002-11-22 13:37:52 by bellard]
further parse optimizations
author | bellard |
---|---|
date | Fri, 22 Nov 2002 13:37:52 +0000 |
parents | 8fb3e7898629 |
children | bfde9349a2a3 |
files | tcc.c |
diffstat | 1 files changed, 18 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/tcc.c Wed Nov 20 00:29:04 2002 +0000 +++ b/tcc.c Fri Nov 22 13:37:52 2002 +0000 @@ -2675,14 +2675,21 @@ char *q; TokenSym *ts; - /* skip spaces */ - while(1) { - while (ch == '\n') { - /* during preprocessor parsing, '\n' is a token */ - if (return_linefeed) { - tok = TOK_LINEFEED; - return; - } + redo_no_start: + switch(ch) { + case ' ': + case '\t': + case '\f': + case '\v': + case '\r': + cinp(); + goto redo_no_start; + + case '\n': + if (return_linefeed) { + /* XXX: should eat token ? */ + tok = TOK_LINEFEED; + } else { cinp(); skip_spaces(); if (ch == '#') { @@ -2690,12 +2697,9 @@ spaces */ preprocess(); } - } - if (!is_space(ch)) - break; - cinp(); - } - switch(ch) { + goto redo_no_start; + } + break; case '#': tok = ch;