UNPKG

jora

Version:

JavaScript object query engine

41 lines (34 loc) 848 B
'use strict'; function compile(node, ctx) { switch (node.operator) { case 'no': case 'not': ctx.put('!'); ctx.put(ctx.buildinFn('bool')); ctx.put('('); ctx.node(node.argument); ctx.put(')'); break; case '+': case '-': ctx.put(node.operator); ctx.node(node.argument); break; default: { ctx.error('Unknown operator "' + node.operator + '"', node); } } } function walk(node, ctx) { ctx.node(node.argument); } function stringify(node, ctx) { ctx.put(node.operator); if (node.operator !== '-' && node.operator !== '+') { ctx.put(' '); } ctx.node(node.argument); } exports.compile = compile; exports.stringify = stringify; exports.walk = walk;