[#]Rakulang grammar question. Given something like:
[#] Ex. 1 grammar CSV { TOP {} # ?? token column { [ '"' ]? .* \, [ '"']? } } [#] Ex. 2 grammar USD { TOP {} # ?? token dollars { \d ** 3 [',']? } token cents { \. \d ** 2 } }
[#]programming #linux
=> More informations about this toot | More toots from profoundlynerdy@bitbang.social
@smonff I know you're big into #Perl and know it better than I do. I'm not sure if you know Raku well enough to comment but I figured I could ask.
Feel free to reply with a Perl-lish example, even if it isn't valid Raku. 😀
=> More informations about this toot | More toots from profoundlynerdy@bitbang.social
@profoundlynerdy For example two, you could consider starting the match with [1-9] instead of \d, to prohibit leading zeros
=> More informations about this toot | More toots from clarkema@mastodon.social
@clarkema So, something like this:
[1..9] \d 0..2 [',']?
Is that right, or did I screw something up?
=> More informations about this toot | More toots from profoundlynerdy@bitbang.social
@profoundlynerdy Had to go and scratch my head for a while! This is not exhaustively tested, but should be a starting point:
=> More informations about this toot | More toots from clarkema@mastodon.social
@clarkema That's interesting. I'm going to have to play with that.
=> More informations about this toot | More toots from profoundlynerdy@bitbang.social
@profoundlynerdy I think the main points are:
a) splitting out the two cases of with and without commas, so you can think about one at a time rather than coming up with one monster regexp (which is the whole benefit of grammars) and
b) matching the comma before a fixed group of 3, rather than as an option after a variable-length group.
Would be interested to see other solutions though!
=> More informations about this toot | More toots from clarkema@mastodon.social
@clarkema Does order of token declaration matter in this (or any) case?
=> More informations about this toot | More toots from profoundlynerdy@bitbang.social
@profoundlynerdy Nope
=> More informations about this toot | More toots from clarkema@mastodon.social
Sorry @profoundlynerdy but I am afraid that I cannot help. I took a look at Raku a long time ago, but then, mostly ignored it as I realized I’ll have to focus more on Perl. I am not even sure I could explain what a grammar is!
=> More informations about this toot | More toots from smonff@rivals.space
@smonff Gotcha.
Grammars are regexes on steroids! https://docs.raku.org/language/grammars
=> More informations about this toot | More toots from profoundlynerdy@bitbang.social
@profoundlynerdy @smonff i was going to ignore this but now that its been highlighted that this is a regexy thing, i'm going to have to revisit #rakulang
=> More informations about this toot | More toots from bocs@toot.wales This content has been proxied by September (3851b).Proxy Information
text/gemini