Re: Sharpsign syntax for hashtables, sets, bytevectors, etc. Alaric Snell-Pym 25 Sep 2019 10:30 UTC
On 25/09/2019 10:53, Lassi Kortela wrote:

> Embedded XML is a good illustration of why embedding custom lexers
> causes things to quickly turn chaotic. (But XML is not the worst example
> by any means - it can and will get more baffling. Mix PHP, HTML, CSS
> and/or JavaScript in the same file and things get real :)

I've been there :-D

> Not to judge, but there is a segment of people who absolutely love
> lexers and parsers, and will jump at the chance to re-invent a
> poorly-thought-out custom syntax for the simplest of jobs. Then the rest
> of us have to scratch our heads at how to parse those things and how to
> implement basic tools like code walkers and syntax highlighters. So
> based on both principle (complexity budget) and repeated experience, I'd
> be strongly in favor of having very simple core S-exps, building any
> complex types by nesting those, and banhammering all custom lexer
> extensions in the format :) Let people keep any lexer extensions in
> their own Lisp code, where they are the only ones who will have to deal
> with them.

Sounds good to me!

>> (2) makes bits of a bytevector that happen to also be valid ascii or
>> utf-8 text "readable", but is more complicated to generate/parse and
>> ends up as a worse form of (1) for very unprintable stuff.
>
> The thing is that character encoding is easily messed up by running
> "iconv". (This problem concerns ordinary strings too.)

Yes. On a subtler level, it conflates the model of the s-expression as a
sequence of *characters* - and it being a sequence of bytes. A bit of a
layer violation!

--
Alaric Snell-Pym   (M7KIT)
http://www.snell-pym.org.uk/alaric/