116 Commits

Author SHA1 Message Date
Rogelio J. Baucells
21db7d8de9 Parser fixes 2015-03-04 15:29:12 -05:00
Rogelio J. Baucells
da377b9fb7 Parser fixes 2015-03-04 14:39:53 -05:00
Rogelio J. Baucells
b4463d9ef3 Initial require() changes 2015-03-04 13:53:32 -05:00
Max Bruckner
6a9c2df38c Update FunctionAssignmentNode to better handle parenthesis 2015-03-01 17:10:09 +01:00
Max Bruckner
bb2bfc939c Update AssignmentNode to better handle parenthesis 2015-03-01 17:02:42 +01:00
Max Bruckner
b2d868c2ed Update OperatorNode's toTex to better handle parens
Use the new infrastructure in OperatorNode's toTex
2015-03-01 16:34:09 +01:00
Max Bruckner
b5ce799e9d New generic toString for AssignmentNode 2015-03-01 10:35:04 +01:00
Max Bruckner
1f2f42012c New generic toString for FunctionAssignmentNode 2015-03-01 10:35:04 +01:00
Max Bruckner
b1a438fd7f New generic toString for RangeNode 2015-03-01 10:35:03 +01:00
Max Bruckner
9489fbf9dc New generic toString for ConditionalNode 2015-03-01 10:35:03 +01:00
Max Bruckner
1ac3319656 OperatorNode: validate input 2015-03-01 10:35:03 +01:00
Max Bruckner
0e5a6e5a38 New generic toString for OperatorNode 2015-03-01 10:35:03 +01:00
Max Bruckner
2e51086fda Function to check associativity between operators
'isAssociativeWith(a,b)' to check if a is associative with b.

Example:
'+' is associative with '-' because (a+b)-c=a+(b-c)
2015-03-01 10:35:03 +01:00
Max Bruckner
91c0dd6b6d Function getAssociativity
Function to get the left/right associativity of an operator
2015-03-01 10:35:03 +01:00
Max Bruckner
9a3c3f9f95 Function getPrecedence to get operator precedence. 2015-03-01 10:35:03 +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
Max Bruckner
e587f0ce00 New tests for Operator mode
* Factorial of Operator node
* Test unaryMinus with sums and differences
* Test OperatorNode that substracts an OperatorNode
2015-02-14 16:31:05 +01:00
jos
86bcd55352 Changed the way transforms are registered internally, making Node.compile faster, and enabling lazy-loading constants 2015-01-13 10:48:52 +01:00
jos
3d84b47658 Fixed #258: missing parentheses in the toTex representation of function permutations. 2015-01-03 10:29:55 +01:00
jos
3c7c3a2193 Upgraded to decimal.js v4.0.1 2014-12-25 17:47:45 +01: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
e73df48938 Removed fail test case for now functioning token '~'. Added test cases for it as well. 2014-12-15 04:00:52 -08: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
20c96894ab Enforcing implementation of _traverse on Nodes 2014-11-13 22:16:57 +01:00
jos
be9a8629ea Node.transform does not create a clone of the tree anymore 2014-11-13 22:01:48 +01: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
7132a6f3c2 Fixed #221 for one-based implementations of map and forEach 2014-10-14 09:03:04 +02:00
jos
bd1981ecd0 Renamed Node.map and Node.forEach back to traverse and transform 2014-10-13 21:42:48 +02:00
jos
238281e28a Renamed traverse and transform to forEach and map 2014-10-12 19:32:51 +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
52a922e937 Fixed #210: Disabled array notation for ranges in a matrix index the expression parser 2014-09-09 17:33:53 +02:00
jos
f1313d8be7 Implemented a function filter(x, test) 2014-09-04 20:52:51 +02:00
jos
40f0bb91aa Fixed #210: an zero-based issue when getting a matrix subset using an index containing a matrix 2014-08-25 20:35:10 +02: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
a172b52fdc Renamed raw to rawArgs (see #207) 2014-08-18 09:02:04 +02:00