(exp, interceptorFn)
| 17363 | return $parse; |
| 17364 | |
| 17365 | function $parse(exp, interceptorFn) { |
| 17366 | var parsedExpression, cacheKey; |
| 17367 | |
| 17368 | switch (typeof exp) { |
| 17369 | case 'string': |
| 17370 | exp = exp.trim(); |
| 17371 | cacheKey = exp; |
| 17372 | |
| 17373 | parsedExpression = cache[cacheKey]; |
| 17374 | |
| 17375 | if (!parsedExpression) { |
| 17376 | var lexer = new Lexer($parseOptions); |
| 17377 | var parser = new Parser(lexer, $filter, $parseOptions); |
| 17378 | parsedExpression = parser.parse(exp); |
| 17379 | |
| 17380 | cache[cacheKey] = addWatchDelegate(parsedExpression); |
| 17381 | } |
| 17382 | return addInterceptor(parsedExpression, interceptorFn); |
| 17383 | |
| 17384 | case 'function': |
| 17385 | return addInterceptor(exp, interceptorFn); |
| 17386 | |
| 17387 | default: |
| 17388 | return addInterceptor(noop, interceptorFn); |
| 17389 | } |
| 17390 | } |
| 17391 | |
| 17392 | function $$getAst(exp) { |
| 17393 | var lexer = new Lexer($parseOptions); |
no test coverage detected