subscript
Version:
Modular expression parser & evaluator
11 lines (8 loc) • 296 B
JavaScript
/**
* Ternary conditional operator - parse half
*
* a ? b : c → conditional expression
*/
import { token, expr, next } from '../../parse.js';
const ASSIGN = 20;
token('?', ASSIGN, (a, b, c) => a && (b = expr(ASSIGN - 1)) && next(c => c === 58) && (c = expr(ASSIGN - 1), ['?', a, b, c]));