function formatter() {
				//turn separate parameters for parts into one (array like) parameter
				return oResult.formatter(arguments);
			}
Parses a string <code>sInput</code> with an expression based on the syntax sketched
below.

If a start index <code>iStart</code> for parsing is provided, the input string is parsed
starting from this index and the return value contains the index after the last
character belonging to the expression.

The expression syntax is a subset of JavaScript expression syntax with the
enhancement that the only "variable" parts in an expression are bindings.
The following expression constructs are supported: <ul>
<li> String literal enclosed in single or double quotes, e.g. 'foo' </li>
<li> Null and Boolean literals: null, true, false </li>
<li> Object and number literals, e.g. {foo:'bar'} and 3.141 </li>
<li> Grouping, e.g. a * (b + c)</li>
<li> Unary operators !,  +, -, typeof </li>
<li> Multiplicative Operators: *, /, % </li>
<li> Additive Operators: +, - </li>
<li> Relational Operators: <, >, <=, >= </li>
<li> Strict Equality Operators: ===, !== </li>
<li> Binary Logical Operators: &&, || </li>
<li> Conditional Operator: ? : </li>
<li> Member access via . operator </li>
<li> Function call </li>
<li> Embedded binding to refer to model contents, e.g. ${myModel>/Address/city} </li>
<li> Global functions and objects: encodeURIComponent, Math, RegExp </li>
<li> Property Access, e.g. ['foo', 'bar'][0] or Math['PI']</li>
<li> Array literal, e.g. ['foo', 'bar'] </li>
</ul>

@param {function} fnResolveBinding - the function to resolve embedded bindings
@param {string} sInput - the string to be parsed
@param {int} [iStart=0] - the index to start parsing
@param {object} [mGlobals]
  global variables allowed in the expression as map of variable name to its value;
  note that there is a default map of known global variables
@param {object} [mLocals={}]
  local variables additionally allowed in the expression (shadowing global ones)
  as map of variable name to its value
@returns {object} the parse result with the following properties
  result: object with the properties
    formatter: the formatter function to evaluate the expression which
      takes the parts corresponding to bindings embedded in the expression as
      parameters
    parts: the array of parts contained in the expression string which is
      empty if no parts exist
  at: the index of the first character after the expression in sInput
@throws SyntaxError
  If the expression string is invalid or unsupported. The at property of
  the error contains the position where parsing failed.