On Jun 25, 9:36 am, Mark Addleman <mark_addle...@bigfoot.com> wrote:
> On Jun 25, 4:26 am, Rich Hickey <richhic...@gmail.com> wrote:
>
>
>
>
>
> > On Thu, Jun 25, 2009 at 7:03 AM, James Reeves<weavejes...@googlemail.com> 
> > wrote:
>
> > > On Jun 25, 10:02 am, James Reeves <weavejes...@googlemail.com> wrote:
> > >> Here's one that regularly confuses me:
>
> > >>   (prn [10)
>
> > >>   => java.lang.Exception: Unmatched delimiter: )
>
> > >> Ideally the exception should correctly report the type of unmatched
> > >> bracket. In this case:
>
> > >>   => java.lang.Exception: Unmatched delimiter: ]
>
> > > I've just realised I've made a mistake. The error message is not
> > > complaining that there is a parenthesis missing; it is complaining
> > > that an ending parenthesis has no matching start parenthesis.
>
> > > So this is an technically accurate error message, but perhaps not the
> > > most intuitive, as a user is more likely to miss off an ending bracket
> > > than a starting one. A better error message might be:
>
> > >  => java.lang.Exception: Missing delimiter: ]
>
> > But it doesn't know when it sees the ) that ] is missing, it might not be:
>
> > (prn [10)]
>
> > i.e. the ) has nothing to do with the [, there might not even be a
> > pending aggregate:
>
> > user=> )
> > java.lang.Exception: Unmatched delimiter: )
>
> > Rich
>
> In your example, couldn't the parser know that when it sees the ),
> something has gone wrong?  Maybe it's due to my IDE's lack of
> sophistication, but I find my paren/bracket/brace problems are almost
> always around closing them properly (hey, that's punny!) so it would
> help me if the error message indicated that it saw ) but expected ].
>

It does know when it sees the ')',  and reports it then. But what
exactly has gone wrong (beyond the ')' has no partner) is subjective.
Another example:

(let [x map inc nums)] ...)

Clearly the message: "java.lang.Exception: Missing delimiter: ]" would
not be helpful here.

This seems to me an edit-time bug best fixed using an editor with
proper matching support.

Rich

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to