unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Bielawski, Richard G." <Richard.G.Bielawski@wellsfargo.com>
Cc: emacs-devel@gnu.org
Subject: RE: 2 character comment starter bug
Date: Wed, 23 Mar 2005 18:28:42 -0800	[thread overview]
Message-ID: <7D10EFE37E7CBF4288CAFDFAD3C7932C3466E5@msgswbmnmsp04.wellsfargo.com> (raw)

> >> >     (modify-syntax-entry ?\= "_ b12" st) ; comment start == 
> >> 
> >> Yes, it seems the problem is that your 2-char comment  
> sequence is made
> >> of symbol-chars, so there are cases where the code does 
> things  like "oh,
> >> here's a symbol, let's skip it" without checking whether 
> some of the
> >> chars that compose the symbol happen to also be a comment-marker.
> >> 
> >> Does your = char really need to have "symbol" syntax (i.e. "_") or
> >> could it have punctuation syntax instead (i.e. ".") ?
> 
> > Punctuation syntax seems to cause all kinds of problems.  The =
> > character is commonly used as the first character in in
> > filenames.
> 
> But does it matter in such a case whether it has punctuation syntax or
> symbol syntax?  Do you also give symbol syntax to the / 
> directory separator as well?

A / is an illegal character in any part of a filename on this system.
In this language / / are most often seen as paired delimiters.

> > It's also part of several operators such as := and ':=' and 
> '=:' which
> > would behave quite oddly without proper syntax.
> 
> Traditionally, punctuation syntax has been used specifically 
> for things like
> the above.  So, I'd say that punctuation *is* the proper 
> syntax.  If you use
> symbol syntax for those chars, things like M-C-f risk skipping over
> "foo:=bar" in "foo:=bar + 1", rather than just skipping over "foo".

[#set foo [bar]] and [#set foo [#compute bar + 1]] would be required
to accomplish the operations your examples seem to describe. 
If I see ':=' in this language I would almost certainly want it 
treated as a word.

> 
> > It sounds like you are saying it might be a problem to fix the code.
> 
> Yes: it might take a bit of work; it risks slowing down syntax-based
> operations in all buffers; and it could introduce bugs in 
> other languages
> where the current behavior is closer to what we want (after 
> all, if you
> define your language using lex and you say that a symbol can 
> be [a-z=_]+
> and a comment starter is ==, your lexer will take `foo==' to 
> be a symbol
> and won't see the comment starter in it).

In this language == always begins a comment no matter where it is
found unless a ~ precedes it.  There are no exceptions.

> 
> The current behavior is buggy (it doesn't behave consistently between
> things like forward-sexp, backward-sexp, and parse-partial-sexp).
> 
> But before someone can convince me to try and fix these bugs, 
> they should
> first make a good case that the way they setup their 
> syntax-tables is well
> thought out.
> 

If the fact that the problem exists reflects the standard by
which `well thought out' is measured you're being a pushover.

I suppose, since it's possible for me to work around this problem
by using syntactic-keywords to handle the comments I would prefer 
problems for which there are no workarounds be addressed first.  
If it will remain this way for any length of time though, I do
think it should be documented somewhere.  Even if only on a known
problems list.

             reply	other threads:[~2005-03-24  2:28 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-24  2:28 Bielawski, Richard G. [this message]
2005-03-24 13:03 ` 2 character comment starter bug Stefan
     [not found] <7D10EFE37E7CBF4288CAFDFAD3C7932C3466E2@msgswbmnmsp04.wellsfargo.com>
2005-03-23 23:10 ` Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7D10EFE37E7CBF4288CAFDFAD3C7932C3466E5@msgswbmnmsp04.wellsfargo.com \
    --to=richard.g.bielawski@wellsfargo.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).