I suggest using "--" instead of "#" as the comment introducer. "--" is
what Applescript uses, and is more likely to make sense to the average
human (rather than a programmer) IMHO.
I can see this, but I'd like a second opinion. It seems a little strange to
"--" becomes problematic the minute you add arithmetic operators to the
language. Let's not make Ada's mistake here, OK?
I'm not wild about "#" but the only alternative I see is "!", which might
interfere with future operator extensions. So "#" really seems like the best
choice for now.
The grammar seems to require a trailing ";" after every command
(including an endif). I'm starting to think it would be better to simply
have CRLF terminate a command as many of your examples do (and use "\"
CRLF to fold a line).
I'll fix the examples to reflect what's in the draft. I'm not sure I like
this change, but it might clean things up. I'd like a second opinion.
I don't like this change either -- we're making the mistake Praxis (and others)
You currently use "message" to introduce a block of text. I'll point out
that this isn't really a message, as it's lacking headers. I suggest
using "text:" instead of "message".
Ok, this is an improvement.
I finally figured out why I dislike the use of SMTP-style message text: It is
because it makes the grammar context-sensitive: "message" (or "text:") has to
kick the lexer into a special state. I think this is fairly problematic
behavior at best. What happens when we want to extend the language by adding
some other construct that requires message text as an argument.
I think we really need to bite the bullet here and go back to some sort of
consistent quoting scheme. I'd recommend using C style string constants,
possibly with the extension of alloing a string to cross line boundaries.