计算数学表达式,一个小型解释器的示例,支持变量和操作符扩展。
在线REPL https://mwc.github.io/au.js/repl.html
+加,优先级值10-减,优先级值10*乘,优先级值100/除,优先级值100%求模,优先级值100^幂,优先级值100
au(input, variables);input: 表达式字符串variables: 变量
au('22*3'); // result: 66au('15 + $a + 4', {
a: 6
}); // result: 25operator待扩展的操作符priority优先级值handler计算函数
注意:所有操作符仅支持二元操作,例如扩展 & 符号:
au.operator('&', 100, function (o1, o2) {
return o1 & o2;
});
au('12&4'); // result: 4扩展已存在的操作符,将被覆盖之。