function $parse(exp, interceptorFn) {
      var parsedExpression, cacheKey;

      switch (typeof exp) {
        case 'string':
          exp = exp.trim();
          cacheKey = exp;

          parsedExpression = cache[cacheKey];

          if (!parsedExpression) {
            var lexer = new Lexer($parseOptions);
            var parser = new Parser(lexer, $filter, $parseOptions);
            parsedExpression = parser.parse(exp);

            cache[cacheKey] = addWatchDelegate(parsedExpression);
          }
          return addInterceptor(parsedExpression, interceptorFn);

        case 'function':
          return addInterceptor(exp, interceptorFn);

        default:
          return addInterceptor(noop, interceptorFn);
      }
    }
@ngdoc method
@name $parseProvider#setIdentifierFns

@description

Allows defining the set of characters that are allowed in AngularJS expressions. The function
`identifierStart` will get called to know if a given character is a valid character to be the
first character for an identifier. The function `identifierContinue` will get called to know if
a given character is a valid character to be a follow-up identifier character. The functions
`identifierStart` and `identifierContinue` will receive as arguments the single character to be
identifier and the character code point. These arguments will be `string` and `numeric`. Keep in
mind that the `string` parameter can be two characters long depending on the character
representation. It is expected for the function to return `true` or `false`, whether that
character is allowed or not.

Since this function will be called extensively, keep the implementation of these functions fast,
as the performance of these functions have a direct impact on the expressions parsing speed.

@param {function=} identifierStart The function that will decide whether the given character is
  a valid identifier start character.
@param {function=} identifierContinue The function that will decide whether the given character is
  a valid identifier continue character.