Thread (1 message) 1 message, 1 author, 2021-03-29

Re: [GSOC][PATCH] userdiff: add support for Scheme

From: Junio C Hamano <hidden>
Date: 2021-03-29 20:48:40

Atharva Raykar [off-list ref] writes:
quoted
Having said that, two further points.

- the "anything but whitespaces and various forms of parentheses"
  set would include backslash, so 'component\new' would be taken as
  a single word with "[^][()\\{\\} \t]+", wouldn't it?

- how common is the use of backslashes in identifiers?  I am trying
  to see if the additional complexity needed to support them is
  worth the benefit.
I have refined the regex, and now it is much simpler and does all of what
I want it to:

	"([^][)(}{[:space:]])+"
OK, [:space:] is already used elsewhere, so it would be OK.

In practice, the only difference from "[ \t]" (which is used in many
other patterns in the same file) is that [:space:] class includes
form-feed (\Ctrl-L); nobody would write vertical-tab in the code,
and the matching is done one line at a time, so the fact that LF (or
CRLF) is in the [:space:] class does not make a difference anyway.
I did not have to escape the various parentheses, so I avoided the need to
handle backslashes separately. The "\\t" was causing problems as well because
If you spelled "\\t" that would have caused a problem of your own
making ;-)

I think what I gave in the message you are responding to was a
single backslash followed by a 't', to let the compiler turn them
into a single HT character, and that wouldn't have had such a
problem---in fact "[ \t]" is used in many other existing rules in
the same file.

Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help