UNPKG

earl-lang

Version:

Earl Bahasa Pemrograman Alur Kerja

35 lines (26 loc) 911 B
// modules/evaluasi.js const { resolveToken } = require('./tampilkan'); async function evaluasi(tokens, modules, context) { if (tokens.length < 2) { console.log("Perintah 'evaluasi' membutuhkan ekspresi sebagai argumen."); return; } const ekspresiToken = tokens.slice(1); const nilaiTokens = []; for (const token of ekspresiToken) { const nilai = resolveToken(token, context); if (typeof nilai === 'string') { nilaiTokens.push(`"${nilai}"`); } else { nilaiTokens.push(nilai); } } const ekspresi = nilaiTokens.join(' '); try { const hasil = Function(`"use-strict"; return (${ekspresi})`)(); console.log(hasil); } catch (err) { console.error(`Gagal evaluasi ekspresi 'ekspresi': ${err.message}`); } } module.exports = { evaluasi };