||Wed 2017-03-29 08:59|
More parser theoryI had a conversation recently about low-priority prefix operators in infix expression grammars, which left me mildly uncertain about what they ought to mean. So here's a quick straw poll.
Suppose I have an expression grammar in which the multiplication operator
* and the addition operator
+ have their usual relative priority (namely,
* binds more tightly, i.e. is evaluated first). Then suppose I – perhaps unwisely – introduce a prefix operator, which I'll call
PFX for want of a better name, which has intermediate priority between the two, so that
That's simple enough (if unusual). But things get weirder when
PFX a + b behaves like
(PFX a) + b, i.e. the
PFX is evaluated first
PFX a * b behaves like
PFX (a * b), i.e. the
PFX is evaluated second.
PFX appears on the right of another operator. Specifically, what would you imagine happens to this expression:
a * PFX b + cin which you can't process the operators in priority order (
+) because the
PFX necessarily has to happen before the
Open to: Registered Users, detailed results viewable to: All, participants: 10
In what order should the parser process those operators?