diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/math-expression-evaluator/src/formula_evaluator.js | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip | |
switch to vuepress
Diffstat (limited to 'node_modules/math-expression-evaluator/src/formula_evaluator.js')
| -rwxr-xr-x | node_modules/math-expression-evaluator/src/formula_evaluator.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/node_modules/math-expression-evaluator/src/formula_evaluator.js b/node_modules/math-expression-evaluator/src/formula_evaluator.js new file mode 100755 index 00000000..72db4eb5 --- /dev/null +++ b/node_modules/math-expression-evaluator/src/formula_evaluator.js @@ -0,0 +1,41 @@ +var Mexp=require('./postfix_evaluator.js');
+Mexp.prototype.formulaEval = function () {
+ "use strict";
+ var stack=[],pop1,pop2,pop3;
+ var disp=[];
+ var temp='';
+ var arr=this.value;
+ for(var i=0;i<arr.length;i++){
+ if(arr[i].type===1||arr[i].type===3){
+ disp.push({value:arr[i].type===3?arr[i].show:arr[i].value,type:1});
+ }
+ else if(arr[i].type===13){
+ disp.push({value:arr[i].show,type:1});
+ }
+ else if(arr[i].type===0){
+ disp[disp.length-1]={value:arr[i].show+(arr[i].show!="-"?"(":"")+disp[disp.length-1].value+(arr[i].show!="-"?")":""),type:0};
+ }
+ else if(arr[i].type===7){
+ disp[disp.length-1]={value:(disp[disp.length-1].type!=1?"(":"")+disp[disp.length-1].value+(disp[disp.length-1].type!=1?")":"")+arr[i].show,type:7};
+ }
+ else if(arr[i].type===10){
+ pop1=disp.pop();
+ pop2=disp.pop();
+ if(arr[i].show==='P'||arr[i].show==='C')disp.push({value:"<sup>"+pop2.value+"</sup>"+arr[i].show+"<sub>"+pop1.value+"</sub>",type:10});
+ else disp.push({value:(pop2.type!=1?"(":"")+pop2.value+(pop2.type!=1?")":"")+"<sup>"+pop1.value+"</sup>",type:1});
+ }
+ else if(arr[i].type===2||arr[i].type===9){
+ pop1=disp.pop();
+ pop2=disp.pop();
+ disp.push({value:(pop2.type!=1?"(":"")+pop2.value+(pop2.type!=1?")":"")+arr[i].show+(pop1.type!=1?"(":"")+pop1.value+(pop1.type!=1?")":""),type:arr[i].type});
+ }
+ else if(arr[i].type===12){
+ pop1=disp.pop();
+ pop2=disp.pop();
+ pop3=disp.pop();
+ disp.push({value:arr[i].show+"("+pop3.value+","+pop2.value+","+pop1.value+")",type:12});
+ }
+ }
+ return disp[0].value;
+};
+module.exports=Mexp;
\ No newline at end of file |
