Re: [HACKERS] Postgres' lexer
От | Thomas Lockhart |
---|---|
Тема | Re: [HACKERS] Postgres' lexer |
Дата | |
Msg-id | 37CBF343.73A813DE@alumni.caltech.edu обсуждение исходный текст |
Ответ на | Re: [HACKERS] Postgres' lexer (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
> > I added the <xm> exclusive state to accomodate the possibility of a > > unary minus. The change was provoked by Vadim's addition of CREATE > > SEQUENCE, which should allow negative numbers for some arguments. But > > this just uncovered the tip of the general problem... > It seems awfully hard and dangerous to try to identify unary minus in > the lexer. The grammar at least has enough knowledge to recognize that > a minus *is* unary and not binary. Looking into gram.y, I find that the > CREATE SEQUENCE productions handle collapsing unary minus all by > themselves! So in that particular case, there is still no need for the > lexer to do it. AFAICT in a quick look through gram.y, there are no > places where unary minus is recognized that gram.y won't try to collapse > it. > In short, I still think that the whole mess ought to come out of the > lexer... My recollection of the whole point is that, as you mention, *you can't identify a unary minus in the lexer*. So the minus sign is kept distinct, to be reconciled later as either a unary minus *or* an operator *or* whatever. The problem was that before, things like (-2) and (- 2) were handled differently just because the spacing was different. Anyway, I'll look at the defacto changes; perhaps they are just fine but I'm worried that we've reverted the behavior... - Thomas -- Thomas Lockhart lockhart@alumni.caltech.edu South Pasadena, California
В списке pgsql-hackers по дате отправления: