()
| 2315 | } |
| 2316 | |
| 2317 | function peg$parsehas() { |
| 2318 | var s0, s1, s2, s3, s4, s5; |
| 2319 | |
| 2320 | var key = peg$currPos * 32 + 26, |
| 2321 | cached = peg$resultsCache[key]; |
| 2322 | |
| 2323 | if (cached) { |
| 2324 | peg$currPos = cached.nextPos; |
| 2325 | |
| 2326 | return cached.result; |
| 2327 | } |
| 2328 | |
| 2329 | s0 = peg$currPos; |
| 2330 | if (input.substr(peg$currPos, 5) === peg$c86) { |
| 2331 | s1 = peg$c86; |
| 2332 | peg$currPos += 5; |
| 2333 | } else { |
| 2334 | s1 = peg$FAILED; |
| 2335 | if (peg$silentFails === 0) { peg$fail(peg$c87); } |
| 2336 | } |
| 2337 | if (s1 !== peg$FAILED) { |
| 2338 | s2 = peg$parse_(); |
| 2339 | if (s2 !== peg$FAILED) { |
| 2340 | s3 = peg$parsehasSelectors(); |
| 2341 | if (s3 !== peg$FAILED) { |
| 2342 | s4 = peg$parse_(); |
| 2343 | if (s4 !== peg$FAILED) { |
| 2344 | if (input.charCodeAt(peg$currPos) === 41) { |
| 2345 | s5 = peg$c69; |
| 2346 | peg$currPos++; |
| 2347 | } else { |
| 2348 | s5 = peg$FAILED; |
| 2349 | if (peg$silentFails === 0) { peg$fail(peg$c70); } |
| 2350 | } |
| 2351 | if (s5 !== peg$FAILED) { |
| 2352 | peg$savedPos = s0; |
| 2353 | s1 = peg$c88(s3); |
| 2354 | s0 = s1; |
| 2355 | } else { |
| 2356 | peg$currPos = s0; |
| 2357 | s0 = peg$FAILED; |
| 2358 | } |
| 2359 | } else { |
| 2360 | peg$currPos = s0; |
| 2361 | s0 = peg$FAILED; |
| 2362 | } |
| 2363 | } else { |
| 2364 | peg$currPos = s0; |
| 2365 | s0 = peg$FAILED; |
| 2366 | } |
| 2367 | } else { |
| 2368 | peg$currPos = s0; |
| 2369 | s0 = peg$FAILED; |
| 2370 | } |
| 2371 | } else { |
| 2372 | peg$currPos = s0; |
| 2373 | s0 = peg$FAILED; |
| 2374 | } |
no test coverage detected