Spaces:
Running
Running
| // problemParser.js | |
| export function parseProblems(output) { | |
| if (!output) return []; | |
| const lines = output.split("\n"); | |
| const problems = []; | |
| const regexes = [ | |
| // Python | |
| { re: /(File "(.+)", line (\d+))/, lang: "python" }, | |
| // Java | |
| { re: /(.*\.java):(\d+): (.+)/, lang: "java" }, | |
| // JS | |
| { re: /(.*):(\d+):(\d+)/, lang: "js" }, | |
| ]; | |
| for (let line of lines) { | |
| for (let { re, lang } of regexes) { | |
| const m = line.match(re); | |
| if (m) { | |
| problems.push({ | |
| file: m[2] || m[1], | |
| line: m[3] || m[2], | |
| message: m[4] || m[0], | |
| lang, | |
| }); | |
| } | |
| } | |
| } | |
| return problems; | |
| } | |