UNPKG

earl-lang

Version:

Earl Bahasa Pemrograman Alur Kerja

51 lines (40 loc) 1.46 kB
// modules/langkah.js async function langkah(tokens, modules, context) { const lines = context.lines.slice(context.index + 1); let index = 0; const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); console.log('Masuk ke mode langkah demi langkah. Ketik ENTER untuk lanjut, "selesai" untuk keluar.'); while (index < lines.length) { const line = lines[index].trim(); if (line === '' || line.startsWith('--')) { index++; continue; } const tokens = modules.tokenize(line); const cmd = tokens[0]; if (modules[cmd]) { console.log(`\nBaris ${context.index + index + 1}: ${line}`); await new Promise(resolve => rl.question('> ', input => { if (input.trim() === 'berakhir') { rl.close(); index = lines.length; resolve(); } else { resolve(); } })); for (let i = 1; i < tokens.length; i++) { tokens[i] = await modules.resolveToken(tokens[i], context); } await modules[cmd](tokens, modules, context); } index++; } rl.close(); context.index += index; } module.exports = { langkah };