subscript
Version:
Modular expression parser & evaluator
10 lines (8 loc) • 559 B
JavaScript
// Bitwise operators - eval half
import { operator, compile } from '../../parse.js';
operator('~', a => (a = compile(a), ctx => ~a(ctx)));
operator('|', (a, b) => (a = compile(a), b = compile(b), ctx => a(ctx) | b(ctx)));
operator('&', (a, b) => (a = compile(a), b = compile(b), ctx => a(ctx) & b(ctx)));
operator('^', (a, b) => (a = compile(a), b = compile(b), ctx => a(ctx) ^ b(ctx)));
operator('>>', (a, b) => (a = compile(a), b = compile(b), ctx => a(ctx) >> b(ctx)));
operator('<<', (a, b) => (a = compile(a), b = compile(b), ctx => a(ctx) << b(ctx)));