Re: A really subtle lexer bug
От | Tom Lane |
---|---|
Тема | Re: A really subtle lexer bug |
Дата | |
Msg-id | 4515.1535051153@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: A really subtle lexer bug (Andrew Gierth <andrew@tao11.riddles.org.uk>) |
Список | pgsql-hackers |
Andrew Gierth <andrew@tao11.riddles.org.uk> writes: > Here's what I will push unless there's something important I missed. Stylistic nitpick: I don't especially like "continue" as the body of a for-loop. How about instead of this: for (nchars--; nchars > 1 && (yytext[nchars - 1] == '+' || yytext[nchars - 1] == '-'); nchars--) continue; do this: do { nchars--; } while (nchars > 1 && (yytext[nchars - 1] == '+' || yytext[nchars - 1] == '-')); That's a clearer separation between loop action and loop test, and it makes it more obvious that you're relying on the loop condition to be true at the start. Also, I'm not entirely convinced that replacing the strchr() with a handmade equivalent is a good idea. Some versions of strchr() are pretty quick. No objections beyond that. regards, tom lane
В списке pgsql-hackers по дате отправления: