( match: string, start: string, end: string, snippet: string )
| 4 | /#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*(?:i\s*\+\+|\+\+\s*i)\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g |
| 5 | |
| 6 | function loopReplacer( |
| 7 | match: string, |
| 8 | start: string, |
| 9 | end: string, |
| 10 | snippet: string |
| 11 | ): string { |
| 12 | let string = '' |
| 13 | for (let i = parseInt(start); i < parseInt(end); ++i) { |
| 14 | string += snippet |
| 15 | .replace(/\[\s*i\s*\]/g, '[' + i + ']') |
| 16 | .replace(/UNROLLED_LOOP_INDEX/g, `${i}`) |
| 17 | } |
| 18 | return string |
| 19 | } |
| 20 | |
| 21 | export function unrollLoops(string: string): string { |
| 22 | return string.replace(unrollLoopPattern, loopReplacer) |
nothing calls this directly
no outgoing calls
no test coverage detected