swahili-lang
Version:
A new programming language with semantics borrowed from the Swahili language to help teach programming concepts to Swahili speaking students.
30 lines (26 loc) • 953 B
JavaScript
const SWBoolean = require('../../../types/boolean');
const SWObject = require('../../../types/object');
const SWBaseFunction = require('../../../types/base-function');
const RTResult = require('../../../runtimeResult');
const { RTError } = require('../../../error');
/**
* Checks if a value is an object
* @param {SWBuiltInFunction} inst the instance of the built in function
* @param {Context} executionContext the calling context
*/
function niKamusi(inst, executionContext) {
let res = new RTResult();
let kitu = executionContext.symbolTable.get('kitu');
if (!kitu)
return res.failure(
new RTError(
inst.posStart,
inst.posEnd,
`Parameter 'kitu' is required`,
executionContext
)
);
let isObject = kitu instanceof SWObject && !(kitu instanceof SWBaseFunction);
return res.success(isObject ? SWBoolean.TRUE : SWBoolean.FALSE);
}
module.exports = { method: niKamusi, args: ['kitu'] };