# New Ticket Created by Stephane Payrard # Please include the string: [perl #111288] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=111288 >
$ perl6 > (grammar { token TOP { <a>? $<b>='b' }; token a { a } }).parse: 'ab'; say > $/<b>.keys; a > (grammar { token TOP { <a> $<b>='b' }; token a { a } }).parse: 'ab'; say > $/<b>.keys; > In the first line $/<b>.keys is not empty contrary to expectations. Somehow the results of the <a>? rule leaks into $/<b>. Note that in the second line, the question mark in <a>? is suppressed and the bug is not triggered any more. Maybe the bug will be fixed when the implementation of ? will be rewritten as per spec (not returning an array). <cognominal> nom: (grammar { token TOP { <a>? $<b>='b' }; token a { a } }).parse: 'ab'; say $/<b>.keys; <p6eval> nom 4130f6: OUTPUT«a» <cognominal> nom: (grammar { token TOP { <a> $<b>='b' }; token a { a } }).parse: 'ab'; say $/<b>.keys; <p6eval> nom 4130f6: OUTPUT«» <cognominal> jnthn, this does not make any sense to me that $/<b>.keys returns anything different than a void Parcel <cognominal> should I file a bug? * NamelessTee has quit (Ping timeout: 244 seconds) <moritz> nom: (grammar { token TOP { <a> $<b>='b' }; token { a } }).parse: 'ab'; say $/<b>.keys.WHAT; <p6eval> nom 4130f6: OUTPUT«Method 'a' not found for invocant of class '<anon>' in regex TOP at /tmp/fZXy8AXoHU:1 in method parse at src/gen/CORE.setting:8019 in block <anon> at /tmp/fZXy8AXoHU:1» <moritz> nom: (grammar { token TOP { <a> $<b>='b' }; token a { a } }).parse: 'ab'; say $/<b>.keys.WHAT; <p6eval> nom 4130f6: OUTPUT«List()» <moritz> cognominal: it's returns an empty List, not an empty Parcel. Is that your problem? <cognominal> see the first example, it prints "a\n". <cognominal> I don't care if it is a parcel or a list. Whatever it is should be empty. <moritz> agreed <cognominal> it does not happen when I delete the '?' suffix. <moritz> though of course the ? quantifier on <a> should not affect $<b> <cognominal> yes, that's my point. <moritz> agreed. Bug it is. -- cognominal stef