function resolveEmbeddedBinding(oEnv, sInput, iStart) {
		var parseObject = JSTokenizer.parseJS,
			oParseResult,
			iEnd;

		// an embedded binding: check for a property name that would indicate a complex object
		if ( rObject.test(sInput.slice(iStart)) ) {
			oParseResult = parseObject(sInput, iStart);
			resolveBindingInfo(oEnv, oParseResult.result);
			return oParseResult;
		}
		// otherwise it must be a simple binding (path only)
		iEnd = sInput.indexOf('}', iStart);
		if ( iEnd < iStart ) {
			throw new SyntaxError("no closing braces found in '" + sInput + "' after pos:" + iStart);
		}
		return {
			result: makeSimpleBindingInfo(sInput.slice(iStart + 1, iEnd), oEnv),
			at: iEnd + 1
		};
	}
Determines the binding info for the given string sInput starting at the given iStart and
returns an object with the corresponding binding info as <code>result</code> and the
position where to continue parsing as <code>at</code> property.

@param {object} oEnv
  the "environment"
@param {object} oEnv.oContext
  the context object from complexBinding (read-only)
@param {boolean} oEnv.bTolerateFunctionsNotFound
  if <code>true</code>, unknown functions are gathered in aFunctionsNotFound, otherwise an
  error is logged (read-only)
@param {string[]} oEnv.aFunctionsNotFound
  a list of functions that could not be found if oEnv.bTolerateFunctionsNotFound is true
  (append only)
@param {string} sInput
  The input string from which to resolve an embedded binding
@param {int} iStart
  The start index for binding resolution in the input string
@returns {object}
  An object with the following properties:
  result: The binding info for the embedded binding
  at: The position after the last character for the embedded binding in the input string