calcium-lang
Version:
Calcium language interpreter
26 lines • 731 B
JavaScript
import { createFuncObj } from "../factory";
/**
* `def` statement (function definition)
*/
export default class Def {
/**
*
* @param funcName the name of the function
* @param paramsName positional parameters' name
*/
constructor(funcName, paramsName) {
this.funcName = funcName;
this.paramsName = paramsName;
}
execute(env) {
const definedAddress = env.address.clone();
const funcObj = createFuncObj({
address: definedAddress,
name: this.funcName,
params: this.paramsName,
parent: env.context.nestingScope,
});
env.context.register(this.funcName, funcObj);
}
}
//# sourceMappingURL=def.js.map