Optional Chaining (aka Existential Operator, Null Propagation)

Claude Pache claude.pache at gmail.com
Wed Feb 3 22:41:54 UTC 2016


> Le 3 févr. 2016 à 20:56, John Lenz <concavelenz at gmail.com> a écrit :
> 
> Can you reference something as to why the more obvious operators are problematic?
> 
> ?.

That one (that I've used) must work, with the simple lookahead I've put in the lexical grammar, in order to continue to parse `x?.3:0` as today. 

> ?[]
> ?()

For those it is difficult for the parser to easily (i.e. quickly, without trying and backtracking code of arbitrary length) distinguish from the conditional operator, as in: `x ?(y - 2) + 3 : 0` Also, the difference of precedence level between the two operators makes the use of a cover grammar (I think) impossible.

> ?:

I'm not sure what that one should be used for. (If you mean the Elvis operator, it's out of the scope of the proposal.)

—Claude


More information about the es-discuss mailing list