default   Racket Bugs
Main PageQuick QueryStandard QueryAdvanced QueryHelp
Log in

View Problem Report: 48

send email to interested parties or send email followup to audit-trail
Reporter's email: krentel at cs dot rice dot edu
Number: 48
Category: drscheme
Synopsis: Check Syntax problems
Class: sw-bug
Responsible: robby
Notify-List:
Severity: serious
Priority: medium
State: closed
Confidential: no
Arrival-Date: Tue Apr 29 12:15:02 -0400 1997
Closed-Date:
Last-Modified: Wed May 28 17:35:49 -0400 1997
Originator: Mark Krentel
Organization: titan
Submitter-Id: unknown
Release: 49/19
Environment: FreeBSD
Description: I've noticed the following discrepancies with Check Syntax.
I realize that hilighting syntax is a hard problem, so if some of these
are impossible to fix, feel free to say so.  But they all had surprise
value to me, the naive programmer.

1. illegal syntax (eg, mismatched parens) causes internal error.

2. (quote x) is marked as const (correct), but quasiquote, unquote,
unquote-splicing (spelled out, not tick mark) are unmarked.

3. 'a and '(a b c) are unmarked.

4. (or 1 2 3) and (and 1 2 3) fail to mark the last element.

5. #&a, #&"hi", #&2 are entirely unmarked (not even the "hi" or 2).

6. local is unmarked, and so is define inside local.


File Attachments:
How-To-Repeat:
Fix:
Release-Note:
Unformatted: I have looked at this a bit.  I don't know why some of these happen.
What I can add is:

- local is now fixed; eventually all such "macros" will be fixed.
  They have to be done by hand one-at-a-time, though.

- The keywords inside local are not marked, and probably won't be.
  Nobody's mentioned this in the past two months, so it was probably
  time for it to come up again.  Notice the answer hasn't changed. (-:

- quasiquote, unquote, unquote-splicing may eventually be marked.  It
  doesn't matter whether you write them out or abbreviate them; in
  either case, they are still internal keywords.

- I couldn't find any clues in the output of (or ...) that told me
  what was wrong.  Note that (or), (or 1) and (or 1 2) also don't
  produce the right output.  In each case, the abstract syntax looks
  right, unless I'm missing something (Robby?).

'shriram

send email to interested parties or send email followup to audit-trail

Audit Trail:


From: "Mark W. Krentel" <krentel>
To: shriram at cs.rice.edu
Cc: plt-gnats
Subject: all/48: Check Syntax problems
Date: Tue, 29 Apr 1997 13:44:54 -0500 (CDT)

 It's just "define" inside local that's not highlighted.
 begin, lambda, if, etc are all marked as syntax.
 --mwk

From: Shriram Krishnamurthi <shriram at cs.rice.edu>
To: "Mark W. Krentel" <krentel at cs.rice.edu>
Cc: plt-gnats at cs.rice.edu
Subject: all/48: Check Syntax problems
Date: Tue, 29 Apr 1997 13:55:59 -0500 (CDT)

 > It's just "define" inside local that's not highlighted.
 > begin, lambda, if, etc are all marked as syntax.
 
 What is this apropos to?  define inside local is a local keyword, not
 a regular Scheme special form.  It is _not_ the same as top-level
 define; it just happens to share a name with it.
 
 'shriram

Responsible-Changed-From-To: krentel->robby
Responsible-Changed-By: robby
Responsible-Changed-When: Sat May 24 14:29:31 1997
Responsible-Changed-Why:

State-Changed-From-To: open-closed
State-Changed-By: robby
State-Changed-When: Sat May 24 14:37:29 1997
State-Changed-Why:

points 1-5 work now.

Responsible-Changed-From-To: robby->robby
Responsible-Changed-By: robby
Responsible-Changed-When: Wed May 28 14:35:47 1997
Responsible-Changed-Why: