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