(exp, interceptorFn)
| 16754 | return $parse; |
| 16755 | |
| 16756 | function $parse(exp, interceptorFn) { |
| 16757 | var parsedExpression, cacheKey; |
| 16758 | |
| 16759 | switch (typeof exp) { |
| 16760 | case 'string': |
| 16761 | exp = exp.trim(); |
| 16762 | cacheKey = exp; |
| 16763 | |
| 16764 | parsedExpression = cache[cacheKey]; |
| 16765 | |
| 16766 | if (!parsedExpression) { |
| 16767 | var lexer = new Lexer($parseOptions); |
| 16768 | var parser = new Parser(lexer, $filter, $parseOptions); |
| 16769 | parsedExpression = parser.parse(exp); |
| 16770 | if (parsedExpression.constant) { |
| 16771 | parsedExpression.$$watchDelegate = constantWatchDelegate; |
| 16772 | } else if (parsedExpression.oneTime) { |
| 16773 | parsedExpression.$$watchDelegate = parsedExpression.literal ? |
| 16774 | oneTimeLiteralWatchDelegate : oneTimeWatchDelegate; |
| 16775 | } else if (parsedExpression.inputs) { |
| 16776 | parsedExpression.$$watchDelegate = inputsWatchDelegate; |
| 16777 | } |
| 16778 | cache[cacheKey] = parsedExpression; |
| 16779 | } |
| 16780 | return addInterceptor(parsedExpression, interceptorFn); |
| 16781 | |
| 16782 | case 'function': |
| 16783 | return addInterceptor(exp, interceptorFn); |
| 16784 | |
| 16785 | default: |
| 16786 | return addInterceptor(noop, interceptorFn); |
| 16787 | } |
| 16788 | } |
| 16789 | |
| 16790 | function $$getAst(exp) { |
| 16791 | var lexer = new Lexer($parseOptions); |
no test coverage detected