Ancestors

Written by Profoundly Nerdy on 2025-01-29 at 16:17

[#]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     }
}

  1. How do I tell the grammar's TOP that a given token could potentially repeat an arbitrary number of times?

  1. Can I mix in range validation somehow? So that 1,234.56 is a valid capture but 0,123.45 is not.

[#]programming #linux

=> More informations about this toot | More toots from profoundlynerdy@bitbang.social

Written by Mike Clarke on 2025-01-29 at 16:57

@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

Written by Profoundly Nerdy on 2025-01-29 at 17:31

@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

Written by Mike Clarke on 2025-01-29 at 18:24

@profoundlynerdy Had to go and scratch my head for a while! This is not exhaustively tested, but should be a starting point:

=> View attached media

=> More informations about this toot | More toots from clarkema@mastodon.social

Written by Profoundly Nerdy on 2025-01-29 at 19:08

@clarkema Does order of token declaration matter in this (or any) case?

=> More informations about this toot | More toots from profoundlynerdy@bitbang.social

Toot

Written by Mike Clarke on 2025-01-29 at 20:12

@profoundlynerdy Nope

=> More informations about this toot | More toots from clarkema@mastodon.social

Descendants

Proxy Information
Original URL
gemini://mastogem.picasoft.net/thread/113913467522744484
Status Code
Success (20)
Meta
text/gemini
Capsule Response Time
333.581888 milliseconds
Gemini-to-HTML Time
0.858706 milliseconds

This content has been proxied by September (3851b).