Commit graph

50 commits

Author SHA1 Message Date
Ori Livneh 085ac33f03 MWException -> Exception
Change-Id: Ia0607f91714129c6c9861f23177e1b999d0ba20a
2015-01-09 17:57:53 -08:00
addshore 0416c4590d Use public instead of var in classes
Change-Id: Ic7b0455a4759579ef85b3c18bac55fb4f0e07183
2014-08-17 22:10:15 +01:00
Jackmcbarn f7bd89e435 Allow calling #expr from Lua without the parser
Add mw.ext.ParserFunctions.expr, allowing #expr to be used without needing
to use frame:callParserFunction.

Change-Id: I64c78fafad7da503b141efb36da64c3e3d8501a5
2014-05-05 17:58:40 +00:00
shirayuki 028ec46ae6 Adding comments for grep
Change-Id: Ic3e57c5a06e6e227038aca85566255da5dfc990e
2013-03-08 17:16:56 +09:00
Reedy e8905529b2 Add square root (sqrt) function
Change-Id: I2d7908be5ee964144ce10483c6f5834350c1c35b
2013-01-06 19:26:26 +00:00
IAlex 802c5f4405 Merge "Init $name" 2013-01-04 21:30:37 +00:00
Brad Jorsch 0fb7807e9a (bug 43451) Restore old behavior of 'mod', add 'fmod'
In trying to fix bug 35866, I32c9eca6 changed the behavior of 'mod' to
no longer cast its arguments to integers, which conventiently also
solved bug 6068. However, this also broke many existing uses that
depended on that casting.

This change reverts 'mod' to its old behavior while still solving bug
35866, and at the same time adds a new 'fmod' operator with the new
behavior to keep bug 6068 fixed as well.

Change-Id: I6114c6e769119e6ced61b3b55b6f70b03b5b1ebe
2012-12-28 16:27:23 -05:00
Siebrand Mazeland 6259ee79c9 Init $name
Might not have been defined.

Change-Id: I8f088cc0fcdf0ea474c87b68d40d88e883f6e4df
2012-12-27 19:11:09 +00:00
Ori Livneh 00eca4460e (Bug 6068) Use double precision for mod operator
Change-Id: I0efe4d5dd3ad3052972eb14ab75e979f8a18ff6f
2012-12-11 21:33:51 -08:00
Reedy 1a96b47d94 (Bug 35866) ParserFunctions: Division by zero in Expr.php
The PHP modulo operator ('%') casts its operands to ints, causing
floating point values 0 < $right < 1 to raise a divide-by-zero error.
Explicitly casting both operands to float and using fnmod() resolves the
issue. This change also tidies up the check for zero values and adds
tests.

Change-Id: I32c9eca6552e4fec248eb4fa6419faa39c10df3b
2012-12-11 03:21:58 -08:00
Reedy ac8ad3f82e Revert "Bug 35866 - ParserFunctions: Division by zero in Expr.php"
Seeemingly quite a lot of false positives...

This reverts commit a63cb85ae8
2012-12-07 00:59:10 +00:00
Reedy a63cb85ae8 Bug 35866 - ParserFunctions: Division by zero in Expr.php
Change-Id: Ie9b101b69096e5021a05af1f7260fbc6611319ac
2012-12-06 23:49:23 +00:00
Siebrand Mazeland 5dee345880 ParserFunctions extension maintenance.
* Use Message class instead of wfMsg* methods.
* Replace additional deprecated methods.
* Fixed incorrect tag in i18n file.
* Update .gitignore.

Conflicts:
	ParserFunctions.i18n.php

