| 6153 | } |
| 6154 | |
| 6155 | function filter() { |
| 6156 | var token = expect(); |
| 6157 | var fn = $filter(token.text); |
| 6158 | var argsFn = []; |
| 6159 | while(true) { |
| 6160 | if ((token = expect(':'))) { |
| 6161 | argsFn.push(expression()); |
| 6162 | } else { |
| 6163 | var fnInvoke = function(self, locals, input){ |
| 6164 | var args = [input]; |
| 6165 | for ( var i = 0; i < argsFn.length; i++) { |
| 6166 | args.push(argsFn[i](self, locals)); |
| 6167 | } |
| 6168 | return fn.apply(self, args); |
| 6169 | }; |
| 6170 | return function() { |
| 6171 | return fnInvoke; |
| 6172 | }; |
| 6173 | } |
| 6174 | } |
| 6175 | } |
| 6176 | |
| 6177 | function expression() { |
| 6178 | return assignment(); |