I attached a comment to your gist. Yes I found the same thing.

---
"No man is an island... except Philip"


On Tue, Apr 2, 2013 at 12:29 AM, Thomas Ingram <[email protected]>wrote:

> Thanks guys. Can we pretend this didn't happen?
>
> On another note it looks like the rule blocks are being class eval'd, so
> my `origin` instance method isn't even in scope. I'm passing it in when I
> call #apply, but is there a better way?
>
>
> On Mon, Apr 1, 2013 at 6:57 AM, Nigel Thorne <[email protected]>wrote:
>
>>
>>     def initialize(origin,&block)
>>       @origin = origin
>>       super(&block)   # <-----change your AST.rb to this
>>     end
>>
>> transform.rb in Parslet was complaining that
>>
>>   def rules
>>     self.class.rules + @rules
>>   end
>>
>> was adding nil. just to be sure I changed it to this...
>>
>>   def rules
>>     puts "#{self.class.rules.inspect} + #{@rules.inspect}"
>>     self.class.rules + @rules
>>   end
>>
>> which shows that @rules was nil
>>
>> @rules is initialized to [] in the initialize method... so the
>> constructor wasn't being called..
>>
>> so...
>>
>> call super ;)
>>
>>
>>
>> ---
>> "No man is an island... except Philip"
>>
>>
>> On Mon, Apr 1, 2013 at 9:24 PM, Kaspar Schiess <[email protected]> wrote:
>>
>>> Hi Thomas,
>>>
>>> I think you're missing a call to 'super()' in your transform. Can you
>>> check in the code next time, so that I can test exactly what you're
>>> testing?
>>>
>>> regards,
>>> kaspar
>>>
>>>
>>>
>>
>
>
> --
> Thomas Ingram
>

Reply via email to