ExpressionJ / News: Recent posts

Version 0.9.2 Released

Allow semicolons inside function declaration

Fix expressions before semicolons followed by function expressions not being taken into account in some cases

Add the array declaration and array affectation expressions

Make the expressions cloneable

Add a new combiner method allowing to easily create an array expression

Posted by Hervé Girod 2012-04-02

Version 0.9.1 Released

Add the sign function

Add the echo function

Add several characters to the list of characters allowed in expressions: =, <, >

Add comments

Posted by Hervé Girod 2012-03-22

Version 0.9 final Released

Fix several bugs in expressions combiner, including Array expressions

Fix constant of type String exported without enclosing double-quotes

Make the parser much more lenient on the use of semicolons or not to separate expressions. The parser accept more than one semicolon to separate expressions, and it accept semicolons before the end of a block separated by an open bracket. For example "int a = 2;;; if (a == 2) {return a;;;} else {return 10;;}" is accepted
Add decrement operator (--)... read more

Posted by Hervé Girod 2012-03-18

Version 0.9 Beta 3 Released

Add increment operator (++)

Fix else expression code blocks not being able to have more than one line

Fix some cases when unwinding of curly brackets was not performed well and could lead to false results for some expressions

Fix some cases when the parser could parse incorrectly expressions containing both while and choice expressions

Fix wrong parsing for choice expressions without else and else if

Posted by Hervé Girod 2012-03-14

Version 0.9 Beta 2 Released

Fix local variables not being available in a block if they where defined in a super block. Previously a global variable with the same name was created or used, now the local variable is correctly used

Fix some expressions in blocks not being parsed in some cases

Add while expressions

Posted by Hervé Girod 2012-03-11

Version 0.9 Beta 1 Released

This is an important release as it adds if-then-else constructs, and code blocks, as well as internal variables.

Add blocks of expressions separated by semicolons. For example the following expression is parsed correctly: "c=a+cos(b); return c"

Add local variables in blocks. For example the following expression is parsed correctly: "int c=a+cos(b); return c", and in this case the expression export only 2 global variables, a and b (c is local)... read more

Posted by Hervé Girod 2012-03-11

Version 0.8.8 Released

Add the XOR function (a ^ b)

Fix the AND, OR, NEQ, and EQ functions which results were wrong in some cases

Posted by Hervé Girod 2012-03-09

Version 0.8.7 Released

Fix adding strings and numeric expressions which should work and return strings (for example "a" + 1 return "a1")

Fix combination of functions in ary expressions which returned the wrong value or did not parse correctly. For example, now
c + function(a, b) now parse and evaluate correctly

Posted by Hervé Girod 2012-03-08

Version 0.8.6 Released

Add the MOD function (a % b) and the ABS function

Make sure that only ParserExceptions are thrown by the parser (other Exceptions that may be thrown are encapsulated)

Fix indexes of arrays which could not be parsed if they were the rsult of expressions (such as TAB[a+1])

Posted by Hervé Girod 2012-03-05

Version 0.8.5 Released

Add the atn2 mathematical expression

Improve result for ExpressionExporter with expressions like a + (-b) case, which are now exported as a - b

Posted by Hervé Girod 2012-03-04

Version 0.8.4 Released

Fix expressions like a*(-2) which were not parsed correctly

Improve result for ExpressionExporter with expressions like +a which are now exported as "a" rather than "+a"

Improve result for ExpressionExporter with expressions like a*(b) which are now exported as "a * b" rather than "a * (b)"

Posted by Hervé Girod 2012-03-03

Version 0.8.3 Released

Simplify internally expressions obtained through add, substract, multiply, or divide methods in the ExpressionCombiner

Fix a bug whereas value types would be mistakenly defined as DYNAMIC for constants

Fix wrong export of expressions like -e or +e (ADD or SUB without first expression)

Posted by Hervé Girod 2012-03-01

Version 0.8.2 Released

Add several new methods in the ExpressionCombiner to allow to add, substract, multiply, or divide two expressions easily

Fix a bug which could appear in some cases in the ExpressionExporter

Posted by Hervé Girod 2012-02-28

Version 0.8.1 Released

Ensure that the Variable.getValue() method will never throw a NullPointerException, even if the Variable has no value yet

Posted by Hervé Girod 2012-02-19

Version 0.8 final Released

Avoid a StackTrace exception in the expression combiner if the sub expression is equal to the expression to combine

Posted by Hervé Girod 2012-02-18

Version 0.8 Beta 3 Released

Fix exporting expressions with associative operations with enclosed parenthesis; For example, the export of 1 + 2 + 3 is 1 + 2 + 3 (which is expected) and not (1 + 2) + 3 (which was correct but uselessly complex)

Fix the jar building keeping some html files

Posted by Hervé Girod 2012-02-13

Version 0.8 Beta 2 Released

Add utility methods in the util package to detect if an Expression is a Constant or a Variable

Add new simplification patterns: Now if two constants are combined in a numeric expression, the resulting Constant result is returned rather than the expression

Posted by Hervé Girod 2011-11-06

Version 0.8 Beta 1 Released

Version 0.8 Beta 1 is released. 0.8 is for now hosted the performance branch. All the unit tests are passing, and the performance boost in the same scenarios seem to be in the class 50% - 100% compared to 0.7

Posted by Hervé Girod 2011-10-19

Version 0.7 Released

It is now possible to use any expression in functions, (even custom functions). For example "function(a+1)" or "function2(a, c - function3(a, b * sin(a)))" are allowed

Posted by Hervé Girod 2011-09-14

Version 0.6 final Released

Fix some cases where the export of an ary expression under an unary operator did not enclose the expression under parenthesis

Posted by Hervé Girod 2011-05-24

Version 0.6 Beta 3 Released

- Vararg functions are now handled
- Add the ability to choose when exporting an expression if the named constants must be exported as their values or with their names
- Keep the names of constants defined explicitely in the global constants

Posted by Hervé Girod 2011-04-05

Version 0.6 Beta 1 Released

This Beta version add several utility classes which allows to export an Expression as a String, to replace a Variable by an Expression, or to simplify an Expression

Also SUB and ADD expressions can now be parsed if the first argument is omitted, like for example "-a" or "+2"

Posted by Hervé Girod 2011-03-02

Version 0.5.1 released

This version adds the true and false constants, and allow to give a name to constants. Some new characters are allowed for String literal values: ":","(",")","!","?" .

It also fix the following bugs: Make sure that Variables instances are not removed when parsing expressions, if these Variables are already existing, the Boolean result type for functions was not handled
Some new characters are allowed for String literal values: ":","(",")","!","?"

Posted by Hervé Girod 2011-02-10

Version 0.5 Final released

This release add some new constructors and methods to Constants and Variables to add for more user customization

Posted by Hervé Girod 2011-01-30

Version 0.5 Beta 1 released

This release fix x bad declaration of return type for some numeric expressions. It also adds array type for expressions, variables, and constants, as well as the ability to get an index of the array

Posted by Hervé Girod 2011-01-29