Skip to content


Subversion checkout URL

You can clone with
Download ZIP

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: JanX2/DDMathParser
head fork: JanX2/DDMathParser
Commits on Jan 04, 2014
@davedelong davedelong merging in remote changes d667ed0
@davedelong davedelong Adding more NSDecimal functions df4af14
@davedelong davedelong Updated project settings. 17d990c
@davedelong davedelong Converting to modern literal syntax 1809139
@davedelong davedelong Clean up the implementation of random(). Fixes #34. e64008d
@davedelong davedelong Implement some more high-precision trig functions 67e9ce6
@davedelong davedelong What could be more worthwhile than rewriting comments? 1c7b87d
@davedelong davedelong Use new high-precision functions 5530825
@davedelong davedelong Function resolution should pass variables through eb70c25
@davedelong davedelong Modernize ARCHS setting a8e78c4
@davedelong davedelong Exploring parsing strings as variables.
@"\"Foo\" + \"Bar\"" would be equivalent to @"$Foo + $Bar"
@davedelong davedelong Pruning unused methods from the tokenizer 2019688
@davedelong davedelong Reparenting DDMathStringTokenizer 2c51860
@davedelong davedelong Renaming methods to conform to what NSEnumerator declares 3d56482
@davedelong davedelong Moving ivars to inside @implementation blocks 487bd4c
@davedelong davedelong Modernizing some syntax f28b855
@davedelong davedelong The future is ARC. 8a54542
@davedelong davedelong Modernizing some syntax 06e1b80
@davedelong davedelong Deprecating +sharedMathEvaluator.
The name is wrong.  +shared* implies a singleton, which this is not.  The proper name is +defaultMathEvaluator (like +[NSFileManager defaultManager])
@davedelong davedelong Minor type changes 05a7b06
@davedelong davedelong Parse operators before function names
This allows us to have words as operators, such as “or” or “and”.  (“1 or 0” evaluates to @1).  This behavior, for now, is disabled by default and is a compile-time option.
@davedelong davedelong Operators are case insensitive cba5d84
@davedelong davedelong Indentation and esoteric math operators b421c65
@davedelong davedelong Rename _DDOperatorInfo in preparation of adding an API ef81979
@davedelong davedelong Don’t use C++ reserved words as identifiers. Fixes #21. 8f4370d
@davedelong davedelong New: API to add your own operators and to add new tokens for existing…
… operators
@davedelong davedelong String variables can be single- or double-quoted e88e008
@davedelong davedelong DDExpressions now conform to <NSCopying> c0aeca6
@davedelong davedelong Overriding -isEqual: requires the implementation of -hash 97cff61
@davedelong davedelong Tokens can only be added to defined operators. d3cf77b
@davedelong davedelong Special-case the implementation of integer factorials. Fixes #31. 0438a26
@davedelong davedelong New operators cannot be ambiguous or conflict with existing operators 07bc615
@davedelong davedelong Perform validation on new operator tokens fd9f8df
@davedelong davedelong reapplying fix for #43 that got lost in a rebase ce7d361
@davedelong davedelong More syntax modernization 1f47640
@davedelong davedelong Break expression rewriting out into its own class.
The MathEvaluator should focus on evaluating math.
@davedelong davedelong Rewriting needs account for simplification a307a07
@davedelong davedelong Added a basic variable resolver to the demo f32d5c7
@davedelong davedelong Lazy function resolution shouldn’t result in permanently registered f…
@davedelong davedelong Update the Mac demo to ARC b8d7a95
@davedelong davedelong Resolving functions as variables should result in the consultation of…
… the variable resolver
@davedelong davedelong Only fill out the error if one doesn’t already exist b40e3ca
@davedelong davedelong Fix a minor logic flow error in function resolution. Also, deprecate …
…unregistering functions.
Commits on Jan 05, 2014
@davedelong davedelong Move operator definitions out of global state
A new class, DDMathOperatorSet, defines a collection of operators.  There is a “default” instance, but you can allocate your own instances to customize the sets of operators used in different contexts.  This has several side effects:

- The interpretation of “%” as either percent or modulo can now be customized at runtime instead of compiletime
- Tokenization can be much more lenient in what characters are allowed in function names
Commits on Jan 10, 2014
@patricks patricks Changed LONG_LONG_MIN and LONG_LONG_MAX to LLONG_MIN and LLONG_MAX no…
…w the framework works again on ios
@davedelong davedelong Merge pull request #55 from patricks/master
Changed defines to iOS compatible version. (LONG_LONG_MIN -> LLONG_MIN)