LLVMFuzzerTestOneInput:
   36|  1.55k|int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
   37|  1.55k|  char *new_str = (char *)malloc(size + 1);
   38|  1.55k|  if (new_str == NULL) {
  ------------------
  |  Branch (38:7): [True: 0, False: 1.55k]
  ------------------
   39|      0|    return 0;
   40|      0|  }
   41|  1.55k|  memcpy(new_str, data, size);
   42|  1.55k|  new_str[size] = '\0';
   43|       |
   44|  1.55k|  apr_pool_initialize();
   45|  1.55k|  apr_pool_t *v = NULL;
   46|  1.55k|  apr_pool_create(&v, NULL);
  ------------------
  |  |  301|  1.55k|    apr_pool_create_ex(newpool, parent, NULL, NULL)
  ------------------
   47|       |
   48|  1.55k|  int only_ascii = 1;
   49|  22.2M|  for (int i = 0; i < size; i++) {
  ------------------
  |  Branch (49:19): [True: 22.2M, False: 1.55k]
  ------------------
   50|       |    // Avoid unnessary exits because of non-ascii characters.
   51|  22.2M|    if (new_str[i] < 0x01 || new_str[i] > 0x7f) {
  ------------------
  |  Branch (51:9): [True: 1.60M, False: 20.6M]
  |  Branch (51:30): [True: 0, False: 20.6M]
  ------------------
   52|  1.60M|      only_ascii = 0;
   53|  1.60M|    }
   54|       |    // Avoid forced exits beause of, e.g. unsupported characters or recursion
   55|       |    // depth
   56|  22.2M|    if (new_str[i] == 0x5c || new_str[i] == '{') {
  ------------------
  |  Branch (56:9): [True: 194, False: 22.2M]
  |  Branch (56:31): [True: 195, False: 22.2M]
  ------------------
   57|    389|      only_ascii = 0;
   58|    389|    }
   59|  22.2M|  }
   60|       |
   61|       |  // Now parse
   62|  1.55k|  if (only_ascii) {
  ------------------
  |  Branch (62:7): [True: 1.52k, False: 30]
  ------------------
   63|  1.52k|    ap_expr_info_t val;
   64|  1.52k|    ap_expr_parse(v, v, &val, new_str, NULL);
   65|  1.52k|  }
   66|       |
   67|  1.55k|  apr_pool_terminate();
   68|  1.55k|  free(new_str);
   69|  1.55k|  return 0;
   70|  1.55k|}

ap_expr_parse:
  581|  1.52k|{
  582|  1.52k|    ap_expr_parse_ctx_t ctx;
  583|  1.52k|    int rc;
  584|       |
  585|  1.52k|    memset(&ctx, 0, sizeof ctx);
  586|  1.52k|    ctx.pool     = pool;
  587|  1.52k|    ctx.ptemp    = ptemp;
  588|  1.52k|    ctx.inputbuf = expr;
  589|  1.52k|    ctx.inputlen = strlen(expr);
  590|  1.52k|    ctx.inputptr = ctx.inputbuf;
  591|  1.52k|    ctx.flags    = info->flags;
  592|  1.52k|    ctx.lookup_fn   = lookup_fn ? lookup_fn : ap_expr_lookup_default;
  ------------------
  |  Branch (592:23): [True: 0, False: 1.52k]
  ------------------
  593|  1.52k|    ctx.at_start    = 1;
  594|       |
  595|  1.52k|    ap_expr_yylex_init(&ctx.scanner);
  596|  1.52k|    ap_expr_yyset_extra(&ctx, ctx.scanner);
  597|  1.52k|    rc = ap_expr_yyparse(&ctx);
  598|  1.52k|    ap_expr_yylex_destroy(ctx.scanner);
  599|       |
  600|       |    /* ctx.error: the generic bison error message
  601|       |     *            (XXX: usually not very useful, should be axed)
  602|       |     * ctx.error2: an additional error message
  603|       |     */
  604|  1.52k|    if (ctx.error) {
  ------------------
  |  Branch (604:9): [True: 8, False: 1.52k]
  ------------------
  605|      8|        if (ctx.error2)
  ------------------
  |  Branch (605:13): [True: 8, False: 0]
  ------------------
  606|      8|            return apr_psprintf(pool, "%s: %s", ctx.error, ctx.error2);
  607|      0|        else
  608|      0|            return ctx.error;
  609|      8|    }
  610|  1.52k|    else if (ctx.error2) {
  ------------------
  |  Branch (610:14): [True: 160, False: 1.36k]
  ------------------
  611|    160|        return ctx.error2;
  612|    160|    }
  613|       |
  614|  1.36k|    if (rc) /* XXX can this happen? */
  ------------------
  |  Branch (614:9): [True: 0, False: 1.36k]
  ------------------
  615|      0|        return "syntax error";
  616|       |
  617|       |#ifdef AP_EXPR_DEBUG
  618|       |    if (ctx.expr)
  619|       |        expr_dump_tree(ctx.expr, NULL, APLOG_NOTICE, 2);
  620|       |#endif
  621|       |
  622|  1.36k|    info->root_node = ctx.expr;
  623|       |
  624|  1.36k|    return NULL;
  625|  1.36k|}
ap_expr_make:
  649|   145k|{
  650|   145k|    ap_expr_t *node = apr_palloc(ctx->pool, sizeof(ap_expr_t));
  ------------------
  |  |  425|   145k|    apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  ------------------
  |  |  |  |  143|   145k|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  153|   145k|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|   145k|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  651|   145k|    node->node_op   = op;
  652|   145k|    node->node_arg1 = a1;
  653|   145k|    node->node_arg2 = a2;
  654|   145k|    return node;
  655|   145k|}
ap_expr_concat_make:
  659|  72.0k|{
  660|  72.0k|    const ap_expr_t *node;
  661|       |
  662|       |    /* Optimize out empty string(s) concatenation */
  663|  72.0k|    if ((node = a1)
  ------------------
  |  Branch (663:9): [True: 72.0k, False: 0]
  ------------------
  664|  72.0k|            && node->node_op == op_String
  ------------------
  |  Branch (664:16): [True: 139, False: 71.9k]
  ------------------
  665|  72.0k|            && !*(const char *)node->node_arg1) {
  ------------------
  |  Branch (665:16): [True: 0, False: 139]
  ------------------
  666|      0|        return (ap_expr_t *)a2;
  667|      0|    }
  668|  72.0k|    if ((node = a2)
  ------------------
  |  Branch (668:9): [True: 72.0k, False: 0]
  ------------------
  669|  72.0k|            && node->node_op == op_String
  ------------------
  |  Branch (669:16): [True: 33.6k, False: 38.4k]
  ------------------
  670|  72.0k|            && !*(const char *)node->node_arg1) {
  ------------------
  |  Branch (670:16): [True: 96, False: 33.5k]
  ------------------
  671|     96|        return (ap_expr_t *)a1;
  672|     96|    }
  673|       |
  674|  71.9k|    return ap_expr_make(op_Concat, a1, a2, ctx);
  675|  72.0k|}
ap_expr_backref_make:
  815|  38.4k|{
  816|  38.4k|    int *n = apr_pmemdup(ctx->pool, &num, sizeof(num));
  817|  38.4k|    return ap_expr_make(op_Backref, n, NULL, ctx);
  818|  38.4k|}

ap_expr_yyparse:
 1165|  1.52k|{
 1166|       |/* The lookahead symbol.  */
 1167|  1.52k|int yychar;
 1168|       |
 1169|       |
 1170|       |/* The semantic value of the lookahead symbol.  */
 1171|       |/* Default value used for initialization, for pacifying older GCCs
 1172|       |   or non-GCC compilers.  */
 1173|  1.52k|YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
  ------------------
  |  |  290|  1.52k|# define YY_INITIAL_VALUE(Value) Value
  ------------------
 1174|  1.52k|YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
  ------------------
  |  |  290|  1.52k|# define YY_INITIAL_VALUE(Value) Value
  ------------------
 1175|       |
 1176|       |    /* Number of syntax errors so far.  */
 1177|  1.52k|    int yynerrs;
 1178|       |
 1179|  1.52k|    int yystate;
 1180|       |    /* Number of tokens to shift before error messages enabled.  */
 1181|  1.52k|    int yyerrstatus;
 1182|       |
 1183|       |    /* The stacks and their tools:
 1184|       |       'yyss': related to states.
 1185|       |       'yyvs': related to semantic values.
 1186|       |
 1187|       |       Refer to the stacks through separate pointers, to allow yyoverflow
 1188|       |       to reallocate them elsewhere.  */
 1189|       |
 1190|       |    /* The state stack.  */
 1191|  1.52k|    yytype_int16 yyssa[YYINITDEPTH];
 1192|  1.52k|    yytype_int16 *yyss;
 1193|  1.52k|    yytype_int16 *yyssp;
 1194|       |
 1195|       |    /* The semantic value stack.  */
 1196|  1.52k|    YYSTYPE yyvsa[YYINITDEPTH];
 1197|  1.52k|    YYSTYPE *yyvs;
 1198|  1.52k|    YYSTYPE *yyvsp;
 1199|       |
 1200|  1.52k|    YYSIZE_T yystacksize;
  ------------------
  |  |  222|  1.52k|#  define YYSIZE_T __SIZE_TYPE__
  ------------------
 1201|       |
 1202|  1.52k|  int yyn;
 1203|  1.52k|  int yyresult;
 1204|       |  /* Lookahead token as an internal (translated) token number.  */
 1205|  1.52k|  int yytoken = 0;
 1206|       |  /* The variables used to return semantic value and location from the
 1207|       |     action routines.  */
 1208|  1.52k|  YYSTYPE yyval;
 1209|       |
 1210|  1.52k|#if YYERROR_VERBOSE
 1211|       |  /* Buffer for error messages, and its allocated size.  */
 1212|  1.52k|  char yymsgbuf[128];
 1213|  1.52k|  char *yymsg = yymsgbuf;
 1214|  1.52k|  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
  ------------------
  |  |  222|  1.52k|#  define YYSIZE_T __SIZE_TYPE__
  ------------------
 1215|  1.52k|#endif
 1216|       |
 1217|  1.52k|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 1218|       |
 1219|       |  /* The number of symbols on the RHS of the reduced rule.
 1220|       |     Keep to zero when no symbol should be popped.  */
 1221|  1.52k|  int yylen = 0;
 1222|       |
 1223|  1.52k|  yyssp = yyss = yyssa;
 1224|  1.52k|  yyvsp = yyvs = yyvsa;
 1225|  1.52k|  yystacksize = YYINITDEPTH;
  ------------------
  |  |  900|  1.52k|# define YYINITDEPTH 200
  ------------------
 1226|       |
 1227|  1.52k|  YYDPRINTF ((stderr, "Starting parse\n"));
 1228|       |
 1229|  1.52k|  yystate = 0;
 1230|  1.52k|  yyerrstatus = 0;
 1231|  1.52k|  yynerrs = 0;
  ------------------
  |  |   67|  1.52k|#define yynerrs         ap_expr_yynerrs
  ------------------
 1232|  1.52k|  yychar = YYEMPTY; /* Cause a token to be read.  */
  ------------------
  |  |  734|  1.52k|#define YYEMPTY         (-2)
  ------------------
 1233|  1.52k|  goto yysetstate;
 1234|       |
 1235|       |/*------------------------------------------------------------.
 1236|       || yynewstate -- Push a new state, which is found in yystate.  |
 1237|       |`------------------------------------------------------------*/
 1238|   263k| yynewstate:
 1239|       |  /* In all cases, when you get here, the value and location stacks
 1240|       |     have just been pushed.  So pushing a state here evens the stacks.  */
 1241|   263k|  yyssp++;
 1242|       |
 1243|   264k| yysetstate:
 1244|   264k|  *yyssp = yystate;
 1245|       |
 1246|   264k|  if (yyss + yystacksize - 1 <= yyssp)
  ------------------
  |  Branch (1246:7): [True: 0, False: 264k]
  ------------------
 1247|      0|    {
 1248|       |      /* Get the current used size of the three stacks, in elements.  */
 1249|      0|      YYSIZE_T yysize = yyssp - yyss + 1;
  ------------------
  |  |  222|      0|#  define YYSIZE_T __SIZE_TYPE__
  ------------------
 1250|       |
 1251|       |#ifdef yyoverflow
 1252|       |      {
 1253|       |        /* Give user a chance to reallocate the stack.  Use copies of
 1254|       |           these so that the &'s don't force the real ones into
 1255|       |           memory.  */
 1256|       |        YYSTYPE *yyvs1 = yyvs;
 1257|       |        yytype_int16 *yyss1 = yyss;
 1258|       |
 1259|       |        /* Each stack pointer address is followed by the size of the
 1260|       |           data in use in that stack, in bytes.  This used to be a
 1261|       |           conditional around just the two extra args, but that might
 1262|       |           be undefined if yyoverflow is a macro.  */
 1263|       |        yyoverflow (YY_("memory exhausted"),
 1264|       |                    &yyss1, yysize * sizeof (*yyssp),
 1265|       |                    &yyvs1, yysize * sizeof (*yyvsp),
 1266|       |                    &yystacksize);
 1267|       |
 1268|       |        yyss = yyss1;
 1269|       |        yyvs = yyvs1;
 1270|       |      }
 1271|       |#else /* no yyoverflow */
 1272|       |# ifndef YYSTACK_RELOCATE
 1273|       |      goto yyexhaustedlab;
 1274|       |# else
 1275|       |      /* Extend the stack our own way.  */
 1276|      0|      if (YYMAXDEPTH <= yystacksize)
  ------------------
  |  |  911|      0|# define YYMAXDEPTH 10000
  ------------------
  |  Branch (1276:11): [True: 0, False: 0]
  ------------------
 1277|      0|        goto yyexhaustedlab;
 1278|      0|      yystacksize *= 2;
 1279|      0|      if (YYMAXDEPTH < yystacksize)
  ------------------
  |  |  911|      0|# define YYMAXDEPTH 10000
  ------------------
  |  Branch (1279:11): [True: 0, False: 0]
  ------------------
 1280|      0|        yystacksize = YYMAXDEPTH;
  ------------------
  |  |  911|      0|# define YYMAXDEPTH 10000
  ------------------
 1281|       |
 1282|      0|      {
 1283|      0|        yytype_int16 *yyss1 = yyss;
 1284|      0|        union yyalloc *yyptr =
 1285|      0|          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
  ------------------
  |  |  340|      0|#  define YYSTACK_ALLOC YYMALLOC
  |  |  ------------------
  |  |  |  |  354|      0|#   define YYMALLOC malloc
  |  |  ------------------
  ------------------
                        (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
  ------------------
  |  |  386|      0|     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
  |  |  387|      0|      + YYSTACK_GAP_MAXIMUM)
  |  |  ------------------
  |  |  |  |  381|      0|# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
  |  |  ------------------
  ------------------
 1286|      0|        if (! yyptr)
  ------------------
  |  Branch (1286:13): [True: 0, False: 0]
  ------------------
 1287|      0|          goto yyexhaustedlab;
 1288|      0|        YYSTACK_RELOCATE (yyss_alloc, yyss);
  ------------------
  |  |  397|      0|    do                                                                  \
  |  |  398|      0|      {                                                                 \
  |  |  399|      0|        YYSIZE_T yynewbytes;                                            \
  |  |  ------------------
  |  |  |  |  222|      0|#  define YYSIZE_T __SIZE_TYPE__
  |  |  ------------------
  |  |  400|      0|        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
  |  |  ------------------
  |  |  |  |  415|      0|      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
  |  |  ------------------
  |  |  401|      0|        Stack = &yyptr->Stack_alloc;                                    \
  |  |  402|      0|        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
  |  |  ------------------
  |  |  |  |  381|      0|# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
  |  |  ------------------
  |  |  403|      0|        yyptr += yynewbytes / sizeof (*yyptr);                          \
  |  |  404|      0|      }                                                                 \
  |  |  405|      0|    while (0)
  |  |  ------------------
  |  |  |  Branch (405:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1289|      0|        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
  ------------------
  |  |  397|      0|    do                                                                  \
  |  |  398|      0|      {                                                                 \
  |  |  399|      0|        YYSIZE_T yynewbytes;                                            \
  |  |  ------------------
  |  |  |  |  222|      0|#  define YYSIZE_T __SIZE_TYPE__
  |  |  ------------------
  |  |  400|      0|        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
  |  |  ------------------
  |  |  |  |  415|      0|      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
  |  |  ------------------
  |  |  401|      0|        Stack = &yyptr->Stack_alloc;                                    \
  |  |  402|      0|        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
  |  |  ------------------
  |  |  |  |  381|      0|# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
  |  |  ------------------
  |  |  403|      0|        yyptr += yynewbytes / sizeof (*yyptr);                          \
  |  |  404|      0|      }                                                                 \
  |  |  405|      0|    while (0)
  |  |  ------------------
  |  |  |  Branch (405:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1290|      0|#  undef YYSTACK_RELOCATE
 1291|      0|        if (yyss1 != yyssa)
  ------------------
  |  Branch (1291:13): [True: 0, False: 0]
  ------------------
 1292|      0|          YYSTACK_FREE (yyss1);
  ------------------
  |  |  341|      0|#  define YYSTACK_FREE YYFREE
  |  |  ------------------
  |  |  |  |  360|      0|#   define YYFREE free
  |  |  ------------------
  ------------------
 1293|      0|      }
 1294|      0|# endif
 1295|      0|#endif /* no yyoverflow */
 1296|       |
 1297|      0|      yyssp = yyss + yysize - 1;
 1298|      0|      yyvsp = yyvs + yysize - 1;
 1299|       |
 1300|      0|      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
 1301|      0|                  (unsigned long int) yystacksize));
 1302|       |
 1303|      0|      if (yyss + yystacksize - 1 <= yyssp)
  ------------------
  |  Branch (1303:11): [True: 0, False: 0]
  ------------------
 1304|      0|        YYABORT;
  ------------------
  |  |  738|      0|#define YYABORT         goto yyabortlab
  ------------------
 1305|      0|    }
 1306|       |
 1307|   264k|  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 1308|       |
 1309|   264k|  if (yystate == YYFINAL)
  ------------------
  |  |  430|   264k|#define YYFINAL  31
  ------------------
  |  Branch (1309:7): [True: 1.36k, False: 263k]
  ------------------
 1310|  1.36k|    YYACCEPT;
  ------------------
  |  |  737|  1.36k|#define YYACCEPT        goto yyacceptlab
  ------------------
 1311|       |
 1312|   263k|  goto yybackup;
 1313|       |
 1314|       |/*-----------.
 1315|       || yybackup.  |
 1316|       |`-----------*/
 1317|   263k|yybackup:
 1318|       |
 1319|       |  /* Do appropriate processing given the current state.  Read a
 1320|       |     lookahead token if we need one and don't already have one.  */
 1321|       |
 1322|       |  /* First try to decide what to do without reference to lookahead token.  */
 1323|   263k|  yyn = yypact[yystate];
 1324|   263k|  if (yypact_value_is_default (yyn))
  ------------------
  |  |  550|   263k|  (!!((Yystate) == (-38)))
  |  |  ------------------
  |  |  |  Branch (550:3): [True: 185k, False: 77.8k]
  |  |  ------------------
  ------------------
 1325|   185k|    goto yydefault;
 1326|       |
 1327|       |  /* Not known => get a lookahead token if don't already have one.  */
 1328|       |
 1329|       |  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
 1330|  77.8k|  if (yychar == YYEMPTY)
  ------------------
  |  |  734|  77.8k|#define YYEMPTY         (-2)
  ------------------
  |  Branch (1330:7): [True: 76.5k, False: 1.36k]
  ------------------
 1331|  76.5k|    {
 1332|  76.5k|      YYDPRINTF ((stderr, "Reading a token: "));
 1333|  76.5k|      yychar = yylex (&yylval, yyscanner);
  ------------------
  |  |   64|  76.5k|#define yylex           ap_expr_yylex
  ------------------
                    yychar = yylex (&yylval, yyscanner);
  ------------------
  |  |  186|  76.5k|#define yyscanner ctx->scanner
  ------------------
 1334|  76.5k|    }
 1335|       |
 1336|  77.8k|  if (yychar <= YYEOF)
  ------------------
  |  |  735|  77.8k|#define YYEOF           0
  ------------------
  |  Branch (1336:7): [True: 2.72k, False: 75.1k]
  ------------------
 1337|  2.72k|    {
 1338|  2.72k|      yychar = yytoken = YYEOF;
  ------------------
  |  |  735|  2.72k|#define YYEOF           0
  ------------------
 1339|  2.72k|      YYDPRINTF ((stderr, "Now at end of input.\n"));
 1340|  2.72k|    }
 1341|  75.1k|  else
 1342|  75.1k|    {
 1343|  75.1k|      yytoken = YYTRANSLATE (yychar);
  ------------------
  |  |  449|  75.1k|  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
  |  |  ------------------
  |  |  |  |  446|  75.1k|#define YYMAXUTOK   301
  |  |  ------------------
  |  |                 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
  |  |  ------------------
  |  |  |  |  445|      0|#define YYUNDEFTOK  2
  |  |  ------------------
  |  |  |  Branch (449:4): [True: 75.1k, False: 0]
  |  |  ------------------
  ------------------
 1344|  75.1k|      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
 1345|  75.1k|    }
 1346|       |
 1347|       |  /* If the proper action on seeing token YYTOKEN is to reduce or to
 1348|       |     detect an error, take that action.  */
 1349|  77.8k|  yyn += yytoken;
 1350|  77.8k|  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
  ------------------
  |  |  432|  77.8k|#define YYLAST   274
  ------------------
  |  Branch (1350:7): [True: 0, False: 77.8k]
  |  Branch (1350:18): [True: 0, False: 77.8k]
  |  Branch (1350:34): [True: 1.37k, False: 76.5k]
  ------------------
 1351|  1.37k|    goto yydefault;
 1352|  76.5k|  yyn = yytable[yyn];
 1353|  76.5k|  if (yyn <= 0)
  ------------------
  |  Branch (1353:7): [True: 0, False: 76.5k]
  ------------------
 1354|      0|    {
 1355|      0|      if (yytable_value_is_error (yyn))
  ------------------
  |  |  555|      0|  0
  |  |  ------------------
  |  |  |  Branch (555:3): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1356|      0|        goto yyerrlab;
 1357|      0|      yyn = -yyn;
 1358|      0|      goto yyreduce;
 1359|      0|    }
 1360|       |
 1361|       |  /* Count tokens shifted since error; after three, turn off error
 1362|       |     status.  */
 1363|  76.5k|  if (yyerrstatus)
  ------------------
  |  Branch (1363:7): [True: 0, False: 76.5k]
  ------------------
 1364|      0|    yyerrstatus--;
 1365|       |
 1366|       |  /* Shift the lookahead token.  */
 1367|  76.5k|  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 1368|       |
 1369|       |  /* Discard the shifted token.  */
 1370|  76.5k|  yychar = YYEMPTY;
  ------------------
  |  |  734|  76.5k|#define YYEMPTY         (-2)
  ------------------
 1371|       |
 1372|  76.5k|  yystate = yyn;
 1373|  76.5k|  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 1374|  76.5k|  *++yyvsp = yylval;
 1375|  76.5k|  YY_IGNORE_MAYBE_UNINITIALIZED_END
 1376|       |
 1377|  76.5k|  goto yynewstate;
 1378|       |
 1379|       |
 1380|       |/*-----------------------------------------------------------.
 1381|       || yydefault -- do the default action for the current state.  |
 1382|       |`-----------------------------------------------------------*/
 1383|   186k|yydefault:
 1384|   186k|  yyn = yydefact[yystate];
 1385|   186k|  if (yyn == 0)
  ------------------
  |  Branch (1385:7): [True: 8, False: 186k]
  ------------------
 1386|      8|    goto yyerrlab;
 1387|   186k|  goto yyreduce;
 1388|       |
 1389|       |
 1390|       |/*-----------------------------.
 1391|       || yyreduce -- Do a reduction.  |
 1392|       |`-----------------------------*/
 1393|   186k|yyreduce:
 1394|       |  /* yyn is the number of a rule to reduce with.  */
 1395|   186k|  yylen = yyr2[yyn];
 1396|       |
 1397|       |  /* If YYLEN is nonzero, implement the default value of the action:
 1398|       |     '$$ = $1'.
 1399|       |
 1400|       |     Otherwise, the following line sets YYVAL to garbage.
 1401|       |     This behavior is undocumented and Bison
 1402|       |     users should not rely upon it.  Assigning to YYVAL
 1403|       |     unconditionally makes the parser a bit smaller, and it avoids a
 1404|       |     GCC warning that YYVAL may be used uninitialized.  */
 1405|   186k|  yyval = yyvsp[1-yylen];
 1406|       |
 1407|       |
 1408|   186k|  YY_REDUCE_PRINT (yyn);
 1409|   186k|  switch (yyn)
 1410|   186k|    {
 1411|  1.36k|        case 2:
  ------------------
  |  Branch (1411:9): [True: 1.36k, False: 185k]
  ------------------
 1412|  1.36k|#line 128 "util_expr_parse.y" /* yacc.c:1648  */
 1413|  1.36k|    { ctx->expr = (yyvsp[0].exVal); }
 1414|  1.36k|#line 1415 "util_expr_parse.c" /* yacc.c:1648  */
 1415|  1.36k|    break;
 1416|       |
 1417|      0|  case 3:
  ------------------
  |  Branch (1417:3): [True: 0, False: 186k]
  ------------------
 1418|      0|#line 129 "util_expr_parse.y" /* yacc.c:1648  */
 1419|      0|    { ctx->expr = (yyvsp[0].exVal); }
 1420|      0|#line 1421 "util_expr_parse.c" /* yacc.c:1648  */
 1421|      0|    break;
 1422|       |
 1423|      0|  case 4:
  ------------------
  |  Branch (1423:3): [True: 0, False: 186k]
  ------------------
 1424|      0|#line 130 "util_expr_parse.y" /* yacc.c:1648  */
 1425|      0|    { YYABORT; }
  ------------------
  |  |  738|      0|#define YYABORT         goto yyabortlab
  ------------------
 1426|      0|#line 1427 "util_expr_parse.c" /* yacc.c:1648  */
 1427|      0|    break;
 1428|       |
 1429|  1.36k|  case 5:
  ------------------
  |  Branch (1429:3): [True: 1.36k, False: 185k]
  ------------------
 1430|  1.36k|#line 133 "util_expr_parse.y" /* yacc.c:1648  */
 1431|  1.36k|    { (yyval.exVal) = (yyvsp[0].exVal); }
 1432|  1.36k|#line 1433 "util_expr_parse.c" /* yacc.c:1648  */
 1433|  1.36k|    break;
 1434|       |
 1435|  72.0k|  case 6:
  ------------------
  |  Branch (1435:3): [True: 72.0k, False: 114k]
  ------------------
 1436|  72.0k|#line 134 "util_expr_parse.y" /* yacc.c:1648  */
 1437|  72.0k|    { (yyval.exVal) = ap_expr_concat_make((yyvsp[-1].exVal), (yyvsp[0].exVal), ctx); }
 1438|  72.0k|#line 1439 "util_expr_parse.c" /* yacc.c:1648  */
 1439|  72.0k|    break;
 1440|       |
 1441|    160|  case 7:
  ------------------
  |  Branch (1441:3): [True: 160, False: 186k]
  ------------------
 1442|    160|#line 135 "util_expr_parse.y" /* yacc.c:1648  */
 1443|    160|    { YYABORT; }
  ------------------
  |  |  738|    160|#define YYABORT         goto yyabortlab
  ------------------
 1444|      0|#line 1445 "util_expr_parse.c" /* yacc.c:1648  */
 1445|      0|    break;
 1446|       |
 1447|      0|  case 8:
  ------------------
  |  Branch (1447:3): [True: 0, False: 186k]
  ------------------
 1448|      0|#line 138 "util_expr_parse.y" /* yacc.c:1648  */
 1449|      0|    { (yyval.exVal) = ap_expr_make(op_True,        NULL, NULL, ctx); }
 1450|      0|#line 1451 "util_expr_parse.c" /* yacc.c:1648  */
 1451|      0|    break;
 1452|       |
 1453|      0|  case 9:
  ------------------
  |  Branch (1453:3): [True: 0, False: 186k]
  ------------------
 1454|      0|#line 139 "util_expr_parse.y" /* yacc.c:1648  */
 1455|      0|    { (yyval.exVal) = ap_expr_make(op_False,       NULL, NULL, ctx); }
 1456|      0|#line 1457 "util_expr_parse.c" /* yacc.c:1648  */
 1457|      0|    break;
 1458|       |
 1459|      0|  case 10:
  ------------------
  |  Branch (1459:3): [True: 0, False: 186k]
  ------------------
 1460|      0|#line 140 "util_expr_parse.y" /* yacc.c:1648  */
 1461|      0|    { (yyval.exVal) = ap_expr_make(op_Not,         (yyvsp[0].exVal),   NULL, ctx); }
 1462|      0|#line 1463 "util_expr_parse.c" /* yacc.c:1648  */
 1463|      0|    break;
 1464|       |
 1465|      0|  case 11:
  ------------------
  |  Branch (1465:3): [True: 0, False: 186k]
  ------------------
 1466|      0|#line 141 "util_expr_parse.y" /* yacc.c:1648  */
 1467|      0|    { (yyval.exVal) = ap_expr_make(op_Or,          (yyvsp[-2].exVal),   (yyvsp[0].exVal),   ctx); }
 1468|      0|#line 1469 "util_expr_parse.c" /* yacc.c:1648  */
 1469|      0|    break;
 1470|       |
 1471|      0|  case 12:
  ------------------
  |  Branch (1471:3): [True: 0, False: 186k]
  ------------------
 1472|      0|#line 142 "util_expr_parse.y" /* yacc.c:1648  */
 1473|      0|    { (yyval.exVal) = ap_expr_make(op_And,         (yyvsp[-2].exVal),   (yyvsp[0].exVal),   ctx); }
 1474|      0|#line 1475 "util_expr_parse.c" /* yacc.c:1648  */
 1475|      0|    break;
 1476|       |
 1477|      0|  case 13:
  ------------------
  |  Branch (1477:3): [True: 0, False: 186k]
  ------------------
 1478|      0|#line 143 "util_expr_parse.y" /* yacc.c:1648  */
 1479|      0|    { (yyval.exVal) = ap_expr_make(op_Comp,        (yyvsp[0].exVal),   NULL, ctx); }
 1480|      0|#line 1481 "util_expr_parse.c" /* yacc.c:1648  */
 1481|      0|    break;
 1482|       |
 1483|      0|  case 14:
  ------------------
  |  Branch (1483:3): [True: 0, False: 186k]
  ------------------
 1484|      0|#line 144 "util_expr_parse.y" /* yacc.c:1648  */
 1485|      0|    { (yyval.exVal) = ap_expr_unary_op_make(       (yyvsp[-1].cpVal),   (yyvsp[0].exVal),   ctx); }
 1486|      0|#line 1487 "util_expr_parse.c" /* yacc.c:1648  */
 1487|      0|    break;
 1488|       |
 1489|      0|  case 15:
  ------------------
  |  Branch (1489:3): [True: 0, False: 186k]
  ------------------
 1490|      0|#line 145 "util_expr_parse.y" /* yacc.c:1648  */
 1491|      0|    { (yyval.exVal) = ap_expr_binary_op_make((yyvsp[-1].cpVal),   (yyvsp[-2].exVal),   (yyvsp[0].exVal),   ctx); }
 1492|      0|#line 1493 "util_expr_parse.c" /* yacc.c:1648  */
 1493|      0|    break;
 1494|       |
 1495|      0|  case 16:
  ------------------
  |  Branch (1495:3): [True: 0, False: 186k]
  ------------------
 1496|      0|#line 146 "util_expr_parse.y" /* yacc.c:1648  */
 1497|      0|    { (yyval.exVal) = (yyvsp[-1].exVal); }
 1498|      0|#line 1499 "util_expr_parse.c" /* yacc.c:1648  */
 1499|      0|    break;
 1500|       |
 1501|      0|  case 17:
  ------------------
  |  Branch (1501:3): [True: 0, False: 186k]
  ------------------
 1502|      0|#line 147 "util_expr_parse.y" /* yacc.c:1648  */
 1503|      0|    { YYABORT; }
  ------------------
  |  |  738|      0|#define YYABORT         goto yyabortlab
  ------------------
 1504|      0|#line 1505 "util_expr_parse.c" /* yacc.c:1648  */
 1505|      0|    break;
 1506|       |
 1507|      0|  case 18:
  ------------------
  |  Branch (1507:3): [True: 0, False: 186k]
  ------------------
 1508|      0|#line 150 "util_expr_parse.y" /* yacc.c:1648  */
 1509|      0|    { (yyval.exVal) = ap_expr_make(op_EQ,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }
 1510|      0|#line 1511 "util_expr_parse.c" /* yacc.c:1648  */
 1511|      0|    break;
 1512|       |
 1513|      0|  case 19:
  ------------------
  |  Branch (1513:3): [True: 0, False: 186k]
  ------------------
 1514|      0|#line 151 "util_expr_parse.y" /* yacc.c:1648  */
 1515|      0|    { (yyval.exVal) = ap_expr_make(op_NE,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }
 1516|      0|#line 1517 "util_expr_parse.c" /* yacc.c:1648  */
 1517|      0|    break;
 1518|       |
 1519|      0|  case 20:
  ------------------
  |  Branch (1519:3): [True: 0, False: 186k]
  ------------------
 1520|      0|#line 152 "util_expr_parse.y" /* yacc.c:1648  */
 1521|      0|    { (yyval.exVal) = ap_expr_make(op_LT,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }
 1522|      0|#line 1523 "util_expr_parse.c" /* yacc.c:1648  */
 1523|      0|    break;
 1524|       |
 1525|      0|  case 21:
  ------------------
  |  Branch (1525:3): [True: 0, False: 186k]
  ------------------
 1526|      0|#line 153 "util_expr_parse.y" /* yacc.c:1648  */
 1527|      0|    { (yyval.exVal) = ap_expr_make(op_LE,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }
 1528|      0|#line 1529 "util_expr_parse.c" /* yacc.c:1648  */
 1529|      0|    break;
 1530|       |
 1531|      0|  case 22:
  ------------------
  |  Branch (1531:3): [True: 0, False: 186k]
  ------------------
 1532|      0|#line 154 "util_expr_parse.y" /* yacc.c:1648  */
 1533|      0|    { (yyval.exVal) = ap_expr_make(op_GT,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }
 1534|      0|#line 1535 "util_expr_parse.c" /* yacc.c:1648  */
 1535|      0|    break;
 1536|       |
 1537|      0|  case 23:
  ------------------
  |  Branch (1537:3): [True: 0, False: 186k]
  ------------------
 1538|      0|#line 155 "util_expr_parse.y" /* yacc.c:1648  */
 1539|      0|    { (yyval.exVal) = ap_expr_make(op_GE,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }
 1540|      0|#line 1541 "util_expr_parse.c" /* yacc.c:1648  */
 1541|      0|    break;
 1542|       |
 1543|      0|  case 24:
  ------------------
  |  Branch (1543:3): [True: 0, False: 186k]
  ------------------
 1544|      0|#line 156 "util_expr_parse.y" /* yacc.c:1648  */
 1545|      0|    { (yyval.exVal) = ap_expr_make(op_STR_EQ,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }
 1546|      0|#line 1547 "util_expr_parse.c" /* yacc.c:1648  */
 1547|      0|    break;
 1548|       |
 1549|      0|  case 25:
  ------------------
  |  Branch (1549:3): [True: 0, False: 186k]
  ------------------
 1550|      0|#line 157 "util_expr_parse.y" /* yacc.c:1648  */
 1551|      0|    { (yyval.exVal) = ap_expr_make(op_STR_NE,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }
 1552|      0|#line 1553 "util_expr_parse.c" /* yacc.c:1648  */
 1553|      0|    break;
 1554|       |
 1555|      0|  case 26:
  ------------------
  |  Branch (1555:3): [True: 0, False: 186k]
  ------------------
 1556|      0|#line 158 "util_expr_parse.y" /* yacc.c:1648  */
 1557|      0|    { (yyval.exVal) = ap_expr_make(op_STR_LT,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }
 1558|      0|#line 1559 "util_expr_parse.c" /* yacc.c:1648  */
 1559|      0|    break;
 1560|       |
 1561|      0|  case 27:
  ------------------
  |  Branch (1561:3): [True: 0, False: 186k]
  ------------------
 1562|      0|#line 159 "util_expr_parse.y" /* yacc.c:1648  */
 1563|      0|    { (yyval.exVal) = ap_expr_make(op_STR_LE,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }
 1564|      0|#line 1565 "util_expr_parse.c" /* yacc.c:1648  */
 1565|      0|    break;
 1566|       |
 1567|      0|  case 28:
  ------------------
  |  Branch (1567:3): [True: 0, False: 186k]
  ------------------
 1568|      0|#line 160 "util_expr_parse.y" /* yacc.c:1648  */
 1569|      0|    { (yyval.exVal) = ap_expr_make(op_STR_GT,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }
 1570|      0|#line 1571 "util_expr_parse.c" /* yacc.c:1648  */
 1571|      0|    break;
 1572|       |
 1573|      0|  case 29:
  ------------------
  |  Branch (1573:3): [True: 0, False: 186k]
  ------------------
 1574|      0|#line 161 "util_expr_parse.y" /* yacc.c:1648  */
 1575|      0|    { (yyval.exVal) = ap_expr_make(op_STR_GE,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }
 1576|      0|#line 1577 "util_expr_parse.c" /* yacc.c:1648  */
 1577|      0|    break;
 1578|       |
 1579|      0|  case 30:
  ------------------
  |  Branch (1579:3): [True: 0, False: 186k]
  ------------------
 1580|      0|#line 162 "util_expr_parse.y" /* yacc.c:1648  */
 1581|      0|    { (yyval.exVal) = ap_expr_make(op_REG,     (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }
 1582|      0|#line 1583 "util_expr_parse.c" /* yacc.c:1648  */
 1583|      0|    break;
 1584|       |
 1585|      0|  case 31:
  ------------------
  |  Branch (1585:3): [True: 0, False: 186k]
  ------------------
 1586|      0|#line 163 "util_expr_parse.y" /* yacc.c:1648  */
 1587|      0|    { (yyval.exVal) = ap_expr_make(op_NRE,     (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }
 1588|      0|#line 1589 "util_expr_parse.c" /* yacc.c:1648  */
 1589|      0|    break;
 1590|       |
 1591|      0|  case 32:
  ------------------
  |  Branch (1591:3): [True: 0, False: 186k]
  ------------------
 1592|      0|#line 164 "util_expr_parse.y" /* yacc.c:1648  */
 1593|      0|    { (yyval.exVal) = ap_expr_make(op_IN,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }
 1594|      0|#line 1595 "util_expr_parse.c" /* yacc.c:1648  */
 1595|      0|    break;
 1596|       |
 1597|      0|  case 33:
  ------------------
  |  Branch (1597:3): [True: 0, False: 186k]
  ------------------
 1598|      0|#line 167 "util_expr_parse.y" /* yacc.c:1648  */
 1599|      0|    { (yyval.exVal) = ap_expr_make(op_Digit,  (yyvsp[0].cpVal), NULL, ctx); }
 1600|      0|#line 1601 "util_expr_parse.c" /* yacc.c:1648  */
 1601|      0|    break;
 1602|       |
 1603|      0|  case 34:
  ------------------
  |  Branch (1603:3): [True: 0, False: 186k]
  ------------------
 1604|      0|#line 168 "util_expr_parse.y" /* yacc.c:1648  */
 1605|      0|    { (yyval.exVal) = ap_expr_make(op_String, "", NULL, ctx); }
 1606|      0|#line 1607 "util_expr_parse.c" /* yacc.c:1648  */
 1607|      0|    break;
 1608|       |
 1609|      0|  case 35:
  ------------------
  |  Branch (1609:3): [True: 0, False: 186k]
  ------------------
 1610|      0|#line 169 "util_expr_parse.y" /* yacc.c:1648  */
 1611|      0|    { (yyval.exVal) = (yyvsp[-1].exVal); }
 1612|      0|#line 1613 "util_expr_parse.c" /* yacc.c:1648  */
 1613|      0|    break;
 1614|       |
 1615|      0|  case 36:
  ------------------
  |  Branch (1615:3): [True: 0, False: 186k]
  ------------------
 1616|      0|#line 170 "util_expr_parse.y" /* yacc.c:1648  */
 1617|      0|    { (yyval.exVal) = ap_expr_make(op_Concat, (yyvsp[-2].exVal), (yyvsp[0].exVal),   ctx); }
 1618|      0|#line 1619 "util_expr_parse.c" /* yacc.c:1648  */
 1619|      0|    break;
 1620|       |
 1621|      0|  case 37:
  ------------------
  |  Branch (1621:3): [True: 0, False: 186k]
  ------------------
 1622|      0|#line 171 "util_expr_parse.y" /* yacc.c:1648  */
 1623|      0|    { (yyval.exVal) = (yyvsp[0].exVal); }
 1624|      0|#line 1625 "util_expr_parse.c" /* yacc.c:1648  */
 1625|      0|    break;
 1626|       |
 1627|      0|  case 38:
  ------------------
  |  Branch (1627:3): [True: 0, False: 186k]
  ------------------
 1628|      0|#line 172 "util_expr_parse.y" /* yacc.c:1648  */
 1629|      0|    { (yyval.exVal) = (yyvsp[0].exVal); }
 1630|      0|#line 1631 "util_expr_parse.c" /* yacc.c:1648  */
 1631|      0|    break;
 1632|       |
 1633|      0|  case 39:
  ------------------
  |  Branch (1633:3): [True: 0, False: 186k]
  ------------------
 1634|      0|#line 173 "util_expr_parse.y" /* yacc.c:1648  */
 1635|      0|    { (yyval.exVal) = (yyvsp[0].exVal); }
 1636|      0|#line 1637 "util_expr_parse.c" /* yacc.c:1648  */
 1637|      0|    break;
 1638|       |
 1639|      0|  case 40:
  ------------------
  |  Branch (1639:3): [True: 0, False: 186k]
  ------------------
 1640|      0|#line 174 "util_expr_parse.y" /* yacc.c:1648  */
 1641|      0|    { (yyval.exVal) = (yyvsp[0].exVal); }
 1642|      0|#line 1643 "util_expr_parse.c" /* yacc.c:1648  */
 1643|      0|    break;
 1644|       |
 1645|      0|  case 41:
  ------------------
  |  Branch (1645:3): [True: 0, False: 186k]
  ------------------
 1646|      0|#line 175 "util_expr_parse.y" /* yacc.c:1648  */
 1647|      0|    { (yyval.exVal) = (yyvsp[-1].exVal); }
 1648|      0|#line 1649 "util_expr_parse.c" /* yacc.c:1648  */
 1649|      0|    break;
 1650|       |
 1651|      0|  case 42:
  ------------------
  |  Branch (1651:3): [True: 0, False: 186k]
  ------------------
 1652|      0|#line 178 "util_expr_parse.y" /* yacc.c:1648  */
 1653|      0|    { (yyval.exVal) = (yyvsp[0].exVal); }
 1654|      0|#line 1655 "util_expr_parse.c" /* yacc.c:1648  */
 1655|      0|    break;
 1656|       |
 1657|      0|  case 43:
  ------------------
  |  Branch (1657:3): [True: 0, False: 186k]
  ------------------
 1658|      0|#line 179 "util_expr_parse.y" /* yacc.c:1648  */
 1659|      0|    { (yyval.exVal) = (yyvsp[0].exVal); }
 1660|      0|#line 1661 "util_expr_parse.c" /* yacc.c:1648  */
 1661|      0|    break;
 1662|       |
 1663|      0|  case 44:
  ------------------
  |  Branch (1663:3): [True: 0, False: 186k]
  ------------------
 1664|      0|#line 180 "util_expr_parse.y" /* yacc.c:1648  */
 1665|      0|    { (yyval.exVal) = (yyvsp[-1].exVal); }
 1666|      0|#line 1667 "util_expr_parse.c" /* yacc.c:1648  */
 1667|      0|    break;
 1668|       |
 1669|      0|  case 45:
  ------------------
  |  Branch (1669:3): [True: 0, False: 186k]
  ------------------
 1670|      0|#line 181 "util_expr_parse.y" /* yacc.c:1648  */
 1671|      0|    { (yyval.exVal) = (yyvsp[-1].exVal); }
 1672|      0|#line 1673 "util_expr_parse.c" /* yacc.c:1648  */
 1673|      0|    break;
 1674|       |
 1675|  35.0k|  case 46:
  ------------------
  |  Branch (1675:3): [True: 35.0k, False: 151k]
  ------------------
 1676|  35.0k|#line 184 "util_expr_parse.y" /* yacc.c:1648  */
 1677|  35.0k|    { (yyval.exVal) = ap_expr_make(op_String, (yyvsp[0].cpVal), NULL, ctx); }
 1678|  35.0k|#line 1679 "util_expr_parse.c" /* yacc.c:1648  */
 1679|  35.0k|    break;
 1680|       |
 1681|  38.4k|  case 47:
  ------------------
  |  Branch (1681:3): [True: 38.4k, False: 148k]
  ------------------
 1682|  38.4k|#line 185 "util_expr_parse.y" /* yacc.c:1648  */
 1683|  38.4k|    { (yyval.exVal) = (yyvsp[0].exVal); }
 1684|  38.4k|#line 1685 "util_expr_parse.c" /* yacc.c:1648  */
 1685|  38.4k|    break;
 1686|       |
 1687|      0|  case 48:
  ------------------
  |  Branch (1687:3): [True: 0, False: 186k]
  ------------------
 1688|      0|#line 188 "util_expr_parse.y" /* yacc.c:1648  */
 1689|      0|    { (yyval.exVal) = ap_expr_var_make((yyvsp[-1].cpVal), ctx); }
 1690|      0|#line 1691 "util_expr_parse.c" /* yacc.c:1648  */
 1691|      0|    break;
 1692|       |
 1693|      0|  case 49:
  ------------------
  |  Branch (1693:3): [True: 0, False: 186k]
  ------------------
 1694|      0|#line 189 "util_expr_parse.y" /* yacc.c:1648  */
 1695|      0|    { (yyval.exVal) = ap_expr_str_func_make((yyvsp[-3].cpVal), (yyvsp[-1].exVal), ctx); }
 1696|      0|#line 1697 "util_expr_parse.c" /* yacc.c:1648  */
 1697|      0|    break;
 1698|       |
 1699|      0|  case 50:
  ------------------
  |  Branch (1699:3): [True: 0, False: 186k]
  ------------------
 1700|      0|#line 190 "util_expr_parse.y" /* yacc.c:1648  */
 1701|      0|    { (yyval.exVal) = ap_expr_make(op_Bool, (yyvsp[-1].exVal), NULL, ctx); }
 1702|      0|#line 1703 "util_expr_parse.c" /* yacc.c:1648  */
 1703|      0|    break;
 1704|       |
 1705|      0|  case 51:
  ------------------
  |  Branch (1705:3): [True: 0, False: 186k]
  ------------------
 1706|      0|#line 191 "util_expr_parse.y" /* yacc.c:1648  */
 1707|      0|    { (yyval.exVal) = ap_expr_make(op_Word, (yyvsp[-1].exVal), NULL, ctx); }
 1708|      0|#line 1709 "util_expr_parse.c" /* yacc.c:1648  */
 1709|      0|    break;
 1710|       |
 1711|  38.4k|  case 52:
  ------------------
  |  Branch (1711:3): [True: 38.4k, False: 148k]
  ------------------
 1712|  38.4k|#line 192 "util_expr_parse.y" /* yacc.c:1648  */
 1713|  38.4k|    { (yyval.exVal) = ap_expr_backref_make((yyvsp[0].num), ctx); }
 1714|  38.4k|#line 1715 "util_expr_parse.c" /* yacc.c:1648  */
 1715|  38.4k|    break;
 1716|       |
 1717|      0|  case 53:
  ------------------
  |  Branch (1717:3): [True: 0, False: 186k]
  ------------------
 1718|      0|#line 195 "util_expr_parse.y" /* yacc.c:1648  */
 1719|      0|    { (yyval.exVal) = ap_expr_str_func_make((yyvsp[-3].cpVal), (yyvsp[-1].exVal), ctx); }
 1720|      0|#line 1721 "util_expr_parse.c" /* yacc.c:1648  */
 1721|      0|    break;
 1722|       |
 1723|      0|  case 54:
  ------------------
  |  Branch (1723:3): [True: 0, False: 186k]
  ------------------
 1724|      0|#line 196 "util_expr_parse.y" /* yacc.c:1648  */
 1725|      0|    { (yyval.exVal) = ap_expr_str_func_make((yyvsp[-3].cpVal), (yyvsp[-1].exVal), ctx); }
 1726|      0|#line 1727 "util_expr_parse.c" /* yacc.c:1648  */
 1727|      0|    break;
 1728|       |
 1729|      0|  case 55:
  ------------------
  |  Branch (1729:3): [True: 0, False: 186k]
  ------------------
 1730|      0|#line 199 "util_expr_parse.y" /* yacc.c:1648  */
 1731|      0|    { (yyval.exVal) = ap_expr_list_func_make((yyvsp[-3].cpVal), (yyvsp[-1].exVal), ctx); }
 1732|      0|#line 1733 "util_expr_parse.c" /* yacc.c:1648  */
 1733|      0|    break;
 1734|       |
 1735|      0|  case 56:
  ------------------
  |  Branch (1735:3): [True: 0, False: 186k]
  ------------------
 1736|      0|#line 203 "util_expr_parse.y" /* yacc.c:1648  */
 1737|      0|    { (yyval.exVal) = ap_expr_make(op_Sub, (yyvsp[0].exVal), (yyvsp[-2].exVal), ctx); }
 1738|      0|#line 1739 "util_expr_parse.c" /* yacc.c:1648  */
 1739|      0|    break;
 1740|       |
 1741|      0|  case 57:
  ------------------
  |  Branch (1741:3): [True: 0, False: 186k]
  ------------------
 1742|      0|#line 204 "util_expr_parse.y" /* yacc.c:1648  */
 1743|      0|    { (yyval.exVal) = ap_expr_make(op_Sub, (yyvsp[-1].exVal), (yyvsp[-3].exVal), ctx); }
 1744|      0|#line 1745 "util_expr_parse.c" /* yacc.c:1648  */
 1745|      0|    break;
 1746|       |
 1747|      0|  case 58:
  ------------------
  |  Branch (1747:3): [True: 0, False: 186k]
  ------------------
 1748|      0|#line 207 "util_expr_parse.y" /* yacc.c:1648  */
 1749|      0|    { (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[0].exVal), NULL, ctx); }
 1750|      0|#line 1751 "util_expr_parse.c" /* yacc.c:1648  */
 1751|      0|    break;
 1752|       |
 1753|      0|  case 59:
  ------------------
  |  Branch (1753:3): [True: 0, False: 186k]
  ------------------
 1754|      0|#line 208 "util_expr_parse.y" /* yacc.c:1648  */
 1755|      0|    { (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[-1].exVal), NULL, ctx); }
 1756|      0|#line 1757 "util_expr_parse.c" /* yacc.c:1648  */
 1757|      0|    break;
 1758|       |
 1759|      0|  case 60:
  ------------------
  |  Branch (1759:3): [True: 0, False: 186k]
  ------------------
 1760|      0|#line 209 "util_expr_parse.y" /* yacc.c:1648  */
 1761|      0|    { (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[-2].exVal), (yyvsp[0].exVal),   ctx); }
 1762|      0|#line 1763 "util_expr_parse.c" /* yacc.c:1648  */
 1763|      0|    break;
 1764|       |
 1765|      0|  case 61:
  ------------------
  |  Branch (1765:3): [True: 0, False: 186k]
  ------------------
 1766|      0|#line 210 "util_expr_parse.y" /* yacc.c:1648  */
 1767|      0|    { (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[-3].exVal), (yyvsp[-1].exVal),   ctx); }
 1768|      0|#line 1769 "util_expr_parse.c" /* yacc.c:1648  */
 1769|      0|    break;
 1770|       |
 1771|      0|  case 62:
  ------------------
  |  Branch (1771:3): [True: 0, False: 186k]
  ------------------
 1772|      0|#line 213 "util_expr_parse.y" /* yacc.c:1648  */
 1773|      0|    { (yyval.exVal) = ap_expr_make(op_Split, (yyvsp[0].exVal), (yyvsp[-2].exVal), ctx); }
 1774|      0|#line 1775 "util_expr_parse.c" /* yacc.c:1648  */
 1775|      0|    break;
 1776|       |
 1777|      0|  case 63:
  ------------------
  |  Branch (1777:3): [True: 0, False: 186k]
  ------------------
 1778|      0|#line 214 "util_expr_parse.y" /* yacc.c:1648  */
 1779|      0|    { (yyval.exVal) = ap_expr_make(op_Split, (yyvsp[-1].exVal), (yyvsp[-3].exVal), ctx); }
 1780|      0|#line 1781 "util_expr_parse.c" /* yacc.c:1648  */
 1781|      0|    break;
 1782|       |
 1783|      0|  case 64:
  ------------------
  |  Branch (1783:3): [True: 0, False: 186k]
  ------------------
 1784|      0|#line 215 "util_expr_parse.y" /* yacc.c:1648  */
 1785|      0|    { (yyval.exVal) = ap_expr_make(op_Split, (yyvsp[0].exVal), (yyvsp[-2].exVal), ctx); }
 1786|      0|#line 1787 "util_expr_parse.c" /* yacc.c:1648  */
 1787|      0|    break;
 1788|       |
 1789|      0|  case 65:
  ------------------
  |  Branch (1789:3): [True: 0, False: 186k]
  ------------------
 1790|      0|#line 216 "util_expr_parse.y" /* yacc.c:1648  */
 1791|      0|    { (yyval.exVal) = ap_expr_make(op_Split, (yyvsp[-1].exVal), (yyvsp[-3].exVal), ctx); }
 1792|      0|#line 1793 "util_expr_parse.c" /* yacc.c:1648  */
 1793|      0|    break;
 1794|       |
 1795|      0|  case 66:
  ------------------
  |  Branch (1795:3): [True: 0, False: 186k]
  ------------------
 1796|      0|#line 219 "util_expr_parse.y" /* yacc.c:1648  */
 1797|      0|    { (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[0].exVal), NULL, ctx); }
 1798|      0|#line 1799 "util_expr_parse.c" /* yacc.c:1648  */
 1799|      0|    break;
 1800|       |
 1801|      0|  case 67:
  ------------------
  |  Branch (1801:3): [True: 0, False: 186k]
  ------------------
 1802|      0|#line 220 "util_expr_parse.y" /* yacc.c:1648  */
 1803|      0|    { (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[-2].exVal), (yyvsp[0].exVal),   ctx); }
 1804|      0|#line 1805 "util_expr_parse.c" /* yacc.c:1648  */
 1805|      0|    break;
 1806|       |
 1807|      0|  case 68:
  ------------------
  |  Branch (1807:3): [True: 0, False: 186k]
  ------------------
 1808|      0|#line 223 "util_expr_parse.y" /* yacc.c:1648  */
 1809|      0|    {
 1810|      0|                ap_expr_t *e = ap_expr_regex_make((yyvsp[-1].cpVal), NULL, (yyvsp[0].cpVal), ctx);
 1811|      0|                if (!e) {
  ------------------
  |  Branch (1811:21): [True: 0, False: 0]
  ------------------
 1812|      0|                    ctx->error = "Failed to compile regular expression";
 1813|      0|                    YYERROR;
  ------------------
  |  |  739|      0|#define YYERROR         goto yyerrorlab
  ------------------
 1814|      0|                }
 1815|      0|                (yyval.exVal) = e;
 1816|      0|            }
 1817|      0|#line 1818 "util_expr_parse.c" /* yacc.c:1648  */
 1818|      0|    break;
 1819|       |
 1820|      0|  case 69:
  ------------------
  |  Branch (1820:3): [True: 0, False: 186k]
  ------------------
 1821|      0|#line 232 "util_expr_parse.y" /* yacc.c:1648  */
 1822|      0|    {
 1823|      0|                ap_expr_t *e = ap_expr_regex_make((yyvsp[-2].cpVal), (yyvsp[-1].exVal), (yyvsp[0].cpVal), ctx);
 1824|      0|                if (!e) {
  ------------------
  |  Branch (1824:21): [True: 0, False: 0]
  ------------------
 1825|      0|                    ctx->error = "Failed to compile regular expression";
 1826|      0|                    YYERROR;
  ------------------
  |  |  739|      0|#define YYERROR         goto yyerrorlab
  ------------------
 1827|      0|                }
 1828|      0|                (yyval.exVal) = e;
 1829|      0|            }
 1830|      0|#line 1831 "util_expr_parse.c" /* yacc.c:1648  */
 1831|      0|    break;
 1832|       |
 1833|      0|  case 70:
  ------------------
  |  Branch (1833:3): [True: 0, False: 186k]
  ------------------
 1834|      0|#line 241 "util_expr_parse.y" /* yacc.c:1648  */
 1835|      0|    { (yyval.exVal) = (yyvsp[0].exVal); }
 1836|      0|#line 1837 "util_expr_parse.c" /* yacc.c:1648  */
 1837|      0|    break;
 1838|       |
 1839|      0|  case 71:
  ------------------
  |  Branch (1839:3): [True: 0, False: 186k]
  ------------------
 1840|      0|#line 242 "util_expr_parse.y" /* yacc.c:1648  */
 1841|      0|    { (yyval.exVal) = (yyvsp[0].exVal); }
 1842|      0|#line 1843 "util_expr_parse.c" /* yacc.c:1648  */
 1843|      0|    break;
 1844|       |
 1845|       |
 1846|      0|#line 1847 "util_expr_parse.c" /* yacc.c:1648  */
 1847|      0|      default: break;
  ------------------
  |  Branch (1847:7): [True: 0, False: 186k]
  ------------------
 1848|   186k|    }
 1849|       |  /* User semantic actions sometimes alter yychar, and that requires
 1850|       |     that yytoken be updated with the new translation.  We take the
 1851|       |     approach of translating immediately before every use of yytoken.
 1852|       |     One alternative is translating here after every semantic action,
 1853|       |     but that translation would be missed if the semantic action invokes
 1854|       |     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
 1855|       |     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
 1856|       |     incorrect destructor might then be invoked immediately.  In the
 1857|       |     case of YYERROR or YYBACKUP, subsequent parser actions might lead
 1858|       |     to an incorrect destructor call or verbose syntax error message
 1859|       |     before the lookahead is translated.  */
 1860|   186k|  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
 1861|       |
 1862|   186k|  YYPOPSTACK (yylen);
  ------------------
  |  | 1217|   186k|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  ------------------
 1863|   186k|  yylen = 0;
 1864|   186k|  YY_STACK_PRINT (yyss, yyssp);
 1865|       |
 1866|   186k|  *++yyvsp = yyval;
 1867|       |
 1868|       |  /* Now 'shift' the result of the reduction.  Determine what state
 1869|       |     that goes to, based on the state we popped back to and the rule
 1870|       |     number reduced by.  */
 1871|       |
 1872|   186k|  yyn = yyr1[yyn];
 1873|       |
 1874|   186k|  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
  ------------------
  |  |  435|   186k|#define YYNTOKENS  53
  ------------------
 1875|   186k|  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
  ------------------
  |  |  432|   297k|#define YYLAST   274
  ------------------
  |  Branch (1875:7): [True: 110k, False: 76.1k]
  |  Branch (1875:23): [True: 110k, False: 0]
  |  Branch (1875:44): [True: 110k, False: 0]
  ------------------
 1876|   110k|    yystate = yytable[yystate];
 1877|  76.1k|  else
 1878|  76.1k|    yystate = yydefgoto[yyn - YYNTOKENS];
  ------------------
  |  |  435|  76.1k|#define YYNTOKENS  53
  ------------------
 1879|       |
 1880|   186k|  goto yynewstate;
 1881|       |
 1882|       |
 1883|       |/*--------------------------------------.
 1884|       || yyerrlab -- here on detecting error.  |
 1885|       |`--------------------------------------*/
 1886|      8|yyerrlab:
 1887|       |  /* Make sure we have latest lookahead translation.  See comments at
 1888|       |     user semantic actions for why this is necessary.  */
 1889|      8|  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
  ------------------
  |  |  734|      8|#define YYEMPTY         (-2)
  ------------------
                yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
  ------------------
  |  |  734|      0|#define YYEMPTY         (-2)
  ------------------
                yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
  ------------------
  |  |  449|     16|  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
  |  |  ------------------
  |  |  |  |  446|      8|#define YYMAXUTOK   301
  |  |  ------------------
  |  |                 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
  |  |  ------------------
  |  |  |  |  445|      0|#define YYUNDEFTOK  2
  |  |  ------------------
  |  |  |  Branch (449:4): [True: 8, False: 0]
  |  |  ------------------
  ------------------
  |  Branch (1889:13): [True: 0, False: 8]
  ------------------
 1890|       |
 1891|       |  /* If not already recovering from an error, report this error.  */
 1892|      8|  if (!yyerrstatus)
  ------------------
  |  Branch (1892:7): [True: 8, False: 0]
  ------------------
 1893|      8|    {
 1894|      8|      ++yynerrs;
  ------------------
  |  |   67|      8|#define yynerrs         ap_expr_yynerrs
  ------------------
 1895|       |#if ! YYERROR_VERBOSE
 1896|       |      yyerror (ctx, YY_("syntax error"));
 1897|       |#else
 1898|      8|# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
 1899|      8|                                        yyssp, yytoken)
 1900|      8|      {
 1901|      8|        char const *yymsgp = YY_("syntax error");
  ------------------
  |  |  243|      8|#  define YY_(Msgid) Msgid
  ------------------
 1902|      8|        int yysyntax_error_status;
 1903|      8|        yysyntax_error_status = YYSYNTAX_ERROR;
  ------------------
  |  | 1898|      8|# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
  |  | 1899|      8|                                        yyssp, yytoken)
  ------------------
 1904|      8|        if (yysyntax_error_status == 0)
  ------------------
  |  Branch (1904:13): [True: 8, False: 0]
  ------------------
 1905|      8|          yymsgp = yymsg;
 1906|      0|        else if (yysyntax_error_status == 1)
  ------------------
  |  Branch (1906:18): [True: 0, False: 0]
  ------------------
 1907|      0|          {
 1908|      0|            if (yymsg != yymsgbuf)
  ------------------
  |  Branch (1908:17): [True: 0, False: 0]
  ------------------
 1909|      0|              YYSTACK_FREE (yymsg);
  ------------------
  |  |  341|      0|#  define YYSTACK_FREE YYFREE
  |  |  ------------------
  |  |  |  |  360|      0|#   define YYFREE free
  |  |  ------------------
  ------------------
 1910|      0|            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
  ------------------
  |  |  340|      0|#  define YYSTACK_ALLOC YYMALLOC
  |  |  ------------------
  |  |  |  |  354|      0|#   define YYMALLOC malloc
  |  |  ------------------
  ------------------
 1911|      0|            if (!yymsg)
  ------------------
  |  Branch (1911:17): [True: 0, False: 0]
  ------------------
 1912|      0|              {
 1913|      0|                yymsg = yymsgbuf;
 1914|      0|                yymsg_alloc = sizeof yymsgbuf;
 1915|      0|                yysyntax_error_status = 2;
 1916|      0|              }
 1917|      0|            else
 1918|      0|              {
 1919|      0|                yysyntax_error_status = YYSYNTAX_ERROR;
  ------------------
  |  | 1898|      0|# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
  |  | 1899|      0|                                        yyssp, yytoken)
  ------------------
 1920|      0|                yymsgp = yymsg;
 1921|      0|              }
 1922|      0|          }
 1923|      8|        yyerror (ctx, yymsgp);
  ------------------
  |  |   65|      8|#define yyerror         ap_expr_yyerror
  ------------------
 1924|      8|        if (yysyntax_error_status == 2)
  ------------------
  |  Branch (1924:13): [True: 0, False: 8]
  ------------------
 1925|      0|          goto yyexhaustedlab;
 1926|      8|      }
 1927|      8|# undef YYSYNTAX_ERROR
 1928|      8|#endif
 1929|      8|    }
 1930|       |
 1931|       |
 1932|       |
 1933|      8|  if (yyerrstatus == 3)
  ------------------
  |  Branch (1933:7): [True: 0, False: 8]
  ------------------
 1934|      0|    {
 1935|       |      /* If just tried and failed to reuse lookahead token after an
 1936|       |         error, discard it.  */
 1937|       |
 1938|      0|      if (yychar <= YYEOF)
  ------------------
  |  |  735|      0|#define YYEOF           0
  ------------------
  |  Branch (1938:11): [True: 0, False: 0]
  ------------------
 1939|      0|        {
 1940|       |          /* Return failure if at end of input.  */
 1941|      0|          if (yychar == YYEOF)
  ------------------
  |  |  735|      0|#define YYEOF           0
  ------------------
  |  Branch (1941:15): [True: 0, False: 0]
  ------------------
 1942|      0|            YYABORT;
  ------------------
  |  |  738|      0|#define YYABORT         goto yyabortlab
  ------------------
 1943|      0|        }
 1944|      0|      else
 1945|      0|        {
 1946|      0|          yydestruct ("Error: discarding",
 1947|      0|                      yytoken, &yylval, ctx);
 1948|      0|          yychar = YYEMPTY;
  ------------------
  |  |  734|      0|#define YYEMPTY         (-2)
  ------------------
 1949|      0|        }
 1950|      0|    }
 1951|       |
 1952|       |  /* Else will try to reuse lookahead token after shifting the error
 1953|       |     token.  */
 1954|      8|  goto yyerrlab1;
 1955|       |
 1956|       |
 1957|       |/*---------------------------------------------------.
 1958|       || yyerrorlab -- error raised explicitly by YYERROR.  |
 1959|       |`---------------------------------------------------*/
 1960|      8|yyerrorlab:
 1961|       |
 1962|       |  /* Pacify compilers like GCC when the user code never invokes
 1963|       |     YYERROR and the label yyerrorlab therefore never appears in user
 1964|       |     code.  */
 1965|      0|  if (/*CONSTCOND*/ 0)
  ------------------
  |  Branch (1965:21): [Folded - Ignored]
  ------------------
 1966|      0|     goto yyerrorlab;
 1967|       |
 1968|       |  /* Do not reclaim the symbols of the rule whose action triggered
 1969|       |     this YYERROR.  */
 1970|      0|  YYPOPSTACK (yylen);
  ------------------
  |  | 1217|      0|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  ------------------
 1971|      0|  yylen = 0;
 1972|      0|  YY_STACK_PRINT (yyss, yyssp);
 1973|      0|  yystate = *yyssp;
 1974|      0|  goto yyerrlab1;
 1975|       |
 1976|       |
 1977|       |/*-------------------------------------------------------------.
 1978|       || yyerrlab1 -- common code for both syntax error and YYERROR.  |
 1979|       |`-------------------------------------------------------------*/
 1980|      8|yyerrlab1:
 1981|      8|  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
 1982|       |
 1983|      8|  for (;;)
 1984|     16|    {
 1985|     16|      yyn = yypact[yystate];
 1986|     16|      if (!yypact_value_is_default (yyn))
  ------------------
  |  |  550|     16|  (!!((Yystate) == (-38)))
  ------------------
  |  Branch (1986:11): [True: 16, False: 0]
  ------------------
 1987|     16|        {
 1988|     16|          yyn += YYTERROR;
  ------------------
  |  |  762|     16|#define YYTERROR        1
  ------------------
 1989|     16|          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
  ------------------
  |  |  432|     32|#define YYLAST   274
  ------------------
                        if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
  ------------------
  |  |  762|     16|#define YYTERROR        1
  ------------------
  |  Branch (1989:15): [True: 16, False: 0]
  |  Branch (1989:27): [True: 16, False: 0]
  |  Branch (1989:44): [True: 0, False: 16]
  ------------------
 1990|      0|            {
 1991|      0|              yyn = yytable[yyn];
 1992|      0|              if (0 < yyn)
  ------------------
  |  Branch (1992:19): [True: 0, False: 0]
  ------------------
 1993|      0|                break;
 1994|      0|            }
 1995|     16|        }
 1996|       |
 1997|       |      /* Pop the current state because it cannot handle the error token.  */
 1998|     16|      if (yyssp == yyss)
  ------------------
  |  Branch (1998:11): [True: 8, False: 8]
  ------------------
 1999|      8|        YYABORT;
  ------------------
  |  |  738|      8|#define YYABORT         goto yyabortlab
  ------------------
 2000|       |
 2001|       |
 2002|      8|      yydestruct ("Error: popping",
 2003|      8|                  yystos[yystate], yyvsp, ctx);
 2004|      8|      YYPOPSTACK (1);
  ------------------
  |  | 1217|      8|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  ------------------
 2005|      8|      yystate = *yyssp;
 2006|      8|      YY_STACK_PRINT (yyss, yyssp);
 2007|      8|    }
 2008|       |
 2009|      0|  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 2010|      0|  *++yyvsp = yylval;
 2011|      0|  YY_IGNORE_MAYBE_UNINITIALIZED_END
 2012|       |
 2013|       |
 2014|       |  /* Shift the error token.  */
 2015|      0|  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
 2016|       |
 2017|      0|  yystate = yyn;
 2018|      0|  goto yynewstate;
 2019|       |
 2020|       |
 2021|       |/*-------------------------------------.
 2022|       || yyacceptlab -- YYACCEPT comes here.  |
 2023|       |`-------------------------------------*/
 2024|  1.36k|yyacceptlab:
 2025|  1.36k|  yyresult = 0;
 2026|  1.36k|  goto yyreturn;
 2027|       |
 2028|       |/*-----------------------------------.
 2029|       || yyabortlab -- YYABORT comes here.  |
 2030|       |`-----------------------------------*/
 2031|    168|yyabortlab:
 2032|    168|  yyresult = 1;
 2033|    168|  goto yyreturn;
 2034|       |
 2035|      0|#if !defined yyoverflow || YYERROR_VERBOSE
 2036|       |/*-------------------------------------------------.
 2037|       || yyexhaustedlab -- memory exhaustion comes here.  |
 2038|       |`-------------------------------------------------*/
 2039|      0|yyexhaustedlab:
 2040|      0|  yyerror (ctx, YY_("memory exhausted"));
  ------------------
  |  |   65|      0|#define yyerror         ap_expr_yyerror
  ------------------
                yyerror (ctx, YY_("memory exhausted"));
  ------------------
  |  |  243|      0|#  define YY_(Msgid) Msgid
  ------------------
 2041|      0|  yyresult = 2;
 2042|       |  /* Fall through.  */
 2043|      0|#endif
 2044|       |
 2045|  1.52k|yyreturn:
 2046|  1.52k|  if (yychar != YYEMPTY)
  ------------------
  |  |  734|  1.52k|#define YYEMPTY         (-2)
  ------------------
  |  Branch (2046:7): [True: 8, False: 1.52k]
  ------------------
 2047|      8|    {
 2048|       |      /* Make sure we have latest lookahead translation.  See comments at
 2049|       |         user semantic actions for why this is necessary.  */
 2050|      8|      yytoken = YYTRANSLATE (yychar);
  ------------------
  |  |  449|      8|  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
  |  |  ------------------
  |  |  |  |  446|      8|#define YYMAXUTOK   301
  |  |  ------------------
  |  |                 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
  |  |  ------------------
  |  |  |  |  445|      0|#define YYUNDEFTOK  2
  |  |  ------------------
  |  |  |  Branch (449:4): [True: 8, False: 0]
  |  |  ------------------
  ------------------
 2051|      8|      yydestruct ("Cleanup: discarding lookahead",
 2052|      8|                  yytoken, &yylval, ctx);
 2053|      8|    }
 2054|       |  /* Do not reclaim the symbols of the rule whose action triggered
 2055|       |     this YYABORT or YYACCEPT.  */
 2056|  1.52k|  YYPOPSTACK (yylen);
  ------------------
  |  | 1217|  1.52k|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  ------------------
 2057|  1.52k|  YY_STACK_PRINT (yyss, yyssp);
 2058|  4.41k|  while (yyssp != yyss)
  ------------------
  |  Branch (2058:10): [True: 2.88k, False: 1.52k]
  ------------------
 2059|  2.88k|    {
 2060|  2.88k|      yydestruct ("Cleanup: popping",
 2061|  2.88k|                  yystos[*yyssp], yyvsp, ctx);
 2062|  2.88k|      YYPOPSTACK (1);
  ------------------
  |  | 1217|  2.88k|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  ------------------
 2063|  2.88k|    }
 2064|  1.52k|#ifndef yyoverflow
 2065|  1.52k|  if (yyss != yyssa)
  ------------------
  |  Branch (2065:7): [True: 0, False: 1.52k]
  ------------------
 2066|      0|    YYSTACK_FREE (yyss);
  ------------------
  |  |  341|      0|#  define YYSTACK_FREE YYFREE
  |  |  ------------------
  |  |  |  |  360|      0|#   define YYFREE free
  |  |  ------------------
  ------------------
 2067|  1.52k|#endif
 2068|  1.52k|#if YYERROR_VERBOSE
 2069|  1.52k|  if (yymsg != yymsgbuf)
  ------------------
  |  Branch (2069:7): [True: 0, False: 1.52k]
  ------------------
 2070|      0|    YYSTACK_FREE (yymsg);
  ------------------
  |  |  341|      0|#  define YYSTACK_FREE YYFREE
  |  |  ------------------
  |  |  |  |  360|      0|#   define YYFREE free
  |  |  ------------------
  ------------------
 2071|  1.52k|#endif
 2072|  1.52k|  return yyresult;
 2073|      0|}
ap_expr_yyerror:
 2078|      8|{
 2079|       |    /* s is allocated on the stack */
 2080|      8|    ctx->error = apr_pstrdup(ctx->ptemp, s);
 2081|      8|}
util_expr_parse.c:yysyntax_error:
 1012|      8|{
 1013|      8|  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
  ------------------
  |  |  222|      8|#  define YYSIZE_T __SIZE_TYPE__
  ------------------
                YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
  ------------------
  |  |   81|      8|#   define YY_NULLPTR 0
  ------------------
 1014|      8|  YYSIZE_T yysize = yysize0;
  ------------------
  |  |  222|      8|#  define YYSIZE_T __SIZE_TYPE__
  ------------------
 1015|      8|  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
 1016|       |  /* Internationalized format string. */
 1017|      8|  const char *yyformat = YY_NULLPTR;
  ------------------
  |  |   81|      8|#   define YY_NULLPTR 0
  ------------------
 1018|       |  /* Arguments of yyformat. */
 1019|      8|  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
 1020|       |  /* Number of reported tokens (one for the "unexpected", one per
 1021|       |     "expected"). */
 1022|      8|  int yycount = 0;
 1023|       |
 1024|       |  /* There are many possibilities here to consider:
 1025|       |     - If this state is a consistent state with a default action, then
 1026|       |       the only way this function was invoked is if the default action
 1027|       |       is an error action.  In that case, don't check for expected
 1028|       |       tokens because there are none.
 1029|       |     - The only way there can be no lookahead present (in yychar) is if
 1030|       |       this state is a consistent state with a default action.  Thus,
 1031|       |       detecting the absence of a lookahead is sufficient to determine
 1032|       |       that there is no unexpected or expected token to report.  In that
 1033|       |       case, just report a simple "syntax error".
 1034|       |     - Don't assume there isn't a lookahead just because this state is a
 1035|       |       consistent state with a default action.  There might have been a
 1036|       |       previous inconsistent state, consistent state with a non-default
 1037|       |       action, or user semantic action that manipulated yychar.
 1038|       |     - Of course, the expected token list depends on states to have
 1039|       |       correct lookahead information, and it depends on the parser not
 1040|       |       to perform extra reductions after fetching a lookahead from the
 1041|       |       scanner and before detecting a syntax error.  Thus, state merging
 1042|       |       (from LALR or IELR) and default reductions corrupt the expected
 1043|       |       token list.  However, the list is correct for canonical LR with
 1044|       |       one exception: it will still contain any token that will not be
 1045|       |       accepted due to an error action in a later state.
 1046|       |  */
 1047|      8|  if (yytoken != YYEMPTY)
  ------------------
  |  |  734|      8|#define YYEMPTY         (-2)
  ------------------
  |  Branch (1047:7): [True: 8, False: 0]
  ------------------
 1048|      8|    {
 1049|      8|      int yyn = yypact[*yyssp];
 1050|      8|      yyarg[yycount++] = yytname[yytoken];
 1051|      8|      if (!yypact_value_is_default (yyn))
  ------------------
  |  |  550|      8|  (!!((Yystate) == (-38)))
  ------------------
  |  Branch (1051:11): [True: 8, False: 0]
  ------------------
 1052|      8|        {
 1053|       |          /* Start YYX at -YYN if negative to avoid negative indexes in
 1054|       |             YYCHECK.  In other words, skip the first -YYN actions for
 1055|       |             this state because they are default actions.  */
 1056|      8|          int yyxbegin = yyn < 0 ? -yyn : 0;
  ------------------
  |  Branch (1056:26): [True: 0, False: 8]
  ------------------
 1057|       |          /* Stay within bounds of both yycheck and yytname.  */
 1058|      8|          int yychecklim = YYLAST - yyn + 1;
  ------------------
  |  |  432|      8|#define YYLAST   274
  ------------------
 1059|      8|          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
  ------------------
  |  |  435|      8|#define YYNTOKENS  53
  ------------------
                        int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
  ------------------
  |  |  435|      8|#define YYNTOKENS  53
  ------------------
  |  Branch (1059:24): [True: 0, False: 8]
  ------------------
 1060|      8|          int yyx;
 1061|       |
 1062|    432|          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
  ------------------
  |  Branch (1062:32): [True: 424, False: 8]
  ------------------
 1063|    424|            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
  ------------------
  |  |  762|    432|#define YYTERROR        1
  ------------------
  |  Branch (1063:17): [True: 8, False: 416]
  |  Branch (1063:46): [True: 8, False: 0]
  ------------------
 1064|    424|                && !yytable_value_is_error (yytable[yyx + yyn]))
  ------------------
  |  |  555|      0|  0
  ------------------
  |  Branch (1064:20): [Folded - Ignored]
  ------------------
 1065|      8|              {
 1066|      8|                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
  ------------------
  |  Branch (1066:21): [True: 0, False: 8]
  ------------------
 1067|      0|                  {
 1068|      0|                    yycount = 1;
 1069|      0|                    yysize = yysize0;
 1070|      0|                    break;
 1071|      0|                  }
 1072|      8|                yyarg[yycount++] = yytname[yyx];
 1073|      8|                {
 1074|      8|                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
  ------------------
  |  |  222|      8|#  define YYSIZE_T __SIZE_TYPE__
  ------------------
                                YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
  ------------------
  |  |   81|      8|#   define YY_NULLPTR 0
  ------------------
 1075|      8|                  if (! (yysize <= yysize1
  ------------------
  |  Branch (1075:26): [True: 8, False: 0]
  ------------------
 1076|      8|                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
  ------------------
  |  |  343|      8|#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
  |  |  ------------------
  |  |  |  |  233|      8|#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
  |  |  ------------------
  ------------------
  |  Branch (1076:29): [True: 8, False: 0]
  ------------------
 1077|      0|                    return 2;
 1078|      8|                  yysize = yysize1;
 1079|      8|                }
 1080|      8|              }
 1081|      8|        }
 1082|      8|    }
 1083|       |
 1084|      8|  switch (yycount)
 1085|      8|    {
 1086|      0|# define YYCASE_(N, S)                      \
 1087|      0|      case N:                               \
 1088|      0|        yyformat = S;                       \
 1089|      0|      break
 1090|      0|    default: /* Avoid compiler warnings. */
  ------------------
  |  Branch (1090:5): [True: 0, False: 8]
  ------------------
 1091|      0|      YYCASE_(0, YY_("syntax error"));
  ------------------
  |  | 1087|      0|      case N:                               \
  |  |  ------------------
  |  |  |  Branch (1087:7): [True: 0, False: 8]
  |  |  ------------------
  |  | 1088|      0|        yyformat = S;                       \
  |  | 1089|      0|      break
  ------------------
 1092|      0|      YYCASE_(1, YY_("syntax error, unexpected %s"));
  ------------------
  |  | 1087|      0|      case N:                               \
  |  |  ------------------
  |  |  |  Branch (1087:7): [True: 0, False: 8]
  |  |  ------------------
  |  | 1088|      0|        yyformat = S;                       \
  |  | 1089|      0|      break
  ------------------
 1093|      8|      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
  ------------------
  |  | 1087|      8|      case N:                               \
  |  |  ------------------
  |  |  |  Branch (1087:7): [True: 8, False: 0]
  |  |  ------------------
  |  | 1088|      8|        yyformat = S;                       \
  |  | 1089|      8|      break
  ------------------
 1094|      0|      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
  ------------------
  |  | 1087|      0|      case N:                               \
  |  |  ------------------
  |  |  |  Branch (1087:7): [True: 0, False: 8]
  |  |  ------------------
  |  | 1088|      0|        yyformat = S;                       \
  |  | 1089|      0|      break
  ------------------
 1095|      0|      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
  ------------------
  |  | 1087|      0|      case N:                               \
  |  |  ------------------
  |  |  |  Branch (1087:7): [True: 0, False: 8]
  |  |  ------------------
  |  | 1088|      0|        yyformat = S;                       \
  |  | 1089|      0|      break
  ------------------
 1096|      8|      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
  ------------------
  |  | 1087|      0|      case N:                               \
  |  |  ------------------
  |  |  |  Branch (1087:7): [True: 0, False: 8]
  |  |  ------------------
  |  | 1088|      0|        yyformat = S;                       \
  |  | 1089|      0|      break
  ------------------
 1097|      8|# undef YYCASE_
 1098|      8|    }
 1099|       |
 1100|      8|  {
 1101|      8|    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
  ------------------
  |  |  222|      8|#  define YYSIZE_T __SIZE_TYPE__
  ------------------
                  YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
  ------------------
  |  |  919|      8|#   define yystrlen strlen
  ------------------
 1102|      8|    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
  ------------------
  |  |  343|      8|#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
  |  |  ------------------
  |  |  |  |  233|      8|#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
  |  |  ------------------
  ------------------
  |  Branch (1102:12): [True: 8, False: 0]
  |  Branch (1102:33): [True: 8, False: 0]
  ------------------
 1103|      0|      return 2;
 1104|      8|    yysize = yysize1;
 1105|      8|  }
 1106|       |
 1107|      8|  if (*yymsg_alloc < yysize)
  ------------------
  |  Branch (1107:7): [True: 0, False: 8]
  ------------------
 1108|      0|    {
 1109|      0|      *yymsg_alloc = 2 * yysize;
 1110|      0|      if (! (yysize <= *yymsg_alloc
  ------------------
  |  Branch (1110:14): [True: 0, False: 0]
  ------------------
 1111|      0|             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
  ------------------
  |  |  343|      0|#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
  |  |  ------------------
  |  |  |  |  233|      0|#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
  |  |  ------------------
  ------------------
  |  Branch (1111:17): [True: 0, False: 0]
  ------------------
 1112|      0|        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
  ------------------
  |  |  343|      0|#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
  |  |  ------------------
  |  |  |  |  233|      0|#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
  |  |  ------------------
  ------------------
 1113|      0|      return 1;
 1114|      0|    }
 1115|       |
 1116|       |  /* Avoid sprintf, as that infringes on the user's name space.
 1117|       |     Don't have undefined behavior even if the translation
 1118|       |     produced a string with the wrong number of "%s"s.  */
 1119|      8|  {
 1120|      8|    char *yyp = *yymsg;
 1121|      8|    int yyi = 0;
 1122|    320|    while ((*yyp = *yyformat) != '\0')
  ------------------
  |  Branch (1122:12): [True: 312, False: 8]
  ------------------
 1123|    312|      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
  ------------------
  |  Branch (1123:11): [True: 16, False: 296]
  |  Branch (1123:26): [True: 16, False: 0]
  |  Branch (1123:48): [True: 16, False: 0]
  ------------------
 1124|     16|        {
 1125|     16|          yyp += yytnamerr (yyp, yyarg[yyi++]);
 1126|     16|          yyformat += 2;
 1127|     16|        }
 1128|    296|      else
 1129|    296|        {
 1130|    296|          yyp++;
 1131|    296|          yyformat++;
 1132|    296|        }
 1133|      8|  }
 1134|      8|  return 0;
 1135|      8|}
util_expr_parse.c:yytnamerr:
  963|     32|{
  964|     32|  if (*yystr == '"')
  ------------------
  |  Branch (964:7): [True: 16, False: 16]
  ------------------
  965|     16|    {
  966|     16|      YYSIZE_T yyn = 0;
  ------------------
  |  |  222|     16|#  define YYSIZE_T __SIZE_TYPE__
  ------------------
  967|     16|      char const *yyp = yystr;
  968|       |
  969|     16|      for (;;)
  970|    192|        switch (*++yyp)
  971|    192|          {
  972|      0|          case '\'':
  ------------------
  |  Branch (972:11): [True: 0, False: 192]
  ------------------
  973|      0|          case ',':
  ------------------
  |  Branch (973:11): [True: 0, False: 192]
  ------------------
  974|      0|            goto do_not_strip_quotes;
  975|       |
  976|      0|          case '\\':
  ------------------
  |  Branch (976:11): [True: 0, False: 192]
  ------------------
  977|      0|            if (*++yyp != '\\')
  ------------------
  |  Branch (977:17): [True: 0, False: 0]
  ------------------
  978|      0|              goto do_not_strip_quotes;
  979|       |            /* Fall through.  */
  980|    176|          default:
  ------------------
  |  Branch (980:11): [True: 176, False: 16]
  ------------------
  981|    176|            if (yyres)
  ------------------
  |  Branch (981:17): [True: 88, False: 88]
  ------------------
  982|     88|              yyres[yyn] = *yyp;
  983|    176|            yyn++;
  984|    176|            break;
  985|       |
  986|     16|          case '"':
  ------------------
  |  Branch (986:11): [True: 16, False: 176]
  ------------------
  987|     16|            if (yyres)
  ------------------
  |  Branch (987:17): [True: 8, False: 8]
  ------------------
  988|      8|              yyres[yyn] = '\0';
  989|     16|            return yyn;
  990|    192|          }
  991|      0|    do_not_strip_quotes: ;
  992|      0|    }
  993|       |
  994|     16|  if (! yyres)
  ------------------
  |  Branch (994:7): [True: 8, False: 8]
  ------------------
  995|      8|    return yystrlen (yystr);
  ------------------
  |  |  919|      8|#   define yystrlen strlen
  ------------------
  996|       |
  997|      8|  return yystpcpy (yyres, yystr) - yyres;
  ------------------
  |  |  935|      8|#   define yystpcpy stpcpy
  ------------------
  998|     16|}
util_expr_parse.c:yydestruct:
 1144|  2.89k|{
 1145|  2.89k|  YYUSE (yyvaluep);
  ------------------
  |  |  276|  2.89k|# define YYUSE(E) ((void) (E))
  ------------------
 1146|  2.89k|  YYUSE (ctx);
  ------------------
  |  |  276|  2.89k|# define YYUSE(E) ((void) (E))
  ------------------
 1147|  2.89k|  if (!yymsg)
  ------------------
  |  Branch (1147:7): [True: 0, False: 2.89k]
  ------------------
 1148|      0|    yymsg = "Deleting";
 1149|  2.89k|  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
 1150|       |
 1151|  2.89k|  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 1152|  2.89k|  YYUSE (yytype);
  ------------------
  |  |  276|  2.89k|# define YYUSE(E) ((void) (E))
  ------------------
 1153|  2.89k|  YY_IGNORE_MAYBE_UNINITIALIZED_END
 1154|  2.89k|}

ap_expr_yylex:
  972|  76.5k|{
  973|  76.5k|	yy_state_type yy_current_state;
  974|  76.5k|	char *yy_cp, *yy_bp;
  975|  76.5k|	int yy_act;
  976|  76.5k|    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
  977|       |
  978|  76.5k|    yylval = yylval_param;
  ------------------
  |  |  786|  76.5k|    #    define yylval yyg->yylval_r
  ------------------
  979|       |
  980|  76.5k|	if ( !yyg->yy_init )
  ------------------
  |  Branch (980:7): [True: 1.52k, False: 74.9k]
  ------------------
  981|  1.52k|		{
  982|  1.52k|		yyg->yy_init = 1;
  983|       |
  984|       |#ifdef YY_USER_INIT
  985|       |		YY_USER_INIT;
  986|       |#endif
  987|       |
  988|  1.52k|		if ( ! yyg->yy_start )
  ------------------
  |  Branch (988:8): [True: 1.52k, False: 0]
  ------------------
  989|  1.52k|			yyg->yy_start = 1;	/* first start state */
  990|       |
  991|  1.52k|		if ( ! yyin )
  ------------------
  |  |  118|  1.52k|#define yyin yyg->yyin_r
  ------------------
  |  Branch (991:8): [True: 1.52k, False: 0]
  ------------------
  992|  1.52k|			yyin = stdin;
  ------------------
  |  |  118|  1.52k|#define yyin yyg->yyin_r
  ------------------
  993|       |
  994|  1.52k|		if ( ! yyout )
  ------------------
  |  |  119|  1.52k|#define yyout yyg->yyout_r
  ------------------
  |  Branch (994:8): [True: 1.52k, False: 0]
  ------------------
  995|  1.52k|			yyout = stdout;
  ------------------
  |  |  119|  1.52k|#define yyout yyg->yyout_r
  ------------------
  996|       |
  997|  1.52k|		if ( ! YY_CURRENT_BUFFER ) {
  ------------------
  |  |  269|  1.52k|#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
  |  |  ------------------
  |  |  |  Branch (269:29): [True: 0, False: 1.52k]
  |  |  ------------------
  |  |  270|  1.52k|                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
  |  |  271|  1.52k|                          : NULL)
  ------------------
  |  Branch (997:8): [True: 1.52k, False: 0]
  ------------------
  998|  1.52k|			ap_expr_yyensure_buffer_stack (yyscanner);
  999|  1.52k|			YY_CURRENT_BUFFER_LVALUE =
  ------------------
  |  |  276|  1.52k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 1000|  1.52k|				ap_expr_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
  ------------------
  |  |  118|  1.52k|#define yyin yyg->yyin_r
  ------------------
              				ap_expr_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
  ------------------
  |  |  157|  1.52k|#define YY_BUF_SIZE 16384
  ------------------
 1001|  1.52k|		}
 1002|       |
 1003|  1.52k|		ap_expr_yy_load_buffer_state(yyscanner );
 1004|  1.52k|		}
 1005|       |
 1006|  76.5k|	{
 1007|  76.5k|#line 179 "util_expr_scan.l"
 1008|       |
 1009|       |
 1010|       |
 1011|       | /*
 1012|       |  * Set initial state for string expressions
 1013|       |  */
 1014|  76.5k|  if (yyextra->at_start) {
  ------------------
  |  |  120|  76.5k|#define yyextra yyg->yyextra_r
  ------------------
  |  Branch (1014:7): [True: 1.52k, False: 74.9k]
  ------------------
 1015|  1.52k|    yyextra->at_start = 0;
  ------------------
  |  |  120|  1.52k|#define yyextra yyg->yyextra_r
  ------------------
 1016|  1.52k|    if (yyextra->flags & AP_EXPR_FLAG_STRING_RESULT) {
  ------------------
  |  |  120|  1.52k|#define yyextra yyg->yyextra_r
  ------------------
                  if (yyextra->flags & AP_EXPR_FLAG_STRING_RESULT) {
  ------------------
  |  |   68|  1.52k|#define AP_EXPR_FLAG_STRING_RESULT         8
  ------------------
  |  Branch (1016:9): [True: 1.52k, False: 0]
  ------------------
 1017|  1.52k|        STATE_PUSH(str, 1);
  ------------------
  |  |  685|  1.52k|#define STATE_PUSH(st, sk) do {     \
  |  |  686|  1.52k|    yy_push_state((st), yyscanner); \
  |  |  687|  1.52k|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (687:9): [Folded - Ignored]
  |  |  ------------------
  |  |  688|  1.52k|        STACK_PUSH();               \
  |  |  ------------------
  |  |  |  |  661|  1.52k|#define STACK_PUSH() do {                               \
  |  |  |  |  662|  1.52k|    ap_expr_parser_stack_t *sk;                         \
  |  |  |  |  663|  1.52k|    if (yyextra->spares) {                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|  1.52k|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (663:9): [True: 0, False: 1.52k]
  |  |  |  |  ------------------
  |  |  |  |  664|      0|        sk = yyextra->spares;                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  665|      0|        yyextra->spares = sk->next;                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  666|      0|    }                                                   \
  |  |  |  |  667|  1.52k|    else {                                              \
  |  |  |  |  668|  1.52k|        sk = apr_palloc(yyextra->ptemp, sizeof(*sk));   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  425|  1.52k|    apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|  1.52k|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  153|  1.52k|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  155|  1.52k|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  669|  1.52k|    }                                                   \
  |  |  |  |  670|  1.52k|    sk->scan_ptr  = sk->scan_buf;                       \
  |  |  |  |  671|  1.52k|    sk->scan_stop = sk->scan_buf[0] = '\0';             \
  |  |  |  |  672|  1.52k|    sk->scan_flag = 0;                                  \
  |  |  |  |  673|  1.52k|    sk->next = yyextra->current;                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|  1.52k|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  674|  1.52k|    yyextra->current = sk;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|  1.52k|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  675|  1.52k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (675:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  689|  1.52k|    }                               \
  |  |  690|  1.52k|} while (0)
  |  |  ------------------
  |  |  |  Branch (690:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1018|  1.52k|        return T_EXPR_STRING;
 1019|  1.52k|    }
 1020|      0|    else {
 1021|      0|        STATE_PUSH(expr, 1);
  ------------------
  |  |  685|      0|#define STATE_PUSH(st, sk) do {     \
  |  |  686|      0|    yy_push_state((st), yyscanner); \
  |  |  687|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (687:9): [Folded - Ignored]
  |  |  ------------------
  |  |  688|      0|        STACK_PUSH();               \
  |  |  ------------------
  |  |  |  |  661|      0|#define STACK_PUSH() do {                               \
  |  |  |  |  662|      0|    ap_expr_parser_stack_t *sk;                         \
  |  |  |  |  663|      0|    if (yyextra->spares) {                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (663:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  664|      0|        sk = yyextra->spares;                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  665|      0|        yyextra->spares = sk->next;                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  666|      0|    }                                                   \
  |  |  |  |  667|      0|    else {                                              \
  |  |  |  |  668|      0|        sk = apr_palloc(yyextra->ptemp, sizeof(*sk));   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  425|      0|    apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|      0|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  153|      0|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  155|      0|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  669|      0|    }                                                   \
  |  |  |  |  670|      0|    sk->scan_ptr  = sk->scan_buf;                       \
  |  |  |  |  671|      0|    sk->scan_stop = sk->scan_buf[0] = '\0';             \
  |  |  |  |  672|      0|    sk->scan_flag = 0;                                  \
  |  |  |  |  673|      0|    sk->next = yyextra->current;                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  674|      0|    yyextra->current = sk;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  675|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (675:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  689|      0|    }                               \
  |  |  690|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (690:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1022|      0|        return T_EXPR_BOOL;
 1023|      0|    }
 1024|  1.52k|  }
 1025|       |
 1026|       |
 1027|       | /*
 1028|       |  * Back off INITIAL pushes
 1029|       |  */
 1030|  74.9k|#line 1031 "util_expr_scan.c"
 1031|       |
 1032|  1.53M|	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
  ------------------
  |  Branch (1032:23): [Folded - Ignored]
  ------------------
 1033|  1.53M|		{
 1034|  1.53M|		yy_cp = yyg->yy_c_buf_p;
 1035|       |
 1036|       |		/* Support of yytext. */
 1037|  1.53M|		*yy_cp = yyg->yy_hold_char;
 1038|       |
 1039|       |		/* yy_bp points to the position in yy_ch_buf of the start of
 1040|       |		 * the current run.
 1041|       |		 */
 1042|  1.53M|		yy_bp = yy_cp;
 1043|       |
 1044|  1.53M|		yy_current_state = yyg->yy_start;
 1045|  1.53M|yy_match:
 1046|  1.53M|		do
 1047|  3.13M|			{
 1048|  3.13M|			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
  ------------------
  |  |  108|  3.13M|#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
  ------------------
 1049|  3.13M|			if ( yy_accept[yy_current_state] )
  ------------------
  |  Branch (1049:9): [True: 1.60M, False: 1.53M]
  ------------------
 1050|  1.60M|				{
 1051|  1.60M|				yyg->yy_last_accepting_state = yy_current_state;
 1052|  1.60M|				yyg->yy_last_accepting_cpos = yy_cp;
 1053|  1.60M|				}
 1054|  6.10M|			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  ------------------
  |  Branch (1054:12): [True: 2.96M, False: 3.13M]
  ------------------
 1055|  2.96M|				{
 1056|  2.96M|				yy_current_state = (int) yy_def[yy_current_state];
 1057|  2.96M|				if ( yy_current_state >= 155 )
  ------------------
  |  Branch (1057:10): [True: 1.43M, False: 1.53M]
  ------------------
 1058|  1.43M|					yy_c = yy_meta[(unsigned int) yy_c];
 1059|  2.96M|				}
 1060|  3.13M|			yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
 1061|  3.13M|			++yy_cp;
 1062|  3.13M|			}
 1063|  3.13M|		while ( yy_current_state != 154 );
  ------------------
  |  Branch (1063:11): [True: 1.60M, False: 1.53M]
  ------------------
 1064|  1.53M|		yy_cp = yyg->yy_last_accepting_cpos;
 1065|  1.53M|		yy_current_state = yyg->yy_last_accepting_state;
 1066|       |
 1067|  1.53M|yy_find_action:
 1068|  1.53M|		yy_act = yy_accept[yy_current_state];
 1069|       |
 1070|  1.53M|		YY_DO_BEFORE_ACTION;
  ------------------
  |  |  344|  1.53M|	yyg->yytext_ptr = yy_bp; \
  |  |  ------------------
  |  |  |  |  333|  1.53M|#define yytext_ptr yytext_r
  |  |  ------------------
  |  |  345|  1.53M|	yyleng = (int) (yy_cp - yy_bp); \
  |  |  ------------------
  |  |  |  |  121|  1.53M|#define yyleng yyg->yyleng_r
  |  |  ------------------
  |  |  346|  1.53M|	yyg->yy_hold_char = *yy_cp; \
  |  |  347|  1.53M|	*yy_cp = '\0'; \
  |  |  348|  1.53M|	yyg->yy_c_buf_p = yy_cp;
  ------------------
 1071|       |
 1072|  1.53M|do_action:	/* This label is used only to access EOF actions. */
 1073|       |
 1074|  1.53M|		switch ( yy_act )
 1075|  1.53M|	{ /* beginning of action switch */
 1076|      0|			case 0: /* must back up */
  ------------------
  |  Branch (1076:4): [True: 0, False: 1.53M]
  ------------------
 1077|       |			/* undo the effects of YY_DO_BEFORE_ACTION */
 1078|      0|			*yy_cp = yyg->yy_hold_char;
 1079|      0|			yy_cp = yyg->yy_last_accepting_cpos;
 1080|      0|			yy_current_state = yyg->yy_last_accepting_state;
 1081|      0|			goto yy_find_action;
 1082|       |
 1083|  1.36k|case YY_STATE_EOF(str):
  ------------------
  |  |  141|  1.36k|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  |  |  ------------------
  |  |  |  |  351|  1.36k|#define YY_END_OF_BUFFER 74
  |  |  ------------------
  ------------------
  |  Branch (1083:1): [True: 1.36k, False: 1.53M]
  ------------------
 1084|  1.36k|#line 201 "util_expr_scan.l"
 1085|  1.36k|{
 1086|  1.36k|    STATE_POP(0); /* <str> */
  ------------------
  |  |  692|  1.36k|#define STATE_POP(sk) do {          \
  |  |  693|  1.36k|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (693:9): [Folded - Ignored]
  |  |  ------------------
  |  |  694|      0|        STACK_POP();                \
  |  |  ------------------
  |  |  |  |  677|      0|#define STACK_POP() do {            \
  |  |  |  |  678|      0|    ap_expr_parser_stack_t *sk;     \
  |  |  |  |  679|      0|    sk = yyextra->current;          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  680|      0|    yyextra->current = sk->next;    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  681|      0|    sk->next = yyextra->spares;     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  682|      0|    yyextra->spares = sk;           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  683|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (683:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  695|      0|    }                               \
  |  |  696|  1.36k|    yy_pop_state(yyscanner);        \
  |  |  697|  1.36k|} while (0)
  |  |  ------------------
  |  |  |  Branch (697:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1087|  1.36k|    if (YY_START != INITIAL) {
  ------------------
  |  |  137|  1.36k|#define YY_START ((yyg->yy_start - 1) / 2)
  ------------------
                  if (YY_START != INITIAL) {
  ------------------
  |  |  725|  1.36k|#define INITIAL 0
  ------------------
  |  Branch (1087:9): [True: 0, False: 1.36k]
  ------------------
 1088|      0|        PERROR("Unterminated string");
  ------------------
  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  647|      0|    return T_ERROR;         \
  |  |  648|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1089|      0|    }
 1090|  1.36k|    yylval->cpVal = STR_RETURN();
  ------------------
  |  |  786|  1.36k|    #    define yylval yyg->yylval_r
  ------------------
                  yylval->cpVal = STR_RETURN();
  ------------------
  |  |  721|  1.36k|    (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  120|  1.36k|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|  1.36k|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|  1.36k|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|  1.36k|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|  1.36k|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  700|  1.36k|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|  1.36k|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1091|  1.36k|    STACK_POP(); /* ^ after this */
  ------------------
  |  |  677|  1.36k|#define STACK_POP() do {            \
  |  |  678|  1.36k|    ap_expr_parser_stack_t *sk;     \
  |  |  679|  1.36k|    sk = yyextra->current;          \
  |  |  ------------------
  |  |  |  |  120|  1.36k|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  680|  1.36k|    yyextra->current = sk->next;    \
  |  |  ------------------
  |  |  |  |  120|  1.36k|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  681|  1.36k|    sk->next = yyextra->spares;     \
  |  |  ------------------
  |  |  |  |  120|  1.36k|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  682|  1.36k|    yyextra->spares = sk;           \
  |  |  ------------------
  |  |  |  |  120|  1.36k|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  683|  1.36k|} while (0)
  |  |  ------------------
  |  |  |  Branch (683:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1092|  1.36k|    return T_STRING;
 1093|  1.36k|}
 1094|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1095|      0|case YY_STATE_EOF(expr):
  ------------------
  |  |  141|      0|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  |  |  ------------------
  |  |  |  |  351|      0|#define YY_END_OF_BUFFER 74
  |  |  ------------------
  ------------------
  |  Branch (1095:1): [True: 0, False: 1.53M]
  ------------------
 1096|      0|#line 210 "util_expr_scan.l"
 1097|      0|{
 1098|      0|    STATE_POP(1); /* <expr> */
  ------------------
  |  |  692|      0|#define STATE_POP(sk) do {          \
  |  |  693|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (693:9): [Folded - Ignored]
  |  |  ------------------
  |  |  694|      0|        STACK_POP();                \
  |  |  ------------------
  |  |  |  |  677|      0|#define STACK_POP() do {            \
  |  |  |  |  678|      0|    ap_expr_parser_stack_t *sk;     \
  |  |  |  |  679|      0|    sk = yyextra->current;          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  680|      0|    yyextra->current = sk->next;    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  681|      0|    sk->next = yyextra->spares;     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  682|      0|    yyextra->spares = sk;           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  683|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (683:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  695|      0|    }                               \
  |  |  696|      0|    yy_pop_state(yyscanner);        \
  |  |  697|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (697:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1099|      0|    if (YY_START != INITIAL) {
  ------------------
  |  |  137|      0|#define YY_START ((yyg->yy_start - 1) / 2)
  ------------------
                  if (YY_START != INITIAL) {
  ------------------
  |  |  725|      0|#define INITIAL 0
  ------------------
  |  Branch (1099:9): [True: 0, False: 0]
  ------------------
 1100|      0|        PERROR("Unterminated expression");
  ------------------
  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  647|      0|    return T_ERROR;         \
  |  |  648|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1101|      0|    }
 1102|      0|}
 1103|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1104|  11.4k|case 1:
  ------------------
  |  Branch (1104:1): [True: 11.4k, False: 1.52M]
  ------------------
 1105|  11.4k|YY_RULE_SETUP
 1106|  11.4k|#line 217 "util_expr_scan.l"
 1107|  11.4k|{
 1108|  11.4k|    if (yytext[0] == str_stop) {
  ------------------
  |  |  122|  11.4k|#define yytext yyg->yytext_r
  ------------------
                  if (yytext[0] == str_stop) {
  ------------------
  |  |  701|  11.4k|#define str_stop (yyextra->current->scan_stop)
  |  |  ------------------
  |  |  |  |  120|  11.4k|#define yyextra yyg->yyextra_r
  |  |  ------------------
  ------------------
  |  Branch (1108:9): [True: 0, False: 11.4k]
  ------------------
 1109|      0|        if (!STR_EMPTY()) {
  ------------------
  |  |  718|      0|    (str_ptr == str_buf)
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (str_ptr == str_buf)
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1109:13): [True: 0, False: 0]
  ------------------
 1110|      0|            yyless(0); /* come back below */
  ------------------
  |  |  184|      0|	do \
  |  |  185|      0|		{ \
  |  |  186|      0|		/* Undo effects of setting up yytext. */ \
  |  |  187|      0|        int yyless_macro_arg = (n); \
  |  |  188|      0|        YY_LESS_LINENO(yyless_macro_arg);\
  |  |  189|      0|		*yy_cp = yyg->yy_hold_char; \
  |  |  190|      0|		YY_RESTORE_YY_MORE_OFFSET \
  |  |  191|      0|		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
  |  |  ------------------
  |  |  |  |  570|      0|#define YY_MORE_ADJ 0
  |  |  ------------------
  |  |  192|      0|		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  |  |  ------------------
  |  |  |  |  344|      0|	yyg->yytext_ptr = yy_bp; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  333|      0|#define yytext_ptr yytext_r
  |  |  |  |  ------------------
  |  |  |  |  345|      0|	yyleng = (int) (yy_cp - yy_bp); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|#define yyleng yyg->yyleng_r
  |  |  |  |  ------------------
  |  |  |  |  346|      0|	yyg->yy_hold_char = *yy_cp; \
  |  |  |  |  347|      0|	*yy_cp = '\0'; \
  |  |  |  |  348|      0|	yyg->yy_c_buf_p = yy_cp;
  |  |  ------------------
  |  |  193|      0|		} \
  |  |  194|      0|	while ( 0 )
  |  |  ------------------
  |  |  |  Branch (194:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1111|      0|            yylval->cpVal = STR_RETURN();
  ------------------
  |  |  786|      0|    #    define yylval yyg->yylval_r
  ------------------
                          yylval->cpVal = STR_RETURN();
  ------------------
  |  |  721|      0|    (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1112|      0|            return T_STRING;
 1113|      0|        }
 1114|      0|        STATE_POP(1); /* <str> */
  ------------------
  |  |  692|      0|#define STATE_POP(sk) do {          \
  |  |  693|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (693:9): [Folded - Ignored]
  |  |  ------------------
  |  |  694|      0|        STACK_POP();                \
  |  |  ------------------
  |  |  |  |  677|      0|#define STACK_POP() do {            \
  |  |  |  |  678|      0|    ap_expr_parser_stack_t *sk;     \
  |  |  |  |  679|      0|    sk = yyextra->current;          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  680|      0|    yyextra->current = sk->next;    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  681|      0|    sk->next = yyextra->spares;     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  682|      0|    yyextra->spares = sk;           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  683|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (683:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  695|      0|    }                               \
  |  |  696|      0|    yy_pop_state(yyscanner);        \
  |  |  697|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (697:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1115|      0|        return T_STR_END;
 1116|      0|    }
 1117|  11.4k|    STR_APPEND_NOCHECK(yytext[0]);
  ------------------
  |  |  715|  11.4k|    STR_APPEND_CHECK((chr), 0)
  |  |  ------------------
  |  |  |  |  704|  11.4k|#define STR_APPEND_CHECK(chr, chk) do {                     \
  |  |  |  |  705|  11.4k|    if ((chk) && apr_iscntrl((chr))) {                      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  207|      0|#define apr_iscntrl(c) (iscntrl(((unsigned char)(c))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (207:24): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (705:9): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  706|      0|        PERROR_CHAR("Invalid string character ", (chr));    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  650|      0|#define PERROR_CHAR(prefix, chr) do {                                       \
  |  |  |  |  |  |  651|      0|    char *msg;                                                              \
  |  |  |  |  |  |  652|      0|    if (apr_isprint((chr))) {                                               \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|      0|#define apr_isprint(c) (isprint(((unsigned char)(c))))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (221:24): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  653|      0|        msg = apr_psprintf(yyextra->pool, prefix "'%c'", (char)(chr));      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  654|      0|    }                                                                       \
  |  |  |  |  |  |  655|      0|    else {                                                                  \
  |  |  |  |  |  |  656|      0|        msg = apr_psprintf(yyextra->pool, prefix "'\\x%.2X'", (int)(chr));  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  657|      0|    }                                                                       \
  |  |  |  |  |  |  658|      0|    PERROR(msg);                                                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  659|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (659:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  707|      0|    }                                                       \
  |  |  |  |  708|  11.4k|    if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|  11.4k|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|  11.4k|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|  11.4k|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|  11.4k|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|  11.4k|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|  11.4k|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (708:9): [True: 0, False: 11.4k]
  |  |  |  |  ------------------
  |  |  |  |  709|      0|        PERROR("String too long");                          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  710|      0|    }                                                       \
  |  |  |  |  711|  11.4k|    *str_ptr++ = (char)(chr);                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|  11.4k|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|  11.4k|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  712|  11.4k|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (712:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1118|  11.4k|}
 1119|  11.4k|	YY_BREAK
  ------------------
  |  |  963|  11.4k|#define YY_BREAK /*LINTED*/break;
  ------------------
 1120|       |/* regexp backref inside string/arg */
 1121|  72.0k|case 2:
  ------------------
  |  Branch (1121:1): [True: 72.0k, False: 1.46M]
  ------------------
 1122|  72.0k|YY_RULE_SETUP
 1123|  72.0k|#line 231 "util_expr_scan.l"
 1124|  72.0k|{
 1125|  72.0k|    if (!STR_EMPTY()) {
  ------------------
  |  |  718|  72.0k|    (str_ptr == str_buf)
  |  |  ------------------
  |  |  |  |  699|  72.0k|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|  72.0k|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (str_ptr == str_buf)
  |  |  ------------------
  |  |  |  |  700|  72.0k|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|  72.0k|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1125:9): [True: 33.6k, False: 38.4k]
  ------------------
 1126|  33.6k|        yyless(0); /* come back below */
  ------------------
  |  |  184|  33.6k|	do \
  |  |  185|  33.6k|		{ \
  |  |  186|  33.6k|		/* Undo effects of setting up yytext. */ \
  |  |  187|  33.6k|        int yyless_macro_arg = (n); \
  |  |  188|  33.6k|        YY_LESS_LINENO(yyless_macro_arg);\
  |  |  189|  33.6k|		*yy_cp = yyg->yy_hold_char; \
  |  |  190|  33.6k|		YY_RESTORE_YY_MORE_OFFSET \
  |  |  191|  33.6k|		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
  |  |  ------------------
  |  |  |  |  570|  33.6k|#define YY_MORE_ADJ 0
  |  |  ------------------
  |  |  192|  33.6k|		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  |  |  ------------------
  |  |  |  |  344|  33.6k|	yyg->yytext_ptr = yy_bp; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  333|  33.6k|#define yytext_ptr yytext_r
  |  |  |  |  ------------------
  |  |  |  |  345|  33.6k|	yyleng = (int) (yy_cp - yy_bp); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  121|  33.6k|#define yyleng yyg->yyleng_r
  |  |  |  |  ------------------
  |  |  |  |  346|  33.6k|	yyg->yy_hold_char = *yy_cp; \
  |  |  |  |  347|  33.6k|	*yy_cp = '\0'; \
  |  |  |  |  348|  33.6k|	yyg->yy_c_buf_p = yy_cp;
  |  |  ------------------
  |  |  193|  33.6k|		} \
  |  |  194|  33.6k|	while ( 0 )
  |  |  ------------------
  |  |  |  Branch (194:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1127|  33.6k|        yylval->cpVal = STR_RETURN();
  ------------------
  |  |  786|  33.6k|    #    define yylval yyg->yylval_r
  ------------------
                      yylval->cpVal = STR_RETURN();
  ------------------
  |  |  721|  33.6k|    (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  120|  33.6k|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|  33.6k|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|  33.6k|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|  33.6k|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|  33.6k|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  700|  33.6k|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|  33.6k|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1128|  33.6k|        return T_STRING;
 1129|  33.6k|    }
 1130|  38.4k|    yylval->num = yytext[1] - '0';
  ------------------
  |  |  786|  38.4k|    #    define yylval yyg->yylval_r
  ------------------
                  yylval->num = yytext[1] - '0';
  ------------------
  |  |  122|  38.4k|#define yytext yyg->yytext_r
  ------------------
 1131|  38.4k|    return T_BACKREF;
 1132|  72.0k|}
 1133|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1134|       |/* variable inside string/arg */
 1135|      0|case 3:
  ------------------
  |  Branch (1135:1): [True: 0, False: 1.53M]
  ------------------
 1136|      0|YY_RULE_SETUP
 1137|      0|#line 242 "util_expr_scan.l"
 1138|      0|{
 1139|      0|    if (!STR_EMPTY()) {
  ------------------
  |  |  718|      0|    (str_ptr == str_buf)
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (str_ptr == str_buf)
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1139:9): [True: 0, False: 0]
  ------------------
 1140|      0|        yyless(0); /* come back below */
  ------------------
  |  |  184|      0|	do \
  |  |  185|      0|		{ \
  |  |  186|      0|		/* Undo effects of setting up yytext. */ \
  |  |  187|      0|        int yyless_macro_arg = (n); \
  |  |  188|      0|        YY_LESS_LINENO(yyless_macro_arg);\
  |  |  189|      0|		*yy_cp = yyg->yy_hold_char; \
  |  |  190|      0|		YY_RESTORE_YY_MORE_OFFSET \
  |  |  191|      0|		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
  |  |  ------------------
  |  |  |  |  570|      0|#define YY_MORE_ADJ 0
  |  |  ------------------
  |  |  192|      0|		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  |  |  ------------------
  |  |  |  |  344|      0|	yyg->yytext_ptr = yy_bp; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  333|      0|#define yytext_ptr yytext_r
  |  |  |  |  ------------------
  |  |  |  |  345|      0|	yyleng = (int) (yy_cp - yy_bp); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|#define yyleng yyg->yyleng_r
  |  |  |  |  ------------------
  |  |  |  |  346|      0|	yyg->yy_hold_char = *yy_cp; \
  |  |  |  |  347|      0|	*yy_cp = '\0'; \
  |  |  |  |  348|      0|	yyg->yy_c_buf_p = yy_cp;
  |  |  ------------------
  |  |  193|      0|		} \
  |  |  194|      0|	while ( 0 )
  |  |  ------------------
  |  |  |  Branch (194:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1141|      0|        yylval->cpVal = STR_RETURN();
  ------------------
  |  |  786|      0|    #    define yylval yyg->yylval_r
  ------------------
                      yylval->cpVal = STR_RETURN();
  ------------------
  |  |  721|      0|    (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1142|      0|        return T_STRING;
 1143|      0|    }
 1144|      0|    STATE_PUSH(var, 1);
  ------------------
  |  |  685|      0|#define STATE_PUSH(st, sk) do {     \
  |  |  686|      0|    yy_push_state((st), yyscanner); \
  |  |  687|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (687:9): [Folded - Ignored]
  |  |  ------------------
  |  |  688|      0|        STACK_PUSH();               \
  |  |  ------------------
  |  |  |  |  661|      0|#define STACK_PUSH() do {                               \
  |  |  |  |  662|      0|    ap_expr_parser_stack_t *sk;                         \
  |  |  |  |  663|      0|    if (yyextra->spares) {                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (663:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  664|      0|        sk = yyextra->spares;                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  665|      0|        yyextra->spares = sk->next;                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  666|      0|    }                                                   \
  |  |  |  |  667|      0|    else {                                              \
  |  |  |  |  668|      0|        sk = apr_palloc(yyextra->ptemp, sizeof(*sk));   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  425|      0|    apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|      0|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  153|      0|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  155|      0|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  669|      0|    }                                                   \
  |  |  |  |  670|      0|    sk->scan_ptr  = sk->scan_buf;                       \
  |  |  |  |  671|      0|    sk->scan_stop = sk->scan_buf[0] = '\0';             \
  |  |  |  |  672|      0|    sk->scan_flag = 0;                                  \
  |  |  |  |  673|      0|    sk->next = yyextra->current;                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  674|      0|    yyextra->current = sk;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  675|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (675:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  689|      0|    }                               \
  |  |  690|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (690:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1145|      0|    return T_VAR_BEGIN;
 1146|      0|}
 1147|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1148|      0|case 4:
  ------------------
  |  Branch (1148:1): [True: 0, False: 1.53M]
  ------------------
 1149|      0|YY_RULE_SETUP
 1150|      0|#line 252 "util_expr_scan.l"
 1151|      0|{
 1152|      0|    if (!STR_EMPTY()) {
  ------------------
  |  |  718|      0|    (str_ptr == str_buf)
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (str_ptr == str_buf)
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1152:9): [True: 0, False: 0]
  ------------------
 1153|      0|        yyless(0); /* come back below */
  ------------------
  |  |  184|      0|	do \
  |  |  185|      0|		{ \
  |  |  186|      0|		/* Undo effects of setting up yytext. */ \
  |  |  187|      0|        int yyless_macro_arg = (n); \
  |  |  188|      0|        YY_LESS_LINENO(yyless_macro_arg);\
  |  |  189|      0|		*yy_cp = yyg->yy_hold_char; \
  |  |  190|      0|		YY_RESTORE_YY_MORE_OFFSET \
  |  |  191|      0|		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
  |  |  ------------------
  |  |  |  |  570|      0|#define YY_MORE_ADJ 0
  |  |  ------------------
  |  |  192|      0|		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  |  |  ------------------
  |  |  |  |  344|      0|	yyg->yytext_ptr = yy_bp; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  333|      0|#define yytext_ptr yytext_r
  |  |  |  |  ------------------
  |  |  |  |  345|      0|	yyleng = (int) (yy_cp - yy_bp); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|#define yyleng yyg->yyleng_r
  |  |  |  |  ------------------
  |  |  |  |  346|      0|	yyg->yy_hold_char = *yy_cp; \
  |  |  |  |  347|      0|	*yy_cp = '\0'; \
  |  |  |  |  348|      0|	yyg->yy_c_buf_p = yy_cp;
  |  |  ------------------
  |  |  193|      0|		} \
  |  |  194|      0|	while ( 0 )
  |  |  ------------------
  |  |  |  Branch (194:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1154|      0|        yylval->cpVal = STR_RETURN();
  ------------------
  |  |  786|      0|    #    define yylval yyg->yylval_r
  ------------------
                      yylval->cpVal = STR_RETURN();
  ------------------
  |  |  721|      0|    (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1155|      0|        return T_STRING;
 1156|      0|    }
 1157|      0|    STATE_PUSH(expr, 1);
  ------------------
  |  |  685|      0|#define STATE_PUSH(st, sk) do {     \
  |  |  686|      0|    yy_push_state((st), yyscanner); \
  |  |  687|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (687:9): [Folded - Ignored]
  |  |  ------------------
  |  |  688|      0|        STACK_PUSH();               \
  |  |  ------------------
  |  |  |  |  661|      0|#define STACK_PUSH() do {                               \
  |  |  |  |  662|      0|    ap_expr_parser_stack_t *sk;                         \
  |  |  |  |  663|      0|    if (yyextra->spares) {                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (663:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  664|      0|        sk = yyextra->spares;                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  665|      0|        yyextra->spares = sk->next;                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  666|      0|    }                                                   \
  |  |  |  |  667|      0|    else {                                              \
  |  |  |  |  668|      0|        sk = apr_palloc(yyextra->ptemp, sizeof(*sk));   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  425|      0|    apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|      0|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  153|      0|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  155|      0|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  669|      0|    }                                                   \
  |  |  |  |  670|      0|    sk->scan_ptr  = sk->scan_buf;                       \
  |  |  |  |  671|      0|    sk->scan_stop = sk->scan_buf[0] = '\0';             \
  |  |  |  |  672|      0|    sk->scan_flag = 0;                                  \
  |  |  |  |  673|      0|    sk->next = yyextra->current;                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  674|      0|    yyextra->current = sk;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  675|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (675:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  689|      0|    }                               \
  |  |  690|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (690:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1158|      0|    return T_VAREXP_BEGIN;
 1159|      0|}
 1160|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1161|       |/* Any non-octal or octal higher than 377 (decimal 255) is invalid */
 1162|      0|case 5:
  ------------------
  |  Branch (1162:1): [True: 0, False: 1.53M]
  ------------------
 1163|      0|YY_RULE_SETUP
 1164|      0|#line 263 "util_expr_scan.l"
 1165|      0|{
 1166|      0|    PERROR("Bad character escape sequence");
  ------------------
  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  647|      0|    return T_ERROR;         \
  |  |  648|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1167|      0|}
 1168|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1169|      0|case 6:
  ------------------
  |  Branch (1169:1): [True: 0, False: 1.53M]
  ------------------
 1170|      0|YY_RULE_SETUP
 1171|      0|#line 266 "util_expr_scan.l"
 1172|      0|{
 1173|      0|    int result;
 1174|      0|    (void)sscanf(yytext+1, "%o", &result);
  ------------------
  |  |  122|      0|#define yytext yyg->yytext_r
  ------------------
 1175|      0|    STR_APPEND_NOCHECK(result);
  ------------------
  |  |  715|      0|    STR_APPEND_CHECK((chr), 0)
  |  |  ------------------
  |  |  |  |  704|      0|#define STR_APPEND_CHECK(chr, chk) do {                     \
  |  |  |  |  705|      0|    if ((chk) && apr_iscntrl((chr))) {                      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  207|      0|#define apr_iscntrl(c) (iscntrl(((unsigned char)(c))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (207:24): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (705:9): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  706|      0|        PERROR_CHAR("Invalid string character ", (chr));    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  650|      0|#define PERROR_CHAR(prefix, chr) do {                                       \
  |  |  |  |  |  |  651|      0|    char *msg;                                                              \
  |  |  |  |  |  |  652|      0|    if (apr_isprint((chr))) {                                               \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|      0|#define apr_isprint(c) (isprint(((unsigned char)(c))))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (221:24): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  653|      0|        msg = apr_psprintf(yyextra->pool, prefix "'%c'", (char)(chr));      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  654|      0|    }                                                                       \
  |  |  |  |  |  |  655|      0|    else {                                                                  \
  |  |  |  |  |  |  656|      0|        msg = apr_psprintf(yyextra->pool, prefix "'\\x%.2X'", (int)(chr));  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  657|      0|    }                                                                       \
  |  |  |  |  |  |  658|      0|    PERROR(msg);                                                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  659|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (659:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  707|      0|    }                                                       \
  |  |  |  |  708|      0|    if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (708:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  709|      0|        PERROR("String too long");                          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  710|      0|    }                                                       \
  |  |  |  |  711|      0|    *str_ptr++ = (char)(chr);                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  712|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (712:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1176|      0|}
 1177|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1178|      0|case 7:
  ------------------
  |  Branch (1178:1): [True: 0, False: 1.53M]
  ------------------
 1179|      0|YY_RULE_SETUP
 1180|      0|#line 271 "util_expr_scan.l"
 1181|      0|{
 1182|      0|    int result;
 1183|      0|    (void)sscanf(yytext+1, "%x", &result);
  ------------------
  |  |  122|      0|#define yytext yyg->yytext_r
  ------------------
 1184|      0|    STR_APPEND_NOCHECK(result);
  ------------------
  |  |  715|      0|    STR_APPEND_CHECK((chr), 0)
  |  |  ------------------
  |  |  |  |  704|      0|#define STR_APPEND_CHECK(chr, chk) do {                     \
  |  |  |  |  705|      0|    if ((chk) && apr_iscntrl((chr))) {                      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  207|      0|#define apr_iscntrl(c) (iscntrl(((unsigned char)(c))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (207:24): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (705:9): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  706|      0|        PERROR_CHAR("Invalid string character ", (chr));    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  650|      0|#define PERROR_CHAR(prefix, chr) do {                                       \
  |  |  |  |  |  |  651|      0|    char *msg;                                                              \
  |  |  |  |  |  |  652|      0|    if (apr_isprint((chr))) {                                               \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|      0|#define apr_isprint(c) (isprint(((unsigned char)(c))))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (221:24): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  653|      0|        msg = apr_psprintf(yyextra->pool, prefix "'%c'", (char)(chr));      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  654|      0|    }                                                                       \
  |  |  |  |  |  |  655|      0|    else {                                                                  \
  |  |  |  |  |  |  656|      0|        msg = apr_psprintf(yyextra->pool, prefix "'\\x%.2X'", (int)(chr));  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  657|      0|    }                                                                       \
  |  |  |  |  |  |  658|      0|    PERROR(msg);                                                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  659|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (659:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  707|      0|    }                                                       \
  |  |  |  |  708|      0|    if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (708:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  709|      0|        PERROR("String too long");                          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  710|      0|    }                                                       \
  |  |  |  |  711|      0|    *str_ptr++ = (char)(chr);                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  712|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (712:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1185|      0|}
 1186|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1187|      0|case 8:
  ------------------
  |  Branch (1187:1): [True: 0, False: 1.53M]
  ------------------
 1188|      0|YY_RULE_SETUP
 1189|      0|#line 276 "util_expr_scan.l"
 1190|      0|{ STR_APPEND_NOCHECK('\n'); }
  ------------------
  |  |  715|      0|    STR_APPEND_CHECK((chr), 0)
  |  |  ------------------
  |  |  |  |  704|      0|#define STR_APPEND_CHECK(chr, chk) do {                     \
  |  |  |  |  705|      0|    if ((chk) && apr_iscntrl((chr))) {                      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  207|      0|#define apr_iscntrl(c) (iscntrl(((unsigned char)(c))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (207:24): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (705:9): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  706|      0|        PERROR_CHAR("Invalid string character ", (chr));    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  650|      0|#define PERROR_CHAR(prefix, chr) do {                                       \
  |  |  |  |  |  |  651|      0|    char *msg;                                                              \
  |  |  |  |  |  |  652|      0|    if (apr_isprint((chr))) {                                               \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|      0|#define apr_isprint(c) (isprint(((unsigned char)(c))))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (221:24): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  653|      0|        msg = apr_psprintf(yyextra->pool, prefix "'%c'", (char)(chr));      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  654|      0|    }                                                                       \
  |  |  |  |  |  |  655|      0|    else {                                                                  \
  |  |  |  |  |  |  656|      0|        msg = apr_psprintf(yyextra->pool, prefix "'\\x%.2X'", (int)(chr));  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  657|      0|    }                                                                       \
  |  |  |  |  |  |  658|      0|    PERROR(msg);                                                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  659|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (659:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  707|      0|    }                                                       \
  |  |  |  |  708|      0|    if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (708:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  709|      0|        PERROR("String too long");                          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  710|      0|    }                                                       \
  |  |  |  |  711|      0|    *str_ptr++ = (char)(chr);                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  712|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (712:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1191|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1192|      0|case 9:
  ------------------
  |  Branch (1192:1): [True: 0, False: 1.53M]
  ------------------
 1193|      0|YY_RULE_SETUP
 1194|      0|#line 277 "util_expr_scan.l"
 1195|      0|{ STR_APPEND_NOCHECK('\r'); }
  ------------------
  |  |  715|      0|    STR_APPEND_CHECK((chr), 0)
  |  |  ------------------
  |  |  |  |  704|      0|#define STR_APPEND_CHECK(chr, chk) do {                     \
  |  |  |  |  705|      0|    if ((chk) && apr_iscntrl((chr))) {                      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  207|      0|#define apr_iscntrl(c) (iscntrl(((unsigned char)(c))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (207:24): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (705:9): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  706|      0|        PERROR_CHAR("Invalid string character ", (chr));    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  650|      0|#define PERROR_CHAR(prefix, chr) do {                                       \
  |  |  |  |  |  |  651|      0|    char *msg;                                                              \
  |  |  |  |  |  |  652|      0|    if (apr_isprint((chr))) {                                               \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|      0|#define apr_isprint(c) (isprint(((unsigned char)(c))))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (221:24): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  653|      0|        msg = apr_psprintf(yyextra->pool, prefix "'%c'", (char)(chr));      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  654|      0|    }                                                                       \
  |  |  |  |  |  |  655|      0|    else {                                                                  \
  |  |  |  |  |  |  656|      0|        msg = apr_psprintf(yyextra->pool, prefix "'\\x%.2X'", (int)(chr));  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  657|      0|    }                                                                       \
  |  |  |  |  |  |  658|      0|    PERROR(msg);                                                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  659|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (659:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  707|      0|    }                                                       \
  |  |  |  |  708|      0|    if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (708:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  709|      0|        PERROR("String too long");                          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  710|      0|    }                                                       \
  |  |  |  |  711|      0|    *str_ptr++ = (char)(chr);                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  712|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (712:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1196|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1197|      0|case 10:
  ------------------
  |  Branch (1197:1): [True: 0, False: 1.53M]
  ------------------
 1198|      0|YY_RULE_SETUP
 1199|      0|#line 278 "util_expr_scan.l"
 1200|      0|{ STR_APPEND_NOCHECK('\t'); }
  ------------------
  |  |  715|      0|    STR_APPEND_CHECK((chr), 0)
  |  |  ------------------
  |  |  |  |  704|      0|#define STR_APPEND_CHECK(chr, chk) do {                     \
  |  |  |  |  705|      0|    if ((chk) && apr_iscntrl((chr))) {                      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  207|      0|#define apr_iscntrl(c) (iscntrl(((unsigned char)(c))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (207:24): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (705:9): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  706|      0|        PERROR_CHAR("Invalid string character ", (chr));    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  650|      0|#define PERROR_CHAR(prefix, chr) do {                                       \
  |  |  |  |  |  |  651|      0|    char *msg;                                                              \
  |  |  |  |  |  |  652|      0|    if (apr_isprint((chr))) {                                               \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|      0|#define apr_isprint(c) (isprint(((unsigned char)(c))))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (221:24): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  653|      0|        msg = apr_psprintf(yyextra->pool, prefix "'%c'", (char)(chr));      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  654|      0|    }                                                                       \
  |  |  |  |  |  |  655|      0|    else {                                                                  \
  |  |  |  |  |  |  656|      0|        msg = apr_psprintf(yyextra->pool, prefix "'\\x%.2X'", (int)(chr));  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  657|      0|    }                                                                       \
  |  |  |  |  |  |  658|      0|    PERROR(msg);                                                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  659|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (659:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  707|      0|    }                                                       \
  |  |  |  |  708|      0|    if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (708:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  709|      0|        PERROR("String too long");                          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  710|      0|    }                                                       \
  |  |  |  |  711|      0|    *str_ptr++ = (char)(chr);                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  712|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (712:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1201|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1202|      0|case 11:
  ------------------
  |  Branch (1202:1): [True: 0, False: 1.53M]
  ------------------
 1203|      0|YY_RULE_SETUP
 1204|      0|#line 279 "util_expr_scan.l"
 1205|      0|{ STR_APPEND_NOCHECK('\b'); }
  ------------------
  |  |  715|      0|    STR_APPEND_CHECK((chr), 0)
  |  |  ------------------
  |  |  |  |  704|      0|#define STR_APPEND_CHECK(chr, chk) do {                     \
  |  |  |  |  705|      0|    if ((chk) && apr_iscntrl((chr))) {                      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  207|      0|#define apr_iscntrl(c) (iscntrl(((unsigned char)(c))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (207:24): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (705:9): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  706|      0|        PERROR_CHAR("Invalid string character ", (chr));    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  650|      0|#define PERROR_CHAR(prefix, chr) do {                                       \
  |  |  |  |  |  |  651|      0|    char *msg;                                                              \
  |  |  |  |  |  |  652|      0|    if (apr_isprint((chr))) {                                               \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|      0|#define apr_isprint(c) (isprint(((unsigned char)(c))))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (221:24): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  653|      0|        msg = apr_psprintf(yyextra->pool, prefix "'%c'", (char)(chr));      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  654|      0|    }                                                                       \
  |  |  |  |  |  |  655|      0|    else {                                                                  \
  |  |  |  |  |  |  656|      0|        msg = apr_psprintf(yyextra->pool, prefix "'\\x%.2X'", (int)(chr));  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  657|      0|    }                                                                       \
  |  |  |  |  |  |  658|      0|    PERROR(msg);                                                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  659|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (659:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  707|      0|    }                                                       \
  |  |  |  |  708|      0|    if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (708:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  709|      0|        PERROR("String too long");                          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  710|      0|    }                                                       \
  |  |  |  |  711|      0|    *str_ptr++ = (char)(chr);                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  712|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (712:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1206|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1207|      0|case 12:
  ------------------
  |  Branch (1207:1): [True: 0, False: 1.53M]
  ------------------
 1208|      0|YY_RULE_SETUP
 1209|      0|#line 280 "util_expr_scan.l"
 1210|      0|{ STR_APPEND_NOCHECK('\f'); }
  ------------------
  |  |  715|      0|    STR_APPEND_CHECK((chr), 0)
  |  |  ------------------
  |  |  |  |  704|      0|#define STR_APPEND_CHECK(chr, chk) do {                     \
  |  |  |  |  705|      0|    if ((chk) && apr_iscntrl((chr))) {                      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  207|      0|#define apr_iscntrl(c) (iscntrl(((unsigned char)(c))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (207:24): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (705:9): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  706|      0|        PERROR_CHAR("Invalid string character ", (chr));    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  650|      0|#define PERROR_CHAR(prefix, chr) do {                                       \
  |  |  |  |  |  |  651|      0|    char *msg;                                                              \
  |  |  |  |  |  |  652|      0|    if (apr_isprint((chr))) {                                               \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|      0|#define apr_isprint(c) (isprint(((unsigned char)(c))))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (221:24): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  653|      0|        msg = apr_psprintf(yyextra->pool, prefix "'%c'", (char)(chr));      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  654|      0|    }                                                                       \
  |  |  |  |  |  |  655|      0|    else {                                                                  \
  |  |  |  |  |  |  656|      0|        msg = apr_psprintf(yyextra->pool, prefix "'\\x%.2X'", (int)(chr));  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  657|      0|    }                                                                       \
  |  |  |  |  |  |  658|      0|    PERROR(msg);                                                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  659|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (659:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  707|      0|    }                                                       \
  |  |  |  |  708|      0|    if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (708:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  709|      0|        PERROR("String too long");                          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  710|      0|    }                                                       \
  |  |  |  |  711|      0|    *str_ptr++ = (char)(chr);                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  712|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (712:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1211|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1212|      0|case 13:
  ------------------
  |  Branch (1212:1): [True: 0, False: 1.53M]
  ------------------
 1213|      0|YY_RULE_SETUP
 1214|      0|#line 281 "util_expr_scan.l"
 1215|      0|{ STR_APPEND_CHECK(yytext[1], 1); }
  ------------------
  |  |  704|      0|#define STR_APPEND_CHECK(chr, chk) do {                     \
  |  |  705|      0|    if ((chk) && apr_iscntrl((chr))) {                      \
  |  |  ------------------
  |  |  |  |  207|      0|#define apr_iscntrl(c) (iscntrl(((unsigned char)(c))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (207:24): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (705:9): [Folded - Ignored]
  |  |  ------------------
  |  |  706|      0|        PERROR_CHAR("Invalid string character ", (chr));    \
  |  |  ------------------
  |  |  |  |  650|      0|#define PERROR_CHAR(prefix, chr) do {                                       \
  |  |  |  |  651|      0|    char *msg;                                                              \
  |  |  |  |  652|      0|    if (apr_isprint((chr))) {                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|      0|#define apr_isprint(c) (isprint(((unsigned char)(c))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (221:24): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  653|      0|        msg = apr_psprintf(yyextra->pool, prefix "'%c'", (char)(chr));      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  654|      0|    }                                                                       \
  |  |  |  |  655|      0|    else {                                                                  \
  |  |  |  |  656|      0|        msg = apr_psprintf(yyextra->pool, prefix "'\\x%.2X'", (int)(chr));  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  657|      0|    }                                                                       \
  |  |  |  |  658|      0|    PERROR(msg);                                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  659|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (659:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  707|      0|    }                                                       \
  |  |  708|      0|    if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (708:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  709|      0|        PERROR("String too long");                          \
  |  |  ------------------
  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  648|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  710|      0|    }                                                       \
  |  |  711|      0|    *str_ptr++ = (char)(chr);                               \
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  712|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (712:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1216|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1217|     22|case 14:
  ------------------
  |  Branch (1217:1): [True: 22, False: 1.53M]
  ------------------
 1218|       |/* rule 14 can match eol */
 1219|     22|YY_RULE_SETUP
 1220|     22|#line 283 "util_expr_scan.l"
 1221|     22|{
 1222|     22|    PERROR("Unterminated string or variable");
  ------------------
  |  |  645|     22|#define PERROR(msg) do {    \
  |  |  646|     22|    yyextra->error2 = msg;  \
  |  |  ------------------
  |  |  |  |  120|     22|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  647|     22|    return T_ERROR;         \
  |  |  648|     22|} while (0)
  |  |  ------------------
  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1223|     22|}
 1224|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1225|  1.44M|case 15:
  ------------------
  |  Branch (1225:1): [True: 1.44M, False: 92.1k]
  ------------------
 1226|       |/* rule 15 can match eol */
 1227|  1.44M|YY_RULE_SETUP
 1228|  1.44M|#line 287 "util_expr_scan.l"
 1229|  1.44M|{
 1230|  1.44M|    STR_APPEND_CHECK(yytext[0], 1);
  ------------------
  |  |  704|  1.44M|#define STR_APPEND_CHECK(chr, chk) do {                     \
  |  |  705|  1.44M|    if ((chk) && apr_iscntrl((chr))) {                      \
  |  |  ------------------
  |  |  |  |  207|  1.44M|#define apr_iscntrl(c) (iscntrl(((unsigned char)(c))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (207:24): [True: 38, False: 1.44M]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (705:9): [Folded - Ignored]
  |  |  ------------------
  |  |  706|     38|        PERROR_CHAR("Invalid string character ", (chr));    \
  |  |  ------------------
  |  |  |  |  650|     38|#define PERROR_CHAR(prefix, chr) do {                                       \
  |  |  |  |  651|     38|    char *msg;                                                              \
  |  |  |  |  652|     38|    if (apr_isprint((chr))) {                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|     38|#define apr_isprint(c) (isprint(((unsigned char)(c))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (221:24): [True: 0, False: 38]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  653|      0|        msg = apr_psprintf(yyextra->pool, prefix "'%c'", (char)(chr));      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  654|      0|    }                                                                       \
  |  |  |  |  655|     38|    else {                                                                  \
  |  |  |  |  656|     38|        msg = apr_psprintf(yyextra->pool, prefix "'\\x%.2X'", (int)(chr));  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|     38|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  657|     38|    }                                                                       \
  |  |  |  |  658|     38|    PERROR(msg);                                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |  645|     38|#define PERROR(msg) do {    \
  |  |  |  |  |  |  646|     38|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|     38|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  647|     38|    return T_ERROR;         \
  |  |  |  |  |  |  648|     38|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  659|     38|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (659:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  707|     38|    }                                                       \
  |  |  708|  1.44M|    if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  ------------------
  |  |  |  |  699|  1.44M|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|  1.44M|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  ------------------
  |  |  |  |  700|  1.44M|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|  1.44M|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  ------------------
  |  |  |  |  700|  1.44M|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|  1.44M|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (708:9): [True: 108, False: 1.44M]
  |  |  ------------------
  |  |  709|    108|        PERROR("String too long");                          \
  |  |  ------------------
  |  |  |  |  645|    108|#define PERROR(msg) do {    \
  |  |  |  |  646|    108|    yyextra->error2 = msg;  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|    108|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  647|    108|    return T_ERROR;         \
  |  |  |  |  648|    108|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  710|    108|    }                                                       \
  |  |  711|  1.44M|    *str_ptr++ = (char)(chr);                               \
  |  |  ------------------
  |  |  |  |  699|  1.44M|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|  1.44M|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  712|  1.44M|} while (0)
  |  |  ------------------
  |  |  |  Branch (712:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1231|  1.44M|}
 1232|  1.44M|	YY_BREAK
  ------------------
  |  |  963|  1.44M|#define YY_BREAK /*LINTED*/break;
  ------------------
 1233|  1.44M|case 16:
  ------------------
  |  Branch (1233:1): [True: 0, False: 1.53M]
  ------------------
 1234|       |/* rule 16 can match eol */
 1235|      0|YY_RULE_SETUP
 1236|      0|#line 291 "util_expr_scan.l"
 1237|      0|{ 
 1238|       |    /* NOP */
 1239|      0|}
 1240|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1241|      0|case 17:
  ------------------
  |  Branch (1241:1): [True: 0, False: 1.53M]
  ------------------
 1242|      0|YY_RULE_SETUP
 1243|      0|#line 295 "util_expr_scan.l"
 1244|      0|{
 1245|      0|    STATE_PUSH(str, 1);
  ------------------
  |  |  685|      0|#define STATE_PUSH(st, sk) do {     \
  |  |  686|      0|    yy_push_state((st), yyscanner); \
  |  |  687|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (687:9): [Folded - Ignored]
  |  |  ------------------
  |  |  688|      0|        STACK_PUSH();               \
  |  |  ------------------
  |  |  |  |  661|      0|#define STACK_PUSH() do {                               \
  |  |  |  |  662|      0|    ap_expr_parser_stack_t *sk;                         \
  |  |  |  |  663|      0|    if (yyextra->spares) {                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (663:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  664|      0|        sk = yyextra->spares;                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  665|      0|        yyextra->spares = sk->next;                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  666|      0|    }                                                   \
  |  |  |  |  667|      0|    else {                                              \
  |  |  |  |  668|      0|        sk = apr_palloc(yyextra->ptemp, sizeof(*sk));   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  425|      0|    apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|      0|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  153|      0|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  155|      0|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  669|      0|    }                                                   \
  |  |  |  |  670|      0|    sk->scan_ptr  = sk->scan_buf;                       \
  |  |  |  |  671|      0|    sk->scan_stop = sk->scan_buf[0] = '\0';             \
  |  |  |  |  672|      0|    sk->scan_flag = 0;                                  \
  |  |  |  |  673|      0|    sk->next = yyextra->current;                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  674|      0|    yyextra->current = sk;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  675|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (675:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  689|      0|    }                               \
  |  |  690|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (690:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1246|      0|    str_stop = yytext[0];
  ------------------
  |  |  701|      0|#define str_stop (yyextra->current->scan_stop)
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  ------------------
                  str_stop = yytext[0];
  ------------------
  |  |  122|      0|#define yytext yyg->yytext_r
  ------------------
 1247|      0|    return T_STR_BEGIN;
 1248|  1.44M|}
 1249|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1250|      0|case 18:
  ------------------
  |  Branch (1250:1): [True: 0, False: 1.53M]
  ------------------
 1251|      0|YY_RULE_SETUP
 1252|      0|#line 301 "util_expr_scan.l"
 1253|      0|{
 1254|      0|    STATE_PUSH(expr, 1);
  ------------------
  |  |  685|      0|#define STATE_PUSH(st, sk) do {     \
  |  |  686|      0|    yy_push_state((st), yyscanner); \
  |  |  687|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (687:9): [Folded - Ignored]
  |  |  ------------------
  |  |  688|      0|        STACK_PUSH();               \
  |  |  ------------------
  |  |  |  |  661|      0|#define STACK_PUSH() do {                               \
  |  |  |  |  662|      0|    ap_expr_parser_stack_t *sk;                         \
  |  |  |  |  663|      0|    if (yyextra->spares) {                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (663:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  664|      0|        sk = yyextra->spares;                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  665|      0|        yyextra->spares = sk->next;                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  666|      0|    }                                                   \
  |  |  |  |  667|      0|    else {                                              \
  |  |  |  |  668|      0|        sk = apr_palloc(yyextra->ptemp, sizeof(*sk));   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  425|      0|    apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|      0|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  153|      0|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  155|      0|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  669|      0|    }                                                   \
  |  |  |  |  670|      0|    sk->scan_ptr  = sk->scan_buf;                       \
  |  |  |  |  671|      0|    sk->scan_stop = sk->scan_buf[0] = '\0';             \
  |  |  |  |  672|      0|    sk->scan_flag = 0;                                  \
  |  |  |  |  673|      0|    sk->next = yyextra->current;                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  674|      0|    yyextra->current = sk;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  675|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (675:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  689|      0|    }                               \
  |  |  690|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (690:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1255|      0|    return T_VAREXP_BEGIN;
 1256|  1.44M|}
 1257|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1258|      0|case 19:
  ------------------
  |  Branch (1258:1): [True: 0, False: 1.53M]
  ------------------
 1259|      0|YY_RULE_SETUP
 1260|      0|#line 305 "util_expr_scan.l"
 1261|      0|{
 1262|      0|    STATE_POP(1); /* <expr> */
  ------------------
  |  |  692|      0|#define STATE_POP(sk) do {          \
  |  |  693|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (693:9): [Folded - Ignored]
  |  |  ------------------
  |  |  694|      0|        STACK_POP();                \
  |  |  ------------------
  |  |  |  |  677|      0|#define STACK_POP() do {            \
  |  |  |  |  678|      0|    ap_expr_parser_stack_t *sk;     \
  |  |  |  |  679|      0|    sk = yyextra->current;          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  680|      0|    yyextra->current = sk->next;    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  681|      0|    sk->next = yyextra->spares;     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  682|      0|    yyextra->spares = sk;           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  683|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (683:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  695|      0|    }                               \
  |  |  696|      0|    yy_pop_state(yyscanner);        \
  |  |  697|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (697:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1263|      0|    return T_VAREXP_END;
 1264|  1.44M|}
 1265|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1266|      0|case 20:
  ------------------
  |  Branch (1266:1): [True: 0, False: 1.53M]
  ------------------
 1267|      0|YY_RULE_SETUP
 1268|      0|#line 311 "util_expr_scan.l"
 1269|      0|{
 1270|      0|    STATE_PUSH(var, 1);
  ------------------
  |  |  685|      0|#define STATE_PUSH(st, sk) do {     \
  |  |  686|      0|    yy_push_state((st), yyscanner); \
  |  |  687|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (687:9): [Folded - Ignored]
  |  |  ------------------
  |  |  688|      0|        STACK_PUSH();               \
  |  |  ------------------
  |  |  |  |  661|      0|#define STACK_PUSH() do {                               \
  |  |  |  |  662|      0|    ap_expr_parser_stack_t *sk;                         \
  |  |  |  |  663|      0|    if (yyextra->spares) {                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (663:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  664|      0|        sk = yyextra->spares;                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  665|      0|        yyextra->spares = sk->next;                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  666|      0|    }                                                   \
  |  |  |  |  667|      0|    else {                                              \
  |  |  |  |  668|      0|        sk = apr_palloc(yyextra->ptemp, sizeof(*sk));   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  425|      0|    apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|      0|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  153|      0|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  155|      0|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  669|      0|    }                                                   \
  |  |  |  |  670|      0|    sk->scan_ptr  = sk->scan_buf;                       \
  |  |  |  |  671|      0|    sk->scan_stop = sk->scan_buf[0] = '\0';             \
  |  |  |  |  672|      0|    sk->scan_flag = 0;                                  \
  |  |  |  |  673|      0|    sk->next = yyextra->current;                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  674|      0|    yyextra->current = sk;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  675|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (675:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  689|      0|    }                               \
  |  |  690|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (690:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1271|      0|    return T_VAR_BEGIN;
 1272|  1.44M|}
 1273|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1274|      0|case 21:
  ------------------
  |  Branch (1274:1): [True: 0, False: 1.53M]
  ------------------
 1275|      0|YY_RULE_SETUP
 1276|      0|#line 315 "util_expr_scan.l"
 1277|      0|{
 1278|      0|    yylval->cpVal = apr_pstrdup(yyextra->pool, yytext);
  ------------------
  |  |  786|      0|    #    define yylval yyg->yylval_r
  ------------------
                  yylval->cpVal = apr_pstrdup(yyextra->pool, yytext);
  ------------------
  |  |  120|      0|#define yyextra yyg->yyextra_r
  ------------------
                  yylval->cpVal = apr_pstrdup(yyextra->pool, yytext);
  ------------------
  |  |  122|      0|#define yytext yyg->yytext_r
  ------------------
 1279|      0|    return T_ID;
 1280|  1.44M|}
 1281|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1282|      0|case 22:
  ------------------
  |  Branch (1282:1): [True: 0, False: 1.53M]
  ------------------
 1283|      0|YY_RULE_SETUP
 1284|      0|#line 319 "util_expr_scan.l"
 1285|      0|{
 1286|      0|    STATE_PUSH(vararg, 0);
  ------------------
  |  |  685|      0|#define STATE_PUSH(st, sk) do {     \
  |  |  686|      0|    yy_push_state((st), yyscanner); \
  |  |  687|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (687:9): [Folded - Ignored]
  |  |  ------------------
  |  |  688|      0|        STACK_PUSH();               \
  |  |  ------------------
  |  |  |  |  661|      0|#define STACK_PUSH() do {                               \
  |  |  |  |  662|      0|    ap_expr_parser_stack_t *sk;                         \
  |  |  |  |  663|      0|    if (yyextra->spares) {                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (663:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  664|      0|        sk = yyextra->spares;                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  665|      0|        yyextra->spares = sk->next;                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  666|      0|    }                                                   \
  |  |  |  |  667|      0|    else {                                              \
  |  |  |  |  668|      0|        sk = apr_palloc(yyextra->ptemp, sizeof(*sk));   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  425|      0|    apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|      0|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  153|      0|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  155|      0|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  669|      0|    }                                                   \
  |  |  |  |  670|      0|    sk->scan_ptr  = sk->scan_buf;                       \
  |  |  |  |  671|      0|    sk->scan_stop = sk->scan_buf[0] = '\0';             \
  |  |  |  |  672|      0|    sk->scan_flag = 0;                                  \
  |  |  |  |  673|      0|    sk->next = yyextra->current;                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  674|      0|    yyextra->current = sk;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  675|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (675:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  689|      0|    }                               \
  |  |  690|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (690:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1287|      0|    return yytext[0];
  ------------------
  |  |  122|      0|#define yytext yyg->yytext_r
  ------------------
 1288|  1.44M|}
 1289|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1290|      0|case 23:
  ------------------
  |  Branch (1290:1): [True: 0, False: 1.53M]
  ------------------
 1291|      0|YY_RULE_SETUP
 1292|      0|#line 323 "util_expr_scan.l"
 1293|      0|{
 1294|      0|    yyless(0); /* let <var> handle */
  ------------------
  |  |  184|      0|	do \
  |  |  185|      0|		{ \
  |  |  186|      0|		/* Undo effects of setting up yytext. */ \
  |  |  187|      0|        int yyless_macro_arg = (n); \
  |  |  188|      0|        YY_LESS_LINENO(yyless_macro_arg);\
  |  |  189|      0|		*yy_cp = yyg->yy_hold_char; \
  |  |  190|      0|		YY_RESTORE_YY_MORE_OFFSET \
  |  |  191|      0|		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
  |  |  ------------------
  |  |  |  |  570|      0|#define YY_MORE_ADJ 0
  |  |  ------------------
  |  |  192|      0|		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  |  |  ------------------
  |  |  |  |  344|      0|	yyg->yytext_ptr = yy_bp; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  333|      0|#define yytext_ptr yytext_r
  |  |  |  |  ------------------
  |  |  |  |  345|      0|	yyleng = (int) (yy_cp - yy_bp); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|#define yyleng yyg->yyleng_r
  |  |  |  |  ------------------
  |  |  |  |  346|      0|	yyg->yy_hold_char = *yy_cp; \
  |  |  |  |  347|      0|	*yy_cp = '\0'; \
  |  |  |  |  348|      0|	yyg->yy_c_buf_p = yy_cp;
  |  |  ------------------
  |  |  193|      0|		} \
  |  |  194|      0|	while ( 0 )
  |  |  ------------------
  |  |  |  Branch (194:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1295|      0|    yylval->cpVal = STR_RETURN();
  ------------------
  |  |  786|      0|    #    define yylval yyg->yylval_r
  ------------------
                  yylval->cpVal = STR_RETURN();
  ------------------
  |  |  721|      0|    (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1296|      0|    STATE_POP(0); /* <vararg> */
  ------------------
  |  |  692|      0|#define STATE_POP(sk) do {          \
  |  |  693|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (693:9): [Folded - Ignored]
  |  |  ------------------
  |  |  694|      0|        STACK_POP();                \
  |  |  ------------------
  |  |  |  |  677|      0|#define STACK_POP() do {            \
  |  |  |  |  678|      0|    ap_expr_parser_stack_t *sk;     \
  |  |  |  |  679|      0|    sk = yyextra->current;          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  680|      0|    yyextra->current = sk->next;    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  681|      0|    sk->next = yyextra->spares;     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  682|      0|    yyextra->spares = sk;           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  683|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (683:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  695|      0|    }                               \
  |  |  696|      0|    yy_pop_state(yyscanner);        \
  |  |  697|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (697:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1297|      0|    return T_STRING;
 1298|  1.44M|}
 1299|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1300|      0|case 24:
  ------------------
  |  Branch (1300:1): [True: 0, False: 1.53M]
  ------------------
 1301|       |/* rule 24 can match eol */
 1302|      0|YY_RULE_SETUP
 1303|      0|#line 329 "util_expr_scan.l"
 1304|      0|{
 1305|      0|    STR_APPEND_CHECK(yytext[0], 1);
  ------------------
  |  |  704|      0|#define STR_APPEND_CHECK(chr, chk) do {                     \
  |  |  705|      0|    if ((chk) && apr_iscntrl((chr))) {                      \
  |  |  ------------------
  |  |  |  |  207|      0|#define apr_iscntrl(c) (iscntrl(((unsigned char)(c))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (207:24): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (705:9): [Folded - Ignored]
  |  |  ------------------
  |  |  706|      0|        PERROR_CHAR("Invalid string character ", (chr));    \
  |  |  ------------------
  |  |  |  |  650|      0|#define PERROR_CHAR(prefix, chr) do {                                       \
  |  |  |  |  651|      0|    char *msg;                                                              \
  |  |  |  |  652|      0|    if (apr_isprint((chr))) {                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|      0|#define apr_isprint(c) (isprint(((unsigned char)(c))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (221:24): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  653|      0|        msg = apr_psprintf(yyextra->pool, prefix "'%c'", (char)(chr));      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  654|      0|    }                                                                       \
  |  |  |  |  655|      0|    else {                                                                  \
  |  |  |  |  656|      0|        msg = apr_psprintf(yyextra->pool, prefix "'\\x%.2X'", (int)(chr));  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  657|      0|    }                                                                       \
  |  |  |  |  658|      0|    PERROR(msg);                                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  659|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (659:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  707|      0|    }                                                       \
  |  |  708|      0|    if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (708:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  709|      0|        PERROR("String too long");                          \
  |  |  ------------------
  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  648|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  710|      0|    }                                                       \
  |  |  711|      0|    *str_ptr++ = (char)(chr);                               \
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  712|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (712:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1306|      0|}
 1307|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1308|      0|case 25:
  ------------------
  |  Branch (1308:1): [True: 0, False: 1.53M]
  ------------------
 1309|      0|YY_RULE_SETUP
 1310|      0|#line 332 "util_expr_scan.l"
 1311|      0|{
 1312|      0|    STATE_POP(1); /* <var> */
  ------------------
  |  |  692|      0|#define STATE_POP(sk) do {          \
  |  |  693|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (693:9): [Folded - Ignored]
  |  |  ------------------
  |  |  694|      0|        STACK_POP();                \
  |  |  ------------------
  |  |  |  |  677|      0|#define STACK_POP() do {            \
  |  |  |  |  678|      0|    ap_expr_parser_stack_t *sk;     \
  |  |  |  |  679|      0|    sk = yyextra->current;          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  680|      0|    yyextra->current = sk->next;    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  681|      0|    sk->next = yyextra->spares;     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  682|      0|    yyextra->spares = sk;           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  683|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (683:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  695|      0|    }                               \
  |  |  696|      0|    yy_pop_state(yyscanner);        \
  |  |  697|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (697:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1313|      0|    return T_VAR_END;
 1314|      0|}
 1315|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1316|      0|case 26:
  ------------------
  |  Branch (1316:1): [True: 0, False: 1.53M]
  ------------------
 1317|       |/* rule 26 can match eol */
 1318|      0|YY_RULE_SETUP
 1319|      0|#line 336 "util_expr_scan.l"
 1320|      0|{
 1321|      0|    PERROR_CHAR("Unexpected variable character ", yytext[0]);
  ------------------
  |  |  650|      0|#define PERROR_CHAR(prefix, chr) do {                                       \
  |  |  651|      0|    char *msg;                                                              \
  |  |  652|      0|    if (apr_isprint((chr))) {                                               \
  |  |  ------------------
  |  |  |  |  221|      0|#define apr_isprint(c) (isprint(((unsigned char)(c))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (221:24): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  653|      0|        msg = apr_psprintf(yyextra->pool, prefix "'%c'", (char)(chr));      \
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  654|      0|    }                                                                       \
  |  |  655|      0|    else {                                                                  \
  |  |  656|      0|        msg = apr_psprintf(yyextra->pool, prefix "'\\x%.2X'", (int)(chr));  \
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  657|      0|    }                                                                       \
  |  |  658|      0|    PERROR(msg);                                                            \
  |  |  ------------------
  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  648|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  659|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (659:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1322|      0|}
 1323|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1324|      0|case YY_STATE_EOF(var):
  ------------------
  |  |  141|      0|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  |  |  ------------------
  |  |  |  |  351|      0|#define YY_END_OF_BUFFER 74
  |  |  ------------------
  ------------------
  |  Branch (1324:1): [True: 0, False: 1.53M]
  ------------------
 1325|      0|case YY_STATE_EOF(vararg):
  ------------------
  |  |  141|      0|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  |  |  ------------------
  |  |  |  |  351|      0|#define YY_END_OF_BUFFER 74
  |  |  ------------------
  ------------------
  |  Branch (1325:1): [True: 0, False: 1.53M]
  ------------------
 1326|      0|#line 339 "util_expr_scan.l"
 1327|      0|{
 1328|      0|    PERROR("Unterminated variable");
  ------------------
  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  647|      0|    return T_ERROR;         \
  |  |  648|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1329|      0|}
 1330|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1331|       |/*
 1332|       |  * Regular Expression
 1333|       |  */
 1334|      0|case 27:
  ------------------
  |  Branch (1334:1): [True: 0, False: 1.53M]
  ------------------
 1335|      0|YY_RULE_SETUP
 1336|      0|#line 347 "util_expr_scan.l"
 1337|      0|{
 1338|      0|    STATE_PUSH(regex, 1);
  ------------------
  |  |  685|      0|#define STATE_PUSH(st, sk) do {     \
  |  |  686|      0|    yy_push_state((st), yyscanner); \
  |  |  687|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (687:9): [Folded - Ignored]
  |  |  ------------------
  |  |  688|      0|        STACK_PUSH();               \
  |  |  ------------------
  |  |  |  |  661|      0|#define STACK_PUSH() do {                               \
  |  |  |  |  662|      0|    ap_expr_parser_stack_t *sk;                         \
  |  |  |  |  663|      0|    if (yyextra->spares) {                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (663:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  664|      0|        sk = yyextra->spares;                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  665|      0|        yyextra->spares = sk->next;                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  666|      0|    }                                                   \
  |  |  |  |  667|      0|    else {                                              \
  |  |  |  |  668|      0|        sk = apr_palloc(yyextra->ptemp, sizeof(*sk));   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  425|      0|    apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|      0|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  153|      0|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  155|      0|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  669|      0|    }                                                   \
  |  |  |  |  670|      0|    sk->scan_ptr  = sk->scan_buf;                       \
  |  |  |  |  671|      0|    sk->scan_stop = sk->scan_buf[0] = '\0';             \
  |  |  |  |  672|      0|    sk->scan_flag = 0;                                  \
  |  |  |  |  673|      0|    sk->next = yyextra->current;                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  674|      0|    yyextra->current = sk;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  675|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (675:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  689|      0|    }                               \
  |  |  690|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (690:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1339|      0|    str_stop = yytext[0];
  ------------------
  |  |  701|      0|#define str_stop (yyextra->current->scan_stop)
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  ------------------
                  str_stop = yytext[0];
  ------------------
  |  |  122|      0|#define yytext yyg->yytext_r
  ------------------
 1340|      0|    str_flag = 'm';
  ------------------
  |  |  702|      0|#define str_flag (yyextra->current->scan_flag)
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  ------------------
 1341|      0|    return T_REGEX;
 1342|      0|}
 1343|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1344|      0|case 28:
  ------------------
  |  Branch (1344:1): [True: 0, False: 1.53M]
  ------------------
 1345|      0|YY_RULE_SETUP
 1346|      0|#line 353 "util_expr_scan.l"
 1347|      0|{
 1348|      0|    STATE_PUSH(regex, 1);
  ------------------
  |  |  685|      0|#define STATE_PUSH(st, sk) do {     \
  |  |  686|      0|    yy_push_state((st), yyscanner); \
  |  |  687|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (687:9): [Folded - Ignored]
  |  |  ------------------
  |  |  688|      0|        STACK_PUSH();               \
  |  |  ------------------
  |  |  |  |  661|      0|#define STACK_PUSH() do {                               \
  |  |  |  |  662|      0|    ap_expr_parser_stack_t *sk;                         \
  |  |  |  |  663|      0|    if (yyextra->spares) {                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (663:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  664|      0|        sk = yyextra->spares;                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  665|      0|        yyextra->spares = sk->next;                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  666|      0|    }                                                   \
  |  |  |  |  667|      0|    else {                                              \
  |  |  |  |  668|      0|        sk = apr_palloc(yyextra->ptemp, sizeof(*sk));   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  425|      0|    apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|      0|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  153|      0|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  155|      0|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  669|      0|    }                                                   \
  |  |  |  |  670|      0|    sk->scan_ptr  = sk->scan_buf;                       \
  |  |  |  |  671|      0|    sk->scan_stop = sk->scan_buf[0] = '\0';             \
  |  |  |  |  672|      0|    sk->scan_flag = 0;                                  \
  |  |  |  |  673|      0|    sk->next = yyextra->current;                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  674|      0|    yyextra->current = sk;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  675|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (675:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  689|      0|    }                               \
  |  |  690|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (690:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1349|      0|    str_stop = yytext[1];
  ------------------
  |  |  701|      0|#define str_stop (yyextra->current->scan_stop)
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  ------------------
                  str_stop = yytext[1];
  ------------------
  |  |  122|      0|#define yytext yyg->yytext_r
  ------------------
 1350|      0|    str_flag = yytext[0];
  ------------------
  |  |  702|      0|#define str_flag (yyextra->current->scan_flag)
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  ------------------
                  str_flag = yytext[0];
  ------------------
  |  |  122|      0|#define yytext yyg->yytext_r
  ------------------
 1351|      0|    return (str_flag == 'm') ? T_REGEX : T_REGSUB;
  ------------------
  |  |  702|      0|#define str_flag (yyextra->current->scan_flag)
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  ------------------
  |  Branch (1351:12): [True: 0, False: 0]
  ------------------
 1352|      0|}
 1353|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1354|      0|case 29:
  ------------------
  |  Branch (1354:1): [True: 0, False: 1.53M]
  ------------------
 1355|       |/* rule 29 can match eol */
 1356|      0|YY_RULE_SETUP
 1357|      0|#line 359 "util_expr_scan.l"
 1358|      0|{
 1359|      0|    if (yytext[0] == str_stop) {
  ------------------
  |  |  122|      0|#define yytext yyg->yytext_r
  ------------------
                  if (yytext[0] == str_stop) {
  ------------------
  |  |  701|      0|#define str_stop (yyextra->current->scan_stop)
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  ------------------
  |  Branch (1359:9): [True: 0, False: 0]
  ------------------
 1360|      0|        yylval->cpVal = STR_RETURN();
  ------------------
  |  |  786|      0|    #    define yylval yyg->yylval_r
  ------------------
                      yylval->cpVal = STR_RETURN();
  ------------------
  |  |  721|      0|    (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1361|      0|        STATE_POP(0); /* <regex> */
  ------------------
  |  |  692|      0|#define STATE_POP(sk) do {          \
  |  |  693|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (693:9): [Folded - Ignored]
  |  |  ------------------
  |  |  694|      0|        STACK_POP();                \
  |  |  ------------------
  |  |  |  |  677|      0|#define STACK_POP() do {            \
  |  |  |  |  678|      0|    ap_expr_parser_stack_t *sk;     \
  |  |  |  |  679|      0|    sk = yyextra->current;          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  680|      0|    yyextra->current = sk->next;    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  681|      0|    sk->next = yyextra->spares;     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  682|      0|    yyextra->spares = sk;           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  683|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (683:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  695|      0|    }                               \
  |  |  696|      0|    yy_pop_state(yyscanner);        \
  |  |  697|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (697:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1362|      0|        if (str_flag == 'm') {
  ------------------
  |  |  702|      0|#define str_flag (yyextra->current->scan_flag)
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  ------------------
  |  Branch (1362:13): [True: 0, False: 0]
  ------------------
 1363|      0|            STATE_PUSH(regflags, 0);
  ------------------
  |  |  685|      0|#define STATE_PUSH(st, sk) do {     \
  |  |  686|      0|    yy_push_state((st), yyscanner); \
  |  |  687|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (687:9): [Folded - Ignored]
  |  |  ------------------
  |  |  688|      0|        STACK_PUSH();               \
  |  |  ------------------
  |  |  |  |  661|      0|#define STACK_PUSH() do {                               \
  |  |  |  |  662|      0|    ap_expr_parser_stack_t *sk;                         \
  |  |  |  |  663|      0|    if (yyextra->spares) {                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (663:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  664|      0|        sk = yyextra->spares;                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  665|      0|        yyextra->spares = sk->next;                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  666|      0|    }                                                   \
  |  |  |  |  667|      0|    else {                                              \
  |  |  |  |  668|      0|        sk = apr_palloc(yyextra->ptemp, sizeof(*sk));   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  425|      0|    apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|      0|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  153|      0|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  155|      0|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  669|      0|    }                                                   \
  |  |  |  |  670|      0|    sk->scan_ptr  = sk->scan_buf;                       \
  |  |  |  |  671|      0|    sk->scan_stop = sk->scan_buf[0] = '\0';             \
  |  |  |  |  672|      0|    sk->scan_flag = 0;                                  \
  |  |  |  |  673|      0|    sk->next = yyextra->current;                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  674|      0|    yyextra->current = sk;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  675|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (675:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  689|      0|    }                               \
  |  |  690|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (690:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1364|      0|        }
 1365|      0|        else {
 1366|      0|            STATE_PUSH(regsub, 0);
  ------------------
  |  |  685|      0|#define STATE_PUSH(st, sk) do {     \
  |  |  686|      0|    yy_push_state((st), yyscanner); \
  |  |  687|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (687:9): [Folded - Ignored]
  |  |  ------------------
  |  |  688|      0|        STACK_PUSH();               \
  |  |  ------------------
  |  |  |  |  661|      0|#define STACK_PUSH() do {                               \
  |  |  |  |  662|      0|    ap_expr_parser_stack_t *sk;                         \
  |  |  |  |  663|      0|    if (yyextra->spares) {                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (663:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  664|      0|        sk = yyextra->spares;                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  665|      0|        yyextra->spares = sk->next;                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  666|      0|    }                                                   \
  |  |  |  |  667|      0|    else {                                              \
  |  |  |  |  668|      0|        sk = apr_palloc(yyextra->ptemp, sizeof(*sk));   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  425|      0|    apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|      0|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  153|      0|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  155|      0|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  669|      0|    }                                                   \
  |  |  |  |  670|      0|    sk->scan_ptr  = sk->scan_buf;                       \
  |  |  |  |  671|      0|    sk->scan_stop = sk->scan_buf[0] = '\0';             \
  |  |  |  |  672|      0|    sk->scan_flag = 0;                                  \
  |  |  |  |  673|      0|    sk->next = yyextra->current;                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  674|      0|    yyextra->current = sk;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  675|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (675:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  689|      0|    }                               \
  |  |  690|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (690:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1367|      0|        }
 1368|      0|        return T_REG_MATCH;
 1369|      0|    }
 1370|      0|    STR_APPEND_CHECK(yytext[0], 1);
  ------------------
  |  |  704|      0|#define STR_APPEND_CHECK(chr, chk) do {                     \
  |  |  705|      0|    if ((chk) && apr_iscntrl((chr))) {                      \
  |  |  ------------------
  |  |  |  |  207|      0|#define apr_iscntrl(c) (iscntrl(((unsigned char)(c))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (207:24): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (705:9): [Folded - Ignored]
  |  |  ------------------
  |  |  706|      0|        PERROR_CHAR("Invalid string character ", (chr));    \
  |  |  ------------------
  |  |  |  |  650|      0|#define PERROR_CHAR(prefix, chr) do {                                       \
  |  |  |  |  651|      0|    char *msg;                                                              \
  |  |  |  |  652|      0|    if (apr_isprint((chr))) {                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|      0|#define apr_isprint(c) (isprint(((unsigned char)(c))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (221:24): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  653|      0|        msg = apr_psprintf(yyextra->pool, prefix "'%c'", (char)(chr));      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  654|      0|    }                                                                       \
  |  |  |  |  655|      0|    else {                                                                  \
  |  |  |  |  656|      0|        msg = apr_psprintf(yyextra->pool, prefix "'\\x%.2X'", (int)(chr));  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  657|      0|    }                                                                       \
  |  |  |  |  658|      0|    PERROR(msg);                                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  659|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (659:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  707|      0|    }                                                       \
  |  |  708|      0|    if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (708:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  709|      0|        PERROR("String too long");                          \
  |  |  ------------------
  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  648|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  710|      0|    }                                                       \
  |  |  711|      0|    *str_ptr++ = (char)(chr);                               \
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  712|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (712:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1371|      0|}
 1372|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1373|      0|case 30:
  ------------------
  |  Branch (1373:1): [True: 0, False: 1.53M]
  ------------------
 1374|       |/* rule 30 can match eol */
 1375|      0|YY_RULE_SETUP
 1376|      0|#line 373 "util_expr_scan.l"
 1377|      0|{
 1378|      0|    if (yytext[0] == str_stop) {
  ------------------
  |  |  122|      0|#define yytext yyg->yytext_r
  ------------------
                  if (yytext[0] == str_stop) {
  ------------------
  |  |  701|      0|#define str_stop (yyextra->current->scan_stop)
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  ------------------
  |  Branch (1378:9): [True: 0, False: 0]
  ------------------
 1379|      0|        yylval->cpVal = STR_RETURN();
  ------------------
  |  |  786|      0|    #    define yylval yyg->yylval_r
  ------------------
                      yylval->cpVal = STR_RETURN();
  ------------------
  |  |  721|      0|    (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1380|      0|        STATE_POP(0); /* <regsub> */
  ------------------
  |  |  692|      0|#define STATE_POP(sk) do {          \
  |  |  693|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (693:9): [Folded - Ignored]
  |  |  ------------------
  |  |  694|      0|        STACK_POP();                \
  |  |  ------------------
  |  |  |  |  677|      0|#define STACK_POP() do {            \
  |  |  |  |  678|      0|    ap_expr_parser_stack_t *sk;     \
  |  |  |  |  679|      0|    sk = yyextra->current;          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  680|      0|    yyextra->current = sk->next;    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  681|      0|    sk->next = yyextra->spares;     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  682|      0|    yyextra->spares = sk;           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  683|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (683:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  695|      0|    }                               \
  |  |  696|      0|    yy_pop_state(yyscanner);        \
  |  |  697|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (697:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1381|      0|        STATE_PUSH(regflags, 0);
  ------------------
  |  |  685|      0|#define STATE_PUSH(st, sk) do {     \
  |  |  686|      0|    yy_push_state((st), yyscanner); \
  |  |  687|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (687:9): [Folded - Ignored]
  |  |  ------------------
  |  |  688|      0|        STACK_PUSH();               \
  |  |  ------------------
  |  |  |  |  661|      0|#define STACK_PUSH() do {                               \
  |  |  |  |  662|      0|    ap_expr_parser_stack_t *sk;                         \
  |  |  |  |  663|      0|    if (yyextra->spares) {                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (663:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  664|      0|        sk = yyextra->spares;                           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  665|      0|        yyextra->spares = sk->next;                     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  666|      0|    }                                                   \
  |  |  |  |  667|      0|    else {                                              \
  |  |  |  |  668|      0|        sk = apr_palloc(yyextra->ptemp, sizeof(*sk));   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  425|      0|    apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  143|      0|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  153|      0|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  155|      0|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  669|      0|    }                                                   \
  |  |  |  |  670|      0|    sk->scan_ptr  = sk->scan_buf;                       \
  |  |  |  |  671|      0|    sk->scan_stop = sk->scan_buf[0] = '\0';             \
  |  |  |  |  672|      0|    sk->scan_flag = 0;                                  \
  |  |  |  |  673|      0|    sk->next = yyextra->current;                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  674|      0|    yyextra->current = sk;                              \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  675|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (675:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  689|      0|    }                               \
  |  |  690|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (690:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1382|      0|        return T_STRING;
 1383|      0|    }
 1384|      0|    STR_APPEND_CHECK(yytext[0], 1);
  ------------------
  |  |  704|      0|#define STR_APPEND_CHECK(chr, chk) do {                     \
  |  |  705|      0|    if ((chk) && apr_iscntrl((chr))) {                      \
  |  |  ------------------
  |  |  |  |  207|      0|#define apr_iscntrl(c) (iscntrl(((unsigned char)(c))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (207:24): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (705:9): [Folded - Ignored]
  |  |  ------------------
  |  |  706|      0|        PERROR_CHAR("Invalid string character ", (chr));    \
  |  |  ------------------
  |  |  |  |  650|      0|#define PERROR_CHAR(prefix, chr) do {                                       \
  |  |  |  |  651|      0|    char *msg;                                                              \
  |  |  |  |  652|      0|    if (apr_isprint((chr))) {                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  221|      0|#define apr_isprint(c) (isprint(((unsigned char)(c))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (221:24): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  653|      0|        msg = apr_psprintf(yyextra->pool, prefix "'%c'", (char)(chr));      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  654|      0|    }                                                                       \
  |  |  |  |  655|      0|    else {                                                                  \
  |  |  |  |  656|      0|        msg = apr_psprintf(yyextra->pool, prefix "'\\x%.2X'", (int)(chr));  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  657|      0|    }                                                                       \
  |  |  |  |  658|      0|    PERROR(msg);                                                            \
  |  |  |  |  ------------------
  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  659|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (659:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  707|      0|    }                                                       \
  |  |  708|      0|    if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (708:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  709|      0|        PERROR("String too long");                          \
  |  |  ------------------
  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  648|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  710|      0|    }                                                       \
  |  |  711|      0|    *str_ptr++ = (char)(chr);                               \
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  712|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (712:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1385|      0|}
 1386|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1387|      0|case 31:
  ------------------
  |  Branch (1387:1): [True: 0, False: 1.53M]
  ------------------
 1388|       |/* rule 31 can match eol */
 1389|      0|YY_RULE_SETUP
 1390|      0|#line 382 "util_expr_scan.l"
 1391|      0|{
 1392|      0|    if (!ap_strchr_c("ismg", yytext[0])) {
  ------------------
  |  | 2504|      0|# define ap_strchr_c(s, c)   strchr(s, c)
  ------------------
  |  Branch (1392:9): [True: 0, False: 0]
  ------------------
 1393|      0|        if (apr_isalnum(yytext[0])) {
  ------------------
  |  |  203|      0|#define apr_isalnum(c) (isalnum(((unsigned char)(c))))
  |  |  ------------------
  |  |  |  Branch (203:24): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1394|      0|            PERROR("Invalid regexp flag(s)");
  ------------------
  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  647|      0|    return T_ERROR;         \
  |  |  648|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1395|      0|        }
 1396|      0|        yyless(0); /* not a flags, rewind */
  ------------------
  |  |  184|      0|	do \
  |  |  185|      0|		{ \
  |  |  186|      0|		/* Undo effects of setting up yytext. */ \
  |  |  187|      0|        int yyless_macro_arg = (n); \
  |  |  188|      0|        YY_LESS_LINENO(yyless_macro_arg);\
  |  |  189|      0|		*yy_cp = yyg->yy_hold_char; \
  |  |  190|      0|		YY_RESTORE_YY_MORE_OFFSET \
  |  |  191|      0|		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
  |  |  ------------------
  |  |  |  |  570|      0|#define YY_MORE_ADJ 0
  |  |  ------------------
  |  |  192|      0|		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  |  |  ------------------
  |  |  |  |  344|      0|	yyg->yytext_ptr = yy_bp; \
  |  |  |  |  ------------------
  |  |  |  |  |  |  333|      0|#define yytext_ptr yytext_r
  |  |  |  |  ------------------
  |  |  |  |  345|      0|	yyleng = (int) (yy_cp - yy_bp); \
  |  |  |  |  ------------------
  |  |  |  |  |  |  121|      0|#define yyleng yyg->yyleng_r
  |  |  |  |  ------------------
  |  |  |  |  346|      0|	yyg->yy_hold_char = *yy_cp; \
  |  |  |  |  347|      0|	*yy_cp = '\0'; \
  |  |  |  |  348|      0|	yyg->yy_c_buf_p = yy_cp;
  |  |  ------------------
  |  |  193|      0|		} \
  |  |  194|      0|	while ( 0 )
  |  |  ------------------
  |  |  |  Branch (194:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1397|      0|        yylval->cpVal = STR_RETURN();
  ------------------
  |  |  786|      0|    #    define yylval yyg->yylval_r
  ------------------
                      yylval->cpVal = STR_RETURN();
  ------------------
  |  |  721|      0|    (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1398|      0|        STATE_POP(1); /* <regflags> */
  ------------------
  |  |  692|      0|#define STATE_POP(sk) do {          \
  |  |  693|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (693:9): [Folded - Ignored]
  |  |  ------------------
  |  |  694|      0|        STACK_POP();                \
  |  |  ------------------
  |  |  |  |  677|      0|#define STACK_POP() do {            \
  |  |  |  |  678|      0|    ap_expr_parser_stack_t *sk;     \
  |  |  |  |  679|      0|    sk = yyextra->current;          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  680|      0|    yyextra->current = sk->next;    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  681|      0|    sk->next = yyextra->spares;     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  682|      0|    yyextra->spares = sk;           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  683|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (683:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  695|      0|    }                               \
  |  |  696|      0|    yy_pop_state(yyscanner);        \
  |  |  697|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (697:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1399|      0|        return T_REG_FLAGS;
 1400|      0|    }
 1401|      0|    STR_APPEND_NOCHECK(yytext[0]);
  ------------------
  |  |  715|      0|    STR_APPEND_CHECK((chr), 0)
  |  |  ------------------
  |  |  |  |  704|      0|#define STR_APPEND_CHECK(chr, chk) do {                     \
  |  |  |  |  705|      0|    if ((chk) && apr_iscntrl((chr))) {                      \
  |  |  |  |  ------------------
  |  |  |  |  |  |  207|      0|#define apr_iscntrl(c) (iscntrl(((unsigned char)(c))))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (207:24): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (705:9): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  |  |  706|      0|        PERROR_CHAR("Invalid string character ", (chr));    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  650|      0|#define PERROR_CHAR(prefix, chr) do {                                       \
  |  |  |  |  |  |  651|      0|    char *msg;                                                              \
  |  |  |  |  |  |  652|      0|    if (apr_isprint((chr))) {                                               \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  221|      0|#define apr_isprint(c) (isprint(((unsigned char)(c))))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (221:24): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  653|      0|        msg = apr_psprintf(yyextra->pool, prefix "'%c'", (char)(chr));      \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  654|      0|    }                                                                       \
  |  |  |  |  |  |  655|      0|    else {                                                                  \
  |  |  |  |  |  |  656|      0|        msg = apr_psprintf(yyextra->pool, prefix "'\\x%.2X'", (int)(chr));  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  657|      0|    }                                                                       \
  |  |  |  |  |  |  658|      0|    PERROR(msg);                                                            \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  659|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (659:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  707|      0|    }                                                       \
  |  |  |  |  708|      0|    if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |                   if (str_ptr >= str_buf + sizeof(str_buf) - 1) {         \
  |  |  |  |  ------------------
  |  |  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (708:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  709|      0|        PERROR("String too long");                          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  |  |  648|      0|} while (0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  710|      0|    }                                                       \
  |  |  |  |  711|      0|    *str_ptr++ = (char)(chr);                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  712|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (712:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1402|      0|}
 1403|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1404|      0|case YY_STATE_EOF(regflags):
  ------------------
  |  |  141|      0|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  |  |  ------------------
  |  |  |  |  351|      0|#define YY_END_OF_BUFFER 74
  |  |  ------------------
  ------------------
  |  Branch (1404:1): [True: 0, False: 1.53M]
  ------------------
 1405|      0|#line 394 "util_expr_scan.l"
 1406|      0|{
 1407|      0|    yylval->cpVal = STR_RETURN();
  ------------------
  |  |  786|      0|    #    define yylval yyg->yylval_r
  ------------------
                  yylval->cpVal = STR_RETURN();
  ------------------
  |  |  721|      0|    (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  699|      0|#define str_ptr  (yyextra->current->scan_ptr)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                   (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf)))
  |  |  ------------------
  |  |  |  |  700|      0|#define str_buf  (yyextra->current->scan_buf)
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1408|      0|    STATE_POP(1); /* <regflags> */
  ------------------
  |  |  692|      0|#define STATE_POP(sk) do {          \
  |  |  693|      0|    if ((sk)) {                     \
  |  |  ------------------
  |  |  |  Branch (693:9): [Folded - Ignored]
  |  |  ------------------
  |  |  694|      0|        STACK_POP();                \
  |  |  ------------------
  |  |  |  |  677|      0|#define STACK_POP() do {            \
  |  |  |  |  678|      0|    ap_expr_parser_stack_t *sk;     \
  |  |  |  |  679|      0|    sk = yyextra->current;          \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  680|      0|    yyextra->current = sk->next;    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  681|      0|    sk->next = yyextra->spares;     \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  682|      0|    yyextra->spares = sk;           \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  683|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (683:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  695|      0|    }                               \
  |  |  696|      0|    yy_pop_state(yyscanner);        \
  |  |  697|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (697:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1409|      0|    return T_REG_FLAGS;
 1410|      0|}
 1411|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1412|      0|case YY_STATE_EOF(regex):
  ------------------
  |  |  141|      0|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  |  |  ------------------
  |  |  |  |  351|      0|#define YY_END_OF_BUFFER 74
  |  |  ------------------
  ------------------
  |  Branch (1412:1): [True: 0, False: 1.53M]
  ------------------
 1413|      0|case YY_STATE_EOF(regsub):
  ------------------
  |  |  141|      0|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  |  |  ------------------
  |  |  |  |  351|      0|#define YY_END_OF_BUFFER 74
  |  |  ------------------
  ------------------
  |  Branch (1413:1): [True: 0, False: 1.53M]
  ------------------
 1414|      0|#line 399 "util_expr_scan.l"
 1415|      0|{
 1416|      0|    PERROR("Unterminated regexp");
  ------------------
  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  647|      0|    return T_ERROR;         \
  |  |  648|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1417|      0|}
 1418|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1419|      0|case 32:
  ------------------
  |  Branch (1419:1): [True: 0, False: 1.53M]
  ------------------
 1420|      0|YY_RULE_SETUP
 1421|      0|#line 403 "util_expr_scan.l"
 1422|      0|{
 1423|      0|    yylval->num = yytext[1] - '0';
  ------------------
  |  |  786|      0|    #    define yylval yyg->yylval_r
  ------------------
                  yylval->num = yytext[1] - '0';
  ------------------
  |  |  122|      0|#define yytext yyg->yytext_r
  ------------------
 1424|      0|    return T_BACKREF;
 1425|      0|}
 1426|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1427|       |/*
 1428|       |  * Operators
 1429|       |  */
 1430|      0|case 33:
  ------------------
  |  Branch (1430:1): [True: 0, False: 1.53M]
  ------------------
 1431|      0|YY_RULE_SETUP
 1432|      0|#line 411 "util_expr_scan.l"
 1433|      0|{ return T_OP_STR_EQ; }
 1434|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1435|      0|case 34:
  ------------------
  |  Branch (1435:1): [True: 0, False: 1.53M]
  ------------------
 1436|      0|YY_RULE_SETUP
 1437|      0|#line 412 "util_expr_scan.l"
 1438|      0|{ return T_OP_STR_NE; }
 1439|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1440|      0|case 35:
  ------------------
  |  Branch (1440:1): [True: 0, False: 1.53M]
  ------------------
 1441|      0|YY_RULE_SETUP
 1442|      0|#line 413 "util_expr_scan.l"
 1443|      0|{ return T_OP_STR_LT; }
 1444|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1445|      0|case 36:
  ------------------
  |  Branch (1445:1): [True: 0, False: 1.53M]
  ------------------
 1446|      0|YY_RULE_SETUP
 1447|      0|#line 414 "util_expr_scan.l"
 1448|      0|{ return T_OP_STR_LE; }
 1449|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1450|      0|case 37:
  ------------------
  |  Branch (1450:1): [True: 0, False: 1.53M]
  ------------------
 1451|      0|YY_RULE_SETUP
 1452|      0|#line 415 "util_expr_scan.l"
 1453|      0|{ return T_OP_STR_GT; }
 1454|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1455|      0|case 38:
  ------------------
  |  Branch (1455:1): [True: 0, False: 1.53M]
  ------------------
 1456|      0|YY_RULE_SETUP
 1457|      0|#line 416 "util_expr_scan.l"
 1458|      0|{ return T_OP_STR_GE; }
 1459|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1460|      0|case 39:
  ------------------
  |  Branch (1460:1): [True: 0, False: 1.53M]
  ------------------
 1461|      0|YY_RULE_SETUP
 1462|      0|#line 417 "util_expr_scan.l"
 1463|      0|{ return T_OP_REG; }
 1464|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1465|      0|case 40:
  ------------------
  |  Branch (1465:1): [True: 0, False: 1.53M]
  ------------------
 1466|      0|YY_RULE_SETUP
 1467|      0|#line 418 "util_expr_scan.l"
 1468|      0|{ return T_OP_NRE; }
 1469|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1470|      0|case 41:
  ------------------
  |  Branch (1470:1): [True: 0, False: 1.53M]
  ------------------
 1471|      0|YY_RULE_SETUP
 1472|      0|#line 419 "util_expr_scan.l"
 1473|      0|{ return T_OP_AND; }
 1474|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1475|      0|case 42:
  ------------------
  |  Branch (1475:1): [True: 0, False: 1.53M]
  ------------------
 1476|      0|YY_RULE_SETUP
 1477|      0|#line 420 "util_expr_scan.l"
 1478|      0|{ return T_OP_AND; }
 1479|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1480|      0|case 43:
  ------------------
  |  Branch (1480:1): [True: 0, False: 1.53M]
  ------------------
 1481|      0|YY_RULE_SETUP
 1482|      0|#line 421 "util_expr_scan.l"
 1483|      0|{ return T_OP_OR; }
 1484|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1485|      0|case 44:
  ------------------
  |  Branch (1485:1): [True: 0, False: 1.53M]
  ------------------
 1486|      0|YY_RULE_SETUP
 1487|      0|#line 422 "util_expr_scan.l"
 1488|      0|{ return T_OP_OR; }
 1489|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1490|      0|case 45:
  ------------------
  |  Branch (1490:1): [True: 0, False: 1.53M]
  ------------------
 1491|      0|YY_RULE_SETUP
 1492|      0|#line 423 "util_expr_scan.l"
 1493|      0|{ return T_OP_NOT; }
 1494|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1495|      0|case 46:
  ------------------
  |  Branch (1495:1): [True: 0, False: 1.53M]
  ------------------
 1496|      0|YY_RULE_SETUP
 1497|      0|#line 424 "util_expr_scan.l"
 1498|      0|{ return T_OP_NOT; }
 1499|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1500|      0|case 47:
  ------------------
  |  Branch (1500:1): [True: 0, False: 1.53M]
  ------------------
 1501|      0|YY_RULE_SETUP
 1502|      0|#line 425 "util_expr_scan.l"
 1503|      0|{ return T_OP_CONCAT; }
 1504|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1505|      0|case 48:
  ------------------
  |  Branch (1505:1): [True: 0, False: 1.53M]
  ------------------
 1506|      0|YY_RULE_SETUP
 1507|      0|#line 426 "util_expr_scan.l"
 1508|      0|{ return T_OP_IN; }
 1509|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1510|      0|case 49:
  ------------------
  |  Branch (1510:1): [True: 0, False: 1.53M]
  ------------------
 1511|      0|YY_RULE_SETUP
 1512|      0|#line 427 "util_expr_scan.l"
 1513|      0|{ return T_OP_EQ; }
 1514|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1515|      0|case 50:
  ------------------
  |  Branch (1515:1): [True: 0, False: 1.53M]
  ------------------
 1516|      0|YY_RULE_SETUP
 1517|      0|#line 428 "util_expr_scan.l"
 1518|      0|{ return T_OP_NE; }
 1519|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1520|      0|case 51:
  ------------------
  |  Branch (1520:1): [True: 0, False: 1.53M]
  ------------------
 1521|      0|YY_RULE_SETUP
 1522|      0|#line 429 "util_expr_scan.l"
 1523|      0|{ return T_OP_GE; }
 1524|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1525|      0|case 52:
  ------------------
  |  Branch (1525:1): [True: 0, False: 1.53M]
  ------------------
 1526|      0|YY_RULE_SETUP
 1527|      0|#line 430 "util_expr_scan.l"
 1528|      0|{ return T_OP_LE; }
 1529|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1530|      0|case 53:
  ------------------
  |  Branch (1530:1): [True: 0, False: 1.53M]
  ------------------
 1531|      0|YY_RULE_SETUP
 1532|      0|#line 431 "util_expr_scan.l"
 1533|      0|{ return T_OP_GT; }
 1534|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1535|      0|case 54:
  ------------------
  |  Branch (1535:1): [True: 0, False: 1.53M]
  ------------------
 1536|      0|YY_RULE_SETUP
 1537|      0|#line 432 "util_expr_scan.l"
 1538|      0|{ return T_OP_LT; }
 1539|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1540|       |/* for compatibility with ssl_expr */
 1541|      0|case 55:
  ------------------
  |  Branch (1541:1): [True: 0, False: 1.53M]
  ------------------
 1542|      0|YY_RULE_SETUP
 1543|      0|#line 435 "util_expr_scan.l"
 1544|      0|{ return T_OP_LT; }
 1545|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1546|      0|case 56:
  ------------------
  |  Branch (1546:1): [True: 0, False: 1.53M]
  ------------------
 1547|      0|YY_RULE_SETUP
 1548|      0|#line 436 "util_expr_scan.l"
 1549|      0|{ return T_OP_LE; }
 1550|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1551|      0|case 57:
  ------------------
  |  Branch (1551:1): [True: 0, False: 1.53M]
  ------------------
 1552|      0|YY_RULE_SETUP
 1553|      0|#line 437 "util_expr_scan.l"
 1554|      0|{ return T_OP_GT; }
 1555|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1556|      0|case 58:
  ------------------
  |  Branch (1556:1): [True: 0, False: 1.53M]
  ------------------
 1557|      0|YY_RULE_SETUP
 1558|      0|#line 438 "util_expr_scan.l"
 1559|      0|{ return T_OP_GE; }
 1560|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1561|      0|case 59:
  ------------------
  |  Branch (1561:1): [True: 0, False: 1.53M]
  ------------------
 1562|      0|YY_RULE_SETUP
 1563|      0|#line 439 "util_expr_scan.l"
 1564|      0|{ return T_OP_NE; }
 1565|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1566|      0|case 60:
  ------------------
  |  Branch (1566:1): [True: 0, False: 1.53M]
  ------------------
 1567|      0|YY_RULE_SETUP
 1568|      0|#line 440 "util_expr_scan.l"
 1569|      0|{ return T_OP_EQ; }
 1570|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1571|      0|case 61:
  ------------------
  |  Branch (1571:1): [True: 0, False: 1.53M]
  ------------------
 1572|      0|YY_RULE_SETUP
 1573|      0|#line 441 "util_expr_scan.l"
 1574|      0|{ return T_OP_IN; }
 1575|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1576|      0|case 62:
  ------------------
  |  Branch (1576:1): [True: 0, False: 1.53M]
  ------------------
 1577|      0|YY_RULE_SETUP
 1578|      0|#line 443 "util_expr_scan.l"
 1579|      0|{
 1580|      0|    yylval->cpVal = apr_pstrdup(yyextra->pool, yytext + 1);
  ------------------
  |  |  786|      0|    #    define yylval yyg->yylval_r
  ------------------
                  yylval->cpVal = apr_pstrdup(yyextra->pool, yytext + 1);
  ------------------
  |  |  120|      0|#define yyextra yyg->yyextra_r
  ------------------
                  yylval->cpVal = apr_pstrdup(yyextra->pool, yytext + 1);
  ------------------
  |  |  122|      0|#define yytext yyg->yytext_r
  ------------------
 1581|      0|    return T_OP_BINARY;
 1582|      0|}
 1583|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1584|      0|case 63:
  ------------------
  |  Branch (1584:1): [True: 0, False: 1.53M]
  ------------------
 1585|      0|YY_RULE_SETUP
 1586|      0|#line 448 "util_expr_scan.l"
 1587|      0|{
 1588|      0|    yylval->cpVal = apr_pstrdup(yyextra->pool, yytext + 1);
  ------------------
  |  |  786|      0|    #    define yylval yyg->yylval_r
  ------------------
                  yylval->cpVal = apr_pstrdup(yyextra->pool, yytext + 1);
  ------------------
  |  |  120|      0|#define yyextra yyg->yyextra_r
  ------------------
                  yylval->cpVal = apr_pstrdup(yyextra->pool, yytext + 1);
  ------------------
  |  |  122|      0|#define yytext yyg->yytext_r
  ------------------
 1589|      0|    return T_OP_UNARY;
 1590|      0|}
 1591|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1592|       |/* Apply subtitution to a string */
 1593|      0|case 64:
  ------------------
  |  Branch (1593:1): [True: 0, False: 1.53M]
  ------------------
 1594|      0|YY_RULE_SETUP
 1595|      0|#line 454 "util_expr_scan.l"
 1596|      0|{
 1597|      0|    return T_OP_SUB;
 1598|      0|}
 1599|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1600|       |/* Join a list into a string */
 1601|      0|case 65:
  ------------------
  |  Branch (1601:1): [True: 0, False: 1.53M]
  ------------------
 1602|      0|YY_RULE_SETUP
 1603|      0|#line 459 "util_expr_scan.l"
 1604|      0|{
 1605|      0|    return T_OP_JOIN;
 1606|      0|}
 1607|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1608|       |/* Split a string (or list) into a(nother) list */
 1609|      0|case 66:
  ------------------
  |  Branch (1609:1): [True: 0, False: 1.53M]
  ------------------
 1610|      0|YY_RULE_SETUP
 1611|      0|#line 464 "util_expr_scan.l"
 1612|      0|{
 1613|      0|    return T_OP_SPLIT;
 1614|      0|}
 1615|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1616|       |/*
 1617|       |  * Specials
 1618|       |  */
 1619|      0|case 67:
  ------------------
  |  Branch (1619:1): [True: 0, False: 1.53M]
  ------------------
 1620|      0|YY_RULE_SETUP
 1621|      0|#line 471 "util_expr_scan.l"
 1622|      0|{ return T_TRUE; }
 1623|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1624|      0|case 68:
  ------------------
  |  Branch (1624:1): [True: 0, False: 1.53M]
  ------------------
 1625|      0|YY_RULE_SETUP
 1626|      0|#line 472 "util_expr_scan.l"
 1627|      0|{ return T_FALSE; }
 1628|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1629|       |/*
 1630|       |  * Digits
 1631|       |  */
 1632|      0|case 69:
  ------------------
  |  Branch (1632:1): [True: 0, False: 1.53M]
  ------------------
 1633|      0|YY_RULE_SETUP
 1634|      0|#line 477 "util_expr_scan.l"
 1635|      0|{
 1636|      0|    yylval->cpVal = apr_pstrdup(yyextra->pool, yytext);
  ------------------
  |  |  786|      0|    #    define yylval yyg->yylval_r
  ------------------
                  yylval->cpVal = apr_pstrdup(yyextra->pool, yytext);
  ------------------
  |  |  120|      0|#define yyextra yyg->yyextra_r
  ------------------
                  yylval->cpVal = apr_pstrdup(yyextra->pool, yytext);
  ------------------
  |  |  122|      0|#define yytext yyg->yytext_r
  ------------------
 1637|      0|    return T_DIGIT;
 1638|      0|}
 1639|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1640|       |/*
 1641|       |  * Identifiers
 1642|       |  */
 1643|      0|case 70:
  ------------------
  |  Branch (1643:1): [True: 0, False: 1.53M]
  ------------------
 1644|      0|YY_RULE_SETUP
 1645|      0|#line 485 "util_expr_scan.l"
 1646|      0|{
 1647|      0|    yylval->cpVal = apr_pstrdup(yyextra->pool, yytext);
  ------------------
  |  |  786|      0|    #    define yylval yyg->yylval_r
  ------------------
                  yylval->cpVal = apr_pstrdup(yyextra->pool, yytext);
  ------------------
  |  |  120|      0|#define yyextra yyg->yyextra_r
  ------------------
                  yylval->cpVal = apr_pstrdup(yyextra->pool, yytext);
  ------------------
  |  |  122|      0|#define yytext yyg->yytext_r
  ------------------
 1648|      0|    return T_ID;
 1649|      0|}
 1650|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1651|       |/*
 1652|       |  * These are parts of the grammar and are returned as is
 1653|       |  */
 1654|      0|case 71:
  ------------------
  |  Branch (1654:1): [True: 0, False: 1.53M]
  ------------------
 1655|      0|YY_RULE_SETUP
 1656|      0|#line 493 "util_expr_scan.l"
 1657|      0|{
 1658|      0|    return yytext[0];
  ------------------
  |  |  122|      0|#define yytext yyg->yytext_r
  ------------------
 1659|      0|}
 1660|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1661|       |/*
 1662|       |  * Anything else is an error
 1663|       |  */
 1664|      0|case 72:
  ------------------
  |  Branch (1664:1): [True: 0, False: 1.53M]
  ------------------
 1665|       |/* rule 72 can match eol */
 1666|      0|YY_RULE_SETUP
 1667|      0|#line 500 "util_expr_scan.l"
 1668|      0|{
 1669|      0|    PERROR_CHAR("Parse error near character ", yytext[0]);
  ------------------
  |  |  650|      0|#define PERROR_CHAR(prefix, chr) do {                                       \
  |  |  651|      0|    char *msg;                                                              \
  |  |  652|      0|    if (apr_isprint((chr))) {                                               \
  |  |  ------------------
  |  |  |  |  221|      0|#define apr_isprint(c) (isprint(((unsigned char)(c))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (221:24): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  653|      0|        msg = apr_psprintf(yyextra->pool, prefix "'%c'", (char)(chr));      \
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  654|      0|    }                                                                       \
  |  |  655|      0|    else {                                                                  \
  |  |  656|      0|        msg = apr_psprintf(yyextra->pool, prefix "'\\x%.2X'", (int)(chr));  \
  |  |  ------------------
  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  657|      0|    }                                                                       \
  |  |  658|      0|    PERROR(msg);                                                            \
  |  |  ------------------
  |  |  |  |  645|      0|#define PERROR(msg) do {    \
  |  |  |  |  646|      0|    yyextra->error2 = msg;  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  120|      0|#define yyextra yyg->yyextra_r
  |  |  |  |  ------------------
  |  |  |  |  647|      0|    return T_ERROR;         \
  |  |  |  |  648|      0|} while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (648:10): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  659|      0|} while (0)
  |  |  ------------------
  |  |  |  Branch (659:10): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1670|      0|}
 1671|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1672|      0|case 73:
  ------------------
  |  Branch (1672:1): [True: 0, False: 1.53M]
  ------------------
 1673|      0|YY_RULE_SETUP
 1674|      0|#line 504 "util_expr_scan.l"
 1675|      0|YY_FATAL_ERROR( "flex scanner jammed" );
  ------------------
  |  |  629|      0|    do {                                                        \
  |  |  630|      0|        ap_log_error(APLOG_MARK, APLOG_CRIT, 0, ap_server_conf, \
  |  |  ------------------
  |  |  |  |  363|      0|#define ap_log_error(...) ap_log_error__(__VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  366|      0|    do { const server_rec *sr__ = s; if (APLOG_MODULE_IS_LEVEL(sr__, mi, level)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  183|      0|          ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                         ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   48|      0|#define APLOG_NOTICE    LOG_NOTICE      /* normal but significant condition */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (183:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  184|      0|            (s == NULL) ||                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (184:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  185|      0|            (ap_get_server_module_loglevel(s, module_index)      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  629|      0|    (ap_get_module_loglevel(&(s)->log,i))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  624|      0|    (((i) < 0 || (l)->module_levels == NULL || (l)->module_levels[i] < 0) ?  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:18): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:48): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:67): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  625|      0|     (l)->level :                                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  626|      0|     (l)->module_levels[i])
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (626:25): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (185:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  186|      0|             >= ((level)&APLOG_LEVELMASK) ) )
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  367|      0|             ap_log_error_(file, line, mi, level, status, sr__, __VA_ARGS__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (367:40): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  368|      0|    } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (368:13): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  631|      0|                     APLOGNO(03296)                             \
  |  |  632|      0|                     "expr parser fatal error (BUG?): "         \
  |  |  633|      0|                     "%s, exiting", msg);                       \
  |  |  634|      0|        if (unreachable) {                                      \
  |  |  ------------------
  |  |  |  Branch (634:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  635|      0|            /* Not reached, silence [-Wunused-function] */      \
  |  |  636|      0|            yy_fatal_error(msg, yyscanner);                     \
  |  |  637|      0|        }                                                       \
  |  |  638|      0|        else {                                                  \
  |  |  639|      0|            abort();                                            \
  |  |  640|      0|        }                                                       \
  |  |  641|      0|    } while (0)
  |  |  ------------------
  |  |  |  Branch (641:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1676|      0|	YY_BREAK
  ------------------
  |  |  963|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1677|      0|#line 1678 "util_expr_scan.c"
 1678|  1.36k|case YY_STATE_EOF(INITIAL):
  ------------------
  |  |  141|  1.36k|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  |  |  ------------------
  |  |  |  |  351|  1.36k|#define YY_END_OF_BUFFER 74
  |  |  ------------------
  ------------------
  |  Branch (1678:1): [True: 1.36k, False: 1.53M]
  ------------------
 1679|  1.36k|	yyterminate();
  ------------------
  |  |  926|  1.36k|#define yyterminate() return YY_NULL
  |  |  ------------------
  |  |  |  |  101|  1.36k|#define YY_NULL 0
  |  |  ------------------
  ------------------
 1680|       |
 1681|  5.87k|	case YY_END_OF_BUFFER:
  ------------------
  |  |  351|  5.87k|#define YY_END_OF_BUFFER 74
  ------------------
  |  Branch (1681:2): [True: 5.87k, False: 1.53M]
  ------------------
 1682|  5.87k|		{
 1683|       |		/* Amount of text matched not including the EOB char. */
 1684|  5.87k|		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
  ------------------
  |  |  333|  5.87k|#define yytext_ptr yytext_r
  ------------------
 1685|       |
 1686|       |		/* Undo the effects of YY_DO_BEFORE_ACTION. */
 1687|  5.87k|		*yy_cp = yyg->yy_hold_char;
 1688|  5.87k|		YY_RESTORE_YY_MORE_OFFSET
 1689|       |
 1690|  5.87k|		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
  ------------------
  |  |  276|  5.87k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
              		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
  ------------------
  |  |  246|  5.87k|#define YY_BUFFER_NEW 0
  ------------------
  |  Branch (1690:8): [True: 2.89k, False: 2.98k]
  ------------------
 1691|  2.89k|			{
 1692|       |			/* We're scanning a new file or input source.  It's
 1693|       |			 * possible that this happened because the user
 1694|       |			 * just pointed yyin at a new source and called
 1695|       |			 * ap_expr_yylex().  If so, then we have to assure
 1696|       |			 * consistency between YY_CURRENT_BUFFER and our
 1697|       |			 * globals.  Here is the right place to do so, because
 1698|       |			 * this is the first action (other than possibly a
 1699|       |			 * back-up) that will match for the new input source.
 1700|       |			 */
 1701|  2.89k|			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
  ------------------
  |  |  276|  2.89k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 1702|  2.89k|			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
  ------------------
  |  |  276|  2.89k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
              			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
  ------------------
  |  |  118|  2.89k|#define yyin yyg->yyin_r
  ------------------
 1703|  2.89k|			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
  ------------------
  |  |  276|  2.89k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
              			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
  ------------------
  |  |  247|  2.89k|#define YY_BUFFER_NORMAL 1
  ------------------
 1704|  2.89k|			}
 1705|       |
 1706|       |		/* Note that here we test for yy_c_buf_p "<=" to the position
 1707|       |		 * of the first EOB in the buffer, since yy_c_buf_p will
 1708|       |		 * already have been incremented past the NUL character
 1709|       |		 * (since all states make transitions on EOB to the
 1710|       |		 * end-of-buffer state).  Contrast this with the test
 1711|       |		 * in input().
 1712|       |		 */
 1713|  5.87k|		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
  ------------------
  |  |  276|  5.87k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
  |  Branch (1713:8): [True: 0, False: 5.87k]
  ------------------
 1714|      0|			{ /* This was really a NUL. */
 1715|      0|			yy_state_type yy_next_state;
 1716|       |
 1717|      0|			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
  ------------------
  |  |  333|      0|#define yytext_ptr yytext_r
  ------------------
 1718|       |
 1719|      0|			yy_current_state = yy_get_previous_state( yyscanner );
 1720|       |
 1721|       |			/* Okay, we're now positioned to make the NUL
 1722|       |			 * transition.  We couldn't have
 1723|       |			 * yy_get_previous_state() go ahead and do it
 1724|       |			 * for us because it doesn't know how to deal
 1725|       |			 * with the possibility of jamming (and we don't
 1726|       |			 * want to build jamming into it because then it
 1727|       |			 * will run more slowly).
 1728|       |			 */
 1729|       |
 1730|      0|			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
 1731|       |
 1732|      0|			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
  ------------------
  |  |  333|      0|#define yytext_ptr yytext_r
  ------------------
              			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
  ------------------
  |  |  570|      0|#define YY_MORE_ADJ 0
  ------------------
 1733|       |
 1734|      0|			if ( yy_next_state )
  ------------------
  |  Branch (1734:9): [True: 0, False: 0]
  ------------------
 1735|      0|				{
 1736|       |				/* Consume the NUL. */
 1737|      0|				yy_cp = ++yyg->yy_c_buf_p;
 1738|      0|				yy_current_state = yy_next_state;
 1739|      0|				goto yy_match;
 1740|      0|				}
 1741|       |
 1742|      0|			else
 1743|      0|				{
 1744|      0|				yy_cp = yyg->yy_last_accepting_cpos;
 1745|      0|				yy_current_state = yyg->yy_last_accepting_state;
 1746|      0|				goto yy_find_action;
 1747|      0|				}
 1748|      0|			}
 1749|       |
 1750|  5.87k|		else switch ( yy_get_next_buffer( yyscanner ) )
  ------------------
  |  Branch (1750:17): [True: 0, False: 5.87k]
  ------------------
 1751|  5.87k|			{
 1752|  2.72k|			case EOB_ACT_END_OF_FILE:
  ------------------
  |  |  176|  2.72k|#define EOB_ACT_END_OF_FILE 1
  ------------------
  |  Branch (1752:4): [True: 2.72k, False: 3.15k]
  ------------------
 1753|  2.72k|				{
 1754|  2.72k|				yyg->yy_did_buffer_switch_on_eof = 0;
 1755|       |
 1756|  2.72k|				if ( ap_expr_yywrap(yyscanner ) )
  ------------------
  |  |  326|  2.72k|#define ap_expr_yywrap(yyscanner) (/*CONSTCOND*/1)
  |  |  ------------------
  |  |  |  Branch (326:35): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1757|  2.72k|					{
 1758|       |					/* Note: because we've taken care in
 1759|       |					 * yy_get_next_buffer() to have set up
 1760|       |					 * yytext, we can now set up
 1761|       |					 * yy_c_buf_p so that if some total
 1762|       |					 * hoser (like flex itself) wants to
 1763|       |					 * call the scanner after we return the
 1764|       |					 * YY_NULL, it'll still work - another
 1765|       |					 * YY_NULL will get returned.
 1766|       |					 */
 1767|  2.72k|					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
  ------------------
  |  |  333|  2.72k|#define yytext_ptr yytext_r
  ------------------
              					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
  ------------------
  |  |  570|  2.72k|#define YY_MORE_ADJ 0
  ------------------
 1768|       |
 1769|  2.72k|					yy_act = YY_STATE_EOF(YY_START);
  ------------------
  |  |  141|  2.72k|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  |  |  ------------------
  |  |  |  |  351|  2.72k|#define YY_END_OF_BUFFER 74
  |  |  ------------------
  ------------------
 1770|  2.72k|					goto do_action;
 1771|  2.72k|					}
 1772|       |
 1773|      0|				else
 1774|      0|					{
 1775|      0|					if ( ! yyg->yy_did_buffer_switch_on_eof )
  ------------------
  |  Branch (1775:11): [True: 0, False: 0]
  ------------------
 1776|      0|						YY_NEW_FILE;
  ------------------
  |  |  144|      0|#define YY_NEW_FILE ap_expr_yyrestart(yyin ,yyscanner )
  |  |  ------------------
  |  |  |  |  118|      0|#define yyin yyg->yyin_r
  |  |  ------------------
  ------------------
 1777|      0|					}
 1778|      0|				break;
 1779|  2.72k|				}
 1780|       |
 1781|  1.68k|			case EOB_ACT_CONTINUE_SCAN:
  ------------------
  |  |  175|  1.68k|#define EOB_ACT_CONTINUE_SCAN 0
  ------------------
  |  Branch (1781:4): [True: 1.68k, False: 4.18k]
  ------------------
 1782|  1.68k|				yyg->yy_c_buf_p =
 1783|  1.68k|					yyg->yytext_ptr + yy_amount_of_matched_text;
  ------------------
  |  |  333|  1.68k|#define yytext_ptr yytext_r
  ------------------
 1784|       |
 1785|  1.68k|				yy_current_state = yy_get_previous_state( yyscanner );
 1786|       |
 1787|  1.68k|				yy_cp = yyg->yy_c_buf_p;
 1788|  1.68k|				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
  ------------------
  |  |  333|  1.68k|#define yytext_ptr yytext_r
  ------------------
              				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
  ------------------
  |  |  570|  1.68k|#define YY_MORE_ADJ 0
  ------------------
 1789|  1.68k|				goto yy_match;
 1790|       |
 1791|  1.46k|			case EOB_ACT_LAST_MATCH:
  ------------------
  |  |  177|  1.46k|#define EOB_ACT_LAST_MATCH 2
  ------------------
  |  Branch (1791:4): [True: 1.46k, False: 4.40k]
  ------------------
 1792|  1.46k|				yyg->yy_c_buf_p =
 1793|  1.46k|				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
  ------------------
  |  |  276|  1.46k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 1794|       |
 1795|  1.46k|				yy_current_state = yy_get_previous_state( yyscanner );
 1796|       |
 1797|  1.46k|				yy_cp = yyg->yy_c_buf_p;
 1798|  1.46k|				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
  ------------------
  |  |  333|  1.46k|#define yytext_ptr yytext_r
  ------------------
              				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
  ------------------
  |  |  570|  1.46k|#define YY_MORE_ADJ 0
  ------------------
 1799|  1.46k|				goto yy_find_action;
 1800|  5.87k|			}
 1801|      0|		break;
 1802|  5.87k|		}
 1803|       |
 1804|      0|	default:
  ------------------
  |  Branch (1804:2): [True: 0, False: 1.53M]
  ------------------
 1805|      0|		YY_FATAL_ERROR(
  ------------------
  |  |  629|      0|    do {                                                        \
  |  |  630|      0|        ap_log_error(APLOG_MARK, APLOG_CRIT, 0, ap_server_conf, \
  |  |  ------------------
  |  |  |  |  363|      0|#define ap_log_error(...) ap_log_error__(__VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  366|      0|    do { const server_rec *sr__ = s; if (APLOG_MODULE_IS_LEVEL(sr__, mi, level)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  183|      0|          ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                         ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   48|      0|#define APLOG_NOTICE    LOG_NOTICE      /* normal but significant condition */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (183:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  184|      0|            (s == NULL) ||                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (184:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  185|      0|            (ap_get_server_module_loglevel(s, module_index)      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  629|      0|    (ap_get_module_loglevel(&(s)->log,i))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  624|      0|    (((i) < 0 || (l)->module_levels == NULL || (l)->module_levels[i] < 0) ?  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:18): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:48): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:67): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  625|      0|     (l)->level :                                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  626|      0|     (l)->module_levels[i])
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (626:25): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (185:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  186|      0|             >= ((level)&APLOG_LEVELMASK) ) )
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  367|      0|             ap_log_error_(file, line, mi, level, status, sr__, __VA_ARGS__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (367:40): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  368|      0|    } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (368:13): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  631|      0|                     APLOGNO(03296)                             \
  |  |  632|      0|                     "expr parser fatal error (BUG?): "         \
  |  |  633|      0|                     "%s, exiting", msg);                       \
  |  |  634|      0|        if (unreachable) {                                      \
  |  |  ------------------
  |  |  |  Branch (634:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  635|      0|            /* Not reached, silence [-Wunused-function] */      \
  |  |  636|      0|            yy_fatal_error(msg, yyscanner);                     \
  |  |  637|      0|        }                                                       \
  |  |  638|      0|        else {                                                  \
  |  |  639|      0|            abort();                                            \
  |  |  640|      0|        }                                                       \
  |  |  641|      0|    } while (0)
  |  |  ------------------
  |  |  |  Branch (641:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1806|  1.53M|			"fatal flex scanner internal error--no action found" );
 1807|  1.53M|	} /* end of action switch */
 1808|  1.53M|		} /* end of scanning one token */
 1809|  74.9k|	} /* end of user's declarations */
 1810|  74.9k|} /* end of ap_expr_yylex */
ap_expr_yyrestart:
 2097|  2.72k|{
 2098|  2.72k|    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 2099|       |
 2100|  2.72k|	if ( ! YY_CURRENT_BUFFER ){
  ------------------
  |  |  269|  2.72k|#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
  |  |  ------------------
  |  |  |  Branch (269:29): [True: 2.72k, False: 0]
  |  |  ------------------
  |  |  270|  2.72k|                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
  |  |  271|  2.72k|                          : NULL)
  ------------------
  |  Branch (2100:7): [True: 0, False: 2.72k]
  ------------------
 2101|      0|        ap_expr_yyensure_buffer_stack (yyscanner);
 2102|      0|		YY_CURRENT_BUFFER_LVALUE =
  ------------------
  |  |  276|      0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 2103|      0|            ap_expr_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
  ------------------
  |  |  118|      0|#define yyin yyg->yyin_r
  ------------------
                          ap_expr_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
  ------------------
  |  |  157|      0|#define YY_BUF_SIZE 16384
  ------------------
 2104|      0|	}
 2105|       |
 2106|  2.72k|	ap_expr_yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
  ------------------
  |  |  269|  2.72k|#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
  |  |  ------------------
  |  |  |  Branch (269:29): [True: 2.72k, False: 0]
  |  |  ------------------
  |  |  270|  2.72k|                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
  |  |  271|  2.72k|                          : NULL)
  ------------------
 2107|  2.72k|	ap_expr_yy_load_buffer_state(yyscanner );
 2108|  2.72k|}
ap_expr_yy_create_buffer:
 2162|  1.52k|{
 2163|  1.52k|	YY_BUFFER_STATE b;
 2164|       |    
 2165|  1.52k|	b = (YY_BUFFER_STATE) ap_expr_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
 2166|  1.52k|	if ( ! b )
  ------------------
  |  Branch (2166:7): [True: 0, False: 1.52k]
  ------------------
 2167|      0|		YY_FATAL_ERROR( "out of dynamic memory in ap_expr_yy_create_buffer()" );
  ------------------
  |  |  629|      0|    do {                                                        \
  |  |  630|      0|        ap_log_error(APLOG_MARK, APLOG_CRIT, 0, ap_server_conf, \
  |  |  ------------------
  |  |  |  |  363|      0|#define ap_log_error(...) ap_log_error__(__VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  366|      0|    do { const server_rec *sr__ = s; if (APLOG_MODULE_IS_LEVEL(sr__, mi, level)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  183|      0|          ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                         ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   48|      0|#define APLOG_NOTICE    LOG_NOTICE      /* normal but significant condition */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (183:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  184|      0|            (s == NULL) ||                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (184:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  185|      0|            (ap_get_server_module_loglevel(s, module_index)      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  629|      0|    (ap_get_module_loglevel(&(s)->log,i))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  624|      0|    (((i) < 0 || (l)->module_levels == NULL || (l)->module_levels[i] < 0) ?  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:18): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:48): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:67): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  625|      0|     (l)->level :                                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  626|      0|     (l)->module_levels[i])
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (626:25): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (185:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  186|      0|             >= ((level)&APLOG_LEVELMASK) ) )
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  367|      0|             ap_log_error_(file, line, mi, level, status, sr__, __VA_ARGS__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (367:40): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  368|      0|    } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (368:13): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  631|      0|                     APLOGNO(03296)                             \
  |  |  632|      0|                     "expr parser fatal error (BUG?): "         \
  |  |  633|      0|                     "%s, exiting", msg);                       \
  |  |  634|      0|        if (unreachable) {                                      \
  |  |  ------------------
  |  |  |  Branch (634:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  635|      0|            /* Not reached, silence [-Wunused-function] */      \
  |  |  636|      0|            yy_fatal_error(msg, yyscanner);                     \
  |  |  637|      0|        }                                                       \
  |  |  638|      0|        else {                                                  \
  |  |  639|      0|            abort();                                            \
  |  |  640|      0|        }                                                       \
  |  |  641|      0|    } while (0)
  |  |  ------------------
  |  |  |  Branch (641:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2168|       |
 2169|  1.52k|	b->yy_buf_size = (yy_size_t)size;
 2170|       |
 2171|       |	/* yy_ch_buf has to be 2 characters longer than the size given because
 2172|       |	 * we need to put in 2 end-of-buffer characters.
 2173|       |	 */
 2174|  1.52k|	b->yy_ch_buf = (char *) ap_expr_yyalloc(b->yy_buf_size + 2 ,yyscanner );
 2175|  1.52k|	if ( ! b->yy_ch_buf )
  ------------------
  |  Branch (2175:7): [True: 0, False: 1.52k]
  ------------------
 2176|      0|		YY_FATAL_ERROR( "out of dynamic memory in ap_expr_yy_create_buffer()" );
  ------------------
  |  |  629|      0|    do {                                                        \
  |  |  630|      0|        ap_log_error(APLOG_MARK, APLOG_CRIT, 0, ap_server_conf, \
  |  |  ------------------
  |  |  |  |  363|      0|#define ap_log_error(...) ap_log_error__(__VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  366|      0|    do { const server_rec *sr__ = s; if (APLOG_MODULE_IS_LEVEL(sr__, mi, level)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  183|      0|          ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                         ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   48|      0|#define APLOG_NOTICE    LOG_NOTICE      /* normal but significant condition */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (183:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  184|      0|            (s == NULL) ||                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (184:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  185|      0|            (ap_get_server_module_loglevel(s, module_index)      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  629|      0|    (ap_get_module_loglevel(&(s)->log,i))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  624|      0|    (((i) < 0 || (l)->module_levels == NULL || (l)->module_levels[i] < 0) ?  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:18): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:48): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:67): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  625|      0|     (l)->level :                                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  626|      0|     (l)->module_levels[i])
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (626:25): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (185:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  186|      0|             >= ((level)&APLOG_LEVELMASK) ) )
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  367|      0|             ap_log_error_(file, line, mi, level, status, sr__, __VA_ARGS__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (367:40): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  368|      0|    } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (368:13): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  631|      0|                     APLOGNO(03296)                             \
  |  |  632|      0|                     "expr parser fatal error (BUG?): "         \
  |  |  633|      0|                     "%s, exiting", msg);                       \
  |  |  634|      0|        if (unreachable) {                                      \
  |  |  ------------------
  |  |  |  Branch (634:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  635|      0|            /* Not reached, silence [-Wunused-function] */      \
  |  |  636|      0|            yy_fatal_error(msg, yyscanner);                     \
  |  |  637|      0|        }                                                       \
  |  |  638|      0|        else {                                                  \
  |  |  639|      0|            abort();                                            \
  |  |  640|      0|        }                                                       \
  |  |  641|      0|    } while (0)
  |  |  ------------------
  |  |  |  Branch (641:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2177|       |
 2178|  1.52k|	b->yy_is_our_buffer = 1;
 2179|       |
 2180|  1.52k|	ap_expr_yy_init_buffer(b,file ,yyscanner);
 2181|       |
 2182|  1.52k|	return b;
 2183|  1.52k|}
ap_expr_yy_delete_buffer:
 2190|  1.52k|{
 2191|  1.52k|    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 2192|       |
 2193|  1.52k|	if ( ! b )
  ------------------
  |  Branch (2193:7): [True: 0, False: 1.52k]
  ------------------
 2194|      0|		return;
 2195|       |
 2196|  1.52k|	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
  ------------------
  |  |  269|  1.52k|#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
  |  |  ------------------
  |  |  |  Branch (269:29): [True: 1.52k, False: 0]
  |  |  ------------------
  |  |  270|  1.52k|                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
  |  |  271|  1.52k|                          : NULL)
  ------------------
  |  Branch (2196:7): [True: 1.52k, False: 0]
  ------------------
 2197|  1.52k|		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
  ------------------
  |  |  276|  1.52k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 2198|       |
 2199|  1.52k|	if ( b->yy_is_our_buffer )
  ------------------
  |  Branch (2199:7): [True: 1.52k, False: 0]
  ------------------
 2200|  1.52k|		ap_expr_yyfree((void *) b->yy_ch_buf ,yyscanner );
 2201|       |
 2202|  1.52k|	ap_expr_yyfree((void *) b ,yyscanner );
 2203|  1.52k|}
ap_expr_yy_flush_buffer:
 2239|  4.25k|{
 2240|  4.25k|    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 2241|  4.25k|	if ( ! b )
  ------------------
  |  Branch (2241:7): [True: 0, False: 4.25k]
  ------------------
 2242|      0|		return;
 2243|       |
 2244|  4.25k|	b->yy_n_chars = 0;
 2245|       |
 2246|       |	/* We always need two end-of-buffer characters.  The first causes
 2247|       |	 * a transition to the end-of-buffer state.  The second causes
 2248|       |	 * a jam in that state.
 2249|       |	 */
 2250|  4.25k|	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  146|  4.25k|#define YY_END_OF_BUFFER_CHAR 0
  ------------------
 2251|  4.25k|	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  146|  4.25k|#define YY_END_OF_BUFFER_CHAR 0
  ------------------
 2252|       |
 2253|  4.25k|	b->yy_buf_pos = &b->yy_ch_buf[0];
 2254|       |
 2255|  4.25k|	b->yy_at_bol = 1;
 2256|  4.25k|	b->yy_buffer_status = YY_BUFFER_NEW;
  ------------------
  |  |  246|  4.25k|#define YY_BUFFER_NEW 0
  ------------------
 2257|       |
 2258|  4.25k|	if ( b == YY_CURRENT_BUFFER )
  ------------------
  |  |  269|  4.25k|#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
  |  |  ------------------
  |  |  |  Branch (269:29): [True: 4.25k, False: 0]
  |  |  ------------------
  |  |  270|  4.25k|                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
  |  |  271|  4.25k|                          : NULL)
  ------------------
  |  Branch (2258:7): [True: 2.72k, False: 1.52k]
  ------------------
 2259|  2.72k|		ap_expr_yy_load_buffer_state(yyscanner );
 2260|  4.25k|}
ap_expr_yypop_buffer_state:
 2300|  1.52k|{
 2301|  1.52k|    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 2302|  1.52k|	if (!YY_CURRENT_BUFFER)
  ------------------
  |  |  269|  1.52k|#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
  |  |  ------------------
  |  |  |  Branch (269:29): [True: 1.52k, False: 0]
  |  |  ------------------
  |  |  270|  1.52k|                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
  |  |  271|  1.52k|                          : NULL)
  ------------------
  |  Branch (2302:6): [True: 1.52k, False: 0]
  ------------------
 2303|  1.52k|		return;
 2304|       |
 2305|      0|	ap_expr_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
  ------------------
  |  |  269|      0|#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
  |  |  ------------------
  |  |  |  Branch (269:29): [True: 0, False: 0]
  |  |  ------------------
  |  |  270|      0|                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
  |  |  271|      0|                          : NULL)
  ------------------
 2306|      0|	YY_CURRENT_BUFFER_LVALUE = NULL;
  ------------------
  |  |  276|      0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 2307|      0|	if (yyg->yy_buffer_stack_top > 0)
  ------------------
  |  Branch (2307:6): [True: 0, False: 0]
  ------------------
 2308|      0|		--yyg->yy_buffer_stack_top;
 2309|       |
 2310|      0|	if (YY_CURRENT_BUFFER) {
  ------------------
  |  |  269|      0|#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
  |  |  ------------------
  |  |  |  Branch (269:27): [True: 0, False: 0]
  |  |  |  Branch (269:29): [True: 0, False: 0]
  |  |  ------------------
  |  |  270|      0|                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
  |  |  271|      0|                          : NULL)
  ------------------
 2311|      0|		ap_expr_yy_load_buffer_state(yyscanner );
 2312|      0|		yyg->yy_did_buffer_switch_on_eof = 1;
 2313|      0|	}
 2314|      0|}
ap_expr_yyset_extra:
 2582|  1.52k|{
 2583|  1.52k|    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 2584|  1.52k|    yyextra = user_defined ;
  ------------------
  |  |  120|  1.52k|#define yyextra yyg->yyextra_r
  ------------------
 2585|  1.52k|}
ap_expr_yylex_init:
 2660|  1.52k|{
 2661|  1.52k|    if (ptr_yy_globals == NULL){
  ------------------
  |  Branch (2661:9): [True: 0, False: 1.52k]
  ------------------
 2662|      0|        errno = EINVAL;
 2663|      0|        return 1;
 2664|      0|    }
 2665|       |
 2666|  1.52k|    *ptr_yy_globals = (yyscan_t) ap_expr_yyalloc ( sizeof( struct yyguts_t ), NULL );
 2667|       |
 2668|  1.52k|    if (*ptr_yy_globals == NULL){
  ------------------
  |  Branch (2668:9): [True: 0, False: 1.52k]
  ------------------
 2669|      0|        errno = ENOMEM;
 2670|      0|        return 1;
 2671|      0|    }
 2672|       |
 2673|       |    /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
 2674|  1.52k|    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
 2675|       |
 2676|  1.52k|    return yy_init_globals ( *ptr_yy_globals );
 2677|  1.52k|}
ap_expr_yylex_destroy:
 2750|  1.52k|{
 2751|  1.52k|    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 2752|       |
 2753|       |    /* Pop the buffer stack, destroying each element. */
 2754|  3.05k|	while(YY_CURRENT_BUFFER){
  ------------------
  |  |  269|  3.05k|#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
  |  |  ------------------
  |  |  |  Branch (269:27): [True: 1.52k, False: 1.52k]
  |  |  |  Branch (269:29): [True: 3.05k, False: 0]
  |  |  ------------------
  |  |  270|  3.05k|                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
  |  |  271|  3.05k|                          : NULL)
  ------------------
 2755|  1.52k|		ap_expr_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
  ------------------
  |  |  269|  1.52k|#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
  |  |  ------------------
  |  |  |  Branch (269:29): [True: 1.52k, False: 0]
  |  |  ------------------
  |  |  270|  1.52k|                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
  |  |  271|  1.52k|                          : NULL)
  ------------------
 2756|  1.52k|		YY_CURRENT_BUFFER_LVALUE = NULL;
  ------------------
  |  |  276|  1.52k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 2757|  1.52k|		ap_expr_yypop_buffer_state(yyscanner);
 2758|  1.52k|	}
 2759|       |
 2760|       |	/* Destroy the stack itself. */
 2761|  1.52k|	ap_expr_yyfree(yyg->yy_buffer_stack ,yyscanner);
 2762|  1.52k|	yyg->yy_buffer_stack = NULL;
 2763|       |
 2764|       |    /* Destroy the start condition stack. */
 2765|  1.52k|        ap_expr_yyfree(yyg->yy_start_stack ,yyscanner );
 2766|  1.52k|        yyg->yy_start_stack = NULL;
 2767|       |
 2768|       |    /* Reset the globals. This is important in a non-reentrant scanner so the next time
 2769|       |     * ap_expr_yylex() is called, initialization will occur. */
 2770|  1.52k|    yy_init_globals( yyscanner);
 2771|       |
 2772|       |    /* Destroy the main struct (reentrant only). */
 2773|  1.52k|    ap_expr_yyfree ( yyscanner , yyscanner );
 2774|  1.52k|    yyscanner = NULL;
 2775|  1.52k|    return 0;
 2776|  1.52k|}
ap_expr_yyalloc:
 2806|  7.64k|{
 2807|  7.64k|	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 2808|  7.64k|	(void)yyg;
 2809|  7.64k|	return malloc(size);
 2810|  7.64k|}
ap_expr_yyfree:
 2828|  7.64k|{
 2829|  7.64k|	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 2830|  7.64k|	(void)yyg;
 2831|  7.64k|	free( (char *) ptr );	/* see ap_expr_yyrealloc() for (char *) cast */
 2832|  7.64k|}
util_expr_scan.c:yy_get_next_buffer:
 1820|  5.87k|{
 1821|  5.87k|    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 1822|  5.87k|	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
  ------------------
  |  |  276|  5.87k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 1823|  5.87k|	char *source = yyg->yytext_ptr;
  ------------------
  |  |  333|  5.87k|#define yytext_ptr yytext_r
  ------------------
 1824|  5.87k|	int number_to_move, i;
 1825|  5.87k|	int ret_val;
 1826|       |
 1827|  5.87k|	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
  ------------------
  |  |  276|  5.87k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
  |  Branch (1827:7): [True: 0, False: 5.87k]
  ------------------
 1828|      0|		YY_FATAL_ERROR(
  ------------------
  |  |  629|      0|    do {                                                        \
  |  |  630|      0|        ap_log_error(APLOG_MARK, APLOG_CRIT, 0, ap_server_conf, \
  |  |  ------------------
  |  |  |  |  363|      0|#define ap_log_error(...) ap_log_error__(__VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  366|      0|    do { const server_rec *sr__ = s; if (APLOG_MODULE_IS_LEVEL(sr__, mi, level)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  183|      0|          ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                         ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   48|      0|#define APLOG_NOTICE    LOG_NOTICE      /* normal but significant condition */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (183:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  184|      0|            (s == NULL) ||                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (184:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  185|      0|            (ap_get_server_module_loglevel(s, module_index)      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  629|      0|    (ap_get_module_loglevel(&(s)->log,i))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  624|      0|    (((i) < 0 || (l)->module_levels == NULL || (l)->module_levels[i] < 0) ?  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:18): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:48): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:67): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  625|      0|     (l)->level :                                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  626|      0|     (l)->module_levels[i])
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (626:25): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (185:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  186|      0|             >= ((level)&APLOG_LEVELMASK) ) )
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  367|      0|             ap_log_error_(file, line, mi, level, status, sr__, __VA_ARGS__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (367:40): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  368|      0|    } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (368:13): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  631|      0|                     APLOGNO(03296)                             \
  |  |  632|      0|                     "expr parser fatal error (BUG?): "         \
  |  |  633|      0|                     "%s, exiting", msg);                       \
  |  |  634|      0|        if (unreachable) {                                      \
  |  |  ------------------
  |  |  |  Branch (634:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  635|      0|            /* Not reached, silence [-Wunused-function] */      \
  |  |  636|      0|            yy_fatal_error(msg, yyscanner);                     \
  |  |  637|      0|        }                                                       \
  |  |  638|      0|        else {                                                  \
  |  |  639|      0|            abort();                                            \
  |  |  640|      0|        }                                                       \
  |  |  641|      0|    } while (0)
  |  |  ------------------
  |  |  |  Branch (641:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1829|  5.87k|		"fatal flex scanner internal error--end of buffer missed" );
 1830|       |
 1831|  5.87k|	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
  ------------------
  |  |  276|  5.87k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
  |  Branch (1831:7): [True: 0, False: 5.87k]
  ------------------
 1832|      0|		{ /* Don't try to fill the buffer, so this is an EOF. */
 1833|      0|		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
  ------------------
  |  |  333|      0|#define yytext_ptr yytext_r
  ------------------
              		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
  ------------------
  |  |  570|      0|#define YY_MORE_ADJ 0
  ------------------
  |  Branch (1833:8): [True: 0, False: 0]
  ------------------
 1834|      0|			{
 1835|       |			/* We matched a single character, the EOB, so
 1836|       |			 * treat this as a final EOF.
 1837|       |			 */
 1838|      0|			return EOB_ACT_END_OF_FILE;
  ------------------
  |  |  176|      0|#define EOB_ACT_END_OF_FILE 1
  ------------------
 1839|      0|			}
 1840|       |
 1841|      0|		else
 1842|      0|			{
 1843|       |			/* We matched some text prior to the EOB, first
 1844|       |			 * process it.
 1845|       |			 */
 1846|      0|			return EOB_ACT_LAST_MATCH;
  ------------------
  |  |  177|      0|#define EOB_ACT_LAST_MATCH 2
  ------------------
 1847|      0|			}
 1848|      0|		}
 1849|       |
 1850|       |	/* Try to read more data. */
 1851|       |
 1852|       |	/* First move last chars to start of buffer. */
 1853|  5.87k|	number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1);
  ------------------
  |  |  333|  5.87k|#define yytext_ptr yytext_r
  ------------------
 1854|       |
 1855|  7.67k|	for ( i = 0; i < number_to_move; ++i )
  ------------------
  |  Branch (1855:15): [True: 1.79k, False: 5.87k]
  ------------------
 1856|  1.79k|		*(dest++) = *(source++);
 1857|       |
 1858|  5.87k|	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  ------------------
  |  |  276|  5.87k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
              	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  ------------------
  |  |  258|  5.87k|#define YY_BUFFER_EOF_PENDING 2
  ------------------
  |  Branch (1858:7): [True: 1.43k, False: 4.43k]
  ------------------
 1859|       |		/* don't do the read, it's not guaranteed to return an EOF,
 1860|       |		 * just force an EOF
 1861|       |		 */
 1862|  1.43k|		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
  ------------------
  |  |  276|  1.43k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 1863|       |
 1864|  4.43k|	else
 1865|  4.43k|		{
 1866|  4.43k|			int num_to_read =
 1867|  4.43k|			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
  ------------------
  |  |  276|  4.43k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 1868|       |
 1869|  4.43k|		while ( num_to_read <= 0 )
  ------------------
  |  Branch (1869:11): [True: 0, False: 4.43k]
  ------------------
 1870|      0|			{ /* Not enough room in the buffer - grow it. */
 1871|       |
 1872|       |			/* just a shorter name for the current buffer */
 1873|      0|			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
  ------------------
  |  |  276|      0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 1874|       |
 1875|      0|			int yy_c_buf_p_offset =
 1876|      0|				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
 1877|       |
 1878|      0|			if ( b->yy_is_our_buffer )
  ------------------
  |  Branch (1878:9): [True: 0, False: 0]
  ------------------
 1879|      0|				{
 1880|      0|				int new_size = b->yy_buf_size * 2;
 1881|       |
 1882|      0|				if ( new_size <= 0 )
  ------------------
  |  Branch (1882:10): [True: 0, False: 0]
  ------------------
 1883|      0|					b->yy_buf_size += b->yy_buf_size / 8;
 1884|      0|				else
 1885|      0|					b->yy_buf_size *= 2;
 1886|       |
 1887|      0|				b->yy_ch_buf = (char *)
 1888|       |					/* Include room in for 2 EOB chars. */
 1889|      0|					ap_expr_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
 1890|      0|				}
 1891|      0|			else
 1892|       |				/* Can't grow it, we don't own it. */
 1893|      0|				b->yy_ch_buf = NULL;
 1894|       |
 1895|      0|			if ( ! b->yy_ch_buf )
  ------------------
  |  Branch (1895:9): [True: 0, False: 0]
  ------------------
 1896|      0|				YY_FATAL_ERROR(
  ------------------
  |  |  629|      0|    do {                                                        \
  |  |  630|      0|        ap_log_error(APLOG_MARK, APLOG_CRIT, 0, ap_server_conf, \
  |  |  ------------------
  |  |  |  |  363|      0|#define ap_log_error(...) ap_log_error__(__VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  366|      0|    do { const server_rec *sr__ = s; if (APLOG_MODULE_IS_LEVEL(sr__, mi, level)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  183|      0|          ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                         ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   48|      0|#define APLOG_NOTICE    LOG_NOTICE      /* normal but significant condition */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (183:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  184|      0|            (s == NULL) ||                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (184:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  185|      0|            (ap_get_server_module_loglevel(s, module_index)      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  629|      0|    (ap_get_module_loglevel(&(s)->log,i))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  624|      0|    (((i) < 0 || (l)->module_levels == NULL || (l)->module_levels[i] < 0) ?  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:18): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:48): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:67): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  625|      0|     (l)->level :                                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  626|      0|     (l)->module_levels[i])
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (626:25): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (185:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  186|      0|             >= ((level)&APLOG_LEVELMASK) ) )
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  367|      0|             ap_log_error_(file, line, mi, level, status, sr__, __VA_ARGS__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (367:40): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  368|      0|    } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (368:13): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  631|      0|                     APLOGNO(03296)                             \
  |  |  632|      0|                     "expr parser fatal error (BUG?): "         \
  |  |  633|      0|                     "%s, exiting", msg);                       \
  |  |  634|      0|        if (unreachable) {                                      \
  |  |  ------------------
  |  |  |  Branch (634:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  635|      0|            /* Not reached, silence [-Wunused-function] */      \
  |  |  636|      0|            yy_fatal_error(msg, yyscanner);                     \
  |  |  637|      0|        }                                                       \
  |  |  638|      0|        else {                                                  \
  |  |  639|      0|            abort();                                            \
  |  |  640|      0|        }                                                       \
  |  |  641|      0|    } while (0)
  |  |  ------------------
  |  |  |  Branch (641:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1897|      0|				"fatal error - scanner input buffer overflow" );
 1898|       |
 1899|      0|			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
 1900|       |
 1901|      0|			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
  ------------------
  |  |  276|      0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 1902|      0|						number_to_move - 1;
 1903|       |
 1904|      0|			}
 1905|       |
 1906|  4.43k|		if ( num_to_read > YY_READ_BUF_SIZE )
  ------------------
  |  |  873|  4.43k|#define YY_READ_BUF_SIZE 8192
  ------------------
  |  Branch (1906:8): [True: 4.43k, False: 0]
  ------------------
 1907|  4.43k|			num_to_read = YY_READ_BUF_SIZE;
  ------------------
  |  |  873|  4.43k|#define YY_READ_BUF_SIZE 8192
  ------------------
 1908|       |
 1909|       |		/* Read in more data. */
 1910|  4.43k|		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
  ------------------
  |  |  608|  4.43k|#define YY_INPUT(buf,result,max_size)                       \
  |  |  609|  4.43k|{                                                           \
  |  |  610|  4.43k|    if ((result = MIN(max_size, yyextra->inputbuf           \
  |  |  ------------------
  |  |  |  |   30|  4.43k|#define MIN(a,b) (((a)<(b))?(a):(b))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (30:19): [True: 229, False: 4.20k]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (610:9): [True: 2.75k, False: 1.68k]
  |  |  ------------------
  |  |  611|  4.43k|                              + yyextra->inputlen           \
  |  |  612|  4.43k|                              - yyextra->inputptr)) <= 0)   \
  |  |  613|  4.43k|    {                                                       \
  |  |  614|  2.75k|        result = YY_NULL;                                   \
  |  |  ------------------
  |  |  |  |  101|  2.75k|#define YY_NULL 0
  |  |  ------------------
  |  |  615|  2.75k|    }                                                       \
  |  |  616|  4.43k|    else {                                                  \
  |  |  617|  1.68k|        memcpy(buf, yyextra->inputptr, result);             \
  |  |  ------------------
  |  |  |  |  120|  1.68k|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  618|  1.68k|        yyextra->inputptr += result;                        \
  |  |  ------------------
  |  |  |  |  120|  1.68k|#define yyextra yyg->yyextra_r
  |  |  ------------------
  |  |  619|  1.68k|    }                                                       \
  |  |  620|  4.43k|}
  ------------------
 1911|  4.43k|			yyg->yy_n_chars, num_to_read );
 1912|       |
 1913|  4.43k|		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
  ------------------
  |  |  276|  4.43k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 1914|  4.43k|		}
 1915|       |
 1916|  5.87k|	if ( yyg->yy_n_chars == 0 )
  ------------------
  |  Branch (1916:7): [True: 4.18k, False: 1.68k]
  ------------------
 1917|  4.18k|		{
 1918|  4.18k|		if ( number_to_move == YY_MORE_ADJ )
  ------------------
  |  |  570|  4.18k|#define YY_MORE_ADJ 0
  ------------------
  |  Branch (1918:8): [True: 2.72k, False: 1.46k]
  ------------------
 1919|  2.72k|			{
 1920|  2.72k|			ret_val = EOB_ACT_END_OF_FILE;
  ------------------
  |  |  176|  2.72k|#define EOB_ACT_END_OF_FILE 1
  ------------------
 1921|  2.72k|			ap_expr_yyrestart(yyin  ,yyscanner);
  ------------------
  |  |  118|  2.72k|#define yyin yyg->yyin_r
  ------------------
 1922|  2.72k|			}
 1923|       |
 1924|  1.46k|		else
 1925|  1.46k|			{
 1926|  1.46k|			ret_val = EOB_ACT_LAST_MATCH;
  ------------------
  |  |  177|  1.46k|#define EOB_ACT_LAST_MATCH 2
  ------------------
 1927|  1.46k|			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
  ------------------
  |  |  276|  1.46k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 1928|  1.46k|				YY_BUFFER_EOF_PENDING;
  ------------------
  |  |  258|  1.46k|#define YY_BUFFER_EOF_PENDING 2
  ------------------
 1929|  1.46k|			}
 1930|  4.18k|		}
 1931|       |
 1932|  1.68k|	else
 1933|  1.68k|		ret_val = EOB_ACT_CONTINUE_SCAN;
  ------------------
  |  |  175|  1.68k|#define EOB_ACT_CONTINUE_SCAN 0
  ------------------
 1934|       |
 1935|  5.87k|	if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
  ------------------
  |  |  276|  5.87k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
  |  Branch (1935:6): [True: 0, False: 5.87k]
  ------------------
 1936|       |		/* Extend the array by 50%, plus the number we really need. */
 1937|      0|		int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
 1938|      0|		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) ap_expr_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
  ------------------
  |  |  276|      0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
              		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) ap_expr_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
  ------------------
  |  |  276|      0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 1939|      0|		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
  ------------------
  |  |  276|      0|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
  |  Branch (1939:8): [True: 0, False: 0]
  ------------------
 1940|      0|			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
  ------------------
  |  |  629|      0|    do {                                                        \
  |  |  630|      0|        ap_log_error(APLOG_MARK, APLOG_CRIT, 0, ap_server_conf, \
  |  |  ------------------
  |  |  |  |  363|      0|#define ap_log_error(...) ap_log_error__(__VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  366|      0|    do { const server_rec *sr__ = s; if (APLOG_MODULE_IS_LEVEL(sr__, mi, level)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  183|      0|          ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                         ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   48|      0|#define APLOG_NOTICE    LOG_NOTICE      /* normal but significant condition */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (183:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  184|      0|            (s == NULL) ||                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (184:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  185|      0|            (ap_get_server_module_loglevel(s, module_index)      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  629|      0|    (ap_get_module_loglevel(&(s)->log,i))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  624|      0|    (((i) < 0 || (l)->module_levels == NULL || (l)->module_levels[i] < 0) ?  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:18): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:48): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:67): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  625|      0|     (l)->level :                                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  626|      0|     (l)->module_levels[i])
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (626:25): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (185:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  186|      0|             >= ((level)&APLOG_LEVELMASK) ) )
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  367|      0|             ap_log_error_(file, line, mi, level, status, sr__, __VA_ARGS__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (367:40): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  368|      0|    } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (368:13): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  631|      0|                     APLOGNO(03296)                             \
  |  |  632|      0|                     "expr parser fatal error (BUG?): "         \
  |  |  633|      0|                     "%s, exiting", msg);                       \
  |  |  634|      0|        if (unreachable) {                                      \
  |  |  ------------------
  |  |  |  Branch (634:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  635|      0|            /* Not reached, silence [-Wunused-function] */      \
  |  |  636|      0|            yy_fatal_error(msg, yyscanner);                     \
  |  |  637|      0|        }                                                       \
  |  |  638|      0|        else {                                                  \
  |  |  639|      0|            abort();                                            \
  |  |  640|      0|        }                                                       \
  |  |  641|      0|    } while (0)
  |  |  ------------------
  |  |  |  Branch (641:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1941|      0|	}
 1942|       |
 1943|  5.87k|	yyg->yy_n_chars += number_to_move;
 1944|  5.87k|	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  276|  5.87k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
              	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  146|  5.87k|#define YY_END_OF_BUFFER_CHAR 0
  ------------------
 1945|  5.87k|	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  276|  5.87k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
              	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  146|  5.87k|#define YY_END_OF_BUFFER_CHAR 0
  ------------------
 1946|       |
 1947|  5.87k|	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
  ------------------
  |  |  333|  5.87k|#define yytext_ptr yytext_r
  ------------------
              	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
  ------------------
  |  |  276|  5.87k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 1948|       |
 1949|  5.87k|	return ret_val;
 1950|  5.87k|}
util_expr_scan.c:yy_get_previous_state:
 1955|  3.15k|{
 1956|  3.15k|	yy_state_type yy_current_state;
 1957|  3.15k|	char *yy_cp;
 1958|  3.15k|    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 1959|       |
 1960|  3.15k|	yy_current_state = yyg->yy_start;
 1961|       |
 1962|  4.94k|	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
  ------------------
  |  |  333|  3.15k|#define yytext_ptr yytext_r
  ------------------
              	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
  ------------------
  |  |  570|  3.15k|#define YY_MORE_ADJ 0
  ------------------
  |  Branch (1962:47): [True: 1.79k, False: 3.15k]
  ------------------
 1963|  1.79k|		{
 1964|  1.79k|		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
  ------------------
  |  |  108|  1.79k|#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
  ------------------
  |  Branch (1964:19): [True: 1.79k, False: 0]
  ------------------
 1965|  1.79k|		if ( yy_accept[yy_current_state] )
  ------------------
  |  Branch (1965:8): [True: 178, False: 1.62k]
  ------------------
 1966|    178|			{
 1967|    178|			yyg->yy_last_accepting_state = yy_current_state;
 1968|    178|			yyg->yy_last_accepting_cpos = yy_cp;
 1969|    178|			}
 1970|  3.10k|		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  ------------------
  |  Branch (1970:11): [True: 1.30k, False: 1.79k]
  ------------------
 1971|  1.30k|			{
 1972|  1.30k|			yy_current_state = (int) yy_def[yy_current_state];
 1973|  1.30k|			if ( yy_current_state >= 155 )
  ------------------
  |  Branch (1973:9): [True: 1.30k, False: 0]
  ------------------
 1974|  1.30k|				yy_c = yy_meta[(unsigned int) yy_c];
 1975|  1.30k|			}
 1976|  1.79k|		yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
 1977|  1.79k|		}
 1978|       |
 1979|  3.15k|	return yy_current_state;
 1980|  3.15k|}
util_expr_scan.c:ap_expr_yy_load_buffer_state:
 2147|  6.97k|{
 2148|  6.97k|    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 2149|  6.97k|	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
  ------------------
  |  |  276|  6.97k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 2150|  6.97k|	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
  ------------------
  |  |  333|  6.97k|#define yytext_ptr yytext_r
  ------------------
              	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
  ------------------
  |  |  276|  6.97k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 2151|  6.97k|	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
  ------------------
  |  |  118|  6.97k|#define yyin yyg->yyin_r
  ------------------
              	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
  ------------------
  |  |  276|  6.97k|#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
  ------------------
 2152|  6.97k|	yyg->yy_hold_char = *yyg->yy_c_buf_p;
 2153|  6.97k|}
util_expr_scan.c:ap_expr_yy_init_buffer:
 2211|  4.25k|{
 2212|  4.25k|	int oerrno = errno;
 2213|  4.25k|    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 2214|       |
 2215|  4.25k|	ap_expr_yy_flush_buffer(b ,yyscanner);
 2216|       |
 2217|  4.25k|	b->yy_input_file = file;
 2218|  4.25k|	b->yy_fill_buffer = 1;
 2219|       |
 2220|       |    /* If b is the current buffer, then ap_expr_yy_init_buffer was _probably_
 2221|       |     * called from ap_expr_yyrestart() or through yy_get_next_buffer.
 2222|       |     * In that case, we don't want to reset the lineno or column.
 2223|       |     */
 2224|  4.25k|    if (b != YY_CURRENT_BUFFER){
  ------------------
  |  |  269|  4.25k|#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
  |  |  ------------------
  |  |  |  Branch (269:29): [True: 4.25k, False: 0]
  |  |  ------------------
  |  |  270|  4.25k|                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
  |  |  271|  4.25k|                          : NULL)
  ------------------
  |  Branch (2224:9): [True: 1.52k, False: 2.72k]
  ------------------
 2225|  1.52k|        b->yy_bs_lineno = 1;
 2226|  1.52k|        b->yy_bs_column = 0;
 2227|  1.52k|    }
 2228|       |
 2229|  4.25k|        b->yy_is_interactive = 0;
 2230|       |    
 2231|  4.25k|	errno = oerrno;
 2232|  4.25k|}
util_expr_scan.c:ap_expr_yyensure_buffer_stack:
 2320|  1.52k|{
 2321|  1.52k|	int num_to_alloc;
 2322|  1.52k|    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 2323|       |
 2324|  1.52k|	if (!yyg->yy_buffer_stack) {
  ------------------
  |  Branch (2324:6): [True: 1.52k, False: 0]
  ------------------
 2325|       |
 2326|       |		/* First allocation is just for 2 elements, since we don't know if this
 2327|       |		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
 2328|       |		 * immediate realloc on the next call.
 2329|       |         */
 2330|  1.52k|      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
 2331|  1.52k|		yyg->yy_buffer_stack = (struct yy_buffer_state**)ap_expr_yyalloc
 2332|  1.52k|								(num_to_alloc * sizeof(struct yy_buffer_state*)
 2333|  1.52k|								, yyscanner);
 2334|  1.52k|		if ( ! yyg->yy_buffer_stack )
  ------------------
  |  Branch (2334:8): [True: 0, False: 1.52k]
  ------------------
 2335|      0|			YY_FATAL_ERROR( "out of dynamic memory in ap_expr_yyensure_buffer_stack()" );
  ------------------
  |  |  629|      0|    do {                                                        \
  |  |  630|      0|        ap_log_error(APLOG_MARK, APLOG_CRIT, 0, ap_server_conf, \
  |  |  ------------------
  |  |  |  |  363|      0|#define ap_log_error(...) ap_log_error__(__VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  366|      0|    do { const server_rec *sr__ = s; if (APLOG_MODULE_IS_LEVEL(sr__, mi, level)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  183|      0|          ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                         ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   48|      0|#define APLOG_NOTICE    LOG_NOTICE      /* normal but significant condition */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (183:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  184|      0|            (s == NULL) ||                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (184:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  185|      0|            (ap_get_server_module_loglevel(s, module_index)      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  629|      0|    (ap_get_module_loglevel(&(s)->log,i))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  624|      0|    (((i) < 0 || (l)->module_levels == NULL || (l)->module_levels[i] < 0) ?  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:18): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:48): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:67): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  625|      0|     (l)->level :                                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  626|      0|     (l)->module_levels[i])
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (626:25): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (185:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  186|      0|             >= ((level)&APLOG_LEVELMASK) ) )
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  367|      0|             ap_log_error_(file, line, mi, level, status, sr__, __VA_ARGS__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (367:40): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  368|      0|    } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (368:13): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  631|      0|                     APLOGNO(03296)                             \
  |  |  632|      0|                     "expr parser fatal error (BUG?): "         \
  |  |  633|      0|                     "%s, exiting", msg);                       \
  |  |  634|      0|        if (unreachable) {                                      \
  |  |  ------------------
  |  |  |  Branch (634:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  635|      0|            /* Not reached, silence [-Wunused-function] */      \
  |  |  636|      0|            yy_fatal_error(msg, yyscanner);                     \
  |  |  637|      0|        }                                                       \
  |  |  638|      0|        else {                                                  \
  |  |  639|      0|            abort();                                            \
  |  |  640|      0|        }                                                       \
  |  |  641|      0|    } while (0)
  |  |  ------------------
  |  |  |  Branch (641:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2336|       |
 2337|  1.52k|		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
 2338|       |
 2339|  1.52k|		yyg->yy_buffer_stack_max = num_to_alloc;
 2340|  1.52k|		yyg->yy_buffer_stack_top = 0;
 2341|  1.52k|		return;
 2342|  1.52k|	}
 2343|       |
 2344|      0|	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
  ------------------
  |  Branch (2344:6): [True: 0, False: 0]
  ------------------
 2345|       |
 2346|       |		/* Increase the buffer to prepare for a possible push. */
 2347|      0|		yy_size_t grow_size = 8 /* arbitrary grow size */;
 2348|       |
 2349|      0|		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
 2350|      0|		yyg->yy_buffer_stack = (struct yy_buffer_state**)ap_expr_yyrealloc
 2351|      0|								(yyg->yy_buffer_stack,
 2352|      0|								num_to_alloc * sizeof(struct yy_buffer_state*)
 2353|      0|								, yyscanner);
 2354|      0|		if ( ! yyg->yy_buffer_stack )
  ------------------
  |  Branch (2354:8): [True: 0, False: 0]
  ------------------
 2355|      0|			YY_FATAL_ERROR( "out of dynamic memory in ap_expr_yyensure_buffer_stack()" );
  ------------------
  |  |  629|      0|    do {                                                        \
  |  |  630|      0|        ap_log_error(APLOG_MARK, APLOG_CRIT, 0, ap_server_conf, \
  |  |  ------------------
  |  |  |  |  363|      0|#define ap_log_error(...) ap_log_error__(__VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  366|      0|    do { const server_rec *sr__ = s; if (APLOG_MODULE_IS_LEVEL(sr__, mi, level)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  183|      0|          ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                         ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   48|      0|#define APLOG_NOTICE    LOG_NOTICE      /* normal but significant condition */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (183:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  184|      0|            (s == NULL) ||                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (184:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  185|      0|            (ap_get_server_module_loglevel(s, module_index)      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  629|      0|    (ap_get_module_loglevel(&(s)->log,i))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  624|      0|    (((i) < 0 || (l)->module_levels == NULL || (l)->module_levels[i] < 0) ?  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:18): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:48): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:67): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  625|      0|     (l)->level :                                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  626|      0|     (l)->module_levels[i])
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (626:25): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (185:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  186|      0|             >= ((level)&APLOG_LEVELMASK) ) )
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  367|      0|             ap_log_error_(file, line, mi, level, status, sr__, __VA_ARGS__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (367:40): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  368|      0|    } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (368:13): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  631|      0|                     APLOGNO(03296)                             \
  |  |  632|      0|                     "expr parser fatal error (BUG?): "         \
  |  |  633|      0|                     "%s, exiting", msg);                       \
  |  |  634|      0|        if (unreachable) {                                      \
  |  |  ------------------
  |  |  |  Branch (634:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  635|      0|            /* Not reached, silence [-Wunused-function] */      \
  |  |  636|      0|            yy_fatal_error(msg, yyscanner);                     \
  |  |  637|      0|        }                                                       \
  |  |  638|      0|        else {                                                  \
  |  |  639|      0|            abort();                                            \
  |  |  640|      0|        }                                                       \
  |  |  641|      0|    } while (0)
  |  |  ------------------
  |  |  |  Branch (641:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2356|       |
 2357|       |		/* zero only the new slots.*/
 2358|      0|		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
 2359|      0|		yyg->yy_buffer_stack_max = num_to_alloc;
 2360|      0|	}
 2361|      0|}
util_expr_scan.c:yy_push_state:
 2450|  1.52k|{
 2451|  1.52k|    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 2452|  1.52k|	if ( yyg->yy_start_stack_ptr >= yyg->yy_start_stack_depth )
  ------------------
  |  Branch (2452:7): [True: 1.52k, False: 0]
  ------------------
 2453|  1.52k|		{
 2454|  1.52k|		yy_size_t new_size;
 2455|       |
 2456|  1.52k|		yyg->yy_start_stack_depth += YY_START_STACK_INCR;
  ------------------
  |  |  931|  1.52k|#define YY_START_STACK_INCR 25
  ------------------
 2457|  1.52k|		new_size = (yy_size_t) yyg->yy_start_stack_depth * sizeof( int );
 2458|       |
 2459|  1.52k|		if ( ! yyg->yy_start_stack )
  ------------------
  |  Branch (2459:8): [True: 1.52k, False: 0]
  ------------------
 2460|  1.52k|			yyg->yy_start_stack = (int *) ap_expr_yyalloc(new_size ,yyscanner );
 2461|       |
 2462|      0|		else
 2463|      0|			yyg->yy_start_stack = (int *) ap_expr_yyrealloc((void *) yyg->yy_start_stack,new_size ,yyscanner );
 2464|       |
 2465|  1.52k|		if ( ! yyg->yy_start_stack )
  ------------------
  |  Branch (2465:8): [True: 0, False: 1.52k]
  ------------------
 2466|      0|			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
  ------------------
  |  |  629|      0|    do {                                                        \
  |  |  630|      0|        ap_log_error(APLOG_MARK, APLOG_CRIT, 0, ap_server_conf, \
  |  |  ------------------
  |  |  |  |  363|      0|#define ap_log_error(...) ap_log_error__(__VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  366|      0|    do { const server_rec *sr__ = s; if (APLOG_MODULE_IS_LEVEL(sr__, mi, level)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  183|      0|          ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                         ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   48|      0|#define APLOG_NOTICE    LOG_NOTICE      /* normal but significant condition */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (183:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  184|      0|            (s == NULL) ||                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (184:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  185|      0|            (ap_get_server_module_loglevel(s, module_index)      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  629|      0|    (ap_get_module_loglevel(&(s)->log,i))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  624|      0|    (((i) < 0 || (l)->module_levels == NULL || (l)->module_levels[i] < 0) ?  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:18): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:48): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:67): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  625|      0|     (l)->level :                                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  626|      0|     (l)->module_levels[i])
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (626:25): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (185:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  186|      0|             >= ((level)&APLOG_LEVELMASK) ) )
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  367|      0|             ap_log_error_(file, line, mi, level, status, sr__, __VA_ARGS__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (367:40): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  368|      0|    } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (368:13): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  631|      0|                     APLOGNO(03296)                             \
  |  |  632|      0|                     "expr parser fatal error (BUG?): "         \
  |  |  633|      0|                     "%s, exiting", msg);                       \
  |  |  634|      0|        if (unreachable) {                                      \
  |  |  ------------------
  |  |  |  Branch (634:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  635|      0|            /* Not reached, silence [-Wunused-function] */      \
  |  |  636|      0|            yy_fatal_error(msg, yyscanner);                     \
  |  |  637|      0|        }                                                       \
  |  |  638|      0|        else {                                                  \
  |  |  639|      0|            abort();                                            \
  |  |  640|      0|        }                                                       \
  |  |  641|      0|    } while (0)
  |  |  ------------------
  |  |  |  Branch (641:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2467|  1.52k|		}
 2468|       |
 2469|  1.52k|	yyg->yy_start_stack[yyg->yy_start_stack_ptr++] = YY_START;
  ------------------
  |  |  137|  1.52k|#define YY_START ((yyg->yy_start - 1) / 2)
  ------------------
 2470|       |
 2471|  1.52k|	BEGIN(_new_state);
  ------------------
  |  |  131|  1.52k|#define BEGIN yyg->yy_start = 1 + 2 *
  ------------------
 2472|  1.52k|}
util_expr_scan.c:yy_pop_state:
 2475|  1.36k|{
 2476|  1.36k|    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 2477|  1.36k|	if ( --yyg->yy_start_stack_ptr < 0 )
  ------------------
  |  Branch (2477:7): [True: 0, False: 1.36k]
  ------------------
 2478|      0|		YY_FATAL_ERROR( "start-condition stack underflow" );
  ------------------
  |  |  629|      0|    do {                                                        \
  |  |  630|      0|        ap_log_error(APLOG_MARK, APLOG_CRIT, 0, ap_server_conf, \
  |  |  ------------------
  |  |  |  |  363|      0|#define ap_log_error(...) ap_log_error__(__VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  366|      0|    do { const server_rec *sr__ = s; if (APLOG_MODULE_IS_LEVEL(sr__, mi, level)) \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  183|      0|          ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |                         ( (((level)&APLOG_LEVELMASK) <= APLOG_NOTICE) ||       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   48|      0|#define APLOG_NOTICE    LOG_NOTICE      /* normal but significant condition */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (183:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  184|      0|            (s == NULL) ||                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (184:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  185|      0|            (ap_get_server_module_loglevel(s, module_index)      \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  629|      0|    (ap_get_module_loglevel(&(s)->log,i))
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  624|      0|    (((i) < 0 || (l)->module_levels == NULL || (l)->module_levels[i] < 0) ?  \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:7): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:8): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:18): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:48): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (624:67): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  625|      0|     (l)->level :                                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  626|      0|     (l)->module_levels[i])
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (626:25): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (185:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  186|      0|             >= ((level)&APLOG_LEVELMASK) ) )
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   60|      0|#define APLOG_LEVELMASK 15     /* mask off the level value */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  367|      0|             ap_log_error_(file, line, mi, level, status, sr__, __VA_ARGS__);    \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (367:40): [True: 0, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  368|      0|    } while(0)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (368:13): [Folded - Ignored]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  631|      0|                     APLOGNO(03296)                             \
  |  |  632|      0|                     "expr parser fatal error (BUG?): "         \
  |  |  633|      0|                     "%s, exiting", msg);                       \
  |  |  634|      0|        if (unreachable) {                                      \
  |  |  ------------------
  |  |  |  Branch (634:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  635|      0|            /* Not reached, silence [-Wunused-function] */      \
  |  |  636|      0|            yy_fatal_error(msg, yyscanner);                     \
  |  |  637|      0|        }                                                       \
  |  |  638|      0|        else {                                                  \
  |  |  639|      0|            abort();                                            \
  |  |  640|      0|        }                                                       \
  |  |  641|      0|    } while (0)
  |  |  ------------------
  |  |  |  Branch (641:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 2479|       |
 2480|  1.36k|	BEGIN(yyg->yy_start_stack[yyg->yy_start_stack_ptr]);
  ------------------
  |  |  131|  1.36k|#define BEGIN yyg->yy_start = 1 + 2 *
  ------------------
 2481|  1.36k|}
util_expr_scan.c:yy_init_globals:
 2716|  3.05k|{
 2717|  3.05k|    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 2718|       |    /* Initialization is the same as for the non-reentrant scanner.
 2719|       |     * This function is called from ap_expr_yylex_destroy(), so don't allocate here.
 2720|       |     */
 2721|       |
 2722|  3.05k|    yyg->yy_buffer_stack = NULL;
 2723|  3.05k|    yyg->yy_buffer_stack_top = 0;
 2724|  3.05k|    yyg->yy_buffer_stack_max = 0;
 2725|  3.05k|    yyg->yy_c_buf_p = NULL;
 2726|  3.05k|    yyg->yy_init = 0;
 2727|  3.05k|    yyg->yy_start = 0;
 2728|       |
 2729|  3.05k|    yyg->yy_start_stack_ptr = 0;
 2730|  3.05k|    yyg->yy_start_stack_depth = 0;
 2731|  3.05k|    yyg->yy_start_stack =  NULL;
 2732|       |
 2733|       |/* Defined in main.c */
 2734|       |#ifdef YY_STDINIT
 2735|       |    yyin = stdin;
 2736|       |    yyout = stdout;
 2737|       |#else
 2738|  3.05k|    yyin = NULL;
  ------------------
  |  |  118|  3.05k|#define yyin yyg->yyin_r
  ------------------
 2739|  3.05k|    yyout = NULL;
  ------------------
  |  |  119|  3.05k|#define yyout yyg->yyout_r
  ------------------
 2740|  3.05k|#endif
 2741|       |
 2742|       |    /* For future reference: Set errno on error, since we are called by
 2743|       |     * ap_expr_yylex_init()
 2744|       |     */
 2745|  3.05k|    return 0;
 2746|  3.05k|}

apr_atomic_init:
   29|  1.55k|{
   30|       |#if defined (NEED_ATOMICS_GENERIC64)
   31|       |    return apr__atomic_generic64_init(p);
   32|       |#else
   33|  1.55k|    return APR_SUCCESS;
  ------------------
  |  |  225|  1.55k|#define APR_SUCCESS 0
  ------------------
   34|  1.55k|#endif
   35|  1.55k|}

apr_thread_mutex_create:
   40|  1.55k|{
   41|  1.55k|    apr_thread_mutex_t *new_mutex;
   42|  1.55k|    apr_status_t rv;
   43|       |
   44|       |#ifndef HAVE_PTHREAD_MUTEX_RECURSIVE
   45|       |    if (flags & APR_THREAD_MUTEX_NESTED) {
   46|       |        return APR_ENOTIMPL;
   47|       |    }
   48|       |#endif
   49|       |
   50|  1.55k|    new_mutex = apr_pcalloc(pool, sizeof(apr_thread_mutex_t));
  ------------------
  |  |  454|  1.55k|    apr_pcalloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  ------------------
  |  |  |  |  143|  1.55k|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  153|  1.55k|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|  1.55k|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   51|  1.55k|    new_mutex->pool = pool;
   52|       |
   53|  1.55k|#ifdef HAVE_PTHREAD_MUTEX_RECURSIVE
   54|  1.55k|    if (flags & APR_THREAD_MUTEX_NESTED) {
  ------------------
  |  |   44|  1.55k|#define APR_THREAD_MUTEX_NESTED   0x1   /**< enable nested (recursive) locks */
  ------------------
  |  Branch (54:9): [True: 1.55k, False: 0]
  ------------------
   55|  1.55k|        pthread_mutexattr_t mattr;
   56|       |
   57|  1.55k|        rv = pthread_mutexattr_init(&mattr);
   58|  1.55k|        if (rv) return rv;
  ------------------
  |  Branch (58:13): [True: 0, False: 1.55k]
  ------------------
   59|       |
   60|  1.55k|        rv = pthread_mutexattr_settype(&mattr, PTHREAD_MUTEX_RECURSIVE);
   61|  1.55k|        if (rv) {
  ------------------
  |  Branch (61:13): [True: 0, False: 1.55k]
  ------------------
   62|      0|            pthread_mutexattr_destroy(&mattr);
   63|      0|            return rv;
   64|      0|        }
   65|       |
   66|  1.55k|        rv = pthread_mutex_init(&new_mutex->mutex, &mattr);
   67|       |
   68|  1.55k|        pthread_mutexattr_destroy(&mattr);
   69|  1.55k|    } else
   70|      0|#endif
   71|      0|    {
   72|       |#if defined(APR_THREAD_DEBUG)
   73|       |        pthread_mutexattr_t mattr;
   74|       |
   75|       |        rv = pthread_mutexattr_init(&mattr);
   76|       |        if (rv) return rv;
   77|       |
   78|       |        rv = pthread_mutexattr_settype(&mattr, PTHREAD_MUTEX_ERRORCHECK);
   79|       |        if (rv) {
   80|       |            pthread_mutexattr_destroy(&mattr);
   81|       |            return rv;
   82|       |        }
   83|       |
   84|       |        rv = pthread_mutex_init(&new_mutex->mutex, &mattr);
   85|       |
   86|       |        pthread_mutexattr_destroy(&mattr);
   87|       |#else
   88|      0|        rv = pthread_mutex_init(&new_mutex->mutex, NULL);
   89|      0|#endif
   90|      0|    }
   91|       |
   92|  1.55k|    if (rv) {
  ------------------
  |  Branch (92:9): [True: 0, False: 1.55k]
  ------------------
   93|       |#ifdef HAVE_ZOS_PTHREADS
   94|       |        rv = errno;
   95|       |#endif
   96|      0|        return rv;
   97|      0|    }
   98|       |
   99|       |#ifndef HAVE_PTHREAD_MUTEX_TIMEDLOCK
  100|       |    if (flags & APR_THREAD_MUTEX_TIMED) {
  101|       |        rv = apr_thread_cond_create(&new_mutex->cond, pool);
  102|       |        if (rv) {
  103|       |#ifdef HAVE_ZOS_PTHREADS
  104|       |            rv = errno;
  105|       |#endif
  106|       |            pthread_mutex_destroy(&new_mutex->mutex);
  107|       |            return rv;
  108|       |        }
  109|       |    }
  110|       |#endif
  111|       |
  112|  1.55k|    apr_pool_cleanup_register(new_mutex->pool,
  113|  1.55k|                              new_mutex, thread_mutex_cleanup,
  114|  1.55k|                              apr_pool_cleanup_null);
  115|       |
  116|  1.55k|    *mutex = new_mutex;
  117|  1.55k|    return APR_SUCCESS;
  ------------------
  |  |  225|  1.55k|#define APR_SUCCESS 0
  ------------------
  118|  1.55k|}
apr_thread_mutex_lock:
  121|  1.55k|{
  122|  1.55k|    apr_status_t rv;
  123|       |
  124|       |#ifndef HAVE_PTHREAD_MUTEX_TIMEDLOCK
  125|       |    if (mutex->cond) {
  126|       |        apr_status_t rv2;
  127|       |
  128|       |        rv = pthread_mutex_lock(&mutex->mutex);
  129|       |        if (rv) {
  130|       |#ifdef HAVE_ZOS_PTHREADS
  131|       |            rv = errno;
  132|       |#endif
  133|       |            return rv;
  134|       |        }
  135|       |
  136|       |        if (mutex->locked) {
  137|       |            mutex->num_waiters++;
  138|       |            rv = apr_thread_cond_wait(mutex->cond, mutex);
  139|       |            mutex->num_waiters--;
  140|       |        }
  141|       |        else {
  142|       |            mutex->locked = 1;
  143|       |        }
  144|       |
  145|       |        rv2 = pthread_mutex_unlock(&mutex->mutex);
  146|       |        if (rv2 && !rv) {
  147|       |#ifdef HAVE_ZOS_PTHREADS
  148|       |            rv = errno;
  149|       |#else
  150|       |            rv = rv2;
  151|       |#endif
  152|       |        }
  153|       |
  154|       |        return rv;
  155|       |    }
  156|       |#endif
  157|       |
  158|  1.55k|    rv = pthread_mutex_lock(&mutex->mutex);
  159|       |#ifdef HAVE_ZOS_PTHREADS
  160|       |    if (rv) {
  161|       |        rv = errno;
  162|       |    }
  163|       |#endif
  164|       |
  165|  1.55k|    return rv;
  166|  1.55k|}
apr_thread_mutex_unlock:
  302|  1.55k|{
  303|  1.55k|    apr_status_t status;
  304|       |
  305|       |#ifndef HAVE_PTHREAD_MUTEX_TIMEDLOCK
  306|       |    if (mutex->cond) {
  307|       |        status = pthread_mutex_lock(&mutex->mutex);
  308|       |        if (status) {
  309|       |#ifdef HAVE_ZOS_PTHREADS
  310|       |            status = errno;
  311|       |#endif
  312|       |            return status;
  313|       |        }
  314|       |
  315|       |        if (!mutex->locked) {
  316|       |            status = APR_EINVAL;
  317|       |        }
  318|       |        else if (mutex->num_waiters) {
  319|       |            status = apr_thread_cond_signal(mutex->cond);
  320|       |        }
  321|       |        if (status) {
  322|       |            pthread_mutex_unlock(&mutex->mutex);
  323|       |            return status;
  324|       |        }
  325|       |
  326|       |        mutex->locked = 0;
  327|       |    }
  328|       |#endif
  329|       |
  330|  1.55k|    status = pthread_mutex_unlock(&mutex->mutex);
  331|       |#ifdef HAVE_ZOS_PTHREADS
  332|       |    if (status) {
  333|       |        status = errno;
  334|       |    }
  335|       |#endif
  336|       |
  337|  1.55k|    return status;
  338|  1.55k|}
thread_mutex.c:thread_mutex_cleanup:
   24|  1.55k|{
   25|  1.55k|    apr_thread_mutex_t *mutex = data;
   26|  1.55k|    apr_status_t rv;
   27|       |
   28|  1.55k|    rv = pthread_mutex_destroy(&mutex->mutex);
   29|       |#ifdef HAVE_ZOS_PTHREADS
   30|       |    if (rv) {
   31|       |        rv = errno;
   32|       |    }
   33|       |#endif
   34|  1.55k|    return rv;
   35|  1.55k|}

apr_pool_initialize:
 1674|  1.55k|{
 1675|  1.55k|    apr_status_t rv;
 1676|       |#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE_ALL)
 1677|       |    char *logpath;
 1678|       |    apr_file_t *debug_log = NULL;
 1679|       |#endif
 1680|       |
 1681|  1.55k|    if (apr_pools_initialized++)
  ------------------
  |  Branch (1681:9): [True: 0, False: 1.55k]
  ------------------
 1682|      0|        return APR_SUCCESS;
  ------------------
  |  |  225|      0|#define APR_SUCCESS 0
  ------------------
 1683|       |
 1684|  1.55k|#if defined(_SC_PAGESIZE)
 1685|  1.55k|    boundary_size = sysconf(_SC_PAGESIZE);
 1686|       |#elif defined(WIN32)
 1687|       |    {
 1688|       |        SYSTEM_INFO si;
 1689|       |        GetSystemInfo(&si);
 1690|       |        boundary_size = si.dwPageSize;
 1691|       |    }
 1692|       |#endif
 1693|  1.55k|    boundary_index = 12;
 1694|  1.55k|    while ( (1 << boundary_index) < boundary_size)
  ------------------
  |  Branch (1694:13): [True: 0, False: 1.55k]
  ------------------
 1695|      0|        boundary_index++;
 1696|  1.55k|    boundary_size = (1 << boundary_index);
 1697|       |
 1698|       |    /* Since the debug code works a bit differently then the
 1699|       |     * regular pools code, we ask for a lock here.  The regular
 1700|       |     * pools code has got this lock embedded in the global
 1701|       |     * allocator, a concept unknown to debug mode.
 1702|       |     */
 1703|  1.55k|    if ((rv = apr_pool_create_ex(&global_pool, NULL, NULL,
  ------------------
  |  |  247|  1.55k|    apr_pool_create_ex_debug(newpool, parent, abort_fn, allocator, \
  |  |  248|  1.55k|                             APR_POOL__FILE_LINE__)
  |  |  ------------------
  |  |  |  |  143|  1.55k|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  153|  1.55k|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|  1.55k|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1703:9): [True: 0, False: 1.55k]
  ------------------
 1704|  1.55k|                                 NULL)) != APR_SUCCESS) {
  ------------------
  |  |  225|  1.55k|#define APR_SUCCESS 0
  ------------------
 1705|      0|        return rv;
 1706|      0|    }
 1707|       |
 1708|  1.55k|    apr_pool_tag(global_pool, "APR global pool");
 1709|       |
 1710|  1.55k|    apr_pools_initialized = 1;
 1711|       |
 1712|       |    /* This has to happen here because mutexes might be backed by
 1713|       |     * atomics.  It used to be snug and safe in apr_initialize().
 1714|       |     */
 1715|  1.55k|    if ((rv = apr_atomic_init(global_pool)) != APR_SUCCESS) {
  ------------------
  |  |  225|  1.55k|#define APR_SUCCESS 0
  ------------------
  |  Branch (1715:9): [True: 0, False: 1.55k]
  ------------------
 1716|      0|        return rv;
 1717|      0|    }
 1718|       |
 1719|       |#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE_ALL)
 1720|       |    rv = apr_env_get(&logpath, "APR_POOL_DEBUG_LOG", global_pool);
 1721|       |
 1722|       |    /* Don't pass file_stderr directly to apr_file_open() here, since
 1723|       |     * apr_file_open() can call back to apr_pool_log_event() and that
 1724|       |     * may attempt to use then then non-NULL but partially set up file
 1725|       |     * object. */
 1726|       |    if (rv == APR_SUCCESS) {
 1727|       |        apr_file_open(&debug_log, logpath,
 1728|       |                      APR_FOPEN_APPEND|APR_FOPEN_WRITE|APR_FOPEN_CREATE,
 1729|       |                      APR_FPROT_OS_DEFAULT, global_pool);
 1730|       |    }
 1731|       |    else {
 1732|       |        apr_file_open_stderr(&debug_log, global_pool);
 1733|       |    }
 1734|       |
 1735|       |    /* debug_log is now a file handle. */
 1736|       |    file_stderr = debug_log;
 1737|       |
 1738|       |    if (file_stderr) {
 1739|       |        apr_file_printf(file_stderr,
 1740|       |            "POOL DEBUG: [PID"
 1741|       |#if APR_HAS_THREADS
 1742|       |            "/TID"
 1743|       |#endif /* APR_HAS_THREADS */
 1744|       |            "] ACTION  (SIZE      /POOL SIZE /TOTAL SIZE) "
 1745|       |            "POOL       \"TAG\" <__FILE__:__LINE__> PARENT     (ALLOCS/TOTAL ALLOCS/CLEARS)\n");
 1746|       |
 1747|       |        apr_pool_log_event(global_pool, "GLOBAL", __FILE__ ":apr_pool_initialize", 0);
 1748|       |
 1749|       |        /* Add a cleanup handler that sets the debug log file handle
 1750|       |         * to NULL, otherwise we'll try to log the global pool
 1751|       |         * destruction event with predictably disastrous results. */
 1752|       |        apr_pool_cleanup_register(global_pool, NULL,
 1753|       |                                  apr_pool_cleanup_file_stderr,
 1754|       |                                  apr_pool_cleanup_null);
 1755|       |    }
 1756|       |#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE_ALL) */
 1757|       |
 1758|  1.55k|    return APR_SUCCESS;
  ------------------
  |  |  225|  1.55k|#define APR_SUCCESS 0
  ------------------
 1759|  1.55k|}
apr_pool_terminate:
 1762|  1.55k|{
 1763|  1.55k|    if (!apr_pools_initialized)
  ------------------
  |  Branch (1763:9): [True: 0, False: 1.55k]
  ------------------
 1764|      0|        return;
 1765|       |
 1766|  1.55k|    if (--apr_pools_initialized)
  ------------------
  |  Branch (1766:9): [True: 0, False: 1.55k]
  ------------------
 1767|      0|        return;
 1768|       |
 1769|  1.55k|    apr_pool_destroy(global_pool); /* This will also destroy the mutex */
  ------------------
  |  |  388|  1.55k|    apr_pool_destroy_debug(p, APR_POOL__FILE_LINE__)
  |  |  ------------------
  |  |  |  |  143|  1.55k|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  153|  1.55k|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|  1.55k|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1770|  1.55k|    global_pool = NULL;
 1771|       |
 1772|       |#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE_ALL)
 1773|       |    file_stderr = NULL;
 1774|       |#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE_ALL) */
 1775|  1.55k|}
apr_palloc_debug:
 1823|   221k|{
 1824|   221k|    void *mem;
 1825|       |
 1826|   221k|    apr_pool_check_integrity(pool);
 1827|       |
 1828|   221k|    mem = pool_alloc(pool, size);
 1829|       |
 1830|       |#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE_ALLOC)
 1831|       |    apr_pool_log_event(pool, "PALLOC", file_line, 1);
 1832|       |#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE_ALLOC) */
 1833|       |
 1834|   221k|    return mem;
 1835|   221k|}
apr_pcalloc_debug:
 1839|  1.55k|{
 1840|  1.55k|    void *mem;
 1841|       |
 1842|  1.55k|    apr_pool_check_integrity(pool);
 1843|       |
 1844|  1.55k|    mem = pool_alloc(pool, size);
 1845|  1.55k|    memset(mem, 0, size);
 1846|       |
 1847|       |#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE_ALLOC)
 1848|       |    apr_pool_log_event(pool, "PCALLOC", file_line, 1);
 1849|       |#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE_ALLOC) */
 1850|       |
 1851|  1.55k|    return mem;
 1852|  1.55k|}
apr_pool_destroy_debug:
 1985|  1.55k|{
 1986|  1.55k|#if APR_HAS_THREADS
 1987|  1.55k|    apr_thread_mutex_t *mutex;
 1988|  1.55k|#endif
 1989|       |
 1990|  1.55k|    apr_pool_check_lifetime(pool);
 1991|       |
 1992|  1.55k|    if (pool->joined) {
  ------------------
  |  Branch (1992:9): [True: 0, False: 1.55k]
  ------------------
 1993|       |        /* Joined pools must not be explicitly destroyed; the caller
 1994|       |         * has broken the guarantee. */
 1995|       |#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE_ALL)
 1996|       |        apr_pool_log_event(pool, "LIFE",
 1997|       |                           __FILE__ ":apr_pool_destroy abort on joined", 0);
 1998|       |#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE_ALL) */
 1999|       |
 2000|      0|        abort();
 2001|      0|    }
 2002|       |
 2003|  1.55k|#if APR_HAS_THREADS
 2004|       |    /* Lock the parent mutex before destroying so that it's not accessed
 2005|       |     * concurrently by apr_pool_walk_tree.
 2006|       |     */
 2007|  1.55k|    mutex = parent_lock(pool);
 2008|  1.55k|#endif
 2009|       |
 2010|       |#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
 2011|       |    apr_pool_log_event(pool, "DESTROY", file_line, 1);
 2012|       |#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
 2013|       |
 2014|  1.55k|    pool_destroy_debug(pool, file_line);
 2015|       |
 2016|  1.55k|#if APR_HAS_THREADS
 2017|       |    /* Unlock the mutex we obtained above */
 2018|  1.55k|    parent_unlock(mutex);
 2019|  1.55k|#endif /* APR_HAS_THREADS */
 2020|  1.55k|}
apr_pool_create_ex_debug:
 2027|  3.11k|{
 2028|  3.11k|    apr_pool_t *pool;
 2029|       |
 2030|  3.11k|    *newpool = NULL;
 2031|       |
 2032|  3.11k|    if (!parent) {
  ------------------
  |  Branch (2032:9): [True: 3.11k, False: 0]
  ------------------
 2033|  3.11k|        parent = global_pool;
 2034|  3.11k|    }
 2035|      0|    else {
 2036|      0|       apr_pool_check_lifetime(parent);
 2037|       |
 2038|      0|       if (!allocator)
  ------------------
  |  Branch (2038:12): [True: 0, False: 0]
  ------------------
 2039|      0|           allocator = parent->allocator;
 2040|      0|    }
 2041|       |
 2042|  3.11k|    if (!abort_fn && parent)
  ------------------
  |  Branch (2042:9): [True: 3.11k, False: 0]
  |  Branch (2042:22): [True: 1.55k, False: 1.55k]
  ------------------
 2043|  1.55k|        abort_fn = parent->abort_fn;
 2044|       |
 2045|  3.11k|    if ((pool = malloc(SIZEOF_POOL_T)) == NULL) {
  ------------------
  |  |  618|  3.11k|#define SIZEOF_POOL_T       APR_ALIGN_DEFAULT(sizeof(apr_pool_t))
  |  |  ------------------
  |  |  |  |  143|  3.11k|#define APR_ALIGN_DEFAULT(size) APR_ALIGN(size, 8)
  |  |  |  |  ------------------
  |  |  |  |  |  |  140|  3.11k|    (((size) + ((boundary) - 1)) & ~((boundary) - 1))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (2045:9): [True: 0, False: 3.11k]
  ------------------
 2046|      0|        if (abort_fn)
  ------------------
  |  Branch (2046:13): [True: 0, False: 0]
  ------------------
 2047|      0|            abort_fn(APR_ENOMEM);
  ------------------
  |  |  687|      0|#define APR_ENOMEM ENOMEM
  ------------------
 2048|       |
 2049|      0|         return APR_ENOMEM;
  ------------------
  |  |  687|      0|#define APR_ENOMEM ENOMEM
  ------------------
 2050|      0|    }
 2051|       |
 2052|  3.11k|    memset(pool, 0, SIZEOF_POOL_T);
  ------------------
  |  |  618|  3.11k|#define SIZEOF_POOL_T       APR_ALIGN_DEFAULT(sizeof(apr_pool_t))
  |  |  ------------------
  |  |  |  |  143|  3.11k|#define APR_ALIGN_DEFAULT(size) APR_ALIGN(size, 8)
  |  |  |  |  ------------------
  |  |  |  |  |  |  140|  3.11k|    (((size) + ((boundary) - 1)) & ~((boundary) - 1))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2053|       |
 2054|  3.11k|    pool->allocator = allocator;
 2055|  3.11k|    pool->abort_fn = abort_fn;
 2056|  3.11k|    pool->tag = file_line;
 2057|  3.11k|    pool->file_line = file_line;
 2058|       |
 2059|  3.11k|#if APR_HAS_THREADS
 2060|  3.11k|    if (parent == NULL || parent->allocator != allocator) {
  ------------------
  |  Branch (2060:9): [True: 1.55k, False: 1.55k]
  |  Branch (2060:27): [True: 0, False: 1.55k]
  ------------------
 2061|  1.55k|        apr_status_t rv;
 2062|       |
 2063|       |        /* No matter what the creation flags say, always create
 2064|       |         * a lock.  Without it integrity_check and apr_pool_num_bytes
 2065|       |         * blow up (because they traverse pools child lists that
 2066|       |         * possibly belong to another thread, in combination with
 2067|       |         * the pool having no lock).  However, this might actually
 2068|       |         * hide problems like creating a child pool of a pool
 2069|       |         * belonging to another thread.
 2070|       |         */
 2071|  1.55k|        if ((rv = apr_thread_mutex_create(&pool->mutex,
  ------------------
  |  Branch (2071:13): [True: 0, False: 1.55k]
  ------------------
 2072|  1.55k|                APR_THREAD_MUTEX_NESTED, pool)) != APR_SUCCESS) {
  ------------------
  |  |   44|  1.55k|#define APR_THREAD_MUTEX_NESTED   0x1   /**< enable nested (recursive) locks */
  ------------------
                              APR_THREAD_MUTEX_NESTED, pool)) != APR_SUCCESS) {
  ------------------
  |  |  225|  1.55k|#define APR_SUCCESS 0
  ------------------
 2073|      0|            free(pool);
 2074|      0|            return rv;
 2075|      0|        }
 2076|  1.55k|    }
 2077|  1.55k|    else {
 2078|  1.55k|        pool->mutex = parent->mutex;
 2079|  1.55k|    }
 2080|  3.11k|#endif /* APR_HAS_THREADS */
 2081|       |
 2082|  3.11k|    if ((pool->parent = parent) != NULL) {
  ------------------
  |  Branch (2082:9): [True: 1.55k, False: 1.55k]
  ------------------
 2083|  1.55k|        pool_lock(parent);
 2084|       |
 2085|  1.55k|        if ((pool->sibling = parent->child) != NULL)
  ------------------
  |  Branch (2085:13): [True: 0, False: 1.55k]
  ------------------
 2086|      0|            pool->sibling->ref = &pool->sibling;
 2087|       |
 2088|  1.55k|        parent->child = pool;
 2089|  1.55k|        pool->ref = &parent->child;
 2090|       |
 2091|  1.55k|        pool_unlock(parent);
 2092|  1.55k|    }
 2093|  1.55k|    else {
 2094|  1.55k|        pool->sibling = NULL;
 2095|  1.55k|        pool->ref = NULL;
 2096|  1.55k|    }
 2097|       |
 2098|  3.11k|#if APR_HAS_THREADS
 2099|  3.11k|    pool->owner = apr_os_thread_current();
 2100|  3.11k|#endif /* APR_HAS_THREADS */
 2101|       |#ifdef NETWARE
 2102|       |    pool->owner_proc = (apr_os_proc_t)getnlmhandle();
 2103|       |#endif /* defined(NETWARE) */
 2104|       |
 2105|       |#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
 2106|       |    apr_pool_log_event(pool, "CREATE", file_line, 1);
 2107|       |#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
 2108|       |
 2109|  3.11k|    *newpool = pool;
 2110|       |
 2111|  3.11k|    return APR_SUCCESS;
  ------------------
  |  |  225|  3.11k|#define APR_SUCCESS 0
  ------------------
 2112|  3.11k|}
apr_pvsprintf:
 2212|     46|{
 2213|     46|    struct psprintf_data ps;
 2214|     46|    debug_node_t *node;
 2215|       |
 2216|     46|    apr_pool_check_integrity(pool);
 2217|       |
 2218|     46|    ps.size = 64;
 2219|     46|    ps.mem = malloc(ps.size);
 2220|     46|    ps.vbuff.curpos  = ps.mem;
 2221|       |
 2222|       |    /* Save a byte for the NUL terminator */
 2223|     46|    ps.vbuff.endpos = ps.mem + ps.size - 1;
 2224|       |
 2225|     46|    if (apr_vformatter(psprintf_flush, &ps.vbuff, fmt, ap) == -1) {
  ------------------
  |  Branch (2225:9): [True: 0, False: 46]
  ------------------
 2226|      0|        if (pool->abort_fn)
  ------------------
  |  Branch (2226:13): [True: 0, False: 0]
  ------------------
 2227|      0|            pool->abort_fn(APR_ENOMEM);
  ------------------
  |  |  687|      0|#define APR_ENOMEM ENOMEM
  ------------------
 2228|       |
 2229|      0|        return NULL;
 2230|      0|    }
 2231|       |
 2232|     46|    *ps.vbuff.curpos++ = '\0';
 2233|       |
 2234|       |    /*
 2235|       |     * Link the node in
 2236|       |     */
 2237|     46|    node = pool->nodes;
 2238|     46|    if (node == NULL || node->index == 64) {
  ------------------
  |  Branch (2238:9): [True: 0, False: 46]
  |  Branch (2238:25): [True: 3, False: 43]
  ------------------
 2239|      3|        if ((node = malloc(SIZEOF_DEBUG_NODE_T)) == NULL) {
  ------------------
  |  |  562|      3|#define SIZEOF_DEBUG_NODE_T APR_ALIGN_DEFAULT(sizeof(debug_node_t))
  |  |  ------------------
  |  |  |  |  143|      3|#define APR_ALIGN_DEFAULT(size) APR_ALIGN(size, 8)
  |  |  |  |  ------------------
  |  |  |  |  |  |  140|      3|    (((size) + ((boundary) - 1)) & ~((boundary) - 1))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (2239:13): [True: 0, False: 3]
  ------------------
 2240|      0|            if (pool->abort_fn)
  ------------------
  |  Branch (2240:17): [True: 0, False: 0]
  ------------------
 2241|      0|                pool->abort_fn(APR_ENOMEM);
  ------------------
  |  |  687|      0|#define APR_ENOMEM ENOMEM
  ------------------
 2242|       |
 2243|      0|            return NULL;
 2244|      0|        }
 2245|       |
 2246|      3|        node->next = pool->nodes;
 2247|      3|        pool->nodes = node;
 2248|      3|        node->index = 0;
 2249|      3|    }
 2250|       |
 2251|     46|    node->beginp[node->index] = ps.mem;
 2252|     46|    node->endp[node->index] = ps.mem + ps.size;
 2253|     46|    node->index++;
 2254|       |
 2255|     46|    return ps.mem;
 2256|     46|}
apr_psprintf:
 2371|     46|{
 2372|     46|    va_list ap;
 2373|     46|    char *res;
 2374|       |
 2375|     46|    va_start(ap, fmt);
 2376|     46|    res = apr_pvsprintf(p, fmt, ap);
 2377|     46|    va_end(ap);
 2378|     46|    return res;
 2379|     46|}
apr_pool_tag:
 2440|  1.55k|{
 2441|  1.55k|    pool->tag = tag;
 2442|  1.55k|}
apr_pool_cleanup_register:
 2530|  1.55k|{
 2531|  1.55k|    cleanup_t *c = NULL;
 2532|       |
 2533|  1.55k|#if APR_POOL_DEBUG
 2534|  1.55k|    apr_pool_check_integrity(p);
 2535|  1.55k|#endif /* APR_POOL_DEBUG */
 2536|       |
 2537|  1.55k|    if (p != NULL) {
  ------------------
  |  Branch (2537:9): [True: 1.55k, False: 0]
  ------------------
 2538|  1.55k|        if (p->free_cleanups) {
  ------------------
  |  Branch (2538:13): [True: 0, False: 1.55k]
  ------------------
 2539|       |            /* reuse a cleanup structure */
 2540|      0|            c = p->free_cleanups;
 2541|      0|            p->free_cleanups = c->next;
 2542|  1.55k|        } else {
 2543|  1.55k|            c = apr_palloc(p, sizeof(cleanup_t));
  ------------------
  |  |  425|  1.55k|    apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  ------------------
  |  |  |  |  143|  1.55k|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  153|  1.55k|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|  1.55k|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2544|  1.55k|        }
 2545|  1.55k|        c->data = data;
 2546|  1.55k|        c->plain_cleanup_fn = plain_cleanup_fn;
 2547|  1.55k|        c->child_cleanup_fn = child_cleanup_fn;
 2548|  1.55k|        c->next = p->cleanups;
 2549|  1.55k|        p->cleanups = c;
 2550|  1.55k|    }
 2551|       |
 2552|  1.55k|#if APR_POOL_DEBUG
 2553|  1.55k|    if (!c || !c->plain_cleanup_fn || !c->child_cleanup_fn) {
  ------------------
  |  Branch (2553:9): [True: 0, False: 1.55k]
  |  Branch (2553:15): [True: 0, False: 1.55k]
  |  Branch (2553:39): [True: 0, False: 1.55k]
  ------------------
 2554|      0|        abort();
 2555|      0|    }
 2556|  1.55k|#endif /* APR_POOL_DEBUG */
 2557|  1.55k|}
apr_pool_create_ex:
 2979|  1.55k|{
 2980|  1.55k|    return apr_pool_create_ex_debug(newpool, parent,
 2981|  1.55k|                                    abort_fn, allocator,
 2982|  1.55k|                                    "undefined");
 2983|  1.55k|}
apr_pools.c:apr_pool_check_integrity:
 1657|   225k|{
 1658|   225k|    apr_pool_check_lifetime(pool);
 1659|   225k|    apr_pool_check_owner(pool);
 1660|   225k|}
apr_pools.c:apr_pool_check_owner:
 1642|   228k|{
 1643|       |#if (APR_POOL_DEBUG & APR_POOL_DEBUG_OWNER)
 1644|       |#if APR_HAS_THREADS
 1645|       |    if (!apr_os_thread_equal(pool->owner, apr_os_thread_current())) {
 1646|       |#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE_ALL)
 1647|       |        apr_pool_log_event(pool, "THREAD",
 1648|       |                           __FILE__ ":apr_pool_integrity check [owner]", 0);
 1649|       |#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE_ALL) */
 1650|       |        abort();
 1651|       |    }
 1652|       |#endif /* APR_HAS_THREADS */
 1653|       |#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_OWNER) */
 1654|   228k|}
apr_pools.c:pool_alloc:
 1783|   223k|{
 1784|   223k|    debug_node_t *node;
 1785|   223k|    void *mem;
 1786|       |
 1787|   223k|    if ((mem = malloc(size)) == NULL) {
  ------------------
  |  Branch (1787:9): [True: 0, False: 223k]
  ------------------
 1788|      0|        if (pool->abort_fn)
  ------------------
  |  Branch (1788:13): [True: 0, False: 0]
  ------------------
 1789|      0|            pool->abort_fn(APR_ENOMEM);
  ------------------
  |  |  687|      0|#define APR_ENOMEM ENOMEM
  ------------------
 1790|       |
 1791|      0|        return NULL;
 1792|      0|    }
 1793|       |
 1794|   223k|    node = pool->nodes;
 1795|   223k|    if (node == NULL || node->index == 64) {
  ------------------
  |  Branch (1795:9): [True: 3.08k, False: 220k]
  |  Branch (1795:25): [True: 3.32k, False: 217k]
  ------------------
 1796|  6.41k|        if ((node = malloc(SIZEOF_DEBUG_NODE_T)) == NULL) {
  ------------------
  |  |  562|  6.41k|#define SIZEOF_DEBUG_NODE_T APR_ALIGN_DEFAULT(sizeof(debug_node_t))
  |  |  ------------------
  |  |  |  |  143|  6.41k|#define APR_ALIGN_DEFAULT(size) APR_ALIGN(size, 8)
  |  |  |  |  ------------------
  |  |  |  |  |  |  140|  6.41k|    (((size) + ((boundary) - 1)) & ~((boundary) - 1))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (1796:13): [True: 0, False: 6.41k]
  ------------------
 1797|      0|            free(mem);
 1798|      0|            if (pool->abort_fn)
  ------------------
  |  Branch (1798:17): [True: 0, False: 0]
  ------------------
 1799|      0|                pool->abort_fn(APR_ENOMEM);
  ------------------
  |  |  687|      0|#define APR_ENOMEM ENOMEM
  ------------------
 1800|       |
 1801|      0|            return NULL;
 1802|      0|        }
 1803|       |
 1804|  6.41k|        memset(node, 0, SIZEOF_DEBUG_NODE_T);
  ------------------
  |  |  562|  6.41k|#define SIZEOF_DEBUG_NODE_T APR_ALIGN_DEFAULT(sizeof(debug_node_t))
  |  |  ------------------
  |  |  |  |  143|  6.41k|#define APR_ALIGN_DEFAULT(size) APR_ALIGN(size, 8)
  |  |  |  |  ------------------
  |  |  |  |  |  |  140|  6.41k|    (((size) + ((boundary) - 1)) & ~((boundary) - 1))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1805|       |
 1806|  6.41k|        node->next = pool->nodes;
 1807|  6.41k|        pool->nodes = node;
 1808|  6.41k|        node->index = 0;
 1809|  6.41k|    }
 1810|       |
 1811|   223k|    node->beginp[node->index] = mem;
 1812|   223k|    node->endp[node->index] = (char *)mem + size;
 1813|   223k|    node->index++;
 1814|       |
 1815|   223k|    pool->stat_alloc++;
 1816|   223k|    pool->stat_total_alloc++;
 1817|       |
 1818|   223k|    return mem;
 1819|   223k|}
apr_pools.c:apr_pool_check_lifetime:
 1616|   226k|{
 1617|       |    /* Rule of thumb: use of the global pool is always
 1618|       |     * ok, since the only user is apr_pools.c.  Unless
 1619|       |     * people have searched for the top level parent and
 1620|       |     * started to use that...
 1621|       |     */
 1622|   226k|    if (pool == global_pool || global_pool == NULL)
  ------------------
  |  Branch (1622:9): [True: 1.55k, False: 225k]
  |  Branch (1622:32): [True: 4.67k, False: 220k]
  ------------------
 1623|  6.23k|        return;
 1624|       |
 1625|       |    /* Lifetime
 1626|       |     * This basically checks to see if the pool being used is still
 1627|       |     * a relative to the global pool.  If not it was previously
 1628|       |     * destroyed, in which case we abort().
 1629|       |     */
 1630|       |#if (APR_POOL_DEBUG & APR_POOL_DEBUG_LIFETIME)
 1631|       |    if (!apr_pool_is_child_of(pool, global_pool)) {
 1632|       |#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE_ALL)
 1633|       |        apr_pool_log_event(pool, "LIFE",
 1634|       |                           __FILE__ ":apr_pool_integrity check [lifetime]", 0);
 1635|       |#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE_ALL) */
 1636|       |        abort();
 1637|       |    }
 1638|       |#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_LIFETIME) */
 1639|   226k|}
apr_pools.c:parent_lock:
 1491|  1.55k|{
 1492|  1.55k|    if (pool->parent) {
  ------------------
  |  Branch (1492:9): [True: 0, False: 1.55k]
  ------------------
 1493|      0|        apr_thread_mutex_lock(pool->parent->mutex);
 1494|      0|        return pool->parent->mutex;
 1495|      0|    }
 1496|  1.55k|    return NULL;
 1497|  1.55k|}
apr_pools.c:pool_clear_debug:
 1862|  3.11k|{
 1863|  3.11k|    debug_node_t *node;
 1864|  3.11k|    apr_size_t index;
 1865|       |
 1866|       |    /* Run pre destroy cleanups */
 1867|  3.11k|    run_cleanups(&pool->pre_cleanups);
 1868|  3.11k|    pool->pre_cleanups = NULL;
 1869|       |
 1870|       |    /*
 1871|       |     * Now that we have given the pre cleanups the chance to kill of any
 1872|       |     * threads using the pool, the owner must be correct.
 1873|       |     */
 1874|  3.11k|    apr_pool_check_owner(pool);
 1875|       |
 1876|       |    /* Destroy the subpools.  The subpools will detach themselves from
 1877|       |     * this pool thus this loop is safe and easy.
 1878|       |     */
 1879|  4.67k|    while (pool->child)
  ------------------
  |  Branch (1879:12): [True: 1.55k, False: 3.11k]
  ------------------
 1880|  1.55k|        pool_destroy_debug(pool->child, file_line);
 1881|       |
 1882|       |    /* Run cleanups */
 1883|  3.11k|    run_cleanups(&pool->cleanups);
 1884|  3.11k|    pool->free_cleanups = NULL;
 1885|  3.11k|    pool->cleanups = NULL;
 1886|       |
 1887|       |    /* If new child pools showed up, this is a reason to raise a flag */
 1888|  3.11k|    if (pool->child)
  ------------------
  |  Branch (1888:9): [True: 0, False: 3.11k]
  ------------------
 1889|      0|        abort();
 1890|       |
 1891|       |    /* Free subprocesses */
 1892|  3.11k|    free_proc_chain(pool->subprocesses);
 1893|  3.11k|    pool->subprocesses = NULL;
 1894|       |
 1895|       |    /* Clear the user data. */
 1896|  3.11k|    pool->user_data = NULL;
 1897|       |
 1898|       |    /* Free the blocks, scribbling over them first to help highlight
 1899|       |     * use-after-free issues. */
 1900|  9.53k|    while ((node = pool->nodes) != NULL) {
  ------------------
  |  Branch (1900:12): [True: 6.41k, False: 3.11k]
  ------------------
 1901|  6.41k|        pool->nodes = node->next;
 1902|       |
 1903|   229k|        for (index = 0; index < node->index; index++) {
  ------------------
  |  Branch (1903:25): [True: 223k, False: 6.41k]
  ------------------
 1904|   223k|            memset(node->beginp[index], POOL_POISON_BYTE,
  ------------------
  |  | 1859|   223k|#define POOL_POISON_BYTE 'A'
  ------------------
 1905|   223k|                   (char *)node->endp[index] - (char *)node->beginp[index]);
 1906|   223k|            free(node->beginp[index]);
 1907|   223k|        }
 1908|       |
 1909|  6.41k|        memset(node, POOL_POISON_BYTE, SIZEOF_DEBUG_NODE_T);
  ------------------
  |  | 1859|  6.41k|#define POOL_POISON_BYTE 'A'
  ------------------
                      memset(node, POOL_POISON_BYTE, SIZEOF_DEBUG_NODE_T);
  ------------------
  |  |  562|  6.41k|#define SIZEOF_DEBUG_NODE_T APR_ALIGN_DEFAULT(sizeof(debug_node_t))
  |  |  ------------------
  |  |  |  |  143|  6.41k|#define APR_ALIGN_DEFAULT(size) APR_ALIGN(size, 8)
  |  |  |  |  ------------------
  |  |  |  |  |  |  140|  6.41k|    (((size) + ((boundary) - 1)) & ~((boundary) - 1))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1910|  6.41k|        free(node);
 1911|  6.41k|    }
 1912|       |
 1913|  3.11k|    pool->stat_alloc = 0;
 1914|  3.11k|    pool->stat_clear++;
 1915|       |
 1916|       |#if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE)
 1917|       |    apr_pool_log_event(pool, "CLEARED", file_line, 1);
 1918|       |#endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */
 1919|  3.11k|}
apr_pools.c:run_cleanups:
 2684|  6.23k|{
 2685|  6.23k|    cleanup_t *c = *cref;
 2686|       |
 2687|  7.79k|    while (c) {
  ------------------
  |  Branch (2687:12): [True: 1.55k, False: 6.23k]
  ------------------
 2688|  1.55k|        *cref = c->next;
 2689|  1.55k|        (*c->plain_cleanup_fn)((void *)c->data);
 2690|  1.55k|        c = *cref;
 2691|  1.55k|    }
 2692|  6.23k|}
apr_pools.c:free_proc_chain:
 2764|  3.11k|{
 2765|       |    /* Dispose of the subprocesses we've spawned off in the course of
 2766|       |     * whatever it was we're cleaning up now.  This may involve killing
 2767|       |     * some of them off...
 2768|       |     */
 2769|  3.11k|    struct process_chain *pc;
 2770|  3.11k|    int need_timeout = 0;
 2771|  3.11k|    apr_time_t timeout_interval;
 2772|       |
 2773|  3.11k|    if (!procs)
  ------------------
  |  Branch (2773:9): [True: 3.11k, False: 0]
  ------------------
 2774|  3.11k|        return; /* No work.  Whew! */
 2775|       |
 2776|       |    /* First, check to see if we need to do the SIGTERM, sleep, SIGKILL
 2777|       |     * dance with any of the processes we're cleaning up.  If we've got
 2778|       |     * any kill-on-sight subprocesses, ditch them now as well, so they
 2779|       |     * don't waste any more cycles doing whatever it is that they shouldn't
 2780|       |     * be doing anymore.
 2781|       |     */
 2782|       |
 2783|      0|#ifndef NEED_WAITPID
 2784|       |    /* Pick up all defunct processes */
 2785|      0|    for (pc = procs; pc; pc = pc->next) {
  ------------------
  |  Branch (2785:22): [True: 0, False: 0]
  ------------------
 2786|      0|        if (apr_proc_wait(pc->proc, NULL, NULL, APR_NOWAIT) != APR_CHILD_NOTDONE)
  ------------------
  |  |  454|      0|#define APR_CHILD_NOTDONE  (APR_OS_START_STATUS + 6)
  |  |  ------------------
  |  |  |  |  136|      0|#define APR_OS_START_STATUS    (APR_OS_START_ERROR + APR_OS_ERRSPACE_SIZE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  117|      0|#define APR_OS_START_ERROR     20000
  |  |  |  |  ------------------
  |  |  |  |               #define APR_OS_START_STATUS    (APR_OS_START_ERROR + APR_OS_ERRSPACE_SIZE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  123|      0|#define APR_OS_ERRSPACE_SIZE 50000
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (2786:13): [True: 0, False: 0]
  ------------------
 2787|      0|            pc->kill_how = APR_KILL_NEVER;
 2788|      0|    }
 2789|      0|#endif /* !defined(NEED_WAITPID) */
 2790|       |
 2791|      0|    for (pc = procs; pc; pc = pc->next) {
  ------------------
  |  Branch (2791:22): [True: 0, False: 0]
  ------------------
 2792|      0|#ifndef WIN32
 2793|      0|        if ((pc->kill_how == APR_KILL_AFTER_TIMEOUT)
  ------------------
  |  Branch (2793:13): [True: 0, False: 0]
  ------------------
 2794|      0|            || (pc->kill_how == APR_KILL_ONLY_ONCE)) {
  ------------------
  |  Branch (2794:16): [True: 0, False: 0]
  ------------------
 2795|       |            /*
 2796|       |             * Subprocess may be dead already.  Only need the timeout if not.
 2797|       |             * Note: apr_proc_kill on Windows is TerminateProcess(), which is
 2798|       |             * similar to a SIGKILL, so always give the process a timeout
 2799|       |             * under Windows before killing it.
 2800|       |             */
 2801|      0|            if (apr_proc_kill(pc->proc, SIGTERM) == APR_SUCCESS)
  ------------------
  |  |  225|      0|#define APR_SUCCESS 0
  ------------------
  |  Branch (2801:17): [True: 0, False: 0]
  ------------------
 2802|      0|                need_timeout = 1;
 2803|      0|        }
 2804|      0|        else if (pc->kill_how == APR_KILL_ALWAYS) {
  ------------------
  |  Branch (2804:18): [True: 0, False: 0]
  ------------------
 2805|       |#else /* WIN32 knows only one fast, clean method of killing processes today */
 2806|       |        if (pc->kill_how != APR_KILL_NEVER) {
 2807|       |            need_timeout = 1;
 2808|       |            pc->kill_how = APR_KILL_ALWAYS;
 2809|       |#endif
 2810|      0|            apr_proc_kill(pc->proc, SIGKILL);
 2811|      0|        }
 2812|      0|    }
 2813|       |
 2814|       |    /* Sleep only if we have to. The sleep algorithm grows
 2815|       |     * by a factor of two on each iteration. TIMEOUT_INTERVAL
 2816|       |     * is equal to TIMEOUT_USECS / 64.
 2817|       |     */
 2818|      0|    if (need_timeout) {
  ------------------
  |  Branch (2818:9): [True: 0, False: 0]
  ------------------
 2819|      0|        timeout_interval = TIMEOUT_INTERVAL;
  ------------------
  |  |  106|      0|#define TIMEOUT_INTERVAL   46875
  ------------------
 2820|      0|        apr_sleep(timeout_interval);
 2821|       |
 2822|      0|        do {
 2823|       |            /* check the status of the subprocesses */
 2824|      0|            need_timeout = 0;
 2825|      0|            for (pc = procs; pc; pc = pc->next) {
  ------------------
  |  Branch (2825:30): [True: 0, False: 0]
  ------------------
 2826|      0|                if (pc->kill_how == APR_KILL_AFTER_TIMEOUT) {
  ------------------
  |  Branch (2826:21): [True: 0, False: 0]
  ------------------
 2827|      0|                    if (apr_proc_wait(pc->proc, NULL, NULL, APR_NOWAIT)
  ------------------
  |  Branch (2827:25): [True: 0, False: 0]
  ------------------
 2828|      0|                            == APR_CHILD_NOTDONE)
  ------------------
  |  |  454|      0|#define APR_CHILD_NOTDONE  (APR_OS_START_STATUS + 6)
  |  |  ------------------
  |  |  |  |  136|      0|#define APR_OS_START_STATUS    (APR_OS_START_ERROR + APR_OS_ERRSPACE_SIZE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  117|      0|#define APR_OS_START_ERROR     20000
  |  |  |  |  ------------------
  |  |  |  |               #define APR_OS_START_STATUS    (APR_OS_START_ERROR + APR_OS_ERRSPACE_SIZE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  123|      0|#define APR_OS_ERRSPACE_SIZE 50000
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 2829|      0|                        need_timeout = 1;		/* subprocess is still active */
 2830|      0|                    else
 2831|      0|                        pc->kill_how = APR_KILL_NEVER;	/* subprocess has exited */
 2832|      0|                }
 2833|      0|            }
 2834|      0|            if (need_timeout) {
  ------------------
  |  Branch (2834:17): [True: 0, False: 0]
  ------------------
 2835|      0|                if (timeout_interval >= TIMEOUT_USECS) {
  ------------------
  |  |  105|      0|#define TIMEOUT_USECS    3000000
  ------------------
  |  Branch (2835:21): [True: 0, False: 0]
  ------------------
 2836|      0|                    break;
 2837|      0|                }
 2838|      0|                apr_sleep(timeout_interval);
 2839|      0|                timeout_interval *= 2;
 2840|      0|            }
 2841|      0|        } while (need_timeout);
  ------------------
  |  Branch (2841:18): [True: 0, False: 0]
  ------------------
 2842|      0|    }
 2843|       |
 2844|       |    /* OK, the scripts we just timed out for have had a chance to clean up
 2845|       |     * --- now, just get rid of them, and also clean up the system accounting
 2846|       |     * goop...
 2847|       |     */
 2848|      0|    for (pc = procs; pc; pc = pc->next) {
  ------------------
  |  Branch (2848:22): [True: 0, False: 0]
  ------------------
 2849|      0|        if (pc->kill_how == APR_KILL_AFTER_TIMEOUT)
  ------------------
  |  Branch (2849:13): [True: 0, False: 0]
  ------------------
 2850|      0|            apr_proc_kill(pc->proc, SIGKILL);
 2851|      0|    }
 2852|       |
 2853|       |    /* Now wait for all the signaled processes to die */
 2854|      0|    for (pc = procs; pc; pc = pc->next) {
  ------------------
  |  Branch (2854:22): [True: 0, False: 0]
  ------------------
 2855|      0|        if (pc->kill_how != APR_KILL_NEVER)
  ------------------
  |  Branch (2855:13): [True: 0, False: 0]
  ------------------
 2856|      0|            (void)apr_proc_wait(pc->proc, NULL, NULL, APR_WAIT);
 2857|      0|    }
 2858|      0|}
apr_pools.c:parent_unlock:
 1501|  1.55k|{
 1502|  1.55k|    if (mutex) {
  ------------------
  |  Branch (1502:9): [True: 0, False: 1.55k]
  ------------------
 1503|      0|        apr_thread_mutex_unlock(mutex);
 1504|      0|    }
 1505|  1.55k|}
apr_pools.c:pool_destroy_debug:
 1964|  3.11k|{
 1965|  3.11k|    pool_clear_debug(pool, file_line);
 1966|       |
 1967|       |    /* Remove the pool from the parent's child list */
 1968|  3.11k|    if (pool->parent != NULL
  ------------------
  |  Branch (1968:9): [True: 1.55k, False: 1.55k]
  ------------------
 1969|  3.11k|        && (*pool->ref = pool->sibling) != NULL) {
  ------------------
  |  Branch (1969:12): [True: 0, False: 1.55k]
  ------------------
 1970|      0|        pool->sibling->ref = pool->ref;
 1971|      0|    }
 1972|       |
 1973|       |    /* Destroy the allocator if the pool owns it */
 1974|  3.11k|    if (pool->allocator != NULL
  ------------------
  |  Branch (1974:9): [True: 0, False: 3.11k]
  ------------------
 1975|  3.11k|        && apr_allocator_owner_get(pool->allocator) == pool) {
  ------------------
  |  Branch (1975:12): [True: 0, False: 0]
  ------------------
 1976|      0|        apr_allocator_destroy(pool->allocator);
 1977|      0|    }
 1978|       |
 1979|       |    /* Free the pool itself */
 1980|  3.11k|    free(pool);
 1981|  3.11k|}
apr_pools.c:pool_lock:
 1474|  1.55k|{
 1475|  1.55k|#if APR_HAS_THREADS
 1476|  1.55k|    apr_thread_mutex_lock(pool->mutex);
 1477|  1.55k|#endif /* APR_HAS_THREADS */
 1478|  1.55k|}
apr_pools.c:pool_unlock:
 1482|  1.55k|{
 1483|  1.55k|#if APR_HAS_THREADS
 1484|  1.55k|    apr_thread_mutex_unlock(pool->mutex);
 1485|  1.55k|#endif /* APR_HAS_THREADS */
 1486|  1.55k|}
apr_pools.c:psprintf_flush:
 2195|      8|{
 2196|      8|    struct psprintf_data *ps = (struct psprintf_data *)vbuff;
 2197|      8|    apr_size_t size;
 2198|       |
 2199|      8|    size = ps->vbuff.curpos - ps->mem;
 2200|       |
 2201|      8|    ps->size <<= 1;
 2202|      8|    if ((ps->mem = realloc(ps->mem, ps->size)) == NULL)
  ------------------
  |  Branch (2202:9): [True: 0, False: 8]
  ------------------
 2203|      0|        return -1;
 2204|       |
 2205|      8|    ps->vbuff.curpos = ps->mem + size;
 2206|      8|    ps->vbuff.endpos = ps->mem + ps->size - 1;
 2207|       |
 2208|      8|    return 0;
 2209|      8|}

apr_vformatter:
  684|     46|{
  685|     46|    register char *sp;
  686|     46|    register char *bep;
  687|     46|    register int cc = 0;
  688|     46|    register apr_size_t i;
  689|       |
  690|     46|    register char *s = NULL;
  691|     46|    char *q;
  692|     46|    apr_size_t s_len = 0;
  693|       |
  694|     46|    register apr_size_t min_width = 0;
  695|     46|    apr_size_t precision = 0;
  696|     46|    enum {
  697|     46|        LEFT, RIGHT
  698|     46|    } adjust;
  699|     46|    char pad_char;
  700|     46|    char prefix_char;
  701|       |
  702|     46|    double fp_num;
  703|     46|    apr_int64_t i_quad = 0;
  704|     46|    apr_uint64_t ui_quad;
  705|     46|    apr_int32_t i_num = 0;
  706|     46|    apr_uint32_t ui_num = 0;
  707|       |
  708|     46|    char num_buf[NUM_BUF_SIZE];
  709|     46|    char char_buf[2];                /* for printing %% and %<unknown> */
  710|       |
  711|     46|    enum var_type_enum {
  712|     46|            IS_QUAD, IS_LONG, IS_SHORT, IS_INT
  713|     46|    };
  714|     46|    enum var_type_enum var_type = IS_INT;
  715|       |
  716|       |    /*
  717|       |     * Flag variables
  718|       |     */
  719|     46|    boolean_e alternate_form;
  720|     46|    boolean_e print_sign;
  721|     46|    boolean_e print_blank;
  722|     46|    boolean_e adjust_precision;
  723|     46|    boolean_e adjust_width;
  724|     46|    int is_negative;
  725|       |
  726|     46|    sp = vbuff->curpos;
  727|     46|    bep = vbuff->endpos;
  728|       |
  729|  1.21k|    while (*fmt) {
  ------------------
  |  Branch (729:12): [True: 1.17k, False: 46]
  ------------------
  730|  1.17k|        if (*fmt != '%') {
  ------------------
  |  Branch (730:13): [True: 1.11k, False: 54]
  ------------------
  731|  1.11k|            INS_CHAR(*fmt, sp, bep, cc);
  ------------------
  |  |  244|  1.11k|#define INS_CHAR(c, sp, bep, cc)                    \
  |  |  245|  1.11k|{                                                   \
  |  |  246|  1.11k|    if (sp) {                                       \
  |  |  ------------------
  |  |  |  Branch (246:9): [True: 1.11k, False: 0]
  |  |  ------------------
  |  |  247|  1.11k|        if (sp >= bep) {                            \
  |  |  ------------------
  |  |  |  Branch (247:13): [True: 0, False: 1.11k]
  |  |  ------------------
  |  |  248|      0|            vbuff->curpos = sp;                     \
  |  |  249|      0|            if (flush_func(vbuff))                  \
  |  |  ------------------
  |  |  |  Branch (249:17): [True: 0, False: 0]
  |  |  ------------------
  |  |  250|      0|                return -1;                          \
  |  |  251|      0|            sp = vbuff->curpos;                     \
  |  |  252|      0|            bep = vbuff->endpos;                    \
  |  |  253|      0|        }                                           \
  |  |  254|  1.11k|        *sp++ = (c);                                \
  |  |  255|  1.11k|    }                                               \
  |  |  256|  1.11k|    cc++;                                           \
  |  |  257|  1.11k|}
  ------------------
  732|  1.11k|        }
  733|     54|        else {
  734|       |            /*
  735|       |             * Default variable settings
  736|       |             */
  737|     54|            boolean_e print_something = YES;
  738|     54|            adjust = RIGHT;
  739|     54|            alternate_form = print_sign = print_blank = NO;
  740|     54|            pad_char = ' ';
  741|     54|            prefix_char = NUL;
  ------------------
  |  |   55|     54|#define NUL '\0'
  ------------------
  742|       |
  743|     54|            fmt++;
  744|       |
  745|       |            /*
  746|       |             * Try to avoid checking for flags, width or precision
  747|       |             */
  748|     54|            if (!apr_islower(*fmt)) {
  ------------------
  |  |  213|     54|#define apr_islower(c) (islower(((unsigned char)(c))))
  ------------------
  |  Branch (748:17): [True: 38, False: 16]
  ------------------
  749|       |                /*
  750|       |                 * Recognize flags: -, #, BLANK, +
  751|       |                 */
  752|     38|                for (;; fmt++) {
  753|     38|                    if (*fmt == '-')
  ------------------
  |  Branch (753:25): [True: 0, False: 38]
  ------------------
  754|      0|                        adjust = LEFT;
  755|     38|                    else if (*fmt == '+')
  ------------------
  |  Branch (755:30): [True: 0, False: 38]
  ------------------
  756|      0|                        print_sign = YES;
  757|     38|                    else if (*fmt == '#')
  ------------------
  |  Branch (757:30): [True: 0, False: 38]
  ------------------
  758|      0|                        alternate_form = YES;
  759|     38|                    else if (*fmt == ' ')
  ------------------
  |  Branch (759:30): [True: 0, False: 38]
  ------------------
  760|      0|                        print_blank = YES;
  761|     38|                    else if (*fmt == '0')
  ------------------
  |  Branch (761:30): [True: 0, False: 38]
  ------------------
  762|      0|                        pad_char = '0';
  763|     38|                    else
  764|     38|                        break;
  765|     38|                }
  766|       |
  767|       |                /*
  768|       |                 * Check if a width was specified
  769|       |                 */
  770|     38|                if (apr_isdigit(*fmt)) {
  ------------------
  |  |  209|     38|#define apr_isdigit(c) (isdigit(((unsigned char)(c))))
  |  |  ------------------
  |  |  |  Branch (209:24): [True: 0, False: 38]
  |  |  ------------------
  ------------------
  771|      0|                    STR_TO_DEC(fmt, min_width);
  ------------------
  |  |  262|      0|    num = NUM(*str++);                              \
  |  |  ------------------
  |  |  |  |  259|      0|#define NUM(c) (c - '0')
  |  |  ------------------
  |  |  263|      0|    while (apr_isdigit(*str))                       \
  |  |  ------------------
  |  |  |  |  209|      0|#define apr_isdigit(c) (isdigit(((unsigned char)(c))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (209:24): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  264|      0|    {                                               \
  |  |  265|      0|        num *= 10 ;                                 \
  |  |  266|      0|        num += NUM(*str++);                         \
  |  |  ------------------
  |  |  |  |  259|      0|#define NUM(c) (c - '0')
  |  |  ------------------
  |  |  267|      0|    }
  ------------------
  772|      0|                    adjust_width = YES;
  773|      0|                }
  774|     38|                else if (*fmt == '*') {
  ------------------
  |  Branch (774:26): [True: 0, False: 38]
  ------------------
  775|      0|                    int v = va_arg(ap, int);
  776|      0|                    fmt++;
  777|      0|                    adjust_width = YES;
  778|      0|                    if (v < 0) {
  ------------------
  |  Branch (778:25): [True: 0, False: 0]
  ------------------
  779|      0|                        adjust = LEFT;
  780|      0|                        min_width = (apr_size_t)(-v);
  781|      0|                    }
  782|      0|                    else
  783|      0|                        min_width = (apr_size_t)v;
  784|      0|                }
  785|     38|                else
  786|     38|                    adjust_width = NO;
  787|       |
  788|       |                /*
  789|       |                 * Check if a precision was specified
  790|       |                 */
  791|     38|                if (*fmt == '.') {
  ------------------
  |  Branch (791:21): [True: 38, False: 0]
  ------------------
  792|     38|                    adjust_precision = YES;
  793|     38|                    fmt++;
  794|     38|                    if (apr_isdigit(*fmt)) {
  ------------------
  |  |  209|     38|#define apr_isdigit(c) (isdigit(((unsigned char)(c))))
  |  |  ------------------
  |  |  |  Branch (209:24): [True: 38, False: 0]
  |  |  ------------------
  ------------------
  795|     38|                        STR_TO_DEC(fmt, precision);
  ------------------
  |  |  262|     38|    num = NUM(*str++);                              \
  |  |  ------------------
  |  |  |  |  259|     38|#define NUM(c) (c - '0')
  |  |  ------------------
  |  |  263|     38|    while (apr_isdigit(*str))                       \
  |  |  ------------------
  |  |  |  |  209|     38|#define apr_isdigit(c) (isdigit(((unsigned char)(c))))
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (209:24): [True: 0, False: 38]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  264|     38|    {                                               \
  |  |  265|      0|        num *= 10 ;                                 \
  |  |  266|      0|        num += NUM(*str++);                         \
  |  |  ------------------
  |  |  |  |  259|      0|#define NUM(c) (c - '0')
  |  |  ------------------
  |  |  267|      0|    }
  ------------------
  796|     38|                    }
  797|      0|                    else if (*fmt == '*') {
  ------------------
  |  Branch (797:30): [True: 0, False: 0]
  ------------------
  798|      0|                        int v = va_arg(ap, int);
  799|      0|                        fmt++;
  800|      0|                        precision = (v < 0) ? 0 : (apr_size_t)v;
  ------------------
  |  Branch (800:37): [True: 0, False: 0]
  ------------------
  801|      0|                    }
  802|      0|                    else
  803|      0|                        precision = 0;
  804|     38|                }
  805|      0|                else
  806|      0|                    adjust_precision = NO;
  807|     38|            }
  808|     16|            else
  809|     16|                adjust_precision = adjust_width = NO;
  810|       |
  811|       |            /*
  812|       |             * Modifier check.  In same cases, APR_OFF_T_FMT can be
  813|       |             * "lld" and APR_INT64_T_FMT can be "ld" (that is, off_t is
  814|       |             * "larger" than int64). Check that case 1st.
  815|       |             * Note that if APR_OFF_T_FMT is "d",
  816|       |             * the first if condition is never true. If APR_INT64_T_FMT
  817|       |             * is "d' then the second if condition is never true.
  818|       |             */
  819|     54|            if ((sizeof(APR_OFF_T_FMT) > sizeof(APR_INT64_T_FMT)) &&
  ------------------
  |  |  596|     54|#define APR_OFF_T_FMT "ld"
  ------------------
                          if ((sizeof(APR_OFF_T_FMT) > sizeof(APR_INT64_T_FMT)) &&
  ------------------
  |  |  602|     54|#define APR_INT64_T_FMT PRId64
  ------------------
  |  Branch (819:17): [Folded - Ignored]
  ------------------
  820|     54|                ((sizeof(APR_OFF_T_FMT) == 4 &&
  ------------------
  |  |  596|      0|#define APR_OFF_T_FMT "ld"
  ------------------
  |  Branch (820:19): [Folded - Ignored]
  ------------------
  821|      0|                 fmt[0] == APR_OFF_T_FMT[0] &&
  ------------------
  |  |  596|      0|#define APR_OFF_T_FMT "ld"
  ------------------
  |  Branch (821:18): [True: 0, False: 0]
  ------------------
  822|      0|                 fmt[1] == APR_OFF_T_FMT[1]) ||
  ------------------
  |  |  596|      0|#define APR_OFF_T_FMT "ld"
  ------------------
  |  Branch (822:18): [True: 0, False: 0]
  ------------------
  823|      0|                (sizeof(APR_OFF_T_FMT) == 3 &&
  ------------------
  |  |  596|      0|#define APR_OFF_T_FMT "ld"
  ------------------
  |  Branch (823:18): [Folded - Ignored]
  ------------------
  824|      0|                 fmt[0] == APR_OFF_T_FMT[0]) ||
  ------------------
  |  |  596|      0|#define APR_OFF_T_FMT "ld"
  ------------------
  |  Branch (824:18): [True: 0, False: 0]
  ------------------
  825|      0|                (sizeof(APR_OFF_T_FMT) > 4 &&
  ------------------
  |  |  596|      0|#define APR_OFF_T_FMT "ld"
  ------------------
  |  Branch (825:18): [Folded - Ignored]
  ------------------
  826|      0|                 strncmp(fmt, APR_OFF_T_FMT,
  ------------------
  |  |  596|      0|#define APR_OFF_T_FMT "ld"
  ------------------
  |  Branch (826:18): [True: 0, False: 0]
  ------------------
  827|      0|                         sizeof(APR_OFF_T_FMT) - 2) == 0))) {
  ------------------
  |  |  596|      0|#define APR_OFF_T_FMT "ld"
  ------------------
  828|       |                /* Need to account for trailing 'd' and null in sizeof() */
  829|      0|                var_type = IS_QUAD;
  830|      0|                fmt += (sizeof(APR_OFF_T_FMT) - 2);
  ------------------
  |  |  596|      0|#define APR_OFF_T_FMT "ld"
  ------------------
  831|      0|            }
  832|     54|            else if ((sizeof(APR_INT64_T_FMT) == 4 &&
  ------------------
  |  |  602|     54|#define APR_INT64_T_FMT PRId64
  ------------------
  |  Branch (832:23): [Folded - Ignored]
  ------------------
  833|     54|                 fmt[0] == APR_INT64_T_FMT[0] &&
  ------------------
  |  |  602|      0|#define APR_INT64_T_FMT PRId64
  ------------------
  |  Branch (833:18): [True: 0, False: 0]
  ------------------
  834|     54|                 fmt[1] == APR_INT64_T_FMT[1]) ||
  ------------------
  |  |  602|      0|#define APR_INT64_T_FMT PRId64
  ------------------
  |  Branch (834:18): [True: 0, False: 0]
  ------------------
  835|     54|                (sizeof(APR_INT64_T_FMT) == 3 &&
  ------------------
  |  |  602|     54|#define APR_INT64_T_FMT PRId64
  ------------------
  |  Branch (835:18): [Folded - Ignored]
  ------------------
  836|     54|                 fmt[0] == APR_INT64_T_FMT[0]) ||
  ------------------
  |  |  602|     54|#define APR_INT64_T_FMT PRId64
  ------------------
  |  Branch (836:18): [True: 0, False: 54]
  ------------------
  837|     54|                (sizeof(APR_INT64_T_FMT) > 4 &&
  ------------------
  |  |  602|      0|#define APR_INT64_T_FMT PRId64
  ------------------
  |  Branch (837:18): [Folded - Ignored]
  ------------------
  838|      0|                 strncmp(fmt, APR_INT64_T_FMT,
  ------------------
  |  |  602|      0|#define APR_INT64_T_FMT PRId64
  ------------------
  |  Branch (838:18): [True: 0, False: 0]
  ------------------
  839|      0|                         sizeof(APR_INT64_T_FMT) - 2) == 0)) {
  ------------------
  |  |  602|      0|#define APR_INT64_T_FMT PRId64
  ------------------
  840|       |                /* Need to account for trailing 'd' and null in sizeof() */
  841|      0|                var_type = IS_QUAD;
  842|      0|                fmt += (sizeof(APR_INT64_T_FMT) - 2);
  ------------------
  |  |  602|      0|#define APR_INT64_T_FMT PRId64
  ------------------
  843|      0|            }
  844|     54|            else if (*fmt == 'q') {
  ------------------
  |  Branch (844:22): [True: 0, False: 54]
  ------------------
  845|      0|                var_type = IS_QUAD;
  846|      0|                fmt++;
  847|      0|            }
  848|     54|            else if (*fmt == 'l') {
  ------------------
  |  Branch (848:22): [True: 0, False: 54]
  ------------------
  849|      0|                var_type = IS_LONG;
  850|      0|                fmt++;
  851|      0|            }
  852|     54|            else if (*fmt == 'h') {
  ------------------
  |  Branch (852:22): [True: 0, False: 54]
  ------------------
  853|      0|                var_type = IS_SHORT;
  854|      0|                fmt++;
  855|      0|            }
  856|     54|            else {
  857|     54|                var_type = IS_INT;
  858|     54|            }
  859|       |
  860|       |            /*
  861|       |             * Argument extraction and printing.
  862|       |             * First we determine the argument type.
  863|       |             * Then, we convert the argument to a string.
  864|       |             * On exit from the switch, s points to the string that
  865|       |             * must be printed, s_len has the length of the string
  866|       |             * The precision requirements, if any, are reflected in s_len.
  867|       |             *
  868|       |             * NOTE: pad_char may be set to '0' because of the 0 flag.
  869|       |             *   It is reset to ' ' by non-numeric formats
  870|       |             */
  871|     54|            switch (*fmt) {
  872|      0|            case 'u':
  ------------------
  |  Branch (872:13): [True: 0, False: 54]
  ------------------
  873|      0|                if (var_type == IS_QUAD) {
  ------------------
  |  Branch (873:21): [True: 0, False: 0]
  ------------------
  874|      0|                    i_quad = va_arg(ap, apr_uint64_t);
  875|      0|                    s = conv_10_quad(i_quad, 1, &is_negative,
  876|      0|                            &num_buf[NUM_BUF_SIZE], &s_len);
  ------------------
  |  |   69|      0|#define NUM_BUF_SIZE 512
  ------------------
  877|      0|                }
  878|      0|                else {
  879|      0|                    if (var_type == IS_LONG)
  ------------------
  |  Branch (879:25): [True: 0, False: 0]
  ------------------
  880|      0|                        i_num = (apr_int32_t) va_arg(ap, apr_uint32_t);
  881|      0|                    else if (var_type == IS_SHORT)
  ------------------
  |  Branch (881:30): [True: 0, False: 0]
  ------------------
  882|      0|                        i_num = (apr_int32_t) (unsigned short) va_arg(ap, unsigned int);
  883|      0|                    else
  884|      0|                        i_num = (apr_int32_t) va_arg(ap, unsigned int);
  885|      0|                    s = conv_10(i_num, 1, &is_negative,
  886|      0|                            &num_buf[NUM_BUF_SIZE], &s_len);
  ------------------
  |  |   69|      0|#define NUM_BUF_SIZE 512
  ------------------
  887|      0|                }
  888|      0|                FIX_PRECISION(adjust_precision, precision, s, s_len);
  ------------------
  |  |  280|      0|    if (adjust) {                                   \
  |  |  ------------------
  |  |  |  Branch (280:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  281|      0|        apr_size_t p = (precision + 1 < NUM_BUF_SIZE) \
  |  |  ------------------
  |  |  |  |   69|      0|#define NUM_BUF_SIZE 512
  |  |  ------------------
  |  |  |  Branch (281:24): [True: 0, False: 0]
  |  |  ------------------
  |  |  282|      0|                     ? precision : NUM_BUF_SIZE - 1;  \
  |  |  ------------------
  |  |  |  |   69|      0|#define NUM_BUF_SIZE 512
  |  |  ------------------
  |  |  283|      0|        while (s_len < p)                           \
  |  |  ------------------
  |  |  |  Branch (283:16): [True: 0, False: 0]
  |  |  ------------------
  |  |  284|      0|        {                                           \
  |  |  285|      0|            *--s = '0';                             \
  |  |  286|      0|            s_len++;                                \
  |  |  287|      0|        }                                           \
  |  |  288|      0|    }
  ------------------
  889|      0|                break;
  890|       |
  891|      0|            case 'd':
  ------------------
  |  Branch (891:13): [True: 0, False: 54]
  ------------------
  892|      0|            case 'i':
  ------------------
  |  Branch (892:13): [True: 0, False: 54]
  ------------------
  893|      0|                if (var_type == IS_QUAD) {
  ------------------
  |  Branch (893:21): [True: 0, False: 0]
  ------------------
  894|      0|                    i_quad = va_arg(ap, apr_int64_t);
  895|      0|                    s = conv_10_quad(i_quad, 0, &is_negative,
  896|      0|                            &num_buf[NUM_BUF_SIZE], &s_len);
  ------------------
  |  |   69|      0|#define NUM_BUF_SIZE 512
  ------------------
  897|      0|                }
  898|      0|                else {
  899|      0|                    if (var_type == IS_LONG)
  ------------------
  |  Branch (899:25): [True: 0, False: 0]
  ------------------
  900|      0|                        i_num = va_arg(ap, apr_int32_t);
  901|      0|                    else if (var_type == IS_SHORT)
  ------------------
  |  Branch (901:30): [True: 0, False: 0]
  ------------------
  902|      0|                        i_num = (short) va_arg(ap, int);
  903|      0|                    else
  904|      0|                        i_num = va_arg(ap, int);
  905|      0|                    s = conv_10(i_num, 0, &is_negative,
  906|      0|                            &num_buf[NUM_BUF_SIZE], &s_len);
  ------------------
  |  |   69|      0|#define NUM_BUF_SIZE 512
  ------------------
  907|      0|                }
  908|      0|                FIX_PRECISION(adjust_precision, precision, s, s_len);
  ------------------
  |  |  280|      0|    if (adjust) {                                   \
  |  |  ------------------
  |  |  |  Branch (280:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  281|      0|        apr_size_t p = (precision + 1 < NUM_BUF_SIZE) \
  |  |  ------------------
  |  |  |  |   69|      0|#define NUM_BUF_SIZE 512
  |  |  ------------------
  |  |  |  Branch (281:24): [True: 0, False: 0]
  |  |  ------------------
  |  |  282|      0|                     ? precision : NUM_BUF_SIZE - 1;  \
  |  |  ------------------
  |  |  |  |   69|      0|#define NUM_BUF_SIZE 512
  |  |  ------------------
  |  |  283|      0|        while (s_len < p)                           \
  |  |  ------------------
  |  |  |  Branch (283:16): [True: 0, False: 0]
  |  |  ------------------
  |  |  284|      0|        {                                           \
  |  |  285|      0|            *--s = '0';                             \
  |  |  286|      0|            s_len++;                                \
  |  |  287|      0|        }                                           \
  |  |  288|      0|    }
  ------------------
  909|       |
  910|      0|                if (is_negative)
  ------------------
  |  Branch (910:21): [True: 0, False: 0]
  ------------------
  911|      0|                    prefix_char = '-';
  912|      0|                else if (print_sign)
  ------------------
  |  Branch (912:26): [True: 0, False: 0]
  ------------------
  913|      0|                    prefix_char = '+';
  914|      0|                else if (print_blank)
  ------------------
  |  Branch (914:26): [True: 0, False: 0]
  ------------------
  915|      0|                    prefix_char = ' ';
  916|      0|                break;
  917|       |
  918|       |
  919|      0|            case 'o':
  ------------------
  |  Branch (919:13): [True: 0, False: 54]
  ------------------
  920|      0|                if (var_type == IS_QUAD) {
  ------------------
  |  Branch (920:21): [True: 0, False: 0]
  ------------------
  921|      0|                    ui_quad = va_arg(ap, apr_uint64_t);
  922|      0|                    s = conv_p2_quad(ui_quad, 3, *fmt,
  923|      0|                            &num_buf[NUM_BUF_SIZE], &s_len);
  ------------------
  |  |   69|      0|#define NUM_BUF_SIZE 512
  ------------------
  924|      0|                }
  925|      0|                else {
  926|      0|                    if (var_type == IS_LONG)
  ------------------
  |  Branch (926:25): [True: 0, False: 0]
  ------------------
  927|      0|                        ui_num = va_arg(ap, apr_uint32_t);
  928|      0|                    else if (var_type == IS_SHORT)
  ------------------
  |  Branch (928:30): [True: 0, False: 0]
  ------------------
  929|      0|                        ui_num = (unsigned short) va_arg(ap, unsigned int);
  930|      0|                    else
  931|      0|                        ui_num = va_arg(ap, unsigned int);
  932|      0|                    s = conv_p2(ui_num, 3, *fmt,
  933|      0|                            &num_buf[NUM_BUF_SIZE], &s_len);
  ------------------
  |  |   69|      0|#define NUM_BUF_SIZE 512
  ------------------
  934|      0|                }
  935|      0|                FIX_PRECISION(adjust_precision, precision, s, s_len);
  ------------------
  |  |  280|      0|    if (adjust) {                                   \
  |  |  ------------------
  |  |  |  Branch (280:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  281|      0|        apr_size_t p = (precision + 1 < NUM_BUF_SIZE) \
  |  |  ------------------
  |  |  |  |   69|      0|#define NUM_BUF_SIZE 512
  |  |  ------------------
  |  |  |  Branch (281:24): [True: 0, False: 0]
  |  |  ------------------
  |  |  282|      0|                     ? precision : NUM_BUF_SIZE - 1;  \
  |  |  ------------------
  |  |  |  |   69|      0|#define NUM_BUF_SIZE 512
  |  |  ------------------
  |  |  283|      0|        while (s_len < p)                           \
  |  |  ------------------
  |  |  |  Branch (283:16): [True: 0, False: 0]
  |  |  ------------------
  |  |  284|      0|        {                                           \
  |  |  285|      0|            *--s = '0';                             \
  |  |  286|      0|            s_len++;                                \
  |  |  287|      0|        }                                           \
  |  |  288|      0|    }
  ------------------
  936|      0|                if (alternate_form && *s != '0') {
  ------------------
  |  Branch (936:21): [True: 0, False: 0]
  |  Branch (936:39): [True: 0, False: 0]
  ------------------
  937|      0|                    *--s = '0';
  938|      0|                    s_len++;
  939|      0|                }
  940|      0|                break;
  941|       |
  942|       |
  943|      0|            case 'x':
  ------------------
  |  Branch (943:13): [True: 0, False: 54]
  ------------------
  944|     38|            case 'X':
  ------------------
  |  Branch (944:13): [True: 38, False: 16]
  ------------------
  945|     38|                if (var_type == IS_QUAD) {
  ------------------
  |  Branch (945:21): [True: 0, False: 38]
  ------------------
  946|      0|                    ui_quad = va_arg(ap, apr_uint64_t);
  947|      0|                    s = conv_p2_quad(ui_quad, 4, *fmt,
  948|      0|                            &num_buf[NUM_BUF_SIZE], &s_len);
  ------------------
  |  |   69|      0|#define NUM_BUF_SIZE 512
  ------------------
  949|      0|                }
  950|     38|                else {
  951|     38|                    if (var_type == IS_LONG)
  ------------------
  |  Branch (951:25): [True: 0, False: 38]
  ------------------
  952|      0|                        ui_num = va_arg(ap, apr_uint32_t);
  953|     38|                    else if (var_type == IS_SHORT)
  ------------------
  |  Branch (953:30): [True: 0, False: 38]
  ------------------
  954|      0|                        ui_num = (unsigned short) va_arg(ap, unsigned int);
  955|     38|                    else
  956|     38|                        ui_num = va_arg(ap, unsigned int);
  957|     38|                    s = conv_p2(ui_num, 4, *fmt,
  958|     38|                            &num_buf[NUM_BUF_SIZE], &s_len);
  ------------------
  |  |   69|     38|#define NUM_BUF_SIZE 512
  ------------------
  959|     38|                }
  960|     38|                FIX_PRECISION(adjust_precision, precision, s, s_len);
  ------------------
  |  |  280|     38|    if (adjust) {                                   \
  |  |  ------------------
  |  |  |  Branch (280:9): [True: 38, False: 0]
  |  |  ------------------
  |  |  281|     38|        apr_size_t p = (precision + 1 < NUM_BUF_SIZE) \
  |  |  ------------------
  |  |  |  |   69|     38|#define NUM_BUF_SIZE 512
  |  |  ------------------
  |  |  |  Branch (281:24): [True: 38, False: 0]
  |  |  ------------------
  |  |  282|     38|                     ? precision : NUM_BUF_SIZE - 1;  \
  |  |  ------------------
  |  |  |  |   69|      0|#define NUM_BUF_SIZE 512
  |  |  ------------------
  |  |  283|     58|        while (s_len < p)                           \
  |  |  ------------------
  |  |  |  Branch (283:16): [True: 20, False: 38]
  |  |  ------------------
  |  |  284|     38|        {                                           \
  |  |  285|     20|            *--s = '0';                             \
  |  |  286|     20|            s_len++;                                \
  |  |  287|     20|        }                                           \
  |  |  288|     38|    }
  ------------------
  961|     38|                if (alternate_form && ui_num != 0) {
  ------------------
  |  Branch (961:21): [True: 0, False: 38]
  |  Branch (961:39): [True: 0, False: 0]
  ------------------
  962|      0|                    *--s = *fmt;        /* 'x' or 'X' */
  963|      0|                    *--s = '0';
  964|      0|                    s_len += 2;
  965|      0|                }
  966|     38|                break;
  967|       |
  968|       |
  969|     16|            case 's':
  ------------------
  |  Branch (969:13): [True: 16, False: 38]
  ------------------
  970|     16|                s = va_arg(ap, char *);
  971|     16|                if (s != NULL) {
  ------------------
  |  Branch (971:21): [True: 16, False: 0]
  ------------------
  972|     16|                    if (!adjust_precision) {
  ------------------
  |  Branch (972:25): [True: 16, False: 0]
  ------------------
  973|     16|                        s_len = strlen(s);
  974|     16|                    }
  975|      0|                    else {
  976|       |                        /* From the C library standard in section 7.9.6.1:
  977|       |                         * ...if the precision is specified, no more then
  978|       |                         * that many characters are written.  If the
  979|       |                         * precision is not specified or is greater
  980|       |                         * than the size of the array, the array shall
  981|       |                         * contain a null character.
  982|       |                         *
  983|       |                         * My reading is is precision is specified and
  984|       |                         * is less then or equal to the size of the
  985|       |                         * array, no null character is required.  So
  986|       |                         * we can't do a strlen.
  987|       |                         *
  988|       |                         * This figures out the length of the string
  989|       |                         * up to the precision.  Once it's long enough
  990|       |                         * for the specified precision, we don't care
  991|       |                         * anymore.
  992|       |                         *
  993|       |                         * NOTE: you must do the length comparison
  994|       |                         * before the check for the null character.
  995|       |                         * Otherwise, you'll check one beyond the
  996|       |                         * last valid character.
  997|       |                         */
  998|      0|                        const char *walk;
  999|       |
 1000|      0|                        for (walk = s, s_len = 0;
 1001|      0|                             (s_len < precision) && (*walk != '\0');
  ------------------
  |  Branch (1001:30): [True: 0, False: 0]
  |  Branch (1001:53): [True: 0, False: 0]
  ------------------
 1002|      0|                             ++walk, ++s_len);
 1003|      0|                    }
 1004|     16|                }
 1005|      0|                else {
 1006|      0|                    s = S_NULL;
  ------------------
  |  |   58|      0|#define S_NULL ((char *)null_string)
  ------------------
 1007|      0|                    s_len = S_NULL_LEN;
  ------------------
  |  |   59|      0|#define S_NULL_LEN 6
  ------------------
 1008|      0|                }
 1009|     16|                pad_char = ' ';
 1010|     16|                break;
 1011|       |
 1012|       |
 1013|      0|            case 'f':
  ------------------
  |  Branch (1013:13): [True: 0, False: 54]
  ------------------
 1014|      0|            case 'e':
  ------------------
  |  Branch (1014:13): [True: 0, False: 54]
  ------------------
 1015|      0|            case 'E':
  ------------------
  |  Branch (1015:13): [True: 0, False: 54]
  ------------------
 1016|      0|                fp_num = va_arg(ap, double);
 1017|       |                /*
 1018|       |                 * We use &num_buf[ 1 ], so that we have room for the sign
 1019|       |                 */
 1020|      0|                s = NULL;
 1021|      0|#ifdef HAVE_ISNAN
 1022|      0|                if (isnan(fp_num)) {
 1023|      0|                    s = "nan";
 1024|      0|                    s_len = 3;
 1025|      0|                }
 1026|      0|#endif
 1027|      0|#ifdef HAVE_ISINF
 1028|      0|                if (!s && isinf(fp_num)) {
  ------------------
  |  Branch (1028:21): [True: 0, False: 0]
  ------------------
 1029|      0|                    s = "inf";
 1030|      0|                    s_len = 3;
 1031|      0|                }
 1032|      0|#endif
 1033|      0|                if (!s) {
  ------------------
  |  Branch (1033:21): [True: 0, False: 0]
  ------------------
 1034|      0|                    s = conv_fp(*fmt, fp_num, alternate_form,
 1035|      0|                                (int)((adjust_precision == NO) ? FLOAT_DIGITS : precision),
  ------------------
  |  |   61|      0|#define FLOAT_DIGITS 6
  ------------------
  |  Branch (1035:39): [True: 0, False: 0]
  ------------------
 1036|      0|                                &is_negative, &num_buf[1], &s_len);
 1037|      0|                    if (is_negative)
  ------------------
  |  Branch (1037:25): [True: 0, False: 0]
  ------------------
 1038|      0|                        prefix_char = '-';
 1039|      0|                    else if (print_sign)
  ------------------
  |  Branch (1039:30): [True: 0, False: 0]
  ------------------
 1040|      0|                        prefix_char = '+';
 1041|      0|                    else if (print_blank)
  ------------------
  |  Branch (1041:30): [True: 0, False: 0]
  ------------------
 1042|      0|                        prefix_char = ' ';
 1043|      0|                }
 1044|      0|                break;
 1045|       |
 1046|       |
 1047|      0|            case 'g':
  ------------------
  |  Branch (1047:13): [True: 0, False: 54]
  ------------------
 1048|      0|            case 'G':
  ------------------
  |  Branch (1048:13): [True: 0, False: 54]
  ------------------
 1049|      0|                if (adjust_precision == NO)
  ------------------
  |  Branch (1049:21): [True: 0, False: 0]
  ------------------
 1050|      0|                    precision = FLOAT_DIGITS;
  ------------------
  |  |   61|      0|#define FLOAT_DIGITS 6
  ------------------
 1051|      0|                else if (precision == 0)
  ------------------
  |  Branch (1051:26): [True: 0, False: 0]
  ------------------
 1052|      0|                    precision = 1;
 1053|       |                /*
 1054|       |                 * * We use &num_buf[ 1 ], so that we have room for the sign
 1055|       |                 */
 1056|      0|                s = apr_gcvt(va_arg(ap, double), (int) precision, &num_buf[1],
 1057|      0|                            alternate_form);
 1058|      0|                if (*s == '-')
  ------------------
  |  Branch (1058:21): [True: 0, False: 0]
  ------------------
 1059|      0|                    prefix_char = *s++;
 1060|      0|                else if (print_sign)
  ------------------
  |  Branch (1060:26): [True: 0, False: 0]
  ------------------
 1061|      0|                    prefix_char = '+';
 1062|      0|                else if (print_blank)
  ------------------
  |  Branch (1062:26): [True: 0, False: 0]
  ------------------
 1063|      0|                    prefix_char = ' ';
 1064|       |
 1065|      0|                s_len = strlen(s);
 1066|       |
 1067|      0|                if (alternate_form && (q = strchr(s, '.')) == NULL) {
  ------------------
  |  Branch (1067:21): [True: 0, False: 0]
  |  Branch (1067:39): [True: 0, False: 0]
  ------------------
 1068|      0|                    s[s_len++] = '.';
 1069|      0|                    s[s_len] = '\0'; /* delimit for following strchr() */
 1070|      0|                }
 1071|      0|                if (*fmt == 'G' && (q = strchr(s, 'e')) != NULL)
  ------------------
  |  Branch (1071:21): [True: 0, False: 0]
  |  Branch (1071:36): [True: 0, False: 0]
  ------------------
 1072|      0|                    *q = 'E';
 1073|      0|                break;
 1074|       |
 1075|       |
 1076|      0|            case 'c':
  ------------------
  |  Branch (1076:13): [True: 0, False: 54]
  ------------------
 1077|      0|                char_buf[0] = (char) (va_arg(ap, int));
 1078|      0|                s = &char_buf[0];
 1079|      0|                s_len = 1;
 1080|      0|                pad_char = ' ';
 1081|      0|                break;
 1082|       |
 1083|       |
 1084|      0|            case '%':
  ------------------
  |  Branch (1084:13): [True: 0, False: 54]
  ------------------
 1085|      0|                char_buf[0] = '%';
 1086|      0|                s = &char_buf[0];
 1087|      0|                s_len = 1;
 1088|      0|                pad_char = ' ';
 1089|      0|                break;
 1090|       |
 1091|       |
 1092|      0|            case 'n':
  ------------------
  |  Branch (1092:13): [True: 0, False: 54]
  ------------------
 1093|      0|                if (var_type == IS_QUAD)
  ------------------
  |  Branch (1093:21): [True: 0, False: 0]
  ------------------
 1094|      0|                    *(va_arg(ap, apr_int64_t *)) = cc;
 1095|      0|                else if (var_type == IS_LONG)
  ------------------
  |  Branch (1095:26): [True: 0, False: 0]
  ------------------
 1096|      0|                    *(va_arg(ap, long *)) = cc;
 1097|      0|                else if (var_type == IS_SHORT)
  ------------------
  |  Branch (1097:26): [True: 0, False: 0]
  ------------------
 1098|      0|                    *(va_arg(ap, short *)) = cc;
 1099|      0|                else
 1100|      0|                    *(va_arg(ap, int *)) = cc;
 1101|      0|                print_something = NO;
 1102|      0|                break;
 1103|       |
 1104|       |                /*
 1105|       |                 * This is where we extend the printf format, with a second
 1106|       |                 * type specifier
 1107|       |                 */
 1108|      0|            case 'p':
  ------------------
  |  Branch (1108:13): [True: 0, False: 54]
  ------------------
 1109|      0|                switch(*++fmt) {
 1110|       |                /*
 1111|       |                 * If the pointer size is equal to or smaller than the size
 1112|       |                 * of the largest unsigned int, we convert the pointer to a
 1113|       |                 * hex number, otherwise we print "%p" to indicate that we
 1114|       |                 * don't handle "%p".
 1115|       |                 */
 1116|      0|                case 'p':
  ------------------
  |  Branch (1116:17): [True: 0, False: 0]
  ------------------
 1117|      0|#if APR_SIZEOF_VOIDP == 8
 1118|      0|                    if (sizeof(void *) <= sizeof(apr_uint64_t)) {
  ------------------
  |  Branch (1118:25): [Folded - Ignored]
  ------------------
 1119|      0|                        ui_quad = (apr_uint64_t) va_arg(ap, void *);
 1120|      0|                        s = conv_p2_quad(ui_quad, 4, 'x',
 1121|      0|                                &num_buf[NUM_BUF_SIZE], &s_len);
  ------------------
  |  |   69|      0|#define NUM_BUF_SIZE 512
  ------------------
 1122|      0|                    }
 1123|       |#else
 1124|       |                    if (sizeof(void *) <= sizeof(apr_uint32_t)) {
 1125|       |                        ui_num = (apr_uint32_t) va_arg(ap, void *);
 1126|       |                        s = conv_p2(ui_num, 4, 'x',
 1127|       |                                &num_buf[NUM_BUF_SIZE], &s_len);
 1128|       |                    }
 1129|       |#endif
 1130|      0|                    else {
 1131|      0|                        s = "%p";
 1132|      0|                        s_len = 2;
 1133|      0|                        prefix_char = NUL;
  ------------------
  |  |   55|      0|#define NUL '\0'
  ------------------
 1134|      0|                    }
 1135|      0|                    pad_char = ' ';
 1136|      0|                    break;
 1137|       |
 1138|       |                /* print an apr_sockaddr_t as a.b.c.d:port */
 1139|      0|                case 'I':
  ------------------
  |  Branch (1139:17): [True: 0, False: 0]
  ------------------
 1140|      0|                {
 1141|      0|                    apr_sockaddr_t *sa;
 1142|       |
 1143|      0|                    sa = va_arg(ap, apr_sockaddr_t *);
 1144|      0|                    if (sa != NULL) {
  ------------------
  |  Branch (1144:25): [True: 0, False: 0]
  ------------------
 1145|      0|                        s = conv_apr_sockaddr(sa, &num_buf[NUM_BUF_SIZE], &s_len);
  ------------------
  |  |   69|      0|#define NUM_BUF_SIZE 512
  ------------------
 1146|      0|                        if (adjust_precision && precision < s_len)
  ------------------
  |  Branch (1146:29): [True: 0, False: 0]
  |  Branch (1146:49): [True: 0, False: 0]
  ------------------
 1147|      0|                            s_len = precision;
 1148|      0|                    }
 1149|      0|                    else {
 1150|      0|                        s = S_NULL;
  ------------------
  |  |   58|      0|#define S_NULL ((char *)null_string)
  ------------------
 1151|      0|                        s_len = S_NULL_LEN;
  ------------------
  |  |   59|      0|#define S_NULL_LEN 6
  ------------------
 1152|      0|                    }
 1153|      0|                    pad_char = ' ';
 1154|      0|                }
 1155|      0|                break;
 1156|       |
 1157|       |                /* print a struct in_addr as a.b.c.d */
 1158|      0|                case 'A':
  ------------------
  |  Branch (1158:17): [True: 0, False: 0]
  ------------------
 1159|      0|                {
 1160|      0|                    struct in_addr *ia;
 1161|       |
 1162|      0|                    ia = va_arg(ap, struct in_addr *);
 1163|      0|                    if (ia != NULL) {
  ------------------
  |  Branch (1163:25): [True: 0, False: 0]
  ------------------
 1164|      0|                        s = conv_in_addr(ia, &num_buf[NUM_BUF_SIZE], &s_len);
  ------------------
  |  |   69|      0|#define NUM_BUF_SIZE 512
  ------------------
 1165|      0|                        if (adjust_precision && precision < s_len)
  ------------------
  |  Branch (1165:29): [True: 0, False: 0]
  |  Branch (1165:49): [True: 0, False: 0]
  ------------------
 1166|      0|                            s_len = precision;
 1167|      0|                    }
 1168|      0|                    else {
 1169|      0|                        s = S_NULL;
  ------------------
  |  |   58|      0|#define S_NULL ((char *)null_string)
  ------------------
 1170|      0|                        s_len = S_NULL_LEN;
  ------------------
  |  |   59|      0|#define S_NULL_LEN 6
  ------------------
 1171|      0|                    }
 1172|      0|                    pad_char = ' ';
 1173|      0|                }
 1174|      0|                break;
 1175|       |
 1176|       |                /* print the error for an apr_status_t */
 1177|      0|                case 'm':
  ------------------
  |  Branch (1177:17): [True: 0, False: 0]
  ------------------
 1178|      0|                {
 1179|      0|                    apr_status_t *mrv;
 1180|       |
 1181|      0|                    mrv = va_arg(ap, apr_status_t *);
 1182|      0|                    if (mrv != NULL) {
  ------------------
  |  Branch (1182:25): [True: 0, False: 0]
  ------------------
 1183|      0|                        s = apr_strerror(*mrv, num_buf, NUM_BUF_SIZE-1);
  ------------------
  |  |   69|      0|#define NUM_BUF_SIZE 512
  ------------------
 1184|      0|                        s_len = strlen(s);
 1185|      0|                    }
 1186|      0|                    else {
 1187|      0|                        s = S_NULL;
  ------------------
  |  |   58|      0|#define S_NULL ((char *)null_string)
  ------------------
 1188|      0|                        s_len = S_NULL_LEN;
  ------------------
  |  |   59|      0|#define S_NULL_LEN 6
  ------------------
 1189|      0|                    }
 1190|      0|                    pad_char = ' ';
 1191|      0|                }
 1192|      0|                break;
 1193|       |
 1194|      0|                case 'T':
  ------------------
  |  Branch (1194:17): [True: 0, False: 0]
  ------------------
 1195|      0|#if APR_HAS_THREADS
 1196|      0|                {
 1197|      0|                    apr_os_thread_t *tid;
 1198|       |
 1199|      0|                    tid = va_arg(ap, apr_os_thread_t *);
 1200|      0|                    if (tid != NULL) {
  ------------------
  |  Branch (1200:25): [True: 0, False: 0]
  ------------------
 1201|      0|                        s = conv_os_thread_t(tid, &num_buf[NUM_BUF_SIZE], &s_len);
  ------------------
  |  |   69|      0|#define NUM_BUF_SIZE 512
  ------------------
 1202|      0|                        if (adjust_precision && precision < s_len)
  ------------------
  |  Branch (1202:29): [True: 0, False: 0]
  |  Branch (1202:49): [True: 0, False: 0]
  ------------------
 1203|      0|                            s_len = precision;
 1204|      0|                    }
 1205|      0|                    else {
 1206|      0|                        s = S_NULL;
  ------------------
  |  |   58|      0|#define S_NULL ((char *)null_string)
  ------------------
 1207|      0|                        s_len = S_NULL_LEN;
  ------------------
  |  |   59|      0|#define S_NULL_LEN 6
  ------------------
 1208|      0|                    }
 1209|      0|                    pad_char = ' ';
 1210|      0|                }
 1211|       |#else
 1212|       |                    char_buf[0] = '0';
 1213|       |                    s = &char_buf[0];
 1214|       |                    s_len = 1;
 1215|       |                    pad_char = ' ';
 1216|       |#endif
 1217|      0|                    break;
 1218|       |
 1219|      0|                case 't':
  ------------------
  |  Branch (1219:17): [True: 0, False: 0]
  ------------------
 1220|      0|#if APR_HAS_THREADS
 1221|      0|                {
 1222|      0|                    apr_os_thread_t *tid;
 1223|       |
 1224|      0|                    tid = va_arg(ap, apr_os_thread_t *);
 1225|      0|                    if (tid != NULL) {
  ------------------
  |  Branch (1225:25): [True: 0, False: 0]
  ------------------
 1226|      0|                        s = conv_os_thread_t_hex(tid, &num_buf[NUM_BUF_SIZE], &s_len);
  ------------------
  |  |   69|      0|#define NUM_BUF_SIZE 512
  ------------------
 1227|      0|                        if (adjust_precision && precision < s_len)
  ------------------
  |  Branch (1227:29): [True: 0, False: 0]
  |  Branch (1227:49): [True: 0, False: 0]
  ------------------
 1228|      0|                            s_len = precision;
 1229|      0|                    }
 1230|      0|                    else {
 1231|      0|                        s = S_NULL;
  ------------------
  |  |   58|      0|#define S_NULL ((char *)null_string)
  ------------------
 1232|      0|                        s_len = S_NULL_LEN;
  ------------------
  |  |   59|      0|#define S_NULL_LEN 6
  ------------------
 1233|      0|                    }
 1234|      0|                    pad_char = ' ';
 1235|      0|                }
 1236|       |#else
 1237|       |                    char_buf[0] = '0';
 1238|       |                    s = &char_buf[0];
 1239|       |                    s_len = 1;
 1240|       |                    pad_char = ' ';
 1241|       |#endif
 1242|      0|                    break;
 1243|       |
 1244|      0|                case 'B':
  ------------------
  |  Branch (1244:17): [True: 0, False: 0]
  ------------------
 1245|      0|                case 'F':
  ------------------
  |  Branch (1245:17): [True: 0, False: 0]
  ------------------
 1246|      0|                case 'S':
  ------------------
  |  Branch (1246:17): [True: 0, False: 0]
  ------------------
 1247|      0|                {
 1248|      0|                    char buf[5];
 1249|      0|                    apr_off_t size = 0;
 1250|       |
 1251|      0|                    if (*fmt == 'B') {
  ------------------
  |  Branch (1251:25): [True: 0, False: 0]
  ------------------
 1252|      0|                        apr_uint32_t *arg = va_arg(ap, apr_uint32_t *);
 1253|      0|                        size = (arg) ? *arg : 0;
  ------------------
  |  Branch (1253:32): [True: 0, False: 0]
  ------------------
 1254|      0|                    }
 1255|      0|                    else if (*fmt == 'F') {
  ------------------
  |  Branch (1255:30): [True: 0, False: 0]
  ------------------
 1256|      0|                        apr_off_t *arg = va_arg(ap, apr_off_t *);
 1257|      0|                        size = (arg) ? *arg : 0;
  ------------------
  |  Branch (1257:32): [True: 0, False: 0]
  ------------------
 1258|      0|                    }
 1259|      0|                    else {
 1260|      0|                        apr_size_t *arg = va_arg(ap, apr_size_t *);
 1261|      0|                        size = (arg) ? *arg : 0;
  ------------------
  |  Branch (1261:32): [True: 0, False: 0]
  ------------------
 1262|      0|                    }
 1263|       |
 1264|      0|                    s = apr_strfsize(size, buf);
 1265|      0|                    s_len = strlen(s);
 1266|      0|                    pad_char = ' ';
 1267|      0|                }
 1268|      0|                break;
 1269|       |
 1270|      0|                case NUL:
  ------------------
  |  |   55|      0|#define NUL '\0'
  ------------------
  |  Branch (1270:17): [True: 0, False: 0]
  ------------------
 1271|       |                    /* if %p ends the string, oh well ignore it */
 1272|      0|                    continue;
 1273|       |
 1274|      0|                default:
  ------------------
  |  Branch (1274:17): [True: 0, False: 0]
  ------------------
 1275|      0|                    s = "bogus %p";
 1276|      0|                    s_len = 8;
 1277|      0|                    prefix_char = NUL;
  ------------------
  |  |   55|      0|#define NUL '\0'
  ------------------
 1278|      0|                    (void)va_arg(ap, void *); /* skip the bogus argument on the stack */
 1279|      0|                    break;
 1280|      0|                }
 1281|      0|                break;
 1282|       |
 1283|      0|            case NUL:
  ------------------
  |  |   55|      0|#define NUL '\0'
  ------------------
  |  Branch (1283:13): [True: 0, False: 54]
  ------------------
 1284|       |                /*
 1285|       |                 * The last character of the format string was %.
 1286|       |                 * We ignore it.
 1287|       |                 */
 1288|      0|                continue;
 1289|       |
 1290|       |
 1291|       |                /*
 1292|       |                 * The default case is for unrecognized %'s.
 1293|       |                 * We print %<char> to help the user identify what
 1294|       |                 * option is not understood.
 1295|       |                 * This is also useful in case the user wants to pass
 1296|       |                 * the output of format_converter to another function
 1297|       |                 * that understands some other %<char> (like syslog).
 1298|       |                 * Note that we can't point s inside fmt because the
 1299|       |                 * unknown <char> could be preceded by width etc.
 1300|       |                 */
 1301|      0|            default:
  ------------------
  |  Branch (1301:13): [True: 0, False: 54]
  ------------------
 1302|      0|                char_buf[0] = '%';
 1303|      0|                char_buf[1] = *fmt;
 1304|      0|                s = char_buf;
 1305|      0|                s_len = 2;
 1306|      0|                pad_char = ' ';
 1307|      0|                break;
 1308|     54|            }
 1309|       |
 1310|     54|            if (prefix_char != NUL && s != S_NULL && s != char_buf) {
  ------------------
  |  |   55|    108|#define NUL '\0'
  ------------------
                          if (prefix_char != NUL && s != S_NULL && s != char_buf) {
  ------------------
  |  |   58|     54|#define S_NULL ((char *)null_string)
  ------------------
  |  Branch (1310:17): [True: 0, False: 54]
  |  Branch (1310:39): [True: 0, False: 0]
  |  Branch (1310:54): [True: 0, False: 0]
  ------------------
 1311|      0|                *--s = prefix_char;
 1312|      0|                s_len++;
 1313|      0|            }
 1314|       |
 1315|     54|            if (adjust_width && adjust == RIGHT && min_width > s_len) {
  ------------------
  |  Branch (1315:17): [True: 0, False: 54]
  |  Branch (1315:33): [True: 0, False: 0]
  |  Branch (1315:52): [True: 0, False: 0]
  ------------------
 1316|      0|                if (pad_char == '0' && prefix_char != NUL) {
  ------------------
  |  |   55|      0|#define NUL '\0'
  ------------------
  |  Branch (1316:21): [True: 0, False: 0]
  |  Branch (1316:40): [True: 0, False: 0]
  ------------------
 1317|      0|                    INS_CHAR(*s, sp, bep, cc);
  ------------------
  |  |  244|      0|#define INS_CHAR(c, sp, bep, cc)                    \
  |  |  245|      0|{                                                   \
  |  |  246|      0|    if (sp) {                                       \
  |  |  ------------------
  |  |  |  Branch (246:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  247|      0|        if (sp >= bep) {                            \
  |  |  ------------------
  |  |  |  Branch (247:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  248|      0|            vbuff->curpos = sp;                     \
  |  |  249|      0|            if (flush_func(vbuff))                  \
  |  |  ------------------
  |  |  |  Branch (249:17): [True: 0, False: 0]
  |  |  ------------------
  |  |  250|      0|                return -1;                          \
  |  |  251|      0|            sp = vbuff->curpos;                     \
  |  |  252|      0|            bep = vbuff->endpos;                    \
  |  |  253|      0|        }                                           \
  |  |  254|      0|        *sp++ = (c);                                \
  |  |  255|      0|    }                                               \
  |  |  256|      0|    cc++;                                           \
  |  |  257|      0|}
  ------------------
 1318|      0|                    s++;
 1319|      0|                    s_len--;
 1320|      0|                    min_width--;
 1321|      0|                }
 1322|      0|                PAD(min_width, s_len, pad_char);
  ------------------
  |  |  294|      0|#define PAD(width, len, ch)                         \
  |  |  295|      0|do                                                  \
  |  |  296|      0|{                                                   \
  |  |  297|      0|    INS_CHAR(ch, sp, bep, cc);                      \
  |  |  ------------------
  |  |  |  |  244|      0|#define INS_CHAR(c, sp, bep, cc)                    \
  |  |  |  |  245|      0|{                                                   \
  |  |  |  |  246|      0|    if (sp) {                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (246:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  247|      0|        if (sp >= bep) {                            \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (247:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  248|      0|            vbuff->curpos = sp;                     \
  |  |  |  |  249|      0|            if (flush_func(vbuff))                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (249:17): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  250|      0|                return -1;                          \
  |  |  |  |  251|      0|            sp = vbuff->curpos;                     \
  |  |  |  |  252|      0|            bep = vbuff->endpos;                    \
  |  |  |  |  253|      0|        }                                           \
  |  |  |  |  254|      0|        *sp++ = (c);                                \
  |  |  |  |  255|      0|    }                                               \
  |  |  |  |  256|      0|    cc++;                                           \
  |  |  |  |  257|      0|}
  |  |  ------------------
  |  |  298|      0|    width--;                                        \
  |  |  299|      0|}                                                   \
  |  |  300|      0|while (width > len)
  |  |  ------------------
  |  |  |  Branch (300:8): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1323|      0|            }
 1324|       |
 1325|       |            /*
 1326|       |             * Print the string s.
 1327|       |             */
 1328|     54|            if (print_something == YES) {
  ------------------
  |  Branch (1328:17): [True: 54, False: 0]
  ------------------
 1329|    794|                for (i = s_len; i != 0; i--) {
  ------------------
  |  Branch (1329:33): [True: 740, False: 54]
  ------------------
 1330|    740|                    INS_CHAR(*s, sp, bep, cc);
  ------------------
  |  |  244|    740|#define INS_CHAR(c, sp, bep, cc)                    \
  |  |  245|    740|{                                                   \
  |  |  246|    740|    if (sp) {                                       \
  |  |  ------------------
  |  |  |  Branch (246:9): [True: 740, False: 0]
  |  |  ------------------
  |  |  247|    740|        if (sp >= bep) {                            \
  |  |  ------------------
  |  |  |  Branch (247:13): [True: 8, False: 732]
  |  |  ------------------
  |  |  248|      8|            vbuff->curpos = sp;                     \
  |  |  249|      8|            if (flush_func(vbuff))                  \
  |  |  ------------------
  |  |  |  Branch (249:17): [True: 0, False: 8]
  |  |  ------------------
  |  |  250|      8|                return -1;                          \
  |  |  251|      8|            sp = vbuff->curpos;                     \
  |  |  252|      8|            bep = vbuff->endpos;                    \
  |  |  253|      8|        }                                           \
  |  |  254|    740|        *sp++ = (c);                                \
  |  |  255|    740|    }                                               \
  |  |  256|    740|    cc++;                                           \
  |  |  257|    740|}
  ------------------
 1331|    740|                    s++;
 1332|    740|                }
 1333|     54|            }
 1334|       |
 1335|     54|            if (adjust_width && adjust == LEFT && min_width > s_len)
  ------------------
  |  Branch (1335:17): [True: 0, False: 54]
  |  Branch (1335:33): [True: 0, False: 0]
  |  Branch (1335:51): [True: 0, False: 0]
  ------------------
 1336|      0|                PAD(min_width, s_len, pad_char);
  ------------------
  |  |  294|      0|#define PAD(width, len, ch)                         \
  |  |  295|      0|do                                                  \
  |  |  296|      0|{                                                   \
  |  |  297|      0|    INS_CHAR(ch, sp, bep, cc);                      \
  |  |  ------------------
  |  |  |  |  244|      0|#define INS_CHAR(c, sp, bep, cc)                    \
  |  |  |  |  245|      0|{                                                   \
  |  |  |  |  246|      0|    if (sp) {                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (246:9): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  247|      0|        if (sp >= bep) {                            \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (247:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  248|      0|            vbuff->curpos = sp;                     \
  |  |  |  |  249|      0|            if (flush_func(vbuff))                  \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (249:17): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  250|      0|                return -1;                          \
  |  |  |  |  251|      0|            sp = vbuff->curpos;                     \
  |  |  |  |  252|      0|            bep = vbuff->endpos;                    \
  |  |  |  |  253|      0|        }                                           \
  |  |  |  |  254|      0|        *sp++ = (c);                                \
  |  |  |  |  255|      0|    }                                               \
  |  |  |  |  256|      0|    cc++;                                           \
  |  |  |  |  257|      0|}
  |  |  ------------------
  |  |  298|      0|    width--;                                        \
  |  |  299|      0|}                                                   \
  |  |  300|      0|while (width > len)
  |  |  ------------------
  |  |  |  Branch (300:8): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1337|     54|        }
 1338|  1.17k|        fmt++;
 1339|  1.17k|    }
 1340|     46|    vbuff->curpos = sp;
 1341|       |
 1342|     46|    return cc;
 1343|     46|}
apr_snprintf.c:conv_p2:
  617|     38|{
  618|     38|    register int mask = (1 << nbits) - 1;
  619|     38|    register char *p = buf_end;
  620|     38|    static const char low_digits[] = "0123456789abcdef";
  621|     38|    static const char upper_digits[] = "0123456789ABCDEF";
  622|     38|    register const char *digits = (format == 'X') ? upper_digits : low_digits;
  ------------------
  |  Branch (622:35): [True: 38, False: 0]
  ------------------
  623|       |
  624|     56|    do {
  625|     56|        *--p = digits[num & mask];
  626|     56|        num >>= nbits;
  627|     56|    }
  628|     56|    while (num);
  ------------------
  |  Branch (628:12): [True: 18, False: 38]
  ------------------
  629|       |
  630|     38|    *len = buf_end - p;
  631|     38|    return (p);
  632|     38|}

apr_pstrdup:
   70|  35.0k|{
   71|  35.0k|    char *res;
   72|  35.0k|    apr_size_t len;
   73|       |
   74|  35.0k|    if (s == NULL) {
  ------------------
  |  Branch (74:9): [True: 0, False: 35.0k]
  ------------------
   75|      0|        return NULL;
   76|      0|    }
   77|  35.0k|    len = strlen(s) + 1;
   78|  35.0k|    res = apr_pmemdup(a, s, len);
   79|  35.0k|    return res;
   80|  35.0k|}
apr_pmemdup:
  113|  73.4k|{
  114|  73.4k|    void *res;
  115|       |
  116|  73.4k|    if (m == NULL)
  ------------------
  |  Branch (116:9): [True: 0, False: 73.4k]
  ------------------
  117|      0|	return NULL;
  118|  73.4k|    res = apr_palloc(a, n);
  ------------------
  |  |  425|  73.4k|    apr_palloc_debug(p, size, APR_POOL__FILE_LINE__)
  |  |  ------------------
  |  |  |  |  143|  73.4k|#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  153|  73.4k|#define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  155|  73.4k|#define APR_STRINGIFY_HELPER(n) #n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  119|  73.4k|    memcpy(res, m, n);
  120|  73.4k|    return res;
  121|  73.4k|}

apr_os_thread_current:
  340|  3.11k|{
  341|  3.11k|    return pthread_self();
  342|  3.11k|}

