From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Berlin To: Jim Blandy Cc: Daniel Berlin , Elena Zannoni , gdb-patches@sources.redhat.com Subject: Re: [RFA] linespec.c change to stop "malformed template specification" error Date: Thu, 07 Jun 2001 11:35:00 -0000 Message-id: <87bso0nno7.fsf@cgsoftware.com> References: <87ofsldrgr.fsf@dynamic-addr-83-177.resnet.rochester.edu> <15134.47162.825017.119342@kwikemart.cygnus.com> <15135.37463.301545.370875@kwikemart.cygnus.com> <87r8wwb74f.fsf@cgsoftware.com> X-SW-Source: 2001-06/msg00143.html Jim Blandy writes: > Daniel Berlin writes: >> > So finding breakpoint names requires parsing (almost) arbitrary >> > expressions. >> Only if you allow arbitrary names. >> We don't. >> So this leaves allowing a superset. > > Sorry, I don't understand what you mean. We don't allow expressions inside the line specifications right now. Try "break (5 < 10) ? 10 : 20". So the trouble we run into right now is because due to us wanting to do good error messages, without any kind of a real parser, we sometimes incorrectly split out what the function name is from the rest of the line specification. The solution to this is to allow a superset of what we do now (or use a real parser, i have one ready if we like), at the expense of error messages. Right now, we don't accept things we should. We'd be better off accepting things we shouldn't (ie Daniel::fred", which is what we do now, because of the problem in find_toplevel_char. If you want to allow arbitrary expressions inside line specifications, well, that's a whole nother can of worms. I'm trying to solve the problem above (that we incorrectly parse the linespec typed in, in the form of incorrectly determining what part is the function name, if there is one). You seem to be saying the solution won't work because it'll break arbitrary expressions in names. But we don't support arbitrary expressions in names *anyway*. It's like saying "if you do this to the car, it won't be able to hover." when the car can't hover anyway. :) If we want to discuss doing proper evaluation of the expressions that may occur in a linespec, then lets do that. But that's not what my patch was intending to solve. -- "One time I went to a museum where all the work in the museum had been done by children. They had all the paintings up on refrigerators. "-Steven Wright