Commit f2c5542dd6f31e30ef635f14e3c4b3fd881d1771
1 parent
224a3ea9
Exists in
master
and in
65 other branches
Fix expression parser for functions with more than one arguments
Showing
1 changed file
with
5 additions
and
5 deletions
Show diff stats
src/InputOutput/IHMImpl/Tools/IHMExpressionParserClass.php
... | ... | @@ -84,6 +84,7 @@ class IHMExpressionParserClass |
84 | 84 | "2/(1+dst)" => array("expression" => "2/(1+\$dst)", "params" => array(array("paramid" => "dst"))), |
85 | 85 | "2/abs(1+dst)" => array("expression" => "2/(abs(1+\$dst))", "params" => array(array("paramid" => "dst"))), |
86 | 86 | "cross(vect_1,vect_2)" => array("expression" => "(cross(\$vect_1,\$vect_2))", "params" => array(array("paramid" => "vect_1"), array("paramid" => "vect_2"))), |
87 | + "cross(cross(vect_1,vect_2),vect_3)" => array("expression" => "(cross((cross(\$vect_1,\$vect_2)),\$vect_3))","params" => array(array("paramid" => "vect_1"), array("paramid" => "vect_2"), array("paramid" => "vect_3"))), | |
87 | 88 | ); |
88 | 89 | |
89 | 90 | //init constants, aliases and functions for test |
... | ... | @@ -795,8 +796,9 @@ class IHMExpressionParserClass |
795 | 796 | /* |
796 | 797 | * @brief process used to replace "," by ";" for function |
797 | 798 | */ |
798 | - private function fixComaFunction($tree,$crt_function,&$result,&$nbParams) | |
799 | + private function fixComaFunction($tree,$crt_function,&$result) | |
799 | 800 | { |
801 | + $nbParams = 0; | |
800 | 802 | for ($i = 0; $i < count($tree); ++$i) |
801 | 803 | { |
802 | 804 | if (is_array($tree[$i]) && (count($tree[$i]) > 0)) |
... | ... | @@ -807,8 +809,7 @@ class IHMExpressionParserClass |
807 | 809 | $groupFunc = $this->isFunction($tree[$i-1]); |
808 | 810 | } |
809 | 811 | $res = array(); |
810 | - $nbParams = 0; | |
811 | - $this->fixComaFunction($tree[$i],$groupFunc ? $tree[$i-1] : "",$res,$nbParams); | |
812 | + $this->fixComaFunction($tree[$i],$groupFunc ? $tree[$i-1] : "",$res); | |
812 | 813 | $result[] = $res; |
813 | 814 | } |
814 | 815 | else |
... | ... | @@ -930,8 +931,7 @@ class IHMExpressionParserClass |
930 | 931 | $this->fixGroupFunction($res_1,$res_2); |
931 | 932 | |
932 | 933 | $res_3 = array(); |
933 | - $nbParams = 0; | |
934 | - $this->fixComaFunction($res_2,"",$res_3,$nbParams); | |
934 | + $this->fixComaFunction($res_2,"",$res_3); | |
935 | 935 | |
936 | 936 | $res_4 = array(); |
937 | 937 | $this->fixOperatorToFunction($res_3,$res_4); |
... | ... |