123456789101112131415161718192021222324252627 |
- const AST = require('./ast')
- const Env = require('./env')
-
- module.exports = class Evaluator {
- eval(tree, env) {
- let evaluatedTree = []
-
- tree.forEach(node => {
- evaluatedTree.push(this.evalNode(node, env))
- })
-
- return evaluatedTree
- }
-
- evalNode(node, env) {
- switch (node.constructor) {
- case AST.Application:
- switch (node.function.constructor) {
- case AST.Identifier:
- node.function = env.get(node.function.name)
- break
- }
- }
-
- return node
- }
- }
|