60 Commits

Author SHA1 Message Date
jos
1dd3a0e492 Expression parser now allows assignments inside objects, indexes, and function arguments 2016-03-03 19:25:42 +01:00
jos
a60a70e6b9 Store dot notation in IndexNode 2016-02-27 11:36:47 +01:00
jos
9173fbd3b8 Large refactoring of nodes: AssignmentNode. UpdateNode, AccessorNode, IndexNode 2016-02-25 15:02:44 +01:00
jos
fad5d8cc07 Merged parseFunctions and parseIndex into parseAccessors. Restricted support for implicit multiplication, execute as accessors instead 2016-01-09 21:11:29 +01:00
jos
5ee4b81c62 Implemented dot notation for object properties 2016-01-03 14:56:29 +01:00
jos
8d3d58e724 Implemented ObjectNode and object support in the expression parser 2016-01-02 23:00:14 +01:00
jos
d9f237d29b Added support in the expression parser for mathematical alphanumeric symbols (see #265) 2015-09-25 20:47:38 +02:00
jos
0dfc8d1d3e Fixed inconsistent parsing of implicit multiplication (see #322) 2015-09-13 21:40:14 +02:00
jos
efcd0cc1fe Fixed #463: inconsistent handling of implicit multiplication 2015-09-13 21:13:35 +02:00
jos
33370bfe73 Fied #265: added support for unicode characters in the expression parser: greek letters and latin letters with accents 2015-08-10 21:04:49 +02:00
jos
2353c4a61e Renamed folders util to utils 2015-07-18 13:22:38 +02:00
jos
57a47b3b5a Moved pure collection functions to lib/util/collection 2015-07-18 12:53:07 +02:00
jos
493f34ec7b Split collection.js into separate (pure) functions 2015-07-18 11:47:38 +02:00
jos
6c7bf4acf0 Removed boolean, string, and null from the list with argument types, only leaving the directly supported types (which types can be converted to supported types is determined externally). Consistently renamed primitive types lower case (boolean, string, number, null) and non-primitive types uppercase (Complex, BigNumber, Function, Array, ...). 2015-05-20 21:08:26 +02:00
Max Bruckner
dd0a5e3a68 Parse parentheses into ParenthesisNodes 2015-05-07 10:12:41 +02:00
jos
758107428c Moved collection.js and Matrix.js under ./lib/type/matrix, moved construction functions matrix.js and sparse.js to ./lib/type/matrix/function, and created an index file. 2015-05-05 12:00:07 +02:00
Max Bruckner
1c76430dda Get rid of 'instanceof' for Nodes (except for constructors) 2015-04-28 10:09:19 +02:00
jos
d3d3212633 Refactored all nodes into factory functions (see #342) 2015-04-26 21:25:31 +02:00
jos
8cfabebdfb Oops. committed missing files 2015-03-31 22:23:32 +02:00
Rogelio J. Baucells
b4463d9ef3 Initial require() changes 2015-03-04 13:53:32 -05:00
jos
97163135b2 Implemented xor operator ^| in the expression parser 2014-12-25 15:45:54 +01:00
jos
73b67bfc09 Removed logical not operator ! (so now we just have logical operators and, not, or, xor). 2014-12-25 14:21:16 +01:00
jos
2614ca6203 Added docs for xor, removed docs of _divide 2014-12-25 14:11:15 +01:00
jos
af08c269f3 Added operators &, |, <<, >>, >>> not, and, or to the expression parser 2014-12-23 16:25:32 +01:00
Favian Contreras
2a5b242091 Added boolean not to parser, and added corresponding test cases. 2014-12-17 01:14:33 -08:00
Favian Contreras
6c1197f646 Added '~' to the parser. 2014-12-15 03:43:10 -08:00
jos
92627f2c94 Nodes for a BlockNode must now be passed via the constructor instead of via a function add 2014-11-13 21:54:41 +01:00
jos
423909e6f1 Changed constructor of RangeNode to new RangeNode(start: Node, end: Node [, step: Node]). 2014-11-13 21:25:37 +01:00
jos
72a1b03850 Documented expression tree API. Some internal refactoring in nodes. 2014-11-12 22:30:15 +01:00
jos
db60d95438 Fixed 2e giving a syntax error instead of being parsed as 2 * e (see #229) 2014-11-08 15:27:22 +01:00
jos
c466c305c7 Fixed a precedence issue with the unit conversion operator 2014-08-23 10:48:00 +02:00
jos
1b1bb8ef7f Fixed a precedence issue with the range operator 2014-08-23 10:32:32 +02:00
jos
40b470dc96 Released version 0.27.0 2014-08-21 20:40:28 +02:00
jos
fb68d73576 Fixed a bug in initializing of the parser 2014-08-17 22:32:31 +02:00
jos
1c96d1ee9d Expressions in the expression parser can now be spread over multiple lines 2014-08-17 22:24:57 +02:00
jos
e5d14ca3dd Some refactoring of the FunctionNode 2014-08-16 11:13:24 +02:00
jos
6b833a581c Renamed FunctionNode to FunctionAssignmentNode, and renamed ParamsNode to FunctionNode for more clarity (see #203) 2014-08-03 21:13:24 +02:00
jos
59de16801e Renamed function category "Comparison" with "Relational" 2014-07-20 12:40:34 +02:00
jos
40986a1325 Using strict mode now in all files (added 'use strict'; on top of every file) 2014-07-18 23:19:14 +02:00
jos
037e022905 Some fixes in operator precedence 2014-07-01 14:06:44 +02:00
jos
4645529f40 Removed function ifElse 2014-06-30 14:52:54 +02:00
jos
8ad1b274e7 Removed unreachable error message 2014-06-30 13:51:09 +02:00
jos
5e1cfbf545 Implemented implicit multiplication. Fixed a bug with multiplying non-valued temperatures with a number 2014-06-30 13:43:50 +02:00
jos
7c761e390a Refactored ConstantNode to make it more flexible to various types of input 2014-06-23 11:51:01 +02:00
jos
a9226ef70d Fixed #187: changed the behavior of the conditional operator (a ? b : c) to lazy evaluation. 2014-06-20 21:14:58 +02:00
jos
9f346f19bc Changed signature of math.parse(expr, nodes) to math.parse(expr, options) 2014-06-10 21:35:06 +02:00
jos
875fa8e60c Changed behavior of equal and unequal back to element wise, added function deepEqual. 2014-06-09 18:03:54 +02:00
jos
ced18ecfca Implemented functions dotEqual and dotUnequal, renamed functions smallereq to smallerEq and largereq to largerEq (all functions are now camelcase) 2014-06-09 14:07:21 +02:00
jos
0ae566db8d Renamed functions edivide, emultiply, and epow to dotdivide, dotmultiply, and dotpow respectively. 2014-06-09 11:09:06 +02:00
jos
91cdad78b7 Removed automatic assignment of expression results to variable ans 2014-06-08 21:55:38 +02:00