#!/usr/bin/env node /** * Basic syntax fixer for Strudel code. * - Replaces ~ with - * - Ensures setcps exists (adds default if missing) * - Basic track control check */ const fs = require('fs'); function fixStrudelCode(code) { let fixed = code; // 1. Replace ~ with - fixed = fixed.replace(/~/g, '-'); // 2. Ensure setcps exists at the beginning if (!fixed.includes('setcps')) { fixed = `setcps(120/60/4) ${fixed}`; } // 3. Simple warning/fix for track control (just a heuristic) if (!fixed.includes('$:') && fixed.includes('s(')) { // If it's a single line starting with s(, add $: fixed = fixed.replace(/^s\(/gm, '$: s('); } return fixed; } // Read from stdin or file const input = process.argv[2] ? fs.readFileSync(process.argv[2], 'utf8') : ''; if (input) { process.stdout.write(fixStrudelCode(input)); } else { // If no input, just exit process.exit(0); }