| line |
true |
false |
branch |
|
66
|
0 |
0 |
sv_catpvf(message, "%s at %s line %" IVdf, |
|
69
|
0 |
0 |
if(context) |
|
70
|
0 |
0 |
sv_catpvf(message, ", near \"%" UTF8f "\"", |
|
|
0 |
0 |
sv_catpvf(message, ", near \"%" UTF8f "\"", |
|
71
|
0 |
0 |
UTF8fARG(UTF, contlen, context)); |
|
|
0 |
0 |
UTF8fARG(UTF, contlen, context)); |
|
|
0 |
0 |
UTF8fARG(UTF, contlen, context)); |
|
98
|
1 |
0 |
if (first) |
|
100
|
1 |
0 |
while (kid && OpHAS_SIBLING(kid)) |
|
|
0 |
1 |
while (kid && OpHAS_SIBLING(kid)) |
|
101
|
0 |
0 |
kid = OpSIBLING(kid); |
|
102
|
1 |
0 |
if (kid) |
|
116
|
2 |
0 |
if (!cv) |
|
120
|
2 |
0 |
if (!gv) |
|
140
|
12 |
3 |
if(value) { |
|
141
|
0 |
12 |
EXTEND(SP, 1); |
|
146
|
1 |
2 |
if(cLOGOP->op_other) |
|
157
|
6 |
1 |
if(!hv_iterinit(slurpy_hv)) |
|
167
|
1 |
0 |
sv_catpvf(keynames, "'%" SVf "'", SVfARG(HeSVKEY_force(he))); |
|
|
0 |
1 |
sv_catpvf(keynames, "'%" SVf "'", SVfARG(HeSVKEY_force(he))); |
|
|
1 |
0 |
sv_catpvf(keynames, "'%" SVf "'", SVfARG(HeSVKEY_force(he))); |
|
171
|
0 |
1 |
while((he = hv_iternext(slurpy_hv))) |
|
172
|
0 |
0 |
sv_catpvf(keynames, ", '%" SVf "'", SVfARG(HeSVKEY_force(he))), nkeys++; |
|
|
0 |
0 |
sv_catpvf(keynames, ", '%" SVf "'", SVfARG(HeSVKEY_force(he))), nkeys++; |
|
|
0 |
0 |
sv_catpvf(keynames, ", '%" SVf "'", SVfARG(HeSVKEY_force(he))), nkeys++; |
|
174
|
1 |
0 |
croak("Unrecognised %s %" SVf " for subroutine %" SVf, |
|
204
|
4 |
0 |
for(reg = sigattrs; reg; reg = reg->next) { |
|
205
|
0 |
4 |
if(!strEQ(name, reg->name)) |
|
208
|
4 |
0 |
if(reg->funcs->permit_hintkey && |
|
|
4 |
0 |
if(reg->funcs->permit_hintkey && |
|
209
|
0 |
4 |
(!hints || !hv_fetch(hints, reg->funcs->permit_hintkey, reg->permit_hintkeylen, 0))) |
|
230
|
0 |
0 |
if(p->funcs->free) |
|
245
|
8 |
13 |
if(ctx->named_varops) |
|
262
|
17 |
14 |
if((flags & PARSE_SUBSIGNATURE_NAMED_PARAMS) && c == ':') { |
|
|
11 |
6 |
if((flags & PARSE_SUBSIGNATURE_NAMED_PARAMS) && c == ':') { |
|
285
|
31 |
0 |
if(isIDFIRST_uni(lex_peek_unichar(0))) { |
|
|
31 |
0 |
if(isIDFIRST_uni(lex_peek_unichar(0))) { |
|
|
1 |
30 |
if(isIDFIRST_uni(lex_peek_unichar(0))) { |
|
|
30 |
1 |
if(isIDFIRST_uni(lex_peek_unichar(0))) { |
|
287
|
46 |
0 |
while(isALNUM_uni(lex_peek_unichar(0))) |
|
|
46 |
0 |
while(isALNUM_uni(lex_peek_unichar(0))) |
|
|
30 |
16 |
while(isALNUM_uni(lex_peek_unichar(0))) |
|
|
16 |
30 |
while(isALNUM_uni(lex_peek_unichar(0))) |
|
293
|
11 |
19 |
if(paramctx.is_named) { |
|
294
|
8 |
3 |
if(!ctx->named_varops) |
|
315
|
8 |
23 |
if(permit_attributes && lex_peek_unichar(0) == ':') { |
|
|
4 |
4 |
if(permit_attributes && lex_peek_unichar(0) == ':') { |
|
321
|
4 |
4 |
while(lex_scan_attrval_into(attrname, attrval)) { |
|
324
|
4 |
0 |
SignatureAttributeRegistration *reg = find_registered_attribute(SvPV_nolen(attrname)); |
|
327
|
4 |
0 |
if(reg->funcs->apply) |
|
330
|
4 |
0 |
if(attrdata || reg->funcs->post_defop) { |
|
|
0 |
4 |
if(attrdata || reg->funcs->post_defop) { |
|
331
|
0 |
0 |
if(!pending) { |
|
344
|
0 |
4 |
if(lex_peek_unichar(0) == ':') { |
|
351
|
27 |
4 |
if(c == '$') { |
|
354
|
11 |
16 |
if(paramctx.is_named) { |
|
359
|
0 |
16 |
if(parser->sig_slurpy) |
|
365
|
3 |
24 |
if(lex_peek_unichar(0) == '=') { |
|
369
|
1 |
2 |
if(!paramctx.is_named) |
|
374
|
2 |
1 |
if(paramctx.is_named) { |
|
375
|
0 |
2 |
paramctx.defop = (OP *)alloc_LOGOP_ANY(OP_CUSTOM, defexpr, LINKLIST(defexpr)); |
|
379
|
0 |
1 |
paramctx.defop = (OP *)alloc_LOGOP(OP_ARGDEFELEM, defexpr, LINKLIST(defexpr)); |
|
387
|
3 |
0 |
LINKLIST(paramctx.varop); |
|
393
|
0 |
24 |
if(parser->sig_optelems) |
|
397
|
11 |
16 |
if(paramctx.is_named) { |
|
399
|
9 |
2 |
if(!defop) { |
|
406
|
9 |
0 |
LINKLIST(paramctx.varop); |
|
421
|
0 |
4 |
if(paramctx.is_named) |
|
423
|
0 |
4 |
if(parser->sig_slurpy && parser->sig_slurpy != '+') |
|
428
|
0 |
4 |
if(lex_peek_unichar(0) == '=') |
|
434
|
0 |
31 |
if(pending) { |
|
435
|
0 |
0 |
for(int i = 0; i <= AvFILL(pending); i++) { |
|
|
0 |
0 |
for(int i = 0; i <= AvFILL(pending); i++) { |
|
438
|
0 |
0 |
if(p->funcs->post_defop) |
|
443
|
30 |
1 |
return paramctx.op ? newSTATEOP(0, NULL, paramctx.op) : NULL; |
|
472
|
31 |
3 |
while(lex_peek_unichar(0) != ')') { |
|
477
|
30 |
1 |
if(elem) { |
|
483
|
30 |
0 |
final_elem = OpSIBLING(cLISTOPx(elem)->op_first); |
|
485
|
30 |
0 |
if(OP_IS_NAMED_PARAM(ctx.last_varop)) |
|
|
12 |
18 |
if(OP_IS_NAMED_PARAM(ctx.last_varop)) |
|
|
11 |
1 |
if(OP_IS_NAMED_PARAM(ctx.last_varop)) |
|
|
11 |
0 |
if(OP_IS_NAMED_PARAM(ctx.last_varop)) |
|
491
|
0 |
31 |
if(PL_parser->error_count) { |
|
512
|
21 |
0 |
if (!FEATURE_SIGNATURES_IS_ENABLED) |
|
|
21 |
0 |
if (!FEATURE_SIGNATURES_IS_ENABLED) |
|
|
0 |
0 |
if (!FEATURE_SIGNATURES_IS_ENABLED) |
|
|
21 |
0 |
if (!FEATURE_SIGNATURES_IS_ENABLED) |
|
|
21 |
0 |
if (!FEATURE_SIGNATURES_IS_ENABLED) |
|
|
0 |
21 |
if (!FEATURE_SIGNATURES_IS_ENABLED) |
|
521
|
8 |
13 |
if(ctx.named_varops) { |
|
555
|
8 |
13 |
if(ctx.named_varops) { |
|
562
|
0 |
19 |
for(int i = 0; i <= AvFILL(ctx.named_varops); i++) { |
|
|
11 |
8 |
for(int i = 0; i <= AvFILL(ctx.named_varops); i++) { |
|
578
|
6 |
2 |
if(!allow_extras_after_named) { |
|
606
|
6 |
0 |
if(funcs->permit_hintkey) |