On May 9, 2009, at 2:32 PM, David-Sarah Hopwood wrote:
I would mildly prefer to use an S-expression-style AST, like this:
["||",
["||",
["Id", "X"],
["Id", "Y"]],
["Id", "Z"]]
which is more concise, does not lose any useful information, and
is easier to remember. This is the same style as used in JsonML
(www.jsonml.org).
Not bad. I will give it a try in the prototype I've started. Thanks
for the pointer.
It so happens that this is *semantically* equivalent to "a || (b ||
c)",
but that is not an equivalence of abstract syntax.
I know, that's my point. The connectives can be parsed and evaluated
either way, but the short-circuiting seems to favor right
associativity, on one hand.
On the other hand, I'm defying a long tradition here. The precedent
going back to C (K&R before ANSI got in the loop; ignore Algol and
BCPL precedents ;-) uses left associativity, and ES1 followed suit.
So this is not a big deal, and it would be quixotic of me to make too
much of it :-). I wanted to raise it as a potential issue. It's a
practical issue in SpiderMonkey since we do right-associate || and &&
in the internal syntax tree.
/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss