>>> Given the ridiculous complexity we're looking at adding to work

> >> around this, making the lexer easier by adding the leading 'm'
>
>> or whatever seems like a good step.  A bit ugly lexically, but
>
>> way easier to implement and will help us avoid more pain in
>
>> the future.
>
> > Definitely.
> > For which version^H^H^H^H codename do we plan the change?
>
> Well, it's a bugfix that just happens to horribly break backward
> compatibility.  But I'd say 0.25.1, because we're basically choosing
> between breaking compatibility with code in 0.24 (incorrectly lexing
> division) and 0.25 (changing the regex lexing).
>
> Thoughts?
>

Yeah.  I don't like the leading 'm'.

Further, I think the complexity in the workaround is coming from the
approach (maintaining special purpose state) rather than the problem.

I'd favor (as I mentioned on the ticket) adding a general purpose
"acceptable?" test to tokens and have the lexer use that in with the longest
match first logic.

Make "acceptable?" default to true, but in the case of REGEX have it check
to see if it's in a value context (that is, that the last token generated
was in the set LBRACE, RBRACE, COMMA, etc.).  As far as I can see, the last
token gives a clean division between where DIV is acceptable and where REGEX
is acceptable so there need only be one place (REGEX.acceptable?) where we
do anything funky--and that just an [...].include? test.

I'm working on debugging a 24.8/25.0 problem at the moment but I'll try to
code this up later today.

-- Markus

P.S. As always, there may be a complexity that I'm not seeing that makes
this unworkable, and I welcome anyone pointing it out if you see it.  It
looks pretty straight forward.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to