54 Commits

Author SHA1 Message Date
Max Bruckner
0078cbcb76 Move LaTeX template expansion to FunctionNode 2015-06-07 18:46:20 +02:00
Max Bruckner
40fb34924f Move function to LaTeX logic from util/latex to FunctionNode 2015-06-07 18:46:14 +02:00
Max Bruckner
2b11b14632 Enable attaching toTex callbacks to functions 2015-06-07 18:41:25 +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
5b160767c1 operators.js: Pass parenthesis option directly 2015-05-16 13:31:57 +02:00
Max Bruckner
3f217cefdd toTex: no global configuration. Only pass around one local object 2015-05-16 13:30:25 +02:00
Max Bruckner
c0e1b2d268 toString: no global configuration. Only pass around one local object 2015-05-16 13:29:55 +02:00
Max Bruckner
a347405a98 toString: implement callbacks and local configuration 2015-05-16 13:28:51 +02:00
Max Bruckner
291d620972 Pass local configuration to toTex functions 2015-05-16 13:27:48 +02:00
Max Bruckner
4159064a33 Node.toTex: remove dependency on FunctionNode
This is achieved by overriding parts of Node.toTex in FunctionNode.toTex
2015-05-16 13:21:38 +02:00
Max Bruckner
6235fd6ce1 Make toString a wrapper around _toString
This enables preparating the node tree in `toString` before generating
the actual string output with `_toString` methods
2015-04-30 00:12:54 +02:00
Max Bruckner
8282f424c2 Use the prototype for is<Node> instead of the constructor 2015-04-28 20:13:53 +02:00
Max Bruckner
250707b668 Convert the isNode function into a boolean property. 2015-04-28 09:56:01 +02:00
Max Bruckner
390a0060b4 Add is<NameOfNode> property to enable type checking across constructors 2015-04-28 09:14:53 +02:00
jos
d3d3212633 Refactored all nodes into factory functions (see #342) 2015-04-26 21:25:31 +02:00
Max Bruckner
13e35217b7 Latex restructure 2015-04-05 14:25:54 +02:00
Max Bruckner
e04dfd26bc Rename customFuncions to callbacks 2015-03-17 18:30:26 +01:00
Max Bruckner
35ce7f7fb4 Make Node.toTex a wrapper like Node.compile
Node.prototype.toTex is now a wrapper that calls the node's _toTex
2015-03-13 21:23:14 +01:00
Max Bruckner
37c1363c2d Pass callbacks to toTex functions 2015-03-13 21:23:13 +01:00
Max Bruckner
d593e749e9 New function getIdentifier() for Nodes
getIdentifier() returns a String that contains the name of the node and
the function associated with it ( in case of FunctionNode and
OperatorNode ).
2015-03-01 10:35:03 +01:00
jos
309bf3938d Added proper error messages to Node.map 2014-11-15 13:32:02 +01:00
jos
9257ec3c33 Added unit tests for Node.map and Node.forEach 2014-11-15 13:16:32 +01:00
jos
5669ae1365 Some refactoring 2014-11-14 11:35:13 +01:00
jos
a1f60db0d1 Created Node.map, changed traverse to use Node.map 2014-11-14 11:25:48 +01:00
jos
72a1b03850 Documented expression tree API. Some internal refactoring in nodes. 2014-11-12 22:30:15 +01:00
jos
ae588c9d93 Removed a todo 2014-10-11 22:30:52 +02:00
jos
ba70c07509 Added unit tests for Node.clone 2014-10-11 22:29:48 +02:00
jos
95a49fe156 Node.transform first clones the node tree 2014-10-11 21:59:47 +02:00
jos
839e596772 Implemented transform and traverse 2014-10-11 18:03:41 +02:00
jos
5f08307391 Implemented a function replace for nodes of a parsed expression. 2014-10-11 15:33:23 +02:00
jos
a172b52fdc Renamed raw to rawArgs (see #207) 2014-08-18 09:02:04 +02:00
jos
396777f724 Raw functions are now invoked as fn(args, math, scope) 2014-08-16 15:06:11 +02:00
jos
99fc9a0ead Implemented support for raw functions 2014-08-16 12:13: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
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
2fe9f0d736 Fixed #151: end is now a reserved keyword 2014-06-10 21:13:27 +02:00
Niels Heisterkamp
b7fe0bfbf1 Added LaTeX conversion of expressions using toTex() on expression.
Also added some basic tests, which cover some use cases; but should be expanded.
2014-05-19 08:20:06 +02:00
jos
1189efd4d8 Added property type to all expression nodes in a node tree. 2014-04-24 20:26:51 +02:00
josdejong
492d7f4c4f Moved ArgumentsError from lib/type/ to lib/util/ 2014-04-06 21:25:46 +02:00
josdejong
8cea27406b Some internal refactoring 2014-04-06 11:22:13 +02:00
josdejong
b046c7ee98 Completed unit tests for all expression nodes 2014-03-01 15:55:20 +01:00
josdejong
42548e1cf0 More unit tests 2014-02-28 22:50:46 +01:00
josdejong
32b0d33351 Cleaned up some dead code 2014-02-26 21:23:11 +01:00
josdejong
5d96ce4c16 Removed old code for expression evaluation 2014-01-07 21:07:43 +01:00
josdejong
00e55b917e Replaced eval with compile 2014-01-07 16:12:57 +01:00
josdejong
5f81246136 Implemented global definitions internally in expression compilation 2014-01-05 15:01:07 +01:00
josdejong
f6acb12e4d Implemented expression compilation for 80% 2014-01-01 20:46:30 +01:00
josdejong
1d54a99bce More neat formatting of functions 2013-12-09 21:21:34 +01:00
josdejong
0210ec0d41 UnsupportedTypeError can now determine the type of values 2013-11-28 17:15:28 +01:00