Comment l'analyseur Java gère-t-il les opérateurs unaires ambigus ?
Par exemple, en supposant que vous ayez int x
déclaré quelque part, +--x
est un code parfaitement valide. ---x
est théoriquement valide aussi, mais le compilateur jette une erreur. De même, +~~~~~~+--x
est accepté, mais ~~~~~~++--x
ne l'est pas, même si elles peuvent toutes deux être analysées en expressions valides.
D'après ce que je sais, la grammaire est ambiguë, elle doit donc être gérée pendant la tokénisation, mais je ne trouve rien qui l'explique.