Change-Id: If21300c11ec628506cb56550bc91a24a5d7c45d2
2012-10-03 20:58:43 +00:00
Reedy fdd7c091bd Minor documentation additions
Change-Id: I876de41b2c81d93df34ee2a8222aff6dc8176aae
2012-07-23 20:56:17 +01:00
Sam Reed ee97278b4d Add some braces and also some documentation 2011-12-19 23:44:11 +00:00
Happy-melon f274e42be1 Follow-up r81074:
* subclass ConvertError and ExprError from MWException
* invoking the parser for error messages clears state and exposes strip markers, and the error messages should be in the content language anyway
* clean up the magic word list
2011-01-29 13:54:02 +00:00
Sam Reed 5fa066a6e9 Start removing/fixing calls to deprecated methods in WMF used extensions 2010-10-29 15:14:44 +00:00
Siebrand Mazeland 20888253e0 * remove MediaWiki pre-1.8 compatibility and remove SprintfDateCompat.php
* bump version to 1.4.0
* run stylize.php
2010-10-02 22:36:34 +00:00
Chad Horohoe 7d289782c8 Revert r66934 (Removing wfLoadExtensionMessages() from everything). I disagree on principle...we branch extensions for this very reason. But people want trunk extensions compatible for several versions back, meh. 2010-05-27 15:56:53 +00:00
Chad Horohoe 1813ce38bb Large commit. Removed 800+ references to no-op wfLoadExtensionMessages() 2010-05-26 22:25:32 +00:00
Andrew Garrett e7bb4501f4 Revert Expr.php to r40762 for now -- still some errors that need tracking down and fixing. 2009-02-18 05:57:38 +00:00
Andrew Garrett baaf9def26 Fix division by zero handling for BC -- 0 != "0.00" 2009-02-18 05:36:55 +00:00
Brion Vibber 47042d2584 fix regression -- bc compat check was reversed; attempting to call bcpow() when no bc :) 2009-02-18 05:23:56 +00:00
Andrew Garrett 5a331c7c28 Handle precision=0 correctly in bcround (it's the default anyway!) 2009-02-18 05:12:01 +00:00
Roan Kattouw 3c6bd5a6ec ParserFunctions: Fix undefined variable warnings introduced in r47205 2009-02-16 10:08:31 +00:00
Andrew Garrett 67ad2159a1 Fix handling of 0, 0.0, 0.00 etc in logical functions. 2009-02-13 00:28:40 +00:00
Andrew Garrett 29f573fe22 Per Simetrical on code review, fix confused implementation of log (just convert to doubles and use the inaccurate floating-point math for now), and move initialisation to doExpression, instead of haveBC. 2009-02-12 23:49:30 +00:00
Andrew Garrett d9fd747f2d Revert "Adds explicit round-off checking to operations that are sensitive to floating point vs. integer round-off errors.", et al. ( r46683, r46671 )
Reimplement, but better! Use BC Math library where possible, for fixed-point math operations. The tolerance aspect has been included by doing math internally at 16 digits, but discarding the last two digits for the purpose of comparison.
2009-02-12 22:29:32 +00:00
Andrew Garrett 54de74c0ef Fix glaring fatal. 2009-02-06 21:18:32 +00:00
Robert Rohde a0fdcf7415 Adds explicit fractional tolerance checks to comparison functions. Currently set to 1e-10.
Addresses concerns related to r46671.
2009-02-01 18:40:26 +00:00
Robert Rohde 8f6382337c Adds explicit round-off checking to operations that are sensitive to floating point vs. integer round-off errors.
Where applied, it assumes that any floating point number that is an integer to within one part in 10^10 should be replaced with that integer.
2009-02-01 03:56:24 +00:00
Aryeh Gregor d8a4a48904 (bug 15349) Accept more types of minuses in #expr
{{#expr:1 &minus; 2}} and {{#expr:1 − 2}} now work, in the same vein as {{#ifexpr:3 &lt; 4|...}} does.  This allows human-formatted template values to work more reliably when fed to #expr.  Patch by Doug Strain.
2008-09-12 22:06:58 +00:00
Raimond Spekking 6bab1db29b * (bug 13216 ) Add trigonometrical functions sin, cos, tan, asin, acos, atan and exp, ln, abs, floor, trunc, ceil, ^, and the constants pi and e.
This should help to avoid complicate templates which simulates these functions for geocoding purposes.
Patch by Rene Kijewski
2008-04-23 15:08:39 +00:00
Andrew Garrett 559348494d Allow expr parser function to accept exponent input (i.e. 3e8). It seems silly to output in a format that we don't accept as input. 2008-03-28 11:59:12 +00:00
Siebrand Mazeland 04a88ee436 * use wfLoadExtensionMessages
* remove some unneeded blackslashes in messages (caused malformed error message)
* put Magic in separate file
* delay message loading
* add version in extension credits, remove EOL whitespace
* update Translate extension
2008-01-13 01:06:28 +00:00
Tim Starling e1ca28d2f9 * Strip comments early, before template expansion. This mimics the behaviour in the old parser. Added parser tests demonstrating the regression this fixes. The syntactic effect is fairly elegant, with comments taking effect at source level, as expected. The removeHTMLcomments() and preprocessToDom() passes could be merged at a later date.
* No need for comment stripping in Expr.php anymore
* Updated srvus() to roughly account for these changes
* Gave comment handling its own preprocessor tag, and split off comment handling from extensionSubstitution(). This only applies for the non-HTML modes, since in HTML mode, comments are stripped early. 
* Strip comments from template argument names (PPFrame::newChild).
2007-12-17 15:07:25 +00:00
Tim Starling f06807863c * Object versions of #ifexpr, #switch and #ifexist
* Fix for lack of StubObject in ~1.7
* Ignore HTML comments in expressions, which may now appear due to the parse order change
2007-12-09 08:11:38 +00:00
Raimond Spekking 5944437cb1 Use <strong> not <span>, per hint of Simetrical on wikitech-l. Thanks. 2007-11-19 15:37:49 +00:00
Raimond Spekking e470229df5 * (bug 8773) Make error messages from expr.php localizable
** Move error messages to ParserFunctions.i18n.php
** Rename 'expr_...' to 'pfunc_expr_...' to be consistent with other messages which are localizable already
* Add CSS class 'error' to output of error messages
2007-11-16 08:02:24 +00:00
Brion Vibber 6f8f28792c Renormalize invalid utf-8 byte in error message.
Would be better to work with an entire character, but it isn't that big a deal. :)
2007-08-31 14:08:16 +00:00
Aryeh Gregor ddab9b72ee Extensions too! 2007-06-29 01:36:09 +00:00
Antoine Musso ccc136f753 remove some ending whitespaces 2007-01-06 20:56:46 +00:00
Brion Vibber c8e0d935c0 fix line endings 2007-01-05 02:13:39 +00:00
Tim Starling 2477d59ae4 Exception-based error handling for expressions, plus a few other tweaks. Patch by AzaToth. 2006-11-21 07:22:13 +00:00
Jimmy Collins d6b7f6f759 update for XHTML conformance 2006-07-07 18:01:48 +00:00
Tim Starling 3092bf1db5 Proper handling of division by zero 2006-04-12 04:00:46 +00:00
Tim Starling 4265df9c9a Yay! Synonyms for all! 2006-04-07 00:23:46 +00:00
Tim Starling c592fdf295 fixed stack check 2006-04-06 08:46:34 +00:00
Tim Starling a49014ff5a * Better error reporting
* Inequality operators
* rand function
2006-04-06 08:14:56 +00:00
Tim Starling 6d93dfe6b8 Mathematical expressions and conditional constructs implemented as parser functions. Documentation to follow. 2006-04-05 13:22:51 +00:00