UNPKG

earl-lang

Version:

Earl Bahasa Pemrograman Alur Kerja

30 lines (23 loc) 943 B
// modules/kembalikan.js const { resolveToken, evalMathExpression } = require('./tampilkan'); async function kembalikan(tokens, modules, context) { const exprTokens = tokens.slice(1); if (exprTokens.length === 0) { context.return = undefined; } else if (exprTokens.length === 1) { context.return = resolveToken(exprTokens[0]); } else { const resolvedExpr = exprTokens.map(token => { const val = resolveToken(token); return typeof val === 'number' || typeof val === 'boolean' ? val : `"${val}"`; }).join(' '); const hasilEvaluasi = evalMathExpression(resolvedExpr); if (typeof hasilEvaluasi === 'number' && !isNaN(hasilEvaluasi)) { context.return = hasilEvaluasi; } else { context.return = resolvedExpr; } } context.stopExecution = true; } module.exports = { kembalikan };