LCOV - code coverage report
Current view: top level - languages - finnish.cc (source / functions) Hit Total Coverage
Test: Test Coverage for xapian-core r Lines: 315 327 96.3 %
Date: 2011-08-21 Functions: 17 20 85.0 %
Branches: 208 273 76.2 %

           Branch data     Line data    Source code
       1                 :            : /* This file was generated automatically by the Snowball to ISO C++ compiler */
       2                 :            : 
       3                 :            : #include <limits.h>
       4                 :            : #include "finnish.h"
       5                 :            : 
       6                 :        896 : static int tr_VI(Xapian::StemImplementation * this_ptr) {
       7                 :        896 :     return (static_cast<Xapian::InternalStemFinnish *>(this_ptr))->r_VI();
       8                 :            : }
       9                 :            : 
      10                 :        520 : static int tr_LONG(Xapian::StemImplementation * this_ptr) {
      11                 :        520 :     return (static_cast<Xapian::InternalStemFinnish *>(this_ptr))->r_LONG();
      12                 :            : }
      13                 :            : 
      14                 :            : static const among_function af[2] =
      15                 :            : {
      16                 :            : /*  1 */ tr_VI,
      17                 :            : /*  2 */ tr_LONG
      18                 :            : };
      19                 :            : 
      20                 :            : static const symbol s_pool[] = {
      21                 :            : #define s_0_0 0
      22                 :            : 'p', 'a',
      23                 :            : #define s_0_1 2
      24                 :            : 's', 't', 'i',
      25                 :            : #define s_0_2 5
      26                 :            : 'k', 'a', 'a', 'n',
      27                 :            : #define s_0_3 9
      28                 :            : 'h', 'a', 'n',
      29                 :            : #define s_0_4 12
      30                 :            : 'k', 'i', 'n',
      31                 :            : #define s_0_5 15
      32                 :            : 'h', 0xC3, 0xA4, 'n',
      33                 :            : #define s_0_6 19
      34                 :            : 'k', 0xC3, 0xA4, 0xC3, 0xA4, 'n',
      35                 :            : #define s_0_7 25
      36                 :            : 'k', 'o',
      37                 :            : #define s_0_8 27
      38                 :            : 'p', 0xC3, 0xA4,
      39                 :            : #define s_0_9 30
      40                 :            : 'k', 0xC3, 0xB6,
      41                 :            : #define s_1_0 33
      42                 :            : 'l', 'l', 'a',
      43                 :            : #define s_1_1 36
      44                 :            : 'n', 'a',
      45                 :            : #define s_1_2 38
      46                 :            : 's', 's', 'a',
      47                 :            : #define s_1_3 (s_1_4 + 1)
      48                 :            : #define s_1_4 41
      49                 :            : 'l', 't', 'a',
      50                 :            : #define s_1_5 44
      51                 :            : 's', 't', 'a',
      52                 :            : #define s_2_0 47
      53                 :            : 'l', 'l', 0xC3, 0xA4,
      54                 :            : #define s_2_1 51
      55                 :            : 'n', 0xC3, 0xA4,
      56                 :            : #define s_2_2 54
      57                 :            : 's', 's', 0xC3, 0xA4,
      58                 :            : #define s_2_3 (s_2_4 + 1)
      59                 :            : #define s_2_4 58
      60                 :            : 'l', 't', 0xC3, 0xA4,
      61                 :            : #define s_2_5 62
      62                 :            : 's', 't', 0xC3, 0xA4,
      63                 :            : #define s_3_0 66
      64                 :            : 'l', 'l', 'e',
      65                 :            : #define s_3_1 69
      66                 :            : 'i', 'n', 'e',
      67                 :            : #define s_4_0 72
      68                 :            : 'n', 's', 'a',
      69                 :            : #define s_4_1 75
      70                 :            : 'm', 'm', 'e',
      71                 :            : #define s_4_2 78
      72                 :            : 'n', 'n', 'e',
      73                 :            : #define s_4_3 81
      74                 :            : 'n', 'i',
      75                 :            : #define s_4_4 83
      76                 :            : 's', 'i',
      77                 :            : #define s_4_5 85
      78                 :            : 'a', 'n',
      79                 :            : #define s_4_6 87
      80                 :            : 'e', 'n',
      81                 :            : #define s_4_7 89
      82                 :            : 0xC3, 0xA4, 'n',
      83                 :            : #define s_4_8 92
      84                 :            : 'n', 's', 0xC3, 0xA4,
      85                 :            : #define s_5_0 96
      86                 :            : 'a', 'a',
      87                 :            : #define s_5_1 98
      88                 :            : 'e', 'e',
      89                 :            : #define s_5_2 100
      90                 :            : 'i', 'i',
      91                 :            : #define s_5_3 102
      92                 :            : 'o', 'o',
      93                 :            : #define s_5_4 104
      94                 :            : 'u', 'u',
      95                 :            : #define s_5_5 106
      96                 :            : 0xC3, 0xA4, 0xC3, 0xA4,
      97                 :            : #define s_5_6 110
      98                 :            : 0xC3, 0xB6, 0xC3, 0xB6,
      99                 :            : #define s_6_0 (s_6_1 + 2)
     100                 :            : #define s_6_1 114
     101                 :            : 'l', 'l', 'a',
     102                 :            : #define s_6_2 117
     103                 :            : 'n', 'a',
     104                 :            : #define s_6_3 119
     105                 :            : 's', 's', 'a',
     106                 :            : #define s_6_4 (s_6_5 + 1)
     107                 :            : #define s_6_5 122
     108                 :            : 'l', 't', 'a',
     109                 :            : #define s_6_6 125
     110                 :            : 's', 't', 'a',
     111                 :            : #define s_6_7 128
     112                 :            : 't', 't', 'a',
     113                 :            : #define s_6_8 131
     114                 :            : 'l', 'l', 'e',
     115                 :            : #define s_6_9 134
     116                 :            : 'i', 'n', 'e',
     117                 :            : #define s_6_10 137
     118                 :            : 'k', 's', 'i',
     119                 :            : #define s_6_11 s_6_2
     120                 :            : #define s_6_12 140
     121                 :            : 'h', 'a', 'n',
     122                 :            : #define s_6_13 143
     123                 :            : 'd', 'e', 'n',
     124                 :            : #define s_6_14 146
     125                 :            : 's', 'e', 'e', 'n',
     126                 :            : #define s_6_15 150
     127                 :            : 'h', 'e', 'n',
     128                 :            : #define s_6_16 153
     129                 :            : 't', 't', 'e', 'n',
     130                 :            : #define s_6_17 157
     131                 :            : 'h', 'i', 'n',
     132                 :            : #define s_6_18 160
     133                 :            : 's', 'i', 'i', 'n',
     134                 :            : #define s_6_19 164
     135                 :            : 'h', 'o', 'n',
     136                 :            : #define s_6_20 167
     137                 :            : 'h', 0xC3, 0xA4, 'n',
     138                 :            : #define s_6_21 171
     139                 :            : 'h', 0xC3, 0xB6, 'n',
     140                 :            : #define s_6_22 (s_6_20 + 1)
     141                 :            : #define s_6_23 175
     142                 :            : 'l', 'l', 0xC3, 0xA4,
     143                 :            : #define s_6_24 179
     144                 :            : 'n', 0xC3, 0xA4,
     145                 :            : #define s_6_25 182
     146                 :            : 's', 's', 0xC3, 0xA4,
     147                 :            : #define s_6_26 (s_6_27 + 1)
     148                 :            : #define s_6_27 186
     149                 :            : 'l', 't', 0xC3, 0xA4,
     150                 :            : #define s_6_28 190
     151                 :            : 's', 't', 0xC3, 0xA4,
     152                 :            : #define s_6_29 194
     153                 :            : 't', 't', 0xC3, 0xA4,
     154                 :            : #define s_7_0 198
     155                 :            : 'e', 'j', 'a',
     156                 :            : #define s_7_1 (s_7_2 + 1)
     157                 :            : #define s_7_2 201
     158                 :            : 'i', 'm', 'm', 'a',
     159                 :            : #define s_7_3 (s_7_4 + 1)
     160                 :            : #define s_7_4 205
     161                 :            : 'i', 'm', 'p', 'a',
     162                 :            : #define s_7_5 (s_7_6 + 1)
     163                 :            : #define s_7_6 209
     164                 :            : 'i', 'm', 'm', 'i',
     165                 :            : #define s_7_7 (s_7_8 + 1)
     166                 :            : #define s_7_8 213
     167                 :            : 'i', 'm', 'p', 'i',
     168                 :            : #define s_7_9 217
     169                 :            : 'e', 'j', 0xC3, 0xA4,
     170                 :            : #define s_7_10 (s_7_11 + 1)
     171                 :            : #define s_7_11 221
     172                 :            : 'i', 'm', 'm', 0xC3, 0xA4,
     173                 :            : #define s_7_12 (s_7_13 + 1)
     174                 :            : #define s_7_13 226
     175                 :            : 'i', 'm', 'p', 0xC3, 0xA4,
     176                 :            : #define s_8_0 231
     177                 :            : 'i',
     178                 :            : #define s_8_1 232
     179                 :            : 'j',
     180                 :            : #define s_9_0 (s_9_1 + 1)
     181                 :            : #define s_9_1 233
     182                 :            : 'i', 'm', 'm', 'a',
     183                 :            : };
     184                 :            : 
     185                 :            : 
     186                 :            : static const struct among a_0[10] =
     187                 :            : {
     188                 :            : /*  0 */ { 2, s_0_0, -1, 1},
     189                 :            : /*  1 */ { 3, s_0_1, -1, 2},
     190                 :            : /*  2 */ { 4, s_0_2, -1, 1},
     191                 :            : /*  3 */ { 3, s_0_3, -1, 1},
     192                 :            : /*  4 */ { 3, s_0_4, -1, 1},
     193                 :            : /*  5 */ { 4, s_0_5, -1, 1},
     194                 :            : /*  6 */ { 6, s_0_6, -1, 1},
     195                 :            : /*  7 */ { 2, s_0_7, -1, 1},
     196                 :            : /*  8 */ { 3, s_0_8, -1, 1},
     197                 :            : /*  9 */ { 3, s_0_9, -1, 1}
     198                 :            : };
     199                 :            : 
     200                 :            : 
     201                 :            : static const struct among a_1[6] =
     202                 :            : {
     203                 :            : /*  0 */ { 3, s_1_0, -1, -1},
     204                 :            : /*  1 */ { 2, s_1_1, -1, -1},
     205                 :            : /*  2 */ { 3, s_1_2, -1, -1},
     206                 :            : /*  3 */ { 2, s_1_3, -1, -1},
     207                 :            : /*  4 */ { 3, s_1_4, 3, -1},
     208                 :            : /*  5 */ { 3, s_1_5, 3, -1}
     209                 :            : };
     210                 :            : 
     211                 :            : 
     212                 :            : static const struct among a_2[6] =
     213                 :            : {
     214                 :            : /*  0 */ { 4, s_2_0, -1, -1},
     215                 :            : /*  1 */ { 3, s_2_1, -1, -1},
     216                 :            : /*  2 */ { 4, s_2_2, -1, -1},
     217                 :            : /*  3 */ { 3, s_2_3, -1, -1},
     218                 :            : /*  4 */ { 4, s_2_4, 3, -1},
     219                 :            : /*  5 */ { 4, s_2_5, 3, -1}
     220                 :            : };
     221                 :            : 
     222                 :            : 
     223                 :            : static const struct among a_3[2] =
     224                 :            : {
     225                 :            : /*  0 */ { 3, s_3_0, -1, -1},
     226                 :            : /*  1 */ { 3, s_3_1, -1, -1}
     227                 :            : };
     228                 :            : 
     229                 :            : 
     230                 :            : static const struct among a_4[9] =
     231                 :            : {
     232                 :            : /*  0 */ { 3, s_4_0, -1, 3},
     233                 :            : /*  1 */ { 3, s_4_1, -1, 3},
     234                 :            : /*  2 */ { 3, s_4_2, -1, 3},
     235                 :            : /*  3 */ { 2, s_4_3, -1, 2},
     236                 :            : /*  4 */ { 2, s_4_4, -1, 1},
     237                 :            : /*  5 */ { 2, s_4_5, -1, 4},
     238                 :            : /*  6 */ { 2, s_4_6, -1, 6},
     239                 :            : /*  7 */ { 3, s_4_7, -1, 5},
     240                 :            : /*  8 */ { 4, s_4_8, -1, 3}
     241                 :            : };
     242                 :            : 
     243                 :            : 
     244                 :            : static const struct among a_5[7] =
     245                 :            : {
     246                 :            : /*  0 */ { 2, s_5_0, -1, -1},
     247                 :            : /*  1 */ { 2, s_5_1, -1, -1},
     248                 :            : /*  2 */ { 2, s_5_2, -1, -1},
     249                 :            : /*  3 */ { 2, s_5_3, -1, -1},
     250                 :            : /*  4 */ { 2, s_5_4, -1, -1},
     251                 :            : /*  5 */ { 4, s_5_5, -1, -1},
     252                 :            : /*  6 */ { 4, s_5_6, -1, -1}
     253                 :            : };
     254                 :            : 
     255                 :            : 
     256                 :            : static const struct among a_6[30] =
     257                 :            : {
     258                 :            : /*  0 */ { 1, s_6_0, -1, 8},
     259                 :            : /*  1 */ { 3, s_6_1, 0, -1},
     260                 :            : /*  2 */ { 2, s_6_2, 0, -1},
     261                 :            : /*  3 */ { 3, s_6_3, 0, -1},
     262                 :            : /*  4 */ { 2, s_6_4, 0, -1},
     263                 :            : /*  5 */ { 3, s_6_5, 4, -1},
     264                 :            : /*  6 */ { 3, s_6_6, 4, -1},
     265                 :            : /*  7 */ { 3, s_6_7, 4, 9},
     266                 :            : /*  8 */ { 3, s_6_8, -1, -1},
     267                 :            : /*  9 */ { 3, s_6_9, -1, -1},
     268                 :            : /* 10 */ { 3, s_6_10, -1, -1},
     269                 :            : /* 11 */ { 1, s_6_11, -1, 7},
     270                 :            : /* 12 */ { 3, s_6_12, 11, 1},
     271                 :            : /* 13 */ { 3, s_6_13, 11, -1},
     272                 :            : /* 14 */ { 4, s_6_14, 11, -1},
     273                 :            : /* 15 */ { 3, s_6_15, 11, 2},
     274                 :            : /* 16 */ { 4, s_6_16, 11, -1},
     275                 :            : /* 17 */ { 3, s_6_17, 11, 3},
     276                 :            : /* 18 */ { 4, s_6_18, 11, -1},
     277                 :            : /* 19 */ { 3, s_6_19, 11, 4},
     278                 :            : /* 20 */ { 4, s_6_20, 11, 5},
     279                 :            : /* 21 */ { 4, s_6_21, 11, 6},
     280                 :            : /* 22 */ { 2, s_6_22, -1, 8},
     281                 :            : /* 23 */ { 4, s_6_23, 22, -1},
     282                 :            : /* 24 */ { 3, s_6_24, 22, -1},
     283                 :            : /* 25 */ { 4, s_6_25, 22, -1},
     284                 :            : /* 26 */ { 3, s_6_26, 22, -1},
     285                 :            : /* 27 */ { 4, s_6_27, 26, -1},
     286                 :            : /* 28 */ { 4, s_6_28, 26, -1},
     287                 :            : /* 29 */ { 4, s_6_29, 26, 9}
     288                 :            : };
     289                 :            : 
     290                 :            : static const unsigned char af_6[30] =
     291                 :            : {
     292                 :            : /*  0 */ 0,
     293                 :            : /*  1 */ 0,
     294                 :            : /*  2 */ 0,
     295                 :            : /*  3 */ 0,
     296                 :            : /*  4 */ 0,
     297                 :            : /*  5 */ 0,
     298                 :            : /*  6 */ 0,
     299                 :            : /*  7 */ 0,
     300                 :            : /*  8 */ 0,
     301                 :            : /*  9 */ 0,
     302                 :            : /* 10 */ 0,
     303                 :            : /* 11 */ 0,
     304                 :            : /* 12 */ 0,
     305                 :            : /* 13 */ 1 /* tr_VI */,
     306                 :            : /* 14 */ 2 /* tr_LONG */,
     307                 :            : /* 15 */ 0,
     308                 :            : /* 16 */ 1 /* tr_VI */,
     309                 :            : /* 17 */ 0,
     310                 :            : /* 18 */ 1 /* tr_VI */,
     311                 :            : /* 19 */ 0,
     312                 :            : /* 20 */ 0,
     313                 :            : /* 21 */ 0,
     314                 :            : /* 22 */ 0,
     315                 :            : /* 23 */ 0,
     316                 :            : /* 24 */ 0,
     317                 :            : /* 25 */ 0,
     318                 :            : /* 26 */ 0,
     319                 :            : /* 27 */ 0,
     320                 :            : /* 28 */ 0,
     321                 :            : /* 29 */ 0
     322                 :            : };
     323                 :            : 
     324                 :            : 
     325                 :            : static const struct among a_7[14] =
     326                 :            : {
     327                 :            : /*  0 */ { 3, s_7_0, -1, -1},
     328                 :            : /*  1 */ { 3, s_7_1, -1, 1},
     329                 :            : /*  2 */ { 4, s_7_2, 1, -1},
     330                 :            : /*  3 */ { 3, s_7_3, -1, 1},
     331                 :            : /*  4 */ { 4, s_7_4, 3, -1},
     332                 :            : /*  5 */ { 3, s_7_5, -1, 1},
     333                 :            : /*  6 */ { 4, s_7_6, 5, -1},
     334                 :            : /*  7 */ { 3, s_7_7, -1, 1},
     335                 :            : /*  8 */ { 4, s_7_8, 7, -1},
     336                 :            : /*  9 */ { 4, s_7_9, -1, -1},
     337                 :            : /* 10 */ { 4, s_7_10, -1, 1},
     338                 :            : /* 11 */ { 5, s_7_11, 10, -1},
     339                 :            : /* 12 */ { 4, s_7_12, -1, 1},
     340                 :            : /* 13 */ { 5, s_7_13, 12, -1}
     341                 :            : };
     342                 :            : 
     343                 :            : 
     344                 :            : static const struct among a_8[2] =
     345                 :            : {
     346                 :            : /*  0 */ { 1, s_8_0, -1, -1},
     347                 :            : /*  1 */ { 1, s_8_1, -1, -1}
     348                 :            : };
     349                 :            : 
     350                 :            : 
     351                 :            : static const struct among a_9[2] =
     352                 :            : {
     353                 :            : /*  0 */ { 3, s_9_0, -1, 1},
     354                 :            : /*  1 */ { 4, s_9_1, 0, -1}
     355                 :            : };
     356                 :            : 
     357                 :            : static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
     358                 :            : 
     359                 :            : static const unsigned char g_V1[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
     360                 :            : 
     361                 :            : static const unsigned char g_V2[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
     362                 :            : 
     363                 :            : static const unsigned char g_particle_end[] = { 17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
     364                 :            : 
     365                 :            : static const symbol s_0[] = { 'k', 's', 'e' };
     366                 :            : static const symbol s_1[] = { 'k', 's', 'i' };
     367                 :            : static const symbol s_2[] = { 0xC3, 0xA4 };
     368                 :            : static const symbol s_3[] = { 0xC3, 0xB6 };
     369                 :            : static const symbol s_4[] = { 'i', 'e' };
     370                 :            : static const symbol s_5[] = { 'p', 'o' };
     371                 :            : static const symbol s_6[] = { 'p', 'o' };
     372                 :            : 
     373                 :     120616 : int Xapian::InternalStemFinnish::r_mark_regions() { /* forwardmode */
     374                 :     120616 :     I_p1 = l; /* p1 = <integer expression>, line 43 */
     375                 :     120616 :     I_p2 = l; /* p2 = <integer expression>, line 44 */
     376         [ +  + ]:     120616 :     if (out_grouping_U(g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 46 */
     377                 :     111685 :     {   int ret = in_grouping_U(g_V1, 97, 246, 1); /* gopast */ /* non V1, line 46 */
     378         [ +  + ]:     111685 :         if (ret < 0) return 0;
     379                 :     109429 :         c += ret;
     380                 :            :     }
     381                 :     109429 :     I_p1 = c; /* setmark p1, line 46 */
     382         [ +  + ]:     109429 :     if (out_grouping_U(g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 47 */
     383                 :      99355 :     {   int ret = in_grouping_U(g_V1, 97, 246, 1); /* gopast */ /* non V1, line 47 */
     384         [ +  + ]:      99355 :         if (ret < 0) return 0;
     385                 :      94872 :         c += ret;
     386                 :            :     }
     387                 :      94872 :     I_p2 = c; /* setmark p2, line 47 */
     388                 :     120616 :     return 1;
     389                 :            : }
     390                 :            : 
     391                 :        386 : int Xapian::InternalStemFinnish::r_R2() { /* backwardmode */
     392         [ +  + ]:        386 :     if (!(I_p2 <= c)) return 0; /* p2 <= <integer expression>, line 52 */
     393                 :        386 :     return 1;
     394                 :            : }
     395                 :            : 
     396                 :     120616 : int Xapian::InternalStemFinnish::r_particle_etc() { /* backwardmode */
     397                 :            :     int among_var;
     398                 :     120616 :     {   int m1 = l - c; (void)m1; /* setlimit, line 55 */
     399                 :            :         int mlimit1;
     400         [ -  + ]:     120616 :         if (c < I_p1) return 0;
     401                 :     120616 :         c = I_p1; /* tomark, line 55 */
     402                 :     120616 :         mlimit1 = lb; lb = c;
     403                 :     120616 :         c = l - m1;
     404                 :     120616 :         ket = c; /* [, line 55 */
     405                 :     120616 :         among_var = find_among_b(s_pool, a_0, 10, 0, 0); /* substring, line 55 */
     406         [ +  + ]:     120616 :         if (!(among_var)) { lb = mlimit1; return 0; }
     407                 :       1559 :         bra = c; /* ], line 55 */
     408                 :       1559 :         lb = mlimit1;
     409                 :            :     }
     410   [ -  +  +  - ]:       1559 :     switch(among_var) { /* among, line 56 */
     411                 :          0 :         case 0: return 0;
     412                 :            :         case 1:
     413         [ +  + ]:       1173 :             if (in_grouping_b_U(g_particle_end, 97, 246, 0)) return 0; /* grouping particle_end, line 62 */
     414                 :        813 :             break;
     415                 :            :         case 2:
     416                 :        386 :             {   int ret = r_R2(); /* call R2, line 64 */
     417         [ +  + ]:        386 :                 if (ret <= 0) return ret;
     418                 :            :             }
     419                 :            :             break;
     420                 :            :     }
     421         [ -  + ]:       1116 :     if (slice_del() == -1) return -1; /* delete, line 66 */
     422                 :     120616 :     return 1;
     423                 :            : }
     424                 :            : 
     425                 :     120616 : int Xapian::InternalStemFinnish::r_possessive() { /* backwardmode */
     426                 :            :     int among_var;
     427                 :     120616 :     {   int m1 = l - c; (void)m1; /* setlimit, line 69 */
     428                 :            :         int mlimit1;
     429         [ -  + ]:     120616 :         if (c < I_p1) return 0;
     430                 :     120616 :         c = I_p1; /* tomark, line 69 */
     431                 :     120616 :         mlimit1 = lb; lb = c;
     432                 :     120616 :         c = l - m1;
     433                 :     120616 :         ket = c; /* [, line 69 */
     434                 :     120616 :         among_var = find_among_b(s_pool, a_4, 9, 0, 0); /* substring, line 69 */
     435         [ +  + ]:     120616 :         if (!(among_var)) { lb = mlimit1; return 0; }
     436                 :      11924 :         bra = c; /* ], line 69 */
     437                 :      11924 :         lb = mlimit1;
     438                 :            :     }
     439 [ -  +  +  +  + :      11924 :     switch(among_var) { /* among, line 70 */
                +  +  - ]
     440                 :          0 :         case 0: return 0;
     441                 :            :         case 1:
     442                 :       1231 :             {   int m2 = l - c; (void)m2; /* not, line 72 */
     443 [ +  - ][ +  + ]:       1231 :                 if (c <= lb || p[c - 1] != 'k') goto lab0;
     444                 :        840 :                 c--;
     445                 :        840 :                 return 0;
     446                 :            :             lab0:
     447                 :        391 :                 c = l - m2;
     448                 :            :             }
     449         [ -  + ]:        391 :             if (slice_del() == -1) return -1; /* delete, line 72 */
     450                 :        391 :             break;
     451                 :            :         case 2:
     452         [ -  + ]:        313 :             if (slice_del() == -1) return -1; /* delete, line 74 */
     453                 :        313 :             ket = c; /* [, line 74 */
     454         [ +  + ]:        313 :             if (!(eq_s_b(3, s_0))) return 0; /* literal, line 74 */
     455                 :         15 :             bra = c; /* ], line 74 */
     456                 :         15 :             {   int ret = slice_from_s(3, s_1); /* <-, line 74 */
     457         [ -  + ]:         15 :                 if (ret < 0) return ret;
     458                 :            :             }
     459                 :         15 :             break;
     460                 :            :         case 3:
     461         [ -  + ]:        928 :             if (slice_del() == -1) return -1; /* delete, line 78 */
     462                 :        928 :             break;
     463                 :            :         case 4:
     464 [ +  - ][ +  + ]:       3060 :             if (c - 1 <= lb || p[c - 1] != 97) return 0; /* among, line 81 */
     465         [ +  + ]:       1406 :             if (!(find_among_b(s_pool, a_1, 6, 0, 0))) return 0;
     466         [ -  + ]:        734 :             if (slice_del() == -1) return -1; /* delete, line 81 */
     467                 :        734 :             break;
     468                 :            :         case 5:
     469 [ +  + ][ +  + ]:        756 :             if (c - 2 <= lb || p[c - 1] != 164) return 0; /* among, line 83 */
     470         [ +  + ]:        441 :             if (!(find_among_b(s_pool, a_2, 6, 0, 0))) return 0;
     471         [ -  + ]:        230 :             if (slice_del() == -1) return -1; /* delete, line 84 */
     472                 :        230 :             break;
     473                 :            :         case 6:
     474 [ +  + ][ +  + ]:       5636 :             if (c - 2 <= lb || p[c - 1] != 101) return 0; /* among, line 86 */
     475         [ +  + ]:       1048 :             if (!(find_among_b(s_pool, a_3, 2, 0, 0))) return 0;
     476         [ -  + ]:        114 :             if (slice_del() == -1) return -1; /* delete, line 86 */
     477                 :            :             break;
     478                 :            :     }
     479                 :     120616 :     return 1;
     480                 :            : }
     481                 :            : 
     482                 :     135713 : int Xapian::InternalStemFinnish::r_LONG() { /* backwardmode */
     483         [ +  + ]:     135713 :     if (!(find_among_b(s_pool, a_5, 7, 0, 0))) return 0; /* among, line 91 */
     484                 :     135713 :     return 1;
     485                 :            : }
     486                 :            : 
     487                 :        896 : int Xapian::InternalStemFinnish::r_VI() { /* backwardmode */
     488 [ +  + ][ +  + ]:        896 :     if (c <= lb || p[c - 1] != 'i') return 0;
     489                 :        561 :     c--;
     490         [ +  + ]:        561 :     if (in_grouping_b_U(g_V2, 97, 246, 0)) return 0; /* grouping V2, line 93 */
     491                 :        896 :     return 1;
     492                 :            : }
     493                 :            : 
     494                 :     120616 : int Xapian::InternalStemFinnish::r_case_ending() { /* backwardmode */
     495                 :            :     int among_var;
     496                 :     120616 :     {   int m1 = l - c; (void)m1; /* setlimit, line 96 */
     497                 :            :         int mlimit1;
     498         [ -  + ]:     120616 :         if (c < I_p1) return 0;
     499                 :     120616 :         c = I_p1; /* tomark, line 96 */
     500                 :     120616 :         mlimit1 = lb; lb = c;
     501                 :     120616 :         c = l - m1;
     502                 :     120616 :         ket = c; /* [, line 96 */
     503                 :     120616 :         among_var = find_among_b(s_pool, a_6, 30, af_6, af); /* substring, line 96 */
     504         [ +  + ]:     120616 :         if (!(among_var)) { lb = mlimit1; return 0; }
     505                 :      37910 :         bra = c; /* ], line 96 */
     506                 :      37910 :         lb = mlimit1;
     507                 :            :     }
     508 [ -  +  +  +  + :      37910 :     switch(among_var) { /* among, line 97 */
          -  +  +  +  +  
                      + ]
     509                 :          0 :         case 0: return 0;
     510                 :            :         case 1:
     511 [ +  - ][ +  - ]:         15 :             if (c <= lb || p[c - 1] != 'a') return 0;
     512                 :          0 :             c--;
     513                 :          0 :             break;
     514                 :            :         case 2:
     515 [ +  - ][ +  + ]:         34 :             if (c <= lb || p[c - 1] != 'e') return 0;
     516                 :         18 :             c--;
     517                 :         18 :             break;
     518                 :            :         case 3:
     519 [ +  - ][ +  + ]:        288 :             if (c <= lb || p[c - 1] != 'i') return 0;
     520                 :        227 :             c--;
     521                 :        227 :             break;
     522                 :            :         case 4:
     523 [ +  - ][ +  - ]:         15 :             if (c <= lb || p[c - 1] != 'o') return 0;
     524                 :          0 :             c--;
     525                 :          0 :             break;
     526                 :            :         case 5:
     527         [ #  # ]:          0 :             if (!(eq_s_b(2, s_2))) return 0; /* literal, line 102 */
     528                 :          0 :             break;
     529                 :            :         case 6:
     530         [ -  + ]:         12 :             if (!(eq_s_b(2, s_3))) return 0; /* literal, line 103 */
     531                 :         12 :             break;
     532                 :            :         case 7:
     533                 :      14577 :             {   int m2 = l - c; (void)m2; /* try, line 111 */
     534                 :      14577 :                 {   int m3 = l - c; (void)m3; /* and, line 113 */
     535                 :      14577 :                     {   int m4 = l - c; (void)m4; /* or, line 112 */
     536                 :      14577 :                         {   int ret = r_LONG(); /* call LONG, line 111 */
     537         [ +  + ]:      14577 :                             if (ret == 0) goto lab2;
     538         [ -  + ]:       2789 :                             if (ret < 0) return ret;
     539                 :            :                         }
     540                 :       2789 :                         goto lab1;
     541                 :            :                     lab2:
     542                 :      11788 :                         c = l - m4;
     543         [ +  + ]:      11788 :                         if (!(eq_s_b(2, s_4))) { c = l - m2; goto lab0; } /* literal, line 112 */
     544                 :            :                     }
     545                 :            :                 lab1:
     546                 :       3405 :                     c = l - m3;
     547                 :       3405 :                     {   int ret = skip_utf8(p, c, lb, 0, -1);
     548         [ -  + ]:       3405 :                         if (ret < 0) { c = l - m2; goto lab0; }
     549                 :       3405 :                         c = ret; /* next, line 113 */
     550                 :            :                     }
     551                 :            :                 }
     552                 :       3405 :                 bra = c; /* ], line 113 */
     553                 :            :             lab0:
     554                 :            :                 ;
     555                 :            :             }
     556                 :      14577 :             break;
     557                 :            :         case 8:
     558         [ +  + ]:       8846 :             if (in_grouping_b_U(g_V1, 97, 246, 0)) return 0; /* grouping V1, line 119 */
     559         [ +  + ]:       4398 :             if (out_grouping_b_U(g_V1, 97, 246, 0)) return 0; /* non V1, line 119 */
     560                 :       4207 :             break;
     561                 :            :         case 9:
     562 [ +  - ][ +  + ]:        459 :             if (c <= lb || p[c - 1] != 'e') return 0;
     563                 :        139 :             c--;
     564                 :            :             break;
     565                 :            :     }
     566         [ -  + ]:      32844 :     if (slice_del() == -1) return -1; /* delete, line 138 */
     567                 :      32844 :     B_ending_removed = 1; /* set ending_removed, line 139 */
     568                 :     120616 :     return 1;
     569                 :            : }
     570                 :            : 
     571                 :     120616 : int Xapian::InternalStemFinnish::r_other_endings() { /* backwardmode */
     572                 :            :     int among_var;
     573                 :     120616 :     {   int m1 = l - c; (void)m1; /* setlimit, line 142 */
     574                 :            :         int mlimit1;
     575         [ +  + ]:     120616 :         if (c < I_p2) return 0;
     576                 :     113903 :         c = I_p2; /* tomark, line 142 */
     577                 :     113903 :         mlimit1 = lb; lb = c;
     578                 :     113903 :         c = l - m1;
     579                 :     113903 :         ket = c; /* [, line 142 */
     580                 :     113903 :         among_var = find_among_b(s_pool, a_7, 14, 0, 0); /* substring, line 142 */
     581         [ +  + ]:     113903 :         if (!(among_var)) { lb = mlimit1; return 0; }
     582                 :        480 :         bra = c; /* ], line 142 */
     583                 :        480 :         lb = mlimit1;
     584                 :            :     }
     585      [ -  +  + ]:        480 :     switch(among_var) { /* among, line 143 */
     586                 :          0 :         case 0: return 0;
     587                 :            :         case 1:
     588                 :        219 :             {   int m2 = l - c; (void)m2; /* not, line 146 */
     589         [ +  + ]:        219 :                 if (!(eq_s_b(2, s_5))) goto lab0; /* literal, line 146 */
     590                 :         16 :                 return 0;
     591                 :            :             lab0:
     592                 :        203 :                 c = l - m2;
     593                 :            :             }
     594                 :            :             break;
     595                 :            :     }
     596         [ -  + ]:        464 :     if (slice_del() == -1) return -1; /* delete, line 151 */
     597                 :     120616 :     return 1;
     598                 :            : }
     599                 :            : 
     600                 :      32844 : int Xapian::InternalStemFinnish::r_i_plural() { /* backwardmode */
     601                 :      32844 :     {   int m1 = l - c; (void)m1; /* setlimit, line 154 */
     602                 :            :         int mlimit1;
     603         [ -  + ]:      32844 :         if (c < I_p1) return 0;
     604                 :      32844 :         c = I_p1; /* tomark, line 154 */
     605                 :      32844 :         mlimit1 = lb; lb = c;
     606                 :      32844 :         c = l - m1;
     607                 :      32844 :         ket = c; /* [, line 154 */
     608 [ +  + ][ +  + ]:      32844 :         if (c <= lb || (p[c - 1] != 105 && p[c - 1] != 106)) { lb = mlimit1; return 0; } /* substring, line 154 */
                 [ +  + ]
     609         [ -  + ]:      11593 :         if (!(find_among_b(s_pool, a_8, 2, 0, 0))) { lb = mlimit1; return 0; }
     610                 :      11593 :         bra = c; /* ], line 154 */
     611                 :      11593 :         lb = mlimit1;
     612                 :            :     }
     613         [ -  + ]:      11593 :     if (slice_del() == -1) return -1; /* delete, line 158 */
     614                 :      32844 :     return 1;
     615                 :            : }
     616                 :            : 
     617                 :      87772 : int Xapian::InternalStemFinnish::r_t_plural() { /* backwardmode */
     618                 :            :     int among_var;
     619                 :      87772 :     {   int m1 = l - c; (void)m1; /* setlimit, line 161 */
     620                 :            :         int mlimit1;
     621         [ -  + ]:      87772 :         if (c < I_p1) return 0;
     622                 :      87772 :         c = I_p1; /* tomark, line 161 */
     623                 :      87772 :         mlimit1 = lb; lb = c;
     624                 :      87772 :         c = l - m1;
     625                 :      87772 :         ket = c; /* [, line 162 */
     626 [ +  + ][ +  + ]:      87772 :         if (c <= lb || p[c - 1] != 't') { lb = mlimit1; return 0; }
     627                 :       5578 :         c--;
     628                 :       5578 :         bra = c; /* ], line 162 */
     629                 :       5578 :         {   int m_test2 = l - c; /* test, line 162 */
     630         [ +  + ]:       5578 :             if (in_grouping_b_U(g_V1, 97, 246, 0)) { lb = mlimit1; return 0; } /* grouping V1, line 162 */
     631                 :       3900 :             c = l - m_test2;
     632                 :            :         }
     633         [ -  + ]:       3900 :         if (slice_del() == -1) return -1; /* delete, line 163 */
     634                 :       3900 :         lb = mlimit1;
     635                 :            :     }
     636                 :       3900 :     {   int m3 = l - c; (void)m3; /* setlimit, line 165 */
     637                 :            :         int mlimit3;
     638         [ +  + ]:       3900 :         if (c < I_p2) return 0;
     639                 :       3398 :         c = I_p2; /* tomark, line 165 */
     640                 :       3398 :         mlimit3 = lb; lb = c;
     641                 :       3398 :         c = l - m3;
     642                 :       3398 :         ket = c; /* [, line 165 */
     643 [ +  + ][ +  + ]:       3398 :         if (c - 2 <= lb || p[c - 1] != 97) { lb = mlimit3; return 0; } /* substring, line 165 */
     644                 :        728 :         among_var = find_among_b(s_pool, a_9, 2, 0, 0);
     645         [ +  + ]:        728 :         if (!(among_var)) { lb = mlimit3; return 0; }
     646                 :         23 :         bra = c; /* ], line 165 */
     647                 :         23 :         lb = mlimit3;
     648                 :            :     }
     649      [ -  +  + ]:         23 :     switch(among_var) { /* among, line 166 */
     650                 :          0 :         case 0: return 0;
     651                 :            :         case 1:
     652                 :          8 :             {   int m4 = l - c; (void)m4; /* not, line 167 */
     653         [ +  - ]:          8 :                 if (!(eq_s_b(2, s_6))) goto lab0; /* literal, line 167 */
     654                 :          0 :                 return 0;
     655                 :            :             lab0:
     656                 :          8 :                 c = l - m4;
     657                 :            :             }
     658                 :            :             break;
     659                 :            :     }
     660         [ -  + ]:         23 :     if (slice_del() == -1) return -1; /* delete, line 170 */
     661                 :      87772 :     return 1;
     662                 :            : }
     663                 :            : 
     664                 :     120616 : int Xapian::InternalStemFinnish::r_tidy() { /* backwardmode */
     665                 :     120616 :     {   int m1 = l - c; (void)m1; /* setlimit, line 173 */
     666                 :            :         int mlimit1;
     667         [ -  + ]:     120616 :         if (c < I_p1) return 0;
     668                 :     120616 :         c = I_p1; /* tomark, line 173 */
     669                 :     120616 :         mlimit1 = lb; lb = c;
     670                 :     120616 :         c = l - m1;
     671                 :     120616 :         {   int m2 = l - c; (void)m2; /* do, line 174 */
     672                 :     120616 :             {   int m3 = l - c; (void)m3; /* and, line 174 */
     673                 :     120616 :                 {   int ret = r_LONG(); /* call LONG, line 174 */
     674         [ +  + ]:     120616 :                     if (ret == 0) goto lab0;
     675         [ -  + ]:       2071 :                     if (ret < 0) return ret;
     676                 :            :                 }
     677                 :       2071 :                 c = l - m3;
     678                 :       2071 :                 ket = c; /* [, line 174 */
     679                 :       2071 :                 {   int ret = skip_utf8(p, c, lb, 0, -1);
     680         [ -  + ]:       2071 :                     if (ret < 0) goto lab0;
     681                 :       2071 :                     c = ret; /* next, line 174 */
     682                 :            :                 }
     683                 :       2071 :                 bra = c; /* ], line 174 */
     684         [ -  + ]:       2071 :                 if (slice_del() == -1) return -1; /* delete, line 174 */
     685                 :            :             }
     686                 :            :         lab0:
     687                 :     120616 :             c = l - m2;
     688                 :            :         }
     689                 :     120616 :         {   int m4 = l - c; (void)m4; /* do, line 175 */
     690                 :     120616 :             ket = c; /* [, line 175 */
     691         [ +  + ]:     120616 :             if (in_grouping_b_U(g_AEI, 97, 228, 0)) goto lab1; /* grouping AEI, line 175 */
     692                 :      31324 :             bra = c; /* ], line 175 */
     693         [ +  + ]:      31324 :             if (out_grouping_b_U(g_V1, 97, 246, 0)) goto lab1; /* non V1, line 175 */
     694         [ -  + ]:      26817 :             if (slice_del() == -1) return -1; /* delete, line 175 */
     695                 :            :         lab1:
     696                 :     120616 :             c = l - m4;
     697                 :            :         }
     698                 :     120616 :         {   int m5 = l - c; (void)m5; /* do, line 176 */
     699                 :     120616 :             ket = c; /* [, line 176 */
     700 [ +  + ][ +  + ]:     120616 :             if (c <= lb || p[c - 1] != 'j') goto lab2;
     701                 :       4158 :             c--;
     702                 :       4158 :             bra = c; /* ], line 176 */
     703                 :       4158 :             {   int m6 = l - c; (void)m6; /* or, line 176 */
     704 [ +  + ][ +  + ]:       4158 :                 if (c <= lb || p[c - 1] != 'o') goto lab4;
     705                 :        616 :                 c--;
     706                 :        616 :                 goto lab3;
     707                 :            :             lab4:
     708                 :       3542 :                 c = l - m6;
     709 [ +  + ][ +  + ]:       3542 :                 if (c <= lb || p[c - 1] != 'u') goto lab2;
     710                 :        296 :                 c--;
     711                 :            :             }
     712                 :            :         lab3:
     713         [ -  + ]:        912 :             if (slice_del() == -1) return -1; /* delete, line 176 */
     714                 :            :         lab2:
     715                 :     120616 :             c = l - m5;
     716                 :            :         }
     717                 :     120616 :         {   int m7 = l - c; (void)m7; /* do, line 177 */
     718                 :     120616 :             ket = c; /* [, line 177 */
     719 [ +  + ][ +  + ]:     120616 :             if (c <= lb || p[c - 1] != 'o') goto lab5;
     720                 :       6930 :             c--;
     721                 :       6930 :             bra = c; /* ], line 177 */
     722 [ +  + ][ +  + ]:       6930 :             if (c <= lb || p[c - 1] != 'j') goto lab5;
     723                 :        240 :             c--;
     724         [ -  + ]:        240 :             if (slice_del() == -1) return -1; /* delete, line 177 */
     725                 :            :         lab5:
     726                 :     120616 :             c = l - m7;
     727                 :            :         }
     728                 :     120616 :         lb = mlimit1;
     729                 :            :     }
     730         [ +  + ]:     120616 :     if (in_grouping_b_U(g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 179 */
     731                 :     120155 :     ket = c; /* [, line 179 */
     732                 :     120155 :     {   int ret = skip_utf8(p, c, lb, 0, -1);
     733         [ -  + ]:     120155 :         if (ret < 0) return 0;
     734                 :     120155 :         c = ret; /* next, line 179 */
     735                 :            :     }
     736                 :     120155 :     bra = c; /* ], line 179 */
     737                 :     120155 :     {   symbol * ret = slice_to(S_x); /* -> x, line 179 */
     738         [ -  + ]:     120155 :         if (ret == 0) return -1;
     739                 :     120155 :         S_x = ret;
     740                 :            :     }
     741         [ +  + ]:     120155 :     if (!(eq_v_b(S_x))) return 0; /* name x, line 179 */
     742         [ -  + ]:       7809 :     if (slice_del() == -1) return -1; /* delete, line 179 */
     743                 :     120616 :     return 1;
     744                 :            : }
     745                 :            : 
     746                 :     120616 : int Xapian::InternalStemFinnish::stem() { /* forwardmode */
     747                 :     120616 :     {   int c1 = c; /* do, line 185 */
     748                 :     120616 :         {   int ret = r_mark_regions(); /* call mark_regions, line 185 */
     749         [ +  + ]:     120616 :             if (ret == 0) goto lab0;
     750         [ -  + ]:      94872 :             if (ret < 0) return ret;
     751                 :            :         }
     752                 :            :     lab0:
     753                 :     120616 :         c = c1;
     754                 :            :     }
     755                 :     120616 :     B_ending_removed = 0; /* unset ending_removed, line 186 */
     756                 :     120616 :     lb = c; c = l; /* backwards, line 187 */
     757                 :            : 
     758                 :     120616 :     {   int m2 = l - c; (void)m2; /* do, line 188 */
     759                 :     120616 :         {   int ret = r_particle_etc(); /* call particle_etc, line 188 */
     760         [ +  + ]:     120616 :             if (ret == 0) goto lab1;
     761         [ -  + ]:       1116 :             if (ret < 0) return ret;
     762                 :            :         }
     763                 :            :     lab1:
     764                 :     120616 :         c = l - m2;
     765                 :            :     }
     766                 :     120616 :     {   int m3 = l - c; (void)m3; /* do, line 189 */
     767                 :     120616 :         {   int ret = r_possessive(); /* call possessive, line 189 */
     768         [ +  + ]:     120616 :             if (ret == 0) goto lab2;
     769         [ -  + ]:       2412 :             if (ret < 0) return ret;
     770                 :            :         }
     771                 :            :     lab2:
     772                 :     120616 :         c = l - m3;
     773                 :            :     }
     774                 :     120616 :     {   int m4 = l - c; (void)m4; /* do, line 190 */
     775                 :     120616 :         {   int ret = r_case_ending(); /* call case_ending, line 190 */
     776         [ +  + ]:     120616 :             if (ret == 0) goto lab3;
     777         [ -  + ]:      32844 :             if (ret < 0) return ret;
     778                 :            :         }
     779                 :            :     lab3:
     780                 :     120616 :         c = l - m4;
     781                 :            :     }
     782                 :     120616 :     {   int m5 = l - c; (void)m5; /* do, line 191 */
     783                 :     120616 :         {   int ret = r_other_endings(); /* call other_endings, line 191 */
     784         [ +  + ]:     120616 :             if (ret == 0) goto lab4;
     785         [ -  + ]:        464 :             if (ret < 0) return ret;
     786                 :            :         }
     787                 :            :     lab4:
     788                 :     120616 :         c = l - m5;
     789                 :            :     }
     790                 :     120616 :     {   int m6 = l - c; (void)m6; /* or, line 192 */
     791         [ +  + ]:     120616 :         if (!(B_ending_removed)) goto lab6; /* Boolean test ending_removed, line 192 */
     792                 :      32844 :         {   int m7 = l - c; (void)m7; /* do, line 192 */
     793                 :      32844 :             {   int ret = r_i_plural(); /* call i_plural, line 192 */
     794         [ +  + ]:      32844 :                 if (ret == 0) goto lab7;
     795         [ -  + ]:      11593 :                 if (ret < 0) return ret;
     796                 :            :             }
     797                 :            :         lab7:
     798                 :      32844 :             c = l - m7;
     799                 :            :         }
     800                 :      32844 :         goto lab5;
     801                 :            :     lab6:
     802                 :      87772 :         c = l - m6;
     803                 :      87772 :         {   int m8 = l - c; (void)m8; /* do, line 192 */
     804                 :      87772 :             {   int ret = r_t_plural(); /* call t_plural, line 192 */
     805         [ +  + ]:      87772 :                 if (ret == 0) goto lab8;
     806         [ -  + ]:         23 :                 if (ret < 0) return ret;
     807                 :            :             }
     808                 :            :         lab8:
     809                 :      87772 :             c = l - m8;
     810                 :            :         }
     811                 :            :     }
     812                 :            : lab5:
     813                 :     120616 :     {   int m9 = l - c; (void)m9; /* do, line 193 */
     814                 :     120616 :         {   int ret = r_tidy(); /* call tidy, line 193 */
     815         [ +  + ]:     120616 :             if (ret == 0) goto lab9;
     816         [ -  + ]:       7809 :             if (ret < 0) return ret;
     817                 :            :         }
     818                 :            :     lab9:
     819                 :     120616 :         c = l - m9;
     820                 :            :     }
     821                 :     120616 :     c = lb;
     822                 :     120616 :     return 1;
     823                 :            : }
     824                 :            : 
     825                 :          3 : Xapian::InternalStemFinnish::InternalStemFinnish()
     826                 :          3 :     : B_ending_removed(0), S_x(0), I_p2(0), I_p1(0)
     827                 :            : {
     828                 :          3 :     S_x = create_s();
     829                 :          3 : }
     830                 :            : 
     831                 :          3 : Xapian::InternalStemFinnish::~InternalStemFinnish()
     832                 :            : {
     833                 :          3 :     lose_s(S_x);
     834 [ +  - ][ #  # ]:          3 : }
                 [ #  # ]
     835                 :            : 
     836                 :            : std::string
     837                 :          1 : Xapian::InternalStemFinnish::get_description() const
     838                 :            : {
     839                 :          1 :     return "finnish";
     840                 :            : }

Generated by: LCOV version 1.8