const fs = require('fs'); const path = require('path'); const engine = require('php-parser'); const parser = new engine({ parser: { suppressErrors: true, version: 803 }, ast: { withPositions: true }, }); const files = process.argv.slice(2); let bad = 0; for (const f of files) { const code = fs.readFileSync(f, 'utf8'); try { const ast = parser.parseCode(code, f); const errs = (ast.errors || []).filter(e => e && e.message); if (errs.length) { bad++; console.log('[SYNTAX] ' + f); errs.slice(0, 5).forEach(e => console.log(' line ' + (e.line || '?') + ': ' + e.message)); } else { console.log('[OK] ' + path.basename(f)); } } catch (e) { bad++; console.log('[FAIL] ' + f + ' :: ' + e.message); } } process.exit(bad ? 1 : 0);