Re: Unquoted backslashes for identifier escapes?

David-Sarah Hopwood <david.hopwood-mRVxzIiVagSlV3Ge8JjJtnfLna9zW77MtUK59QYPAWc@public.gmane.org>
Newsgroups gmane.comp.lang.e.general
Message-ID <[email protected]>
Kevin Reid wrote:
> The ::"foo bar" syntax for noun strings is rather ugly and not well- 
> justified.
> 
> How about, replacing the current noun-string and verb-string, allowing  
> backslash escapes in identifiers, which would work uniformly rather  
> than being different for nouns and verbs?
> 
> That is:
> 
> Current                New
> ::"foo bar"            foo\ bar
> c."add(Component)"(d)  c.add\(Component\)(d)
> 
> Actually, I can think of one disadvantage already: the quote syntax  
> permits the empty string, whereas backslashes need at least one  
> character to escape. Not that it's *sensible* to use the empty string  
> for an identifier, but the regularity is good.
> 
> Common Lisp uses essentially this approach for symbol names -- the  
> escaping is uniform -- but it has a "multiple escape" which is  
> essentially quotes:
> 
> add\(Component\)   single escape
> |add(Component)|   multiple escape
> ||                 empty-string-named symbol using multiple escape
> 
> What comes to mind to have such a syntax in E is:
> 
> \"foo bar"
> \"add(Component)"
> \""
> 
> But that is rather peculiar and inconsistent with other uses of  
> backslash.

Smalltalk uses # for symbol names. Perhaps

  #"foo bar"
  c.#"add(Component)"(d)

or

  #foo bar#
  c.#add(Component)#(d)

?

(In the first case, # is a prefix operator taking a string to a symbol.
In the second, #...# is a new literal syntax for symbols that uses the
same internal escaping as "..."; \# would be added to the escapes for
both strings and symbols. Note that this avoids lexical ambiguities that
would be introduced by using '|'.)

-- 
David-Sarah Hopwood ⚥

_______________________________________________
e-lang mailing list
[email protected]
http://www.eros-os.org/mailman/listinfo/e-lang
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.