Approved. This seems like a reasonable solution to a messy problem.
On 2011-03-30, at 12:43, André Bargull wrote: > Change bargull-20110330-C9A by bargull@Bargull02 on 2011-03-30 18:26:50 > in /home/anba/src/svn/openlaszlo/trunk > for http://svn.openlaszlo.org/openlaszlo/trunk > > Summary: Adjust parser to accept "*=" as untyped type with initializer > > Bugs Fixed: LPP-9612 (Lexer needs to learn that `arg:*=default` is not `*=` > operator) > > Technical Reviewer: ptw > QA Reviewer: (pending) > > Details: > There are basically two ways to fix this bug: > - either remove "*=" as a single token > - or special case "*=" in TypeAndInitializer() and FormalParameter() > > The first approach requires some quirks in the lexer, because we still like > to create token constants for "*=" and at the same time "*=" should no longer > be parsed as a single token but as "*" and "=". Additionally > AssignmentOperator() needs to special case "*" "=" to create the "*=" > operator, so this requires even more hacks... > Therefore I've taken the second approach, that means to handle "*=" in > TypeAndInitializer() and FormalParameter(), so the parser creates the same > ast as for "*" "=". > > > Tests: > test case from bug report > > Files: > M WEB-INF/lps/server/sc/src/org/openlaszlo/sc/Parser.jjt > > Changeset: > http://svn.openlaszlo.org/openlaszlo/patches/bargull-20110330-C9A.tar >
