USPExpress Pro Version 2.5 [ Legend: ] [ + New feature ] [ * Improvement/modification ] [ - Defect correction ] ---- History ------------------------------------------------------------------- 2.5 [August 6, 2012] [*] Method BuildXMLTree is modified. In addition to ‘start position’ and ‘end position’ for each term (variable/function/user-defined function) in the source expression, it now contains ‘start arguments’ and ‘end arguments’ for functions. [-] If IsShortCircuitSupported is on, logical operators over user-defined functions are incorrectly evaluated in some cases. 2.4 [October 14, 2011] [-] UnknownVariablesException is not raised properly, if any of the unknown variables is in {} braces. 2.4 [March 23, 2011] [+] New Parse constructor with parameter "IsShortCircuitSupported". Default = True. This parameter switches on/off short-circuiting of logical operators and functions. [+] New IsLinear method in ExpressionTree class, which determines if the expression is a linear polynomial. [+] New IsLinear method in ExpressionTree class, which 1) determines if the expression is a linear polynomial or not, and 2) returns PolynomLinear object or Null. [+] New static method ReplaceVariable, which allows user to replace variable’s name. The method returns the source expression with new variable name. [+] "Null" constant. [*] Method BuildXMLTree creates modified XmlDocument that represents an expression tree. Now it contains ‘start position’ and ‘end position’ for each term in the source expression. [-] Stack overflow exception. This exception occurred, for example, in user-defined functions, if Evaluate method was not overridden. [-] Unable to serialize the ExpressionTree, as some of the operators are not tagged as being [Serializable]. 2.3 [June 30, 2009] [+] New SeparatorType, ListSeparator, NumberDecimalSeparator properties [+] Common math rounding introduced as an option. E.g.: Round(2.5, 0, MathRounding) yields 3.0. (By default, bankers' rounding is still used.) [+] An option to add user-defined operators [+] "Inf" constant. Stands for "positive infinity". [+] A sample has been added to show the usage of custom "+" and "-" operators in conjunction with dates, Excel-like. Example: #12/05/2008# - (365*10/2) [-] Function context passed inside IIF calls 2.2 [February 26, 2009] [+] XOR operator support [+] French localization of all end-user messages is available [+] ExpressionTree object is now serializable as a binary stream. 2.1.3 [April 25, 2008] [+] "ToNumber(string)" function has been added. It converts a string to a number. [*] Improved support of "long" data type, when used in decimal mode. [-] "+" operator, if used with strings or with a string and a number, acts as the string concatenation operator. 2.1.2 [September 19, 2007] [*] Changed "InvalidArgument" parameter type in Function and Operator validation routines from "ref" to "out". 2.1.1 [August 13, 2007] [*] Introduced decimal support for DateAdd, DATE, MID, LEFT, FIND functions. [-] Adjusted documentation for DateAdd function - any fractional part of the second parameter is ignored. 2.1 [July 24, 2007] [+] Short-circuiting of logical operators and functions. "IsShortCircuitSupported" method. 2.0 [July 12, 2007] [+] IIF conditional evaluation [+] indexed variables support ("[]" syntax) [+] "Context" support [+] Decimal support (Parser.StorageType property) [+] The names of the variables may contain any character (e.g. spaces), as soon as they are enclosed in {} brackets. [+] bCollectUnknownVariables parameter added to Parse method [+] The following read-only properties have been added to Function and Constant classes: - string Syntax{get;} - string Description{get;} - GroupType Group{get;} [+] New enumeration type, USP.Express.Pro.Constants.GroupType has been added. [+] ">" and "<" comparison operators are supported for strings [*] The leading zero can now be omitted in numbers. E.g., .01 is now a valid syntax for 0.01. [*] Improved reporting on unbalanced parentheses (the position of the first unbalanced parenthesis is reported) [*] Enhanced error reporting on parsing (InvalidToken property is included in ParseException class) [-] Min/Max functions returned Double.Max value when NaN was passed as one of its arguments. 1.1.5 [July 4, 2006] [+] .NET 2.0 release [*] An option to overload existing operators [*] Modified the BuildXMLTree method: Introduced a "TYPE" attribute to hold information on the data type of the token in the expression tree. Example: [*] Two-dimensional arrays as function parameters are now supported. Function.UnfoldArray method has been introduced. [-] IIF function - parsing bug fixed [+] "Root" function has been introduced -------------------------------------------------------------------------------- Copyright (C) 1999-2012 Unisoft plus LLC