plural-forms-parser
Version:
Safe parser for gettext Plural forms expression
17 lines (13 loc) • 397 B
JavaScript
const tokenize = require('./postfix-lexer');
const parse = require('./postfix-parser');
const evaluate = require('./postfix-eval');
function fn(expression) {
const tokens = tokenize(expression);
const postfix = parse(tokens);
return {
postfix,
evaluate: (n) =>
evaluate(postfix.map((token) => (token === 'n' ? n : token))),
};
}
module.exports = fn;