On Thu, Feb 17, 2011 at 2:58 PM, Luke Kanies <[email protected]> wrote:
> On Feb 17, 2011, at 2:46 PM, Nick Lewis wrote: > > On Thu, Feb 17, 2011 at 2:11 PM, Luke Kanies <[email protected]> wrote: > >> This looks more like a lexer problem than a parser problem to me. >> >> Negative numbers should be lexed the same as positive numbers, because >> otherwise you have to go in and specifically allow negative numbers >> everywhere. >> >> In the current solution, you have enabled negative numbers for functions, >> but not for parameter values: >> >> file { "/tmp/asdf": owner => -1 } >> >> That throws a parse exception. >> >> Note that there's an easy workaround: >> >> file { "/tmp/asdf": owner => "-1" } >> >> This works just fine with functions, too (given that Puppet's language >> only has strings, no numbers). >> > > It's true that this solution doesn't fix that problem. But it does fix the > problem of not being able to call my_function(-$a), which has a more > challenging workaround. A solution that would have solved both related > problems would be more complex, and didn't feel appropriate for a fix > targeting 2.6. In the future, there are a whole host of related lexer/parser > issues I would like to address, including #5817, #5516, #5268, #3129. > > > Hmm. I think supporting that is actually a bug, and is one of the problems > with solving this at a syntactic level. Ruby doesn't support that syntax, > and my guess is nothing else reasonable does, either. If you want that, use > quotes: > > I may be misunderstanding you, but Ruby most definitely supports a unary minus operator on variables. > my_function("-$a") > > I think our lexer should support negative numbers, but our parser > absolutely shouldn't care about them. > > > I agree with that, but I also think that what the parser should ideally do and what we should do to the parser right now are different things. > -- > It is curious that physical courage should be so common in the world and > moral courage so rare. -- Mark Twain > --------------------------------------------------------------------- > Luke Kanies -|- http://puppetlabs.com -|- +1(615)594-8199 > > > -- > 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. > -- 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.
