This channel is intended for people just starting with the Raku Programming Language ( Logs are available at
Set by lizmat on 8 June 2022.
00:13 lizmat_ joined 00:15 lizmat left 00:18 lizmat_ left, lizmat joined 03:18 nicole left, nicole joined 07:40 lucs_ joined 07:44 lucs left 08:14 CIAvash joined 09:07 CIAvash left
librasteve o/ 11:33
(how) can an enum be used in a regex or grammar token to match it's .keys? 11:34
nemokosch Do you know <?{}> 14:15
librasteve oh yes - thanks! 16:53
scullucs Er, I don't. How does that work? 17:24
librasteve i have used it like this before: my regex number { \S+ #grab chars <?{ +"$/" ~~ Real }> #assert coerces via '+' to Real } 17:53
it's a lookahead assertion (ie a wrapper for a function) where the regex matches only if the the fn is True 17:55
so I guess with an enum its like this... 17:57
enum Colour <red green blue>; my regex colour { \S+ #grab chars <?{ "$/" ~~ Colour }> #assert checks match string is Colour } 17:58
18:21 habere-et-disper joined
Nahita m: my enum E<yes no>; say so "this has yes in it" ~~ / @(E.keys) / 18:35
Raku eval True
librasteve m: my enum E<yes no>; say so "this has yes in it" ~~ / @<E.keys> / 18:36
Raku eval False
librasteve m: my enum E<yes no>; say so "this has yes in it" ~~ / <E.keys> / 18:37
Raku eval Exit code: 1 ===SORRY!=== Error while compiling /home/glot/main.raku Unable to parse expression in metachar:sym<assert>; couldn't find final '>' (corresponding starter was at line 1) at /home/glot/main.raku:1 ------> no>; say so "this has yes in it" ~~ / <E⏏.keys> / expecting any of: term
librasteve @Nahita - yes that's even better ...tx! 18:38
(strangely I read the docs about interpolation in a regex like '$()' yesterday, but already forgot the '@()' 18:39
scullucs @librasteve, @Nahita thanks for the examples. 19:00
19:07 deadmarshal_ left 19:12 deadmarshal_ joined 20:11 habere-et-disper left 21:17 habere-et-disper joined
habere-et-disper I have a working grammar but the files to parse are embedded in handcrafted HTML. The grammar starts with an unambiguous marker. How do I ignore the cruft on either side of what I want to parse? 21:42
MasterDuke `.*<unambiguous marker>.*`? or maybe try `.subparse`, instead of `.parse` 23:34
habere-et-disper Thanks, I'll give that a go. Rather than `.*` I thought matching anything but the marker would be clearer but I'm not sure how to invert the match of a fixed string. 23:59