UNPKG

bool

Version:

Boolean expression evaluator

24 lines (18 loc) 586 B
module.exports = function Evaluator() { var self = this; this.visit_var = function(node, vars) { return vars.indexOf(node.token.value) != -1; }; this.visit_and = function(node, vars) { return self.evaluate(node.left, vars) && self.evaluate(node.right, vars); }; this.visit_or = function(node, vars) { return self.evaluate(node.left, vars) || self.evaluate(node.right, vars); }; this.visit_not = function(node, vars) { return !self.evaluate(node.operand, vars); }; this.evaluate = function(node, vars) { return node.accept(self, vars) } };