aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* More code style fixes (#118)v2.3.1Bruce Wells2022-08-041-0/+3
|
* Throw an IncorrectNumberOfFunctionParametersException if a function gets ↵madman-812022-08-041-1/+9
| | | | | | | | | | | more arguments than it supports (#117) * Throw an IncorrectNumberOfFunctionParametersException if a function gets more arguments than it supports * Update CustomFunction.php Code Style Co-authored-by: Bruce Wells <brucekwells@gmail.com>
* Bcmath (#115)v2.3.0Bruce Wells2022-06-021-3/+41
| | | | | * Add useBCMath * Support for % operator (mod)
* Space should end open numbers (#113)v2.2.2Bruce Wells2022-05-281-0/+2
|
* Added ability to escape quotes in strings. (#110)Fatih Kızmaz2022-05-193-40/+68
| | | | | | | | | | | | | | | * Added ability to escape quotes in strings. * Removed type checking for customfunc arguments. It was a bad idea to check types, because php automatically tries to convert a parameter to required type and throws if it failures. On the other hand, we can check types also in callables if required. * Update phpdoc * Fix some typos + improve min, max, avg funcs. * Update readme + improvements. * Fix a typo in sample. * Fix unshown backslash in readme.
* Full support for arrays => min, max and avg funcs accept array argument. ↵Fatih Kızmaz2022-05-172-3/+11
| | | | | | | | Also array function is defined which return arguments as array. Square bracket arrays are also supported. (#108) valid expression -> "max([1,2,3])" valid expression -> "max(array(1,2,3))" valid expression -> "max($ages_arr)" valid expression -> "max(ages_arr())"
* Small support for arrays => min, max and avg funcs accept array argument. ↵Fatih Kızmaz2022-05-161-5/+29
| | | | | | | (handwritten arrays not supported yet, can be used for array variables or functions returning an array) (#107) invalid expression -> "max([1,2,3])" valid expression -> "max($ages_arr)" valid expression -> "max(ages_arr())"
* Support unlimited args for min, max default funcs. (#106)Fatih Kızmaz2022-05-136-28/+75
| | | | | | | | | * Support unlimited args for min, max default funcs. Default functions max and min were requiring 2 arguments strictly. Now they supoort unlimited args, same as php's min, max funcs. * Improved functions: support unlimited parameters (see min, max funcs), optional parameters (see round func), parameters with types (see round func, throws IncorrectFunctionParameterException on unmatched type, union types and intersection types not supported because of min php level! there is a todo for this, to support them later @see CustomFunction@execute) Also added unittests for improvements. * Run php-cs-fixer fix
* Remove extra line (#105)Bruce Wells2022-05-091-1/+0
|
* Two more tests + some code refactoring (#104)Javier Marín2022-05-095-313/+105
| | | | | | | | | | | * test: add testNullReturnType and testUnsupportedOperands * refactor: fix PhpDoc comments and use PHP 7.4 arrow functions * refactor: fix PHP-CS-Fixer issues * test: run testUnsupportedOperands() only on PHP8+ Co-authored-by: Javier Marín <contacto@ideatic.net>
* Phpcs fixer (#103)Bruce Wells2022-04-276-610/+628
| | | | | | | * Configuring PHP CS Fixer Dropping PHP 7,3 support * Fixing merge issue
* Add a custom variable validator + protected props (#98)Matthijs Meulenbrug2022-04-251-10/+46
|
* Adding varExists method and support for undefined var handler in getVar (#96)V2.1.112.0.4Bruce Wells2022-03-215-31/+41
| | | | | | | | | | | | | | | * Added varExists method * getVar now respects VarNotFoundHandler setting * Use local version of PHP-CS-Fixer Instead of hard coded version from github actions * Fixing actions * Fixing actions * Dropping testing for 7.3, as it is no longer supported
* fix: broken support for positive exponent numbersJavier Marín2022-01-051-1/+1
|
* PhpStan support, consts visibilty and name for tokens (#89)Javier Marín2021-07-145-35/+48
| | | | | | | | | | | | | | | | | | | | | | | | | * Added handler to define not found variables Added support for string variables Fixed strings and ints comparison error * Check if variables have scalar types (int, float, string and bool) Better $onVarNotFound logic * Better support for null variables * Better support for null variables * Better support for null variables * Allow null values in `setVar` method * Support for unary positive operator * Add PhpStan config file Fix PhpStan warnings Set consts visibility Add name info to variable tokens for easier debugging Co-authored-by: Javier Marín <contacto@ideatic.net>
* Support for unary positive expressions (#85)Javier Marín2021-03-052-23/+30
| | | * Support for unary positive operator
* Unary Minus (#84)V2.1.7Bruce Wells2021-02-172-31/+46
| | | Fixed unary minus to allow a minus sign in front of functions and parentheses.
* Cache-control improvements (#81)Mirosław Sztorc2021-01-061-5/+26
| | | | | | | | | | | | | | | | | * cache-control improvements * Update src/NXP/MathExecutor.php yeah, you're right. Co-authored-by: Alexander Kiryukhin <a.kiryukhin@mail.ru> * Update MathExecutor.php braces qfix * Update MathExecutor.php Co-authored-by: Alexander Kiryukhin <a.kiryukhin@mail.ru>
* add new functions and aliases to the old functions (#76)diman32102020-10-201-1/+64
| | | | | * add new functions and aliases to the old functions * add tests for new functions
* Allow null values in `setVar` method (#73)V2.1.3Javier Marín2020-09-161-1/+1
| | | | | | | | | | | | | | | | * Added handler to define not found variables Added support for string variables Fixed strings and ints comparison error * Check if variables have scalar types (int, float, string and bool) Better $onVarNotFound logic * Better support for null variables * Better support for null variables * Better support for null variables * Allow null values in `setVar` method
* Improved support for null variables (#72)V2.1.2Javier Marín2020-09-152-4/+2
| | | | | | | | | | | | | | * Added handler to define not found variables Added support for string variables Fixed strings and ints comparison error * Check if variables have scalar types (int, float, string and bool) Better $onVarNotFound logic * Better support for null variables * Better support for null variables * Better support for null variables
* Better setVar error message (#70)V2.1.1Bruce Wells2020-07-271-1/+2
| | | | Additional unit tests Readme update
* Handler for not found variables (#68)Javier Marín2020-07-263-14/+50
| | | | | | | | * Added handler to define not found variables Added support for string variables Fixed strings and ints comparison error * Check if variables have scalar types (int, float, string and bool) Better $onVarNotFound logic
* Variable fixes (#67)V2.0.3Bruce Wells2020-06-045-11/+29
| | | | | | | | | | | * Reproduce if throws UnknownOperatorException * Fix variable detection * Adding IncorrectNumberOfFunctionParametersException * Removing tabs * Better exception message text
* Code style fixes & Github Actions (#65)V2.0.2Alexander Kiryukhin2020-06-015-13/+10
| | | | | | | | | | | | * Code style fixes Up phpunit to v8 New CI * Remove travis * Fix CI badge * Added php-cs-fixer action
* Packagist tag (#64)V2.0.1Bruce Wells2020-05-211-1/+1
| | | | | * $variables should be private * Add Packagist tag
* Merge branch 'master' into neonxp-ngBruce Wells2020-05-202-3/+3
|\
| * WIP: New generation (#62)Alexander Kiryukhin2020-05-2035-1810/+682
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Massive refactoring More clean structure Parsing without regular expressions * Cleanup unused imports * Fix version string for Travis * 7.1 downgrade * Fix readme
* | Null parameters allowedBruce Wells2020-05-201-1/+1
| |
* | Adding setVars back inBruce Wells2020-05-201-0/+19
| |
* | setDivisionByZeroIsZeroBruce Wells2020-05-201-0/+16
| |
* | Private membersBruce Wells2020-05-201-4/+90
| |
* | typed parameters and return typesBruce Wells2020-05-205-23/+23
| |
* | 7.1 downgradeAlexander Kiryukhin2020-05-152-15/+2
| |
* | Cleanup unused importsAlexander Kiryukhin2020-05-151-6/+0
| |
* | Massive refactoringAlexander Kiryukhin2020-05-1535-1804/+695
|/ | | | | More clean structure Parsing without regular expressions
* Negative expression start (#60)V1.1.4Bruce Wells2020-04-211-2/+2
| | | | | * Update documentation for PHPFUI/InstaDoc * Support for negative numbers starting paren enclosed expressions
* Update documentation for PHPFUI/InstaDoc (#58)Bruce Wells2020-04-115-17/+43
|
* Merge branch 'master' into masterBruce Wells2020-02-071-2/+2
|\
| * PHP 7.4 supportBruce Wells2019-12-011-2/+2
| |
| * Update README.md and more function supportBruce Wells2019-11-272-16/+109
| |
* | Fix substraction by zero bug (#56)Clément Lafont2020-02-071-2/+14
| |
* | Left bracket and minus fix (#55)V1.1.2Clément Lafont2020-01-131-2/+6
| | | | | | | | | | | | * Left bracket and minus fix (#54) * Add test for left bracket and minus fix #55
* | Version 1.1 (#51)V1.1.0Bruce Wells2019-11-272-16/+109
|/ | | | * Update README.md and more function support
* Logicandcompare (#50)franksl2019-11-2615-13/+458
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * TokenFactory: allowing multicharacter tokens * Added logical and compare operators: <, <=, >, >=, ==, !=, ||, && * Fixed operator priorities * Error messages fixes * Fixed operators priority The priorities are assigned by following the php language standard (https://www.php.net/manual/en/language.operators.precedence.php) I've assigned precedence in steps of 10 units by following the linked page: 230 clone new 220 ** 210 ++ -- ~ (int) (float) (string) (array) (object) (bool) @ 200 instanceof 190 ! 180 * / % 170 + - . 160 << >> 150 < <= > >= 140 == != === !== <> <=> 130 & 120 ^ 110 | 100 && 90 || 80 ?? 70 ? : 60 = += -= *= **= /= .= %= &= |= ^= <<= >>= 50 yield from 40 yield 30 and 20 xor 10 or * Added if() function * Cache key fix There are cases where the cache key creation raised an error, for example while evaluating the expression "if(cos(2), cos(2), 0)", because the if() function was passing a float to the MathExecutor:execute() method.
* Subtraction fix (#46)v0.8.0Bruce Wells2019-08-161-2/+18
| | | | | * Updated unit tests * Fixed docs * Better unary minus support
* Fixed typo in constantBruce Wells2019-01-161-1/+1
|
* Fixed comma operatorBruce Wells2019-01-164-14/+42
| | | | | Added unit tests for expressions in function arguments. Changed array_push to $var[] = native code.
* Fixed function parameter orderBruce Wells2019-01-123-11/+7
| | | | | | | Corrected $places default value for addFunction to match TokenFactory Added function order test and put expected order first in assertEquals If else blocks in calculator Updated docs
* sync (#5)Bruce Wells2019-01-1124-175/+212
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Documentation fixes (#34) Fixing typos in and clarifying documentation. * MathExecutor allow override default operators, functions and vars (#36) * Added simple coc (#37) * Added simple coc * Fix * Replaceable operators (#38) * Updated from NeonXP/MathExecutor * Fixed function in () block issue * Fixing typos in and clarifying documentation. * Syncing from origin (#3) * Documentation fixes (#34) Fixing typos in and clarifying documentation. * MathExecutor allow override default operators, functions and vars (#36) * Allow for operators to be replaced based on regex expression * Fix md typo (#39) * Updated from NeonXP/MathExecutor * Fixed function in () block issue * Fixing typos in and clarifying documentation. * Syncing from origin (#3) * Documentation fixes (#34) Fixing typos in and clarifying documentation. * MathExecutor allow override default operators, functions and vars (#36) * Syncing to origin (#4) * Documentation fixes (#34) Fixing typos in and clarifying documentation. * MathExecutor allow override default operators, functions and vars (#36) * Added simple coc (#37) * Added simple coc * Fix * Replaceable operators (#38) * Updated from NeonXP/MathExecutor * Fixed function in () block issue * Fixing typos in and clarifying documentation. * Syncing from origin (#3) * Documentation fixes (#34) Fixing typos in and clarifying documentation. * MathExecutor allow override default operators, functions and vars (#36) * Allow for operators to be replaced based on regex expression * \\ instead of \ * Update README.md Some small fixes * Fix single quotes parsing (#41) * Fix single quotes parsing Fix e-mails Some small fixes * Mistake in test * More PHP versions * Update README.md Deleted `dev` branch