static SS matchDollarVarsIC_underscores(S pat, S s) { pcall { if (pat == null || s == null) null; new L<S> vars; S pat2 = dropSuffix("...", dollarVarsToStars_underscoresWithDollarQ(pat, vars)); s = dropSuffix("...", s); new Matches m; if (!match(pat2, s, m)) null; new SS map; int v = 0; for (int i = 0; i < l(m.m); ) { S var = vars.get(v++); bool quoted = startsWith(var, "$_q_"); if (quoted) { S value = m.m[i++]; if (!isQuoted(value)) null; var = "$" + substring(var, 4); if (!strictPutIC(map, var, unquote(value))) null; } else { int n = underscoreWordCount(var); S value = joinWithSpace(subStringArray(m.m, i, i+n)); if (!strictPutIC(map, var, value)) null; i += n; } } ret map; } null; }
Began life as a copy of #1010862
download show line numbers debug dex old transpilations
Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, irmadwmeruwu, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1017695 |
| Snippet name: | matchDollarVarsIC_underscores - use match() with dollar vars, underscore indicates word break. now also supports $_q_name for quoted values |
| Eternal ID of this version: | #1017695/13 |
| Text MD5: | 66bbc8e013f1ca18df19988003223d8f |
| Author: | stefan |
| Category: | javax / parsing |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2018-08-20 19:18:40 |
| Source code size: | 812 bytes / 28 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 736 / 762 |
| Version history: | 12 change(s) |
| Referenced in: | [show references] |