All functions:
  Elements:
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/hunspell/tests/gh1058.cxx:11,1
    - Dst: std::string::c_str
      Src: /src/hunspell/tests/gh1058.cxx:18,1
    - Dst: std::string::c_str
      Src: /src/hunspell/tests/gh1058.cxx:18,1
    - Dst: Hunspell::spell
      Src: /src/hunspell/tests/gh1058.cxx:21,1
    - Dst: fprintf
      Src: /src/hunspell/tests/gh1058.cxx:22,1
    - Dst: std::string::c_str
      Src: /src/hunspell/tests/gh1058.cxx:22,1
    - Dst: Hunspell::suggest
      Src: /src/hunspell/tests/gh1058.cxx:26,1
    - Dst: fprintf
      Src: /src/hunspell/tests/gh1058.cxx:29,1
    - Dst: fprintf
      Src: /src/hunspell/tests/gh1058.cxx:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 36
    functionName: main
    functionSourceFile: /src/hunspell/tests/gh1058.cxx
    functionUses: 0
    functionsReached:
    - fprintf
    - Hunspell::suggest
    - Hunspell::spell
    - std::string::c_str
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/hunspell/tests/gh1032.cxx:10,1
    - Dst: std::string::c_str
      Src: /src/hunspell/tests/gh1032.cxx:17,1
    - Dst: std::string::c_str
      Src: /src/hunspell/tests/gh1032.cxx:17,1
    - Dst: Hunspell::spell
      Src: /src/hunspell/tests/gh1032.cxx:20,1
    - Dst: std::string
      Src: /src/hunspell/tests/gh1032.cxx:20,1
    - Dst: fprintf
      Src: /src/hunspell/tests/gh1032.cxx:21,1
    - Dst: Hunspell::spell
      Src: /src/hunspell/tests/gh1032.cxx:24,1
    - Dst: std::string
      Src: /src/hunspell/tests/gh1032.cxx:24,1
    - Dst: fprintf
      Src: /src/hunspell/tests/gh1032.cxx:25,1
    - Dst: Hunspell::add_with_affix
      Src: /src/hunspell/tests/gh1032.cxx:30,1
    - Dst: std::string
      Src: /src/hunspell/tests/gh1032.cxx:30,1
    - Dst: std::string
      Src: /src/hunspell/tests/gh1032.cxx:30,1
    - Dst: Hunspell::spell
      Src: /src/hunspell/tests/gh1032.cxx:32,1
    - Dst: std::string
      Src: /src/hunspell/tests/gh1032.cxx:32,1
    - Dst: fprintf
      Src: /src/hunspell/tests/gh1032.cxx:33,1
    - Dst: Hunspell::spell
      Src: /src/hunspell/tests/gh1032.cxx:36,1
    - Dst: std::string
      Src: /src/hunspell/tests/gh1032.cxx:36,1
    - Dst: fprintf
      Src: /src/hunspell/tests/gh1032.cxx:37,1
    - Dst: Hunspell::remove
      Src: /src/hunspell/tests/gh1032.cxx:42,1
    - Dst: std::string
      Src: /src/hunspell/tests/gh1032.cxx:42,1
    - Dst: Hunspell::spell
      Src: /src/hunspell/tests/gh1032.cxx:45,1
    - Dst: std::string
      Src: /src/hunspell/tests/gh1032.cxx:45,1
    - Dst: fprintf
      Src: /src/hunspell/tests/gh1032.cxx:46,1
    - Dst: Hunspell::remove
      Src: /src/hunspell/tests/gh1032.cxx:51,1
    - Dst: std::string
      Src: /src/hunspell/tests/gh1032.cxx:51,1
    - Dst: fprintf
      Src: /src/hunspell/tests/gh1032.cxx:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 55
    functionName: main
    functionSourceFile: /src/hunspell/tests/gh1032.cxx
    functionUses: 0
    functionsReached:
    - Hunspell::remove
    - Hunspell::add_with_affix
    - std::string::c_str
    - fprintf
    - std::string
    - Hunspell::spell
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: std::ofstream::write
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:57,1
    - Dst: std::ofstream::close
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:58,1
    - Dst: std::ofstream::write
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:61,1
    - Dst: std::ofstream::close
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:62,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:75,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:76,1
    - Dst: std::string::clear
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:77,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:83,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:84,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:87,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:88,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:93,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:94,1
    - Dst: Hunspell::spell
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:97,1
    - Dst: Hunspell::add
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:100,1
    - Dst: Hunspell::remove
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:103,1
    - Dst: Hunspell::add_with_affix
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:106,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:112,1
    - Dst: Hunspell::spell
      Src: /src/hunspell/src/tools/persdicfuzzer.cxx:113,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 116
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/hunspell/src/tools/persdicfuzzer.cxx
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Hunspell::remove
    - Hunspell::add_with_affix
    - std::vector::size
    - std::ofstream::write
    - std::string::empty
    - Hunspell::spell
    - Hunspell::add
    - std::ofstream::close
    - std::string::clear
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const char* data, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/hunspell/src/tools/chmorph.cxx:56,1
    - Dst: exit
      Src: /src/hunspell/src/tools/chmorph.cxx:65,1
    - Dst: fopen
      Src: /src/hunspell/src/tools/chmorph.cxx:70,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/chmorph.cxx:72,1
    - Dst: exit
      Src: /src/hunspell/src/tools/chmorph.cxx:73,1
    - Dst: Hunspell::Hunspell
      Src: /src/hunspell/src/tools/chmorph.cxx:76,1
    - Dst: TextParser::TextParser
      Src: /src/hunspell/src/tools/chmorph.cxx:77,1
    - Dst: fgets
      Src: /src/hunspell/src/tools/chmorph.cxx:82,1
    - Dst: TextParser*::put_line
      Src: /src/hunspell/src/tools/chmorph.cxx:83,1
    - Dst: TextParser*::next_token
      Src: /src/hunspell/src/tools/chmorph.cxx:85,1
    - Dst: Hunspell*::analyze
      Src: /src/hunspell/src/tools/chmorph.cxx:86,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/tools/chmorph.cxx:87,1
    - Dst: strstr
      Src: /src/hunspell/src/tools/chmorph.cxx:90,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/chmorph.cxx:90,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/chmorph.cxx:92,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/chmorph.cxx:93,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/chmorph.cxx:94,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/chmorph.cxx:94,1
    - Dst: std::move
      Src: /src/hunspell/src/tools/chmorph.cxx:95,1
    - Dst: std::vector::resize
      Src: /src/hunspell/src/tools/chmorph.cxx:102,1
    - Dst: Hunspell*::generate
      Src: /src/hunspell/src/tools/chmorph.cxx:103,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/tools/chmorph.cxx:104,1
    - Dst: TextParser*::change_token
      Src: /src/hunspell/src/tools/chmorph.cxx:105,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/chmorph.cxx:105,1
    - Dst: TextParser*::next_token
      Src: /src/hunspell/src/tools/chmorph.cxx:107,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/chmorph.cxx:112,1
    - Dst: TextParser*::get_line
      Src: /src/hunspell/src/tools/chmorph.cxx:112,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/chmorph.cxx:116,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 118
    functionName: main
    functionSourceFile: /src/hunspell/src/tools/chmorph.cxx
    functionUses: 0
    functionsReached:
    - TextParser*::next_token
    - Hunspell*::analyze
    - TextParser*::change_token
    - strstr
    - fopen
    - exit
    - TextParser*::get_line
    - std::string::append
    - Hunspell*::generate
    - fclose
    - fgets
    - TextParser*::put_line
    - std::vector::empty
    - std::move
    - fprintf
    - strlen
    - std::vector::resize
    - c_str
    - Hunspell::Hunspell
    - TextParser::TextParser
    linkageType: ''
    returnType: int
    signature: int main(int, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - q
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: ROTATE
    functionSourceFile: /src/hunspell/src/tools/munch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(v, q)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunzip.cxx:49,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunzip.cxx:50,1
    - Dst: Hunzip::is_open
      Src: /src/hunspell/src/tools/hunzip.cxx:54,1
    - Dst: Hunzip::getline
      Src: /src/hunspell/src/tools/hunzip.cxx:57,1
    - Dst: printf
      Src: /src/hunspell/src/tools/hunzip.cxx:58,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunzip.cxx:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: main
    functionSourceFile: /src/hunspell/src/tools/hunzip.cxx
    functionUses: 0
    functionsReached:
    - printf
    - std::string::c_str
    - fprintf
    - strcmp
    - Hunzip::getline
    - Hunzip::is_open
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/unmunch.cxx:72,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:74,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:75,1
    - Dst: exit
      Src: /src/hunspell/src/tools/unmunch.cxx:76,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/unmunch.cxx:79,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:81,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:82,1
    - Dst: exit
      Src: /src/hunspell/src/tools/unmunch.cxx:83,1
    - Dst: fopen
      Src: /src/hunspell/src/tools/unmunch.cxx:87,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:89,1
    - Dst: exit
      Src: /src/hunspell/src/tools/unmunch.cxx:90,1
    - Dst: parse_aff_file
      Src: /src/hunspell/src/tools/unmunch.cxx:100,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:101,1
    - Dst: exit
      Src: /src/hunspell/src/tools/unmunch.cxx:102,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/unmunch.cxx:105,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:107,1
    - Dst: fopen
      Src: /src/hunspell/src/tools/unmunch.cxx:112,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:114,1
    - Dst: exit
      Src: /src/hunspell/src/tools/unmunch.cxx:115,1
    - Dst: fgets
      Src: /src/hunspell/src/tools/unmunch.cxx:119,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/unmunch.cxx:120,1
    - Dst: mychomp
      Src: /src/hunspell/src/tools/unmunch.cxx:123,1
    - Dst: fgets
      Src: /src/hunspell/src/tools/unmunch.cxx:125,1
    - Dst: mychomp
      Src: /src/hunspell/src/tools/unmunch.cxx:126,1
    - Dst: strchr
      Src: /src/hunspell/src/tools/unmunch.cxx:128,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/unmunch.cxx:132,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/unmunch.cxx:138,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/unmunch.cxx:141,1
    - Dst: expand_rootword
      Src: /src/hunspell/src/tools/unmunch.cxx:146,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:149,1
    - Dst: free
      Src: /src/hunspell/src/tools/unmunch.cxx:150,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/unmunch.cxx:156,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 65
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 158
    functionName: main
    functionSourceFile: /src/hunspell/src/tools/unmunch.cxx
    functionUses: 0
    functionsReached:
    - strlen
    - exit
    - expand_rootword
    - strchr
    - mystrdup
    - fprintf
    - parse_aff_file
    - free
    - fclose
    - fgets
    - fopen
    - mychomp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/hunspell/src/tools/unmunch.cxx:167,1
    - Dst: fgets
      Src: /src/hunspell/src/tools/unmunch.cxx:169,1
    - Dst: mychomp
      Src: /src/hunspell/src/tools/unmunch.cxx:170,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:172,1
    - Dst: strncmp
      Src: /src/hunspell/src/tools/unmunch.cxx:173,1
    - Dst: strncmp
      Src: /src/hunspell/src/tools/unmunch.cxx:175,1
    - Dst: strncmp
      Src: /src/hunspell/src/tools/unmunch.cxx:177,1
    - Dst: mystrsep
      Src: /src/hunspell/src/tools/unmunch.cxx:184,1
    - Dst: atoi
      Src: /src/hunspell/src/tools/unmunch.cxx:199,1
    - Dst: AffixMgr::setcminmax
      Src: /src/hunspell/src/tools/unmunch.cxx:200,1
    - Dst: static_cast<size_t>
      Src: /src/hunspell/src/tools/unmunch.cxx:201,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:202,1
    - Dst: calloc
      Src: /src/hunspell/src/tools/unmunch.cxx:205,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:208,1
    - Dst: free
      Src: /src/hunspell/src/tools/unmunch.cxx:217,1
    - Dst: fgets
      Src: /src/hunspell/src/tools/unmunch.cxx:222,1
    - Dst: mychomp
      Src: /src/hunspell/src/tools/unmunch.cxx:224,1
    - Dst: mystrsep
      Src: /src/hunspell/src/tools/unmunch.cxx:227,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/unmunch.cxx:240,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/unmunch.cxx:241,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/unmunch.cxx:242,1
    - Dst: free
      Src: /src/hunspell/src/tools/unmunch.cxx:243,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/unmunch.cxx:244,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/unmunch.cxx:250,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/unmunch.cxx:251,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/unmunch.cxx:252,1
    - Dst: free
      Src: /src/hunspell/src/tools/unmunch.cxx:253,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/unmunch.cxx:254,1
    - Dst: strchr
      Src: /src/hunspell/src/tools/unmunch.cxx:257,1
    - Dst: realloc
      Src: /src/hunspell/src/tools/unmunch.cxx:259,1
    - Dst: encodeit
      Src: /src/hunspell/src/tools/unmunch.cxx:270,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:272,1
    - Dst: free
      Src: /src/hunspell/src/tools/unmunch.cxx:280,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:289,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:293,1
    - Dst: free
      Src: /src/hunspell/src/tools/unmunch.cxx:294,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:300,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/unmunch.cxx:304,1
    - Dst: free
      Src: /src/hunspell/src/tools/unmunch.cxx:305,1
    - Dst: free
      Src: /src/hunspell/src/tools/unmunch.cxx:314,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 138
    argCount: 1
    argNames:
    - afflst
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 316
    functionName: parse_aff_file
    functionSourceFile: /src/hunspell/src/tools/unmunch.cxx
    functionUses: 1
    functionsReached:
    - strlen
    - malloc
    - strncmp
    - atoi
    - strchr
    - free
    - fprintf
    - AffixMgr::setcminmax
    - mystrdup
    - strcmp
    - realloc
    - mystrsep
    - fgets
    - encodeit
    - static_cast<size_t>
    - mychomp
    - calloc
    linkageType: ''
    returnType: int
    signature: int parse_aff_file(FILE* afflst)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/hunspell/src/tools/unmunch.cxx:333,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/unmunch.cxx:340,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 2
    argNames:
    - ptr
    - cs
    argTypes:
    - struct affent*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 402
    functionName: encodeit
    functionSourceFile: /src/hunspell/src/tools/unmunch.cxx
    functionUses: 1
    functionsReached:
    - strcmp
    - strlen
    linkageType: ''
    returnType: void
    signature: void encodeit(struct affent* ptr, char* cs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/hunspell/src/tools/unmunch.cxx:415,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/unmunch.cxx:425,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/unmunch.cxx:427,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/unmunch.cxx:430,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/unmunch.cxx:430,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 4
    argNames:
    - word
    - len
    - ep
    - num
    argTypes:
    - char*
    - int
    - struct affent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 437
    functionName: pfx_add
    functionSourceFile: /src/hunspell/src/tools/unmunch.cxx
    functionUses: 0
    functionsReached:
    - std::string::append
    - std::string::c_str
    - strncmp
    - mystrdup
    linkageType: ''
    returnType: void
    signature: void pfx_add(const char* word, int len, struct affent* ep, int num)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/hunspell/src/tools/unmunch.cxx:453,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/tools/unmunch.cxx:462,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/unmunch.cxx:463,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/unmunch.cxx:466,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/unmunch.cxx:466,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 4
    argNames:
    - word
    - len
    - ep
    - num
    argTypes:
    - char*
    - int
    - struct affent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 473
    functionName: suf_add
    functionSourceFile: /src/hunspell/src/tools/unmunch.cxx
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - mystrdup
    - strcmp
    - std::string::append
    - std::string::resize
    linkageType: ''
    returnType: void
    signature: void suf_add(const char* word, int len, struct affent* ep, int num)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/hunspell/src/tools/unmunch.cxx:480,1
    - Dst: suf_add
      Src: /src/hunspell/src/tools/unmunch.cxx:481,1
    - Dst: strchr
      Src: /src/hunspell/src/tools/unmunch.cxx:491,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/unmunch.cxx:493,1
    - Dst: pfx_add
      Src: /src/hunspell/src/tools/unmunch.cxx:494,1
    - Dst: strchr
      Src: /src/hunspell/src/tools/unmunch.cxx:503,1
    - Dst: pfx_add
      Src: /src/hunspell/src/tools/unmunch.cxx:504,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - ts
    - wl
    - ap
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 508
    functionName: expand_rootword
    functionSourceFile: /src/hunspell/src/tools/unmunch.cxx
    functionUses: 1
    functionsReached:
    - suf_add
    - strchr
    - pfx_add
    - strlen
    linkageType: ''
    returnType: int
    signature: int expand_rootword(const char* ts, int wl, const char* ap)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/hunspell/src/tools/unmunch.cxx:517,1
    - Dst: memchr
      Src: /src/hunspell/src/tools/unmunch.cxx:519,1
    - Dst: malloc
      Src: /src/hunspell/src/tools/unmunch.cxx:524,1
    - Dst: memcpy
      Src: /src/hunspell/src/tools/unmunch.cxx:526,1
    - Dst: malloc
      Src: /src/hunspell/src/tools/unmunch.cxx:530,1
    - Dst: memcpy
      Src: /src/hunspell/src/tools/unmunch.cxx:532,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - stringp
    - delim
    argTypes:
    - char**
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 539
    functionName: mystrsep
    functionSourceFile: /src/hunspell/src/tools/unmunch.cxx
    functionUses: 1
    functionsReached:
    - memcpy
    - memchr
    - malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: char * mystrsep(char** stringp, const char delim)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/hunspell/src/tools/unmunch.cxx:544,1
    - Dst: malloc
      Src: /src/hunspell/src/tools/unmunch.cxx:545,1
    - Dst: memcpy
      Src: /src/hunspell/src/tools/unmunch.cxx:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 550
    functionName: mystrdup
    functionSourceFile: /src/hunspell/src/tools/unmunch.cxx
    functionUses: 4
    functionsReached:
    - memcpy
    - malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: char * mystrdup(const char* s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/hunspell/src/tools/unmunch.cxx:553,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 558
    functionName: mychomp
    functionSourceFile: /src/hunspell/src/tools/unmunch.cxx
    functionUses: 2
    functionsReached:
    - strlen
    linkageType: ''
    returnType: void
    signature: void mychomp(char* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::ofstream::write
      Src: /src/hunspell/src/tools/hzfuzzer.cxx:47,1
    - Dst: std::ofstream::close
      Src: /src/hunspell/src/tools/hzfuzzer.cxx:48,1
    - Dst: Hunzip::getline
      Src: /src/hunspell/src/tools/hzfuzzer.cxx:54,1
    - Dst: unlink
      Src: /src/hunspell/src/tools/hzfuzzer.cxx:61,1
    - Dst: FileMgr::getline
      Src: /src/hunspell/src/tools/hzfuzzer.cxx:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 70
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/hunspell/src/tools/hzfuzzer.cxx
    functionUses: 0
    functionsReached:
    - unlink
    - std::ofstream::write
    - std::ofstream::close
    - FileMgr::getline
    - Hunzip::getline
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const char* data, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/hunspell/src/tools/example.cxx:51,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/example.cxx:52,1
    - Dst: exit
      Src: /src/hunspell/src/tools/example.cxx:54,1
    - Dst: std::ifstream::is_open
      Src: /src/hunspell/src/tools/example.cxx:59,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/example.cxx:60,1
    - Dst: exit
      Src: /src/hunspell/src/tools/example.cxx:61,1
    - Dst: Hunspell::Hunspell
      Src: /src/hunspell/src/tools/example.cxx:64,1
    - Dst: Hunspell*::add_dic
      Src: /src/hunspell/src/tools/example.cxx:69,1
    - Dst: std::getline
      Src: /src/hunspell/src/tools/example.cxx:72,1
    - Dst: Hunspell*::spell
      Src: /src/hunspell/src/tools/example.cxx:73,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/example.cxx:75,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/example.cxx:75,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/example.cxx:76,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/example.cxx:78,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/example.cxx:78,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/example.cxx:79,1
    - Dst: Hunspell*::suggest
      Src: /src/hunspell/src/tools/example.cxx:80,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/example.cxx:80,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/example.cxx:82,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/example.cxx:82,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/example.cxx:84,1
    - Dst: Hunspell*::analyze
      Src: /src/hunspell/src/tools/example.cxx:88,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 93
    functionName: main
    functionSourceFile: /src/hunspell/src/tools/example.cxx
    functionUses: 0
    functionsReached:
    - Hunspell*::analyze
    - std::getline
    - exit
    - c_str
    - Hunspell::Hunspell
    - Hunspell*::spell
    - std::string::c_str
    - fprintf
    - std::ifstream::is_open
    - Hunspell*::add_dic
    - Hunspell*::suggest
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Msgid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: gettext
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gettext(Msgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Domainname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: textdomain
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: textdomain(Domainname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - enc
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: fix_encoding_name
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: char * fix_encoding_name(const char* enc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/tools/hunspell.cxx:263,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:266,1
    - Dst: size
      Src: /src/hunspell/src/tools/hunspell.cxx:269,1
    - Dst: size
      Src: /src/hunspell/src/tools/hunspell.cxx:269,1
    - Dst: size
      Src: /src/hunspell/src/tools/hunspell.cxx:270,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/hunspell.cxx:271,1
    - Dst: iconv_open
      Src: /src/hunspell/src/tools/hunspell.cxx:274,1
    - Dst: fix_encoding_name
      Src: /src/hunspell/src/tools/hunspell.cxx:274,1
    - Dst: fix_encoding_name
      Src: /src/hunspell/src/tools/hunspell.cxx:274,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:277,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:278,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:278,1
    - Dst: iconv
      Src: /src/hunspell/src/tools/hunspell.cxx:281,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/hunspell.cxx:284,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/tools/hunspell.cxx:286,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/hunspell.cxx:286,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:293,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:294,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:294,1
    - Dst: iconv_close
      Src: /src/hunspell/src/tools/hunspell.cxx:296,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/tools/hunspell.cxx:297,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - ' st'
    - enc1
    - enc2
    argTypes:
    - std::string
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 303
    functionName: chenc
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - std::string::size
    - fix_encoding_name
    - iconv
    - empty
    - iconv_open
    - fprintf
    - size
    - strcmp
    - iconv_close
    - std::string::resize
    - gettext
    linkageType: ''
    returnType: std::string
    signature: std::string chenc(const std::string& st, const char* enc1, const char*
      enc2, const char* context = nullptr)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell*::get_dict_encoding
      Src: /src/hunspell/src/tools/hunspell.cxx:308,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:311,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:311,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:312,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:312,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:318,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:322,1
    - Dst: Hunspell*::get_wordchars_utf16
      Src: /src/hunspell/src/tools/hunspell.cxx:327,1
    - Dst: Hunspell*::get_wordchars_cpp
      Src: /src/hunspell/src/tools/hunspell.cxx:328,1
    - Dst: size
      Src: /src/hunspell/src/tools/hunspell.cxx:329,1
    - Dst: data
      Src: /src/hunspell/src/tools/hunspell.cxx:330,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:331,1
    - Dst: empty
      Src: /src/hunspell/src/tools/hunspell.cxx:331,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:332,1
    - Dst: size
      Src: /src/hunspell/src/tools/hunspell.cxx:333,1
    - Dst: iconv_open
      Src: /src/hunspell/src/tools/hunspell.cxx:336,1
    - Dst: fix_encoding_name
      Src: /src/hunspell/src/tools/hunspell.cxx:336,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:338,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:338,1
    - Dst: iconv
      Src: /src/hunspell/src/tools/hunspell.cxx:342,1
    - Dst: iconv_close
      Src: /src/hunspell/src/tools/hunspell.cxx:343,1
    - Dst: u8_u16
      Src: /src/hunspell/src/tools/hunspell.cxx:344,1
    - Dst: std::sort
      Src: /src/hunspell/src/tools/hunspell.cxx:345,1
    - Dst: begin
      Src: /src/hunspell/src/tools/hunspell.cxx:345,1
    - Dst: end
      Src: /src/hunspell/src/tools/hunspell.cxx:345,1
    - Dst: data
      Src: /src/hunspell/src/tools/hunspell.cxx:346,1
    - Dst: size
      Src: /src/hunspell/src/tools/hunspell.cxx:347,1
    - Dst: iconv_open
      Src: /src/hunspell/src/tools/hunspell.cxx:358,1
    - Dst: fix_encoding_name
      Src: /src/hunspell/src/tools/hunspell.cxx:358,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:360,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:360,1
    - Dst: iconv
      Src: /src/hunspell/src/tools/hunspell.cxx:370,1
    - Dst: u8_u16
      Src: /src/hunspell/src/tools/hunspell.cxx:373,1
    - Dst: std::string
      Src: /src/hunspell/src/tools/hunspell.cxx:373,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/tools/hunspell.cxx:374,1
    - Dst: unicodeisalpha
      Src: /src/hunspell/src/tools/hunspell.cxx:375,1
    - Dst: iconv_close
      Src: /src/hunspell/src/tools/hunspell.cxx:381,1
    - Dst: Hunspell*::get_wordchars_cpp
      Src: /src/hunspell/src/tools/hunspell.cxx:386,1
    - Dst: size
      Src: /src/hunspell/src/tools/hunspell.cxx:387,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:389,1
    - Dst: Hunspell*::get_wordchars_utf16
      Src: /src/hunspell/src/tools/hunspell.cxx:390,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/hunspell.cxx:392,1
    - Dst: iconv_open
      Src: /src/hunspell/src/tools/hunspell.cxx:395,1
    - Dst: fix_encoding_name
      Src: /src/hunspell/src/tools/hunspell.cxx:395,1
    - Dst: fix_encoding_name
      Src: /src/hunspell/src/tools/hunspell.cxx:395,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:397,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:397,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:400,1
    - Dst: iconv
      Src: /src/hunspell/src/tools/hunspell.cxx:401,1
    - Dst: iconv_close
      Src: /src/hunspell/src/tools/hunspell.cxx:402,1
    - Dst: assign
      Src: /src/hunspell/src/tools/hunspell.cxx:407,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:410,1
    - Dst: Hunspell*::get_wordchars_utf16
      Src: /src/hunspell/src/tools/hunspell.cxx:411,1
    - Dst: size
      Src: /src/hunspell/src/tools/hunspell.cxx:412,1
    - Dst: data
      Src: /src/hunspell/src/tools/hunspell.cxx:412,1
    - Dst: size
      Src: /src/hunspell/src/tools/hunspell.cxx:413,1
    - Dst: get_casechars
      Src: /src/hunspell/src/tools/hunspell.cxx:416,1
    - Dst: Hunspell*::get_wordchars_cpp
      Src: /src/hunspell/src/tools/hunspell.cxx:417,1
    - Dst: LaTeXParser::LaTeXParser
      Src: /src/hunspell/src/tools/hunspell.cxx:426,1
    - Dst: HTMLParser::HTMLParser
      Src: /src/hunspell/src/tools/hunspell.cxx:429,1
    - Dst: ManParser::ManParser
      Src: /src/hunspell/src/tools/hunspell.cxx:432,1
    - Dst: XMLParser::XMLParser
      Src: /src/hunspell/src/tools/hunspell.cxx:435,1
    - Dst: ODFParser::ODFParser
      Src: /src/hunspell/src/tools/hunspell.cxx:438,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:441,1
    - Dst: FirstParser::FirstParser
      Src: /src/hunspell/src/tools/hunspell.cxx:441,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:446,1
    - Dst: LaTeXParser::LaTeXParser
      Src: /src/hunspell/src/tools/hunspell.cxx:446,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:449,1
    - Dst: HTMLParser::HTMLParser
      Src: /src/hunspell/src/tools/hunspell.cxx:449,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:452,1
    - Dst: ManParser::ManParser
      Src: /src/hunspell/src/tools/hunspell.cxx:452,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:455,1
    - Dst: XMLParser::XMLParser
      Src: /src/hunspell/src/tools/hunspell.cxx:455,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:458,1
    - Dst: ODFParser::ODFParser
      Src: /src/hunspell/src/tools/hunspell.cxx:458,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:461,1
    - Dst: FirstParser::FirstParser
      Src: /src/hunspell/src/tools/hunspell.cxx:461,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:466,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:466,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:467,1
    - Dst: HTMLParser::HTMLParser
      Src: /src/hunspell/src/tools/hunspell.cxx:469,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:471,1
    - Dst: HTMLParser::HTMLParser
      Src: /src/hunspell/src/tools/hunspell.cxx:471,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:473,1
    - Dst: XMLParser::XMLParser
      Src: /src/hunspell/src/tools/hunspell.cxx:475,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:477,1
    - Dst: XMLParser::XMLParser
      Src: /src/hunspell/src/tools/hunspell.cxx:477,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/hunspell.cxx:479,1
    - Dst: strstr
      Src: /src/hunspell/src/tools/hunspell.cxx:479,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/hunspell.cxx:480,1
    - Dst: strstr
      Src: /src/hunspell/src/tools/hunspell.cxx:480,1
    - Dst: ODFParser::ODFParser
      Src: /src/hunspell/src/tools/hunspell.cxx:482,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:484,1
    - Dst: ODFParser::ODFParser
      Src: /src/hunspell/src/tools/hunspell.cxx:484,1
    - Dst: ManParser::ManParser
      Src: /src/hunspell/src/tools/hunspell.cxx:488,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:490,1
    - Dst: ManParser::ManParser
      Src: /src/hunspell/src/tools/hunspell.cxx:490,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:492,1
    - Dst: LaTeXParser::LaTeXParser
      Src: /src/hunspell/src/tools/hunspell.cxx:494,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:496,1
    - Dst: LaTeXParser::LaTeXParser
      Src: /src/hunspell/src/tools/hunspell.cxx:496,1
    - Dst: TextParser::TextParser
      Src: /src/hunspell/src/tools/hunspell.cxx:502,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:504,1
    - Dst: TextParser::TextParser
      Src: /src/hunspell/src/tools/hunspell.cxx:504,1
    - Dst: TextParser*::set_url_checking
      Src: /src/hunspell/src/tools/hunspell.cxx:507,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 164
    argCount: 3
    argNames:
    - format
    - extension
    - pMS
    argTypes:
    - int
    - char*
    - Hunspell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 509
    functionName: get_parser
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - Hunspell*::get_dict_encoding
    - ODFParser::ODFParser
    - strstr
    - HTMLParser::HTMLParser
    - LaTeXParser::LaTeXParser
    - end
    - TextParser*::set_url_checking
    - fix_encoding_name
    - std::string
    - strcmp
    - begin
    - std::vector::empty
    - u8_u16
    - iconv
    - Hunspell*::get_wordchars_utf16
    - empty
    - fprintf
    - size
    - data
    - strlen
    - iconv_close
    - assign
    - FirstParser::FirstParser
    - get_casechars
    - c_str
    - ManParser::ManParser
    - Hunspell*::get_wordchars_cpp
    - iconv_open
    - std::sort
    - TextParser::TextParser
    - unicodeisalpha
    - gettext
    - XMLParser::XMLParser
    linkageType: ''
    returnType: TextParser
    signature: TextParser * get_parser(int format, const char* extension, Hunspell*
      pMS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/hunspell/src/tools/hunspell.cxx:513,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:515,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hunspell.cxx:516,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 520
    functionName: log
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - fprintf
    - fopen
    - fclose
    linkageType: ''
    returnType: void
    signature: void log(char* message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const char*>
      Src: /src/hunspell/src/tools/hunspell.cxx:525,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:526,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - userdata
    - depth
    - line
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: print_trace
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - fprintf
    - static_cast<const char*>
    - chenc
    linkageType: ''
    returnType: void
    signature: void print_trace(void* userdata, int depth, const char* line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:530,1
    - Dst: Hunspell*::input_conv
      Src: /src/hunspell/src/tools/hunspell.cxx:533,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:533,1
    - Dst: std::move
      Src: /src/hunspell/src/tools/hunspell.cxx:534,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/tools/hunspell.cxx:536,1
    - Dst: std::string::find
      Src: /src/hunspell/src/tools/hunspell.cxx:540,1
    - Dst: Hunspell*::remove
      Src: /src/hunspell/src/tools/hunspell.cxx:543,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/tools/hunspell.cxx:543,1
    - Dst: Hunspell*::add
      Src: /src/hunspell/src/tools/hunspell.cxx:545,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/tools/hunspell.cxx:547,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/tools/hunspell.cxx:548,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/tools/hunspell.cxx:549,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/tools/hunspell.cxx:550,1
    - Dst: Hunspell*::add_with_affix
      Src: /src/hunspell/src/tools/hunspell.cxx:551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - ' in_word'
    - pMS
    argTypes:
    - std::string
    - Hunspell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 554
    functionName: putdic
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - std::string::substr
    - std::move
    - Hunspell*::add_with_affix
    - Hunspell*::remove
    - std::string::empty
    - std::string::erase
    - std::string::c_str
    - Hunspell*::add
    - chenc
    - std::string::find
    - std::string::resize
    - Hunspell*::input_conv
    linkageType: ''
    returnType: int
    signature: int putdic(const std::string& in_word, Hunspell* pMS, const char* context
      = nullptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::open
      Src: /src/hunspell/src/tools/hunspell.cxx:558,1
    - Dst: std::ifstream::is_open
      Src: /src/hunspell/src/tools/hunspell.cxx:559,1
    - Dst: std::getline
      Src: /src/hunspell/src/tools/hunspell.cxx:562,1
    - Dst: std::string
      Src: /src/hunspell/src/tools/hunspell.cxx:564,1
    - Dst: std::to_string
      Src: /src/hunspell/src/tools/hunspell.cxx:565,1
    - Dst: putdic
      Src: /src/hunspell/src/tools/hunspell.cxx:566,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - filename
    - pMS
    argTypes:
    - char*
    - Hunspell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 569
    functionName: load_privdic
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - std::ifstream::open
    - std::getline
    - std::string::c_str
    - std::string
    - putdic
    - std::ifstream::is_open
    - std::to_string
    linkageType: ''
    returnType: void
    signature: void load_privdic(const char* filename, Hunspell* pMS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::open
      Src: /src/hunspell/src/tools/hunspell.cxx:573,1
    - Dst: std::ifstream::is_open
      Src: /src/hunspell/src/tools/hunspell.cxx:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 578
    functionName: exist
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - std::ifstream::open
    - std::ifstream::is_open
    linkageType: ''
    returnType: bool
    signature: bool exist(const char* filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/hunspell/src/tools/hunspell.cxx:581,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:581,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hunspell.cxx:583,1
    - Dst: fopen
      Src: /src/hunspell/src/tools/hunspell.cxx:584,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:584,1
    - Dst: fopen
      Src: /src/hunspell/src/tools/hunspell.cxx:586,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:586,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:591,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:592,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:592,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hunspell.cxx:594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ' filename'
    - ' filename2'
    - ' w'
    argTypes:
    - std::string
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 596
    functionName: save_privdic
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - c_str
    - chenc
    - fprintf
    - fclose
    - fopen
    linkageType: ''
    returnType: int
    signature: int save_privdic(const std::string& filename, const std::string& filename2,
      std::vector<std::string>& w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/hunspell/src/tools/hunspell.cxx:599,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 605
    functionName: basename
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: char
    signature: char * basename(const char* s, char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/hunspell/src/tools/hunspell.cxx:610,1
    - Dst: malloc
      Src: /src/hunspell/src/tools/hunspell.cxx:611,1
    - Dst: memcpy
      Src: /src/hunspell/src/tools/hunspell.cxx:613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 616
    functionName: mystrdup
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 4
    functionsReached:
    - memcpy
    - malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: char * mystrdup(const char* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:621,1
    - Dst: echo
      Src: /src/hunspell/src/tools/hunspell.cxx:622,1
    - Dst: getnstr
      Src: /src/hunspell/src/tools/hunspell.cxx:623,1
    - Dst: noecho
      Src: /src/hunspell/src/tools/hunspell.cxx:624,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/hunspell.cxx:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 626
    functionName: scanline
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - getnstr
    - echo
    - mystrdup
    - printw
    - noecho
    linkageType: ''
    returnType: char
    signature: char * scanline(const char* message)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:632,1
    - Dst: mystrrep
      Src: /src/hunspell/src/tools/hunspell.cxx:633,1
    - Dst: std::string::find
      Src: /src/hunspell/src/tools/hunspell.cxx:634,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:638,1
    - Dst: mystrrep
      Src: /src/hunspell/src/tools/hunspell.cxx:639,1
    - Dst: spell
      Src: /src/hunspell/src/tools/hunspell.cxx:640,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:645,1
    - Dst: std::string::find
      Src: /src/hunspell/src/tools/hunspell.cxx:646,1
    - Dst: spell
      Src: /src/hunspell/src/tools/hunspell.cxx:647,1
    - Dst: mystrrep
      Src: /src/hunspell/src/tools/hunspell.cxx:647,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 14
    argCount: 5
    argNames:
    - pMS
    - d
    - ' token'
    - info
    - root
    argTypes:
    - Hunspell**
    - int*
    - std::string
    - int*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 655
    functionName: check
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - mystrrep
    - spell
    - chenc
    - std::string::find
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool check(Hunspell** pMS, int* d, const std::string& token, int* info,
      std::string* root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<ODFParser*>
      Src: /src/hunspell/src/tools/hunspell.cxx:659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - parser
    - extension
    argTypes:
    - TextParser*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 660
    functionName: is_zipped_odf
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - dynamic_cast<ODFParser*>
    linkageType: ''
    returnType: bool
    signature: bool is_zipped_odf(TextParser* parser, const char* extension)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 6
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 670
    functionName: secure_filename
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool secure_filename(const char* filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tmpnam
      Src: /src/hunspell/src/tools/hunspell.cxx:675,1
    - Dst: system
      Src: /src/hunspell/src/tools/hunspell.cxx:679,1
    - Dst: std::string
      Src: /src/hunspell/src/tools/hunspell.cxx:679,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:679,1
    - Dst: mkdtemp
      Src: /src/hunspell/src/tools/hunspell.cxx:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - templ
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 686
    functionName: mymkdtemp
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - c_str
    - tmpnam
    - system
    - std::string
    - mkdtemp
    linkageType: ''
    returnType: char
    signature: char * mymkdtemp(char *templ)
  - BBCount: 75
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:699,1
    - Dst: std::string
      Src: /src/hunspell/src/tools/hunspell.cxx:701,1
    - Dst: basename
      Src: /src/hunspell/src/tools/hunspell.cxx:703,1
    - Dst: get_parser
      Src: /src/hunspell/src/tools/hunspell.cxx:704,1
    - Dst: is_zipped_odf
      Src: /src/hunspell/src/tools/hunspell.cxx:707,1
    - Dst: mymkdtemp
      Src: /src/hunspell/src/tools/hunspell.cxx:710,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:712,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:712,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:713,1
    - Dst: secure_filename
      Src: /src/hunspell/src/tools/hunspell.cxx:715,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:716,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:716,1
    - Dst: system
      Src: /src/hunspell/src/tools/hunspell.cxx:717,1
    - Dst: std::string
      Src: /src/hunspell/src/tools/hunspell.cxx:717,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:717,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:718,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:720,1
    - Dst: system
      Src: /src/hunspell/src/tools/hunspell.cxx:728,1
    - Dst: std::ostringstream::str
      Src: /src/hunspell/src/tools/hunspell.cxx:728,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:729,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:729,1
    - Dst: system
      Src: /src/hunspell/src/tools/hunspell.cxx:730,1
    - Dst: std::string
      Src: /src/hunspell/src/tools/hunspell.cxx:730,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:730,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:731,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:733,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:736,1
    - Dst: fopen
      Src: /src/hunspell/src/tools/hunspell.cxx:737,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:737,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:739,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:739,1
    - Dst: system
      Src: /src/hunspell/src/tools/hunspell.cxx:740,1
    - Dst: std::string
      Src: /src/hunspell/src/tools/hunspell.cxx:740,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:740,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:741,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:743,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:748,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:748,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:749,1
    - Dst: get_version_cpp
      Src: /src/hunspell/src/tools/hunspell.cxx:750,1
    - Dst: empty
      Src: /src/hunspell/src/tools/hunspell.cxx:751,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:752,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:752,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:753,1
    - Dst: fflush
      Src: /src/hunspell/src/tools/hunspell.cxx:754,1
    - Dst: fgets
      Src: /src/hunspell/src/tools/hunspell.cxx:758,1
    - Dst: strcspn
      Src: /src/hunspell/src/tools/hunspell.cxx:759,1
    - Dst: log
      Src: /src/hunspell/src/tools/hunspell.cxx:762,1
    - Dst: get_parser
      Src: /src/hunspell/src/tools/hunspell.cxx:785,1
    - Dst: TextParser*::set_url_checking
      Src: /src/hunspell/src/tools/hunspell.cxx:786,1
    - Dst: get_parser
      Src: /src/hunspell/src/tools/hunspell.cxx:791,1
    - Dst: putdic
      Src: /src/hunspell/src/tools/hunspell.cxx:795,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/tools/hunspell.cxx:800,1
    - Dst: putdic
      Src: /src/hunspell/src/tools/hunspell.cxx:801,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:807,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:809,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:809,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:813,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/hunspell.cxx:815,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:817,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:818,1
    - Dst: basename
      Src: /src/hunspell/src/tools/hunspell.cxx:818,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:820,1
    - Dst: save_privdic
      Src: /src/hunspell/src/tools/hunspell.cxx:822,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/tools/hunspell.cxx:822,1
    - Dst: std::vector::clear
      Src: /src/hunspell/src/tools/hunspell.cxx:823,1
    - Dst: TextParser*::put_line
      Src: /src/hunspell/src/tools/hunspell.cxx:846,1
    - Dst: TextParser*::next_token
      Src: /src/hunspell/src/tools/hunspell.cxx:850,1
    - Dst: TextParser*::get_word
      Src: /src/hunspell/src/tools/hunspell.cxx:851,1
    - Dst: mystrrep
      Src: /src/hunspell/src/tools/hunspell.cxx:852,1
    - Dst: check
      Src: /src/hunspell/src/tools/hunspell.cxx:856,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:859,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:859,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:859,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:862,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:862,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:862,1
    - Dst: check
      Src: /src/hunspell/src/tools/hunspell.cxx:869,1
    - Dst: TextParser*::get_word
      Src: /src/hunspell/src/tools/hunspell.cxx:869,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:871,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:874,1
    - Dst: check
      Src: /src/hunspell/src/tools/hunspell.cxx:881,1
    - Dst: TextParser*::get_word
      Src: /src/hunspell/src/tools/hunspell.cxx:881,1
    - Dst: check
      Src: /src/hunspell/src/tools/hunspell.cxx:893,1
    - Dst: TextParser*::get_word
      Src: /src/hunspell/src/tools/hunspell.cxx:893,1
    - Dst: suggest
      Src: /src/hunspell/src/tools/hunspell.cxx:896,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:896,1
    - Dst: TextParser*::get_word
      Src: /src/hunspell/src/tools/hunspell.cxx:896,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/tools/hunspell.cxx:897,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:898,1
    - Dst: TextParser*::change_token
      Src: /src/hunspell/src/tools/hunspell.cxx:900,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:900,1
    - Dst: TextParser*::next_token
      Src: /src/hunspell/src/tools/hunspell.cxx:904,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:906,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:907,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:907,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:909,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:909,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:910,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:912,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:912,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:913,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:914,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:914,1
    - Dst: stem
      Src: /src/hunspell/src/tools/hunspell.cxx:923,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:923,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:925,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:925,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:925,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/tools/hunspell.cxx:927,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/tools/hunspell.cxx:927,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/hunspell.cxx:927,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/tools/hunspell.cxx:928,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/hunspell.cxx:928,1
    - Dst: stem
      Src: /src/hunspell/src/tools/hunspell.cxx:929,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:931,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:931,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:931,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/tools/hunspell.cxx:934,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:935,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:935,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:936,1
    - Dst: suffix_suggest
      Src: /src/hunspell/src/tools/hunspell.cxx:941,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:943,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:943,1
    - Dst: fflush
      Src: /src/hunspell/src/tools/hunspell.cxx:945,1
    - Dst: analyze
      Src: /src/hunspell/src/tools/hunspell.cxx:950,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:950,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:952,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:952,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:952,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/tools/hunspell.cxx:954,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/tools/hunspell.cxx:954,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/hunspell.cxx:954,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/tools/hunspell.cxx:955,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/hunspell.cxx:955,1
    - Dst: analyze
      Src: /src/hunspell/src/tools/hunspell.cxx:956,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:958,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:958,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:958,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/tools/hunspell.cxx:961,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:962,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:962,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:963,1
    - Dst: spell
      Src: /src/hunspell/src/tools/hunspell.cxx:968,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:968,1
    - Dst: fflush
      Src: /src/hunspell/src/tools/hunspell.cxx:969,1
    - Dst: check
      Src: /src/hunspell/src/tools/hunspell.cxx:976,1
    - Dst: TextParser*::get_word
      Src: /src/hunspell/src/tools/hunspell.cxx:976,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:979,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:979,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:981,1
    - Dst: fflush
      Src: /src/hunspell/src/tools/hunspell.cxx:983,1
    - Dst: TextParser*::get_tokenpos
      Src: /src/hunspell/src/tools/hunspell.cxx:985,1
    - Dst: suggest
      Src: /src/hunspell/src/tools/hunspell.cxx:998,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:998,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:1000,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/tools/hunspell.cxx:1002,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1003,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1003,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1005,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1005,1
    - Dst: static_cast<unsigned int>
      Src: /src/hunspell/src/tools/hunspell.cxx:1005,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/tools/hunspell.cxx:1005,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1006,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1006,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/tools/hunspell.cxx:1008,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1009,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1009,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1011,1
    - Dst: fflush
      Src: /src/hunspell/src/tools/hunspell.cxx:1012,1
    - Dst: check
      Src: /src/hunspell/src/tools/hunspell.cxx:1019,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1021,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/tools/hunspell.cxx:1022,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1023,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:1023,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1025,1
    - Dst: fflush
      Src: /src/hunspell/src/tools/hunspell.cxx:1027,1
    - Dst: TextParser*::get_tokenpos
      Src: /src/hunspell/src/tools/hunspell.cxx:1029,1
    - Dst: suggest
      Src: /src/hunspell/src/tools/hunspell.cxx:1042,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:1042,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:1044,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:1046,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/tools/hunspell.cxx:1047,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1048,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1048,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1051,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1051,1
    - Dst: static_cast<unsigned int>
      Src: /src/hunspell/src/tools/hunspell.cxx:1052,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/tools/hunspell.cxx:1052,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1053,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1053,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/tools/hunspell.cxx:1055,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1056,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1056,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1058,1
    - Dst: fflush
      Src: /src/hunspell/src/tools/hunspell.cxx:1059,1
    - Dst: TextParser*::get_line
      Src: /src/hunspell/src/tools/hunspell.cxx:1067,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1068,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1068,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1074,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1080,1
    - Dst: fflush
      Src: /src/hunspell/src/tools/hunspell.cxx:1081,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hunspell.cxx:1089,1
    - Dst: remove
      Src: /src/hunspell/src/tools/hunspell.cxx:1092,1
    - Dst: std::ostringstream::str
      Src: /src/hunspell/src/tools/hunspell.cxx:1092,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:1093,1
    - Dst: std::ostringstream::str
      Src: /src/hunspell/src/tools/hunspell.cxx:1095,1
    - Dst: system
      Src: /src/hunspell/src/tools/hunspell.cxx:1097,1
    - Dst: std::ostringstream::str
      Src: /src/hunspell/src/tools/hunspell.cxx:1097,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:1098,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 316
    argCount: 4
    argNames:
    - pMS
    - format
    - fileid
    - filename
    argTypes:
    - Hunspell**
    - int
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 688
    functionDepth: 3
    functionLinenumber: 688
    functionLinenumberEnd: 1103
    functionName: pipe_interface
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - TextParser*::next_token
    - mystrrep
    - std::string::size
    - analyze
    - strcspn
    - std::string::c_str
    - check
    - TextParser*::change_token
    - get_version_cpp
    - fopen
    - std::string::substr
    - exit
    - TextParser*::set_url_checking
    - mymkdtemp
    - system
    - std::vector::clear
    - std::string
    - putdic
    - chenc
    - strcmp
    - std::string::append
    - suggest
    - get_parser
    - basename
    - fgets
    - TextParser*::get_line
    - fclose
    - std::string::resize
    - TextParser*::put_line
    - std::vector::empty
    - std::ostringstream::str
    - std::vector::push_back
    - spell
    - std::vector::size
    - static_cast<unsigned int>
    - is_zipped_odf
    - empty
    - save_privdic
    - perror
    - fprintf
    - fflush
    - suffix_suggest
    - TextParser*::get_word
    - TextParser*::get_tokenpos
    - log
    - stem
    - remove
    - c_str
    - std::string::empty
    - secure_filename
    - gettext
    linkageType: ''
    returnType: void
    signature: void pipe_interface(Hunspell** pMS, int format, FILE* fileid, char*
      filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/tools/hunspell.cxx:1112,1
    - Dst: rl_insert_text
      Src: /src/hunspell/src/tools/hunspell.cxx:1113,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1113,1
    - Dst: clear
      Src: /src/hunspell/src/tools/hunspell.cxx:1114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1118
    functionName: set_rltext
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - rl_insert_text
    - empty
    - clear
    - c_str
    linkageType: ''
    returnType: int
    signature: int set_rltext()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rl_delete_text
      Src: /src/hunspell/src/tools/hunspell.cxx:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1127
    functionName: rl_escape
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - rl_delete_text
    linkageType: ''
    returnType: int
    signature: int rl_escape(int /*count*/, int /*key*/)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/hunspell/src/tools/hunspell.cxx:1132,1
    - Dst: reserve
      Src: /src/hunspell/src/tools/hunspell.cxx:1133,1
    - Dst: size
      Src: /src/hunspell/src/tools/hunspell.cxx:1133,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1134,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:1135,1
    - Dst: push_back
      Src: /src/hunspell/src/tools/hunspell.cxx:1141,1
    - Dst: push_back
      Src: /src/hunspell/src/tools/hunspell.cxx:1145,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - ' dest'
    - ' in_src'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1151
    functionName: expand_tab
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - c_str
    - reserve
    - size
    - strcmp
    - push_back
    - clear
    linkageType: ''
    returnType: int
    signature: int expand_tab(std::string& dest, const std::string& in_src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/hunspell/src/tools/hunspell.cxx:1160,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1161,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:1163,1
    - Dst: push_back
      Src: /src/hunspell/src/tools/hunspell.cxx:1170,1
    - Dst: push_back
      Src: /src/hunspell/src/tools/hunspell.cxx:1172,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 4
    argNames:
    - ' dest'
    - ' in_src'
    - begin
    - n
    argTypes:
    - std::string
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1180
    functionName: strncpyu8
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - strcmp
    - clear
    - c_str
    - push_back
    linkageType: ''
    returnType: void
    signature: void strncpyu8(std::string& dest, const std::string& in_src, int begin,
      int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1184,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:1185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ' in_src'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1193
    functionName: strlenu8
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - strcmp
    - c_str
    linkageType: ''
    returnType: int
    signature: int strlenu8(const std::string& in_src)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getmaxyx
      Src: /src/hunspell/src/tools/hunspell.cxx:1201,1
    - Dst: clear
      Src: /src/hunspell/src/tools/hunspell.cxx:1202,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1205,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1205,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1207,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1207,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1209,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1209,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:1209,1
    - Dst: TextParser*::get_prevline
      Src: /src/hunspell/src/tools/hunspell.cxx:1216,1
    - Dst: expand_tab
      Src: /src/hunspell/src/tools/hunspell.cxx:1217,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:1217,1
    - Dst: TextParser*::get_prevline
      Src: /src/hunspell/src/tools/hunspell.cxx:1220,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/tools/hunspell.cxx:1221,1
    - Dst: TextParser*::get_tokenpos
      Src: /src/hunspell/src/tools/hunspell.cxx:1221,1
    - Dst: expand_tab
      Src: /src/hunspell/src/tools/hunspell.cxx:1223,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:1223,1
    - Dst: TextParser*::get_prevline
      Src: /src/hunspell/src/tools/hunspell.cxx:1225,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/tools/hunspell.cxx:1226,1
    - Dst: TextParser*::get_tokenpos
      Src: /src/hunspell/src/tools/hunspell.cxx:1226,1
    - Dst: size
      Src: /src/hunspell/src/tools/hunspell.cxx:1226,1
    - Dst: expand_tab
      Src: /src/hunspell/src/tools/hunspell.cxx:1227,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:1227,1
    - Dst: strncpyu8
      Src: /src/hunspell/src/tools/hunspell.cxx:1238,1
    - Dst: mvprintw
      Src: /src/hunspell/src/tools/hunspell.cxx:1239,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1239,1
    - Dst: strlenu8
      Src: /src/hunspell/src/tools/hunspell.cxx:1245,1
    - Dst: strncpyu8
      Src: /src/hunspell/src/tools/hunspell.cxx:1250,1
    - Dst: mvprintw
      Src: /src/hunspell/src/tools/hunspell.cxx:1251,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1251,1
    - Dst: attron
      Src: /src/hunspell/src/tools/hunspell.cxx:1252,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1253,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:1253,1
    - Dst: attroff
      Src: /src/hunspell/src/tools/hunspell.cxx:1254,1
    - Dst: mvprintw
      Src: /src/hunspell/src/tools/hunspell.cxx:1256,1
    - Dst: size
      Src: /src/hunspell/src/tools/hunspell.cxx:1257,1
    - Dst: size
      Src: /src/hunspell/src/tools/hunspell.cxx:1258,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1259,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:1259,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1261,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:1261,1
    - Dst: mvprintw
      Src: /src/hunspell/src/tools/hunspell.cxx:1268,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1268,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 5
    argNames:
    - parser
    - ' token'
    - filename
    - forbidden
    - ' wlst'
    argTypes:
    - TextParser*
    - std::string
    - char*
    - int
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1195
    functionDepth: 2
    functionLinenumber: 1195
    functionLinenumberEnd: 1270
    functionName: dialogscreen
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - std::string::substr
    - strlenu8
    - expand_tab
    - strncpyu8
    - mvprintw
    - std::string::c_str
    - chenc
    - TextParser*::get_tokenpos
    - size
    - printw
    - TextParser*::get_prevline
    - attron
    - attroff
    - clear
    - gettext
    - getmaxyx
    linkageType: ''
    returnType: void
    signature: "void dialogscreen(TextParser* parser,\n                  std::string&
      token,\n                  char* filename,\n                  int forbidden,\n
      \                 std::vector<std::string>& wlst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:1273,1
    - Dst: u8_u16
      Src: /src/hunspell/src/tools/hunspell.cxx:1275,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/tools/hunspell.cxx:1276,1
    - Dst: unicodetolower
      Src: /src/hunspell/src/tools/hunspell.cxx:1278,1
    - Dst: u16_u8
      Src: /src/hunspell/src/tools/hunspell.cxx:1283,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:1284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' token'
    - ioenc
    - langnum
    argTypes:
    - std::string
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1272
    functionDepth: 2
    functionLinenumber: 1272
    functionLinenumberEnd: 1285
    functionName: lower_first_char
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - u8_u16
    - u16_u8
    - chenc
    - unicodetolower
    linkageType: ''
    returnType: std::string
    signature: std::string lower_first_char(const std::string& token, const char*
      ioenc, int langnum)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - c
    - key
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1287
    functionDepth: 0
    functionLinenumber: 1287
    functionLinenumberEnd: 1294
    functionName: keymatch
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool keymatch(int c, const char* key)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: dialogscreen
      Src: /src/hunspell/src/tools/hunspell.cxx:1306,1
    - Dst: getch
      Src: /src/hunspell/src/tools/hunspell.cxx:1310,1
    - Dst: size
      Src: /src/hunspell/src/tools/hunspell.cxx:1314,1
    - Dst: static_cast<int>
      Src: /src/hunspell/src/tools/hunspell.cxx:1332,1
    - Dst: size
      Src: /src/hunspell/src/tools/hunspell.cxx:1332,1
    - Dst: mystrrep
      Src: /src/hunspell/src/tools/hunspell.cxx:1336,1
    - Dst: TextParser*::change_token
      Src: /src/hunspell/src/tools/hunspell.cxx:1337,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1337,1
    - Dst: TextParser*::change_token
      Src: /src/hunspell/src/tools/hunspell.cxx:1339,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1339,1
    - Dst: clear
      Src: /src/hunspell/src/tools/hunspell.cxx:1345,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1346,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1346,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1353,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1353,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1354,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1354,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1355,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1355,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1356,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1357,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1358,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1358,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1360,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1360,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1362,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1363,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1367,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1367,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1368,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1368,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1371,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1372,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1374,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1374,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1375,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1375,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1376,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1376,1
    - Dst: getch
      Src: /src/hunspell/src/tools/hunspell.cxx:1377,1
    - Dst: dialogscreen
      Src: /src/hunspell/src/tools/hunspell.cxx:1381,1
    - Dst: keymatch
      Src: /src/hunspell/src/tools/hunspell.cxx:1388,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1388,1
    - Dst: endwin
      Src: /src/hunspell/src/tools/hunspell.cxx:1392,1
    - Dst: clear
      Src: /src/hunspell/src/tools/hunspell.cxx:1393,1
    - Dst: empty
      Src: /src/hunspell/src/tools/hunspell.cxx:1394,1
    - Dst: readline
      Src: /src/hunspell/src/tools/hunspell.cxx:1397,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1397,1
    - Dst: initscr
      Src: /src/hunspell/src/tools/hunspell.cxx:1399,1
    - Dst: cbreak
      Src: /src/hunspell/src/tools/hunspell.cxx:1400,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:1404,1
    - Dst: dialogscreen
      Src: /src/hunspell/src/tools/hunspell.cxx:1405,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:1410,1
    - Dst: mystrrep
      Src: /src/hunspell/src/tools/hunspell.cxx:1412,1
    - Dst: TextParser*::change_token
      Src: /src/hunspell/src/tools/hunspell.cxx:1414,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1414,1
    - Dst: keymatch
      Src: /src/hunspell/src/tools/hunspell.cxx:1421,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1421,1
    - Dst: keymatch
      Src: /src/hunspell/src/tools/hunspell.cxx:1422,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1422,1
    - Dst: lower_first_char
      Src: /src/hunspell/src/tools/hunspell.cxx:1427,1
    - Dst: Hunspell*::get_langnum
      Src: /src/hunspell/src/tools/hunspell.cxx:1427,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/tools/hunspell.cxx:1428,1
    - Dst: std::move
      Src: /src/hunspell/src/tools/hunspell.cxx:1428,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1432,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1434,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1434,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1438,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/hunspell.cxx:1440,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1442,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1443,1
    - Dst: basename
      Src: /src/hunspell/src/tools/hunspell.cxx:1443,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1445,1
    - Dst: save_privdic
      Src: /src/hunspell/src/tools/hunspell.cxx:1447,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/tools/hunspell.cxx:1447,1
    - Dst: std::vector::clear
      Src: /src/hunspell/src/tools/hunspell.cxx:1448,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1450,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1450,1
    - Dst: keymatch
      Src: /src/hunspell/src/tools/hunspell.cxx:1457,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1457,1
    - Dst: putdic
      Src: /src/hunspell/src/tools/hunspell.cxx:1459,1
    - Dst: keymatch
      Src: /src/hunspell/src/tools/hunspell.cxx:1465,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1465,1
    - Dst: std::string::find_last_of
      Src: /src/hunspell/src/tools/hunspell.cxx:1469,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/tools/hunspell.cxx:1471,1
    - Dst: endwin
      Src: /src/hunspell/src/tools/hunspell.cxx:1475,1
    - Dst: empty
      Src: /src/hunspell/src/tools/hunspell.cxx:1477,1
    - Dst: readline
      Src: /src/hunspell/src/tools/hunspell.cxx:1480,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1480,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:1483,1
    - Dst: initscr
      Src: /src/hunspell/src/tools/hunspell.cxx:1485,1
    - Dst: cbreak
      Src: /src/hunspell/src/tools/hunspell.cxx:1486,1
    - Dst: dialogscreen
      Src: /src/hunspell/src/tools/hunspell.cxx:1488,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/tools/hunspell.cxx:1492,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:1493,1
    - Dst: initscr
      Src: /src/hunspell/src/tools/hunspell.cxx:1496,1
    - Dst: cbreak
      Src: /src/hunspell/src/tools/hunspell.cxx:1497,1
    - Dst: dialogscreen
      Src: /src/hunspell/src/tools/hunspell.cxx:1499,1
    - Dst: refresh
      Src: /src/hunspell/src/tools/hunspell.cxx:1500,1
    - Dst: endwin
      Src: /src/hunspell/src/tools/hunspell.cxx:1503,1
    - Dst: clear
      Src: /src/hunspell/src/tools/hunspell.cxx:1504,1
    - Dst: empty
      Src: /src/hunspell/src/tools/hunspell.cxx:1505,1
    - Dst: readline
      Src: /src/hunspell/src/tools/hunspell.cxx:1508,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1508,1
    - Dst: initscr
      Src: /src/hunspell/src/tools/hunspell.cxx:1511,1
    - Dst: cbreak
      Src: /src/hunspell/src/tools/hunspell.cxx:1512,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:1516,1
    - Dst: dialogscreen
      Src: /src/hunspell/src/tools/hunspell.cxx:1517,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:1522,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1525,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1526,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1527,1
    - Dst: putdic
      Src: /src/hunspell/src/tools/hunspell.cxx:1529,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/tools/hunspell.cxx:1530,1
    - Dst: std::string::clear
      Src: /src/hunspell/src/tools/hunspell.cxx:1532,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1533,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1534,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1535,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1536,1
    - Dst: putdic
      Src: /src/hunspell/src/tools/hunspell.cxx:1537,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/tools/hunspell.cxx:1538,1
    - Dst: std::move
      Src: /src/hunspell/src/tools/hunspell.cxx:1538,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1543,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1545,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1545,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1549,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/hunspell.cxx:1551,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1553,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1554,1
    - Dst: basename
      Src: /src/hunspell/src/tools/hunspell.cxx:1554,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1556,1
    - Dst: save_privdic
      Src: /src/hunspell/src/tools/hunspell.cxx:1558,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/tools/hunspell.cxx:1558,1
    - Dst: std::vector::clear
      Src: /src/hunspell/src/tools/hunspell.cxx:1559,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1561,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1561,1
    - Dst: dialogscreen
      Src: /src/hunspell/src/tools/hunspell.cxx:1566,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1567,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1567,1
    - Dst: getch
      Src: /src/hunspell/src/tools/hunspell.cxx:1569,1
    - Dst: dialogscreen
      Src: /src/hunspell/src/tools/hunspell.cxx:1570,1
    - Dst: keymatch
      Src: /src/hunspell/src/tools/hunspell.cxx:1578,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1578,1
    - Dst: keymatch
      Src: /src/hunspell/src/tools/hunspell.cxx:1584,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1584,1
    - Dst: printw
      Src: /src/hunspell/src/tools/hunspell.cxx:1586,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1587,1
    - Dst: keymatch
      Src: /src/hunspell/src/tools/hunspell.cxx:1590,1
    - Dst: getch
      Src: /src/hunspell/src/tools/hunspell.cxx:1590,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1590,1
    - Dst: dialogscreen
      Src: /src/hunspell/src/tools/hunspell.cxx:1593,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 199
    argCount: 6
    argNames:
    - parser
    - pMS
    - ' token'
    - filename
    - ' wlst'
    - forbidden
    argTypes:
    - TextParser*
    - Hunspell*
    - std::string
    - char*
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1297
    functionDepth: 3
    functionLinenumber: 1297
    functionLinenumberEnd: 1603
    functionName: dialog
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - mystrrep
    - std::string::assign
    - readline
    - std::string::size
    - std::string::c_str
    - TextParser*::change_token
    - static_cast<int>
    - Hunspell*::get_langnum
    - std::string::substr
    - cbreak
    - std::vector::clear
    - putdic
    - std::string::append
    - basename
    - refresh
    - initscr
    - std::string::resize
    - std::move
    - std::vector::push_back
    - keymatch
    - empty
    - getch
    - lower_first_char
    - free
    - fprintf
    - save_privdic
    - std::string::find_last_of
    - size
    - dialogscreen
    - printw
    - endwin
    - clear
    - std::string::clear
    - c_str
    - gettext
    linkageType: ''
    returnType: int
    signature: "int dialog(TextParser* parser,\n           Hunspell* pMS,\n           std::string&
      token,\n           char* filename,\n           std::vector<std::string>& wlst,\n
      \          int forbidden)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TextParser*::next_token
      Src: /src/hunspell/src/tools/hunspell.cxx:1613,1
    - Dst: check
      Src: /src/hunspell/src/tools/hunspell.cxx:1614,1
    - Dst: TextParser*::get_word
      Src: /src/hunspell/src/tools/hunspell.cxx:1614,1
    - Dst: dialogscreen
      Src: /src/hunspell/src/tools/hunspell.cxx:1616,1
    - Dst: refresh
      Src: /src/hunspell/src/tools/hunspell.cxx:1617,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:1618,1
    - Dst: TextParser*::get_word
      Src: /src/hunspell/src/tools/hunspell.cxx:1618,1
    - Dst: suggest
      Src: /src/hunspell/src/tools/hunspell.cxx:1619,1
    - Dst: mystrrep
      Src: /src/hunspell/src/tools/hunspell.cxx:1619,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/tools/hunspell.cxx:1620,1
    - Dst: dialog
      Src: /src/hunspell/src/tools/hunspell.cxx:1621,1
    - Dst: chenc
      Src: /src/hunspell/src/tools/hunspell.cxx:1624,1
    - Dst: dialog
      Src: /src/hunspell/src/tools/hunspell.cxx:1626,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1634,1
    - Dst: TextParser*::get_line
      Src: /src/hunspell/src/tools/hunspell.cxx:1634,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - parser
    - pMS
    - filename
    - tempfile
    argTypes:
    - TextParser*
    - Hunspell**
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1605
    functionDepth: 4
    functionLinenumber: 1605
    functionLinenumberEnd: 1636
    functionName: interactive_line
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - TextParser*::next_token
    - mystrrep
    - std::vector::empty
    - dialog
    - check
    - chenc
    - fprintf
    - TextParser*::get_line
    - suggest
    - dialogscreen
    - refresh
    - TextParser*::get_word
    linkageType: ''
    returnType: int
    signature: "int interactive_line(TextParser* parser,\n                     Hunspell**
      pMS,\n                     char* filename,\n                     FILE* tempfile)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/hunspell/src/tools/hunspell.cxx:1644,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:1646,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1646,1
    - Dst: endwin
      Src: /src/hunspell/src/tools/hunspell.cxx:1647,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:1648,1
    - Dst: basename
      Src: /src/hunspell/src/tools/hunspell.cxx:1654,1
    - Dst: get_parser
      Src: /src/hunspell/src/tools/hunspell.cxx:1655,1
    - Dst: is_zipped_odf
      Src: /src/hunspell/src/tools/hunspell.cxx:1658,1
    - Dst: mymkdtemp
      Src: /src/hunspell/src/tools/hunspell.cxx:1661,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:1663,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1663,1
    - Dst: endwin
      Src: /src/hunspell/src/tools/hunspell.cxx:1664,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:1665,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hunspell.cxx:1667,1
    - Dst: secure_filename
      Src: /src/hunspell/src/tools/hunspell.cxx:1668,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1669,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1669,1
    - Dst: endwin
      Src: /src/hunspell/src/tools/hunspell.cxx:1670,1
    - Dst: system
      Src: /src/hunspell/src/tools/hunspell.cxx:1671,1
    - Dst: std::string
      Src: /src/hunspell/src/tools/hunspell.cxx:1671,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1671,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:1672,1
    - Dst: system
      Src: /src/hunspell/src/tools/hunspell.cxx:1680,1
    - Dst: std::ostringstream::str
      Src: /src/hunspell/src/tools/hunspell.cxx:1680,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:1681,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1681,1
    - Dst: endwin
      Src: /src/hunspell/src/tools/hunspell.cxx:1682,1
    - Dst: system
      Src: /src/hunspell/src/tools/hunspell.cxx:1683,1
    - Dst: std::string
      Src: /src/hunspell/src/tools/hunspell.cxx:1683,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1683,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:1684,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1688,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/hunspell.cxx:1689,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1689,1
    - Dst: fopen
      Src: /src/hunspell/src/tools/hunspell.cxx:1690,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:1692,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1692,1
    - Dst: endwin
      Src: /src/hunspell/src/tools/hunspell.cxx:1693,1
    - Dst: system
      Src: /src/hunspell/src/tools/hunspell.cxx:1694,1
    - Dst: std::string
      Src: /src/hunspell/src/tools/hunspell.cxx:1694,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1694,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:1695,1
    - Dst: tmpfile
      Src: /src/hunspell/src/tools/hunspell.cxx:1699,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:1702,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1702,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hunspell.cxx:1704,1
    - Dst: endwin
      Src: /src/hunspell/src/tools/hunspell.cxx:1705,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:1706,1
    - Dst: fgets
      Src: /src/hunspell/src/tools/hunspell.cxx:1709,1
    - Dst: TextParser*::put_line
      Src: /src/hunspell/src/tools/hunspell.cxx:1711,1
    - Dst: interactive_line
      Src: /src/hunspell/src/tools/hunspell.cxx:1712,1
    - Dst: clear
      Src: /src/hunspell/src/tools/hunspell.cxx:1716,1
    - Dst: refresh
      Src: /src/hunspell/src/tools/hunspell.cxx:1717,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hunspell.cxx:1718,1
    - Dst: remove
      Src: /src/hunspell/src/tools/hunspell.cxx:1720,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:1721,1
    - Dst: system
      Src: /src/hunspell/src/tools/hunspell.cxx:1725,1
    - Dst: std::ostringstream::str
      Src: /src/hunspell/src/tools/hunspell.cxx:1725,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:1726,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:1728,1
    - Dst: endwin
      Src: /src/hunspell/src/tools/hunspell.cxx:1730,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:1731,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1738,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hunspell.cxx:1741,1
    - Dst: rewind
      Src: /src/hunspell/src/tools/hunspell.cxx:1744,1
    - Dst: fopen
      Src: /src/hunspell/src/tools/hunspell.cxx:1745,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:1747,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1747,1
    - Dst: fread
      Src: /src/hunspell/src/tools/hunspell.cxx:1750,1
    - Dst: fwrite
      Src: /src/hunspell/src/tools/hunspell.cxx:1751,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:1752,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hunspell.cxx:1754,1
    - Dst: secure_filename
      Src: /src/hunspell/src/tools/hunspell.cxx:1755,1
    - Dst: system
      Src: /src/hunspell/src/tools/hunspell.cxx:1758,1
    - Dst: std::ostringstream::str
      Src: /src/hunspell/src/tools/hunspell.cxx:1758,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:1759,1
    - Dst: remove
      Src: /src/hunspell/src/tools/hunspell.cxx:1765,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:1766,1
    - Dst: system
      Src: /src/hunspell/src/tools/hunspell.cxx:1770,1
    - Dst: std::ostringstream::str
      Src: /src/hunspell/src/tools/hunspell.cxx:1770,1
    - Dst: perror
      Src: /src/hunspell/src/tools/hunspell.cxx:1771,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:1773,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hunspell.cxx:1777,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 105
    argCount: 3
    argNames:
    - pMS
    - filename
    - format
    argTypes:
    - Hunspell**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1638
    functionDepth: 5
    functionLinenumber: 1638
    functionLinenumberEnd: 1778
    functionName: interactive_interface
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - rewind
    - std::string::c_str
    - interactive_line
    - fread
    - fopen
    - tmpfile
    - exit
    - fwrite
    - mymkdtemp
    - system
    - std::string
    - fclose
    - std::string::append
    - basename
    - get_parser
    - fgets
    - refresh
    - TextParser*::put_line
    - std::ostringstream::str
    - is_zipped_odf
    - free
    - perror
    - fprintf
    - endwin
    - clear
    - remove
    - c_str
    - mystrdup
    - secure_filename
    - gettext
    linkageType: ''
    returnType: void
    signature: void interactive_interface(Hunspell** pMS, char* filename, int format)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::assign
      Src: /src/hunspell/src/tools/hunspell.cxx:1785,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1786,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1787,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1788,1
    - Dst: exist
      Src: /src/hunspell/src/tools/hunspell.cxx:1789,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1789,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/hunspell.cxx:1790,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1790,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1791,1
    - Dst: exist
      Src: /src/hunspell/src/tools/hunspell.cxx:1792,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1792,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/tools/hunspell.cxx:1793,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/hunspell.cxx:1793,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/hunspell.cxx:1793,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/hunspell.cxx:1794,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - dir
    - len
    - name
    - ext
    argTypes:
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1782
    functionDepth: 1
    functionLinenumber: 1782
    functionLinenumberEnd: 1797
    functionName: exist2
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - std::string::assign
    - std::string::size
    - std::string::erase
    - std::string::c_str
    - mystrdup
    - exist
    - std::string::append
    - strlen
    linkageType: ''
    returnType: char
    signature: char * exist2(char* dir, int len, const char* name, const char* ext)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::string::assign
      Src: /src/hunspell/src/tools/hunspell.cxx:1802,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:1803,1
    - Dst: opendir
      Src: /src/hunspell/src/tools/hunspell.cxx:1805,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1805,1
    - Dst: readdir
      Src: /src/hunspell/src/tools/hunspell.cxx:1809,1
    - Dst: stat
      Src: /src/hunspell/src/tools/hunspell.cxx:1815,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1815,1
    - Dst: S_ISDIR
      Src: /src/hunspell/src/tools/hunspell.cxx:1817,1
    - Dst: listdicpath
      Src: /src/hunspell/src/tools/hunspell.cxx:1819,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/hunspell.cxx:1819,1
    - Dst: strncmp
      Src: /src/hunspell/src/tools/hunspell.cxx:1822,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/hunspell.cxx:1824,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:1825,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:1826,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1829,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1829,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1829,1
    - Dst: closedir
      Src: /src/hunspell/src/tools/hunspell.cxx:1832,1
    - Dst: FindFirstFile
      Src: /src/hunspell/src/tools/hunspell.cxx:1835,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1835,1
    - Dst: listdicpath
      Src: /src/hunspell/src/tools/hunspell.cxx:1847,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/hunspell.cxx:1847,1
    - Dst: strncmp
      Src: /src/hunspell/src/tools/hunspell.cxx:1850,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/hunspell.cxx:1852,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:1853,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:1854,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1857,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1857,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:1857,1
    - Dst: FindNextFile
      Src: /src/hunspell/src/tools/hunspell.cxx:1859,1
    - Dst: FindClose
      Src: /src/hunspell/src/tools/hunspell.cxx:1860,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 42
    argCount: 2
    argNames:
    - dir
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1799
    functionDepth: 1
    functionLinenumber: 1799
    functionLinenumberEnd: 1863
    functionName: listdicpath
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 1
    functionsReached:
    - std::string::assign
    - FindNextFile
    - std::string::size
    - strncmp
    - readdir
    - c_str
    - opendir
    - std::string::c_str
    - FindFirstFile
    - closedir
    - fprintf
    - strcmp
    - std::string::append
    - S_ISDIR
    - listdicpath
    - strlen
    - stat
    - FindClose
    linkageType: ''
    returnType: int
    signature: int listdicpath(char* dir, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: exist2
      Src: /src/hunspell/src/tools/hunspell.cxx:1873,1
    - Dst: listdicpath
      Src: /src/hunspell/src/tools/hunspell.cxx:1875,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - begin
    - name
    - ext
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1866
    functionDepth: 2
    functionLinenumber: 1866
    functionLinenumberEnd: 1882
    functionName: search
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 0
    functionsReached:
    - exist2
    - listdicpath
    linkageType: ''
    returnType: char
    signature: char * search(char* begin, char* name, const char* ext)
  - BBCount: 84
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/hunspell/src/tools/hunspell.cxx:1893,1
    - Dst: nl_langinfo
      Src: /src/hunspell/src/tools/hunspell.cxx:1896,1
    - Dst: textdomain
      Src: /src/hunspell/src/tools/hunspell.cxx:1898,1
    - Dst: rl_set_key
      Src: /src/hunspell/src/tools/hunspell.cxx:1901,1
    - Dst: rl_get_keymap
      Src: /src/hunspell/src/tools/hunspell.cxx:1901,1
    - Dst: rl_bind_key
      Src: /src/hunspell/src/tools/hunspell.cxx:1902,1
    - Dst: log
      Src: /src/hunspell/src/tools/hunspell.cxx:1906,1
    - Dst: log
      Src: /src/hunspell/src/tools/hunspell.cxx:1911,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:1916,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/hunspell.cxx:1917,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:1921,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/hunspell.cxx:1922,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:1930,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:1932,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:1934,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:1936,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:1938,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:1938,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1939,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1939,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1940,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1940,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1942,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1942,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1944,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1944,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1945,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1945,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1947,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1949,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1951,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1952,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1953,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1953,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1954,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1954,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1955,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1955,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1956,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1956,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1957,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1957,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1958,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1958,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1959,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1959,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1960,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1961,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1962,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1962,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1963,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1965,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1967,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1967,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1968,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1969,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1970,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1972,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1973,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1973,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1974,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1974,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1975,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1975,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1976,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1977,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1978,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1978,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1979,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1980,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1981,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1981,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1983,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1983,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:1984,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:1986,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:2002,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:2002,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:2003,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2004,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2004,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2005,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:2006,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:2006,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:2007,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2008,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:2009,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:2010,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:2015,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:2015,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:2021,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2022,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2024,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2033,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2035,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2043,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2046,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2048,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2050,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2052,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2054,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2056,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2058,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2066,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2075,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2083,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2091,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2099,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2107,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2109,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2111,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2113,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2115,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2117,1
    - Dst: exist
      Src: /src/hunspell/src/tools/hunspell.cxx:2122,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:2123,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:2123,1
    - Dst: endwin
      Src: /src/hunspell/src/tools/hunspell.cxx:2125,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:2127,1
    - Dst: getenv
      Src: /src/hunspell/src/tools/hunspell.cxx:2143,1
    - Dst: getenv
      Src: /src/hunspell/src/tools/hunspell.cxx:2151,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/hunspell.cxx:2153,1
    - Dst: strchr
      Src: /src/hunspell/src/tools/hunspell.cxx:2154,1
    - Dst: strchr
      Src: /src/hunspell/src/tools/hunspell.cxx:2157,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2165,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/hunspell.cxx:2165,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:2166,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/hunspell.cxx:2167,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/hunspell.cxx:2171,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/hunspell.cxx:2174,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:2180,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:2181,1
    - Dst: getenv
      Src: /src/hunspell/src/tools/hunspell.cxx:2182,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:2183,1
    - Dst: getenv
      Src: /src/hunspell/src/tools/hunspell.cxx:2183,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:2185,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:2191,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:2193,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:2194,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/hunspell.cxx:2196,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:2196,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:2200,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:2200,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:2201,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:2203,1
    - Dst: search
      Src: /src/hunspell/src/tools/hunspell.cxx:2205,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/hunspell.cxx:2209,1
    - Dst: getenv
      Src: /src/hunspell/src/tools/hunspell.cxx:2209,1
    - Dst: strchr
      Src: /src/hunspell/src/tools/hunspell.cxx:2211,1
    - Dst: search
      Src: /src/hunspell/src/tools/hunspell.cxx:2214,1
    - Dst: search
      Src: /src/hunspell/src/tools/hunspell.cxx:2215,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:2218,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:2218,1
    - Dst: Hunspell::Hunspell
      Src: /src/hunspell/src/tools/hunspell.cxx:2220,1
    - Dst: get_dict_encoding
      Src: /src/hunspell/src/tools/hunspell.cxx:2221,1
    - Dst: strchr
      Src: /src/hunspell/src/tools/hunspell.cxx:2225,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:2228,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:2229,1
    - Dst: search
      Src: /src/hunspell/src/tools/hunspell.cxx:2230,1
    - Dst: search
      Src: /src/hunspell/src/tools/hunspell.cxx:2231,1
    - Dst: Hunspell::Hunspell
      Src: /src/hunspell/src/tools/hunspell.cxx:2234,1
    - Dst: get_dict_encoding
      Src: /src/hunspell/src/tools/hunspell.cxx:2235,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:2238,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:2238,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:2241,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:2241,1
    - Dst: add_dic
      Src: /src/hunspell/src/tools/hunspell.cxx:2244,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:2247,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:2247,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:2250,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:2254,1
    - Dst: set_trace_callback
      Src: /src/hunspell/src/tools/hunspell.cxx:2259,1
    - Dst: const_cast<char*>
      Src: /src/hunspell/src/tools/hunspell.cxx:2260,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/tools/hunspell.cxx:2265,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:2267,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:2269,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:2270,1
    - Dst: basename
      Src: /src/hunspell/src/tools/hunspell.cxx:2270,1
    - Dst: load_privdic
      Src: /src/hunspell/src/tools/hunspell.cxx:2271,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:2271,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/tools/hunspell.cxx:2273,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:2274,1
    - Dst: basename
      Src: /src/hunspell/src/tools/hunspell.cxx:2274,1
    - Dst: load_privdic
      Src: /src/hunspell/src/tools/hunspell.cxx:2275,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:2275,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/tools/hunspell.cxx:2277,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:2279,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hunspell.cxx:2281,1
    - Dst: load_privdic
      Src: /src/hunspell/src/tools/hunspell.cxx:2282,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hunspell.cxx:2282,1
    - Dst: load_privdic
      Src: /src/hunspell/src/tools/hunspell.cxx:2289,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:2298,1
    - Dst: fflush
      Src: /src/hunspell/src/tools/hunspell.cxx:2299,1
    - Dst: pipe_interface
      Src: /src/hunspell/src/tools/hunspell.cxx:2303,1
    - Dst: exist
      Src: /src/hunspell/src/tools/hunspell.cxx:2306,1
    - Dst: fopen
      Src: /src/hunspell/src/tools/hunspell.cxx:2309,1
    - Dst: pipe_interface
      Src: /src/hunspell/src/tools/hunspell.cxx:2310,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hunspell.cxx:2311,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:2313,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:2313,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:2314,1
    - Dst: initscr
      Src: /src/hunspell/src/tools/hunspell.cxx:2319,1
    - Dst: cbreak
      Src: /src/hunspell/src/tools/hunspell.cxx:2320,1
    - Dst: noecho
      Src: /src/hunspell/src/tools/hunspell.cxx:2321,1
    - Dst: nonl
      Src: /src/hunspell/src/tools/hunspell.cxx:2322,1
    - Dst: intrflush
      Src: /src/hunspell/src/tools/hunspell.cxx:2323,1
    - Dst: exist
      Src: /src/hunspell/src/tools/hunspell.cxx:2326,1
    - Dst: interactive_interface
      Src: /src/hunspell/src/tools/hunspell.cxx:2328,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:2330,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:2330,1
    - Dst: endwin
      Src: /src/hunspell/src/tools/hunspell.cxx:2331,1
    - Dst: exit
      Src: /src/hunspell/src/tools/hunspell.cxx:2332,1
    - Dst: clear
      Src: /src/hunspell/src/tools/hunspell.cxx:2336,1
    - Dst: refresh
      Src: /src/hunspell/src/tools/hunspell.cxx:2337,1
    - Dst: endwin
      Src: /src/hunspell/src/tools/hunspell.cxx:2338,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hunspell.cxx:2340,1
    - Dst: gettext
      Src: /src/hunspell/src/tools/hunspell.cxx:2342,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:2348,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:2350,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:2352,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:2354,1
    - Dst: free
      Src: /src/hunspell/src/tools/hunspell.cxx:2356,1
    CyclomaticComplexity: 106
    EdgeCount: 106
    ICount: 331
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 1884
    functionDepth: 6
    functionLinenumber: 1884
    functionLinenumberEnd: 2360
    functionName: main
    functionSourceFile: /src/hunspell/src/tools/hunspell.cxx
    functionUses: 1
    functionsReached:
    - textdomain
    - std::string::assign
    - rl_set_key
    - pipe_interface
    - set_trace_callback
    - std::string::c_str
    - search
    - get_dict_encoding
    - fopen
    - interactive_interface
    - exit
    - cbreak
    - strchr
    - const_cast<char*>
    - rl_bind_key
    - strcmp
    - std::string::append
    - basename
    - fclose
    - load_privdic
    - refresh
    - initscr
    - setlocale
    - intrflush
    - free
    - fprintf
    - exist
    - fflush
    - endwin
    - clear
    - rl_get_keymap
    - log
    - nl_langinfo
    - Hunspell::Hunspell
    - getenv
    - mystrdup
    - noecho
    - gettext
    - add_dic
    - nonl
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/hunspell/src/tools/analyze.cxx:53,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/analyze.cxx:54,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/analyze.cxx:55,1
    - Dst: exit
      Src: /src/hunspell/src/tools/analyze.cxx:56,1
    - Dst: fopen
      Src: /src/hunspell/src/tools/analyze.cxx:61,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/analyze.cxx:63,1
    - Dst: exit
      Src: /src/hunspell/src/tools/analyze.cxx:64,1
    - Dst: Hunspell::Hunspell
      Src: /src/hunspell/src/tools/analyze.cxx:67,1
    - Dst: fgets
      Src: /src/hunspell/src/tools/analyze.cxx:69,1
    - Dst: strcspn
      Src: /src/hunspell/src/tools/analyze.cxx:70,1
    - Dst: strchr
      Src: /src/hunspell/src/tools/analyze.cxx:74,1
    - Dst: Hunspell*::generate
      Src: /src/hunspell/src/tools/analyze.cxx:77,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/analyze.cxx:79,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/analyze.cxx:79,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/tools/analyze.cxx:81,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/analyze.cxx:82,1
    - Dst: Hunspell*::spell
      Src: /src/hunspell/src/tools/analyze.cxx:84,1
    - Dst: std::string
      Src: /src/hunspell/src/tools/analyze.cxx:84,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/analyze.cxx:85,1
    - Dst: Hunspell*::analyze
      Src: /src/hunspell/src/tools/analyze.cxx:87,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/analyze.cxx:89,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/analyze.cxx:89,1
    - Dst: Hunspell*::stem
      Src: /src/hunspell/src/tools/analyze.cxx:91,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/analyze.cxx:93,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/analyze.cxx:93,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/analyze.cxx:96,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/analyze.cxx:101,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 103
    functionName: main
    functionSourceFile: /src/hunspell/src/tools/analyze.cxx
    functionUses: 1
    functionsReached:
    - Hunspell*::analyze
    - std::vector::empty
    - exit
    - c_str
    - Hunspell::Hunspell
    - strcspn
    - strchr
    - Hunspell*::spell
    - fprintf
    - std::string
    - Hunspell*::generate
    - fclose
    - fgets
    - fopen
    - Hunspell*::stem
    linkageType: ''
    returnType: int
    signature: int main(int, char** argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/hunspell/src/tools/parserfuzzer.cxx:59,1
    - Dst: TextParser::set_url_checking
      Src: /src/hunspell/src/tools/parserfuzzer.cxx:75,1
    - Dst: TextParser::put_line
      Src: /src/hunspell/src/tools/parserfuzzer.cxx:76,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/parserfuzzer.cxx:76,1
    - Dst: TextParser::next_token
      Src: /src/hunspell/src/tools/parserfuzzer.cxx:80,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/tools/parserfuzzer.cxx:82,1
    - Dst: TextParser::get_line
      Src: /src/hunspell/src/tools/parserfuzzer.cxx:84,1
    - Dst: TextParser::change_token
      Src: /src/hunspell/src/tools/parserfuzzer.cxx:86,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/tools/parserfuzzer.cxx:86,1
    - Dst: c_str
      Src: /src/hunspell/src/tools/parserfuzzer.cxx:86,1
    - Dst: TextParser::next_token
      Src: /src/hunspell/src/tools/parserfuzzer.cxx:90,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 96
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/hunspell/src/tools/parserfuzzer.cxx
    functionUses: 0
    functionsReached:
    - TextParser::set_url_checking
    - TextParser::put_line
    - std::vector::empty
    - c_str
    - TextParser::change_token
    - std::vector::size
    - std::vector::emplace_back
    - std::string::c_str
    - TextParser::next_token
    - TextParser::get_line
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const char* data, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/hunspell/src/tools/morphfuzzer.cxx:43,1
    - Dst: static_cast<unsigned char>
      Src: /src/hunspell/src/tools/morphfuzzer.cxx:54,1
    - Dst: std::ofstream::write
      Src: /src/hunspell/src/tools/morphfuzzer.cxx:65,1
    - Dst: std::ofstream::close
      Src: /src/hunspell/src/tools/morphfuzzer.cxx:66,1
    - Dst: std::ofstream::write
      Src: /src/hunspell/src/tools/morphfuzzer.cxx:70,1
    - Dst: std::ofstream::close
      Src: /src/hunspell/src/tools/morphfuzzer.cxx:71,1
    - Dst: Hunspell::analyze
      Src: /src/hunspell/src/tools/morphfuzzer.cxx:75,1
    - Dst: Hunspell::stem
      Src: /src/hunspell/src/tools/morphfuzzer.cxx:76,1
    - Dst: Hunspell::generate
      Src: /src/hunspell/src/tools/morphfuzzer.cxx:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 80
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/hunspell/src/tools/morphfuzzer.cxx
    functionUses: 0
    functionsReached:
    - Hunspell::analyze
    - Hunspell::stem
    - std::ofstream::write
    - Hunspell::generate
    - static_cast<unsigned char>
    - std::ofstream::close
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const char* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::istreambuf_iterator<char>
      Src: /src/hunspell/src/tools/morphfuzzer.cxx:89,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/hunspell/src/tools/morphfuzzer.cxx:89,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/hunspell/src/tools/morphfuzzer.cxx:90,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/hunspell/src/tools/morphfuzzer.cxx:90,1
    - Dst: Hunspell::analyze
      Src: /src/hunspell/src/tools/morphfuzzer.cxx:93,1
    - Dst: Hunspell::stem
      Src: /src/hunspell/src/tools/morphfuzzer.cxx:94,1
    - Dst: Hunspell::generate
      Src: /src/hunspell/src/tools/morphfuzzer.cxx:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 97
    functionName: main
    functionSourceFile: /src/hunspell/src/tools/morphfuzzer.cxx
    functionUses: 1
    functionsReached:
    - Hunspell::generate
    - Hunspell::analyze
    - Hunspell::stem
    - std::istreambuf_iterator<char>
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/hunspell/src/tools/affdicfuzzer.cxx:38,1
    - Dst: std::ofstream::write
      Src: /src/hunspell/src/tools/affdicfuzzer.cxx:45,1
    - Dst: std::ofstream::close
      Src: /src/hunspell/src/tools/affdicfuzzer.cxx:46,1
    - Dst: std::ofstream::write
      Src: /src/hunspell/src/tools/affdicfuzzer.cxx:55,1
    - Dst: std::ofstream::close
      Src: /src/hunspell/src/tools/affdicfuzzer.cxx:56,1
    - Dst: std::ofstream::write
      Src: /src/hunspell/src/tools/affdicfuzzer.cxx:60,1
    - Dst: std::ofstream::close
      Src: /src/hunspell/src/tools/affdicfuzzer.cxx:61,1
    - Dst: Hunspell::spell
      Src: /src/hunspell/src/tools/affdicfuzzer.cxx:65,1
    - Dst: Hunspell::suggest
      Src: /src/hunspell/src/tools/affdicfuzzer.cxx:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 69
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/hunspell/src/tools/affdicfuzzer.cxx
    functionUses: 0
    functionsReached:
    - Hunspell::suggest
    - std::ofstream::write
    - Hunspell::spell
    - static_cast<unsigned char>
    - std::ofstream::close
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const char* data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::rdbuf
      Src: /src/hunspell/src/tools/affdicfuzzer.cxx:79,1
    - Dst: std::ostringstream::str
      Src: /src/hunspell/src/tools/affdicfuzzer.cxx:80,1
    - Dst: std::ifstream::close
      Src: /src/hunspell/src/tools/affdicfuzzer.cxx:82,1
    - Dst: Hunspell::spell
      Src: /src/hunspell/src/tools/affdicfuzzer.cxx:86,1
    - Dst: Hunspell::suggest
      Src: /src/hunspell/src/tools/affdicfuzzer.cxx:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 90
    functionName: main
    functionSourceFile: /src/hunspell/src/tools/affdicfuzzer.cxx
    functionUses: 1
    functionsReached:
    - Hunspell::suggest
    - std::ostringstream::str
    - Hunspell::spell
    - std::ifstream::close
    - std::ifstream::rdbuf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/hunspell/src/tools/persdiccrash.cxx:8,1
    - Dst: Hunspell::add_with_affix
      Src: /src/hunspell/src/tools/persdiccrash.cxx:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 22
    functionName: main
    functionSourceFile: /src/hunspell/src/tools/persdiccrash.cxx
    functionUses: 1
    functionsReached:
    - fprintf
    - Hunspell::add_with_affix
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/munch.cxx:77,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:79,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:80,1
    - Dst: exit
      Src: /src/hunspell/src/tools/munch.cxx:81,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/munch.cxx:84,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:86,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:87,1
    - Dst: exit
      Src: /src/hunspell/src/tools/munch.cxx:88,1
    - Dst: fopen
      Src: /src/hunspell/src/tools/munch.cxx:92,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:94,1
    - Dst: exit
      Src: /src/hunspell/src/tools/munch.cxx:95,1
    - Dst: parse_aff_file
      Src: /src/hunspell/src/tools/munch.cxx:104,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:105,1
    - Dst: exit
      Src: /src/hunspell/src/tools/munch.cxx:106,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/munch.cxx:108,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:110,1
    - Dst: fopen
      Src: /src/hunspell/src/tools/munch.cxx:115,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:117,1
    - Dst: exit
      Src: /src/hunspell/src/tools/munch.cxx:118,1
    - Dst: load_tables
      Src: /src/hunspell/src/tools/munch.cxx:121,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:122,1
    - Dst: exit
      Src: /src/hunspell/src/tools/munch.cxx:123,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/munch.cxx:125,1
    - Dst: aff_chk
      Src: /src/hunspell/src/tools/munch.cxx:133,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/munch.cxx:133,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/munch.cxx:159,1
    - Dst: strcpy
      Src: /src/hunspell/src/tools/munch.cxx:167,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/munch.cxx:171,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/munch.cxx:177,1
    - Dst: expand_rootword
      Src: /src/hunspell/src/tools/munch.cxx:182,1
    - Dst: lookup
      Src: /src/hunspell/src/tools/munch.cxx:184,1
    - Dst: free
      Src: /src/hunspell/src/tools/munch.cxx:186,1
    - Dst: add_affix_char
      Src: /src/hunspell/src/tools/munch.cxx:205,1
    - Dst: add_affix_char
      Src: /src/hunspell/src/tools/munch.cxx:207,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:229,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:238,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:240,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 128
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 246
    functionName: main
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 1
    functionsReached:
    - exit
    - lookup
    - add_affix_char
    - expand_rootword
    - mystrdup
    - fprintf
    - parse_aff_file
    - load_tables
    - free
    - fclose
    - strlen
    - strcpy
    - aff_chk
    - fopen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/hunspell/src/tools/munch.cxx:255,1
    - Dst: fgets
      Src: /src/hunspell/src/tools/munch.cxx:257,1
    - Dst: mychomp
      Src: /src/hunspell/src/tools/munch.cxx:258,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:260,1
    - Dst: strncmp
      Src: /src/hunspell/src/tools/munch.cxx:261,1
    - Dst: strncmp
      Src: /src/hunspell/src/tools/munch.cxx:263,1
    - Dst: mystrsep
      Src: /src/hunspell/src/tools/munch.cxx:270,1
    - Dst: atoi
      Src: /src/hunspell/src/tools/munch.cxx:285,1
    - Dst: AffixMgr::setcminmax
      Src: /src/hunspell/src/tools/munch.cxx:286,1
    - Dst: static_cast<size_t>
      Src: /src/hunspell/src/tools/munch.cxx:287,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:288,1
    - Dst: calloc
      Src: /src/hunspell/src/tools/munch.cxx:291,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:294,1
    - Dst: free
      Src: /src/hunspell/src/tools/munch.cxx:303,1
    - Dst: fgets
      Src: /src/hunspell/src/tools/munch.cxx:308,1
    - Dst: mychomp
      Src: /src/hunspell/src/tools/munch.cxx:310,1
    - Dst: mystrsep
      Src: /src/hunspell/src/tools/munch.cxx:313,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/munch.cxx:326,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/munch.cxx:327,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/munch.cxx:328,1
    - Dst: free
      Src: /src/hunspell/src/tools/munch.cxx:329,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/munch.cxx:330,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/munch.cxx:336,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/munch.cxx:337,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/munch.cxx:338,1
    - Dst: free
      Src: /src/hunspell/src/tools/munch.cxx:339,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/munch.cxx:340,1
    - Dst: encodeit
      Src: /src/hunspell/src/tools/munch.cxx:346,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:348,1
    - Dst: free
      Src: /src/hunspell/src/tools/munch.cxx:356,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:364,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:367,1
    - Dst: free
      Src: /src/hunspell/src/tools/munch.cxx:368,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:374,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/munch.cxx:377,1
    - Dst: free
      Src: /src/hunspell/src/tools/munch.cxx:378,1
    - Dst: free
      Src: /src/hunspell/src/tools/munch.cxx:386,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 125
    argCount: 1
    argNames:
    - afflst
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 388
    functionName: parse_aff_file
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 2
    functionsReached:
    - strlen
    - malloc
    - strncmp
    - atoi
    - free
    - fprintf
    - AffixMgr::setcminmax
    - mystrdup
    - strcmp
    - mystrsep
    - fgets
    - encodeit
    - static_cast<size_t>
    - mychomp
    - calloc
    linkageType: ''
    returnType: int
    signature: int parse_aff_file(FILE* afflst)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/hunspell/src/tools/munch.cxx:405,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/munch.cxx:412,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 2
    argNames:
    - ptr
    - cs
    argTypes:
    - struct affent*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 474
    functionName: encodeit
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 2
    functionsReached:
    - strcmp
    - strlen
    linkageType: ''
    returnType: void
    signature: void encodeit(struct affent* ptr, char* cs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/hunspell/src/tools/munch.cxx:487,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/munch.cxx:490,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/munch.cxx:493,1
    - Dst: lookup
      Src: /src/hunspell/src/tools/munch.cxx:500,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/munch.cxx:500,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 4
    argNames:
    - word
    - len
    - ep
    - num
    argTypes:
    - char*
    - int
    - struct affent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 511
    functionName: pfx_chk
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 0
    functionsReached:
    - lookup
    - std::string::append
    - std::string::c_str
    - strncmp
    linkageType: ''
    returnType: void
    signature: void pfx_chk(const char* word, int len, struct affent* ep, int num)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/hunspell/src/tools/munch.cxx:530,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/tools/munch.cxx:533,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/munch.cxx:534,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/munch.cxx:535,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/munch.cxx:535,1
    - Dst: lookup
      Src: /src/hunspell/src/tools/munch.cxx:542,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/munch.cxx:542,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 6
    argNames:
    - word
    - len
    - ep
    - num
    - pfxent
    - cpflag
    argTypes:
    - char*
    - int
    - struct affent*
    - int
    - struct affent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 553
    functionName: suf_chk
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 0
    functionsReached:
    - lookup
    - std::string::size
    - std::string::c_str
    - strcmp
    - std::string::append
    - std::string::resize
    linkageType: ''
    returnType: void
    signature: "void suf_chk(const char* word,\n             int len,\n             struct
      affent* ep,\n             int num,\n             struct affent* pfxent,\n             int
      cpflag)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pfx_chk
      Src: /src/hunspell/src/tools/munch.cxx:563,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/munch.cxx:571,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/munch.cxx:572,1
    - Dst: suf_chk
      Src: /src/hunspell/src/tools/munch.cxx:574,1
    - Dst: free
      Src: /src/hunspell/src/tools/munch.cxx:577,1
    - Dst: suf_chk
      Src: /src/hunspell/src/tools/munch.cxx:582,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - word
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 584
    functionName: aff_chk
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 1
    functionsReached:
    - suf_chk
    - free
    - mystrdup
    - pfx_chk
    - strlen
    linkageType: ''
    returnType: void
    signature: void aff_chk(const char* word, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/hunspell/src/tools/munch.cxx:590,1
    - Dst: strcmp
      Src: /src/hunspell/src/tools/munch.cxx:594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - word
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 598
    functionName: lookup
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 3
    functionsReached:
    - strcmp
    - hash
    linkageType: ''
    returnType: struct hentry
    signature: struct hentry * lookup(const char* word)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/hunspell/src/tools/munch.cxx:605,1
    - Dst: hash
      Src: /src/hunspell/src/tools/munch.cxx:612,1
    - Dst: free
      Src: /src/hunspell/src/tools/munch.cxx:617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - word
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 624
    functionName: add_word
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 0
    functionsReached:
    - hash
    - malloc
    - free
    linkageType: ''
    returnType: int
    signature: int add_word(char* word)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/hunspell/src/tools/munch.cxx:633,1
    - Dst: mychomp
      Src: /src/hunspell/src/tools/munch.cxx:635,1
    - Dst: atoi
      Src: /src/hunspell/src/tools/munch.cxx:636,1
    - Dst: AffixMgr::setcminmax
      Src: /src/hunspell/src/tools/munch.cxx:639,1
    - Dst: calloc
      Src: /src/hunspell/src/tools/munch.cxx:648,1
    - Dst: fgets
      Src: /src/hunspell/src/tools/munch.cxx:656,1
    - Dst: mychomp
      Src: /src/hunspell/src/tools/munch.cxx:657,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/munch.cxx:658,1
    - Dst: add_word
      Src: /src/hunspell/src/tools/munch.cxx:659,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - wdlst
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 662
    functionName: load_tables
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 1
    functionsReached:
    - atoi
    - mystrdup
    - AffixMgr::setcminmax
    - fgets
    - add_word
    - mychomp
    - calloc
    linkageType: ''
    returnType: int
    signature: int load_tables(FILE* wdlst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROTATE
      Src: /src/hunspell/src/tools/munch.cxx:674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - word
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 678
    functionName: hash
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 2
    functionsReached:
    - ROTATE
    linkageType: ''
    returnType: int
    signature: int hash(const char* word)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/hunspell/src/tools/munch.cxx:685,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/munch.cxx:690,1
    - Dst: calloc
      Src: /src/hunspell/src/tools/munch.cxx:694,1
    - Dst: memcpy
      Src: /src/hunspell/src/tools/munch.cxx:695,1
    - Dst: free
      Src: /src/hunspell/src/tools/munch.cxx:698,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ep
    - ac
    argTypes:
    - struct hentry*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 701
    functionName: add_affix_char
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 1
    functionsReached:
    - malloc
    - free
    - strlen
    - memcpy
    - calloc
    linkageType: ''
    returnType: void
    signature: void add_affix_char(struct hentry* ep, char ac)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/hunspell/src/tools/munch.cxx:724,1
    - Dst: strcpy
      Src: /src/hunspell/src/tools/munch.cxx:729,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/munch.cxx:732,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - word
    - len
    - ep
    - num
    argTypes:
    - char*
    - int
    - struct affent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 739
    functionName: pfx_add
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 1
    functionsReached:
    - strcpy
    - strncpy
    - mystrdup
    linkageType: ''
    returnType: void
    signature: void pfx_add(const char* word, int len, struct affent* ep, int num)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/hunspell/src/tools/munch.cxx:764,1
    - Dst: strcpy
      Src: /src/hunspell/src/tools/munch.cxx:771,1
    - Dst: mystrdup
      Src: /src/hunspell/src/tools/munch.cxx:776,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - word
    - len
    - ep
    - num
    argTypes:
    - char*
    - int
    - struct affent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 783
    functionName: suf_add
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 1
    functionsReached:
    - strcpy
    - strncpy
    - mystrdup
    linkageType: ''
    returnType: void
    signature: void suf_add(const char* word, int len, struct affent* ep, int num)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/hunspell/src/tools/munch.cxx:790,1
    - Dst: suf_add
      Src: /src/hunspell/src/tools/munch.cxx:791,1
    - Dst: strchr
      Src: /src/hunspell/src/tools/munch.cxx:801,1
    - Dst: strlen
      Src: /src/hunspell/src/tools/munch.cxx:803,1
    - Dst: pfx_add
      Src: /src/hunspell/src/tools/munch.cxx:804,1
    - Dst: strchr
      Src: /src/hunspell/src/tools/munch.cxx:813,1
    - Dst: pfx_add
      Src: /src/hunspell/src/tools/munch.cxx:814,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - ts
    - wl
    - ap
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 818
    functionName: expand_rootword
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 2
    functionsReached:
    - suf_add
    - strchr
    - pfx_add
    - strlen
    linkageType: ''
    returnType: int
    signature: int expand_rootword(const char* ts, int wl, const char* ap)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/hunspell/src/tools/munch.cxx:827,1
    - Dst: memchr
      Src: /src/hunspell/src/tools/munch.cxx:829,1
    - Dst: malloc
      Src: /src/hunspell/src/tools/munch.cxx:834,1
    - Dst: memcpy
      Src: /src/hunspell/src/tools/munch.cxx:836,1
    - Dst: malloc
      Src: /src/hunspell/src/tools/munch.cxx:840,1
    - Dst: memcpy
      Src: /src/hunspell/src/tools/munch.cxx:842,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - stringp
    - delim
    argTypes:
    - char**
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 849
    functionName: mystrsep
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 2
    functionsReached:
    - memcpy
    - memchr
    - malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: char * mystrsep(char** stringp, const char delim)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/hunspell/src/tools/munch.cxx:854,1
    - Dst: malloc
      Src: /src/hunspell/src/tools/munch.cxx:855,1
    - Dst: memcpy
      Src: /src/hunspell/src/tools/munch.cxx:857,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 860
    functionName: mystrdup
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 14
    functionsReached:
    - memcpy
    - malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: char * mystrdup(const char* s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/hunspell/src/tools/munch.cxx:863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 868
    functionName: mychomp
    functionSourceFile: /src/hunspell/src/tools/munch.cxx
    functionUses: 4
    functionsReached:
    - strlen
    linkageType: ''
    returnType: void
    signature: void mychomp(char* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hzip.cxx:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - err
    - par
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: fail
    functionSourceFile: /src/hunspell/src/tools/hzip.cxx
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int fail(const char* err, const char* par)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/hunspell/src/tools/hzip.cxx:80,1
    - Dst: code2table
      Src: /src/hunspell/src/tools/hzip.cxx:84,1
    - Dst: malloc
      Src: /src/hunspell/src/tools/hzip.cxx:90,1
    - Dst: strcpy
      Src: /src/hunspell/src/tools/hzip.cxx:91,1
    - Dst: code2table
      Src: /src/hunspell/src/tools/hzip.cxx:95,1
    - Dst: free
      Src: /src/hunspell/src/tools/hzip.cxx:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - tree
    - table
    - code
    - deep
    argTypes:
    - struct item*
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 98
    functionName: code2table
    functionSourceFile: /src/hunspell/src/tools/hzip.cxx
    functionUses: 1
    functionsReached:
    - strcpy
    - code2table
    - malloc
    - free
    linkageType: ''
    returnType: void
    signature: void code2table(struct item* tree, char** table, char* code, int deep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/hunspell/src/tools/hzip.cxx:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - c
    - l
    - r
    - t
    argTypes:
    - int
    - struct item*
    - struct item*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 108
    functionName: newitem
    functionSourceFile: /src/hunspell/src/tools/hzip.cxx
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: struct item
    signature: struct item * newitem(int c, struct item* l, struct item* r, int t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getc
      Src: /src/hunspell/src/tools/hzip.cxx:120,1
    - Dst: getc
      Src: /src/hunspell/src/tools/hzip.cxx:120,1
    - Dst: malloc
      Src: /src/hunspell/src/tools/hzip.cxx:133,1
    - Dst: newitem
      Src: /src/hunspell/src/tools/hzip.cxx:138,1
    - Dst: newitem
      Src: /src/hunspell/src/tools/hzip.cxx:143,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - dest
    - f
    - termword
    argTypes:
    - struct item***
    - FILE*
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 146
    functionName: get_freqdata
    functionSourceFile: /src/hunspell/src/tools/hzip.cxx
    functionUses: 0
    functionsReached:
    - newitem
    - getc
    - malloc
    linkageType: ''
    returnType: int
    signature: int get_freqdata(struct item*** dest, FILE* f, unsigned short* termword)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: newitem
      Src: /src/hunspell/src/tools/hzip.cxx:160,1
    - Dst: code2table
      Src: /src/hunspell/src/tools/hzip.cxx:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - l
    - n
    - table
    argTypes:
    - struct item**
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: get_codetable
    functionSourceFile: /src/hunspell/src/tools/hzip.cxx
    functionUses: 0
    functionsReached:
    - newitem
    - code2table
    linkageType: ''
    returnType: void
    signature: void get_codetable(struct item** l, int n, char** table)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/hunspell/src/tools/hzip.cxx:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - f
    - bitbuf
    - bits
    - code
    argTypes:
    - FILE*
    - char*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 184
    functionName: write_bits
    functionSourceFile: /src/hunspell/src/tools/hzip.cxx
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: int
    signature: int write_bits(FILE* f, char* bitbuf, int* bits, char* code)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hzip.cxx:203,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hzip.cxx:210,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hzip.cxx:217,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hzip.cxx:234,1
    - Dst: write_bits
      Src: /src/hunspell/src/tools/hzip.cxx:236,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hzip.cxx:241,1
    - Dst: fprintf
      Src: /src/hunspell/src/tools/hzip.cxx:248,1
    - Dst: fwrite
      Src: /src/hunspell/src/tools/hzip.cxx:250,1
    - Dst: getc
      Src: /src/hunspell/src/tools/hzip.cxx:256,1
    - Dst: getc
      Src: /src/hunspell/src/tools/hzip.cxx:256,1
    - Dst: write_bits
      Src: /src/hunspell/src/tools/hzip.cxx:259,1
    - Dst: write_bits
      Src: /src/hunspell/src/tools/hzip.cxx:263,1
    - Dst: fwrite
      Src: /src/hunspell/src/tools/hzip.cxx:267,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 6
    argNames:
    - table
    - n
    - f
    - f2
    - tw
    - key
    argTypes:
    - char**
    - int
    - FILE*
    - FILE*
    - unsigned short
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 271
    functionName: encode_file
    functionSourceFile: /src/hunspell/src/tools/hzip.cxx
    functionUses: 0
    functionsReached:
    - fprintf
    - getc
    - fwrite
    - write_bits
    linkageType: ''
    returnType: int
    signature: "int encode_file(char** table,\n                int n,\n                FILE*
      f,\n                FILE* f2,\n                unsigned short tw,\n                char*
      key)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/hunspell/src/tools/hzip.cxx:278,1
    - Dst: fwrite
      Src: /src/hunspell/src/tools/hzip.cxx:322,1
    - Dst: fwrite
      Src: /src/hunspell/src/tools/hzip.cxx:326,1
    - Dst: memcpy
      Src: /src/hunspell/src/tools/hzip.cxx:329,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 48
    argCount: 2
    argNames:
    - f
    - tempfile
    argTypes:
    - FILE*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 333
    functionName: prefixcompress
    functionSourceFile: /src/hunspell/src/tools/hzip.cxx
    functionUses: 0
    functionsReached:
    - memcpy
    - fwrite
    - fgets
    linkageType: ''
    returnType: int
    signature: int prefixcompress(FILE* f, FILE* tempfile)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/hunspell/src/tools/hzip.cxx:341,1
    - Dst: fail
      Src: /src/hunspell/src/tools/hzip.cxx:343,1
    - Dst: tmpfile
      Src: /src/hunspell/src/tools/hzip.cxx:347,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hzip.cxx:349,1
    - Dst: fail
      Src: /src/hunspell/src/tools/hzip.cxx:350,1
    - Dst: std::string::append
      Src: /src/hunspell/src/tools/hzip.cxx:354,1
    - Dst: fopen
      Src: /src/hunspell/src/tools/hzip.cxx:355,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hzip.cxx:355,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hzip.cxx:357,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hzip.cxx:358,1
    - Dst: fail
      Src: /src/hunspell/src/tools/hzip.cxx:359,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/hzip.cxx:359,1
    - Dst: prefixcompress
      Src: /src/hunspell/src/tools/hzip.cxx:363,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hzip.cxx:364,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hzip.cxx:365,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hzip.cxx:366,1
    - Dst: fail
      Src: /src/hunspell/src/tools/hzip.cxx:367,1
    - Dst: rewind
      Src: /src/hunspell/src/tools/hzip.cxx:369,1
    - Dst: get_freqdata
      Src: /src/hunspell/src/tools/hzip.cxx:370,1
    - Dst: get_codetable
      Src: /src/hunspell/src/tools/hzip.cxx:371,1
    - Dst: rewind
      Src: /src/hunspell/src/tools/hzip.cxx:372,1
    - Dst: encode_file
      Src: /src/hunspell/src/tools/hzip.cxx:373,1
    - Dst: free
      Src: /src/hunspell/src/tools/hzip.cxx:374,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hzip.cxx:375,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hzip.cxx:376,1
    - Dst: fclose
      Src: /src/hunspell/src/tools/hzip.cxx:377,1
    - Dst: fail
      Src: /src/hunspell/src/tools/hzip.cxx:379,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - filename
    - key
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 381
    functionName: hzip
    functionSourceFile: /src/hunspell/src/tools/hzip.cxx
    functionUses: 0
    functionsReached:
    - tmpfile
    - rewind
    - fail
    - get_freqdata
    - std::string::c_str
    - prefixcompress
    - get_codetable
    - free
    - encode_file
    - fclose
    - std::string::append
    - fopen
    linkageType: ''
    returnType: int
    signature: int hzip(const char* filename, char* key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/hunspell/src/tools/hzip.cxx:389,1
    - Dst: fail
      Src: /src/hunspell/src/tools/hzip.cxx:392,1
    - Dst: fail
      Src: /src/hunspell/src/tools/hzip.cxx:397,1
    - Dst: hzip
      Src: /src/hunspell/src/tools/hzip.cxx:398,1
    - Dst: fail
      Src: /src/hunspell/src/tools/hzip.cxx:404,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 383
    functionDepth: 4
    functionLinenumber: 383
    functionLinenumberEnd: 406
    functionName: main
    functionSourceFile: /src/hunspell/src/tools/hzip.cxx
    functionUses: 1
    functionsReached:
    - hzip
    - fail
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/fuzzer.cxx:41,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/fuzzer.cxx:41,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/tools/fuzzer.cxx:42,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/fuzzer.cxx:42,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/fuzzer.cxx:42,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/fuzzer.cxx:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - str
    - suffix
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: endswith
    functionSourceFile: /src/hunspell/src/tools/fuzzer.cxx
    functionUses: 0
    functionsReached:
    - std::string::compare
    - std::string::size
    linkageType: ''
    returnType: bool
    signature: bool endswith(const std::string &str, const std::string &suffix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/hunspell/src/tools/fuzzer.cxx:49,1
    - Dst: dirname
      Src: /src/hunspell/src/tools/fuzzer.cxx:50,1
    - Dst: opendir
      Src: /src/hunspell/src/tools/fuzzer.cxx:51,1
    - Dst: readdir
      Src: /src/hunspell/src/tools/fuzzer.cxx:54,1
    - Dst: endswith
      Src: /src/hunspell/src/tools/fuzzer.cxx:57,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/tools/fuzzer.cxx:58,1
    - Dst: std::move
      Src: /src/hunspell/src/tools/fuzzer.cxx:58,1
    - Dst: closedir
      Src: /src/hunspell/src/tools/fuzzer.cxx:60,1
    - Dst: free
      Src: /src/hunspell/src/tools/fuzzer.cxx:61,1
    - Dst: std::sort
      Src: /src/hunspell/src/tools/fuzzer.cxx:65,1
    - Dst: std::vector::begin
      Src: /src/hunspell/src/tools/fuzzer.cxx:65,1
    - Dst: std::vector::end
      Src: /src/hunspell/src/tools/fuzzer.cxx:65,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/tools/fuzzer.cxx:68,1
    - Dst: std::string::size
      Src: /src/hunspell/src/tools/fuzzer.cxx:68,1
    - Dst: emplace_back
      Src: /src/hunspell/src/tools/fuzzer.cxx:69,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/fuzzer.cxx:69,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/tools/fuzzer.cxx:69,1
    - Dst: Hunspell::Hunspell
      Src: /src/hunspell/src/tools/fuzzer.cxx:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 73
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/hunspell/src/tools/fuzzer.cxx
    functionUses: 0
    functionsReached:
    - std::string::substr
    - std::move
    - std::vector::begin
    - std::vector::push_back
    - emplace_back
    - endswith
    - std::string::size
    - readdir
    - Hunspell::Hunspell
    - opendir
    - dirname
    - std::string::c_str
    - std::sort
    - closedir
    - free
    - strdup
    - std::vector::end
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spell
      Src: /src/hunspell/src/tools/fuzzer.cxx:80,1
    - Dst: suggest
      Src: /src/hunspell/src/tools/fuzzer.cxx:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/hunspell/src/tools/fuzzer.cxx
    functionUses: 0
    functionsReached:
    - spell
    - suggest
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const char* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - q
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: ROTATE
    functionSourceFile: /src/hunspell/src/tools/unmunch.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(v, q)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/hunspell/src/parsers/testparser.cxx:56,1
    - Dst: fprintf
      Src: /src/hunspell/src/parsers/testparser.cxx:57,1
    - Dst: fprintf
      Src: /src/hunspell/src/parsers/testparser.cxx:58,1
    - Dst: exit
      Src: /src/hunspell/src/parsers/testparser.cxx:59,1
    - Dst: fopen
      Src: /src/hunspell/src/parsers/testparser.cxx:63,1
    - Dst: fprintf
      Src: /src/hunspell/src/parsers/testparser.cxx:65,1
    - Dst: exit
      Src: /src/hunspell/src/parsers/testparser.cxx:66,1
    - Dst: TextParser::TextParser
      Src: /src/hunspell/src/parsers/testparser.cxx:69,1
    - Dst: fgets
      Src: /src/hunspell/src/parsers/testparser.cxx:74,1
    - Dst: TextParser*::put_line
      Src: /src/hunspell/src/parsers/testparser.cxx:75,1
    - Dst: TextParser*::set_url_checking
      Src: /src/hunspell/src/parsers/testparser.cxx:76,1
    - Dst: TextParser*::next_token
      Src: /src/hunspell/src/parsers/testparser.cxx:78,1
    - Dst: fprintf
      Src: /src/hunspell/src/parsers/testparser.cxx:79,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/parsers/testparser.cxx:79,1
    - Dst: fclose
      Src: /src/hunspell/src/parsers/testparser.cxx:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 86
    functionName: main
    functionSourceFile: /src/hunspell/src/parsers/testparser.cxx
    functionUses: 1
    functionsReached:
    - TextParser*::next_token
    - exit
    - TextParser*::set_url_checking
    - std::string::c_str
    - fprintf
    - TextParser::TextParser
    - fclose
    - fgets
    - fopen
    - TextParser*::put_line
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: TextParser::is_utf8
    functionSourceFile: /src/hunspell/src/parsers/textparser.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_utf8()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TextParser::init
      Src: /src/hunspell/src/parsers/textparser.cxx:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wordchars
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: TextParser::TextParser
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 3
    functionsReached:
    - TextParser::init
    linkageType: ''
    returnType: void
    signature: void TextParser::TextParser(const char* wordchars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TextParser::init
      Src: /src/hunspell/src/parsers/textparser.cxx:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wordchars
    - len
    argTypes:
    - w_char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: TextParser::TextParser
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 3
    functionsReached:
    - TextParser::init
    linkageType: ''
    returnType: void
    signature: void TextParser::TextParser(const w_char* wordchars, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: TextParser::~TextParser()
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TextParser::~TextParser()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u8_u16
      Src: /src/hunspell/src/parsers/textparser.cxx:85,1
    - Dst: unicodeisalpha
      Src: /src/hunspell/src/parsers/textparser.cxx:88,1
    - Dst: std::binary_search
      Src: /src/hunspell/src/parsers/textparser.cxx:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - w
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 94
    functionName: TextParser::is_wordchar
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 0
    functionsReached:
    - u8_u16
    - unicodeisalpha
    - std::binary_search
    linkageType: ''
    returnType: int
    signature: int TextParser::is_wordchar(const char* w)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/hunspell/src/parsers/textparser.cxx:99,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/textparser.cxx:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: TextParser::get_latin1
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: char
    signature: char * TextParser::get_latin1(const char* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/hunspell/src/parsers/textparser.cxx:116,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/textparser.cxx:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - wordchars
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: TextParser::init
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 2
    functionsReached:
    - resize
    - strlen
    linkageType: ''
    returnType: void
    signature: void TextParser::init(const char* wordchars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/hunspell/src/parsers/textparser.cxx:135,1
    - Dst: unicodeisalpha
      Src: /src/hunspell/src/parsers/textparser.cxx:140,1
    - Dst: std::binary_search
      Src: /src/hunspell/src/parsers/textparser.cxx:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - wc_utf8
    - len
    argTypes:
    - w_char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 145
    functionName: TextParser::init
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 2
    functionsReached:
    - std::binary_search
    - unicodeisalpha
    - resize
    linkageType: ''
    returnType: void
    signature: void TextParser::init(const w_char* wc_utf8, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ln
    - pos
    argTypes:
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 161
    functionName: TextParser::next_char
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TextParser::next_char(const char* ln, size_t* pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/hunspell/src/parsers/textparser.cxx:165,1
    - Dst: TextParser::check_urls
      Src: /src/hunspell/src/parsers/textparser.cxx:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - word
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 169
    functionName: TextParser::put_line
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 1
    functionsReached:
    - assign
    - TextParser::check_urls
    linkageType: ''
    returnType: void
    signature: void TextParser::put_line(const char* word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: TextParser::get_prevline
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string TextParser::get_prevline(int n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TextParser::get_prevline
      Src: /src/hunspell/src/parsers/textparser.cxx:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: TextParser::get_line
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 1
    functionsReached:
    - TextParser::get_prevline
    linkageType: ''
    returnType: std::string
    signature: std::string TextParser::get_line() const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TextParser::is_wordchar
      Src: /src/hunspell/src/parsers/textparser.cxx:185,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/textparser.cxx:185,1
    - Dst: TextParser::get_latin1
      Src: /src/hunspell/src/parsers/textparser.cxx:188,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/textparser.cxx:188,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/textparser.cxx:191,1
    - Dst: TextParser::get_latin1
      Src: /src/hunspell/src/parsers/textparser.cxx:195,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/textparser.cxx:195,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/textparser.cxx:196,1
    - Dst: TextParser::is_wordchar
      Src: /src/hunspell/src/parsers/textparser.cxx:197,1
    - Dst: TextParser::is_utf8
      Src: /src/hunspell/src/parsers/textparser.cxx:198,1
    - Dst: TextParser::is_wordchar
      Src: /src/hunspell/src/parsers/textparser.cxx:198,1
    - Dst: empty
      Src: /src/hunspell/src/parsers/textparser.cxx:199,1
    - Dst: TextParser::is_wordchar
      Src: /src/hunspell/src/parsers/textparser.cxx:200,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/textparser.cxx:200,1
    - Dst: TextParser::is_utf8
      Src: /src/hunspell/src/parsers/textparser.cxx:202,1
    - Dst: TextParser::is_wordchar
      Src: /src/hunspell/src/parsers/textparser.cxx:203,1
    - Dst: strncmp
      Src: /src/hunspell/src/parsers/textparser.cxx:206,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/textparser.cxx:206,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/textparser.cxx:206,1
    - Dst: TextParser::is_wordchar
      Src: /src/hunspell/src/parsers/textparser.cxx:208,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/textparser.cxx:208,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/textparser.cxx:208,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/textparser.cxx:209,1
    - Dst: TextParser::is_wordchar
      Src: /src/hunspell/src/parsers/textparser.cxx:210,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/textparser.cxx:210,1
    - Dst: TextParser::alloc_token
      Src: /src/hunspell/src/parsers/textparser.cxx:212,1
    - Dst: TextParser::next_char
      Src: /src/hunspell/src/parsers/textparser.cxx:217,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/textparser.cxx:217,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 34
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 220
    functionName: TextParser::next_token
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 1
    functionsReached:
    - TextParser::is_utf8
    - c_str
    - strncmp
    - empty
    - TextParser::next_char
    - TextParser::is_wordchar
    - TextParser::alloc_token
    - strlen
    - TextParser::get_latin1
    linkageType: ''
    returnType: bool
    signature: bool TextParser::next_token(std::string &t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: TextParser::get_tokenpos
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t TextParser::get_tokenpos()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: substr
      Src: /src/hunspell/src/parsers/textparser.cxx:228,1
    - Dst: resize
      Src: /src/hunspell/src/parsers/textparser.cxx:229,1
    - Dst: append
      Src: /src/hunspell/src/parsers/textparser.cxx:230,1
    - Dst: append
      Src: /src/hunspell/src/parsers/textparser.cxx:231,1
    - Dst: TextParser::check_urls
      Src: /src/hunspell/src/parsers/textparser.cxx:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - word
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 237
    functionName: TextParser::change_token
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 1
    functionsReached:
    - resize
    - substr
    - append
    - TextParser::check_urls
    linkageType: ''
    returnType: int
    signature: int TextParser::change_token(const char* word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tok
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: TextParser::get_word
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string TextParser::get_word(const std::string &tok)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/hunspell/src/parsers/textparser.cxx:244,1
    - Dst: size
      Src: /src/hunspell/src/parsers/textparser.cxx:244,1
    - Dst: TextParser::is_wordchar
      Src: /src/hunspell/src/parsers/textparser.cxx:252,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/textparser.cxx:252,1
    - Dst: strncmp
      Src: /src/hunspell/src/parsers/textparser.cxx:267,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/textparser.cxx:267,1
    - Dst: strncmp
      Src: /src/hunspell/src/parsers/textparser.cxx:269,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/textparser.cxx:269,1
    - Dst: TextParser::is_wordchar
      Src: /src/hunspell/src/parsers/textparser.cxx:271,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/textparser.cxx:271,1
    - Dst: TextParser::next_char
      Src: /src/hunspell/src/parsers/textparser.cxx:288,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/textparser.cxx:288,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 291
    functionName: TextParser::check_urls
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 2
    functionsReached:
    - strncmp
    - c_str
    - TextParser::next_char
    - TextParser::is_wordchar
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void TextParser::check_urls()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/parsers/textparser.cxx:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - token_pos
    - hd
    argTypes:
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 297
    functionName: TextParser::get_url
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int TextParser::get_url(size_t token_pos, size_t* hd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - check
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: TextParser::set_url_checking
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TextParser::set_url_checking(int check)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TextParser::get_url
      Src: /src/hunspell/src/parsers/textparser.cxx:304,1
    - Dst: substr
      Src: /src/hunspell/src/parsers/textparser.cxx:306,1
    - Dst: empty
      Src: /src/hunspell/src/parsers/textparser.cxx:308,1
    - Dst: size
      Src: /src/hunspell/src/parsers/textparser.cxx:308,1
    - Dst: resize
      Src: /src/hunspell/src/parsers/textparser.cxx:309,1
    - Dst: size
      Src: /src/hunspell/src/parsers/textparser.cxx:309,1
    - Dst: empty
      Src: /src/hunspell/src/parsers/textparser.cxx:310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - tokn
    - hd
    - ' t'
    argTypes:
    - size_t
    - size_t*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 315
    functionName: TextParser::alloc_token
    functionSourceFile: /src/hunspell/src/parsers/textparser.cxx
    functionUses: 1
    functionsReached:
    - resize
    - empty
    - size
    - TextParser::get_url
    - substr
    linkageType: ''
    returnType: bool
    signature: bool TextParser::alloc_token(size_t tokn, size_t* hd, std::string&
      t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - wordchars
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: HTMLParser::HTMLParser
    functionSourceFile: /src/hunspell/src/parsers/htmlparser.cxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HTMLParser::HTMLParser(const char* wordchars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - wordchars
    - len
    argTypes:
    - w_char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: HTMLParser::HTMLParser
    functionSourceFile: /src/hunspell/src/parsers/htmlparser.cxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HTMLParser::HTMLParser(const w_char* wordchars, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XMLParser::next_token
      Src: /src/hunspell/src/parsers/htmlparser.cxx:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: HTMLParser::next_token
    functionSourceFile: /src/hunspell/src/parsers/htmlparser.cxx
    functionUses: 0
    functionsReached:
    - XMLParser::next_token
    linkageType: ''
    returnType: bool
    signature: bool HTMLParser::next_token(std::string& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: HTMLParser::~HTMLParser()
    functionSourceFile: /src/hunspell/src/parsers/htmlparser.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HTMLParser::~HTMLParser()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - wordchars
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: FirstParser::FirstParser
    functionSourceFile: /src/hunspell/src/parsers/firstparser.cxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FirstParser::FirstParser(const char* wordchars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: FirstParser::~FirstParser()
    functionSourceFile: /src/hunspell/src/parsers/firstparser.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FirstParser::~FirstParser()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/hunspell/src/parsers/firstparser.cxx:57,1
    - Dst: find
      Src: /src/hunspell/src/parsers/firstparser.cxx:58,1
    - Dst: substr
      Src: /src/hunspell/src/parsers/firstparser.cxx:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: FirstParser::next_token
    functionSourceFile: /src/hunspell/src/parsers/firstparser.cxx
    functionUses: 0
    functionsReached:
    - substr
    - find
    - clear
    linkageType: ''
    returnType: bool
    signature: bool FirstParser::next_token(std::string& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - wordchars
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: LaTeXParser::LaTeXParser
    functionSourceFile: /src/hunspell/src/parsers/latexparser.cxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LaTeXParser::LaTeXParser(const char* wordchars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - wordchars
    - len
    argTypes:
    - w_char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: LaTeXParser::LaTeXParser
    functionSourceFile: /src/hunspell/src/parsers/latexparser.cxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LaTeXParser::LaTeXParser(const w_char* wordchars, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: LaTeXParser::~LaTeXParser()
    functionSourceFile: /src/hunspell/src/parsers/latexparser.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LaTeXParser::~LaTeXParser()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/hunspell/src/parsers/latexparser.cxx:156,1
    - Dst: tolower
      Src: /src/hunspell/src/parsers/latexparser.cxx:160,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - col
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 168
    functionName: LaTeXParser::look_pattern
    functionSourceFile: /src/hunspell/src/parsers/latexparser.cxx
    functionUses: 0
    functionsReached:
    - tolower
    - c_str
    linkageType: ''
    returnType: int
    signature: int LaTeXParser::look_pattern(int col)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/hunspell/src/parsers/latexparser.cxx:183,1
    - Dst: LaTeXParser::look_pattern
      Src: /src/hunspell/src/parsers/latexparser.cxx:193,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/latexparser.cxx:202,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/latexparser.cxx:205,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/latexparser.cxx:205,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/latexparser.cxx:220,1
    - Dst: is_utf8
      Src: /src/hunspell/src/parsers/latexparser.cxx:221,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/latexparser.cxx:221,1
    - Dst: empty
      Src: /src/hunspell/src/parsers/latexparser.cxx:222,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/latexparser.cxx:223,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/latexparser.cxx:223,1
    - Dst: is_utf8
      Src: /src/hunspell/src/parsers/latexparser.cxx:225,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/latexparser.cxx:226,1
    - Dst: strncmp
      Src: /src/hunspell/src/parsers/latexparser.cxx:229,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/latexparser.cxx:229,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/latexparser.cxx:229,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/latexparser.cxx:231,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/latexparser.cxx:231,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/latexparser.cxx:231,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/latexparser.cxx:232,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/latexparser.cxx:233,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/latexparser.cxx:233,1
    - Dst: alloc_token
      Src: /src/hunspell/src/parsers/latexparser.cxx:237,1
    - Dst: LaTeXParser::look_pattern
      Src: /src/hunspell/src/parsers/latexparser.cxx:245,1
    - Dst: strcmp
      Src: /src/hunspell/src/parsers/latexparser.cxx:246,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/latexparser.cxx:248,1
    - Dst: tolower
      Src: /src/hunspell/src/parsers/latexparser.cxx:252,1
    - Dst: tolower
      Src: /src/hunspell/src/parsers/latexparser.cxx:253,1
    - Dst: next_char
      Src: /src/hunspell/src/parsers/latexparser.cxx:282,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/latexparser.cxx:282,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 91
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 288
    functionName: LaTeXParser::next_token
    functionSourceFile: /src/hunspell/src/parsers/latexparser.cxx
    functionUses: 0
    functionsReached:
    - tolower
    - is_wordchar
    - c_str
    - strncmp
    - LaTeXParser::look_pattern
    - empty
    - is_utf8
    - strcmp
    - strlen
    - next_char
    - alloc_token
    - clear
    linkageType: ''
    returnType: bool
    signature: bool LaTeXParser::next_token(std::string& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - wordchars
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: ManParser::ManParser
    functionSourceFile: /src/hunspell/src/parsers/manparser.cxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ManParser::ManParser(const char* wordchars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - wordchars
    - len
    argTypes:
    - w_char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: ManParser::ManParser
    functionSourceFile: /src/hunspell/src/parsers/manparser.cxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ManParser::ManParser(const w_char* wordchars, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: ManParser::~ManParser()
    functionSourceFile: /src/hunspell/src/parsers/manparser.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ManParser::~ManParser()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/manparser.cxx:76,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/manparser.cxx:76,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/manparser.cxx:86,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/manparser.cxx:86,1
    - Dst: alloc_token
      Src: /src/hunspell/src/parsers/manparser.cxx:88,1
    - Dst: next_char
      Src: /src/hunspell/src/parsers/manparser.cxx:93,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/manparser.cxx:93,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 98
    functionName: ManParser::next_token
    functionSourceFile: /src/hunspell/src/parsers/manparser.cxx
    functionUses: 0
    functionsReached:
    - next_char
    - is_wordchar
    - alloc_token
    - c_str
    linkageType: ''
    returnType: bool
    signature: bool ManParser::next_token(std::string& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - wordchars
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: ODFParser::ODFParser
    functionSourceFile: /src/hunspell/src/parsers/odfparser.cxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ODFParser::ODFParser(const char* wordchars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - wordchars
    - len
    argTypes:
    - w_char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: ODFParser::ODFParser
    functionSourceFile: /src/hunspell/src/parsers/odfparser.cxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ODFParser::ODFParser(const w_char* wordchars, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XMLParser::next_token
      Src: /src/hunspell/src/parsers/odfparser.cxx:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: ODFParser::next_token
    functionSourceFile: /src/hunspell/src/parsers/odfparser.cxx
    functionUses: 0
    functionsReached:
    - XMLParser::next_token
    linkageType: ''
    returnType: bool
    signature: bool ODFParser::next_token(std::string& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XMLParser::get_word2
      Src: /src/hunspell/src/parsers/odfparser.cxx:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tok
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: ODFParser::get_word
    functionSourceFile: /src/hunspell/src/parsers/odfparser.cxx
    functionUses: 0
    functionsReached:
    - XMLParser::get_word2
    linkageType: ''
    returnType: std::string
    signature: std::string ODFParser::get_word(const std::string &tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: ODFParser::~ODFParser()
    functionSourceFile: /src/hunspell/src/parsers/odfparser.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ODFParser::~ODFParser()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - wordchars
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: XMLParser::XMLParser
    functionSourceFile: /src/hunspell/src/parsers/xmlparser.cxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMLParser::XMLParser(const char* wordchars)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - wordchars
    - len
    argTypes:
    - w_char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: XMLParser::XMLParser
    functionSourceFile: /src/hunspell/src/parsers/xmlparser.cxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMLParser::XMLParser(const w_char* wordchars, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: XMLParser::~XMLParser()
    functionSourceFile: /src/hunspell/src/parsers/xmlparser.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMLParser::~XMLParser()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/hunspell/src/parsers/xmlparser.cxx:87,1
    - Dst: tolower
      Src: /src/hunspell/src/parsers/xmlparser.cxx:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - p
    - len
    - column
    argTypes:
    - char*[][]
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: XMLParser::look_pattern
    functionSourceFile: /src/hunspell/src/parsers/xmlparser.cxx
    functionUses: 0
    functionsReached:
    - tolower
    - c_str
    linkageType: ''
    returnType: int
    signature: int XMLParser::look_pattern(const char* p[][2], unsigned int len, int
      column)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/hunspell/src/parsers/xmlparser.cxx:111,1
    - Dst: XMLParser::look_pattern
      Src: /src/hunspell/src/parsers/xmlparser.cxx:118,1
    - Dst: XMLParser::look_pattern
      Src: /src/hunspell/src/parsers/xmlparser.cxx:120,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/xmlparser.cxx:124,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/xmlparser.cxx:124,1
    - Dst: get_latin1
      Src: /src/hunspell/src/parsers/xmlparser.cxx:127,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/xmlparser.cxx:127,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/xmlparser.cxx:130,1
    - Dst: get_latin1
      Src: /src/hunspell/src/parsers/xmlparser.cxx:136,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/xmlparser.cxx:136,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/xmlparser.cxx:137,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/xmlparser.cxx:138,1
    - Dst: is_utf8
      Src: /src/hunspell/src/parsers/xmlparser.cxx:139,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/xmlparser.cxx:139,1
    - Dst: strncmp
      Src: /src/hunspell/src/parsers/xmlparser.cxx:140,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/xmlparser.cxx:140,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/xmlparser.cxx:141,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/xmlparser.cxx:142,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/xmlparser.cxx:142,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/xmlparser.cxx:142,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/xmlparser.cxx:143,1
    - Dst: is_utf8
      Src: /src/hunspell/src/parsers/xmlparser.cxx:144,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/xmlparser.cxx:145,1
    - Dst: strncmp
      Src: /src/hunspell/src/parsers/xmlparser.cxx:148,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/xmlparser.cxx:148,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/xmlparser.cxx:148,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/xmlparser.cxx:150,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/xmlparser.cxx:150,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/xmlparser.cxx:150,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/xmlparser.cxx:151,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/xmlparser.cxx:152,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/xmlparser.cxx:152,1
    - Dst: XMLParser::look_pattern
      Src: /src/hunspell/src/parsers/xmlparser.cxx:154,1
    - Dst: find
      Src: /src/hunspell/src/parsers/xmlparser.cxx:155,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/xmlparser.cxx:157,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/xmlparser.cxx:158,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/xmlparser.cxx:158,1
    - Dst: alloc_token
      Src: /src/hunspell/src/parsers/xmlparser.cxx:166,1
    - Dst: XMLParser::look_pattern
      Src: /src/hunspell/src/parsers/xmlparser.cxx:173,1
    - Dst: strcmp
      Src: /src/hunspell/src/parsers/xmlparser.cxx:174,1
    - Dst: XMLParser::look_pattern
      Src: /src/hunspell/src/parsers/xmlparser.cxx:178,1
    - Dst: strcmp
      Src: /src/hunspell/src/parsers/xmlparser.cxx:179,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/xmlparser.cxx:181,1
    - Dst: strcmp
      Src: /src/hunspell/src/parsers/xmlparser.cxx:182,1
    - Dst: is_wordchar
      Src: /src/hunspell/src/parsers/xmlparser.cxx:196,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/xmlparser.cxx:196,1
    - Dst: tolower
      Src: /src/hunspell/src/parsers/xmlparser.cxx:204,1
    - Dst: next_char
      Src: /src/hunspell/src/parsers/xmlparser.cxx:209,1
    - Dst: c_str
      Src: /src/hunspell/src/parsers/xmlparser.cxx:209,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 90
    argCount: 7
    argNames:
    - PATTERN
    - PATTERN_LEN
    - PATTERN2
    - PATTERN_LEN2
    - PATTERN3
    - PATTERN_LEN3
    - ' t'
    argTypes:
    - char*[][]
    - unsigned int
    - char*[][]
    - unsigned int
    - char*[][]
    - unsigned int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 213
    functionName: XMLParser::next_token
    functionSourceFile: /src/hunspell/src/parsers/xmlparser.cxx
    functionUses: 2
    functionsReached:
    - tolower
    - is_wordchar
    - find
    - c_str
    - strncmp
    - get_latin1
    - is_utf8
    - XMLParser::look_pattern
    - strcmp
    - strlen
    - next_char
    - alloc_token
    - clear
    linkageType: ''
    returnType: bool
    signature: "bool XMLParser::next_token(const char* PATTERN[][2],\n                           unsigned
      int PATTERN_LEN,\n                           const char* PATTERN2[][2],\n                           unsigned
      int PATTERN_LEN2,\n                           const char* PATTERN3[][2],\n                           unsigned
      int PATTERN_LEN3,\n                           std::string& t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XMLParser::next_token
      Src: /src/hunspell/src/parsers/xmlparser.cxx:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: XMLParser::next_token
    functionSourceFile: /src/hunspell/src/parsers/xmlparser.cxx
    functionUses: 3
    functionsReached:
    - XMLParser::next_token
    linkageType: ''
    returnType: bool
    signature: bool XMLParser::next_token(std::string& t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/hunspell/src/parsers/xmlparser.cxx:228,1
    - Dst: std::string::find
      Src: /src/hunspell/src/parsers/xmlparser.cxx:229,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/parsers/xmlparser.cxx:231,1
    - Dst: strlen
      Src: /src/hunspell/src/parsers/xmlparser.cxx:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - PATTERN3
    - PATTERN_LEN3
    - tok
    argTypes:
    - char*[][]
    - unsigned int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 237
    functionName: XMLParser::get_word2
    functionSourceFile: /src/hunspell/src/parsers/xmlparser.cxx
    functionUses: 1
    functionsReached:
    - std::string::find
    - std::string::erase
    - strlen
    linkageType: ''
    returnType: std::string
    signature: "std::string XMLParser::get_word2(\n        const char* PATTERN3[][2],\n
      \       unsigned int PATTERN_LEN3,\n        const std::string &tok)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/hunspell/src/parsers/xmlparser.cxx:240,1
    - Dst: strchr
      Src: /src/hunspell/src/parsers/xmlparser.cxx:240,1
    - Dst: strchr
      Src: /src/hunspell/src/parsers/xmlparser.cxx:240,1
    - Dst: strchr
      Src: /src/hunspell/src/parsers/xmlparser.cxx:241,1
    - Dst: strchr
      Src: /src/hunspell/src/parsers/xmlparser.cxx:241,1
    - Dst: mystrrep
      Src: /src/hunspell/src/parsers/xmlparser.cxx:243,1
    - Dst: mystrrep
      Src: /src/hunspell/src/parsers/xmlparser.cxx:244,1
    - Dst: mystrrep
      Src: /src/hunspell/src/parsers/xmlparser.cxx:245,1
    - Dst: mystrrep
      Src: /src/hunspell/src/parsers/xmlparser.cxx:246,1
    - Dst: mystrrep
      Src: /src/hunspell/src/parsers/xmlparser.cxx:247,1
    - Dst: mystrrep
      Src: /src/hunspell/src/parsers/xmlparser.cxx:248,1
    - Dst: TextParser::change_token
      Src: /src/hunspell/src/parsers/xmlparser.cxx:249,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/parsers/xmlparser.cxx:249,1
    - Dst: TextParser::change_token
      Src: /src/hunspell/src/parsers/xmlparser.cxx:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - word
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 252
    functionName: XMLParser::change_token
    functionSourceFile: /src/hunspell/src/parsers/xmlparser.cxx
    functionUses: 0
    functionsReached:
    - mystrrep
    - TextParser::change_token
    - strchr
    - std::string::c_str
    - strstr
    linkageType: ''
    returnType: int
    signature: int XMLParser::change_token(const char* word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - callback
    - userdata
    argTypes:
    - HunspellTraceCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: TraceCtx::TraceCtx
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TraceCtx(HunspellTraceCallback callback, void* userdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: TraceCtx::on
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool on() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_callback
      Src: /src/hunspell/src/hunspell/hunspelltrace.hxx:108,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hunspelltrace.hxx:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' line'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: TraceCtx::emit
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.hxx
    functionUses: 0
    functionsReached:
    - m_callback
    - c_str
    linkageType: ''
    returnType: void
    signature: void emit(const std::string& line) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - TraceCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: TraceScope::TraceScope
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TraceScope(TraceCtx* context)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: ~TraceScope()
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TraceScope()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: TraceScope::TraceScope
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TraceScope(const TraceScope&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: '& operator=(const TraceScope&)'
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TraceScope
    signature: TraceScope & operator=(const TraceScope&)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - TraceCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: TraceSuppress::TraceSuppress
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TraceSuppress(TraceCtx* context)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: ~TraceSuppress()
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TraceSuppress()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: TraceSuppress::TraceSuppress
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TraceSuppress(const TraceSuppress&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: '& operator=(const TraceSuppress&)'
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TraceSuppress
    signature: TraceSuppress & operator=(const TraceSuppress&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TraceCtx*::on
      Src: /src/hunspell/src/hunspell/hunspelltrace.hxx:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - TraceCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: trace_on
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.hxx
    functionUses: 0
    functionsReached:
    - TraceCtx*::on
    linkageType: ''
    returnType: TraceCtx
    signature: TraceCtx * trace_on(TraceCtx* context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: SuggestMgr::SuggestMgr
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SuggestMgr(const SuggestMgr&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: '& operator=(const SuggestMgr&)'
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SuggestMgr
    signature: SuggestMgr & operator=(const SuggestMgr&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunzip
      Src: /src/hunspell/src/hunspell/hunzip.hxx:77,1
    - Dst: Hunzip
      Src: /src/hunspell/src/hunspell/hunzip.hxx:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 83
    functionName: Hunzip
    functionSourceFile: /src/hunspell/src/hunspell/hunzip.hxx
    functionUses: 1
    functionsReached:
    - Hunzip
    linkageType: ''
    returnType: class LIBHUNSPELL_DLL_EXPORTED
    signature: class LIBHUNSPELL_DLL_EXPORTED Hunzip
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Hunzip
    functionSourceFile: /src/hunspell/src/hunspell/hunzip.hxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hunzip(const Hunzip&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::bit_cast<unsigned short>
      Src: /src/hunspell/src/hunspell/w_char.hxx:61,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/w_char.hxx:64,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: operator unsigned short() const
    functionSourceFile: /src/hunspell/src/hunspell/w_char.hxx
    functionUses: 0
    functionsReached:
    - memcpy
    - std::bit_cast<unsigned short>
    linkageType: ''
    returnType: void
    signature: void operator unsigned short() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - w_char
    - w_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: operator<(const w_char a, const w_char b)
    functionSourceFile: /src/hunspell/src/hunspell/w_char.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const w_char a, const w_char b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - w_char
    - w_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: operator==(const w_char a, const w_char b)
    functionSourceFile: /src/hunspell/src/hunspell/w_char.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const w_char a, const w_char b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - w_char
    - w_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: operator!=(const w_char a, const w_char b)
    functionSourceFile: /src/hunspell/src/hunspell/w_char.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const w_char a, const w_char b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: AffEntry::AffEntry
    functionSourceFile: /src/hunspell/src/hunspell/baseaffix.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AffEntry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: AffEntry::AffEntry
    functionSourceFile: /src/hunspell/src/hunspell/baseaffix.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AffEntry(const AffEntry&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: '& operator=(const AffEntry&)'
    functionSourceFile: /src/hunspell/src/hunspell/baseaffix.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AffEntry
    signature: AffEntry & operator=(const AffEntry&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: FileMgr::FileMgr
    functionSourceFile: /src/hunspell/src/hunspell/filemgr.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileMgr(const FileMgr&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: '& operator=(const FileMgr&)'
    functionSourceFile: /src/hunspell/src/hunspell/filemgr.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FileMgr
    signature: FileMgr & operator=(const FileMgr&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/hunspell/src/hunspell/hunzip.cxx:54,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hunzip.cxx:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - err
    - ' par'
    argTypes:
    - char*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: Hunzip::fail
    functionSourceFile: /src/hunspell/src/hunspell/hunzip.cxx
    functionUses: 0
    functionsReached:
    - fprintf
    - c_str
    linkageType: ''
    returnType: int
    signature: int Hunzip::fail(const char* err, const std::string& par)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hunzip::getcode
      Src: /src/hunspell/src/hunspell/hunzip.cxx:62,1
    - Dst: Hunzip::getbuf
      Src: /src/hunspell/src/hunspell/hunzip.cxx:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - file
    - key
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: Hunzip::Hunzip
    functionSourceFile: /src/hunspell/src/hunspell/hunzip.cxx
    functionUses: 0
    functionsReached:
    - Hunzip::getbuf
    - Hunzip::getcode
    linkageType: ''
    returnType: void
    signature: void Hunzip::Hunzip(const char* file, const char* key)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hunzip.cxx:73,1
    - Dst: myopen
      Src: /src/hunspell/src/hunspell/hunzip.cxx:76,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hunzip.cxx:76,1
    - Dst: Hunzip::is_open
      Src: /src/hunspell/src/hunspell/hunzip.cxx:77,1
    - Dst: read
      Src: /src/hunspell/src/hunspell/hunzip.cxx:81,1
    - Dst: strncmp
      Src: /src/hunspell/src/hunspell/hunzip.cxx:82,1
    - Dst: strncmp
      Src: /src/hunspell/src/hunspell/hunzip.cxx:83,1
    - Dst: Hunzip::fail
      Src: /src/hunspell/src/hunspell/hunzip.cxx:84,1
    - Dst: strncmp
      Src: /src/hunspell/src/hunspell/hunzip.cxx:88,1
    - Dst: Hunzip::fail
      Src: /src/hunspell/src/hunspell/hunzip.cxx:91,1
    - Dst: read
      Src: /src/hunspell/src/hunspell/hunzip.cxx:92,1
    - Dst: reinterpret_cast<char*>
      Src: /src/hunspell/src/hunspell/hunzip.cxx:92,1
    - Dst: Hunzip::fail
      Src: /src/hunspell/src/hunspell/hunzip.cxx:93,1
    - Dst: Hunzip::fail
      Src: /src/hunspell/src/hunspell/hunzip.cxx:97,1
    - Dst: read
      Src: /src/hunspell/src/hunspell/hunzip.cxx:103,1
    - Dst: reinterpret_cast<char*>
      Src: /src/hunspell/src/hunspell/hunzip.cxx:103,1
    - Dst: Hunzip::fail
      Src: /src/hunspell/src/hunspell/hunzip.cxx:104,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/hunzip.cxx:114,1
    - Dst: read
      Src: /src/hunspell/src/hunspell/hunzip.cxx:121,1
    - Dst: reinterpret_cast<char*>
      Src: /src/hunspell/src/hunspell/hunzip.cxx:121,1
    - Dst: Hunzip::fail
      Src: /src/hunspell/src/hunspell/hunzip.cxx:122,1
    - Dst: read
      Src: /src/hunspell/src/hunspell/hunzip.cxx:131,1
    - Dst: reinterpret_cast<char*>
      Src: /src/hunspell/src/hunspell/hunzip.cxx:131,1
    - Dst: Hunzip::fail
      Src: /src/hunspell/src/hunspell/hunzip.cxx:132,1
    - Dst: read
      Src: /src/hunspell/src/hunspell/hunzip.cxx:138,1
    - Dst: Hunzip::fail
      Src: /src/hunspell/src/hunspell/hunzip.cxx:139,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/hunzip.cxx:155,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 77
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 167
    functionName: Hunzip::getcode
    functionSourceFile: /src/hunspell/src/hunspell/hunzip.cxx
    functionUses: 1
    functionsReached:
    - myopen
    - c_str
    - strncmp
    - Hunzip::fail
    - empty
    - read
    - reinterpret_cast<char*>
    - resize
    - Hunzip::is_open
    linkageType: ''
    returnType: int
    signature: int Hunzip::getcode(const char* key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: Hunzip::~Hunzip()
    functionSourceFile: /src/hunspell/src/hunspell/hunzip.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hunzip::~Hunzip()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/hunspell/src/hunspell/hunzip.cxx:176,1
    - Dst: gcount
      Src: /src/hunspell/src/hunspell/hunzip.cxx:177,1
    - Dst: close
      Src: /src/hunspell/src/hunspell/hunzip.cxx:185,1
    - Dst: Hunzip::fail
      Src: /src/hunspell/src/hunspell/hunzip.cxx:200,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 201
    functionName: Hunzip::getbuf
    functionSourceFile: /src/hunspell/src/hunspell/hunzip.cxx
    functionUses: 1
    functionsReached:
    - read
    - Hunzip::fail
    - close
    - gcount
    linkageType: ''
    returnType: int
    signature: int Hunzip::getbuf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunzip::is_open
      Src: /src/hunspell/src/hunspell/hunzip.cxx:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: Hunzip::is_open
    functionSourceFile: /src/hunspell/src/hunspell/hunzip.cxx
    functionUses: 3
    functionsReached:
    - Hunzip::is_open
    linkageType: ''
    returnType: bool
    signature: bool Hunzip::is_open()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Hunzip::getbuf
      Src: /src/hunspell/src/hunspell/hunzip.cxx:222,1
    - Dst: Hunzip::getbuf
      Src: /src/hunspell/src/hunspell/hunzip.cxx:235,1
    - Dst: static_cast<unsigned char>
      Src: /src/hunspell/src/hunspell/hunzip.cxx:242,1
    - Dst: Hunzip::is_open
      Src: /src/hunspell/src/hunspell/hunzip.cxx:249,1
    - Dst: Hunzip::getbuf
      Src: /src/hunspell/src/hunspell/hunzip.cxx:249,1
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/hunzip.cxx:254,1
    - Dst: strcpy
      Src: /src/hunspell/src/hunspell/hunzip.cxx:258,1
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/hunzip.cxx:264,1
    - Dst: strcpy
      Src: /src/hunspell/src/hunspell/hunzip.cxx:266,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/hunzip.cxx:267,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 1
    argNames:
    - ' dest'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 269
    functionName: Hunzip::getline
    functionSourceFile: /src/hunspell/src/hunspell/hunzip.cxx
    functionUses: 2
    functionsReached:
    - Hunzip::getbuf
    - static_cast<unsigned char>
    - strlen
    - strcpy
    - assign
    - Hunzip::is_open
    linkageType: ''
    returnType: bool
    signature: bool Hunzip::getline(std::string& dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - breakchar
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: DistinctRecords::DistinctRecords
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DistinctRecords(char breakchar)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:102,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:103,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:104,1
    - Dst: insert
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:107,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:108,1
    - Dst: std::move
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ' add'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: DistinctRecords::append
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - find
    - std::move
    - size
    - push_back
    - insert
    linkageType: ''
    returnType: void
    signature: void append(const std::string& add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:120,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: DistinctRecords::join
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - std::string::push_back
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: std::string join() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - breakchar
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: DistinctRecords::DistinctRecords
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DistinctRecords(char breakchar)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:102,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:103,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:104,1
    - Dst: insert
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:107,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:108,1
    - Dst: std::move
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ' add'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: DistinctRecords::append
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - find
    - std::move
    - size
    - push_back
    - insert
    linkageType: ''
    returnType: void
    signature: void append(const std::string& add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:120,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: DistinctRecords::join
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - std::string::push_back
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: std::string join() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:138,1
    - Dst: memset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:212,1
    - Dst: AffixMgr::parse_file
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:214,1
    - Dst: fprintf
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:215,1
    - Dst: get_current_cs
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:220,1
    - Dst: get_encoding
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:220,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:223,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:224,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:231,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:232,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:233,1
    - Dst: check_against_breaktable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:239,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 86
    argCount: 3
    argNames:
    - affpath
    - ' ptr'
    - key
    argTypes:
    - char*
    - std::vector<std::unique_ptr<HashMgr>>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 247
    functionName: AffixMgr::AffixMgr
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - find
    - get
    - emplace_back
    - get_encoding
    - check_against_breaktable
    - fprintf
    - push_back
    - memset
    - get_current_cs
    - AffixMgr::parse_file
    linkageType: ''
    returnType: void
    signature: "void AffixMgr::AffixMgr(const char* affpath,\n                   const
      std::vector<std::unique_ptr<HashMgr>>& ptr,\n                   const char*
      key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:256,1
    - Dst: SfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:268,1
    - Dst: FREE_FLAG
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:279,1
    - Dst: FREE_FLAG
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:280,1
    - Dst: FREE_FLAG
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:281,1
    - Dst: FREE_FLAG
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:282,1
    - Dst: FREE_FLAG
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:283,1
    - Dst: FREE_FLAG
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:284,1
    - Dst: FREE_FLAG
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:285,1
    - Dst: FREE_FLAG
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:286,1
    - Dst: FREE_FLAG
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:287,1
    - Dst: FREE_FLAG
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:288,1
    - Dst: FREE_FLAG
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:289,1
    - Dst: FREE_FLAG
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:290,1
    - Dst: FREE_FLAG
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:291,1
    - Dst: FREE_FLAG
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 302
    functionName: AffixMgr::~AffixMgr()
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - SfxEntry*::getNext
    - FREE_FLAG
    - PfxEntry*::getNext
    linkageType: ''
    returnType: void
    signature: void AffixMgr::~AffixMgr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AffixMgr::process_pfx_tree_to_list
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:308,1
    - Dst: AffixMgr::process_sfx_tree_to_list
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - afflst
    argTypes:
    - FileMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: AffixMgr::finishFileMgr
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - AffixMgr::process_pfx_tree_to_list
    - AffixMgr::process_sfx_tree_to_list
    linkageType: ''
    returnType: void
    signature: void AffixMgr::finishFileMgr(FileMgr* afflst)
  - BBCount: 108
    BranchProfiles: []
    Callsites:
    - Dst: FileMgr::FileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:323,1
    - Dst: FileMgr*::getline
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:331,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:332,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:339,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:340,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:345,1
    - Dst: parse_string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:346,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:346,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:347,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:353,1
    - Dst: parse_string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:354,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:354,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:355,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:361,1
    - Dst: parse_string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:362,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:362,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:363,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:373,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:377,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:378,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:379,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:385,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:387,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:388,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:392,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:393,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:400,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:401,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:402,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:408,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:410,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:411,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:415,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:416,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:423,1
    - Dst: AffixMgr::parse_num
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:424,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:425,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:431,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:432,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:433,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:439,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:440,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:441,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:447,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:448,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:449,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:454,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:458,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:462,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:466,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:470,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:474,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:478,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:479,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:480,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:485,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:486,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:487,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:493,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:494,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:495,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:501,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:502,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:503,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:509,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:510,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:511,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:517,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:518,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:519,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:525,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:526,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:527,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:533,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:534,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:535,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:541,1
    - Dst: AffixMgr::parse_num
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:542,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:543,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:551,1
    - Dst: AffixMgr::parse_cpdsyllable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:552,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:553,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:559,1
    - Dst: parse_string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:560,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:560,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:561,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:567,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:572,1
    - Dst: parse_array
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:573,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:574,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:575,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:582,1
    - Dst: parse_array
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:583,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:584,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:585,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:591,1
    - Dst: AffixMgr::parse_convtable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:592,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:593,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:599,1
    - Dst: AffixMgr::parse_convtable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:600,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:601,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:607,1
    - Dst: AffixMgr::parse_phonetable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:608,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:609,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:615,1
    - Dst: AffixMgr::parse_checkcpdtable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:616,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:617,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:623,1
    - Dst: AffixMgr::parse_defcpdtable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:624,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:625,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:631,1
    - Dst: AffixMgr::parse_maptable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:632,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:633,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:639,1
    - Dst: AffixMgr::parse_breaktable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:640,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:641,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:647,1
    - Dst: parse_string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:648,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:648,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:649,1
    - Dst: get_lang_num
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:652,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:655,1
    - Dst: std::string::find_first_not_of
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:656,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:658,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:662,1
    - Dst: AffixMgr::parse_num
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:663,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:664,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:669,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:672,1
    - Dst: AffixMgr::parse_num
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:673,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:674,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:679,1
    - Dst: AffixMgr::parse_num
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:680,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:681,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:686,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:690,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:694,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:699,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:700,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:701,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:707,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:708,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:709,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:715,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:716,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:717,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:722,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:727,1
    - Dst: AffixMgr::parse_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:728,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:729,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:734,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:741,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:743,1
    - Dst: memset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:747,1
    - Dst: AffixMgr::parse_affix
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:750,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:751,1
    - Dst: AffixMgr::finishFileMgr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:757,1
    - Dst: AffixMgr::process_pfx_order
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:786,1
    - Dst: AffixMgr::process_sfx_order
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:787,1
    CyclomaticComplexity: 108
    EdgeCount: 108
    ICount: 327
    argCount: 2
    argNames:
    - affpath
    - key
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 790
    functionName: AffixMgr::parse_file
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - get_lang_num
    - AffixMgr::parse_cpdsyllable
    - AffixMgr::parse_defcpdtable
    - std::string::substr
    - AffixMgr::finishFileMgr
    - FileMgr*::getlinenum
    - AffixMgr::parse_phonetable
    - AffixMgr::parse_affix
    - AffixMgr::parse_num
    - std::string::find_first_not_of
    - AffixMgr::parse_maptable
    - std::string::compare
    - std::string::erase
    - AffixMgr::parse_convtable
    - parse_string
    - AffixMgr::process_sfx_order
    - AffixMgr::process_pfx_order
    - FileMgr*::getline
    - AffixMgr::parse_checkcpdtable
    - parse_array
    - mychomp
    - AffixMgr::parse_flag
    - memset
    - FileMgr::FileMgr
    - AffixMgr::parse_breaktable
    linkageType: ''
    returnType: int
    signature: int AffixMgr::parse_file(const char* affpath, const char* key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:802,1
    - Dst: PfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:803,1
    - Dst: PfxEntry*::setFlgNxt
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:807,1
    - Dst: PfxEntry*::setNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:814,1
    - Dst: PfxEntry*::setNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:820,1
    - Dst: PfxEntry*::setNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:821,1
    - Dst: strcmp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:837,1
    - Dst: PfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:837,1
    - Dst: PfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:837,1
    - Dst: PfxEntry*::getNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:838,1
    - Dst: PfxEntry*::setNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:840,1
    - Dst: PfxEntry*::getNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:844,1
    - Dst: PfxEntry*::setNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:846,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - pfxptr
    argTypes:
    - PfxEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 852
    functionName: AffixMgr::build_pfxtree
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - PfxEntry*::getKey
    - PfxEntry*::setNext
    - strcmp
    - PfxEntry*::getNextNE
    - PfxEntry*::getNextEQ
    - PfxEntry*::setNextEQ
    - PfxEntry*::setNextNE
    - PfxEntry*::setFlgNxt
    - PfxEntry*::getFlag
    linkageType: ''
    returnType: int
    signature: int AffixMgr::build_pfxtree(PfxEntry* pfxptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SfxEntry*::initReverseWord
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:859,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:866,1
    - Dst: SfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:867,1
    - Dst: SfxEntry*::setFlgNxt
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:871,1
    - Dst: SfxEntry*::setNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:880,1
    - Dst: SfxEntry*::setNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:886,1
    - Dst: SfxEntry*::setNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:887,1
    - Dst: strcmp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:903,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:903,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:903,1
    - Dst: SfxEntry*::getNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:904,1
    - Dst: SfxEntry*::setNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:906,1
    - Dst: SfxEntry*::getNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:910,1
    - Dst: SfxEntry*::setNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:912,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - sfxptr
    argTypes:
    - SfxEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 918
    functionName: AffixMgr::build_sfxtree
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - SfxEntry*::setNextNE
    - SfxEntry*::setNext
    - SfxEntry*::setFlgNxt
    - SfxEntry*::setNextEQ
    - SfxEntry*::getNextNE
    - SfxEntry*::getFlag
    - strcmp
    - SfxEntry*::getNextEQ
    - SfxEntry*::getKey
    - SfxEntry*::initReverseWord
    linkageType: ''
    returnType: int
    signature: int AffixMgr::build_sfxtree(SfxEntry* sfxptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AffixMgr::process_pfx_in_order
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 926
    functionName: AffixMgr::process_pfx_tree_to_list
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - AffixMgr::process_pfx_in_order
    linkageType: ''
    returnType: int
    signature: int AffixMgr::process_pfx_tree_to_list()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AffixMgr::process_pfx_in_order
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:930,1
    - Dst: PfxEntry*::getNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:930,1
    - Dst: PfxEntry*::setNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:931,1
    - Dst: AffixMgr::process_pfx_in_order
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:932,1
    - Dst: PfxEntry*::getNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - nptr
    argTypes:
    - PfxEntry*
    - PfxEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 935
    functionName: AffixMgr::process_pfx_in_order
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 2
    functionsReached:
    - PfxEntry*::setNext
    - PfxEntry*::getNextEQ
    - AffixMgr::process_pfx_in_order
    - PfxEntry*::getNextNE
    linkageType: ''
    returnType: PfxEntry
    signature: PfxEntry * AffixMgr::process_pfx_in_order(PfxEntry* ptr, PfxEntry*
      nptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AffixMgr::process_sfx_in_order
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 943
    functionName: AffixMgr::process_sfx_tree_to_list
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - AffixMgr::process_sfx_in_order
    linkageType: ''
    returnType: int
    signature: int AffixMgr::process_sfx_tree_to_list()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AffixMgr::process_sfx_in_order
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:947,1
    - Dst: SfxEntry*::getNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:947,1
    - Dst: SfxEntry*::setNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:948,1
    - Dst: AffixMgr::process_sfx_in_order
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:949,1
    - Dst: SfxEntry*::getNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - nptr
    argTypes:
    - SfxEntry*
    - SfxEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 952
    functionName: AffixMgr::process_sfx_in_order
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 2
    functionsReached:
    - AffixMgr::process_sfx_in_order
    - SfxEntry*::setNext
    - SfxEntry*::getNextNE
    - SfxEntry*::getNextEQ
    linkageType: ''
    returnType: SfxEntry
    signature: SfxEntry * AffixMgr::process_sfx_in_order(SfxEntry* ptr, SfxEntry*
      nptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:970,1
    - Dst: PfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:971,1
    - Dst: PfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:972,1
    - Dst: AffixMgr::isSubset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:973,1
    - Dst: PfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:973,1
    - Dst: PfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:973,1
    - Dst: PfxEntry*::setNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:976,1
    - Dst: PfxEntry*::setNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:977,1
    - Dst: PfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:978,1
    - Dst: AffixMgr::isSubset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:979,1
    - Dst: PfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:979,1
    - Dst: PfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:979,1
    - Dst: getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:979,1
    - Dst: PfxEntry*::setNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:980,1
    - Dst: PfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:980,1
    - Dst: PfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:989,1
    - Dst: PfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:990,1
    - Dst: PfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:992,1
    - Dst: AffixMgr::isSubset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:993,1
    - Dst: PfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:993,1
    - Dst: PfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:993,1
    - Dst: PfxEntry*::setNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:998,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 1002
    functionName: AffixMgr::process_pfx_order
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - PfxEntry*::getKey
    - AffixMgr::isSubset
    - getKey
    - PfxEntry*::getNext
    - PfxEntry*::setNextEQ
    - PfxEntry*::setNextNE
    linkageType: ''
    returnType: int
    signature: int AffixMgr::process_pfx_order()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1020,1
    - Dst: SfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1021,1
    - Dst: SfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1022,1
    - Dst: AffixMgr::isSubset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1023,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1023,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1023,1
    - Dst: SfxEntry*::setNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1026,1
    - Dst: SfxEntry*::setNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1027,1
    - Dst: SfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1028,1
    - Dst: AffixMgr::isSubset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1029,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1029,1
    - Dst: SfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1029,1
    - Dst: getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1029,1
    - Dst: SfxEntry*::setNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1030,1
    - Dst: SfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1030,1
    - Dst: SfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1039,1
    - Dst: SfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1040,1
    - Dst: SfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1042,1
    - Dst: AffixMgr::isSubset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1043,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1043,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1043,1
    - Dst: SfxEntry*::setNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1048,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1052
    functionName: AffixMgr::process_sfx_order
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - SfxEntry*::setNextNE
    - AffixMgr::isSubset
    - SfxEntry*::setNextEQ
    - getKey
    - SfxEntry*::getNext
    - SfxEntry*::getKey
    linkageType: ''
    returnType: int
    signature: int AffixMgr::process_sfx_order()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1056,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1057,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1058,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - flag
    argTypes:
    - std::string
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1061
    functionName: '& AffixMgr::debugflag(std::string& result, unsigned short flag)'
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - encode_flag
    - append
    - push_back
    linkageType: ''
    returnType: std::string
    signature: std::string & AffixMgr::debugflag(std::string& result, unsigned short
      flag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1069,1
    - Dst: utf8_next
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1081,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1085
    functionName: AffixMgr::condlen
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - size
    - utf8_next
    linkageType: ''
    returnType: int
    signature: int AffixMgr::condlen(const std::string& s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1088,1
    - Dst: AffixMgr::condlen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1089,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1090,1
    - Dst: std::min<size_t>
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1091,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1092,1
    - Dst: data
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1092,1
    - Dst: memset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1095,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1100,1
    - Dst: char::char
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1101,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1102,1
    - Dst: data
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ' entry'
    - ' cs'
    argTypes:
    - AffEntry
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1087
    functionDepth: 2
    functionLinenumber: 1087
    functionLinenumberEnd: 1110
    functionName: AffixMgr::encodeit
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - char::char
    - AffixMgr::condlen
    - std::min<size_t>
    - size
    - memset
    - data
    - memcpy
    - compare
    linkageType: ''
    returnType: int
    signature: int AffixMgr::encodeit(AffEntry& entry, const std::string& cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1119
    functionName: AffixMgr::isSubset
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AffixMgr::isSubset(const char* s1, const char* s2)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: trace_on
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1136,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1145,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1146,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1146,1
    - Dst: PfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1146,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1149,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1150,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1150,1
    - Dst: PfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1150,1
    - Dst: PfxEntry*::checkword
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1153,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1155,1
    - Dst: AffixMgr::trace_avoidflag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1156,1
    - Dst: PfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1164,1
    - Dst: AffixMgr::isSubset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1172,1
    - Dst: PfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1172,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1172,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1176,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1177,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1177,1
    - Dst: PfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1177,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1180,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1180,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1180,1
    - Dst: PfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1181,1
    - Dst: PfxEntry*::checkword
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1184,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1185,1
    - Dst: AffixMgr::trace_avoidflag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1186,1
    - Dst: PfxEntry*::getNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1194,1
    - Dst: PfxEntry*::getNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1196,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1203,1
    - Dst: substr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1203,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 42
    argCount: 7
    argNames:
    - ' word'
    - start
    - len
    - in_compound
    - ' scratch'
    - needflag
    - avoidflag
    argTypes:
    - std::string
    - int
    - int
    - char
    - AffixScratch
    - FLAG
    - FLAG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1122
    functionDepth: 1
    functionLinenumber: 1122
    functionLinenumberEnd: 1206
    functionName: AffixMgr::prefix_check
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - PfxEntry*::getKey
    - c_str
    - PfxEntry*::getCont
    - AffixMgr::isSubset
    - trace_on
    - trace
    - TESTAFF
    - AffixMgr::trace_avoidflag
    - substr
    - PfxEntry*::getNextNE
    - PfxEntry*::getNext
    - PfxEntry*::getContLen
    - PfxEntry*::getNextEQ
    - PfxEntry*::checkword
    linkageType: ''
    returnType: struct hentry
    signature: "struct hentry * AffixMgr::prefix_check(const std::string& word,\n
      \                                     int start,\n                                      int
      len,\n                                      char in_compound,\n                                      AffixScratch&
      scratch,\n                                      const FLAG needflag,\n                                      const
      FLAG avoidflag)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PfxEntry*::check_twosfx
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1225,1
    - Dst: PfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1228,1
    - Dst: AffixMgr::isSubset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1236,1
    - Dst: PfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1236,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1236,1
    - Dst: PfxEntry*::check_twosfx
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1237,1
    - Dst: PfxEntry*::getNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1242,1
    - Dst: PfxEntry*::getNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 6
    argNames:
    - ' word'
    - start
    - len
    - in_compound
    - ' scratch'
    - needflag
    argTypes:
    - std::string
    - int
    - int
    - char
    - AffixScratch
    - FLAG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1249
    functionName: AffixMgr::prefix_check_twosfx
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - PfxEntry*::getKey
    - c_str
    - AffixMgr::isSubset
    - PfxEntry*::check_twosfx
    - PfxEntry*::getNextNE
    - PfxEntry*::getNext
    - PfxEntry*::getNextEQ
    linkageType: ''
    returnType: struct hentry
    signature: "struct hentry * AffixMgr::prefix_check_twosfx(const std::string& word,\n
      \                                            int start,\n                                             int
      len,\n                                             char in_compound,\n                                             AffixScratch&
      scratch,\n                                             const FLAG needflag)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PfxEntry*::check_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1269,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1270,1
    - Dst: DistinctRecords::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1271,1
    - Dst: PfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1273,1
    - Dst: AffixMgr::isSubset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1281,1
    - Dst: PfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1281,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1281,1
    - Dst: PfxEntry*::check_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1282,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1283,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1286,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1286,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1286,1
    - Dst: PfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1287,1
    - Dst: DistinctRecords::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1288,1
    - Dst: PfxEntry*::getNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1292,1
    - Dst: PfxEntry*::getNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1294,1
    - Dst: DistinctRecords::join
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1298,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 6
    argNames:
    - ' word'
    - start
    - len
    - in_compound
    - ' scratch'
    - needflag
    argTypes:
    - std::string
    - int
    - int
    - char
    - AffixScratch
    - FLAG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1252
    functionDepth: 1
    functionLinenumber: 1252
    functionLinenumberEnd: 1299
    functionName: AffixMgr::prefix_check_morph
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - PfxEntry*::getKey
    - c_str
    - PfxEntry*::getNextEQ
    - AffixMgr::isSubset
    - PfxEntry*::getCont
    - std::string::empty
    - DistinctRecords::join
    - DistinctRecords::append
    - TESTAFF
    - PfxEntry*::getNextNE
    - PfxEntry*::getNext
    - PfxEntry*::getContLen
    - PfxEntry*::check_morph
    linkageType: ''
    returnType: std::string
    signature: "std::string AffixMgr::prefix_check_morph(const std::string& word,\n
      \                                        int start,\n                                         int
      len,\n                                         char in_compound,\n                                         AffixScratch&
      scratch,\n                                         const FLAG needflag)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PfxEntry*::check_twosfx_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1318,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1319,1
    - Dst: DistinctRecords::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1320,1
    - Dst: PfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1322,1
    - Dst: AffixMgr::isSubset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1330,1
    - Dst: PfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1330,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1330,1
    - Dst: PfxEntry*::check_twosfx_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1331,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1332,1
    - Dst: DistinctRecords::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1333,1
    - Dst: PfxEntry*::getNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1336,1
    - Dst: PfxEntry*::getNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1338,1
    - Dst: DistinctRecords::join
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - ' word'
    - start
    - len
    - in_compound
    - ' scratch'
    - needflag
    argTypes:
    - std::string
    - int
    - int
    - char
    - AffixScratch
    - FLAG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1302
    functionDepth: 1
    functionLinenumber: 1302
    functionLinenumberEnd: 1343
    functionName: AffixMgr::prefix_check_twosfx_morph
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - PfxEntry*::getKey
    - c_str
    - AffixMgr::isSubset
    - std::string::empty
    - PfxEntry*::check_twosfx_morph
    - DistinctRecords::join
    - DistinctRecords::append
    - PfxEntry*::getNextNE
    - PfxEntry*::getNext
    - PfxEntry*::getNextEQ
    linkageType: ''
    returnType: std::string
    signature: "std::string AffixMgr::prefix_check_twosfx_morph(const std::string&
      word,\n                                                int start,\n                                                int
      len,\n                                                char in_compound,\n                                                AffixScratch&
      scratch,\n                                                const FLAG needflag)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_reptable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1351,1
    - Dst: get_reptable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1356,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1357,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1362,1
    - Dst: pattern::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1364,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1366,1
    - Dst: std::string::replace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1368,1
    - Dst: AffixMgr::candidate_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1369,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 5
    argNames:
    - ' in_word'
    - wl
    - ' scratch'
    - ' timelimit_exceeded'
    - clock_time_start
    argTypes:
    - std::string
    - int
    - AffixScratch
    - bool
    - std::chrono::steady_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1346
    functionDepth: 1
    functionLinenumber: 1346
    functionLinenumberEnd: 1377
    functionName: AffixMgr::cpdrep_check
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - get_reptable
    - std::string::replace
    - empty
    - AffixMgr::candidate_check
    - std::string::find
    - std::chrono::steady_clock::now
    - pattern::size
    linkageType: ''
    returnType: int
    signature: "int AffixMgr::cpdrep_check(const std::string& in_word,\n                           int
      wl,\n                           AffixScratch& scratch,\n                           bool&
      timelimit_exceeded,\n                           std::chrono::steady_clock::time_point
      clock_time_start)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: trace_on
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1386,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1396,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1397,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1402,1
    - Dst: std::string::insert
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1404,1
    - Dst: AffixMgr::candidate_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1405,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1410,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1417,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1417,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1419,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 5
    argNames:
    - ' word'
    - wl
    - ' scratch'
    - ' timelimit_exceeded'
    - clock_time_start
    argTypes:
    - std::string
    - int
    - AffixScratch
    - bool
    - std::chrono::steady_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1381
    functionDepth: 1
    functionLinenumber: 1381
    functionLinenumberEnd: 1423
    functionName: AffixMgr::cpdwordpair_check
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - std::string::size
    - std::string::erase
    - trace_on
    - trace
    - std::string::c_str
    - AffixMgr::candidate_check
    - std::chrono::steady_clock::now
    - std::string::insert
    - is_utf8_cont
    linkageType: ''
    returnType: int
    signature: "int AffixMgr::cpdwordpair_check(const std::string& word,\n                                int
      wl,\n                                AffixScratch& scratch,\n                                bool&
      timelimit_exceeded,\n                                std::chrono::steady_clock::time_point
      clock_time_start)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pAMgr
    - cond
    argTypes:
    - AffixMgr*
    - FLAG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1426
    functionDepth: 1
    functionLinenumber: 1426
    functionLinenumberEnd: 1430
    functionName: trace_cond_flag
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - trace_flag
    linkageType: ''
    returnType: std::string
    signature: std::string trace_cond_flag(const AffixMgr* pAMgr, FLAG cond)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1436,1
    - Dst: trace_flags
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pAMgr
    - entry
    argTypes:
    - AffixMgr*
    - hentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1438
    functionName: trace_join_word
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - std::string
    - trace_flags
    linkageType: ''
    returnType: std::string
    signature: std::string trace_join_word(const AffixMgr* pAMgr, const hentry* entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1443,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1444,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1444,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1444,1
    - Dst: PfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1444,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1445,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1445,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1445,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1445,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 4
    argNames:
    - entry
    - cond
    - p
    - s
    argTypes:
    - hentry*
    - FLAG
    - PfxEntry*
    - SfxEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1442
    functionDepth: 1
    functionLinenumber: 1442
    functionLinenumberEnd: 1446
    functionName: join_side_has_flag
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - SfxEntry*::getCont
    - PfxEntry*::getCont
    - SfxEntry*::getContLen
    - TESTAFF
    - PfxEntry*::getContLen
    linkageType: ''
    returnType: bool
    signature: bool join_side_has_flag(const hentry* entry, FLAG cond, PfxEntry* p,
      SfxEntry* s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: AffixMgr::isSubset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1461,1
    - Dst: pattern2::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1461,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1461,1
    - Dst: join_side_has_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1463,1
    - Dst: join_side_has_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1465,1
    - Dst: pattern::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1469,1
    - Dst: strncmp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1471,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1471,1
    - Dst: pattern::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1473,1
    - Dst: strncmp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1474,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1474,1
    - Dst: pattern::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1474,1
    - Dst: trace_cond_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1477,1
    - Dst: trace_cond_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1478,1
    - Dst: trace_join_word
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1479,1
    - Dst: trace_join_word
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1480,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1482,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1482,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1484,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1485,1
    - Dst: pattern2::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1485,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1487,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1487,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1488,1
    - Dst: trace_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1488,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1490,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1490,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1491,1
    - Dst: trace_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1491,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1493,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1494,1
    - Dst: pattern::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1494,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 16
    argCount: 9
    argNames:
    - ' word'
    - pos
    - r1
    - r2
    - t
    - p1
    - s1
    - p2
    - s2
    argTypes:
    - std::string
    - size_t
    - hentry*
    - hentry*
    - TraceCtx*
    - PfxEntry*
    - SfxEntry*
    - PfxEntry*
    - SfxEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1449
    functionDepth: 2
    functionLinenumber: 1449
    functionLinenumberEnd: 1501
    functionName: AffixMgr::cpdpat_check
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - trace_join_word
    - trace_flag
    - c_str
    - strncmp
    - AffixMgr::isSubset
    - join_side_has_flag
    - trace
    - std::string::c_str
    - pattern2::c_str
    - pattern::c_str
    - std::string
    - pattern::empty
    - pattern::size
    - trace_cond_flag
    linkageType: ''
    returnType: int
    signature: "int AffixMgr::cpdpat_check(const std::string& word,\n                           size_t
      pos,\n                           hentry* r1,\n                           hentry*
      r2,\n                           const char /*affixed*/,\n                           const
      TraceCtx* t,\n                           PfxEntry* p1,\n                           SfxEntry*
      s1,\n                           PfxEntry* p2,\n                           SfxEntry*
      s2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1508,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1509,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1513,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1514,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1515,1
    - Dst: unicodetoupper
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1516,1
    - Dst: unicodetolower
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1516,1
    - Dst: unicodetoupper
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1517,1
    - Dst: unicodetolower
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1517,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 12
    argCount: 2
    argNames:
    - ' word'
    - pos
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1505
    functionDepth: 1
    functionLinenumber: 1505
    functionLinenumberEnd: 1526
    functionName: AffixMgr::cpdcase_check
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - c_str
    - unicodetolower
    - u8_u16
    - std::vector::size
    - unicodetoupper
    - is_utf8_cont
    linkageType: ''
    returnType: int
    signature: int AffixMgr::cpdcase_check(const std::string& word, int pos)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1575,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1594,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1595,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1606,1
    - Dst: std::vector::resize
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1618,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1625,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1632,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1638,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1638,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1642,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1655,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1659,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1660,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1664,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 93
    argCount: 6
    argNames:
    - words
    - wnum
    - maxwordnum
    - rv
    - def
    - all
    argTypes:
    - hentry***
    - short
    - short
    - hentry*
    - hentry**
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1671
    functionName: AffixMgr::defcpd_check
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - size
    - TESTAFF
    - std::vector::resize
    linkageType: ''
    returnType: int
    signature: "int AffixMgr::defcpd_check(hentry*** words,\n                           short
      wnum,\n                           short maxwordnum,\n                           hentry*
      rv,\n                           hentry** def,\n                           char
      all)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AffixMgr::lookup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1675,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1675,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1675,1
    - Dst: AffixMgr::affix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1682,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' word'
    - ' scratch'
    argTypes:
    - std::string
    - AffixScratch
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1673
    functionDepth: 1
    functionLinenumber: 1673
    functionLinenumberEnd: 1686
    functionName: AffixMgr::candidate_check
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 2
    functionsReached:
    - AffixMgr::affix_check
    - AffixMgr::lookup
    - size
    - c_str
    linkageType: ''
    returnType: int
    signature: int AffixMgr::candidate_check(const std::string& word, AffixScratch&
      scratch)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::count_if
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1696,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1696,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1696,1
    - Dst: std::binary_search
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1698,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1698,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1698,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1700,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1702,1
    - Dst: std::count_if
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1703,1
    - Dst: std::vector::begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1703,1
    - Dst: std::vector::end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1703,1
    - Dst: std::binary_search
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1705,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1705,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1689
    functionDepth: 1
    functionLinenumber: 1689
    functionLinenumberEnd: 1710
    functionName: AffixMgr::get_syllable
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - end
    - std::binary_search
    - u8_u16
    - empty
    - begin
    - std::count_if
    - std::vector::end
    linkageType: ''
    returnType: short
    signature: short AffixMgr::get_syllable(const std::string& word)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1716,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1720,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 4
    argNames:
    - cmin
    - cmax
    - word
    - len
    argTypes:
    - size_t*
    - size_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1712
    functionDepth: 1
    functionLinenumber: 1712
    functionLinenumberEnd: 1727
    functionName: AffixMgr::setcminmax
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 3
    functionsReached:
    - is_utf8_cont
    linkageType: ''
    returnType: void
    signature: void AffixMgr::setcminmax(size_t* cmin, size_t* cmax, const char* word,
      size_t len)
  - BBCount: 81
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1749,1
    - Dst: trace_on
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1751,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1766,1
    - Dst: AffixMgr::setcminmax
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1776,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1776,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1778,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1783,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1801,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1803,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1809,1
    - Dst: pattern3::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1810,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1811,1
    - Dst: compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1812,1
    - Dst: pattern3::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1812,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1816,1
    - Dst: std::string::replace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1818,1
    - Dst: pattern::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1820,1
    - Dst: std::string::replace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1821,1
    - Dst: std::string::replace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1822,1
    - Dst: pattern2::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1822,1
    - Dst: substr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1823,1
    - Dst: pattern3::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1823,1
    - Dst: pattern::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1826,1
    - Dst: pattern2::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1827,1
    - Dst: pattern3::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1828,1
    - Dst: AffixMgr::setcminmax
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1831,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1831,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1836,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1844,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1845,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1845,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1847,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1848,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1848,1
    - Dst: AffixMgr::lookup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1860,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1860,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1863,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1863,1
    - Dst: trace_flags
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1864,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1866,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1866,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1872,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1877,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1893,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1895,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1897,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1899,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1900,1
    - Dst: AffixMgr::defcpd_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1902,1
    - Dst: AffixMgr::defcpd_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1904,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1906,1
    - Dst: AffixMgr::prefix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1917,1
    - Dst: AffixMgr::suffix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1920,1
    - Dst: AffixMgr::suffix_check_twosfx
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1921,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1922,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1923,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1923,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1923,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1924,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1924,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1924,1
    - Dst: AffixMgr::suffix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1931,1
    - Dst: AffixMgr::suffix_check_twosfx
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1932,1
    - Dst: AffixMgr::prefix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1934,1
    - Dst: AffixMgr::suffix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1936,1
    - Dst: AffixMgr::suffix_check_twosfx
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1937,1
    - Dst: AffixMgr::prefix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1939,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1942,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1943,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1944,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1946,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1954,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1955,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1955,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1955,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1956,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1957,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1957,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1958,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1964,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1965,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1965,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1965,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1966,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1967,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1967,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1967,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1974,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1975,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1975,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1975,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1976,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1977,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1977,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1977,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1983,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1984,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1985,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1991,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:1998,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2000,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2002,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2006,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2009,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2010,1
    - Dst: join_side_has_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2016,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2018,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2023,1
    - Dst: AffixMgr::cpdcase_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2024,1
    - Dst: AffixMgr::affix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2027,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2028,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2030,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2030,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2031,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2032,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2033,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2034,1
    - Dst: AffixMgr::get_syllable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2039,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2039,1
    - Dst: AffixMgr::get_syllable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2042,1
    - Dst: getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2042,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2062,1
    - Dst: AffixMgr::lookup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2066,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2066,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2066,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2069,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2069,1
    - Dst: trace_flags
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2070,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2072,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2072,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2076,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2077,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2078,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2079,1
    - Dst: AffixMgr::defcpd_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2079,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2081,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2087,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2100,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2101,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2108,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2114,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2115,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2117,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2126,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2127,1
    - Dst: AffixMgr::get_syllable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2130,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2130,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2130,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2134,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2135,1
    - Dst: AffixMgr::cpdpat_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2135,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2140,1
    - Dst: AffixMgr::cpdrep_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2143,1
    - Dst: AffixMgr::cpdwordpair_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2144,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2158,1
    - Dst: AffixMgr::affix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2158,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2158,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2163,1
    - Dst: AffixMgr::affix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2164,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2164,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2167,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2168,1
    - Dst: AffixMgr::affix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2169,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2169,1
    - Dst: AffixMgr::defcpd_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2170,1
    - Dst: join_side_has_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2178,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2183,1
    - Dst: AffixMgr::cpdpat_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2184,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2188,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2189,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2189,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2190,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2191,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2192,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2192,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2193,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2199,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2205,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2206,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2208,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2217,1
    - Dst: AffixMgr::get_syllable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2219,1
    - Dst: substr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2219,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2226,1
    - Dst: short
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2227,1
    - Dst: AffixMgr::get_syllable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2227,1
    - Dst: short
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2229,1
    - Dst: AffixMgr::get_syllable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2234,1
    - Dst: getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2234,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2240,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2251,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2261,1
    - Dst: AffixMgr::cpdrep_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2274,1
    - Dst: AffixMgr::cpdwordpair_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2275,1
    - Dst: AffixMgr::compound_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2286,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2286,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2290,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2290,1
    - Dst: AffixMgr::cpdpat_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2292,1
    - Dst: AffixMgr::cpdpat_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2294,1
    - Dst: AffixMgr::cpdwordpair_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2303,1
    - Dst: AffixMgr::cpdrep_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2307,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2311,1
    - Dst: compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2311,1
    - Dst: AffixMgr::cpdrep_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2315,1
    - Dst: AffixMgr::cpdwordpair_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2316,1
    - Dst: AffixMgr::lookup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2322,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2322,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2322,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2323,1
    - Dst: AffixMgr::affix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2324,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2326,1
    - Dst: strncmp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2327,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2327,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2356,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2364,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2372,1
    CyclomaticComplexity: 350
    EdgeCount: 350
    ICount: 287
    argCount: 11
    argNames:
    - ' word'
    - wordnum
    - numsyllable
    - maxwordnum
    - wnum
    - words
    - rwords
    - hu_mov_rule
    - is_sug
    - info
    - ' scratch'
    argTypes:
    - std::string
    - short
    - short
    - short
    - short
    - hentry**
    - hentry**
    - char
    - char
    - int*
    - AffixScratch
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 1731
    functionDepth: 3
    functionLinenumber: 1731
    functionLinenumberEnd: 2377
    functionName: AffixMgr::compound_check
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - std::string::assign
    - std::string::size
    - trace
    - std::string::c_str
    - AffixMgr::suffix_check
    - getKey
    - TESTAFF
    - getCont
    - pattern::size
    - AffixMgr::lookup
    - std::string::substr
    - AffixMgr::cpdrep_check
    - pattern3::empty
    - join_side_has_flag
    - AffixMgr::prefix_check
    - std::string
    - AffixMgr::setcminmax
    - reverseword
    - std::chrono::steady_clock::now
    - AffixMgr::compound_check
    - getContLen
    - pattern3::size
    - AffixMgr::defcpd_check
    - std::string::replace
    - short
    - strncmp
    - empty
    - HUNSPELL_WARNING
    - size
    - HENTRY_WORD
    - AffixMgr::cpdwordpair_check
    - compare
    - AffixMgr::cpdcase_check
    - AffixMgr::affix_check
    - AffixMgr::cpdpat_check
    - c_str
    - trace_on
    - pattern2::size
    - AffixMgr::get_syllable
    - AffixMgr::suffix_check_twosfx
    - trace_flags
    - substr
    - is_utf8_cont
    linkageType: ''
    returnType: struct hentry
    signature: "struct hentry * AffixMgr::compound_check(const std::string& word,\n
      \                                       short wordnum,\n                                        short
      numsyllable,\n                                        short maxwordnum,\n                                        short
      wnum,\n                                        hentry** words,\n                                        hentry**
      rwords,\n                                        char hu_mov_rule,\n                                        char
      is_sug,\n                                        int* info,\n                                        AffixScratch&
      scratch)"
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2399,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2412,1
    - Dst: AffixMgr::setcminmax
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2422,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2422,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2424,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2429,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2441,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2446,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2453,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2464,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2466,1
    - Dst: AffixMgr::lookup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2468,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2468,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2473,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2478,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2480,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2482,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2484,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2485,1
    - Dst: AffixMgr::defcpd_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2487,1
    - Dst: AffixMgr::defcpd_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2489,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2498,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2499,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2500,1
    - Dst: HENTRY_FIND
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2501,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2502,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2503,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2504,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2506,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2507,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2508,1
    - Dst: HENTRY_DATA2
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2508,1
    - Dst: AffixMgr::prefix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2515,1
    - Dst: AffixMgr::suffix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2517,1
    - Dst: AffixMgr::suffix_check_twosfx
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2518,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2519,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2520,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2520,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2520,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2521,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2521,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2521,1
    - Dst: AffixMgr::suffix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2528,1
    - Dst: AffixMgr::suffix_check_twosfx
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2529,1
    - Dst: AffixMgr::prefix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2531,1
    - Dst: AffixMgr::suffix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2533,1
    - Dst: AffixMgr::suffix_check_twosfx
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2534,1
    - Dst: AffixMgr::prefix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2536,1
    - Dst: AffixMgr::affix_check_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2539,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2540,1
    - Dst: AffixMgr::affix_check_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2542,1
    - Dst: AffixMgr::affix_check_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2544,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2547,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2548,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2549,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2550,1
    - Dst: line_uniq_app
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2551,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2552,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2553,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2554,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2559,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2560,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2561,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2568,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2569,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2569,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2569,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2570,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2571,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2571,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2571,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2577,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2578,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2578,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2578,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2579,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2580,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2580,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2580,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2587,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2588,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2588,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2588,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2589,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2590,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2590,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2590,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2595,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2596,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2601,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2607,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2608,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2609,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2613,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2613,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2613,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2622,1
    - Dst: AffixMgr::cpdpat_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2622,1
    - Dst: AffixMgr::cpdcase_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2623,1
    - Dst: AffixMgr::affix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2625,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2626,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2627,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2627,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2627,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2628,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2628,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2628,1
    - Dst: AffixMgr::get_syllable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2634,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2634,1
    - Dst: AffixMgr::get_syllable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2638,1
    - Dst: getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2638,1
    - Dst: AffixMgr::lookup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2645,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2645,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2645,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2648,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2649,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2650,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2651,1
    - Dst: AffixMgr::defcpd_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2651,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2656,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2657,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2658,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2659,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2659,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2660,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2661,1
    - Dst: HENTRY_DATA2
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2661,1
    - Dst: HENTRY_FIND
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2662,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2663,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2664,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2665,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2665,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2668,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2669,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2670,1
    - Dst: HENTRY_DATA2
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2670,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2672,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2681,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2682,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2688,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2694,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2695,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2705,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2706,1
    - Dst: AffixMgr::get_syllable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2709,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2709,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2709,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2713,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2714,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2715,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2716,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2716,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2718,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2720,1
    - Dst: HENTRY_DATA2
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2720,1
    - Dst: HENTRY_FIND
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2721,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2722,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2723,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2724,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2724,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2728,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2729,1
    - Dst: HENTRY_DATA2
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2729,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2732,1
    - Dst: AffixMgr::affix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2744,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2744,1
    - Dst: AffixMgr::affix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2751,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2751,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2754,1
    - Dst: AffixMgr::affix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2755,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2755,1
    - Dst: AffixMgr::defcpd_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2756,1
    - Dst: AffixMgr::affix_check_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2759,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2759,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2760,1
    - Dst: AffixMgr::affix_check_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2761,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2761,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2763,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2764,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2765,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2766,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2767,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2767,1
    - Dst: line_uniq_app
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2768,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2769,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2771,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2778,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2779,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2779,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2779,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2780,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2781,1
    - Dst: getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2781,1
    - Dst: getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2782,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2788,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2789,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2790,1
    - Dst: AffixMgr::get_syllable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2797,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2797,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2803,1
    - Dst: short
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2804,1
    - Dst: AffixMgr::get_syllable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2804,1
    - Dst: short
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2806,1
    - Dst: AffixMgr::get_syllable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2811,1
    - Dst: getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2811,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2817,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2828,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2838,1
    - Dst: AffixMgr::affix_check_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2851,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2851,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2852,1
    - Dst: AffixMgr::affix_check_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2853,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2853,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2855,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2856,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2857,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2858,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2859,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2859,1
    - Dst: line_uniq_app
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2860,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2861,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2862,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2864,1
    - Dst: AffixMgr::compound_check_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2873,1
    - Dst: substr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2873,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2884,1
    CyclomaticComplexity: 269
    EdgeCount: 269
    ICount: 272
    argCount: 11
    argNames:
    - ' word'
    - wordnum
    - numsyllable
    - maxwordnum
    - wnum
    - words
    - rwords
    - hu_mov_rule
    - ' result'
    - partresult
    - ' scratch'
    argTypes:
    - std::string
    - short
    - short
    - short
    - short
    - hentry**
    - hentry**
    - char
    - std::string
    - std::string*
    - AffixScratch
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2888
      start: 2381
    functionDepth: 3
    functionLinenumber: 2381
    functionLinenumberEnd: 2888
    functionName: AffixMgr::compound_check_morph
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - std::string::assign
    - std::string::size
    - std::string::c_str
    - AffixMgr::suffix_check
    - getKey
    - AffixMgr::affix_check_morph
    - TESTAFF
    - getCont
    - AffixMgr::lookup
    - std::string::substr
    - AffixMgr::prefix_check
    - std::string
    - AffixMgr::setcminmax
    - reverseword
    - std::chrono::steady_clock::now
    - HENTRY_FIND
    - getContLen
    - HENTRY_DATA2
    - AffixMgr::defcpd_check
    - short
    - append
    - empty
    - HENTRY_DATA
    - size
    - HENTRY_WORD
    - clear
    - AffixMgr::cpdcase_check
    - AffixMgr::cpdpat_check
    - AffixMgr::affix_check
    - line_uniq_app
    - c_str
    - std::string::empty
    - AffixMgr::compound_check_morph
    - push_back
    - AffixMgr::get_syllable
    - AffixMgr::suffix_check_twosfx
    - substr
    - is_utf8_cont
    linkageType: ''
    returnType: int
    signature: "int AffixMgr::compound_check_morph(const std::string& word,\n                                   short
      wordnum,\n                                   short numsyllable,\n                                   short
      maxwordnum,\n                                   short wnum,\n                                   hentry**
      words,\n                                   hentry** rwords,\n                                   char
      hu_mov_rule,\n                                   std::string& result,\n                                   const
      std::string* partresult,\n                                   AffixScratch& scratch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - s1
    - end_of_s2
    - len
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2891
    functionDepth: 0
    functionLinenumber: 2891
    functionLinenumberEnd: 2900
    functionName: AffixMgr::isRevSubset
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int AffixMgr::isRevSubset(const char* s1,\n                                 const
      char* end_of_s2,\n                                 int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2907,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2908,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2908,1
    - Dst: PfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2908,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2909,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2910,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2910,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2910,1
    - Dst: trace_circumfix
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2912,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - pfx
    - sfx
    - t
    argTypes:
    - PfxEntry*
    - SfxEntry*
    - TraceCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2914
      start: 2904
    functionDepth: 1
    functionLinenumber: 2904
    functionLinenumberEnd: 2914
    functionName: AffixMgr::circumfix_ok
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - SfxEntry*::getCont
    - PfxEntry*::getCont
    - SfxEntry*::getContLen
    - trace_circumfix
    - TESTAFF
    - PfxEntry*::getContLen
    linkageType: ''
    returnType: bool
    signature: bool AffixMgr::circumfix_ok(PfxEntry* pfx, SfxEntry* sfx, const TraceCtx*
      t) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - t
    - avoidflag
    - stem
    argTypes:
    - TraceCtx*
    - FLAG
    - struct hentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2928
      start: 2920
    functionDepth: 1
    functionLinenumber: 2920
    functionLinenumberEnd: 2928
    functionName: AffixMgr::trace_avoidflag
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - trace_test
    linkageType: ''
    returnType: void
    signature: "void AffixMgr::trace_avoidflag(TraceCtx* t,\n                               const
      FLAG avoidflag,\n                               const struct hentry* stem) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2938,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2939,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2939,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2939,1
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2941,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2942,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2942,1
    - Dst: AffixMgr::circumfix_ok
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2947,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2951,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2952,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2952,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2952,1
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2954,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2955,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2955,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2962,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2963,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2963,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2963,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2964,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2965,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2965,1
    - Dst: PfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2965,1
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2967,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2967,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2968,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 19
    argCount: 5
    argNames:
    - pfx
    - sfx
    - cclass
    - in_compound
    - t
    argTypes:
    - PfxEntry*
    - SfxEntry*
    - FLAG
    - char
    - TraceCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2974
      start: 2930
    functionDepth: 2
    functionLinenumber: 2930
    functionLinenumberEnd: 2974
    functionName: AffixMgr::suffix_applicable
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - SfxEntry*::getCont
    - PfxEntry*::getCont
    - SfxEntry*::getContLen
    - AffixMgr::circumfix_ok
    - trace_test
    - TESTAFF
    - PfxEntry*::getContLen
    linkageType: ''
    returnType: bool
    signature: "bool AffixMgr::suffix_applicable(PfxEntry* pfx,\n                                 SfxEntry*
      sfx,\n                                 const FLAG cclass,\n                                 char
      in_compound,\n                                 const TraceCtx* t) const"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: trace_on
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2989,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2995,1
    - Dst: substr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:2995,1
    - Dst: trace_affix
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3005,1
    - Dst: AffixMgr::suffix_applicable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3007,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3014,1
    - Dst: AffixMgr::suffix_applicable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3015,1
    - Dst: SfxEntry*::checkword
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3017,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3022,1
    - Dst: AffixMgr::trace_avoidflag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3023,1
    - Dst: report_refused
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3031,1
    - Dst: SfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3034,1
    - Dst: report_empty_pass
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3039,1
    - Dst: AffixMgr::isRevSubset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3046,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3046,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3046,1
    - Dst: AffixMgr::suffix_applicable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3047,1
    - Dst: report_refused
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3048,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3050,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3051,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3051,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3051,1
    - Dst: SfxEntry*::checkword
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3053,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3057,1
    - Dst: AffixMgr::trace_avoidflag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3058,1
    - Dst: SfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3063,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3064,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3065,1
    - Dst: SfxEntry*::getKeyLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3067,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3068,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3068,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3069,1
    - Dst: SfxEntry*::getNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3076,1
    - Dst: SfxEntry*::getNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3078,1
    - Dst: report_empty_pass
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3082,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 62
    argCount: 10
    argNames:
    - ' word'
    - start
    - len
    - sfxopts
    - ppfx
    - ' scratch'
    - cclass
    - needflag
    - in_compound
    - avoidflag
    argTypes:
    - std::string
    - int
    - int
    - int
    - PfxEntry*
    - AffixScratch
    - FLAG
    - FLAG
    - char
    - FLAG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3085
      start: 2977
    functionDepth: 3
    functionLinenumber: 2977
    functionLinenumberEnd: 3085
    functionName: AffixMgr::suffix_check
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 2
    functionsReached:
    - SfxEntry*::getCont
    - trace
    - SfxEntry*::getNext
    - TESTAFF
    - SfxEntry*::getKey
    - trace_affix
    - SfxEntry*::getFlag
    - SfxEntry*::getKeyLen
    - SfxEntry*::getNextEQ
    - AffixMgr::suffix_applicable
    - SfxEntry*::checkword
    - SfxEntry*::getContLen
    - AffixMgr::trace_avoidflag
    - report_empty_pass
    - c_str
    - trace_on
    - report_refused
    - SfxEntry*::getNextNE
    - AffixMgr::isRevSubset
    - substr
    linkageType: ''
    returnType: struct hentry
    signature: "struct hentry * AffixMgr::suffix_check(const std::string& word,\n
      \                                     int start,\n                                      int
      len,\n                                      int sfxopts,\n                                      PfxEntry*
      ppfx,\n                                      AffixScratch& scratch,\n                                      const
      FLAG cclass,\n                                      const FLAG needflag,\n                                      char
      in_compound,\n                                      const FLAG avoidflag)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3100,1
    - Dst: SfxEntry*::check_twosfx
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3101,1
    - Dst: SfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3105,1
    - Dst: AffixMgr::isRevSubset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3115,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3115,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3115,1
    - Dst: SfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3116,1
    - Dst: SfxEntry*::check_twosfx
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3117,1
    - Dst: SfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3119,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3120,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3121,1
    - Dst: SfxEntry*::getNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3125,1
    - Dst: SfxEntry*::getNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3127,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 7
    argNames:
    - ' word'
    - start
    - len
    - sfxopts
    - ppfx
    - ' scratch'
    - needflag
    argTypes:
    - std::string
    - int
    - int
    - int
    - PfxEntry*
    - AffixScratch
    - FLAG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3132
      start: 3088
    functionDepth: 1
    functionLinenumber: 3088
    functionLinenumberEnd: 3132
    functionName: AffixMgr::suffix_check_twosfx
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 2
    functionsReached:
    - SfxEntry*::getCont
    - c_str
    - SfxEntry*::getNextNE
    - SfxEntry*::getFlag
    - SfxEntry*::check_twosfx
    - SfxEntry*::getNext
    - AffixMgr::isRevSubset
    - SfxEntry*::getNextEQ
    - SfxEntry*::getKey
    linkageType: ''
    returnType: struct hentry
    signature: "struct hentry * AffixMgr::suffix_check_twosfx(const std::string& word,\n
      \                                            int start,\n                                             int
      len,\n                                             int sfxopts,\n                                             PfxEntry*
      ppfx,\n                                             AffixScratch& scratch,\n
      \                                            const FLAG needflag)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3150,1
    - Dst: SfxEntry*::check_twosfx_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3151,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3152,1
    - Dst: PfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3155,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3156,1
    - Dst: PfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3156,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3157,1
    - Dst: debugflag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3159,1
    - Dst: PfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3159,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3161,1
    - Dst: SfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3162,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3163,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3164,1
    - Dst: SfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3164,1
    - Dst: debugflag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3166,1
    - Dst: SfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3166,1
    - Dst: DistinctRecords::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3167,1
    - Dst: SfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3170,1
    - Dst: AffixMgr::isRevSubset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3180,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3180,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3180,1
    - Dst: SfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3181,1
    - Dst: SfxEntry*::check_twosfx_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3182,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3183,1
    - Dst: SfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3184,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3185,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3186,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3187,1
    - Dst: std::string::clear
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3189,1
    - Dst: SfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3191,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3192,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3193,1
    - Dst: SfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3193,1
    - Dst: debugflag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3195,1
    - Dst: SfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3195,1
    - Dst: strlinecat
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3196,1
    - Dst: DistinctRecords::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3197,1
    - Dst: SfxEntry*::getNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3200,1
    - Dst: SfxEntry*::getNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3202,1
    - Dst: DistinctRecords::join
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3206,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 7
    argNames:
    - ' word'
    - start
    - len
    - sfxopts
    - ppfx
    - ' scratch'
    - needflag
    argTypes:
    - std::string
    - int
    - int
    - int
    - PfxEntry*
    - AffixScratch
    - FLAG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3207
      start: 3135
    functionDepth: 1
    functionLinenumber: 3135
    functionLinenumberEnd: 3207
    functionName: AffixMgr::suffix_check_twosfx_morph
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - SfxEntry*::getCont
    - std::string::assign
    - debugflag
    - SfxEntry*::getNext
    - std::string::push_back
    - SfxEntry*::getKey
    - SfxEntry*::getMorph
    - SfxEntry*::check_twosfx_morph
    - SfxEntry*::getFlag
    - std::string::append
    - SfxEntry*::getNextEQ
    - PfxEntry*::getFlag
    - DistinctRecords::join
    - PfxEntry*::getMorph
    - strlinecat
    - std::string::clear
    - c_str
    - std::string::empty
    - SfxEntry*::getNextNE
    - AffixMgr::isRevSubset
    - DistinctRecords::append
    linkageType: ''
    returnType: std::string
    signature: "std::string AffixMgr::suffix_check_twosfx_morph(const std::string&
      word,\n                                                int start,\n                                                int
      len,\n                                                int sfxopts,\n                                                PfxEntry*
      ppfx,\n                                                AffixScratch& scratch,\n
      \                                               const FLAG needflag)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3225,1
    - Dst: AffixMgr::suffix_applicable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3226,1
    - Dst: SfxEntry*::checkword
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3227,1
    - Dst: PfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3231,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3232,1
    - Dst: PfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3232,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3233,1
    - Dst: debugflag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3235,1
    - Dst: PfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3235,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3237,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3238,1
    - Dst: HENTRY_DATA2
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3238,1
    - Dst: HENTRY_FIND
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3239,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3240,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3241,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3242,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3242,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3245,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3246,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3247,1
    - Dst: HENTRY_DATA2
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3247,1
    - Dst: SfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3249,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3250,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3251,1
    - Dst: SfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3251,1
    - Dst: debugflag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3253,1
    - Dst: SfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3253,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3254,1
    - Dst: SfxEntry*::get_next_homonym
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3255,1
    - Dst: SfxEntry*::getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3258,1
    - Dst: AffixMgr::isRevSubset
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3268,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3268,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3268,1
    - Dst: AffixMgr::suffix_applicable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3269,1
    - Dst: SfxEntry*::checkword
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3270,1
    - Dst: PfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3274,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3275,1
    - Dst: PfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3275,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3276,1
    - Dst: debugflag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3278,1
    - Dst: PfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3278,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3280,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3281,1
    - Dst: HENTRY_DATA2
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3281,1
    - Dst: HENTRY_FIND
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3282,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3283,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3284,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3285,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3285,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3288,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3289,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3290,1
    - Dst: HENTRY_DATA2
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3290,1
    - Dst: SfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3293,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3294,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3295,1
    - Dst: SfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3295,1
    - Dst: debugflag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3297,1
    - Dst: SfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3297,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3298,1
    - Dst: SfxEntry*::get_next_homonym
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3299,1
    - Dst: SfxEntry*::getNextEQ
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3301,1
    - Dst: SfxEntry*::getNextNE
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3303,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 74
    argCount: 9
    argNames:
    - ' word'
    - start
    - len
    - sfxopts
    - ppfx
    - ' scratch'
    - cclass
    - needflag
    - in_compound
    argTypes:
    - std::string
    - int
    - int
    - int
    - PfxEntry*
    - AffixScratch
    - FLAG
    - FLAG
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3308
      start: 3209
    functionDepth: 3
    functionLinenumber: 3209
    functionLinenumberEnd: 3308
    functionName: AffixMgr::suffix_check_morph
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - SfxEntry*::getCont
    - SfxEntry*::getNext
    - debugflag
    - SfxEntry*::get_next_homonym
    - std::string::push_back
    - SfxEntry*::getKey
    - SfxEntry*::getMorph
    - SfxEntry*::getFlag
    - HENTRY_FIND
    - std::string::append
    - SfxEntry*::getNextEQ
    - HENTRY_DATA2
    - AffixMgr::suffix_applicable
    - PfxEntry*::getFlag
    - SfxEntry*::checkword
    - HENTRY_DATA
    - PfxEntry*::getMorph
    - HENTRY_WORD
    - c_str
    - SfxEntry*::getNextNE
    - AffixMgr::isRevSubset
    linkageType: ''
    returnType: std::string
    signature: "std::string AffixMgr::suffix_check_morph(const std::string& word,\n
      \                                        int start,\n                                         int
      len,\n                                         int sfxopts,\n                                         PfxEntry*
      ppfx,\n                                         AffixScratch& scratch,\n                                         const
      FLAG cclass,\n                                         const FLAG needflag,\n
      \                                        char in_compound)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: trace_on
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3321,1
    - Dst: trace_form
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3327,1
    - Dst: substr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3327,1
    - Dst: AffixMgr::prefix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3335,1
    - Dst: report_form
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3337,1
    - Dst: AffixMgr::suffix_check
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3342,1
    - Dst: report_form
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3346,1
    - Dst: AffixMgr::suffix_check_twosfx
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3354,1
    - Dst: report_form
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3357,1
    - Dst: AffixMgr::prefix_check_twosfx
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3361,1
    - Dst: report_form
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3364,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 9
    argNames:
    - ' word'
    - start
    - len
    - ' scratch'
    - needflag
    - in_compound
    - avoidflag
    - found_pfx
    - found_sfx
    argTypes:
    - std::string
    - int
    - int
    - AffixScratch
    - FLAG
    - char
    - FLAG
    - PfxEntry**
    - SfxEntry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3367
      start: 3311
    functionDepth: 4
    functionLinenumber: 3311
    functionLinenumberEnd: 3367
    functionName: AffixMgr::affix_check
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 3
    functionsReached:
    - AffixMgr::prefix_check_twosfx
    - report_form
    - trace_on
    - AffixMgr::prefix_check
    - AffixMgr::suffix_check
    - trace_form
    - AffixMgr::suffix_check_twosfx
    - substr
    linkageType: ''
    returnType: struct hentry
    signature: "struct hentry * AffixMgr::affix_check(const std::string& word,\n                                     int
      start,\n                                     int len,\n                                     AffixScratch&
      scratch,\n                                     const FLAG needflag,\n                                     char
      in_compound,\n                                     const FLAG avoidflag,\n                                     PfxEntry**
      found_pfx,\n                                     SfxEntry** found_sfx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: AffixMgr::prefix_check_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3380,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3381,1
    - Dst: DistinctRecords::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3382,1
    - Dst: AffixMgr::suffix_check_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3386,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3387,1
    - Dst: DistinctRecords::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3388,1
    - Dst: AffixMgr::suffix_check_twosfx_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3395,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3396,1
    - Dst: DistinctRecords::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3397,1
    - Dst: AffixMgr::prefix_check_twosfx_morph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3401,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3402,1
    - Dst: DistinctRecords::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3403,1
    - Dst: DistinctRecords::join
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3407,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 6
    argNames:
    - ' word'
    - start
    - len
    - ' scratch'
    - needflag
    - in_compound
    argTypes:
    - std::string
    - int
    - int
    - AffixScratch
    - FLAG
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3408
      start: 3370
    functionDepth: 4
    functionLinenumber: 3370
    functionLinenumberEnd: 3408
    functionName: AffixMgr::affix_check_morph
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - AffixMgr::suffix_check_morph
    - std::string::empty
    - AffixMgr::suffix_check_twosfx_morph
    - DistinctRecords::join
    - DistinctRecords::append
    - AffixMgr::prefix_check_morph
    - AffixMgr::prefix_check_twosfx_morph
    linkageType: ''
    returnType: std::string
    signature: "std::string AffixMgr::affix_check_morph(const std::string& word,\n
      \                                 int start,\n                                  int
      len,\n                                  AffixScratch& scratch,\n                                  const
      FLAG needflag,\n                                  char in_compound)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3424,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3425,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3427,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3429,1
    - Dst: strchr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3433,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3434,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3436,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3438,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3475,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3477,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3479,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3483,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3485,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3487,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 69
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3492
      start: 3415
    functionDepth: 0
    functionLinenumber: 3415
    functionLinenumberEnd: 3492
    functionName: morphcmp
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - strstr
    - strchr
    linkageType: ''
    returnType: int
    signature: int morphcmp(const char* s, const char* t)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3507,1
    - Dst: morphcmp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3510,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3517,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3517,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3518,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3519,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3520,1
    - Dst: SfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3535,1
    - Dst: SfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3535,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3536,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3538,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3538,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3538,1
    - Dst: std::string::replace
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3541,1
    - Dst: SfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3541,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3542,1
    - Dst: SfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3544,1
    - Dst: morphcmp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3547,1
    - Dst: SfxEntry*::add
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3550,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3551,1
    - Dst: AffixMgr::lookup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3552,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3552,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3552,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3554,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3555,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3562,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3563,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3563,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3563,1
    - Dst: SfxEntry*::add
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3564,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3565,1
    - Dst: AffixMgr::morphgen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3567,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3567,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3567,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3567,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3568,1
    - Dst: SfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3569,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3571,1
    - Dst: SfxEntry*::getFlgNxt
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3577,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 44
    argCount: 8
    argNames:
    - ts
    - wl
    - ap
    - al
    - morph
    - targetmorph
    - level
    - avoidflag
    argTypes:
    - char*
    - int
    - unsigned short*
    - unsigned short
    - char*
    - char*
    - int
    - FLAG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3581
      start: 3494
    functionDepth: 1
    functionLinenumber: 3494
    functionLinenumberEnd: 3581
    functionName: AffixMgr::morphgen
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - SfxEntry*::getCont
    - std::string::assign
    - std::string::replace
    - std::string::size
    - SfxEntry*::getFlgNxt
    - morphcmp
    - std::string::empty
    - SfxEntry*::getContLen
    - SfxEntry*::getFlag
    - std::string::c_str
    - SfxEntry*::add
    - TESTAFF
    - SfxEntry*::getMorph
    - AffixMgr::morphgen
    - std::string::push_back
    - AffixMgr::lookup
    - strstr
    linkageType: ''
    returnType: std::string
    signature: "std::string AffixMgr::morphgen(const char* ts,\n                               int
      wl,\n                               const unsigned short* ap,\n                               unsigned
      short al,\n                               const char* morph,\n                               const
      char* targetmorph,\n                         int level,\n                         const
      FLAG avoidflag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3588,1
    - Dst: char::char
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3589,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3593
      start: 3585
    functionDepth: 0
    functionLinenumber: 3585
    functionLinenumberEnd: 3593
    functionName: mystrdup
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 14
    functionsReached:
    - memcpy
    - char::char
    - strlen
    linkageType: ''
    returnType: char
    signature: char * mystrdup(const char* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3588,1
    - Dst: char::char
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3589,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3593
      start: 3585
    functionDepth: 0
    functionLinenumber: 3585
    functionLinenumberEnd: 3593
    functionName: mystrdup
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 14
    functionsReached:
    - memcpy
    - char::char
    - strlen
    linkageType: ''
    returnType: char
    signature: char * mystrdup(const char* s)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3608,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3609,1
    - Dst: mystrdup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3610,1
    - Dst: mystrdup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3616,1
    - Dst: mystrdup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3618,1
    - Dst: SfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3628,1
    - Dst: SfxEntry*::getKeyLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3629,1
    - Dst: SfxEntry*::getKeyLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3630,1
    - Dst: strcmp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3631,1
    - Dst: SfxEntry*::getAffix
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3631,1
    - Dst: SfxEntry*::getKeyLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3631,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3633,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3635,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3635,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3635,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3637,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3637,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3637,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3639,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3639,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3639,1
    - Dst: SfxEntry*::add
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3640,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3641,1
    - Dst: mystrdup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3643,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3643,1
    - Dst: SfxEntry*::allowCross
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3644,1
    - Dst: SfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3650,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3651,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3652,1
    - Dst: mystrdup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3653,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3653,1
    - Dst: mystrdup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3655,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3655,1
    - Dst: SfxEntry*::getFlgNxt
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3661,1
    - Dst: PfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3674,1
    - Dst: PfxEntry*::allowCross
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3674,1
    - Dst: PfxEntry*::getKeyLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3675,1
    - Dst: PfxEntry*::getKeyLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3676,1
    - Dst: strncmp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3677,1
    - Dst: PfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3677,1
    - Dst: PfxEntry*::getKeyLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3677,1
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3678,1
    - Dst: PfxEntry*::add
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3679,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3680,1
    - Dst: mystrdup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3682,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3682,1
    - Dst: PfxEntry*::allowCross
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3683,1
    - Dst: PfxEntry*::getFlgNxt
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3689,1
    - Dst: PfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3699,1
    - Dst: PfxEntry*::getKeyLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3700,1
    - Dst: PfxEntry*::getKeyLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3701,1
    - Dst: strncmp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3702,1
    - Dst: PfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3702,1
    - Dst: PfxEntry*::getKeyLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3702,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3704,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3706,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3706,1
    - Dst: PfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3706,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3708,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3708,1
    - Dst: PfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3708,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3710,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3710,1
    - Dst: PfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3710,1
    - Dst: PfxEntry*::add
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3711,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3712,1
    - Dst: mystrdup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3714,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3714,1
    - Dst: PfxEntry*::allowCross
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3715,1
    - Dst: PfxEntry*::getFlgNxt
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3721,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 70
    argCount: 9
    argNames:
    - wlst
    - maxn
    - ts
    - wl
    - ap
    - al
    - bad
    - badl
    - phon
    argTypes:
    - struct guessword*
    - int
    - char*
    - int
    - unsigned short*
    - unsigned short
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3726
      start: 3596
    functionDepth: 1
    functionLinenumber: 3596
    functionLinenumberEnd: 3726
    functionName: AffixMgr::expand_rootword
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - SfxEntry*::getCont
    - PfxEntry*::getFlgNxt
    - std::string::c_str
    - TESTAFF
    - SfxEntry*::getKey
    - SfxEntry*::allowCross
    - PfxEntry*::getKey
    - PfxEntry*::getKeyLen
    - PfxEntry*::getCont
    - SfxEntry*::add
    - SfxEntry*::getFlag
    - SfxEntry*::getKeyLen
    - reverseword
    - strcmp
    - std::string::append
    - PfxEntry*::getContLen
    - SfxEntry*::getAffix
    - PfxEntry*::getFlag
    - PfxEntry*::add
    - SfxEntry*::getFlgNxt
    - strncmp
    - SfxEntry*::getContLen
    - PfxEntry*::allowCross
    - strlen
    - std::string::empty
    - mystrdup
    linkageType: ''
    returnType: int
    signature: "int AffixMgr::expand_rootword(struct guessword* wlst,\n                              int
      maxn,\n                              const char* ts,\n                              int
      wl,\n                              const unsigned short* ap,\n                              unsigned
      short al,\n                              const char* bad,\n                              int
      badl,\n                              const char* phon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_reptable
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3731
      start: 3729
    functionDepth: 0
    functionLinenumber: 3729
    functionLinenumberEnd: 3731
    functionName: '& AffixMgr::get_reptable() const'
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - get_reptable
    linkageType: ''
    returnType: std::vector<replentry>
    signature: std::vector<replentry> & AffixMgr::get_reptable() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3738
      start: 3734
    functionDepth: 0
    functionLinenumber: 3734
    functionLinenumberEnd: 3738
    functionName: AffixMgr::get_iconvtable
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RepList
    signature: RepList * AffixMgr::get_iconvtable() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3745
      start: 3741
    functionDepth: 0
    functionLinenumber: 3741
    functionLinenumberEnd: 3745
    functionName: AffixMgr::get_oconvtable
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RepList
    signature: RepList * AffixMgr::get_oconvtable() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3752
      start: 3748
    functionDepth: 0
    functionLinenumber: 3748
    functionLinenumberEnd: 3752
    functionName: AffixMgr::get_phonetable
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct phonetable
    signature: struct phonetable * AffixMgr::get_phonetable() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3757
      start: 3755
    functionDepth: 0
    functionLinenumber: 3755
    functionLinenumberEnd: 3757
    functionName: '& AffixMgr::get_maptable() const'
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<mapentry>
    signature: std::vector<mapentry> & AffixMgr::get_maptable() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3762
      start: 3760
    functionDepth: 0
    functionLinenumber: 3760
    functionLinenumberEnd: 3762
    functionName: '& AffixMgr::get_breaktable() const'
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> & AffixMgr::get_breaktable() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3769
      start: 3765
    functionDepth: 0
    functionLinenumber: 3765
    functionLinenumberEnd: 3769
    functionName: '& AffixMgr::get_encoding()'
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string & AffixMgr::get_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3774
      start: 3772
    functionDepth: 0
    functionLinenumber: 3772
    functionLinenumberEnd: 3774
    functionName: AffixMgr::get_langnum
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AffixMgr::get_langnum() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3779
      start: 3777
    functionDepth: 0
    functionLinenumber: 3777
    functionLinenumberEnd: 3779
    functionName: AffixMgr::get_complexprefixes
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AffixMgr::get_complexprefixes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3784
      start: 3782
    functionDepth: 0
    functionLinenumber: 3782
    functionLinenumberEnd: 3784
    functionName: AffixMgr::get_fullstrip
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AffixMgr::get_fullstrip() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3788
      start: 3786
    functionDepth: 0
    functionLinenumber: 3786
    functionLinenumberEnd: 3788
    functionName: AffixMgr::get_keepcase
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLAG
    signature: FLAG AffixMgr::get_keepcase() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3792
      start: 3790
    functionDepth: 0
    functionLinenumber: 3790
    functionLinenumberEnd: 3792
    functionName: AffixMgr::get_forceucase
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLAG
    signature: FLAG AffixMgr::get_forceucase() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3796
      start: 3794
    functionDepth: 0
    functionLinenumber: 3794
    functionLinenumberEnd: 3796
    functionName: AffixMgr::get_warn
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLAG
    signature: FLAG AffixMgr::get_warn() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3800
      start: 3798
    functionDepth: 0
    functionLinenumber: 3798
    functionLinenumberEnd: 3800
    functionName: AffixMgr::get_forbidwarn
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AffixMgr::get_forbidwarn() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3804
      start: 3802
    functionDepth: 0
    functionLinenumber: 3802
    functionLinenumberEnd: 3804
    functionName: AffixMgr::get_checksharps
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AffixMgr::get_checksharps() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AffixMgr::encode_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aflag
    argTypes:
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3808
      start: 3806
    functionDepth: 1
    functionLinenumber: 3806
    functionLinenumberEnd: 3808
    functionName: AffixMgr::encode_flag
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - AffixMgr::encode_flag
    linkageType: ''
    returnType: std::string
    signature: std::string AffixMgr::encode_flag(unsigned short aflag) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3812,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3815
      start: 3811
    functionDepth: 0
    functionLinenumber: 3811
    functionLinenumberEnd: 3815
    functionName: AffixMgr::get_ignore
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - empty
    - c_str
    linkageType: ''
    returnType: char
    signature: char * AffixMgr::get_ignore() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3820
      start: 3818
    functionDepth: 0
    functionLinenumber: 3818
    functionLinenumberEnd: 3820
    functionName: '& AffixMgr::get_ignore_utf16() const'
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<w_char>
    signature: std::vector<w_char> & AffixMgr::get_ignore_utf16() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3827
      start: 3823
    functionDepth: 0
    functionLinenumber: 3823
    functionLinenumberEnd: 3827
    functionName: '& AffixMgr::get_key_string()'
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: std::string
    signature: std::string & AffixMgr::get_key_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3832
      start: 3830
    functionDepth: 0
    functionLinenumber: 3830
    functionLinenumberEnd: 3832
    functionName: '& AffixMgr::get_try_string() const'
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & AffixMgr::get_try_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3837
      start: 3835
    functionDepth: 0
    functionLinenumber: 3835
    functionLinenumberEnd: 3837
    functionName: '& AffixMgr::get_wordchars() const'
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & AffixMgr::get_wordchars() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3841
      start: 3839
    functionDepth: 0
    functionLinenumber: 3839
    functionLinenumberEnd: 3841
    functionName: '& AffixMgr::get_wordchars_utf16() const'
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<w_char>
    signature: std::vector<w_char> & AffixMgr::get_wordchars_utf16() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3846
      start: 3844
    functionDepth: 0
    functionLinenumber: 3844
    functionLinenumberEnd: 3846
    functionName: AffixMgr::get_compound
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: int
    signature: int AffixMgr::get_compound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3851
      start: 3849
    functionDepth: 0
    functionLinenumber: 3849
    functionLinenumberEnd: 3851
    functionName: AffixMgr::get_compoundflag
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLAG
    signature: FLAG AffixMgr::get_compoundflag() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3856
      start: 3854
    functionDepth: 0
    functionLinenumber: 3854
    functionLinenumberEnd: 3856
    functionName: AffixMgr::get_forbiddenword
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLAG
    signature: FLAG AffixMgr::get_forbiddenword() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3861
      start: 3859
    functionDepth: 0
    functionLinenumber: 3859
    functionLinenumberEnd: 3861
    functionName: AffixMgr::get_nosuggest
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLAG
    signature: FLAG AffixMgr::get_nosuggest() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3866
      start: 3864
    functionDepth: 0
    functionLinenumber: 3864
    functionLinenumberEnd: 3866
    functionName: AffixMgr::get_nongramsuggest
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLAG
    signature: FLAG AffixMgr::get_nongramsuggest() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3871
      start: 3869
    functionDepth: 0
    functionLinenumber: 3869
    functionLinenumberEnd: 3871
    functionName: AffixMgr::get_substandard
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLAG
    signature: FLAG AffixMgr::get_substandard() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3876
      start: 3874
    functionDepth: 0
    functionLinenumber: 3874
    functionLinenumberEnd: 3876
    functionName: AffixMgr::get_needaffix
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLAG
    signature: FLAG AffixMgr::get_needaffix() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3881
      start: 3879
    functionDepth: 0
    functionLinenumber: 3879
    functionLinenumberEnd: 3881
    functionName: AffixMgr::get_circumfix
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLAG
    signature: FLAG AffixMgr::get_circumfix() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3886
      start: 3884
    functionDepth: 0
    functionLinenumber: 3884
    functionLinenumberEnd: 3886
    functionName: AffixMgr::get_onlyincompound
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLAG
    signature: FLAG AffixMgr::get_onlyincompound() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3891
      start: 3889
    functionDepth: 0
    functionLinenumber: 3889
    functionLinenumberEnd: 3891
    functionName: '& AffixMgr::get_version() const'
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & AffixMgr::get_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3896,1
    - Dst: AffixMgr::lookup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - word
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3900
      start: 3894
    functionDepth: 0
    functionLinenumber: 3894
    functionLinenumberEnd: 3900
    functionName: AffixMgr::lookup
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 5
    functionsReached:
    - AffixMgr::lookup
    - size
    linkageType: ''
    returnType: struct hentry
    signature: struct hentry * AffixMgr::lookup(const char* word, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3905
      start: 3903
    functionDepth: 0
    functionLinenumber: 3903
    functionLinenumberEnd: 3905
    functionName: AffixMgr::have_contclass
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AffixMgr::have_contclass() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3910
      start: 3908
    functionDepth: 0
    functionLinenumber: 3908
    functionLinenumberEnd: 3910
    functionName: AffixMgr::get_utf8
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AffixMgr::get_utf8() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3914
      start: 3912
    functionDepth: 0
    functionLinenumber: 3912
    functionLinenumberEnd: 3914
    functionName: AffixMgr::get_maxngramsugs
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AffixMgr::get_maxngramsugs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3918
      start: 3916
    functionDepth: 0
    functionLinenumber: 3916
    functionLinenumberEnd: 3918
    functionName: AffixMgr::get_maxcpdsugs
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AffixMgr::get_maxcpdsugs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3922
      start: 3920
    functionDepth: 0
    functionLinenumber: 3920
    functionLinenumberEnd: 3922
    functionName: AffixMgr::get_maxdiff
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AffixMgr::get_maxdiff() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3926
      start: 3924
    functionDepth: 0
    functionLinenumber: 3924
    functionLinenumberEnd: 3926
    functionName: AffixMgr::get_onlymaxdiff
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AffixMgr::get_onlymaxdiff() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3931
      start: 3929
    functionDepth: 0
    functionLinenumber: 3929
    functionLinenumberEnd: 3931
    functionName: AffixMgr::get_nosplitsugs
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AffixMgr::get_nosplitsugs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3936
      start: 3934
    functionDepth: 0
    functionLinenumber: 3934
    functionLinenumberEnd: 3936
    functionName: AffixMgr::get_sugswithdots
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int AffixMgr::get_sugswithdots() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3941,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3944,1
    - Dst: parse_string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3948,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3948,1
    - Dst: decode_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3950,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ' line'
    - out
    - af
    argTypes:
    - std::string
    - unsigned short*
    - FileMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3952
      start: 3939
    functionDepth: 1
    functionLinenumber: 3939
    functionLinenumberEnd: 3952
    functionName: AffixMgr::parse_flag
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - parse_string
    - FileMgr*::getlinenum
    - decode_flag
    - HUNSPELL_WARNING
    linkageType: ''
    returnType: bool
    signature: bool AffixMgr::parse_flag(const std::string& line, unsigned short*
      out, FileMgr* af)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3957,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3960,1
    - Dst: parse_string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3964,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3964,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3966,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' line'
    - out
    - af
    argTypes:
    - std::string
    - int*
    - FileMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3968
      start: 3955
    functionDepth: 1
    functionLinenumber: 3955
    functionLinenumberEnd: 3968
    functionName: AffixMgr::parse_num
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - atoi
    - FileMgr*::getlinenum
    - std::string::c_str
    - parse_string
    - HUNSPELL_WARNING
    linkageType: ''
    returnType: bool
    signature: bool AffixMgr::parse_num(const std::string& line, int* out, FileMgr*
      af)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3974,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3974,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3975,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3982,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3982,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3988,1
    - Dst: std::sort
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3989,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3989,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3989,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3992,1
    - Dst: std::sort
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3993,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3993,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:3993,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4002,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4005,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4007,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - ' line'
    - af
    argTypes:
    - std::string
    - FileMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4013
      start: 3971
    functionDepth: 1
    functionLinenumber: 3971
    functionLinenumberEnd: 4013
    functionName: AffixMgr::parse_cpdsyllable
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - end
    - u8_u16
    - atoi
    - FileMgr*::getlinenum
    - std::sort
    - HUNSPELL_WARNING
    - std::string
    - mystrsep
    - assign
    - begin
    linkageType: ''
    returnType: bool
    signature: bool AffixMgr::parse_cpdsyllable(const std::string& line, FileMgr*
      af)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4020,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4021,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4027,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4027,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4028,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4035,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4035,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4037,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4038,1
    - Dst: RepList::RepList
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4041,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4051,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4054,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4055,1
    - Dst: FileMgr*::getline
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4062,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4064,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4068,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4069,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4070,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4074,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4074,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4074,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4074,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4075,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4076,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4084,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4088,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4096,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4098,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4098,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4099,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4100,1
    - Dst: add
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4104,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 73
    argCount: 4
    argNames:
    - ' line'
    - af
    - rl
    - ' keyword'
    argTypes:
    - std::string
    - FileMgr*
    - RepList**
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4107
      start: 4015
    functionDepth: 1
    functionLinenumber: 4015
    functionLinenumberEnd: 4107
    functionName: AffixMgr::parse_convtable
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - std::string::assign
    - std::string::end
    - end
    - std::string::compare
    - atoi
    - FileMgr*::getlinenum
    - std::string::empty
    - HUNSPELL_WARNING
    - std::string
    - RepList::RepList
    - add
    - size
    - FileMgr*::getline
    - mystrsep
    - std::string::begin
    - begin
    - mychomp
    linkageType: ''
    returnType: bool
    signature: "bool AffixMgr::parse_convtable(const std::string& line,\n                              FileMgr*
      af,\n                              RepList** rl,\n                              const
      std::string& keyword)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4112,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4113,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4120,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4120,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4121,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4128,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4128,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4130,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4131,1
    - Dst: std::make_unique<phonetable>
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4134,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4143,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4146,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4147,1
    - Dst: FileMgr*::getline
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4154,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4156,1
    - Dst: std::unique_ptr::rules::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4158,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4159,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4160,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4161,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4165,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4165,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4166,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4167,1
    - Dst: std::unique_ptr::rules::emplace_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4173,1
    - Dst: std::unique_ptr::rules::emplace_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4177,1
    - Dst: mystrrep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4178,1
    - Dst: std::unique_ptr::rules::back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4178,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4186,1
    - Dst: std::unique_ptr::rules::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4188,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4189,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4190,1
    - Dst: std::unique_ptr::rules::emplace_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4194,1
    - Dst: std::unique_ptr::rules::emplace_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4195,1
    - Dst: init_phonet_hash
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4196,1
    - Dst: std::unique_ptr::release
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4197,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 74
    argCount: 2
    argNames:
    - ' line'
    - af
    argTypes:
    - std::string
    - FileMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4199
      start: 4110
    functionDepth: 1
    functionLinenumber: 4110
    functionLinenumberEnd: 4199
    functionName: AffixMgr::parse_phonetable
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - mystrrep
    - std::make_unique<phonetable>
    - std::string::end
    - atoi
    - std::unique_ptr::rules::size
    - std::unique_ptr::rules::emplace_back
    - end
    - FileMgr*::getlinenum
    - std::string
    - begin
    - std::string::compare
    - HUNSPELL_WARNING
    - FileMgr*::getline
    - mystrsep
    - std::unique_ptr::release
    - std::string::begin
    - mychomp
    - init_phonet_hash
    - std::unique_ptr::rules::back
    linkageType: ''
    returnType: bool
    signature: bool AffixMgr::parse_phonetable(const std::string& line, FileMgr* af)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4204,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4205,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4212,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4212,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4213,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4220,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4220,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4222,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4223,1
    - Dst: reserve
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4226,1
    - Dst: std::min
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4226,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4234,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4237,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4238,1
    - Dst: FileMgr*::getline
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4245,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4247,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4249,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4250,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4251,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4252,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4255,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4255,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4256,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4257,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4258,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4264,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4264,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4265,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4265,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4267,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4268,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4268,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4269,1
    - Dst: decode_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4269,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4274,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4274,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4275,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4275,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4277,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4278,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4278,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4279,1
    - Dst: decode_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4279,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4284,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4284,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4292,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 79
    argCount: 2
    argNames:
    - ' line'
    - af
    argTypes:
    - std::string
    - FileMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4296
      start: 4202
    functionDepth: 1
    functionLinenumber: 4202
    functionLinenumberEnd: 4296
    functionName: AffixMgr::parse_checkcpdtable
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - std::string::end
    - atoi
    - find
    - std::min
    - end
    - FileMgr*::getlinenum
    - reserve
    - std::string
    - begin
    - resize
    - std::string::compare
    - HUNSPELL_WARNING
    - FileMgr*::getline
    - mystrsep
    - std::string::begin
    - assign
    - clear
    - mychomp
    - emplace_back
    - back
    - decode_flag
    linkageType: ''
    returnType: bool
    signature: bool AffixMgr::parse_checkcpdtable(const std::string& line, FileMgr*
      af)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4301,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4302,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4309,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4309,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4310,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4317,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4317,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4319,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4320,1
    - Dst: reserve
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4323,1
    - Dst: std::min
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4323,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4331,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4334,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4335,1
    - Dst: FileMgr*::getline
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4342,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4344,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4346,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4347,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4348,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4349,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4352,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4352,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4353,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4354,1
    - Dst: std::find
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4361,1
    - Dst: std::find
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4365,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4374,1
    - Dst: decode_flags
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4376,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4376,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4376,1
    - Dst: decode_flags
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4380,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4380,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4380,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4388,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4390,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4391,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4392,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 83
    argCount: 2
    argNames:
    - ' line'
    - af
    argTypes:
    - std::string
    - FileMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4397
      start: 4299
    functionDepth: 1
    functionLinenumber: 4299
    functionLinenumberEnd: 4397
    functionName: AffixMgr::parse_defcpdtable
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - emplace_back
    - std::string::end
    - std::min
    - end
    - back
    - std::string::compare
    - decode_flags
    - atoi
    - FileMgr*::getlinenum
    - std::find
    - reserve
    - HUNSPELL_WARNING
    - std::string
    - FileMgr*::getline
    - mystrsep
    - std::string::begin
    - begin
    - mychomp
    linkageType: ''
    returnType: bool
    signature: bool AffixMgr::parse_defcpdtable(const std::string& line, FileMgr*
      af)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4402,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4403,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4410,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4410,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4411,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4418,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4418,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4420,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4421,1
    - Dst: reserve
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4424,1
    - Dst: std::min
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4424,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4432,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4435,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4436,1
    - Dst: FileMgr*::getline
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4443,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4445,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4447,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4448,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4449,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4450,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4453,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4453,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4454,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4455,1
    - Dst: std::find
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4465,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4474,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4481,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4482,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4485,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4493,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4495,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4496,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4497,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 86
    argCount: 2
    argNames:
    - ' line'
    - af
    argTypes:
    - std::string
    - FileMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4502
      start: 4400
    functionDepth: 1
    functionLinenumber: 4400
    functionLinenumberEnd: 4502
    functionName: AffixMgr::parse_maptable
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - emplace_back
    - std::string::end
    - std::min
    - end
    - back
    - std::string::compare
    - is_utf8_cont
    - atoi
    - FileMgr*::getlinenum
    - std::find
    - reserve
    - HUNSPELL_WARNING
    - std::string
    - FileMgr*::getline
    - mystrsep
    - std::string::begin
    - begin
    - mychomp
    linkageType: ''
    returnType: bool
    signature: bool AffixMgr::parse_maptable(const std::string& line, FileMgr* af)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4507,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4508,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4515,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4515,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4516,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4523,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4523,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4525,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4526,1
    - Dst: reserve
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4531,1
    - Dst: std::min
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4531,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4539,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4542,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4543,1
    - Dst: FileMgr*::getline
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4550,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4552,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4554,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4555,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4556,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4559,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4559,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4560,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4561,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4568,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4575,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4579,1
    - Dst: static_cast<size_t>
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4579,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4580,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4581,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 2
    argNames:
    - ' line'
    - af
    argTypes:
    - std::string
    - FileMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4586
      start: 4505
    functionDepth: 1
    functionLinenumber: 4505
    functionLinenumberEnd: 4586
    functionName: AffixMgr::parse_breaktable
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - std::string::end
    - emplace_back
    - std::min
    - end
    - std::string::compare
    - atoi
    - FileMgr*::getlinenum
    - reserve
    - HUNSPELL_WARNING
    - std::string
    - size
    - FileMgr*::getline
    - mystrsep
    - std::string::begin
    - begin
    - static_cast<size_t>
    - mychomp
    linkageType: ''
    returnType: bool
    signature: bool AffixMgr::parse_breaktable(const std::string& line, FileMgr* af)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4589,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4594,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - ' piece'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4623
      start: 4588
    functionDepth: 0
    functionLinenumber: 4588
    functionLinenumberEnd: 4623
    functionName: AffixMgr::reverse_condition
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - size
    - empty
    linkageType: ''
    returnType: void
    signature: void AffixMgr::reverse_condition(std::string& piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - at
    - mgr
    argTypes:
    - char
    - AffixMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4633
      start: 4630
    functionDepth: 0
    functionLinenumber: 4630
    functionLinenumberEnd: 4633
    functionName: entries_container::entries_container
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void entries_container(char at, AffixMgr* mgr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4636
      start: 4634
    functionDepth: 0
    functionLinenumber: 4634
    functionLinenumberEnd: 4636
    functionName: entries_container::release
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void release()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4639,1
    - Dst: std::min
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4639,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4642,1
    - Dst: PfxEntry::PfxEntry
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4642,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4644,1
    - Dst: SfxEntry::SfxEntry
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4644,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4647,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - numents
    - opts
    - aflag
    argTypes:
    - int
    - char
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4649
      start: 4637
    functionDepth: 1
    functionLinenumber: 4637
    functionLinenumberEnd: 4649
    functionName: entries_container::initialize
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - SfxEntry::SfxEntry
    - std::min
    - back
    - PfxEntry::PfxEntry
    - reserve
    - push_back
    linkageType: ''
    returnType: void
    signature: "void initialize(int numents,\n                  char opts, unsigned
      short aflag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4653,1
    - Dst: PfxEntry::PfxEntry
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4653,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4655,1
    - Dst: SfxEntry::SfxEntry
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4655,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - opts
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4660
      start: 4651
    functionDepth: 1
    functionLinenumber: 4651
    functionLinenumberEnd: 4660
    functionName: entries_container::add_entry
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - PfxEntry::PfxEntry
    - SfxEntry::SfxEntry
    - push_back
    - back
    linkageType: ''
    returnType: AffEntry
    signature: AffEntry * add_entry(char opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4662
      start: 4662
    functionDepth: 0
    functionLinenumber: 4662
    functionLinenumberEnd: 4662
    functionName: entries_container::first_entry
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: AffEntry
    signature: AffEntry * first_entry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4668
      start: 4664
    functionDepth: 0
    functionLinenumber: 4664
    functionLinenumberEnd: 4668
    functionName: ~entries_container()
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~entries_container()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entries_container::begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4670
      start: 4670
    functionDepth: 1
    functionLinenumber: 4670
    functionLinenumberEnd: 4670
    functionName: entries_container::begin
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - entries_container::begin
    linkageType: ''
    returnType: std::vector<AffEntry*>::iterator
    signature: std::vector<AffEntry*>::iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entries_container::end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4671
      start: 4671
    functionDepth: 1
    functionLinenumber: 4671
    functionLinenumberEnd: 4671
    functionName: entries_container::end
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - entries_container::end
    linkageType: ''
    returnType: std::vector<AffEntry*>::iterator
    signature: std::vector<AffEntry*>::iterator end()
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4684,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4697,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4697,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4698,1
    - Dst: decode_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4709,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4709,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4712,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4715,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4732,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4732,1
    - Dst: AffixMgr::setcminmax
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4733,1
    - Dst: static_cast<size_t>
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4734,1
    - Dst: AffixMgr::encode_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4735,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4736,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4737,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4737,1
    - Dst: is_aliasf
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4744,1
    - Dst: is_aliasm
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4746,1
    - Dst: entries_container::initialize
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4748,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4755,1
    - Dst: AffixMgr::encode_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4759,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4760,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4761,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4761,1
    - Dst: entries_container::first_entry
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4766,1
    - Dst: FileMgr*::getline
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4769,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4771,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4772,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4774,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4779,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4780,1
    - Dst: entries_container::add_entry
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4786,1
    - Dst: decode_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4794,1
    - Dst: AffixMgr::encode_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4795,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4796,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4798,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4798,1
    - Dst: entries_container::first_entry
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4803,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4812,1
    - Dst: reverseword_utf
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4815,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4817,1
    - Dst: AffEntry*::strip::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4819,1
    - Dst: AffEntry*::strip::clear
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4820,1
    - Dst: std::find
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4831,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4833,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4836,1
    - Dst: has_no_ignored_chars
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4836,1
    - Dst: remove_ignored_chars_utf
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4838,1
    - Dst: remove_ignored_chars
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4840,1
    - Dst: reverseword_utf
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4846,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4848,1
    - Dst: is_aliasf
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4851,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4852,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4852,1
    - Dst: get_aliasf
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4853,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4856,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4858,1
    - Dst: decode_flags
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4860,1
    - Dst: std::sort
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4862,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4870,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4872,1
    - Dst: has_no_ignored_chars
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4872,1
    - Dst: remove_ignored_chars_utf
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4874,1
    - Dst: remove_ignored_chars
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4876,1
    - Dst: reverseword_utf
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4882,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4884,1
    - Dst: AffEntry*::appnd::compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4888,1
    - Dst: AffEntry*::appnd::clear
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4889,1
    - Dst: reverseword_utf
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4900,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4902,1
    - Dst: AffixMgr::reverse_condition
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4903,1
    - Dst: AffEntry*::strip::empty
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4905,1
    - Dst: AffixMgr::redundant_condition
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4906,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4907,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4912,1
    - Dst: AffixMgr::reverse_condition
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4913,1
    - Dst: AffixMgr::encodeit
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4915,1
    - Dst: is_aliasm
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4923,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4924,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4924,1
    - Dst: get_aliasm
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4925,1
    - Dst: reverseword_utf
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4929,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4931,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4934,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4936,1
    - Dst: mystrdup
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4938,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4938,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4946,1
    - Dst: AffixMgr::encode_flag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4950,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4951,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4952,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4952,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4966,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4967,1
    - Dst: entries_container::begin
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4977,1
    - Dst: entries_container::end
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4977,1
    - Dst: AffixMgr::build_pfxtree
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4980,1
    - Dst: static_cast<PfxEntry*>
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4980,1
    - Dst: AffixMgr::build_sfxtree
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4982,1
    - Dst: static_cast<SfxEntry*>
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4982,1
    - Dst: entries_container::release
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4987,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 205
    argCount: 4
    argNames:
    - ' line'
    - at
    - af
    - dupflags
    argTypes:
    - std::string
    - char
    - FileMgr*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4990
      start: 4674
    functionDepth: 2
    functionLinenumber: 4674
    functionLinenumberEnd: 4990
    functionName: AffixMgr::parse_affix
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - std::string::end
    - AffixMgr::build_sfxtree
    - atoi
    - std::find
    - std::string::c_str
    - is_aliasf
    - entries_container::first_entry
    - AffixMgr::redundant_condition
    - static_cast<SfxEntry*>
    - AffEntry*::strip::clear
    - AffEntry*::strip::empty
    - is_aliasm
    - end
    - AffixMgr::encode_flag
    - decode_flags
    - remove_ignored_chars
    - FileMgr*::getlinenum
    - entries_container::release
    - remove_ignored_chars_utf
    - std::string
    - AffixMgr::setcminmax
    - reverseword
    - AffEntry*::strip::compare
    - std::string::append
    - entries_container::initialize
    - entries_container::add_entry
    - entries_container::end
    - begin
    - get_aliasm
    - reverseword_utf
    - AffEntry*::appnd::compare
    - static_cast<PfxEntry*>
    - has_no_ignored_chars
    - empty
    - HUNSPELL_WARNING
    - AffixMgr::encodeit
    - FileMgr*::getline
    - mystrsep
    - AffixMgr::build_pfxtree
    - std::string::begin
    - static_cast<size_t>
    - mychomp
    - AffixMgr::reverse_condition
    - decode_flag
    - get_aliasf
    - std::sort
    - mystrdup
    - entries_container::begin
    - AffEntry*::appnd::clear
    linkageType: ''
    returnType: bool
    signature: "bool AffixMgr::parse_affix(const std::string& line,\n                          const
      char at,\n                          FileMgr* af,\n                          char*
      dupflags)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4996,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4996,1
    - Dst: compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:4998,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5005,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5020,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5022,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5026,1
    - Dst: compare
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5038,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5045,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5059,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5061,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5066,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 68
    argCount: 4
    argNames:
    - ft
    - ' strip'
    - ' cond'
    - linenum
    argTypes:
    - char
    - std::string
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5079
      start: 4992
    functionDepth: 1
    functionLinenumber: 4992
    functionLinenumberEnd: 5079
    functionName: AffixMgr::redundant_condition
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 1
    functionsReached:
    - c_str
    - size
    - compare
    - HUNSPELL_WARNING
    linkageType: ''
    returnType: int
    signature: "int AffixMgr::redundant_condition(char ft,\n                                  const
      std::string& strip,\n                                  const std::string& cond,\n
      \                                 int linenum)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getFlag
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5091,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5093,1
    - Dst: getAffix
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5093,1
    - Dst: checkword
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5094,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5094,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5096,1
    - Dst: std::move
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5096,1
    - Dst: getNext
      Src: /src/hunspell/src/hunspell/affixmgr.cxx:5101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - suff
    - len
    - ' root_word'
    argTypes:
    - short unsigned*
    - int
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5105
      start: 5081
    functionDepth: 0
    functionLinenumber: 5081
    functionLinenumberEnd: 5105
    functionName: AffixMgr::get_suffix_words
    functionSourceFile: /src/hunspell/src/hunspell/affixmgr.cxx
    functionUses: 0
    functionsReached:
    - getAffix
    - std::move
    - getNext
    - std::vector::push_back
    - getFlag
    - std::string::size
    - checkword
    - std::string::append
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> AffixMgr::get_suffix_words(short unsigned*
      suff,\n                               int len,\n                               const
      std::string& root_word)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HashMgr::load_config
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:99,1
    - Dst: get_current_cs
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:101,1
    - Dst: HashMgr::load_tables
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:102,1
    - Dst: fprintf
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:105,1
    - Dst: HashMgr::free_table
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:106,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tpath
    - apath
    - key
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 110
    functionName: HashMgr::HashMgr
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached:
    - HashMgr::free_table
    - fprintf
    - HashMgr::load_config
    - get_current_cs
    - HashMgr::load_tables
    - resize
    linkageType: ''
    returnType: void
    signature: void HashMgr::HashMgr(const char* tpath, const char* apath, const char*
      key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - astr
    - owned
    argTypes:
    - unsigned short*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: HashMgr::release_flags
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HashMgr::release_flags(unsigned short* astr, bool owned)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashMgr::release_flags
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:124,1
    - Dst: HashMgr::arena_free
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:125,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 130
    functionName: HashMgr::free_table
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 1
    functionsReached:
    - HashMgr::arena_free
    - clear
    - HashMgr::release_flags
    linkageType: ''
    returnType: void
    signature: void HashMgr::free_table()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashMgr::free_table
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:133,1
    - Dst: HashMgr::arena_free
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:138,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:139,1
    - Dst: HashMgr::arena_free
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:144,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 150
    functionName: HashMgr::~HashMgr()
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached:
    - HashMgr::arena_free
    - HashMgr::free_table
    - clear
    linkageType: ''
    returnType: void
    signature: void HashMgr::~HashMgr()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HashMgr::hash
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:155,1
    - Dst: strcmp
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - word
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: HashMgr::lookup
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached:
    - HashMgr::hash
    - strcmp
    linkageType: ''
    returnType: struct hentry
    signature: struct hentry * HashMgr::lookup(const char* word, size_t len) const
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: AffixMgr::setcminmax
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:175,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:176,1
    - Dst: HashMgr::release_flags
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:177,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:186,1
    - Dst: has_no_ignored_chars
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:186,1
    - Dst: std::string::string
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:187,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:189,1
    - Dst: remove_ignored_chars_utf
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:191,1
    - Dst: remove_ignored_chars
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:193,1
    - Dst: reverseword_utf
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:199,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:201,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:203,1
    - Dst: std::string::string
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:204,1
    - Dst: reverseword_utf
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:208,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:210,1
    - Dst: std::string*::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:220,1
    - Dst: AffixMgr::setcminmax
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:220,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:221,1
    - Dst: std::string*::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:221,1
    - Dst: HashMgr::release_flags
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:224,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:229,1
    - Dst: std::string*::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:229,1
    - Dst: HashMgr::arena_alloc
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:232,1
    - Dst: std::string*::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:232,1
    - Dst: HashMgr::release_flags
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:237,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:242,1
    - Dst: std::string*::data
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:242,1
    - Dst: std::string*::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:242,1
    - Dst: std::string*::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:243,1
    - Dst: HashMgr::hash
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:245,1
    - Dst: std::string*::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:245,1
    - Dst: std::string*::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:247,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:260,1
    - Dst: store_pointer
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:262,1
    - Dst: std::string*::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:262,1
    - Dst: HashMgr::get_aliasm
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:262,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:262,1
    - Dst: std::string*::c_str
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:262,1
    - Dst: strcpy
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:264,1
    - Dst: std::string*::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:264,1
    - Dst: std::string*::c_str
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:264,1
    - Dst: HENTRY_FIND
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:266,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:270,1
    - Dst: capacity
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:271,1
    - Dst: reserve
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:272,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:273,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:274,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:274,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:275,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:276,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:277,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:278,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:285,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:286,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:287,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:288,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:288,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:288,1
    - Dst: std::string::at
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:297,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:297,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:301,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:302,1
    - Dst: std::string::at
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:302,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:302,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:304,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:305,1
    - Dst: std::string::at
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:305,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:305,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:310,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:310,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:311,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:311,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:312,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:312,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:322,1
    - Dst: get_captype_utf8
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:323,1
    - Dst: mkinitcap_utf
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:324,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:325,1
    - Dst: get_captype
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:327,1
    - Dst: mkinitcap
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:328,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:330,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:344,1
    - Dst: mkallsmall_utf
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:345,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:346,1
    - Dst: mkallsmall
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:348,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:350,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:351,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:351,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:352,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:352,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:354,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:355,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:355,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:356,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:356,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:359,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:360,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:360,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:361,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:361,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:364,1
    - Dst: strcmp
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:377,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:380,1
    - Dst: HashMgr::release_flags
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:381,1
    - Dst: HashMgr::arena_free
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:386,1
    - Dst: HashMgr::release_flags
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:393,1
    - Dst: HashMgr::arena_free
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:394,1
    - Dst: strcmp
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:407,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:410,1
    - Dst: HashMgr::release_flags
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:411,1
    - Dst: HashMgr::arena_free
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:416,1
    - Dst: HashMgr::release_flags
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:423,1
    - Dst: HashMgr::arena_free
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:424,1
    - Dst: HashMgr::release_flags
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:439,1
    - Dst: HashMgr::arena_free
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:440,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 197
    argCount: 8
    argNames:
    - ' in_word'
    - wcl
    - aff
    - al
    - in_desc
    - onlyupcase
    - captype
    - own_aff
    argTypes:
    - std::string
    - int
    - unsigned short*
    - int
    - std::string*
    - bool
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 446
    functionName: HashMgr::add_word
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached:
    - HashMgr::arena_alloc
    - std::string::end
    - std::string*::c_str
    - std::string::size
    - atoi
    - get_captype
    - HashMgr::hash
    - std::string::find
    - mkallsmall_utf
    - TESTAFF
    - strcpy
    - memcpy
    - std::string::substr
    - store_pointer
    - get_captype_utf8
    - remove_ignored_chars
    - reserve
    - remove_ignored_chars_utf
    - reverseword
    - AffixMgr::setcminmax
    - std::string
    - HENTRY_FIND
    - strcmp
    - mkinitcap
    - mkallsmall
    - reverseword_utf
    - capacity
    - u8_u16
    - has_no_ignored_chars
    - empty
    - HashMgr::get_aliasm
    - std::string::erase
    - HENTRY_DATA
    - HUNSPELL_WARNING
    - size
    - HashMgr::release_flags
    - std::string::string
    - std::string*::size
    - std::string::begin
    - mystrsep
    - std::string::at
    - mkinitcap_utf
    - assign
    - emplace_back
    - back
    - u16_u8
    - std::string::empty
    - HashMgr::arena_free
    - std::string*::data
    - is_utf8_cont
    linkageType: ''
    returnType: int
    signature: "int HashMgr::add_word(const std::string& in_word,\n                      int
      wcl,\n                      unsigned short* aff,\n                      int
      al,\n                      const std::string* in_desc,\n                      bool
      onlyupcase,\n                      int captype,\n                      bool
      own_aff)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:462,1
    - Dst: HashMgr::arena_alloc
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:463,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:467,1
    - Dst: std::sort
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:468,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:473,1
    - Dst: mkallsmall_utf
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:474,1
    - Dst: mkinitcap_utf
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:475,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:476,1
    - Dst: HashMgr::add_word
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:477,1
    - Dst: mkallsmall
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:480,1
    - Dst: mkinitcap
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:481,1
    - Dst: HashMgr::add_word
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:482,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 6
    argNames:
    - ' word'
    - wcl
    - flags
    - flagslen
    - dp
    - captype
    argTypes:
    - std::string
    - int
    - unsigned short*
    - int
    - std::string*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 487
    functionName: HashMgr::add_hidden_capitalized_word
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached:
    - HashMgr::arena_alloc
    - u8_u16
    - u16_u8
    - std::sort
    - TESTAFF
    - mkallsmall_utf
    - HashMgr::add_word
    - mkinitcap
    - mkinitcap_utf
    - memcpy
    - mkallsmall
    linkageType: ''
    returnType: int
    signature: "int HashMgr::add_hidden_capitalized_word(const std::string& word,\n
      \                                        int wcl,\n                                         unsigned
      short* flags,\n                                         int flagslen,\n                                         const
      std::string* dp,\n                                         int captype)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:493,1
    - Dst: get_captype_utf8
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:494,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:496,1
    - Dst: get_captype
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' word'
    - captype
    - workbuf
    argTypes:
    - std::string
    - int*
    - std::vector<w_char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 500
    functionName: HashMgr::get_clen_and_captype
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached:
    - u8_u16
    - size
    - get_captype
    - get_captype_utf8
    linkageType: ''
    returnType: int
    signature: int HashMgr::get_clen_and_captype(const std::string& word, int* captype,
      std::vector<w_char> &workbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashMgr::get_clen_and_captype
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' word'
    - captype
    argTypes:
    - std::string
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 505
    functionName: HashMgr::get_clen_and_captype
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 1
    functionsReached:
    - HashMgr::get_clen_and_captype
    linkageType: ''
    returnType: int
    signature: int HashMgr::get_clen_and_captype(const std::string& word, int* captype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HashMgr::lookup
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:509,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:509,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:509,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:511,1
    - Dst: unsigned short::unsigned short
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:512,1
    - Dst: HashMgr::release_flags
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:516,1
    - Dst: std::sort
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 525
    functionName: HashMgr::remove
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached:
    - c_str
    - std::sort
    - unsigned short::unsigned short
    - TESTAFF
    - size
    - HashMgr::release_flags
    - HashMgr::lookup
    linkageType: ''
    returnType: int
    signature: int HashMgr::remove(const std::string& word)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HashMgr::lookup
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:529,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:529,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:529,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:533,1
    - Dst: HashMgr::release_flags
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:535,1
    - Dst: unsigned short::unsigned short
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:540,1
    - Dst: HashMgr::release_flags
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:546,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 554
    functionName: HashMgr::remove_forbidden_flag
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached:
    - c_str
    - unsigned short::unsigned short
    - TESTAFF
    - size
    - HashMgr::release_flags
    - HashMgr::lookup
    linkageType: ''
    returnType: void
    signature: void HashMgr::remove_forbidden_flag(const std::string& word)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HashMgr::remove_forbidden_flag
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:558,1
    - Dst: HashMgr::get_clen_and_captype
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:561,1
    - Dst: HashMgr::add_word
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:562,1
    - Dst: HashMgr::add_hidden_capitalized_word
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 565
    functionName: HashMgr::add
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached:
    - HashMgr::remove_forbidden_flag
    - HashMgr::add_hidden_capitalized_word
    - HashMgr::add_word
    - HashMgr::get_clen_and_captype
    linkageType: ''
    returnType: int
    signature: int HashMgr::add(const std::string& word)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HashMgr::remove_forbidden_flag
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:568,1
    - Dst: HashMgr::decode_flags
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:571,1
    - Dst: HashMgr::get_clen_and_captype
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:572,1
    - Dst: HashMgr::add_word
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:573,1
    - Dst: HashMgr::add_hidden_capitalized_word
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' word'
    - ' flags'
    - ' desc'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 576
    functionName: HashMgr::add_with_flags
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached:
    - HashMgr::decode_flags
    - HashMgr::add_word
    - HashMgr::get_clen_and_captype
    - HashMgr::remove_forbidden_flag
    - HashMgr::add_hidden_capitalized_word
    linkageType: ''
    returnType: int
    signature: int HashMgr::add_with_flags(const std::string& word, const std::string&
      flags, const std::string& desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HashMgr::lookup
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:580,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:580,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:580,1
    - Dst: HashMgr::remove_forbidden_flag
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:581,1
    - Dst: HashMgr::get_clen_and_captype
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:584,1
    - Dst: unsigned short::unsigned short
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:585,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:586,1
    - Dst: HashMgr::add_word
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:587,1
    - Dst: HashMgr::add_hidden_capitalized_word
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' word'
    - ' example'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 592
    functionName: HashMgr::add_with_affix
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached:
    - c_str
    - unsigned short::unsigned short
    - size
    - HashMgr::add_word
    - HashMgr::get_clen_and_captype
    - memcpy
    - HashMgr::remove_forbidden_flag
    - HashMgr::lookup
    - HashMgr::add_hidden_capitalized_word
    linkageType: ''
    returnType: int
    signature: int HashMgr::add_with_affix(const std::string& word, const std::string&
      example)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:599,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' col'
    - hp
    argTypes:
    - int
    - struct hentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 606
    functionName: HashMgr::walk_hashtable
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: struct hentry
    signature: struct hentry * HashMgr::walk_hashtable(int& col, struct hentry* hp)
      const
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FileMgr::FileMgr
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:611,1
    - Dst: FileMgr*::getline
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:615,1
    - Dst: fprintf
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:616,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:620,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:623,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:624,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:627,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:627,1
    - Dst: fprintf
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:638,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:649,1
    - Dst: FileMgr*::getline
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:657,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:664,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:667,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:682,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:689,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:689,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:690,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:696,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:700,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:705,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:706,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:711,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:712,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:713,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:714,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:715,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:715,1
    - Dst: HashMgr::get_aliasf
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:716,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:718,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:719,1
    - Dst: HashMgr::decode_flags
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:722,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:724,1
    - Dst: std::sort
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:728,1
    - Dst: HashMgr::get_clen_and_captype
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:736,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:737,1
    - Dst: HashMgr::add_word
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:741,1
    - Dst: HashMgr::add_hidden_capitalized_word
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:742,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:752,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 86
    argCount: 2
    argNames:
    - tpath
    - key
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 758
    functionName: HashMgr::load_tables
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 1
    functionsReached:
    - std::string::assign
    - std::string::size
    - atoi
    - std::string::c_str
    - std::string::find
    - std::string::substr
    - FileMgr*::getlinenum
    - HashMgr::get_aliasf
    - std::string::resize
    - resize
    - std::string::compare
    - std::string::erase
    - empty
    - HUNSPELL_WARNING
    - fprintf
    - FileMgr*::getline
    - HashMgr::add_word
    - mychomp
    - HashMgr::decode_flags
    - std::string::empty
    - std::sort
    - FileMgr::FileMgr
    - HashMgr::get_clen_and_captype
    - HashMgr::add_hidden_capitalized_word
    linkageType: ''
    returnType: int
    signature: int HashMgr::load_tables(const char* tpath, const char* key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROTATE
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:768,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:771,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - word
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 772
    functionName: HashMgr::hash
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 2
    functionsReached:
    - size
    - ROTATE
    linkageType: ''
    returnType: int
    signature: int HashMgr::hash(const char* word, size_t len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashMgr::decode_flags
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - result
    - ' flags'
    - af
    argTypes:
    - unsigned short**
    - std::string
    - FileMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 776
    functionName: HashMgr::decode_flags
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 3
    functionsReached:
    - HashMgr::decode_flags
    linkageType: ''
    returnType: int
    signature: int HashMgr::decode_flags(unsigned short** result, const std::string&
      flags, FileMgr* af) const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: HashMgr::arena_alloc
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:780,1
    - Dst: unsigned short::unsigned short
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:782,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:785,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:791,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:793,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:794,1
    - Dst: alloc
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:796,1
    - Dst: std::count_if
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:807,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:807,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:807,1
    - Dst: alloc
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:808,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:810,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:811,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:813,1
    - Dst: AffixMgr::setcminmax
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:814,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:815,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:817,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:822,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:823,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:824,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:828,1
    - Dst: AffixMgr::setcminmax
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:829,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:830,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:832,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:837,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:838,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:843,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:844,1
    - Dst: alloc
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:845,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:847,1
    - Dst: std::vector::data
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:847,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:858,1
    - Dst: alloc
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:859,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 65
    argCount: 4
    argNames:
    - result
    - ' flags'
    - af
    - use_arena
    argTypes:
    - unsigned short**
    - std::string
    - FileMgr*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 778
    functionDepth: 2
    functionLinenumber: 778
    functionLinenumberEnd: 868
    functionName: HashMgr::decode_flags
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 3
    functionsReached:
    - HashMgr::arena_alloc
    - std::vector::data
    - end
    - c_str
    - u8_u16
    - std::vector::size
    - empty
    - FileMgr*::getlinenum
    - alloc
    - atoi
    - HUNSPELL_WARNING
    - unsigned short::unsigned short
    - AffixMgr::setcminmax
    - size
    - memcpy
    - begin
    - std::count_if
    linkageType: ''
    returnType: int
    signature: int HashMgr::decode_flags(unsigned short** result, const std::string&
      flags, FileMgr* af, bool use_arena) const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:871,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:876,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:878,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:879,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:881,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:882,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:891,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:894,1
    - Dst: AffixMgr::setcminmax
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:895,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:896,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:898,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:901,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:902,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:903,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:904,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:908,1
    - Dst: AffixMgr::setcminmax
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:909,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:910,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:912,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:915,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:916,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:917,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:918,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:923,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:924,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:924,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:925,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:927,1
    - Dst: data
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:927,1
    - Dst: std::vector::data
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:927,1
    - Dst: reserve
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:935,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:935,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:937,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 3
    argNames:
    - ' result'
    - ' flags'
    - af
    argTypes:
    - std::vector<unsigned short>
    - std::string
    - FileMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 870
    functionDepth: 2
    functionLinenumber: 870
    functionLinenumberEnd: 942
    functionName: HashMgr::decode_flags
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 3
    functionsReached:
    - std::vector::data
    - c_str
    - back
    - u8_u16
    - std::vector::size
    - empty
    - FileMgr*::getlinenum
    - atoi
    - reserve
    - HUNSPELL_WARNING
    - AffixMgr::setcminmax
    - size
    - push_back
    - data
    - memcpy
    - resize
    linkageType: ''
    returnType: bool
    signature: bool HashMgr::decode_flags(std::vector<unsigned short>& result, const
      std::string& flags, FileMgr* af) const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:949,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:953,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:953,1
    - Dst: AffixMgr::setcminmax
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:954,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:955,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:962,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:963,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:968,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:972,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - ' f'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 944
    functionDepth: 2
    functionLinenumber: 944
    functionLinenumberEnd: 974
    functionName: HashMgr::decode_flag
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached:
    - std::vector::empty
    - c_str
    - u8_u16
    - atoi
    - empty
    - HUNSPELL_WARNING
    - AffixMgr::setcminmax
    - size
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short HashMgr::decode_flag(const std::string& f) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:981,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:982,1
    - Dst: std::to_string
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:984,1
    - Dst: std::bit_cast<w_char>
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:990,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:993,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1002,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1004,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 1
    argNames:
    - f
    argTypes:
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 1007
    functionName: HashMgr::encode_flag
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached:
    - memcpy
    - u16_u8
    - std::string::push_back
    - std::to_string
    - std::bit_cast<w_char>
    linkageType: ''
    returnType: std::string
    signature: std::string HashMgr::encode_flag(unsigned short f) const
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: FileMgr::FileMgr
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1014,1
    - Dst: FileMgr*::getline
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1020,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1021,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1026,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1027,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1032,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1032,1
    - Dst: isspace
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1032,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1034,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1037,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1039,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1041,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1043,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1046,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1049,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1053,1
    - Dst: parse_string
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1055,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1055,1
    - Dst: HashMgr::decode_flag
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1059,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1062,1
    - Dst: parse_string
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1063,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1063,1
    - Dst: get_current_cs
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1070,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1073,1
    - Dst: parse_string
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1074,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1074,1
    - Dst: get_lang_num
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1078,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1083,1
    - Dst: parse_array
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1084,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1085,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1091,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1091,1
    - Dst: isspace
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1091,1
    - Dst: HashMgr::parse_aliasf
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1092,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1098,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1098,1
    - Dst: isspace
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1098,1
    - Dst: HashMgr::parse_aliasm
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1099,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1105,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1109,1
    - Dst: HashMgr::parse_reptable
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1110,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1117,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1118,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1119,1
    - Dst: isspace
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1119,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1120,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 78
    argCount: 2
    argNames:
    - affpath
    - key
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1010
    functionDepth: 3
    functionLinenumber: 1010
    functionLinenumberEnd: 1126
    functionName: HashMgr::load_config
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 1
    functionsReached:
    - get_lang_num
    - std::string::size
    - std::string::find
    - isspace
    - FileMgr*::getlinenum
    - HashMgr::parse_reptable
    - std::string::compare
    - std::string::erase
    - empty
    - HUNSPELL_WARNING
    - parse_string
    - FileMgr*::getline
    - get_current_cs
    - parse_array
    - mychomp
    - HashMgr::decode_flag
    - HashMgr::parse_aliasf
    - HashMgr::parse_aliasm
    - FileMgr::FileMgr
    linkageType: ''
    returnType: int
    signature: int HashMgr::load_config(const char* affpath, const char* key)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1130,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1131,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1132,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1136,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1136,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1137,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1144,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1144,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1146,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1147,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1148,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1149,1
    - Dst: reserve
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1152,1
    - Dst: std::min
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1152,1
    - Dst: reserve
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1153,1
    - Dst: std::min
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1153,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1161,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1164,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1165,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1166,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1167,1
    - Dst: FileMgr*::getline
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1177,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1178,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1179,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1180,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1182,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1185,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1185,1
    - Dst: HashMgr::decode_flags
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1194,1
    - Dst: std::sort
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1195,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1202,1
    - Dst: HashMgr::arena_free
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1207,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1209,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1210,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1211,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1212,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1216,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1217,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 76
    argCount: 2
    argNames:
    - ' line'
    - af
    argTypes:
    - std::string
    - FileMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1220
    functionName: HashMgr::parse_aliasf
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 1
    functionsReached:
    - std::string::end
    - atoi
    - std::min
    - end
    - FileMgr*::getlinenum
    - reserve
    - std::string
    - begin
    - std::string::compare
    - empty
    - HUNSPELL_WARNING
    - FileMgr*::getline
    - mystrsep
    - std::string::begin
    - clear
    - mychomp
    - HashMgr::decode_flags
    - std::sort
    - HashMgr::arena_free
    - push_back
    linkageType: ''
    returnType: bool
    signature: bool HashMgr::parse_aliasf(const std::string& line, FileMgr* af)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1222
    functionDepth: 0
    functionLinenumber: 1222
    functionLinenumberEnd: 1224
    functionName: HashMgr::is_aliasf
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: int
    signature: int HashMgr::is_aliasf() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1227,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1227,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1231,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - index
    - fvec
    - af
    argTypes:
    - int
    - unsigned short**
    - FileMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1235
    functionName: HashMgr::get_aliasf
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 1
    functionsReached:
    - size
    - static_cast<size_t>
    - FileMgr*::getlinenum
    - HUNSPELL_WARNING
    linkageType: ''
    returnType: int
    signature: int HashMgr::get_aliasf(int index, unsigned short** fvec, FileMgr*
      af) const
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1239,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1240,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1241,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1245,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1245,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1246,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1253,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1253,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1255,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1256,1
    - Dst: reserve
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1259,1
    - Dst: std::min
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1259,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1267,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1270,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1271,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1272,1
    - Dst: FileMgr*::getline
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1280,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1281,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1282,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1284,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1286,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1289,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1289,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1297,1
    - Dst: reverseword_utf
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1301,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1303,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1305,1
    - Dst: HashMgr::arena_alloc
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1306,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1308,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1308,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1316,1
    - Dst: HashMgr::arena_free
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1321,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1323,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1324,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1325,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1328,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 2
    argNames:
    - ' line'
    - af
    argTypes:
    - std::string
    - FileMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1238
    functionDepth: 1
    functionLinenumber: 1238
    functionLinenumberEnd: 1331
    functionName: HashMgr::parse_aliasm
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 1
    functionsReached:
    - HashMgr::arena_alloc
    - std::string::end
    - std::string::size
    - atoi
    - std::string::c_str
    - memcpy
    - std::min
    - end
    - FileMgr*::getlinenum
    - reserve
    - std::string
    - reverseword
    - begin
    - reverseword_utf
    - std::string::compare
    - empty
    - HUNSPELL_WARNING
    - FileMgr*::getline
    - mystrsep
    - std::string::begin
    - clear
    - mychomp
    - HashMgr::arena_free
    - push_back
    linkageType: ''
    returnType: bool
    signature: bool HashMgr::parse_aliasm(const std::string& line, FileMgr* af)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1335
    functionName: HashMgr::is_aliasm
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: int
    signature: int HashMgr::is_aliasm() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1338,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1338,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1342
    functionName: HashMgr::get_aliasm
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 1
    functionsReached:
    - size
    - static_cast<size_t>
    - HUNSPELL_WARNING
    linkageType: ''
    returnType: char
    signature: char * HashMgr::get_aliasm(int index) const
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1346,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1347,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1348,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1352,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1352,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1353,1
    - Dst: atoi
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1360,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1360,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1362,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1363,1
    - Dst: reserve
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1366,1
    - Dst: std::min
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1366,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1374,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1377,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1378,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1385,1
    - Dst: FileMgr*::getline
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1387,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1388,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1389,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1391,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1393,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1396,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1396,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1405,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1405,1
    - Dst: mystrrep
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1406,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1406,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1407,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1407,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1407,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1407,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1407,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1409,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1409,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1409,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1409,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1414,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1414,1
    - Dst: mystrrep
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1415,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1415,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1422,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1425,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1425,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1425,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1425,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1426,1
    - Dst: FileMgr*::getlinenum
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1427,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1428,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 77
    argCount: 2
    argNames:
    - ' line'
    - af
    argTypes:
    - std::string
    - FileMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1433
    functionName: HashMgr::parse_reptable
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 1
    functionsReached:
    - mystrrep
    - std::string::end
    - atoi
    - std::min
    - end
    - FileMgr*::getlinenum
    - reserve
    - std::string
    - begin
    - resize
    - std::string::compare
    - empty
    - HUNSPELL_WARNING
    - size
    - FileMgr*::getline
    - mystrsep
    - std::string::begin
    - assign
    - clear
    - mychomp
    - emplace_back
    - back
    linkageType: ''
    returnType: bool
    signature: bool HashMgr::parse_reptable(const std::string& line, FileMgr* af)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1436
    functionDepth: 0
    functionLinenumber: 1436
    functionLinenumberEnd: 1438
    functionName: '& HashMgr::get_reptable() const'
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<replentry>
    signature: std::vector<replentry> & HashMgr::get_reptable() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1448,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1452,1
    - Dst: std::max
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1458,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1460,1
    - Dst: std::make_unique<uint8_t[]>
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1460,1
    - Dst: back
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1465,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - num_bytes
    - alignment
    argTypes:
    - size_t
    - size_t
    assertStmts:
    - condition: (alignment > 0 && alignment <= MAX_ALIGNMENT)
      pos:
        line_end: 1447
        line_start: 1447
        source_file: /src/hunspell/src/hunspell/hashmgr.cxx
    constantsTouched: []
    func_position:
      end: 1469
      start: 1440
    functionDepth: 0
    functionLinenumber: 1440
    functionLinenumberEnd: 1469
    functionName: HashMgr::arena_alloc
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 4
    functionsReached:
    - assert
    - back
    - empty
    - push_back
    - std::make_unique<uint8_t[]>
    - std::max
    linkageType: ''
    returnType: void
    signature: void * HashMgr::arena_alloc(size_t num_bytes, size_t alignment) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::abort
      Src: /src/hunspell/src/hunspell/hashmgr.cxx:1478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1471
    functionDepth: 0
    functionLinenumber: 1471
    functionLinenumberEnd: 1481
    functionName: HashMgr::arena_free
    functionSourceFile: /src/hunspell/src/hunspell/hashmgr.cxx
    functionUses: 5
    functionsReached:
    - std::abort
    linkageType: ''
    returnType: void
    signature: void HashMgr::arena_free(void*) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: HunspellImpl::HunspellImpl
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HunspellImpl(const HunspellImpl&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: '& operator=(const HunspellImpl&)'
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HunspellImpl
    signature: HunspellImpl & operator=(const HunspellImpl&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: 'on'
      Src: /src/hunspell/src/hunspell/hunspell.cxx:144,1
    - Dst: get
      Src: /src/hunspell/src/hunspell/hunspell.cxx:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: HunspellImpl::active_trace
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - get
    - 'on'
    linkageType: ''
    returnType: TraceCtx
    signature: TraceCtx * active_trace() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:203,1
    - Dst: std::make_unique<HashMgr>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:203,1
    - Dst: std::make_unique<AffixMgr>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:207,1
    - Dst: get_try_string
      Src: /src/hunspell/src/hunspell/hunspell.cxx:211,1
    - Dst: get_encoding
      Src: /src/hunspell/src/hunspell/hunspell.cxx:212,1
    - Dst: HunspellImpl::get_langnum
      Src: /src/hunspell/src/hunspell/hunspell.cxx:213,1
    - Dst: get_utf8
      Src: /src/hunspell/src/hunspell/hunspell.cxx:214,1
    - Dst: get_current_cs
      Src: /src/hunspell/src/hunspell/hunspell.cxx:216,1
    - Dst: get_complexprefixes
      Src: /src/hunspell/src/hunspell/hunspell.cxx:217,1
    - Dst: get_breaktable
      Src: /src/hunspell/src/hunspell/hunspell.cxx:218,1
    - Dst: std::make_unique<SuggestMgr>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:221,1
    - Dst: get
      Src: /src/hunspell/src/hunspell/hunspell.cxx:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - affpath
    - dpath
    - key
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 222
    functionName: HunspellImpl::HunspellImpl
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - std::make_unique<AffixMgr>
    - get
    - HunspellImpl::get_langnum
    - get_utf8
    - get_try_string
    - get_current_cs
    - push_back
    - get_complexprefixes
    - get_encoding
    - std::make_unique<SuggestMgr>
    - get_breaktable
    - std::make_unique<HashMgr>
    linkageType: ''
    returnType: void
    signature: void HunspellImpl::HunspellImpl(const char* affpath, const char* dpath,
      const char* key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: HunspellImpl::~HunspellImpl()
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HunspellImpl::~HunspellImpl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:233,1
    - Dst: std::make_unique<HashMgr>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:233,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dpath
    - key
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: HunspellImpl::add_dic
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - push_back
    - c_str
    - std::make_unique<HashMgr>
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::add_dic(const char* dpath, const char* key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/hunspell/src/hunspell/hunspell.cxx:242,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/hunspell.cxx:243,1
    - Dst: get_ignore
      Src: /src/hunspell/src/hunspell/hunspell.cxx:244,1
    - Dst: get_ignore_utf16
      Src: /src/hunspell/src/hunspell/hunspell.cxx:248,1
    - Dst: remove_ignored_chars_utf
      Src: /src/hunspell/src/hunspell/hunspell.cxx:249,1
    - Dst: remove_ignored_chars
      Src: /src/hunspell/src/hunspell/hunspell.cxx:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' dest'
    - ' src'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 254
    functionName: HunspellImpl::clean_ignore
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - get_ignore_utf16
    - remove_ignored_chars
    - remove_ignored_chars_utf
    - get_ignore
    - assign
    - clear
    linkageType: ''
    returnType: void
    signature: "void HunspellImpl::clean_ignore(std::string& dest,\n                                const
      std::string& src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/hunspell/src/hunspell/hunspell.cxx:269,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/hunspell.cxx:270,1
    - Dst: HunspellImpl::clean_ignore
      Src: /src/hunspell/src/hunspell/hunspell.cxx:274,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:276,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:277,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:299,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:300,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/hunspell.cxx:302,1
    - Dst: get_captype_utf8
      Src: /src/hunspell/src/hunspell/hunspell.cxx:303,1
    - Dst: get_captype
      Src: /src/hunspell/src/hunspell/hunspell.cxx:305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - ' dest'
    - ' dest_utf'
    - ' src'
    - pcaptype
    - pabbrev
    argTypes:
    - std::string
    - std::vector<w_char>
    - std::string
    - int*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 308
    functionName: HunspellImpl::cleanword2
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - std::string::size
    - get_captype_utf8
    - u8_u16
    - append
    - std::string::c_str
    - get_captype
    - size
    - HunspellImpl::clean_ignore
    - clear
    linkageType: ''
    returnType: size_t
    signature: "size_t HunspellImpl::cleanword2(std::string& dest,\n                         std::vector<w_char>&
      dest_utf,\n                         const std::string& src,\n                         int*
      pcaptype,\n                         size_t* pabbrev)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/hunspell/src/hunspell/hunspell.cxx:314,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:315,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:316,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:350,1
    - Dst: static_cast<unsigned char>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:354,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/hunspell.cxx:357,1
    - Dst: unicodetolower
      Src: /src/hunspell/src/hunspell/hunspell.cxx:360,1
    - Dst: unicodetoupper
      Src: /src/hunspell/src/hunspell/hunspell.cxx:363,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/hunspell.cxx:366,1
    - Dst: unicodetolower
      Src: /src/hunspell/src/hunspell/hunspell.cxx:369,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 4
    argNames:
    - ' dest'
    - ' src'
    - pcaptype
    - pabbrev
    argTypes:
    - std::string
    - std::string
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 385
    functionName: HunspellImpl::cleanword
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - c_str
    - u8_u16
    - u16_u8
    - size
    - push_back
    - static_cast<unsigned char>
    - unicodetoupper
    - clear
    - unicodetolower
    linkageType: ''
    returnType: void
    signature: "void HunspellImpl::cleanword(std::string& dest,\n                        const
      std::string& src,\n                        int* pcaptype,\n                        int*
      pabbrev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/hunspell.cxx:390,1
    - Dst: mkallcap_utf
      Src: /src/hunspell/src/hunspell/hunspell.cxx:391,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/hunspell.cxx:392,1
    - Dst: HunspellImpl::mkallcap
      Src: /src/hunspell/src/hunspell/hunspell.cxx:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' u8'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 396
    functionName: HunspellImpl::mkallcap
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - u8_u16
    - mkallcap_utf
    - HunspellImpl::mkallcap
    - u16_u8
    linkageType: ''
    returnType: void
    signature: void HunspellImpl::mkallcap(std::string& u8)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mkallsmall_utf
      Src: /src/hunspell/src/hunspell/hunspell.cxx:400,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/hunspell.cxx:401,1
    - Dst: mkallsmall
      Src: /src/hunspell/src/hunspell/hunspell.cxx:403,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' u8'
    - ' u16'
    argTypes:
    - std::string
    - std::vector<w_char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 406
    functionName: HunspellImpl::mkallsmall2
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - u16_u8
    - size
    - mkallsmall_utf
    - mkallsmall
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::mkallsmall2(std::string& u8, std::vector<w_char>&
      u16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mystrrep
      Src: /src/hunspell/src/hunspell/hunspell.cxx:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' source'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: HunspellImpl::sharps_u8_l1
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - mystrrep
    linkageType: ''
    returnType: std::string
    signature: std::string HunspellImpl::sharps_u8_l1(const std::string& source)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:423,1
    - Dst: HunspellImpl::spellsharps
      Src: /src/hunspell/src/hunspell/hunspell.cxx:427,1
    - Dst: HunspellImpl::spellsharps
      Src: /src/hunspell/src/hunspell/hunspell.cxx:432,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:437,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:439,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 7
    argNames:
    - ' base'
    - n_pos
    - n
    - repnum
    - info
    - root
    - suggest_start
    argTypes:
    - std::string
    - size_t
    - int
    - int
    - int*
    - std::string*
    - std::chrono::steady_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 442
    functionName: HunspellImpl::spellsharps
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - HunspellImpl::spellsharps
    - find
    - HunspellImpl::checkword
    linkageType: ''
    returnType: hentry
    signature: "hentry * HunspellImpl::spellsharps(std::string& base,\n                              size_t
      n_pos,\n                              int n,\n                              int
      repnum,\n                              int* info,\n                              std::string*
      root,\n                              std::chrono::steady_clock::time_point suggest_start)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_keepcase
      Src: /src/hunspell/src/hunspell/hunspell.cxx:445,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hunspell.cxx:446,1
    - Dst: get_keepcase
      Src: /src/hunspell/src/hunspell/hunspell.cxx:446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - rv
    argTypes:
    - hentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 447
    functionName: HunspellImpl::is_keepcase
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - TESTAFF
    - get_keepcase
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::is_keepcase(const hentry* rv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/hunspell/src/hunspell/hunspell.cxx:451,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/hunspell.cxx:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' slst'
    - ' word'
    argTypes:
    - std::vector<std::string>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: HunspellImpl::insert_sug
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - begin
    - insert
    linkageType: ''
    returnType: void
    signature: void HunspellImpl::insert_sug(std::vector<std::string>& slst, const
      std::string& word)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:458,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/hunspell.cxx:458,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/hunspell.cxx:458,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/hunspell.cxx:458,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:461,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:464,1
    - Dst: HunspellImpl::active_trace
      Src: /src/hunspell/src/hunspell/hunspell.cxx:467,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/hunspell.cxx:469,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:469,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:473,1
    - Dst: HunspellImpl::spell_internal
      Src: /src/hunspell/src/hunspell/hunspell.cxx:474,1
    - Dst: pop_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:475,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/hunspell.cxx:478,1
    - Dst: get_oconvtable
      Src: /src/hunspell/src/hunspell/hunspell.cxx:482,1
    - Dst: RepList*::conv
      Src: /src/hunspell/src/hunspell/hunspell.cxx:485,1
    - Dst: std::move
      Src: /src/hunspell/src/hunspell/hunspell.cxx:486,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 5
    argNames:
    - ' word'
    - ' candidate_stack'
    - info
    - root
    - suggest_start
    argTypes:
    - std::string
    - std::vector<std::string>
    - int*
    - std::string*
    - std::chrono::steady_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 491
    functionName: HunspellImpl::spell
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - std::move
    - get_oconvtable
    - end
    - c_str
    - pop_back
    - std::find
    - trace
    - std::chrono::steady_clock::now
    - size
    - push_back
    - RepList*::conv
    - begin
    - HunspellImpl::spell_internal
    - HunspellImpl::active_trace
    linkageType: ''
    returnType: bool
    signature: "bool HunspellImpl::spell(const std::string& word, std::vector<std::string>&
      candidate_stack,\n                         int* info, std::string* root,\n                         std::chrono::steady_clock::time_point
      suggest_start)"
  - BBCount: 70
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:508,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:511,1
    - Dst: get_iconvtable
      Src: /src/hunspell/src/hunspell/hunspell.cxx:522,1
    - Dst: RepList*::conv
      Src: /src/hunspell/src/hunspell/hunspell.cxx:526,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:530,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:530,1
    - Dst: HunspellImpl::cleanword2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:532,1
    - Dst: HunspellImpl::cleanword2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:534,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:548,1
    - Dst: std::string*::clear
      Src: /src/hunspell/src/hunspell/hunspell.cxx:551,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:560,1
    - Dst: static_cast<unsigned short>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:563,1
    - Dst: static_cast<unsigned char>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:563,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:584,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:587,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:588,1
    - Dst: HunspellImpl::mkinitsmall2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:595,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:596,1
    - Dst: HunspellImpl::is_keepcase
      Src: /src/hunspell/src/hunspell/hunspell.cxx:597,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:603,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:608,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:609,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:615,1
    - Dst: HunspellImpl::mkallsmall2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:617,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:620,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:621,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:621,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/hunspell.cxx:624,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/hunspell.cxx:625,1
    - Dst: HunspellImpl::mkinitcap2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:626,1
    - Dst: std::move
      Src: /src/hunspell/src/hunspell/hunspell.cxx:628,1
    - Dst: std::vector::insert
      Src: /src/hunspell/src/hunspell/hunspell.cxx:629,1
    - Dst: std::vector::end
      Src: /src/hunspell/src/hunspell/hunspell.cxx:629,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/hunspell.cxx:629,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/hunspell.cxx:629,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:630,1
    - Dst: HunspellImpl::mkinitcap2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:634,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:636,1
    - Dst: HunspellImpl::mkinitcap2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:640,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:641,1
    - Dst: get_checksharps
      Src: /src/hunspell/src/hunspell/hunspell.cxx:646,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:646,1
    - Dst: HunspellImpl::mkallsmall2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:648,1
    - Dst: HunspellImpl::spellsharps
      Src: /src/hunspell/src/hunspell/hunspell.cxx:650,1
    - Dst: HunspellImpl::mkinitcap2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:652,1
    - Dst: HunspellImpl::spellsharps
      Src: /src/hunspell/src/hunspell/hunspell.cxx:653,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:656,1
    - Dst: HunspellImpl::spellsharps
      Src: /src/hunspell/src/hunspell/hunspell.cxx:657,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/hunspell.cxx:659,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:660,1
    - Dst: HunspellImpl::spellsharps
      Src: /src/hunspell/src/hunspell/hunspell.cxx:661,1
    - Dst: HunspellImpl::mkallsmall2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:674,1
    - Dst: HunspellImpl::mkinitcap2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:675,1
    - Dst: std::string::replace
      Src: /src/hunspell/src/hunspell/hunspell.cxx:677,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:681,1
    - Dst: HunspellImpl::is_keepcase
      Src: /src/hunspell/src/hunspell/hunspell.cxx:691,1
    - Dst: HunspellImpl::mkallsmall2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:696,1
    - Dst: HunspellImpl::mkinitcap2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:698,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:700,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:702,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:703,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:706,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:709,1
    - Dst: HunspellImpl::is_keepcase
      Src: /src/hunspell/src/hunspell/hunspell.cxx:712,1
    - Dst: HunspellImpl::is_keepcase
      Src: /src/hunspell/src/hunspell/hunspell.cxx:717,1
    - Dst: get_checksharps
      Src: /src/hunspell/src/hunspell/hunspell.cxx:721,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:722,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:723,1
    - Dst: get_warn
      Src: /src/hunspell/src/hunspell/hunspell.cxx:730,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hunspell.cxx:731,1
    - Dst: get_warn
      Src: /src/hunspell/src/hunspell/hunspell.cxx:731,1
    - Dst: get_forbidwarn
      Src: /src/hunspell/src/hunspell/hunspell.cxx:733,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:741,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:744,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:749,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:751,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:759,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hunspell.cxx:763,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:764,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:764,1
    - Dst: std::string::compare
      Src: /src/hunspell/src/hunspell/hunspell.cxx:770,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:771,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/hunspell/hunspell.cxx:772,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:773,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:777,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:783,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:784,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:786,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:791,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:792,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:794,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/hunspell/hunspell.cxx:795,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:797,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:801,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:805,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/hunspell/hunspell.cxx:806,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:807,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:811,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:819,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:819,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:821,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:821,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:823,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/hunspell/hunspell.cxx:824,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:826,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:830,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:834,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/hunspell/hunspell.cxx:835,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:836,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:840,1
    CyclomaticComplexity: 135
    EdgeCount: 135
    ICount: 236
    argCount: 5
    argNames:
    - ' word'
    - ' candidate_stack'
    - info
    - root
    - suggest_start
    argTypes:
    - std::string
    - std::vector<std::string>
    - int*
    - std::string*
    - std::chrono::steady_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 493
    functionDepth: 3
    functionLinenumber: 493
    functionLinenumberEnd: 848
    functionName: HunspellImpl::spell_internal
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - std::string::size
    - std::string*::clear
    - std::string::find
    - TESTAFF
    - static_cast<unsigned short>
    - HunspellImpl::checkword
    - std::string::push_back
    - std::vector::end
    - std::string::substr
    - HunspellImpl::spell
    - end
    - std::string
    - std::string::append
    - static_cast<unsigned char>
    - begin
    - std::vector::insert
    - std::string::resize
    - std::move
    - std::string::replace
    - u8_u16
    - std::vector::size
    - HunspellImpl::is_keepcase
    - empty
    - get_forbidwarn
    - std::string::compare
    - size
    - RepList*::conv
    - HunspellImpl::spellsharps
    - get_warn
    - get_iconvtable
    - HunspellImpl::cleanword2
    - HunspellImpl::mkallsmall2
    - HunspellImpl::mkinitcap2
    - HunspellImpl::mkinitsmall2
    - get_checksharps
    linkageType: ''
    returnType: bool
    signature: "bool HunspellImpl::spell_internal(const std::string& word, std::vector<std::string>&
      candidate_stack,\n                                  int* info, std::string*
      root,\n                                  std::chrono::steady_clock::time_point
      suggest_start)"
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:853,1
    - Dst: HunspellImpl::clean_ignore
      Src: /src/hunspell/src/hunspell/hunspell.cxx:859,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:861,1
    - Dst: reverseword_utf
      Src: /src/hunspell/src/hunspell/hunspell.cxx:867,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:869,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:872,1
    - Dst: HunspellImpl::active_trace
      Src: /src/hunspell/src/hunspell/hunspell.cxx:876,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:877,1
    - Dst: lookup
      Src: /src/hunspell/src/hunspell/hunspell.cxx:878,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:878,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:878,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:882,1
    - Dst: std::to_string
      Src: /src/hunspell/src/hunspell/hunspell.cxx:883,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/hunspell.cxx:885,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:885,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:886,1
    - Dst: trace_flags
      Src: /src/hunspell/src/hunspell/hunspell.cxx:887,1
    - Dst: get
      Src: /src/hunspell/src/hunspell/hunspell.cxx:887,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/hunspell.cxx:889,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:889,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:889,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hunspell.cxx:894,1
    - Dst: get_forbiddenword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:894,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/hunspell.cxx:896,1
    - Dst: encode_flag
      Src: /src/hunspell/src/hunspell/hunspell.cxx:898,1
    - Dst: get_forbiddenword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:898,1
    - Dst: trace_flags
      Src: /src/hunspell/src/hunspell/hunspell.cxx:899,1
    - Dst: get
      Src: /src/hunspell/src/hunspell/hunspell.cxx:899,1
    - Dst: get_compoundflag
      Src: /src/hunspell/src/hunspell/hunspell.cxx:904,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hunspell.cxx:905,1
    - Dst: get_compoundflag
      Src: /src/hunspell/src/hunspell/hunspell.cxx:905,1
    - Dst: get_needaffix
      Src: /src/hunspell/src/hunspell/hunspell.cxx:916,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hunspell.cxx:917,1
    - Dst: get_needaffix
      Src: /src/hunspell/src/hunspell/hunspell.cxx:917,1
    - Dst: get_onlyincompound
      Src: /src/hunspell/src/hunspell/hunspell.cxx:918,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hunspell.cxx:919,1
    - Dst: get_onlyincompound
      Src: /src/hunspell/src/hunspell/hunspell.cxx:919,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hunspell.cxx:921,1
    - Dst: get_needaffix
      Src: /src/hunspell/src/hunspell/hunspell.cxx:926,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hunspell.cxx:927,1
    - Dst: get_needaffix
      Src: /src/hunspell/src/hunspell/hunspell.cxx:927,1
    - Dst: get_needaffix
      Src: /src/hunspell/src/hunspell/hunspell.cxx:929,1
    - Dst: get_onlyincompound
      Src: /src/hunspell/src/hunspell/hunspell.cxx:930,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hunspell.cxx:931,1
    - Dst: get_onlyincompound
      Src: /src/hunspell/src/hunspell/hunspell.cxx:931,1
    - Dst: get_onlyincompound
      Src: /src/hunspell/src/hunspell/hunspell.cxx:933,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/hunspell.cxx:935,1
    - Dst: trace_flag
      Src: /src/hunspell/src/hunspell/hunspell.cxx:937,1
    - Dst: get
      Src: /src/hunspell/src/hunspell/hunspell.cxx:937,1
    - Dst: trace_flags
      Src: /src/hunspell/src/hunspell/hunspell.cxx:938,1
    - Dst: get
      Src: /src/hunspell/src/hunspell/hunspell.cxx:938,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/hunspell.cxx:947,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:947,1
    - Dst: trace_flags
      Src: /src/hunspell/src/hunspell/hunspell.cxx:948,1
    - Dst: get
      Src: /src/hunspell/src/hunspell/hunspell.cxx:948,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/hunspell.cxx:950,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:950,1
    - Dst: affix_check
      Src: /src/hunspell/src/hunspell/hunspell.cxx:962,1
    - Dst: get_onlyincompound
      Src: /src/hunspell/src/hunspell/hunspell.cxx:966,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hunspell.cxx:967,1
    - Dst: get_onlyincompound
      Src: /src/hunspell/src/hunspell/hunspell.cxx:967,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hunspell.cxx:969,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/hunspell.cxx:975,1
    - Dst: get_forbiddenword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:975,1
    - Dst: std::string*::assign
      Src: /src/hunspell/src/hunspell/hunspell.cxx:981,1
    - Dst: reverseword_utf
      Src: /src/hunspell/src/hunspell/hunspell.cxx:984,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:986,1
    - Dst: get_compound
      Src: /src/hunspell/src/hunspell/hunspell.cxx:990,1
    - Dst: trace_on
      Src: /src/hunspell/src/hunspell/hunspell.cxx:997,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/hunspell.cxx:998,1
    - Dst: trace_on
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1000,1
    - Dst: compound_check
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1001,1
    - Dst: trace_on
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1009,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1010,1
    - Dst: trace_on
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1012,1
    - Dst: compound_check
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1013,1
    - Dst: isdigit
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1019,1
    - Dst: HunspellImpl::suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1027,1
    - Dst: trace_on
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1029,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1030,1
    - Dst: compound_check
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1041,1
    - Dst: std::string*::assign
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1046,1
    - Dst: reverseword_utf
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1049,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1051,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 116
    argCount: 4
    argNames:
    - ' w'
    - info
    - root
    - suggest_start
    argTypes:
    - std::string
    - int*
    - std::string*
    - std::chrono::steady_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 1061
    functionName: HunspellImpl::checkword
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 2
    functionsReached:
    - get_onlyincompound
    - std::string::size
    - std::string::c_str
    - trace
    - std::string*::assign
    - get_forbiddenword
    - TESTAFF
    - compound_check
    - HunspellImpl::clean_ignore
    - get
    - HunspellImpl::suggest
    - reverseword
    - std::chrono::steady_clock::now
    - std::to_string
    - HunspellImpl::active_trace
    - reverseword_utf
    - lookup
    - affix_check
    - isdigit
    - encode_flag
    - size
    - trace_flag
    - get_compound
    - std::string::empty
    - trace_on
    - get_needaffix
    - trace_flags
    - get_compoundflag
    linkageType: ''
    returnType: struct hentry
    signature: "struct hentry * HunspellImpl::checkword(const std::string& w, int*
      info, std::string* root,\n                                       std::chrono::steady_clock::time_point
      suggest_start)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1071,1
    - Dst: std::find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1073,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1073,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1073,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1073,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1077,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1084,1
    - Dst: HunspellImpl::suggest_internal
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1085,1
    - Dst: pop_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1087,1
    - Dst: reverseword_utf
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1092,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1094,1
    - Dst: HunspellImpl::mkinitcap
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1102,1
    - Dst: std::move
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1105,1
    - Dst: get_sugswithdots
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1110,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1110,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1112,1
    - Dst: substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1112,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1112,1
    - Dst: get_keepcase
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1117,1
    - Dst: get_forbiddenword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1117,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1124,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1128,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1129,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1131,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1132,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1133,1
    - Dst: substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1134,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1135,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1136,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1149,1
    - Dst: HunspellImpl::mkallsmall2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1153,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1154,1
    - Dst: std::move
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1155,1
    - Dst: HunspellImpl::mkinitcap2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1158,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1159,1
    - Dst: std::move
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1160,1
    - Dst: std::vector::resize
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1169,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1176,1
    - Dst: std::vector::resize
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1186,1
    - Dst: get_oconvtable
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1189,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1192,1
    - Dst: RepList*::conv
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1194,1
    - Dst: std::move
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1195,1
    - Dst: std::move
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1203,1
    - Dst: std::vector::resize
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1206,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 95
    argCount: 3
    argNames:
    - ' word'
    - ' suggest_candidate_stack'
    - suggest_start
    argTypes:
    - std::string
    - std::vector<std::string>
    - std::chrono::steady_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1069
    functionDepth: 2
    functionLinenumber: 1069
    functionLinenumberEnd: 1209
    functionName: HunspellImpl::suggest
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - get_oconvtable
    - std::find
    - get_forbiddenword
    - HunspellImpl::spell
    - find
    - end
    - pop_back
    - reverseword
    - std::chrono::steady_clock::now
    - HunspellImpl::suggest_internal
    - begin
    - HunspellImpl::mkinitcap
    - reverseword_utf
    - std::move
    - u8_u16
    - std::vector::size
    - append
    - size
    - RepList*::conv
    - std::vector::resize
    - get_sugswithdots
    - get_keepcase
    - HunspellImpl::mkallsmall2
    - std::string::empty
    - push_back
    - HunspellImpl::mkinitcap2
    - substr
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> HunspellImpl::suggest(const std::string& word,
      std::vector<std::string>& suggest_candidate_stack, std::chrono::steady_clock::time_point
      suggest_start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1213,1
    - Dst: HunspellImpl::suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1215
    functionName: HunspellImpl::suggest
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 2
    functionsReached:
    - HunspellImpl::suggest
    - std::chrono::steady_clock::now
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> HunspellImpl::suggest(const std::string& word)
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1224,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1233,1
    - Dst: compare
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1237,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1238,1
    - Dst: HunspellImpl::spellml
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1240,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1243,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1246,1
    - Dst: get_iconvtable
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1255,1
    - Dst: RepList*::conv
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1259,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1263,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1263,1
    - Dst: HunspellImpl::cleanword2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1265,1
    - Dst: HunspellImpl::cleanword2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1267,1
    - Dst: get_forceucase
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1281,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1283,1
    - Dst: HunspellImpl::mkinitcap
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1285,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1286,1
    - Dst: std::move
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1286,1
    - Dst: HunspellImpl::suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1293,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1294,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1298,1
    - Dst: HunspellImpl::suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1299,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1300,1
    - Dst: HunspellImpl::suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1308,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1309,1
    - Dst: HunspellImpl::mkallsmall2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1312,1
    - Dst: HunspellImpl::suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1313,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1314,1
    - Dst: HunspellImpl::suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1322,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1323,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1326,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1328,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1332,1
    - Dst: get_captype_utf8
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1333,1
    - Dst: get_captype
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1335,1
    - Dst: std::string::insert
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1339,1
    - Dst: HunspellImpl::insert_sug
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1340,1
    - Dst: HunspellImpl::mkinitsmall2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1349,1
    - Dst: HunspellImpl::suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1350,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1351,1
    - Dst: HunspellImpl::mkallsmall2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1355,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1356,1
    - Dst: HunspellImpl::insert_sug
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1357,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1358,1
    - Dst: HunspellImpl::suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1359,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1360,1
    - Dst: HunspellImpl::mkinitcap2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1363,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1364,1
    - Dst: HunspellImpl::insert_sug
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1365,1
    - Dst: HunspellImpl::suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1366,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1367,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1371,1
    - Dst: strchr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1372,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1372,1
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1374,1
    - Dst: strcmp
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1376,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1376,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1377,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1381,1
    - Dst: HunspellImpl::mkinitcap2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1382,1
    - Dst: std::vector::erase
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1384,1
    - Dst: std::vector::begin
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1384,1
    - Dst: std::vector::insert
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1385,1
    - Dst: std::vector::begin
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1385,1
    - Dst: HunspellImpl::mkallsmall2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1394,1
    - Dst: HunspellImpl::suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1395,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1396,1
    - Dst: get_keepcase
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1398,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1398,1
    - Dst: HunspellImpl::insert_sug
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1399,1
    - Dst: HunspellImpl::mkinitcap2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1400,1
    - Dst: HunspellImpl::suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1401,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1402,1
    - Dst: HunspellImpl::mkallcap
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1405,1
    - Dst: get_checksharps
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1406,1
    - Dst: mystrrep
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1408,1
    - Dst: mystrrep
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1410,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1421,1
    - Dst: substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1424,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1425,1
    - Dst: substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1425,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1426,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1436,1
    - Dst: get_maxngramsugs
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1436,1
    - Dst: ngsuggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1439,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1439,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1440,1
    - Dst: HunspellImpl::mkallsmall2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1450,1
    - Dst: ngsuggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1451,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1451,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1452,1
    - Dst: HunspellImpl::mkallsmall2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1459,1
    - Dst: ngsuggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1460,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1460,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1461,1
    - Dst: HunspellImpl::mkallsmall2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1467,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1468,1
    - Dst: ngsuggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1469,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1469,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1470,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1472,1
    - Dst: HunspellImpl::mkallcap
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1473,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1486,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1489,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1490,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1498,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1500,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1501,1
    - Dst: HunspellImpl::suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1502,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1503,1
    - Dst: std::vector::rbegin
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1505,1
    - Dst: std::vector::rend
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1505,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1506,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1507,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1509,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1510,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1510,1
    - Dst: get_forbiddenword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1513,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1514,1
    - Dst: HunspellImpl::insert_sug
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1516,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1522,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1525,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 217
    argCount: 7
    argNames:
    - ' word'
    - ' spell_candidate_stack'
    - ' suggest_candidate_stack'
    - ' capwords'
    - ' abbv'
    - ' captype'
    - suggest_start
    argTypes:
    - std::string
    - std::vector<std::string>
    - std::vector<std::string>
    - bool
    - size_t
    - int
    - std::chrono::steady_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1217
    functionDepth: 3
    functionLinenumber: 1217
    functionLinenumberEnd: 1529
    functionName: HunspellImpl::suggest_internal
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - mystrrep
    - HunspellImpl::spellml
    - std::string::size
    - get_maxngramsugs
    - std::string::c_str
    - get_captype
    - std::string::find
    - HunspellImpl::insert_sug
    - get_forbiddenword
    - HunspellImpl::checkword
    - std::string::push_back
    - get_forceucase
    - std::vector::rend
    - std::string::substr
    - HunspellImpl::spell
    - find
    - get
    - get_captype_utf8
    - HunspellImpl::suggest
    - strchr
    - std::chrono::steady_clock::now
    - strcmp
    - std::string::append
    - std::vector::insert
    - HunspellImpl::mkinitcap
    - std::move
    - std::vector::begin
    - std::vector::push_back
    - std::vector::empty
    - u8_u16
    - std::vector::size
    - empty
    - size
    - std::vector::erase
    - strlen
    - std::string::insert
    - RepList*::conv
    - compare
    - HunspellImpl::mkallcap
    - get_iconvtable
    - HunspellImpl::cleanword2
    - c_str
    - get_keepcase
    - ngsuggest
    - HunspellImpl::mkallsmall2
    - std::vector::rbegin
    - HunspellImpl::mkinitcap2
    - HunspellImpl::mkinitsmall2
    - substr
    - get_checksharps
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> HunspellImpl::suggest_internal(const std::string&
      word,\n        std::vector<std::string>& spell_candidate_stack,\n        std::vector<std::string>&
      suggest_candidate_stack,\n        bool& capwords, size_t& abbv, int& captype,\n
      \       std::chrono::steady_clock::time_point suggest_start)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1531
    functionDepth: 0
    functionLinenumber: 1531
    functionLinenumberEnd: 1533
    functionName: '& HunspellImpl::get_dict_encoding() const'
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & HunspellImpl::get_dict_encoding() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1539,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1542,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1550,1
    - Dst: line_tok
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1553,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1555,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1559,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1561,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1563,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1565,1
    - Dst: suggest_gen
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1566,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1567,1
    - Dst: line_tok
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1568,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1570,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1571,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1572,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1576,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1577,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1578,1
    - Dst: copy_field
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1580,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1581,1
    - Dst: copy_field
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1584,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1585,1
    - Dst: line_tok
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1589,1
    - Dst: uniqlist
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1590,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - ' desc'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1592
    functionName: HunspellImpl::stem
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - find
    - std::vector::push_back
    - copy_field
    - std::string::size
    - empty
    - std::string::empty
    - std::string::find
    - suggest_gen
    - line_tok
    - std::string::append
    - uniqlist
    - std::string::push_back
    - resize
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> HunspellImpl::stem(const std::vector<std::string>&
      desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HunspellImpl::stem
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1595,1
    - Dst: HunspellImpl::analyze
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1594
    functionDepth: 1
    functionLinenumber: 1594
    functionLinenumberEnd: 1596
    functionName: HunspellImpl::stem
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - HunspellImpl::analyze
    - HunspellImpl::stem
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> HunspellImpl::stem(const std::string& word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_wordchars
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1600
    functionName: '& HunspellImpl::get_wordchars_cpp() const'
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - get_wordchars
    linkageType: ''
    returnType: std::string
    signature: std::string & HunspellImpl::get_wordchars_cpp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_wordchars_utf16
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1602
    functionDepth: 0
    functionLinenumber: 1602
    functionLinenumberEnd: 1604
    functionName: '& HunspellImpl::get_wordchars_utf16() const'
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - get_wordchars_utf16
    linkageType: ''
    returnType: std::vector<w_char>
    signature: std::vector<w_char> & HunspellImpl::get_wordchars_utf16() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1609,1
    - Dst: mkinitcap_utf
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1610,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1611,1
    - Dst: HunspellImpl::mkinitcap
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' u8'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1615
    functionName: HunspellImpl::mkinitcap
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 3
    functionsReached:
    - u8_u16
    - u16_u8
    - HunspellImpl::mkinitcap
    - mkinitcap_utf
    linkageType: ''
    returnType: void
    signature: void HunspellImpl::mkinitcap(std::string& u8)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mkinitcap_utf
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1619,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1620,1
    - Dst: HunspellImpl::mkinitcap
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1622,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' u8'
    - ' u16'
    argTypes:
    - std::string
    - std::vector<w_char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1617
    functionDepth: 1
    functionLinenumber: 1617
    functionLinenumberEnd: 1625
    functionName: HunspellImpl::mkinitcap2
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 3
    functionsReached:
    - mkinitcap_utf
    - u16_u8
    - size
    - HunspellImpl::mkinitcap
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::mkinitcap2(std::string& u8, std::vector<w_char>&
      u16)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mkinitsmall_utf
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1629,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1630,1
    - Dst: mkinitsmall
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1632,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' u8'
    - ' u16'
    argTypes:
    - std::string
    - std::vector<w_char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1635
    functionName: HunspellImpl::mkinitsmall2
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 2
    functionsReached:
    - u16_u8
    - mkinitsmall_utf
    - size
    - mkinitsmall
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::mkinitsmall2(std::string& u8, std::vector<w_char>&
      u16)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1638,1
    - Dst: HunspellImpl::add
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1637
    functionDepth: 1
    functionLinenumber: 1637
    functionLinenumberEnd: 1641
    functionName: HunspellImpl::add
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - HunspellImpl::add
    - empty
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::add(const std::string& word)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1644,1
    - Dst: HunspellImpl::add_with_flags
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' word'
    - ' flags'
    - ' desc'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1643
    functionDepth: 1
    functionLinenumber: 1643
    functionLinenumberEnd: 1647
    functionName: HunspellImpl::add_with_flags
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - empty
    - HunspellImpl::add_with_flags
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::add_with_flags(const std::string& word, const std::string&
      flags, const std::string& desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1650,1
    - Dst: HunspellImpl::add_with_affix
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' word'
    - ' example'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1653
    functionName: HunspellImpl::add_with_affix
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - empty
    - HunspellImpl::add_with_affix
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::add_with_affix(const std::string& word, const std::string&
      example)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1656,1
    - Dst: HunspellImpl::remove
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1655
    functionDepth: 1
    functionLinenumber: 1655
    functionLinenumberEnd: 1659
    functionName: HunspellImpl::remove
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - empty
    - HunspellImpl::remove
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::remove(const std::string& word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_version
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1663
    functionName: '& HunspellImpl::get_version_cpp() const'
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - get_version
    linkageType: ''
    returnType: std::string
    signature: std::string & HunspellImpl::get_version_cpp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<struct cs_info*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1665
    functionDepth: 0
    functionLinenumber: 1665
    functionLinenumberEnd: 1670
    functionName: HunspellImpl::get_csconv
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - const_cast<struct cs_info*>
    linkageType: ''
    returnType: struct cs_info
    signature: struct cs_info * HunspellImpl::get_csconv()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1673,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1675,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1676,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1677,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1678,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' result'
    - ' st'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1672
    functionDepth: 0
    functionLinenumber: 1672
    functionLinenumberEnd: 1680
    functionName: HunspellImpl::cat_result
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - empty
    - size
    - append
    linkageType: ''
    returnType: void
    signature: void HunspellImpl::cat_result(std::string& result, const std::string&
      st)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HunspellImpl::analyze_internal
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1683,1
    - Dst: get_oconvtable
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1685,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1691,1
    - Dst: RepList*::conv
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1693,1
    - Dst: std::move
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1694,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1696,1
    - Dst: std::vector::resize
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1702,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1682
    functionDepth: 1
    functionLinenumber: 1682
    functionLinenumberEnd: 1705
    functionName: HunspellImpl::analyze
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - std::move
    - get_oconvtable
    - std::vector::size
    - HunspellImpl::analyze_internal
    - size
    - RepList*::conv
    - std::vector::resize
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> HunspellImpl::analyze(const std::string& word)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1709,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1712,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1715,1
    - Dst: get_iconvtable
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1726,1
    - Dst: RepList*::conv
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1730,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1734,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1734,1
    - Dst: HunspellImpl::cleanword2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1736,1
    - Dst: HunspellImpl::cleanword2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1738,1
    - Dst: std::string::clear
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1748,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1750,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1758,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1781,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1781,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1782,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1783,1
    - Dst: HunspellImpl::cat_result
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1785,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1785,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1785,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1787,1
    - Dst: HunspellImpl::cat_result
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1788,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1788,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1789,1
    - Dst: HunspellImpl::cat_result
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1790,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1790,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1790,1
    - Dst: line_tok
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1792,1
    - Dst: HunspellImpl::cat_result
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1801,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1801,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1804,1
    - Dst: HunspellImpl::cat_result
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1805,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1805,1
    - Dst: HunspellImpl::mkallsmall2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1810,1
    - Dst: HunspellImpl::mkinitcap2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1812,1
    - Dst: HunspellImpl::cat_result
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1813,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1813,1
    - Dst: HunspellImpl::cat_result
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1814,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1814,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1816,1
    - Dst: HunspellImpl::cat_result
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1817,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1817,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1820,1
    - Dst: HunspellImpl::cat_result
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1822,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1822,1
    - Dst: HunspellImpl::cat_result
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1827,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1827,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1830,1
    - Dst: HunspellImpl::cat_result
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1831,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1831,1
    - Dst: HunspellImpl::mkallsmall2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1833,1
    - Dst: HunspellImpl::mkinitcap2
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1835,1
    - Dst: HunspellImpl::cat_result
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1837,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1837,1
    - Dst: HunspellImpl::cat_result
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1838,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1838,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1840,1
    - Dst: HunspellImpl::cat_result
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1841,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1841,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1844,1
    - Dst: HunspellImpl::cat_result
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1846,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1846,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1852,1
    - Dst: reverseword_utf
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1856,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1858,1
    - Dst: line_tok
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1860,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1866,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1870,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1870,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1873,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1874,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1875,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1876,1
    - Dst: line_tok
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1877,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1881,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1882,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1883,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1884,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1885,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1886,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1888,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1889,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1890,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1891,1
    - Dst: line_tok
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1893,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1897,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1898,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1899,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1899,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1900,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1901,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1902,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1903,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1904,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1905,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1907,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1908,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1909,1
    - Dst: line_tok
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1911,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1935,1
    - Dst: HunspellImpl::checkword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1936,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1937,1
    - Dst: suggest_morph
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1938,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1939,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1940,1
    - Dst: line_tok
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1942,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 166
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1948
      start: 1707
    functionDepth: 3
    functionLinenumber: 1707
    functionLinenumberEnd: 1948
    functionName: HunspellImpl::analyze_internal
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - std::string::size
    - std::string::find
    - HunspellImpl::checkword
    - std::string::push_back
    - std::string::substr
    - HunspellImpl::spell
    - reverseword
    - std::chrono::steady_clock::now
    - std::string::append
    - line_tok
    - std::string::resize
    - reverseword_utf
    - empty
    - std::string::erase
    - size
    - RepList*::conv
    - HunspellImpl::cat_result
    - std::string::clear
    - get_iconvtable
    - HunspellImpl::cleanword2
    - HunspellImpl::mkallsmall2
    - std::string::empty
    - HunspellImpl::mkinitcap2
    - suggest_morph
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> HunspellImpl::analyze_internal(const std::string&
      word)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1952,1
    - Dst: HunspellImpl::analyze
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1954,1
    - Dst: HunspellImpl::cleanword
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1957,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1960,1
    - Dst: HunspellImpl::cat_result
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1962,1
    - Dst: suggest_gen
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1962,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1965,1
    - Dst: HunspellImpl::mkallcap
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1968,1
    - Dst: line_tok
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1971,1
    - Dst: HunspellImpl::mkinitcap
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1976,1
    - Dst: std::vector::begin
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1982,1
    - Dst: std::vector::end
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1983,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1984,1
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1987,1
    - Dst: std::vector::erase
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1988,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 2
    argNames:
    - ' word'
    - ' pl'
    argTypes:
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1995
      start: 1950
    functionDepth: 2
    functionLinenumber: 1950
    functionLinenumberEnd: 1995
    functionName: HunspellImpl::generate
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - HunspellImpl::mkallcap
    - HunspellImpl::spell
    - std::vector::begin
    - empty
    - std::string::empty
    - HunspellImpl::cleanword
    - std::vector::end
    - suggest_gen
    - std::chrono::steady_clock::now
    - line_tok
    - std::vector::erase
    - HunspellImpl::analyze
    - HunspellImpl::cat_result
    - HunspellImpl::mkinitcap
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> HunspellImpl::generate(const std::string&
      word, const std::vector<std::string>& pl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HunspellImpl::analyze
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1998,1
    - Dst: HunspellImpl::generate
      Src: /src/hunspell/src/hunspell/hunspell.cxx:1999,1
    - Dst: uniqlist
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' word'
    - ' pattern'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1997
    functionDepth: 2
    functionLinenumber: 1997
    functionLinenumberEnd: 2002
    functionName: HunspellImpl::generate
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - HunspellImpl::analyze
    - HunspellImpl::generate
    - uniqlist
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> HunspellImpl::generate(const std::string&
      word, const std::string& pattern)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2009,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2016,1
    - Dst: mystrrep
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2018,1
    - Dst: mystrrep
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2019,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ' in_par'
    - pos
    argTypes:
    - std::string
    - std::string::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 2005
    functionDepth: 1
    functionLinenumber: 2005
    functionLinenumberEnd: 2021
    functionName: HunspellImpl::get_xml_par
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - std::string::push_back
    - mystrrep
    - c_str
    linkageType: ''
    returnType: std::string
    signature: std::string HunspellImpl::get_xml_par(const std::string& in_par, std::string::size_type
      pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 2023
    functionDepth: 0
    functionLinenumber: 2023
    functionLinenumberEnd: 2025
    functionName: HunspellImpl::get_langnum
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::get_langnum() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_iconvtable
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2028,1
    - Dst: RepList*::conv
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2030,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' word'
    - ' dest'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2027
    functionDepth: 0
    functionLinenumber: 2027
    functionLinenumberEnd: 2034
    functionName: HunspellImpl::input_conv
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - assign
    - get_iconvtable
    - RepList*::conv
    linkageType: ''
    returnType: bool
    signature: bool HunspellImpl::input_conv(const std::string& word, std::string&
      dest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2041,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2045,1
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2050,1
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2052,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 3
    argNames:
    - ' s'
    - pos
    - attr
    argTypes:
    - std::string
    - std::string::size_type
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2037
    functionDepth: 0
    functionLinenumber: 2037
    functionLinenumberEnd: 2053
    functionName: HunspellImpl::get_xml_pos
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - find
    - strlen
    linkageType: ''
    returnType: std::string::size_type
    signature: std::string::size_type HunspellImpl::get_xml_pos(const std::string&
      s, std::string::size_type pos, const char* attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HunspellImpl::get_xml_par
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2058,1
    - Dst: HunspellImpl::get_xml_pos
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' q'
    - pos
    - attr
    - value
    argTypes:
    - std::string
    - std::string::size_type
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2055
    functionDepth: 2
    functionLinenumber: 2055
    functionLinenumberEnd: 2060
    functionName: HunspellImpl::check_xml_par
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - HunspellImpl::get_xml_pos
    - HunspellImpl::get_xml_par
    linkageType: ''
    returnType: int
    signature: "int HunspellImpl::check_xml_par(const std::string& q, std::string::size_type
      pos,\n                                const char* attr,\n                                const
      char* value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2067,1
    - Dst: HunspellImpl::get_xml_par
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2070,1
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2070,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2071,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2074,1
    - Dst: std::move
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2074,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - ' list'
    - pos
    - tag
    argTypes:
    - std::string
    - std::string::size_type
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2062
    functionDepth: 2
    functionLinenumber: 2062
    functionLinenumberEnd: 2078
    functionName: HunspellImpl::get_xml_list
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - find
    - std::move
    - std::vector::push_back
    - HunspellImpl::get_xml_par
    - std::string::empty
    - strlen
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> HunspellImpl::get_xml_list(const std::string&
      list, std::string::size_type pos, const char* tag)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2082,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2086,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2090,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2094,1
    - Dst: HunspellImpl::check_xml_par
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2098,1
    - Dst: HunspellImpl::get_xml_par
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2099,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2099,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2100,1
    - Dst: HunspellImpl::analyze
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2101,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2102,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2106,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2108,1
    - Dst: mystrrep
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2110,1
    - Dst: mystrrep
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2111,1
    - Dst: mystrrep
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2112,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2113,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2115,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2117,1
    - Dst: std::vector::clear
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2118,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2119,1
    - Dst: std::move
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2119,1
    - Dst: HunspellImpl::check_xml_par
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2121,1
    - Dst: HunspellImpl::get_xml_par
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2122,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2122,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2123,1
    - Dst: HunspellImpl::stem
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2124,1
    - Dst: HunspellImpl::check_xml_par
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2125,1
    - Dst: HunspellImpl::get_xml_par
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2126,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2126,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2127,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2129,1
    - Dst: HunspellImpl::get_xml_par
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2131,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2131,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2132,1
    - Dst: HunspellImpl::generate
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2133,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2136,1
    - Dst: HunspellImpl::get_xml_list
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2138,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2138,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2139,1
    - Dst: HunspellImpl::generate
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2140,1
    - Dst: uniqlist
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2141,1
    - Dst: HunspellImpl::check_xml_par
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2146,1
    - Dst: HunspellImpl::get_xml_par
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2147,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2147,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2148,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2150,1
    - Dst: HunspellImpl::get_xml_par
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2152,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2152,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2153,1
    - Dst: HunspellImpl::add_with_affix
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2154,1
    - Dst: HunspellImpl::add
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2156,1
    - Dst: HunspellImpl::add
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2159,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 1
    argNames:
    - ' in_word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2080
    functionDepth: 3
    functionLinenumber: 2080
    functionLinenumberEnd: 2163
    functionName: HunspellImpl::spellml
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - mystrrep
    - HunspellImpl::add
    - find
    - get
    - std::vector::empty
    - std::vector::push_back
    - HunspellImpl::get_xml_par
    - std::move
    - std::string::empty
    - HunspellImpl::check_xml_par
    - std::vector::clear
    - HunspellImpl::generate
    - std::string::append
    - HunspellImpl::stem
    - uniqlist
    - HunspellImpl::add_with_affix
    - HunspellImpl::analyze
    - HunspellImpl::get_xml_list
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> HunspellImpl::spellml(const std::string& in_word)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_ignore
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2171,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2173,1
    - Dst: get_ignore_utf16
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2176,1
    - Dst: remove_ignored_chars_utf
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2177,1
    - Dst: remove_ignored_chars
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2179,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2181,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2182,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2184,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2185,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2191,1
    - Dst: lookup
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2192,1
    - Dst: get_suffix_words
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2195,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ' root_word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2165
    functionDepth: 2
    functionLinenumber: 2165
    functionLinenumberEnd: 2198
    functionName: HunspellImpl::suffix_suggest
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - std::string::assign
    - get_suffix_words
    - get_ignore_utf16
    - lookup
    - std::string::size
    - c_str
    - remove_ignored_chars
    - std::string::c_str
    - remove_ignored_chars_utf
    - size
    - get_ignore
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> HunspellImpl::suffix_suggest(const std::string&
      root_word)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2204,1
    - Dst: malloc
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2205,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2207,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2203
    functionDepth: 0
    functionLinenumber: 2203
    functionLinenumberEnd: 2209
    functionName: stringdup
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - memcpy
    - size
    - malloc
    - c_str
    linkageType: ''
    returnType: char
    signature: char * stringdup(const std::string& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2212,1
    - Dst: char::char
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2216,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2216,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2217,1
    - Dst: stringdup
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2218,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - slst
    - ' items'
    argTypes:
    - char***
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2211
    functionDepth: 1
    functionLinenumber: 2211
    functionLinenumberEnd: 2221
    functionName: munge_vector
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - stringdup
    - size
    - empty
    - char::char
    linkageType: ''
    returnType: int
    signature: int munge_vector(char*** slst, const std::vector<std::string>& items)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2204,1
    - Dst: malloc
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2205,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2207,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2203
    functionDepth: 0
    functionLinenumber: 2203
    functionLinenumberEnd: 2209
    functionName: stringdup
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - memcpy
    - size
    - malloc
    - c_str
    linkageType: ''
    returnType: char
    signature: char * stringdup(const std::string& s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2212,1
    - Dst: char::char
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2216,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2216,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2217,1
    - Dst: stringdup
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2218,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - slst
    - ' items'
    argTypes:
    - char***
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2211
    functionDepth: 1
    functionLinenumber: 2211
    functionLinenumberEnd: 2221
    functionName: munge_vector
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - stringdup
    - size
    - empty
    - char::char
    linkageType: ''
    returnType: int
    signature: int munge_vector(char*** slst, const std::vector<std::string>& items)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HunspellImpl::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2227,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2229,1
    - Dst: stringdup
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - word
    - info
    - root
    argTypes:
    - char*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2236
      start: 2224
    functionDepth: 1
    functionLinenumber: 2224
    functionLinenumberEnd: 2236
    functionName: HunspellImpl::spell
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 6
    functionsReached:
    - HunspellImpl::spell
    - std::string::empty
    - stringdup
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::spell(const char* word, int* info, char** root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HunspellImpl::suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2239,1
    - Dst: munge_vector
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slst
    - word
    argTypes:
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2238
    functionDepth: 2
    functionLinenumber: 2238
    functionLinenumberEnd: 2241
    functionName: HunspellImpl::suggest
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 4
    functionsReached:
    - HunspellImpl::suggest
    - munge_vector
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::suggest(char*** slst, const char* word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HunspellImpl::suffix_suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2244,1
    - Dst: munge_vector
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slst
    - root_word
    argTypes:
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2243
    functionDepth: 2
    functionLinenumber: 2243
    functionLinenumberEnd: 2246
    functionName: HunspellImpl::suffix_suggest
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - munge_vector
    - HunspellImpl::suffix_suggest
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::suffix_suggest(char*** slst, const char* root_word)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - slst
    - n
    argTypes:
    - char***
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2248
    functionDepth: 0
    functionLinenumber: 2248
    functionLinenumberEnd: 2255
    functionName: HunspellImpl::free_list
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void HunspellImpl::free_list(char*** slst, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2257
    functionDepth: 0
    functionLinenumber: 2257
    functionLinenumberEnd: 2259
    functionName: HunspellImpl::get_dic_encoding
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * HunspellImpl::get_dic_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HunspellImpl::analyze
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2262,1
    - Dst: munge_vector
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slst
    - word
    argTypes:
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2261
    functionDepth: 2
    functionLinenumber: 2261
    functionLinenumberEnd: 2264
    functionName: HunspellImpl::analyze
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 5
    functionsReached:
    - HunspellImpl::analyze
    - munge_vector
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::analyze(char*** slst, const char* word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HunspellImpl::stem
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2267,1
    - Dst: munge_vector
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slst
    - word
    argTypes:
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2266
    functionDepth: 2
    functionLinenumber: 2266
    functionLinenumberEnd: 2269
    functionName: HunspellImpl::stem
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 3
    functionsReached:
    - munge_vector
    - HunspellImpl::stem
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::stem(char*** slst, const char* word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2273,1
    - Dst: std::vector::emplace_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2274,1
    - Dst: HunspellImpl::stem
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2276,1
    - Dst: munge_vector
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - slst
    - desc
    - n
    argTypes:
    - char***
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2271
    functionDepth: 2
    functionLinenumber: 2271
    functionLinenumberEnd: 2278
    functionName: HunspellImpl::stem
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 4
    functionsReached:
    - munge_vector
    - std::vector::emplace_back
    - HunspellImpl::stem
    - std::vector::reserve
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::stem(char*** slst, char** desc, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HunspellImpl::generate
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2281,1
    - Dst: munge_vector
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - slst
    - word
    - pattern
    argTypes:
    - char***
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2283
      start: 2280
    functionDepth: 2
    functionLinenumber: 2280
    functionLinenumberEnd: 2283
    functionName: HunspellImpl::generate
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 3
    functionsReached:
    - HunspellImpl::generate
    - munge_vector
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::generate(char*** slst, const char* word, const char*
      pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2287,1
    - Dst: std::vector::emplace_back
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2288,1
    - Dst: HunspellImpl::generate
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2290,1
    - Dst: munge_vector
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - slst
    - word
    - pl
    - pln
    argTypes:
    - char***
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2292
      start: 2285
    functionDepth: 2
    functionLinenumber: 2285
    functionLinenumberEnd: 2292
    functionName: HunspellImpl::generate
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 4
    functionsReached:
    - HunspellImpl::generate
    - munge_vector
    - std::vector::emplace_back
    - std::vector::reserve
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::generate(char*** slst, const char* word, char** pl,
      int pln)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_wordchars_cpp
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2294
    functionDepth: 0
    functionLinenumber: 2294
    functionLinenumberEnd: 2296
    functionName: HunspellImpl::get_wordchars
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - get_wordchars_cpp
    linkageType: ''
    returnType: char
    signature: char * HunspellImpl::get_wordchars() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_version_cpp
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2298
    functionDepth: 0
    functionLinenumber: 2298
    functionLinenumberEnd: 2300
    functionName: HunspellImpl::get_version
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - get_version_cpp
    linkageType: ''
    returnType: char
    signature: char * HunspellImpl::get_version() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2304,1
    - Dst: TraceCtx::TraceCtx
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2304,1
    - Dst: reset
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - callback
    - userdata
    argTypes:
    - HunspellTraceCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2302
    functionDepth: 1
    functionLinenumber: 2302
    functionLinenumberEnd: 2307
    functionName: HunspellImpl::set_trace_callback
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reset
    - TraceCtx::TraceCtx
    linkageType: ''
    returnType: void
    signature: void HunspellImpl::set_trace_callback(HunspellTraceCallback callback,
      void* userdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HunspellImpl::input_conv
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2311,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2312,1
    - Dst: strncpy
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2313,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - word
    - dest
    - destsize
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2309
    functionDepth: 1
    functionLinenumber: 2309
    functionLinenumberEnd: 2317
    functionName: HunspellImpl::input_conv
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - strncpy
    - HunspellImpl::input_conv
    - std::string::c_str
    - std::string::size
    linkageType: ''
    returnType: int
    signature: int HunspellImpl::input_conv(const char* word, char* dest, size_t destsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HunspellImpl::HunspellImpl
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - affpath
    - dpath
    - key
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2319
    functionDepth: 1
    functionLinenumber: 2319
    functionLinenumberEnd: 2321
    functionName: Hunspell::Hunspell
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 5
    functionsReached:
    - HunspellImpl::HunspellImpl
    linkageType: ''
    returnType: void
    signature: void Hunspell::Hunspell(const char* affpath, const char* dpath, const
      char* key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2323
    functionDepth: 0
    functionLinenumber: 2323
    functionLinenumberEnd: 2325
    functionName: Hunspell::~Hunspell()
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hunspell::~Hunspell()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::add_dic
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dpath
    - key
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2328
    functionDepth: 1
    functionLinenumber: 2328
    functionLinenumberEnd: 2330
    functionName: Hunspell::add_dic
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - Hunspell::add_dic
    linkageType: ''
    returnType: int
    signature: int Hunspell::add_dic(const char* dpath, const char* key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2334,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' word'
    - info
    - root
    argTypes:
    - std::string
    - int*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2332
    functionDepth: 1
    functionLinenumber: 2332
    functionLinenumberEnd: 2336
    functionName: Hunspell::spell
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 6
    functionsReached:
    - Hunspell::spell
    - std::chrono::steady_clock::now
    linkageType: ''
    returnType: bool
    signature: bool Hunspell::spell(const std::string& word, int* info, std::string*
      root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2338
    functionDepth: 1
    functionLinenumber: 2338
    functionLinenumberEnd: 2340
    functionName: Hunspell::suggest
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 4
    functionsReached:
    - Hunspell::suggest
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Hunspell::suggest(const std::string& word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::suffix_suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' root_word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2342
    functionDepth: 1
    functionLinenumber: 2342
    functionLinenumberEnd: 2344
    functionName: Hunspell::suffix_suggest
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - Hunspell::suffix_suggest
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Hunspell::suffix_suggest(const std::string&
      root_word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_dict_encoding
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2346
    functionDepth: 0
    functionLinenumber: 2346
    functionLinenumberEnd: 2348
    functionName: '& Hunspell::get_dict_encoding() const'
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - get_dict_encoding
    linkageType: ''
    returnType: std::string
    signature: std::string & Hunspell::get_dict_encoding() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::stem
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' desc'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2350
    functionDepth: 1
    functionLinenumber: 2350
    functionLinenumberEnd: 2352
    functionName: Hunspell::stem
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 3
    functionsReached:
    - Hunspell::stem
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Hunspell::stem(const std::vector<std::string>&
      desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::stem
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2354
    functionDepth: 1
    functionLinenumber: 2354
    functionLinenumberEnd: 2356
    functionName: Hunspell::stem
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 4
    functionsReached:
    - Hunspell::stem
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Hunspell::stem(const std::string& word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_wordchars_cpp
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2358
    functionDepth: 0
    functionLinenumber: 2358
    functionLinenumberEnd: 2360
    functionName: '& Hunspell::get_wordchars_cpp() const'
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - get_wordchars_cpp
    linkageType: ''
    returnType: std::string
    signature: std::string & Hunspell::get_wordchars_cpp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_wordchars_utf16
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2362
    functionDepth: 0
    functionLinenumber: 2362
    functionLinenumberEnd: 2364
    functionName: '& Hunspell::get_wordchars_utf16() const'
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - get_wordchars_utf16
    linkageType: ''
    returnType: std::vector<w_char>
    signature: std::vector<w_char> & Hunspell::get_wordchars_utf16() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::add
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2366
    functionDepth: 1
    functionLinenumber: 2366
    functionLinenumberEnd: 2368
    functionName: Hunspell::add
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 2
    functionsReached:
    - Hunspell::add
    linkageType: ''
    returnType: int
    signature: int Hunspell::add(const std::string& word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::add_with_flags
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' word'
    - ' flags'
    - ' desc'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2370
    functionDepth: 1
    functionLinenumber: 2370
    functionLinenumberEnd: 2372
    functionName: Hunspell::add_with_flags
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - Hunspell::add_with_flags
    linkageType: ''
    returnType: int
    signature: int Hunspell::add_with_flags(const std::string& word, const std::string&
      flags, const std::string& desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::add_with_affix
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' word'
    - ' example'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2374
    functionDepth: 1
    functionLinenumber: 2374
    functionLinenumberEnd: 2376
    functionName: Hunspell::add_with_affix
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 4
    functionsReached:
    - Hunspell::add_with_affix
    linkageType: ''
    returnType: int
    signature: int Hunspell::add_with_affix(const std::string& word, const std::string&
      example)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::remove
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2380
      start: 2378
    functionDepth: 1
    functionLinenumber: 2378
    functionLinenumberEnd: 2380
    functionName: Hunspell::remove
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 3
    functionsReached:
    - Hunspell::remove
    linkageType: ''
    returnType: int
    signature: int Hunspell::remove(const std::string& word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_version_cpp
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2382
    functionDepth: 0
    functionLinenumber: 2382
    functionLinenumberEnd: 2384
    functionName: '& Hunspell::get_version_cpp() const'
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - get_version_cpp
    linkageType: ''
    returnType: std::string
    signature: std::string & Hunspell::get_version_cpp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::get_csconv
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2386
    functionDepth: 1
    functionLinenumber: 2386
    functionLinenumberEnd: 2388
    functionName: Hunspell::get_csconv
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - Hunspell::get_csconv
    linkageType: ''
    returnType: struct cs_info
    signature: struct cs_info * Hunspell::get_csconv()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::analyze
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2390
    functionDepth: 1
    functionLinenumber: 2390
    functionLinenumberEnd: 2392
    functionName: Hunspell::analyze
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 3
    functionsReached:
    - Hunspell::analyze
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Hunspell::analyze(const std::string& word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::generate
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' word'
    - ' pl'
    argTypes:
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2394
    functionDepth: 1
    functionLinenumber: 2394
    functionLinenumberEnd: 2396
    functionName: Hunspell::generate
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 3
    functionsReached:
    - Hunspell::generate
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Hunspell::generate(const std::string& word,
      const std::vector<std::string>& pl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::generate
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' word'
    - ' pattern'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2398
    functionDepth: 1
    functionLinenumber: 2398
    functionLinenumberEnd: 2400
    functionName: Hunspell::generate
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 4
    functionsReached:
    - Hunspell::generate
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> Hunspell::generate(const std::string& word,
      const std::string& pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::get_langnum
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2402
    functionDepth: 1
    functionLinenumber: 2402
    functionLinenumberEnd: 2404
    functionName: Hunspell::get_langnum
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - Hunspell::get_langnum
    linkageType: ''
    returnType: int
    signature: int Hunspell::get_langnum() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::input_conv
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' word'
    - ' dest'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2408
      start: 2406
    functionDepth: 1
    functionLinenumber: 2406
    functionLinenumberEnd: 2408
    functionName: Hunspell::input_conv
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - Hunspell::input_conv
    linkageType: ''
    returnType: bool
    signature: bool Hunspell::input_conv(const std::string& word, std::string& dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::spell
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - word
    - info
    - root
    argTypes:
    - char*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2410
    functionDepth: 1
    functionLinenumber: 2410
    functionLinenumberEnd: 2412
    functionName: Hunspell::spell
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 7
    functionsReached:
    - Hunspell::spell
    linkageType: ''
    returnType: int
    signature: int Hunspell::spell(const char* word, int* info, char** root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slst
    - word
    argTypes:
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2416
      start: 2414
    functionDepth: 1
    functionLinenumber: 2414
    functionLinenumberEnd: 2416
    functionName: Hunspell::suggest
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 5
    functionsReached:
    - Hunspell::suggest
    linkageType: ''
    returnType: int
    signature: int Hunspell::suggest(char*** slst, const char* word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::suffix_suggest
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slst
    - root_word
    argTypes:
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2418
    functionDepth: 1
    functionLinenumber: 2418
    functionLinenumberEnd: 2420
    functionName: Hunspell::suffix_suggest
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 2
    functionsReached:
    - Hunspell::suffix_suggest
    linkageType: ''
    returnType: int
    signature: int Hunspell::suffix_suggest(char*** slst, const char* root_word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::free_list
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slst
    - n
    argTypes:
    - char***
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2422
    functionDepth: 1
    functionLinenumber: 2422
    functionLinenumberEnd: 2424
    functionName: Hunspell::free_list
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - Hunspell::free_list
    linkageType: ''
    returnType: void
    signature: void Hunspell::free_list(char*** slst, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::get_dic_encoding
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2428
      start: 2426
    functionDepth: 1
    functionLinenumber: 2426
    functionLinenumberEnd: 2428
    functionName: Hunspell::get_dic_encoding
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - Hunspell::get_dic_encoding
    linkageType: ''
    returnType: char
    signature: char * Hunspell::get_dic_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::analyze
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slst
    - word
    argTypes:
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2432
      start: 2430
    functionDepth: 1
    functionLinenumber: 2430
    functionLinenumberEnd: 2432
    functionName: Hunspell::analyze
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 4
    functionsReached:
    - Hunspell::analyze
    linkageType: ''
    returnType: int
    signature: int Hunspell::analyze(char*** slst, const char* word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::stem
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slst
    - word
    argTypes:
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2434
    functionDepth: 1
    functionLinenumber: 2434
    functionLinenumberEnd: 2436
    functionName: Hunspell::stem
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 5
    functionsReached:
    - Hunspell::stem
    linkageType: ''
    returnType: int
    signature: int Hunspell::stem(char*** slst, const char* word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::stem
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - slst
    - desc
    - n
    argTypes:
    - char***
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2438
    functionDepth: 1
    functionLinenumber: 2438
    functionLinenumberEnd: 2440
    functionName: Hunspell::stem
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 6
    functionsReached:
    - Hunspell::stem
    linkageType: ''
    returnType: int
    signature: int Hunspell::stem(char*** slst, char** desc, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::generate
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - slst
    - word
    - pattern
    argTypes:
    - char***
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2442
    functionDepth: 1
    functionLinenumber: 2442
    functionLinenumberEnd: 2444
    functionName: Hunspell::generate
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 5
    functionsReached:
    - Hunspell::generate
    linkageType: ''
    returnType: int
    signature: int Hunspell::generate(char*** slst, const char* word, const char*
      pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::generate
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - slst
    - word
    - pl
    - pln
    argTypes:
    - char***
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2446
    functionDepth: 1
    functionLinenumber: 2446
    functionLinenumberEnd: 2448
    functionName: Hunspell::generate
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 6
    functionsReached:
    - Hunspell::generate
    linkageType: ''
    returnType: int
    signature: int Hunspell::generate(char*** slst, const char* word, char** pl, int
      pln)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::get_wordchars
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2450
    functionDepth: 1
    functionLinenumber: 2450
    functionLinenumberEnd: 2452
    functionName: Hunspell::get_wordchars
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - Hunspell::get_wordchars
    linkageType: ''
    returnType: char
    signature: char * Hunspell::get_wordchars() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::get_version
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2456
      start: 2454
    functionDepth: 1
    functionLinenumber: 2454
    functionLinenumberEnd: 2456
    functionName: Hunspell::get_version
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - Hunspell::get_version
    linkageType: ''
    returnType: char
    signature: char * Hunspell::get_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2458
    functionDepth: 0
    functionLinenumber: 2458
    functionLinenumberEnd: 2460
    functionName: Hunspell::get_library_version
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * Hunspell::get_library_version()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::input_conv
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - word
    - dest
    - destsize
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2462
    functionDepth: 1
    functionLinenumber: 2462
    functionLinenumberEnd: 2464
    functionName: Hunspell::input_conv
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 2
    functionsReached:
    - Hunspell::input_conv
    linkageType: ''
    returnType: int
    signature: int Hunspell::input_conv(const char* word, char* dest, size_t destsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::set_trace_callback
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - callback
    - userdata
    argTypes:
    - HunspellTraceCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2466
    functionDepth: 1
    functionLinenumber: 2466
    functionLinenumberEnd: 2468
    functionName: Hunspell::set_trace_callback
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 1
    functionsReached:
    - Hunspell::set_trace_callback
    linkageType: ''
    returnType: void
    signature: void Hunspell::set_trace_callback(HunspellTraceCallback callback, void*
      userdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<Hunhandle*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2471,1
    - Dst: HunspellImpl::HunspellImpl
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - affpath
    - dpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2472
      start: 2470
    functionDepth: 1
    functionLinenumber: 2470
    functionLinenumberEnd: 2472
    functionName: Hunspell_create
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - HunspellImpl::HunspellImpl
    - reinterpret_cast<Hunhandle*>
    linkageType: ''
    returnType: Hunhandle
    signature: Hunhandle * Hunspell_create(const char* affpath, const char* dpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<Hunhandle*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2477,1
    - Dst: HunspellImpl::HunspellImpl
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - affpath
    - dpath
    - key
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2478
      start: 2474
    functionDepth: 1
    functionLinenumber: 2474
    functionLinenumberEnd: 2478
    functionName: Hunspell_create_key
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - HunspellImpl::HunspellImpl
    - reinterpret_cast<Hunhandle*>
    linkageType: ''
    returnType: Hunhandle
    signature: "Hunhandle * Hunspell_create_key(const char* affpath,\n                               const
      char* dpath,\n                               const char* key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HunspellImpl*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pHunspell
    argTypes:
    - Hunhandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2482
      start: 2480
    functionDepth: 0
    functionLinenumber: 2480
    functionLinenumberEnd: 2482
    functionName: Hunspell_destroy
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reinterpret_cast<HunspellImpl*>
    linkageType: ''
    returnType: void
    signature: void Hunspell_destroy(Hunhandle* pHunspell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HunspellImpl*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pHunspell
    - dpath
    argTypes:
    - Hunhandle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2484
    functionDepth: 0
    functionLinenumber: 2484
    functionLinenumberEnd: 2486
    functionName: Hunspell_add_dic
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reinterpret_cast<HunspellImpl*>
    linkageType: ''
    returnType: int
    signature: int Hunspell_add_dic(Hunhandle* pHunspell, const char* dpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HunspellImpl*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pHunspell
    - word
    argTypes:
    - Hunhandle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2490
      start: 2488
    functionDepth: 0
    functionLinenumber: 2488
    functionLinenumberEnd: 2490
    functionName: Hunspell_spell
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reinterpret_cast<HunspellImpl*>
    linkageType: ''
    returnType: int
    signature: int Hunspell_spell(Hunhandle* pHunspell, const char* word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HunspellImpl*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pHunspell
    argTypes:
    - Hunhandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2494
      start: 2492
    functionDepth: 0
    functionLinenumber: 2492
    functionLinenumberEnd: 2494
    functionName: Hunspell_get_dic_encoding
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reinterpret_cast<HunspellImpl*>
    linkageType: ''
    returnType: char
    signature: char * Hunspell_get_dic_encoding(Hunhandle* pHunspell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell::get_library_version
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2498
      start: 2496
    functionDepth: 1
    functionLinenumber: 2496
    functionLinenumberEnd: 2498
    functionName: Hunspell_get_library_version
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - Hunspell::get_library_version
    linkageType: ''
    returnType: char
    signature: char * Hunspell_get_library_version(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HunspellImpl*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pHunspell
    - slst
    - word
    argTypes:
    - Hunhandle*
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2500
    functionDepth: 0
    functionLinenumber: 2500
    functionLinenumberEnd: 2502
    functionName: Hunspell_suggest
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reinterpret_cast<HunspellImpl*>
    linkageType: ''
    returnType: int
    signature: int Hunspell_suggest(Hunhandle* pHunspell, char*** slst, const char*
      word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HunspellImpl*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pHunspell
    - slst
    - root_word
    argTypes:
    - Hunhandle*
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2506
      start: 2504
    functionDepth: 0
    functionLinenumber: 2504
    functionLinenumberEnd: 2506
    functionName: Hunspell_suffix_suggest
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reinterpret_cast<HunspellImpl*>
    linkageType: ''
    returnType: int
    signature: int Hunspell_suffix_suggest(Hunhandle* pHunspell, char*** slst, const
      char* root_word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HunspellImpl*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pHunspell
    - slst
    - word
    argTypes:
    - Hunhandle*
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2510
      start: 2508
    functionDepth: 0
    functionLinenumber: 2508
    functionLinenumberEnd: 2510
    functionName: Hunspell_analyze
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reinterpret_cast<HunspellImpl*>
    linkageType: ''
    returnType: int
    signature: int Hunspell_analyze(Hunhandle* pHunspell, char*** slst, const char*
      word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HunspellImpl*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pHunspell
    - slst
    - word
    argTypes:
    - Hunhandle*
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2512
    functionDepth: 0
    functionLinenumber: 2512
    functionLinenumberEnd: 2514
    functionName: Hunspell_stem
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reinterpret_cast<HunspellImpl*>
    linkageType: ''
    returnType: int
    signature: int Hunspell_stem(Hunhandle* pHunspell, char*** slst, const char* word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HunspellImpl*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pHunspell
    - slst
    - desc
    - n
    argTypes:
    - Hunhandle*
    - char***
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2518
      start: 2516
    functionDepth: 0
    functionLinenumber: 2516
    functionLinenumberEnd: 2518
    functionName: Hunspell_stem2
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reinterpret_cast<HunspellImpl*>
    linkageType: ''
    returnType: int
    signature: int Hunspell_stem2(Hunhandle* pHunspell, char*** slst, char** desc,
      int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HunspellImpl*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pHunspell
    - slst
    - word
    - pattern
    argTypes:
    - Hunhandle*
    - char***
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2526
      start: 2520
    functionDepth: 0
    functionLinenumber: 2520
    functionLinenumberEnd: 2526
    functionName: Hunspell_generate
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reinterpret_cast<HunspellImpl*>
    linkageType: ''
    returnType: int
    signature: "int Hunspell_generate(Hunhandle* pHunspell,\n                      char***
      slst,\n                      const char* word,\n                      const
      char* pattern)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HunspellImpl*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pHunspell
    - slst
    - word
    - desc
    - n
    argTypes:
    - Hunhandle*
    - char***
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2535
      start: 2528
    functionDepth: 0
    functionLinenumber: 2528
    functionLinenumberEnd: 2535
    functionName: Hunspell_generate2
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reinterpret_cast<HunspellImpl*>
    linkageType: ''
    returnType: int
    signature: "int Hunspell_generate2(Hunhandle* pHunspell,\n                       char***
      slst,\n                       const char* word,\n                       char**
      desc,\n                       int n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HunspellImpl*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pHunspell
    - word
    argTypes:
    - Hunhandle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2543
      start: 2541
    functionDepth: 0
    functionLinenumber: 2541
    functionLinenumberEnd: 2543
    functionName: Hunspell_add
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reinterpret_cast<HunspellImpl*>
    linkageType: ''
    returnType: int
    signature: int Hunspell_add(Hunhandle* pHunspell, const char* word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HunspellImpl*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pHunspell
    - word
    - flags
    - desc
    argTypes:
    - Hunhandle*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2547
      start: 2545
    functionDepth: 0
    functionLinenumber: 2545
    functionLinenumberEnd: 2547
    functionName: Hunspell_add_with_flags
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reinterpret_cast<HunspellImpl*>
    linkageType: ''
    returnType: int
    signature: int Hunspell_add_with_flags(Hunhandle* pHunspell, const char* word,
      const char* flags, const char* desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HunspellImpl*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pHunspell
    - word
    - example
    argTypes:
    - Hunhandle*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2558
      start: 2554
    functionDepth: 0
    functionLinenumber: 2554
    functionLinenumberEnd: 2558
    functionName: Hunspell_add_with_affix
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reinterpret_cast<HunspellImpl*>
    linkageType: ''
    returnType: int
    signature: "int Hunspell_add_with_affix(Hunhandle* pHunspell,\n                            const
      char* word,\n                            const char* example)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HunspellImpl*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pHunspell
    - word
    argTypes:
    - Hunhandle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2564
      start: 2562
    functionDepth: 0
    functionLinenumber: 2562
    functionLinenumberEnd: 2564
    functionName: Hunspell_remove
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reinterpret_cast<HunspellImpl*>
    linkageType: ''
    returnType: int
    signature: int Hunspell_remove(Hunhandle* pHunspell, const char* word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HunspellImpl*>
      Src: /src/hunspell/src/hunspell/hunspell.cxx:2567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pHunspell
    - list
    - n
    argTypes:
    - Hunhandle*
    - char***
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2568
      start: 2566
    functionDepth: 0
    functionLinenumber: 2566
    functionLinenumberEnd: 2568
    functionName: Hunspell_free_list
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.cxx
    functionUses: 0
    functionsReached:
    - reinterpret_cast<HunspellImpl*>
    linkageType: ''
    returnType: void
    signature: void Hunspell_free_list(Hunhandle* pHunspell, char*** list, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: PfxEntry::PfxEntry
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PfxEntry(const PfxEntry&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: '& operator=(const PfxEntry&)'
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PfxEntry
    signature: PfxEntry & operator=(const PfxEntry&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: PfxEntry::allowCross
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allowCross() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: PfxEntry::getFlag
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLAG
    signature: FLAG getFlag()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.hxx:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: PfxEntry::getKey
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char * getKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.hxx:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: PfxEntry::getKeyLen
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int getKeyLen()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: PfxEntry::getMorph
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * getMorph()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: PfxEntry::getCont
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short * getCont()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: PfxEntry::getContLen
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short getContLen()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: PfxEntry::getNext
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PfxEntry
    signature: PfxEntry * getNext()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: PfxEntry::getNextNE
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PfxEntry
    signature: PfxEntry * getNextNE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: PfxEntry::getNextEQ
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PfxEntry
    signature: PfxEntry * getNextEQ()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: PfxEntry::getFlgNxt
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PfxEntry
    signature: PfxEntry * getFlgNxt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - PfxEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: PfxEntry::setNext
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setNext(PfxEntry* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - PfxEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: PfxEntry::setNextNE
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setNextNE(PfxEntry* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - PfxEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: PfxEntry::setNextEQ
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setNextEQ(PfxEntry* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - PfxEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: PfxEntry::setFlgNxt
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setFlgNxt(PfxEntry* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: SfxEntry::allowCross
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool allowCross() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: SfxEntry::getFlag
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FLAG
    signature: FLAG getFlag()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.hxx:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: SfxEntry::getKey
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char * getKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: SfxEntry::getMorph
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * getMorph()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: SfxEntry::getCont
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short * getCont()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: SfxEntry::getContLen
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short getContLen()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.hxx:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 228
    functionName: SfxEntry::getAffix
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char * getAffix()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.hxx:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: SfxEntry::getKeyLen
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int getKeyLen()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: SfxEntry::getNext
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SfxEntry
    signature: SfxEntry * getNext()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: SfxEntry::getNextNE
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SfxEntry
    signature: SfxEntry * getNextNE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: SfxEntry::getNextEQ
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SfxEntry
    signature: SfxEntry * getNextEQ()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: SfxEntry::getLM
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SfxEntry
    signature: SfxEntry * getLM()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    functionName: SfxEntry::getRM
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SfxEntry
    signature: SfxEntry * getRM()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    functionName: SfxEntry::getEQM
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SfxEntry
    signature: SfxEntry * getEQM()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: SfxEntry::getFlgNxt
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SfxEntry
    signature: SfxEntry * getFlgNxt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - SfxEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: SfxEntry::setNext
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setNext(SfxEntry* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - SfxEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 242
    functionName: SfxEntry::setNextNE
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setNextNE(SfxEntry* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - SfxEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 243
    functionName: SfxEntry::setNextEQ
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setNextEQ(SfxEntry* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - SfxEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 244
    functionName: SfxEntry::setFlgNxt
    functionSourceFile: /src/hunspell/src/hunspell/affentry.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setFlgNxt(SfxEntry* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/hunspell/src/hunspell/replist.cxx:80,1
    - Dst: std::min
      Src: /src/hunspell/src/hunspell/replist.cxx:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: RepList::RepList
    functionSourceFile: /src/hunspell/src/hunspell/replist.cxx
    functionUses: 1
    functionsReached:
    - std::min
    - reserve
    linkageType: ''
    returnType: void
    signature: void RepList::RepList(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: RepList::~RepList()
    functionSourceFile: /src/hunspell/src/hunspell/replist.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RepList::~RepList()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/replist.cxx:92,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/replist.cxx:99,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/replist.cxx:99,1
    - Dst: strncmp
      Src: /src/hunspell/src/hunspell/replist.cxx:100,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/replist.cxx:100,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/replist.cxx:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - word
    - max_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 115
    functionName: RepList::find
    functionSourceFile: /src/hunspell/src/hunspell/replist.cxx
    functionUses: 0
    functionsReached:
    - c_str
    - size
    - strncmp
    linkageType: ''
    returnType: int
    signature: int RepList::find(const char* word, size_t max_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pattern::size
      Src: /src/hunspell/src/hunspell/replist.cxx:119,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/replist.cxx:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - wordlen
    - ind
    - atstart
    argTypes:
    - size_t
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: RepList::replace
    functionSourceFile: /src/hunspell/src/hunspell/replist.cxx
    functionUses: 0
    functionsReached:
    - empty
    - pattern::size
    linkageType: ''
    returnType: std::string
    signature: std::string RepList::replace(const size_t wordlen, int ind, bool atstart)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/replist.cxx:127,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/replist.cxx:127,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/hunspell/replist.cxx:135,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/replist.cxx:138,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/replist.cxx:138,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/hunspell/replist.cxx:140,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/replist.cxx:140,1
    - Dst: mystrrep
      Src: /src/hunspell/src/hunspell/replist.cxx:142,1
    - Dst: mystrrep
      Src: /src/hunspell/src/hunspell/replist.cxx:151,1
    - Dst: RepList::add
      Src: /src/hunspell/src/hunspell/replist.cxx:152,1
    - Dst: RepList::find
      Src: /src/hunspell/src/hunspell/replist.cxx:158,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/replist.cxx:158,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/replist.cxx:158,1
    - Dst: mystrrep
      Src: /src/hunspell/src/hunspell/replist.cxx:162,1
    - Dst: replentry::replentry
      Src: /src/hunspell/src/hunspell/replist.cxx:167,1
    - Dst: std::move
      Src: /src/hunspell/src/hunspell/replist.cxx:168,1
    - Dst: mystrrep
      Src: /src/hunspell/src/hunspell/replist.cxx:170,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/replist.cxx:171,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/replist.cxx:174,1
    - Dst: strcmp
      Src: /src/hunspell/src/hunspell/replist.cxx:175,1
    - Dst: replentry*::pattern::c_str
      Src: /src/hunspell/src/hunspell/replist.cxx:175,1
    - Dst: pattern::c_str
      Src: /src/hunspell/src/hunspell/replist.cxx:175,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - ' in_pat1'
    - ' pat2'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 182
    functionName: RepList::add
    functionSourceFile: /src/hunspell/src/hunspell/replist.cxx
    functionUses: 1
    functionsReached:
    - mystrrep
    - RepList::add
    - std::move
    - replentry*::pattern::c_str
    - std::string::size
    - replentry::replentry
    - empty
    - std::string::erase
    - std::string::empty
    - std::string::c_str
    - pattern::c_str
    - push_back
    - size
    - RepList::find
    - strcmp
    linkageType: ''
    returnType: int
    signature: int RepList::add(const std::string& in_pat1, const std::string& pat2)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_status
      Src: /src/hunspell/src/hunspell/replist.cxx:187,1
    - Dst: transcode
      Src: /src/hunspell/src/hunspell/replist.cxx:188,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/replist.cxx:190,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/replist.cxx:192,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/replist.cxx:193,1
    - Dst: RepList::find
      Src: /src/hunspell/src/hunspell/replist.cxx:205,1
    - Dst: RepList::replace
      Src: /src/hunspell/src/hunspell/replist.cxx:208,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/replist.cxx:209,1
    - Dst: pattern::size
      Src: /src/hunspell/src/hunspell/replist.cxx:213,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/replist.cxx:220,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/replist.cxx:224,1
    - Dst: pattern::empty
      Src: /src/hunspell/src/hunspell/replist.cxx:225,1
    - Dst: pattern::size
      Src: /src/hunspell/src/hunspell/replist.cxx:226,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - ' in_word'
    - ' dest'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 232
    functionName: RepList::conv
    functionSourceFile: /src/hunspell/src/hunspell/replist.cxx
    functionUses: 0
    functionsReached:
    - c_str
    - RepList::replace
    - append
    - std::string::empty
    - get_status
    - transcode
    - size
    - push_back
    - RepList::find
    - pattern::size
    - pattern::empty
    - clear
    linkageType: ''
    returnType: bool
    signature: bool RepList::conv(const std::string& in_word, std::string& dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RepList::find
      Src: /src/hunspell/src/hunspell/replist.cxx:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' breaktable'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 246
    functionName: RepList::check_against_breaktable
    functionSourceFile: /src/hunspell/src/hunspell/replist.cxx
    functionUses: 0
    functionsReached:
    - RepList::find
    linkageType: ''
    returnType: bool
    signature: bool RepList::check_against_breaktable(const std::vector<std::string>&
      breaktable) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hunspell
      Src: /src/hunspell/src/hunspell/hunspell.hxx:126,1
    - Dst: Hunspell
      Src: /src/hunspell/src/hunspell/hunspell.hxx:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 253
    functionName: Hunspell
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.hxx
    functionUses: 6
    functionsReached:
    - Hunspell
    linkageType: ''
    returnType: class LIBHUNSPELL_DLL_EXPORTED
    signature: class LIBHUNSPELL_DLL_EXPORTED Hunspell
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: Hunspell
    functionSourceFile: /src/hunspell/src/hunspell/hunspell.hxx
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hunspell(const Hunspell&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/replist.hxx:141,1
    - Dst: AffixMgr::setcminmax
      Src: /src/hunspell/src/hunspell/replist.hxx:145,1
    - Dst: static_cast<IndexType>
      Src: /src/hunspell/src/hunspell/replist.hxx:150,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/replist.hxx:153,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/replist.hxx:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - curr_idx
    - symbol
    argTypes:
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 158
    functionName: Trie::advance_or_create
    functionSourceFile: /src/hunspell/src/hunspell/replist.hxx
    functionUses: 0
    functionsReached:
    - emplace_back
    - static_cast<IndexType>
    - AffixMgr::setcminmax
    - size
    - push_back
    linkageType: ''
    returnType: size_t
    signature: size_t advance_or_create(size_t curr_idx, uint8_t symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/replist.hxx:163,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/replist.hxx:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: Trie::Trie
    functionSourceFile: /src/hunspell/src/hunspell/replist.hxx
    functionUses: 0
    functionsReached:
    - emplace_back
    - push_back
    linkageType: ''
    returnType: void
    signature: void Trie()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/replist.hxx:171,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/replist.hxx:172,1
    - Dst: insert
      Src: /src/hunspell/src/hunspell/replist.hxx:176,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/replist.hxx:176,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/replist.hxx:176,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/replist.hxx:176,1
    - Dst: static_cast<uint32_t>
      Src: /src/hunspell/src/hunspell/replist.hxx:177,1
    - Dst: static_cast<uint8_t>
      Src: /src/hunspell/src/hunspell/replist.hxx:177,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/replist.hxx:177,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/replist.hxx:182,1
    - Dst: static_cast<uint8_t>
      Src: /src/hunspell/src/hunspell/replist.hxx:183,1
    - Dst: Trie::advance_or_create
      Src: /src/hunspell/src/hunspell/replist.hxx:187,1
    - Dst: Trie::advance_or_create
      Src: /src/hunspell/src/hunspell/replist.hxx:189,1
    - Dst: Trie::advance_or_create
      Src: /src/hunspell/src/hunspell/replist.hxx:193,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ' key'
    - ' value'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 199
    functionName: Trie::add
    functionSourceFile: /src/hunspell/src/hunspell/replist.hxx
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - end
    - static_cast<uint32_t>
    - Trie::advance_or_create
    - size
    - insert
    - begin
    linkageType: ''
    returnType: void
    signature: void add(const std::string& key, const std::string& value)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/replist.hxx:207,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/replist.hxx:209,1
    - Dst: reserve
      Src: /src/hunspell/src/hunspell/replist.hxx:210,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/replist.hxx:210,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/replist.hxx:218,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/replist.hxx:226,1
    - Dst: static_cast<uint8_t>
      Src: /src/hunspell/src/hunspell/replist.hxx:227,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/replist.hxx:254,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/replist.hxx:259,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 2
    argNames:
    - ' src'
    - ' dst'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 273
    functionName: Trie::transcode
    functionSourceFile: /src/hunspell/src/hunspell/replist.hxx
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - append
    - empty
    - reserve
    - size
    - push_back
    - clear
    linkageType: ''
    returnType: TranscodeResult
    signature: TranscodeResult transcode(const std::string& src, std::string& dst)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: Trie::get_status
    functionSourceFile: /src/hunspell/src/hunspell/replist.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool get_status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 285
    functionName: RepList::RepList
    functionSourceFile: /src/hunspell/src/hunspell/replist.hxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RepList(const RepList&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    functionName: '& operator=(const RepList&)'
    functionSourceFile: /src/hunspell/src/hunspell/replist.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RepList
    signature: RepList & operator=(const RepList&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/hunspell/src/hunspell/csutil.hxx:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: is_utf8_cont
    functionSourceFile: /src/hunspell/src/hunspell/csutil.hxx
    functionUses: 7
    functionsReached:
    - static_cast<unsigned char>
    linkageType: ''
    returnType: bool
    signature: bool is_utf8_cont(char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/csutil.hxx:149,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/csutil.hxx:151,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/csutil.hxx:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ' s'
    - pos
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: utf8_next
    functionSourceFile: /src/hunspell/src/hunspell/csutil.hxx
    functionUses: 1
    functionsReached:
    - size
    - is_utf8_cont
    linkageType: ''
    returnType: size_t
    signature: size_t utf8_next(const std::string& s, size_t pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/hunspell/src/hunspell/csutil.hxx:296,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/csutil.hxx:296,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/csutil.hxx:296,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/csutil.hxx:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' word'
    - ' ignored_chars'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: has_no_ignored_chars
    functionSourceFile: /src/hunspell/src/hunspell/csutil.hxx
    functionUses: 2
    functionsReached:
    - begin
    - find
    - std::all_of
    - end
    linkageType: ''
    returnType: bool
    signature: "bool has_no_ignored_chars(const std::string& word,\n                            const
      std::string& ignored_chars)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_stored_pointer
      Src: /src/hunspell/src/hunspell/csutil.hxx:306,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/csutil.hxx:306,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/csutil.hxx:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 310
    functionName: HENTRY_DATA
    functionSourceFile: /src/hunspell/src/hunspell/csutil.hxx
    functionUses: 3
    functionsReached:
    - get_stored_pointer
    - HENTRY_WORD
    linkageType: ''
    returnType: char
    signature: char * HENTRY_DATA(struct hentry* h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_stored_pointer
      Src: /src/hunspell/src/hunspell/csutil.hxx:318,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/csutil.hxx:318,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/csutil.hxx:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 322
    functionName: HENTRY_DATA
    functionSourceFile: /src/hunspell/src/hunspell/csutil.hxx
    functionUses: 3
    functionsReached:
    - get_stored_pointer
    - HENTRY_WORD
    linkageType: ''
    returnType: char
    signature: "char * HENTRY_DATA(\n    const struct hentry* h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_stored_pointer
      Src: /src/hunspell/src/hunspell/csutil.hxx:331,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/csutil.hxx:331,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/csutil.hxx:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hentry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 335
    functionName: HENTRY_DATA2
    functionSourceFile: /src/hunspell/src/hunspell/csutil.hxx
    functionUses: 2
    functionsReached:
    - get_stored_pointer
    - HENTRY_WORD
    linkageType: ''
    returnType: char
    signature: "char * HENTRY_DATA2(\n    const struct hentry* h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/csutil.hxx:338,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/csutil.hxx:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - p
    argTypes:
    - struct hentry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: HENTRY_FIND
    functionSourceFile: /src/hunspell/src/hunspell/csutil.hxx
    functionUses: 3
    functionsReached:
    - strstr
    - HENTRY_DATA
    linkageType: ''
    returnType: char
    signature: char * HENTRY_FIND(struct hentry* h, const char* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/hunspell/src/hunspell/filemgr.cxx:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - err
    - par
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: FileMgr::fail
    functionSourceFile: /src/hunspell/src/hunspell/filemgr.cxx
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int FileMgr::fail(const char* err, const char* par)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/filemgr.cxx:88,1
    - Dst: myopen
      Src: /src/hunspell/src/hunspell/filemgr.cxx:90,1
    - Dst: is_open
      Src: /src/hunspell/src/hunspell/filemgr.cxx:91,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/filemgr.cxx:94,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/filemgr.cxx:95,1
    - Dst: Hunzip::Hunzip
      Src: /src/hunspell/src/hunspell/filemgr.cxx:95,1
    - Dst: is_open
      Src: /src/hunspell/src/hunspell/filemgr.cxx:97,1
    - Dst: is_open
      Src: /src/hunspell/src/hunspell/filemgr.cxx:97,1
    - Dst: FileMgr::fail
      Src: /src/hunspell/src/hunspell/filemgr.cxx:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - file
    - key
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 99
    functionName: FileMgr::FileMgr
    functionSourceFile: /src/hunspell/src/hunspell/filemgr.cxx
    functionUses: 3
    functionsReached:
    - myopen
    - FileMgr::fail
    - is_open
    - std::string::c_str
    - std::string::append
    - strlen
    - Hunzip::Hunzip
    linkageType: ''
    returnType: void
    signature: void FileMgr::FileMgr(const char* file, const char* key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: FileMgr::~FileMgr()
    functionSourceFile: /src/hunspell/src/hunspell/filemgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileMgr::~FileMgr()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/hunspell/src/hunspell/filemgr.cxx:108,1
    - Dst: static_cast<bool>
      Src: /src/hunspell/src/hunspell/filemgr.cxx:109,1
    - Dst: FileMgr::getline
      Src: /src/hunspell/src/hunspell/filemgr.cxx:109,1
    - Dst: is_open
      Src: /src/hunspell/src/hunspell/filemgr.cxx:110,1
    - Dst: FileMgr::getline
      Src: /src/hunspell/src/hunspell/filemgr.cxx:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' dest'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 117
    functionName: FileMgr::getline
    functionSourceFile: /src/hunspell/src/hunspell/filemgr.cxx
    functionUses: 2
    functionsReached:
    - is_open
    - static_cast<bool>
    - FileMgr::getline
    linkageType: ''
    returnType: bool
    signature: bool FileMgr::getline(std::string& dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: FileMgr::getlinenum
    functionSourceFile: /src/hunspell/src/hunspell/filemgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int FileMgr::getlinenum()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/hunspell/src/hunspell/phonet.cxx:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' parms'
    argTypes:
    - phonetable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: init_phonet_hash
    functionSourceFile: /src/hunspell/src/hunspell/phonet.cxx
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void init_phonet_hash(phonetable& parms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: strmove
    functionSourceFile: /src/hunspell/src/hunspell/phonet.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strmove(char* dest, char* src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isalpha
      Src: /src/hunspell/src/hunspell/phonet.cxx:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: myisalpha
    functionSourceFile: /src/hunspell/src/hunspell/phonet.cxx
    functionUses: 0
    functionsReached:
    - isalpha
    linkageType: ''
    returnType: int
    signature: int myisalpha(char ch)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/phonet.cxx:75,1
    - Dst: strncpy
      Src: /src/hunspell/src/hunspell/phonet.cxx:79,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/phonet.cxx:79,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/phonet.cxx:89,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/phonet.cxx:95,1
    - Dst: isdigit
      Src: /src/hunspell/src/hunspell/phonet.cxx:98,1
    - Dst: strchr
      Src: /src/hunspell/src/hunspell/phonet.cxx:98,1
    - Dst: myisalpha
      Src: /src/hunspell/src/hunspell/phonet.cxx:104,1
    - Dst: strchr
      Src: /src/hunspell/src/hunspell/phonet.cxx:105,1
    - Dst: isdigit
      Src: /src/hunspell/src/hunspell/phonet.cxx:121,1
    - Dst: myisalpha
      Src: /src/hunspell/src/hunspell/phonet.cxx:129,1
    - Dst: myisalpha
      Src: /src/hunspell/src/hunspell/phonet.cxx:130,1
    - Dst: myisalpha
      Src: /src/hunspell/src/hunspell/phonet.cxx:131,1
    - Dst: myisalpha
      Src: /src/hunspell/src/hunspell/phonet.cxx:132,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/phonet.cxx:139,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/phonet.cxx:145,1
    - Dst: isdigit
      Src: /src/hunspell/src/hunspell/phonet.cxx:147,1
    - Dst: strchr
      Src: /src/hunspell/src/hunspell/phonet.cxx:147,1
    - Dst: myisalpha
      Src: /src/hunspell/src/hunspell/phonet.cxx:153,1
    - Dst: strchr
      Src: /src/hunspell/src/hunspell/phonet.cxx:153,1
    - Dst: isdigit
      Src: /src/hunspell/src/hunspell/phonet.cxx:168,1
    - Dst: myisalpha
      Src: /src/hunspell/src/hunspell/phonet.cxx:175,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/phonet.cxx:200,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/phonet.cxx:201,1
    - Dst: strchr
      Src: /src/hunspell/src/hunspell/phonet.cxx:201,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/phonet.cxx:201,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/phonet.cxx:204,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/phonet.cxx:205,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/phonet.cxx:205,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/hunspell/phonet.cxx:206,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/phonet.cxx:206,1
    - Dst: strmove
      Src: /src/hunspell/src/hunspell/phonet.cxx:217,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/phonet.cxx:224,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/phonet.cxx:225,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/phonet.cxx:225,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/phonet.cxx:226,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/phonet.cxx:232,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/phonet.cxx:232,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/phonet.cxx:232,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/phonet.cxx:234,1
    - Dst: strmove
      Src: /src/hunspell/src/hunspell/phonet.cxx:236,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/phonet.cxx:247,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/phonet.cxx:249,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 138
    argCount: 2
    argNames:
    - ' inword'
    - ' parms'
    argTypes:
    - std::string
    - phonetable
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 260
    functionName: phonet
    functionSourceFile: /src/hunspell/src/hunspell/phonet.cxx
    functionUses: 0
    functionsReached:
    - c_str
    - std::string::size
    - isdigit
    - empty
    - strchr
    - myisalpha
    - std::string::empty
    - std::string::erase
    - size
    - std::string::push_back
    - strmove
    - strstr
    - strncpy
    linkageType: ''
    returnType: std::string
    signature: std::string phonet(const std::string& inword, phonetable& parms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: HUNSPELL_WARNING
    functionSourceFile: /src/hunspell/src/hunspell/atypes.hxx
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HUNSPELL_WARNING(FILE*, const char*, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: FREE_FLAG
    functionSourceFile: /src/hunspell/src/hunspell/atypes.hxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_FLAG(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: TESTAFF
    functionSourceFile: /src/hunspell/src/hunspell/atypes.hxx
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TESTAFF(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: guessword
    functionSourceFile: /src/hunspell/src/hunspell/atypes.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void guessword()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: patentry
    functionSourceFile: /src/hunspell/src/hunspell/atypes.hxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void patentry()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_langnum
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:108,1
    - Dst: get_key_string
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:109,1
    - Dst: get_nosplitsugs
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:110,1
    - Dst: get_maxngramsugs
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:111,1
    - Dst: get_maxngramsugs
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:112,1
    - Dst: get_utf8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:113,1
    - Dst: get_maxcpdsugs
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:114,1
    - Dst: get_maxcpdsugs
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:115,1
    - Dst: get_current_cs
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:117,1
    - Dst: get_encoding
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:117,1
    - Dst: get_complexprefixes
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:119,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:122,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:124,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:129,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:134,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:136,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:141,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:147,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:148,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 3
    argNames:
    - ' tryme'
    - maxn
    - aptr
    argTypes:
    - std::string
    - unsigned int
    - AffixMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 149
    functionName: SuggestMgr::SuggestMgr
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 0
    functionsReached:
    - get_nosplitsugs
    - find
    - get_langnum
    - get_utf8
    - get_maxngramsugs
    - u8_u16
    - get_current_cs
    - empty
    - size
    - get_maxcpdsugs
    - get_key_string
    - get_encoding
    - get_complexprefixes
    linkageType: ''
    returnType: void
    signature: void SuggestMgr::SuggestMgr(const std::string& tryme, unsigned int
      maxn, AffixMgr* aptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: SuggestMgr::~SuggestMgr()
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SuggestMgr::~SuggestMgr()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:167,1
    - Dst: std::find
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:170,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:170,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:170,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:170,1
    - Dst: SuggestMgr::checkword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:173,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 6
    argNames:
    - ' wlst'
    - ' candidate'
    - cpdsuggest
    - timer
    - timelimit
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::string
    - int
    - int*
    - std::chrono::steady_clock::time_point*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 180
    functionName: SuggestMgr::testsug
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 0
    functionsReached:
    - end
    - std::find
    - SuggestMgr::checkword
    - size
    - push_back
    - begin
    linkageType: ''
    returnType: void
    signature: "void SuggestMgr::testsug(std::vector<std::string>& wlst,\n                        const
      std::string& candidate,\n                        int cpdsuggest,\n                        int*
      timer,\n                        std::chrono::steady_clock::time_point* timelimit,\n
      \                       int& info)"
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:193,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:199,1
    - Dst: reverseword_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:201,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:203,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:208,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:211,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:229,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:232,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:233,1
    - Dst: SuggestMgr::capchars_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:235,1
    - Dst: SuggestMgr::capchars
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:237,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:238,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:243,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:243,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:244,1
    - Dst: SuggestMgr::replchars
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:245,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:246,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:252,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:254,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:258,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:259,1
    - Dst: SuggestMgr::mapchars
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:260,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:262,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:264,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:268,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:272,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:272,1
    - Dst: SuggestMgr::swapchar_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:274,1
    - Dst: SuggestMgr::swapchar
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:276,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:278,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:280,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:284,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:284,1
    - Dst: SuggestMgr::longswapchar_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:286,1
    - Dst: SuggestMgr::longswapchar
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:288,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:290,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:292,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:296,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:296,1
    - Dst: SuggestMgr::badcharkey_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:298,1
    - Dst: SuggestMgr::badcharkey
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:300,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:302,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:304,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:308,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:308,1
    - Dst: SuggestMgr::extrachar_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:310,1
    - Dst: SuggestMgr::extrachar
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:312,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:314,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:316,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:320,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:320,1
    - Dst: SuggestMgr::forgotchar_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:322,1
    - Dst: SuggestMgr::forgotchar
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:324,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:326,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:328,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:332,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:332,1
    - Dst: SuggestMgr::movechar_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:334,1
    - Dst: SuggestMgr::movechar
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:336,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:338,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:340,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:344,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:344,1
    - Dst: SuggestMgr::badchar_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:346,1
    - Dst: SuggestMgr::badchar
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:348,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:350,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:352,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:356,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:356,1
    - Dst: SuggestMgr::doubletwochars_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:358,1
    - Dst: SuggestMgr::doubletwochars
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:360,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:362,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:364,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:371,1
    - Dst: SuggestMgr::twowords
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:372,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:377,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:382,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:387,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:392,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 131
    argCount: 4
    argNames:
    - ' slst'
    - ' w'
    - onlycompoundsug
    - test_simplesug
    argTypes:
    - std::vector<std::string>
    - std::string
    - int*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 396
    functionName: SuggestMgr::suggest
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 0
    functionsReached:
    - SuggestMgr::extrachar_utf
    - std::string::assign
    - SuggestMgr::twowords
    - SuggestMgr::movechar_utf
    - SuggestMgr::capchars
    - SuggestMgr::capchars_utf
    - SuggestMgr::extrachar
    - reverseword
    - SuggestMgr::badchar
    - SuggestMgr::longswapchar_utf
    - std::chrono::steady_clock::now
    - SuggestMgr::doubletwochars_utf
    - SuggestMgr::doubletwochars
    - SuggestMgr::replchars
    - SuggestMgr::swapchar_utf
    - SuggestMgr::badcharkey
    - reverseword_utf
    - u8_u16
    - SuggestMgr::movechar
    - empty
    - SuggestMgr::forgotchar
    - SuggestMgr::longswapchar
    - size
    - SuggestMgr::mapchars
    - SuggestMgr::badcharkey_utf
    - SuggestMgr::swapchar
    - SuggestMgr::badchar_utf
    - SuggestMgr::forgotchar_utf
    linkageType: ''
    returnType: bool
    signature: "bool SuggestMgr::suggest(std::vector<std::string>& slst,\n                        const
      std::string& w,\n                        int* onlycompoundsug, bool test_simplesug)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mkallcap_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:403,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:405,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::vector<w_char>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 407
    functionName: SuggestMgr::capchars_utf
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - u16_u8
    - mkallcap_utf
    - SuggestMgr::testsug
    linkageType: ''
    returnType: void
    signature: "void SuggestMgr::capchars_utf(std::vector<std::string>& wlst,\n                              const
      std::vector<w_char>& word,\n                              int cpdsuggest, int&
      info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mkallcap
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:414,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 416
    functionName: SuggestMgr::capchars
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - SuggestMgr::testsug
    - mkallcap
    linkageType: ''
    returnType: void
    signature: "void SuggestMgr::capchars(std::vector<std::string>& wlst,\n                          const
      std::string& word,\n                          int cpdsuggest, int& info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:426,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:427,1
    - Dst: get_maptable
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:429,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:430,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:431,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:433,1
    - Dst: SuggestMgr::map_related
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 437
    functionName: SuggestMgr::mapchars
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - empty
    - SuggestMgr::map_related
    - size
    - std::chrono::steady_clock::now
    - get_maptable
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::mapchars(std::vector<std::string>& wlst,\n                         const
      std::string& word,\n                         int cpdsuggest, int& info)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:448,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:450,1
    - Dst: std::find
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:451,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:451,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:451,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:451,1
    - Dst: SuggestMgr::checkword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:452,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:453,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:454,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:457,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:462,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:466,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:467,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:468,1
    - Dst: compare
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:469,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:471,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:472,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:473,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:474,1
    - Dst: SuggestMgr::map_related
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:475,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:478,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:479,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:481,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:488,1
    - Dst: SuggestMgr::map_related
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:489,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:492,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 10
    argNames:
    - ' word'
    - ' candidate'
    - wn
    - ' wlst'
    - cpdsuggest
    - ' maptable'
    - timer
    - timelimit
    - depth
    - ' info'
    argTypes:
    - std::string
    - std::string
    - size_t
    - std::vector<std::string>
    - int
    - std::vector<mapentry>
    - int*
    - std::chrono::steady_clock::time_point*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 493
    functionName: SuggestMgr::map_related
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 2
    functionsReached:
    - end
    - append
    - std::find
    - SuggestMgr::map_related
    - SuggestMgr::checkword
    - size
    - push_back
    - std::chrono::steady_clock::now
    - begin
    - resize
    - compare
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::map_related(const std::string& word,\n                            std::string&
      candidate,\n                            size_t wn,\n                            std::vector<std::string>&
      wlst,\n                            int cpdsuggest,\n                            const
      std::vector<mapentry>& maptable,\n                            int* timer,\n
      \                           std::chrono::steady_clock::time_point* timelimit,\n
      \                           int depth, int& info)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:501,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:503,1
    - Dst: get_reptable
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:504,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:505,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:509,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:510,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:511,1
    - Dst: pattern::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:513,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:513,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:515,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:518,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:522,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:523,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:524,1
    - Dst: pattern::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:524,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:525,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:526,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:527,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:528,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:537,1
    - Dst: SuggestMgr::checkword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:538,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:539,1
    - Dst: std::string::substr
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:540,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:541,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:542,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:543,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:547,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:553,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 554
    functionName: SuggestMgr::replchars
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - std::string::substr
    - std::string::assign
    - get_reptable
    - find
    - SuggestMgr::testsug
    - empty
    - std::string::empty
    - std::string::find
    - SuggestMgr::checkword
    - size
    - std::chrono::steady_clock::now
    - std::string::append
    - pattern::size
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::replchars(std::vector<std::string>& wlst,\n                          const
      std::string& word,\n                          int cpdsuggest, int& info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:564,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:566,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:573,1
    - Dst: std::string::insert
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:575,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:575,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:575,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:576,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:583,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 584
    functionName: SuggestMgr::doubletwochars
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - std::string::end
    - end
    - SuggestMgr::testsug
    - size
    - std::string::insert
    - begin
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::doubletwochars(std::vector<std::string>& wlst,\n                               const
      std::string& word,\n                               int cpdsuggest, int& info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:594,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:597,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:602,1
    - Dst: std::vector::insert
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:604,1
    - Dst: std::vector::end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:604,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:604,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:606,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:607,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:614,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::vector<w_char>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 615
    functionName: SuggestMgr::doubletwochars_utf
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - end
    - u16_u8
    - SuggestMgr::testsug
    - size
    - begin
    - std::vector::insert
    - std::vector::end
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::doubletwochars_utf(std::vector<std::string>& wlst,\n
      \                                  const std::vector<w_char>& word,\n                                   int
      cpdsuggest, int& info)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:626,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:631,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:635,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:643,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:644,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:647,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:651,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:659,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 660
    functionName: SuggestMgr::badcharkey
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - std::string::size
    - SuggestMgr::testsug
    - empty
    - size
    - std::chrono::steady_clock::now
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::badcharkey(std::vector<std::string>& wlst,\n                           const
      std::string& word,\n                           int cpdsuggest, int& info)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:671,1
    - Dst: upper_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:674,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:676,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:677,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:681,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:689,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:690,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:693,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:694,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:698,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:699,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:707,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::vector<w_char>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 664
    functionDepth: 2
    functionLinenumber: 664
    functionLinenumberEnd: 708
    functionName: SuggestMgr::badcharkey_utf
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - u16_u8
    - SuggestMgr::testsug
    - empty
    - upper_utf
    - size
    - std::chrono::steady_clock::now
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::badcharkey_utf(std::vector<std::string>& wlst,\n                               const
      std::vector<w_char>& word,\n                               int cpdsuggest, int&
      info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:715,1
    - Dst: std::string::rbegin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:720,1
    - Dst: std::string::rend
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:720,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:725,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:727,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:731,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 732
    functionName: SuggestMgr::badchar
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - std::string::rbegin
    - SuggestMgr::testsug
    - size
    - std::chrono::steady_clock::now
    - std::string::rend
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::badchar(std::vector<std::string>& wlst,\n                               const
      std::string& word,\n                               int cpdsuggest, int& info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:740,1
    - Dst: std::vector::rbegin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:745,1
    - Dst: std::vector::rend
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:745,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:750,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:751,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:753,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:757,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::vector<w_char>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 758
    functionName: SuggestMgr::badchar_utf
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - u16_u8
    - SuggestMgr::testsug
    - std::chrono::steady_clock::now
    - std::vector::rbegin
    - size
    - std::vector::rend
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::badchar_utf(std::vector<std::string>& wlst,\n                            const
      std::vector<w_char>& word,\n                            int cpdsuggest, int&
      info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:765,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:766,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:768,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:769,1
    - Dst: std::vector::erase
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:771,1
    - Dst: std::vector::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:771,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:773,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:774,1
    - Dst: std::vector::insert
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:775,1
    - Dst: std::vector::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:775,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::vector<w_char>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 761
    functionDepth: 2
    functionLinenumber: 761
    functionLinenumberEnd: 778
    functionName: SuggestMgr::extrachar_utf
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - std::vector::begin
    - u16_u8
    - std::vector::size
    - SuggestMgr::testsug
    - size
    - std::vector::erase
    - std::vector::insert
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::extrachar_utf(std::vector<std::string>& wlst,\n                              const
      std::vector<w_char>& word,\n                              int cpdsuggest, int&
      info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:785,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:786,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:788,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:789,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:791,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:791,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:792,1
    - Dst: std::string::insert
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:793,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:793,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 781
    functionDepth: 2
    functionLinenumber: 781
    functionLinenumberEnd: 796
    functionName: SuggestMgr::extrachar
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - std::string::size
    - SuggestMgr::testsug
    - std::string::erase
    - size
    - std::string::begin
    - std::string::insert
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::extrachar(std::vector<std::string>& wlst,\n                          const
      std::string& word,\n                          int cpdsuggest, int& info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:803,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:809,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:810,1
    - Dst: std::string::insert
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:811,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:811,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:812,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:814,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:815,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:815,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:818,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 799
    functionDepth: 2
    functionLinenumber: 799
    functionLinenumberEnd: 819
    functionName: SuggestMgr::forgotchar
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - std::string::size
    - SuggestMgr::testsug
    - std::string::erase
    - std::chrono::steady_clock::now
    - size
    - std::string::begin
    - std::string::insert
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::forgotchar(std::vector<std::string>& wlst,\n                           const
      std::string& word,\n                           int cpdsuggest, int& info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:826,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:832,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:833,1
    - Dst: std::vector::insert
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:834,1
    - Dst: std::vector::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:834,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:836,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:837,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:839,1
    - Dst: std::vector::erase
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:840,1
    - Dst: std::vector::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:840,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:843,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::vector<w_char>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 822
    functionDepth: 2
    functionLinenumber: 822
    functionLinenumberEnd: 844
    functionName: SuggestMgr::forgotchar_utf
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - std::vector::begin
    - u16_u8
    - std::vector::size
    - SuggestMgr::testsug
    - std::chrono::steady_clock::now
    - size
    - std::vector::erase
    - std::vector::insert
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::forgotchar_utf(std::vector<std::string>& wlst,\n                               const
      std::vector<w_char>& word,\n                               int cpdsuggest, int&
      info)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:855,1
    - Dst: SuggestMgr::check_forbidden
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:860,1
    - Dst: char::char
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:862,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:863,1
    - Dst: data
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:863,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:871,1
    - Dst: SuggestMgr::checkword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:886,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:893,1
    - Dst: insert
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:896,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:896,1
    - Dst: SuggestMgr::checkword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:903,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:910,1
    - Dst: insert
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:912,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:912,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:916,1
    - Dst: SuggestMgr::checkword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:918,1
    - Dst: SuggestMgr::checkword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:920,1
    - Dst: std::find
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:933,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:933,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:933,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:933,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:935,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:936,1
    - Dst: SuggestMgr::mystrlen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:941,1
    - Dst: SuggestMgr::mystrlen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:941,1
    - Dst: SuggestMgr::mystrlen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:941,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:950,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:951,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 62
    argCount: 5
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - good
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::string
    - int
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 959
    functionName: SuggestMgr::twowords
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - emplace_back
    - end
    - char::char
    - std::find
    - SuggestMgr::checkword
    - size
    - SuggestMgr::mystrlen
    - data
    - insert
    - SuggestMgr::check_forbidden
    - memcpy
    - begin
    - clear
    - is_utf8_cont
    linkageType: ''
    returnType: bool
    signature: "bool SuggestMgr::twowords(std::vector<std::string>& wlst,\n                         const
      std::string& word,\n                         int cpdsuggest,\n                         bool
      good, int& info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:965,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:966,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:971,1
    - Dst: std::swap
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:972,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:973,1
    - Dst: std::swap
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:974,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:979,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:979,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:983,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:983,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:984,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:984,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:985,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:986,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:990,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:994,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 962
    functionDepth: 2
    functionLinenumber: 962
    functionLinenumberEnd: 995
    functionName: SuggestMgr::swapchar
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - std::swap
    - size
    - SuggestMgr::testsug
    - std::string::size
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::swapchar(std::vector<std::string>& wlst,\n                         const
      std::string& word,\n                         int cpdsuggest, int& info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1001,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1002,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1008,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1009,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1010,1
    - Dst: std::swap
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1011,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1012,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1013,1
    - Dst: std::swap
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1014,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1019,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1019,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1023,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1023,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1024,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1024,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1025,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1026,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1027,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1031,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1032,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1035,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::vector<w_char>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 998
    functionDepth: 2
    functionLinenumber: 998
    functionLinenumberEnd: 1036
    functionName: SuggestMgr::swapchar_utf
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - std::swap
    - std::vector::size
    - u16_u8
    - SuggestMgr::testsug
    - size
    - std::chrono::steady_clock::now
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::swapchar_utf(std::vector<std::string>& wlst,\n                             const
      std::vector<w_char>& word,\n                             int cpdsuggest, int&
      info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1044,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1044,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1045,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1045,1
    - Dst: std::abs
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1046,1
    - Dst: std::distance
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1046,1
    - Dst: std::swap
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1048,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1049,1
    - Dst: std::swap
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1050,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1054,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1039
    functionDepth: 2
    functionLinenumber: 1039
    functionLinenumberEnd: 1055
    functionName: SuggestMgr::longswapchar
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - std::abs
    - std::string::end
    - std::swap
    - SuggestMgr::testsug
    - size
    - std::distance
    - std::string::begin
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::longswapchar(std::vector<std::string>& wlst,\n                             const
      std::string& word,\n                             int cpdsuggest, int& info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1063,1
    - Dst: std::vector::end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1063,1
    - Dst: std::vector::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1064,1
    - Dst: std::vector::end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1064,1
    - Dst: std::abs
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1065,1
    - Dst: std::distance
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1065,1
    - Dst: std::swap
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1067,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1069,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1070,1
    - Dst: std::swap
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1071,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1075,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::vector<w_char>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1058
    functionDepth: 2
    functionLinenumber: 1058
    functionLinenumberEnd: 1076
    functionName: SuggestMgr::longswapchar_utf
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - std::abs
    - std::vector::begin
    - std::swap
    - u16_u8
    - SuggestMgr::testsug
    - size
    - std::distance
    - std::vector::end
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::longswapchar_utf(std::vector<std::string>& wlst,\n
      \                                const std::vector<w_char>& word,\n                                 int
      cpdsuggest, int& info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1082,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1083,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1088,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1088,1
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1089,1
    - Dst: std::distance
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1089,1
    - Dst: std::swap
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1090,1
    - Dst: std::distance
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1091,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1093,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1095,1
    - Dst: std::copy_n
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1096,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1096,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1096,1
    - Dst: std::string::rbegin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1099,1
    - Dst: std::string::rend
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1099,1
    - Dst: std::string::rend
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1100,1
    - Dst: std::distance
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1100,1
    - Dst: std::swap
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1101,1
    - Dst: std::distance
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1102,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1104,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1106,1
    - Dst: std::copy_n
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1107,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1107,1
    - Dst: std::string::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1107,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1079
    functionDepth: 2
    functionLinenumber: 1079
    functionLinenumberEnd: 1111
    functionName: SuggestMgr::movechar
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - std::string::rbegin
    - std::string::end
    - std::string::size
    - std::swap
    - SuggestMgr::testsug
    - std::copy_n
    - size
    - std::distance
    - std::string::begin
    - begin
    - std::string::rend
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::movechar(std::vector<std::string>& wlst,\n                         const
      std::string& word,\n                         int cpdsuggest, int& info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1117,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1118,1
    - Dst: std::vector::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1123,1
    - Dst: std::vector::end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1123,1
    - Dst: std::vector::end
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1124,1
    - Dst: std::distance
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1124,1
    - Dst: std::swap
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1125,1
    - Dst: std::distance
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1126,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1129,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1130,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1132,1
    - Dst: std::copy_n
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1133,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1133,1
    - Dst: std::vector::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1133,1
    - Dst: std::vector::rbegin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1136,1
    - Dst: std::vector::rend
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1136,1
    - Dst: std::vector::rend
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1137,1
    - Dst: std::distance
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1137,1
    - Dst: std::swap
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1138,1
    - Dst: std::distance
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1139,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1142,1
    - Dst: SuggestMgr::testsug
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1143,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1145,1
    - Dst: std::copy_n
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1146,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1146,1
    - Dst: std::vector::begin
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1146,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1149,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 4
    argNames:
    - ' wlst'
    - ' word'
    - cpdsuggest
    - ' info'
    argTypes:
    - std::vector<std::string>
    - std::vector<w_char>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1114
    functionDepth: 2
    functionLinenumber: 1114
    functionLinenumberEnd: 1150
    functionName: SuggestMgr::movechar_utf
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - std::vector::begin
    - std::swap
    - u16_u8
    - SuggestMgr::testsug
    - std::vector::size
    - std::copy_n
    - size
    - std::distance
    - std::vector::rbegin
    - std::vector::rend
    - begin
    - std::vector::end
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::movechar_utf(std::vector<std::string>& wlst,\n                             const
      std::vector<w_char>& word,\n                             int cpdsuggest, int&
      info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - nonbmp
    - origconv
    - utf8
    - csconv
    argTypes:
    - bool
    - cs_info*
    - int*
    - cs_info**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1169
    functionName: ngsuggest_guard::ngsuggest_guard
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ngsuggest_guard(bool nonbmp, const cs_info* origconv, int* utf8,
      const cs_info** csconv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1177
    functionName: ~ngsuggest_guard()
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ngsuggest_guard()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - nonbmp
    - origconv
    - utf8
    - csconv
    argTypes:
    - bool
    - cs_info*
    - int*
    - cs_info**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1169
    functionName: ngsuggest_guard::ngsuggest_guard
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ngsuggest_guard(bool nonbmp, const cs_info* origconv, int* utf8,
      const cs_info** csconv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1177
    functionName: ~ngsuggest_guard()
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ngsuggest_guard()
  - BBCount: 70
    BranchProfiles: []
    Callsites:
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1212,1
    - Dst: reverseword_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1214,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1216,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1217,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1218,1
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1220,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1224,1
    - Dst: get_current_cs
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1232,1
    - Dst: get_phonetable
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1246,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1252,1
    - Dst: mkallcap_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1253,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1254,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1256,1
    - Dst: mkallcap
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1258,1
    - Dst: phonet
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1260,1
    - Dst: get_forbiddenword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1263,1
    - Dst: get_nosuggest
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1264,1
    - Dst: get_nongramsuggest
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1265,1
    - Dst: get_onlyincompound
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1266,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1270,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1271,1
    - Dst: walk_hashtable
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1278,1
    - Dst: abs
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1284,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1295,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1296,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1297,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1298,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1299,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1304,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1304,1
    - Dst: SuggestMgr::leftcommonsubstring
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1306,1
    - Dst: mkallsmall_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1309,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1311,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1313,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1313,1
    - Dst: SuggestMgr::leftcommonsubstring
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1315,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1315,1
    - Dst: mkallsmall
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1318,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1320,1
    - Dst: std::string::clear
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1324,1
    - Dst: copy_field
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1326,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1326,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1329,1
    - Dst: SuggestMgr::leftcommonsubstring
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1331,1
    - Dst: mkallsmall_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1334,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1336,1
    - Dst: SuggestMgr::leftcommonsubstring
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1338,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1338,1
    - Dst: mkallsmall
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1341,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1343,1
    - Dst: abs
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1350,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1352,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1352,1
    - Dst: mkallcap_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1353,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1354,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1356,1
    - Dst: mkallcap
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1357,1
    - Dst: phonet
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1359,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1361,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1362,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1365,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1384,1
    - Dst: mkallsmall_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1417,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1420,1
    - Dst: mkallsmall
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1428,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1431,1
    - Dst: std::string::clear
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1457,1
    - Dst: copy_field
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1459,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1459,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1460,1
    - Dst: expand_rootword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1461,1
    - Dst: std::vector::data
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1462,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1462,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1467,1
    - Dst: SuggestMgr::leftcommonsubstring
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1469,1
    - Dst: mkallsmall_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1472,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1475,1
    - Dst: SuggestMgr::leftcommonsubstring
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1479,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1479,1
    - Dst: mkallsmall
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1482,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1485,1
    - Dst: std::vector::clear
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1517,1
    - Dst: SuggestMgr::bubblesort
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1522,1
    - Dst: SuggestMgr::bubblesort
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1524,1
    - Dst: get_maxdiff
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1533,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1545,1
    - Dst: mkallsmall_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1546,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1547,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1549,1
    - Dst: mkallsmall
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1551,1
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1552,1
    - Dst: SuggestMgr::lcslen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1555,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1555,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1565,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1567,1
    - Dst: mkallsmall_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1571,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1572,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1574,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1578,1
    - Dst: mkallsmall
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1582,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1583,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1585,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1592,1
    - Dst: SuggestMgr::leftcommonsubstring
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1593,1
    - Dst: SuggestMgr::ngram
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1596,1
    - Dst: SuggestMgr::leftcommonsubstring
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1597,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1597,1
    - Dst: abs
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1601,1
    - Dst: SuggestMgr::commoncharacterpositions
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1605,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1605,1
    - Dst: SuggestMgr::bubblesort
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1620,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1630,1
    - Dst: mkallsmall_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1631,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1632,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1634,1
    - Dst: mkallsmall
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1636,1
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1637,1
    - Dst: SuggestMgr::leftcommonsubstring
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1643,1
    - Dst: SuggestMgr::leftcommonsubstring
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1645,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1645,1
    - Dst: SuggestMgr::lcslen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1647,1
    - Dst: abs
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1647,1
    - Dst: SuggestMgr::bubblesort
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1653,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1656,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1661,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1661,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1670,1
    - Dst: get_onlymaxdiff
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1670,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1679,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1679,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1679,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1679,1
    - Dst: SuggestMgr::checkword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1681,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1688,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1690,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1702,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1706,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1706,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1711,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1711,1
    - Dst: SuggestMgr::checkword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1713,1
    - Dst: emplace_back
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1719,1
    CyclomaticComplexity: 123
    EdgeCount: 123
    ICount: 321
    argCount: 4
    argNames:
    - ' wlst'
    - w
    - ' rHMgr'
    - captype
    argTypes:
    - std::vector<std::string>
    - char*
    - std::vector<std::unique_ptr<HashMgr>>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1182
    functionDepth: 2
    functionLinenumber: 1182
    functionLinenumberEnd: 1724
    functionName: SuggestMgr::ngsuggest
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 0
    functionsReached:
    - std::string::assign
    - SuggestMgr::commoncharacterpositions
    - get_nosuggest
    - get_onlyincompound
    - std::string::size
    - copy_field
    - std::string::c_str
    - get_forbiddenword
    - SuggestMgr::checkword
    - TESTAFF
    - mkallsmall_utf
    - SuggestMgr::bubblesort
    - strstr
    - std::vector::data
    - get_maxdiff
    - mkallcap
    - std::vector::clear
    - reverseword
    - abs
    - get_onlymaxdiff
    - SuggestMgr::leftcommonsubstring
    - mkallsmall
    - reverseword_utf
    - u8_u16
    - get_phonetable
    - get_nongramsuggest
    - HENTRY_DATA
    - size
    - HENTRY_WORD
    - get_current_cs
    - strlen
    - SuggestMgr::lcslen
    - std::string::clear
    - mkallcap_utf
    - emplace_back
    - c_str
    - expand_rootword
    - u16_u8
    - SuggestMgr::ngram
    - walk_hashtable
    - phonet
    linkageType: ''
    returnType: void
    signature: "void SuggestMgr::ngsuggest(std::vector<std::string>& wlst,\n                          const
      char* w,\n                          const std::vector<std::unique_ptr<HashMgr>>&
      rHMgr,\n                          int captype)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1737,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1744,1
    - Dst: get_compound
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1755,1
    - Dst: compound_check
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1760,1
    - Dst: lookup
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1764,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1764,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1764,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1765,1
    - Dst: get_forbiddenword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1765,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1766,1
    - Dst: get_nosuggest
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1766,1
    - Dst: lookup
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1773,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1773,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1773,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1777,1
    - Dst: get_forbiddenword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1777,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1778,1
    - Dst: get_nosuggest
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1778,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1779,1
    - Dst: get_substandard
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1779,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1783,1
    - Dst: get_needaffix
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1783,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1784,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1785,1
    - Dst: get_onlyincompound
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1785,1
    - Dst: prefix_check
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1792,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1792,1
    - Dst: suffix_check
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1800,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1800,1
    - Dst: have_contclass
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1803,1
    - Dst: suffix_check_twosfx
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1805,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1805,1
    - Dst: prefix_check_twosfx
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1807,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1807,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1812,1
    - Dst: get_forbiddenword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1812,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1813,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1814,1
    - Dst: get_nosuggest
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1814,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1815,1
    - Dst: get_onlyincompound
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1815,1
    - Dst: get_compoundflag
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1819,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1820,1
    - Dst: get_compoundflag
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1820,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 52
    argCount: 4
    argNames:
    - ' word'
    - cpdsuggest
    - timer
    - timelimit
    argTypes:
    - std::string
    - int
    - int*
    - std::chrono::steady_clock::time_point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1732
    functionDepth: 2
    functionLinenumber: 1732
    functionLinenumberEnd: 1826
    functionName: SuggestMgr::checkword
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 5
    functionsReached:
    - get_nosuggest
    - lookup
    - c_str
    - get_onlyincompound
    - suffix_check_twosfx
    - prefix_check_twosfx
    - get_substandard
    - prefix_check
    - get_forbiddenword
    - get_needaffix
    - std::chrono::steady_clock::now
    - size
    - TESTAFF
    - compound_check
    - suffix_check
    - have_contclass
    - get_compoundflag
    - get_compound
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::checkword(const std::string& word,\n                          int
      cpdsuggest,\n                          int* timer,\n                          std::chrono::steady_clock::time_point*
      timelimit)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lookup
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1830,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1830,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1830,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1832,1
    - Dst: get_needaffix
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1832,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1833,1
    - Dst: get_onlyincompound
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1833,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1835,1
    - Dst: prefix_check
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1837,1
    - Dst: suffix_check
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1838,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1841,1
    - Dst: get_forbiddenword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1841,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1828
    functionDepth: 2
    functionLinenumber: 1828
    functionLinenumberEnd: 1845
    functionName: SuggestMgr::check_forbidden
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - get_onlyincompound
    - lookup
    - c_str
    - prefix_check
    - suffix_check
    - get_needaffix
    - TESTAFF
    - size
    - get_forbiddenword
    linkageType: ''
    returnType: int
    signature: int SuggestMgr::check_forbidden(const std::string& word)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: reverseword_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1860,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1862,1
    - Dst: lookup
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1865,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1865,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1865,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1869,1
    - Dst: get_forbiddenword
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1869,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1870,1
    - Dst: get_needaffix
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1870,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1871,1
    - Dst: get_onlyincompound
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1871,1
    - Dst: HENTRY_FIND
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1872,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1873,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1874,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1875,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1877,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1878,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1879,1
    - Dst: HENTRY_DATA2
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1879,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1881,1
    - Dst: affix_check_morph
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1887,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1887,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1888,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1889,1
    - Dst: get_compound
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1892,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1892,1
    - Dst: compound_check_morph
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1894,1
    - Dst: line_uniq
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1897,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - ' in_w'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1847
    functionDepth: 3
    functionLinenumber: 1847
    functionLinenumberEnd: 1900
    functionName: SuggestMgr::suggest_morph
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 0
    functionsReached:
    - get_onlyincompound
    - std::string::size
    - std::string::c_str
    - get_forbiddenword
    - TESTAFF
    - std::string::push_back
    - reverseword
    - HENTRY_FIND
    - std::string::append
    - compound_check_morph
    - HENTRY_DATA2
    - reverseword_utf
    - lookup
    - affix_check_morph
    - HENTRY_DATA
    - get_compound
    - line_uniq
    - std::string::empty
    - get_needaffix
    linkageType: ''
    returnType: std::string
    signature: std::string SuggestMgr::suggest_morph(const std::string& in_w)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1907,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1909,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1911,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1915,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1917,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1919,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - morph
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1902
    functionDepth: 0
    functionLinenumber: 1902
    functionLinenumberEnd: 1922
    functionName: get_sfxcount
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 0
    functionsReached:
    - strstr
    linkageType: ''
    returnType: int
    signature: int get_sfxcount(const char* morph)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_sfxcount
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1927,1
    - Dst: get_sfxcount
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1929,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1929,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1932,1
    - Dst: morphgen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1933,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1933,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1934,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1935,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1936,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1937,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1943,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1944,1
    - Dst: HENTRY_DATA2
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1944,1
    - Dst: fieldlen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1947,1
    - Dst: lookup
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1949,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1949,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1949,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1953,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1954,1
    - Dst: HENTRY_DATA2
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1954,1
    - Dst: strncmp
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1955,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1955,1
    - Dst: fieldlen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1956,1
    - Dst: morphgen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1957,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1957,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1958,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1959,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1960,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1961,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1967,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - rv
    - pattern
    argTypes:
    - hentry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1925
    functionDepth: 2
    functionLinenumber: 1925
    functionLinenumberEnd: 1971
    functionName: SuggestMgr::suggest_hentry_gen
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 0
    functionsReached:
    - fieldlen
    - get_sfxcount
    - lookup
    - std::string::size
    - strncmp
    - std::string::empty
    - std::string::c_str
    - HENTRY_DATA
    - std::string::append
    - HENTRY_WORD
    - HENTRY_DATA2
    - std::string::push_back
    - morphgen
    - strstr
    linkageType: ''
    returnType: std::string
    signature: std::string SuggestMgr::suggest_hentry_gen(hentry* rv, const char*
      pattern)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1975,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1978,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1986,1
    - Dst: append_compound_parts
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1991,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1992,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1994,1
    - Dst: std::string::find
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1997,1
    - Dst: line_tok
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:1999,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2002,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2004,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2005,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2008,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2010,1
    - Dst: copy_field
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2012,1
    - Dst: lookup
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2013,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2013,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2013,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2015,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2018,1
    - Dst: SuggestMgr::suggest_hentry_gen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2019,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2019,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2020,1
    - Dst: SuggestMgr::suggest_hentry_gen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2021,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2022,1
    - Dst: line_tok
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2023,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2025,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2026,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2027,1
    - Dst: copy_field
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2029,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2030,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2032,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2041,1
    - Dst: strstr
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2041,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2044,1
    - Dst: mystrrep
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2045,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2046,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 3
    argNames:
    - ' desc'
    - ' in_pattern'
    - start_time
    argTypes:
    - std::vector<std::string>
    - std::string
    - std::chrono::steady_clock::time_point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2049
      start: 1973
    functionDepth: 3
    functionLinenumber: 1973
    functionLinenumberEnd: 2049
    functionName: SuggestMgr::suggest_gen
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 0
    functionsReached:
    - mystrrep
    - std::string::assign
    - copy_field
    - std::string::size
    - std::string::c_str
    - std::string::find
    - std::string::push_back
    - strstr
    - find
    - std::chrono::steady_clock::now
    - line_tok
    - std::string::append
    - resize
    - append_compound_parts
    - lookup
    - empty
    - c_str
    - std::string::empty
    - SuggestMgr::suggest_hentry_gen
    linkageType: ''
    returnType: std::string
    signature: "std::string SuggestMgr::suggest_gen(const std::vector<std::string>&
      desc, const std::string& in_pattern,\n                                    std::chrono::steady_clock::time_point
      start_time)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2056,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2056,1
    - Dst: abs
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2089,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 4
    argNames:
    - n
    - ' su1'
    - ' su2'
    - opt
    argTypes:
    - int
    - std::vector<w_char>
    - std::vector<w_char>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2052
    functionDepth: 0
    functionLinenumber: 2052
    functionLinenumberEnd: 2092
    functionName: SuggestMgr::ngram
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - size
    - abs
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::ngram(int n,\n                      const std::vector<w_char>&
      su1,\n                      const std::vector<w_char>& su2,\n                      int
      opt)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2099,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2103,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2108,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2108,1
    - Dst: abs
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2125,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 4
    argNames:
    - n
    - ' s1'
    - ' s2'
    - opt
    argTypes:
    - int
    - std::string
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2095
    functionDepth: 0
    functionLinenumber: 2095
    functionLinenumberEnd: 2128
    functionName: SuggestMgr::ngram
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - find
    - size
    - abs
    - c_str
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::ngram(int n,\n                      const std::string&
      s1,\n                      const std::string& s2,\n                      int
      opt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2134,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2134,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2140,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2141,1
    - Dst: unicodetolower
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - ' su1'
    - ' su2'
    argTypes:
    - std::vector<w_char>
    - std::vector<w_char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2151
      start: 2131
    functionDepth: 1
    functionLinenumber: 2131
    functionLinenumberEnd: 2151
    functionName: SuggestMgr::leftcommonsubstring
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - empty
    - size
    - unicodetolower
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::leftcommonsubstring(\n    const std::vector<w_char>&
      su1,\n    const std::vector<w_char>& su2)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2158,1
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2158,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2173
      start: 2154
    functionDepth: 0
    functionLinenumber: 2154
    functionLinenumberEnd: 2173
    functionName: SuggestMgr::leftcommonsubstring
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::leftcommonsubstring(\n    const char* s1,\n    const
      char* s2)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2183,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2183,1
    - Dst: lower_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2190,1
    - Dst: lower_utf
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2192,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2212,1
    - Dst: mkallsmall
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2215,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2217,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2226,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 40
    argCount: 3
    argNames:
    - s1
    - s2
    - is_swap
    argTypes:
    - char*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2232
      start: 2175
    functionDepth: 1
    functionLinenumber: 2175
    functionLinenumberEnd: 2232
    functionName: SuggestMgr::commoncharacterpositions
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - u8_u16
    - lower_utf
    - std::string::size
    - mkallsmall
    linkageType: ''
    returnType: int
    signature: "int SuggestMgr::commoncharacterpositions(const char* s1,\n                                         const
      char* s2,\n                                         int* is_swap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2237,1
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - word
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2234
    functionDepth: 1
    functionLinenumber: 2234
    functionLinenumberEnd: 2240
    functionName: SuggestMgr::mystrlen
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - u8_u16
    - strlen
    linkageType: ''
    returnType: int
    signature: int SuggestMgr::mystrlen(const char* word)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - rword
    - rword2
    - rsc
    - n
    argTypes:
    - char**
    - char**
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2243
    functionDepth: 0
    functionLinenumber: 2243
    functionLinenumberEnd: 2266
    functionName: SuggestMgr::bubblesort
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SuggestMgr::bubblesort(char** rword, char** rword2, int* rsc,
      int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2277,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2278,1
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2280,1
    - Dst: strlen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2281,1
    - Dst: char::char
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2288,1
    - Dst: char::char
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2289,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - s
    - s2
    - l1
    - l2
    argTypes:
    - char*
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2309
      start: 2269
    functionDepth: 1
    functionLinenumber: 2269
    functionLinenumberEnd: 2309
    functionName: SuggestMgr::lcs
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 0
    functionsReached:
    - u8_u16
    - char::char
    - strlen
    linkageType: ''
    returnType: char
    signature: "char * SuggestMgr::lcs(const char* s,\n                      const
      char* s2,\n                      int* l1,\n                      int* l2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SuggestMgr::lcs
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - s
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2329
      start: 2311
    functionDepth: 2
    functionLinenumber: 2311
    functionLinenumberEnd: 2329
    functionName: SuggestMgr::lcslen
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 1
    functionsReached:
    - SuggestMgr::lcs
    linkageType: ''
    returnType: int
    signature: int SuggestMgr::lcslen(const char* s, const char* s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SuggestMgr::lcslen
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2332,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2332,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/suggestmgr.cxx:2332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - ' s2'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2331
    functionDepth: 1
    functionLinenumber: 2331
    functionLinenumberEnd: 2333
    functionName: SuggestMgr::lcslen
    functionSourceFile: /src/hunspell/src/hunspell/suggestmgr.cxx
    functionUses: 2
    functionsReached:
    - SuggestMgr::lcslen
    - c_str
    linkageType: ''
    returnType: int
    signature: int SuggestMgr::lcslen(const std::string& s, const std::string& s2)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: AffEntry::~AffEntry()
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AffEntry::~AffEntry()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affentry.cxx:93,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affentry.cxx:93,1
    - Dst: std::string
      Src: /src/hunspell/src/hunspell/affentry.cxx:94,1
    - Dst: strnlen
      Src: /src/hunspell/src/hunspell/affentry.cxx:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: AffEntry::get_condition
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached:
    - std::string
    - strnlen
    linkageType: ''
    returnType: std::string
    signature: std::string AffEntry::get_condition() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pmgr
    argTypes:
    - AffixMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: PfxEntry::PfxEntry
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PfxEntry::PfxEntry(AffixMgr* pmgr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:108,1
    - Dst: get_fullstrip
      Src: /src/hunspell/src/hunspell/affentry.cxx:108,1
    - Dst: PfxEntry::test_condition
      Src: /src/hunspell/src/hunspell/affentry.cxx:109,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affentry.cxx:110,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:111,1
    - Dst: strncmp
      Src: /src/hunspell/src/hunspell/affentry.cxx:111,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:111,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:111,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/affentry.cxx:113,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affentry.cxx:114,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:114,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - word
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: PfxEntry::add
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached:
    - get_fullstrip
    - std::string::assign
    - strncmp
    - c_str
    - empty
    - size
    - std::string::append
    - PfxEntry::test_condition
    linkageType: ''
    returnType: std::string
    signature: std::string PfxEntry::add(const char* word, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 132
    functionName: PfxEntry::nextchar
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * PfxEntry::nextchar(char* p)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:149,1
    - Dst: PfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:154,1
    - Dst: PfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:162,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:164,1
    - Dst: utf8_next
      Src: /src/hunspell/src/hunspell/affentry.cxx:165,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:166,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:172,1
    - Dst: PfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:174,1
    - Dst: utf8_next
      Src: /src/hunspell/src/hunspell/affentry.cxx:176,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:181,1
    - Dst: PfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:183,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/affentry.cxx:185,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:186,1
    - Dst: PfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:192,1
    - Dst: PfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:197,1
    - Dst: PfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:202,1
    - Dst: PfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:206,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 74
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 214
    functionName: PfxEntry::test_condition
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 1
    functionsReached:
    - is_utf8_cont
    - size
    - utf8_next
    - PfxEntry::nextchar
    linkageType: ''
    returnType: int
    signature: int PfxEntry::test_condition(const std::string& s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:220,1
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affentry.cxx:222,1
    - Dst: get_needaffix
      Src: /src/hunspell/src/hunspell/affentry.cxx:228,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:229,1
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affentry.cxx:231,1
    - Dst: get_circumfix
      Src: /src/hunspell/src/hunspell/affentry.cxx:239,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:240,1
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affentry.cxx:242,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:251,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:252,1
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affentry.cxx:255,1
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affentry.cxx:258,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 25
    argCount: 3
    argNames:
    - he
    - needflag
    - t
    argTypes:
    - struct hentry*
    - FLAG
    - TraceCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 267
    functionName: PfxEntry::applies_to
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached:
    - trace_test
    - get_needaffix
    - TESTAFF
    - get_circumfix
    linkageType: ''
    returnType: bool
    signature: "bool PfxEntry::applies_to(const struct hentry* he,\n                          const
      FLAG needflag,\n                          const TraceCtx* t) const"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: trace_on
      Src: /src/hunspell/src/hunspell/affentry.cxx:278,1
    - Dst: trace_affix
      Src: /src/hunspell/src/hunspell/affentry.cxx:280,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:288,1
    - Dst: get_fullstrip
      Src: /src/hunspell/src/hunspell/affentry.cxx:290,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/affentry.cxx:295,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affentry.cxx:296,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:296,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:307,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:307,1
    - Dst: PfxEntry::test_condition
      Src: /src/hunspell/src/hunspell/affentry.cxx:309,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:311,1
    - Dst: get_condition
      Src: /src/hunspell/src/hunspell/affentry.cxx:312,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:313,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:316,1
    - Dst: lookup
      Src: /src/hunspell/src/hunspell/affentry.cxx:317,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:317,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:317,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:319,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:319,1
    - Dst: trace_flags
      Src: /src/hunspell/src/hunspell/affentry.cxx:320,1
    - Dst: PfxEntry::applies_to
      Src: /src/hunspell/src/hunspell/affentry.cxx:322,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:324,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:330,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:331,1
    - Dst: trace_flags
      Src: /src/hunspell/src/hunspell/affentry.cxx:332,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:334,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:334,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:338,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:338,1
    - Dst: suffix_check
      Src: /src/hunspell/src/hunspell/affentry.cxx:347,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:354,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 6
    argNames:
    - ' word'
    - start
    - len
    - in_compound
    - needflag
    - ' scratch'
    argTypes:
    - std::string
    - int
    - int
    - char
    - FLAG
    - AffixScratch
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 358
    functionName: PfxEntry::checkword
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached:
    - get_fullstrip
    - trace_affix
    - c_str
    - lookup
    - get_condition
    - trace_flags
    - append
    - trace_on
    - trace
    - PfxEntry::applies_to
    - suffix_check
    - size
    - assign
    - PfxEntry::test_condition
    linkageType: ''
    returnType: struct hentry
    signature: "struct hentry * PfxEntry::checkword(const std::string& word,\n                                   int
      start,\n                                   int len,\n                                   char
      in_compound,\n                                   const FLAG needflag,\n                                   AffixScratch&
      scratch)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:372,1
    - Dst: get_fullstrip
      Src: /src/hunspell/src/hunspell/affentry.cxx:374,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:375,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/affentry.cxx:380,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affentry.cxx:381,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:381,1
    - Dst: PfxEntry::test_condition
      Src: /src/hunspell/src/hunspell/affentry.cxx:391,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:392,1
    - Dst: suffix_check_twosfx
      Src: /src/hunspell/src/hunspell/affentry.cxx:400,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 6
    argNames:
    - ' word'
    - start
    - len
    - in_compound
    - needflag
    - ' scratch'
    argTypes:
    - std::string
    - int
    - int
    - char
    - FLAG
    - AffixScratch
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 408
    functionName: PfxEntry::check_twosfx
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached:
    - get_fullstrip
    - suffix_check_twosfx
    - append
    - size
    - assign
    - PfxEntry::test_condition
    linkageType: ''
    returnType: struct hentry
    signature: "struct hentry * PfxEntry::check_twosfx(const std::string& word,\n
      \                                     int start,\n                                      int
      len,\n                                      char in_compound,\n                                      const
      FLAG needflag,\n                                      AffixScratch& scratch)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:422,1
    - Dst: get_fullstrip
      Src: /src/hunspell/src/hunspell/affentry.cxx:424,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:425,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/affentry.cxx:430,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affentry.cxx:431,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:431,1
    - Dst: PfxEntry::test_condition
      Src: /src/hunspell/src/hunspell/affentry.cxx:441,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:442,1
    - Dst: suffix_check_twosfx_morph
      Src: /src/hunspell/src/hunspell/affentry.cxx:449,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 6
    argNames:
    - ' word'
    - start
    - len
    - in_compound
    - needflag
    - ' scratch'
    argTypes:
    - std::string
    - int
    - int
    - char
    - FLAG
    - AffixScratch
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 456
    functionName: PfxEntry::check_twosfx_morph
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached:
    - get_fullstrip
    - suffix_check_twosfx_morph
    - append
    - size
    - assign
    - PfxEntry::test_condition
    linkageType: ''
    returnType: std::string
    signature: "std::string PfxEntry::check_twosfx_morph(const std::string& word,\n
      \                                        int start,\n                                         int
      len,\n                                         char in_compound,\n                                         const
      FLAG needflag,\n                                         AffixScratch& scratch)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:472,1
    - Dst: get_fullstrip
      Src: /src/hunspell/src/hunspell/affentry.cxx:474,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:475,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/affentry.cxx:480,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affentry.cxx:481,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:481,1
    - Dst: PfxEntry::test_condition
      Src: /src/hunspell/src/hunspell/affentry.cxx:491,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:492,1
    - Dst: lookup
      Src: /src/hunspell/src/hunspell/affentry.cxx:494,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:494,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:494,1
    - Dst: PfxEntry::applies_to
      Src: /src/hunspell/src/hunspell/affentry.cxx:496,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affentry.cxx:498,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affentry.cxx:499,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affentry.cxx:501,1
    - Dst: PfxEntry::getKey
      Src: /src/hunspell/src/hunspell/affentry.cxx:501,1
    - Dst: HENTRY_FIND
      Src: /src/hunspell/src/hunspell/affentry.cxx:502,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affentry.cxx:503,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affentry.cxx:504,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affentry.cxx:505,1
    - Dst: HENTRY_WORD
      Src: /src/hunspell/src/hunspell/affentry.cxx:505,1
    - Dst: HENTRY_DATA
      Src: /src/hunspell/src/hunspell/affentry.cxx:508,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affentry.cxx:509,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affentry.cxx:510,1
    - Dst: HENTRY_DATA2
      Src: /src/hunspell/src/hunspell/affentry.cxx:510,1
    - Dst: encode_flag
      Src: /src/hunspell/src/hunspell/affentry.cxx:513,1
    - Dst: PfxEntry::getFlag
      Src: /src/hunspell/src/hunspell/affentry.cxx:513,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affentry.cxx:514,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affentry.cxx:515,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affentry.cxx:516,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affentry.cxx:518,1
    - Dst: suffix_check_morph
      Src: /src/hunspell/src/hunspell/affentry.cxx:529,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affentry.cxx:531,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affentry.cxx:532,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 6
    argNames:
    - ' word'
    - start
    - len
    - in_compound
    - needflag
    - ' scratch'
    argTypes:
    - std::string
    - int
    - int
    - char
    - FLAG
    - AffixScratch
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 459
    functionDepth: 3
    functionLinenumber: 459
    functionLinenumberEnd: 539
    functionName: PfxEntry::check_morph
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached:
    - suffix_check_morph
    - std::string::push_back
    - get_fullstrip
    - PfxEntry::getFlag
    - HENTRY_FIND
    - std::string::append
    - HENTRY_DATA2
    - PfxEntry::test_condition
    - lookup
    - encode_flag
    - append
    - PfxEntry::getKey
    - PfxEntry::applies_to
    - HENTRY_DATA
    - size
    - HENTRY_WORD
    - assign
    - c_str
    - std::string::empty
    linkageType: ''
    returnType: std::string
    signature: "std::string PfxEntry::check_morph(const std::string& word,\n                                  int
      start,\n                                  int len,\n                                  char
      in_compound,\n                                  const FLAG needflag,\n                                  AffixScratch&
      scratch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pmgr
    argTypes:
    - AffixMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 549
    functionName: SfxEntry::SfxEntry
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SfxEntry::SfxEntry(AffixMgr* pmgr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AffEntry::get_condition
      Src: /src/hunspell/src/hunspell/affentry.cxx:552,1
    - Dst: AffixMgr::reverse_condition
      Src: /src/hunspell/src/hunspell/affentry.cxx:557,1
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/affentry.cxx:558,1
    - Dst: std::string::size
      Src: /src/hunspell/src/hunspell/affentry.cxx:563,1
    - Dst: std::string::erase
      Src: /src/hunspell/src/hunspell/affentry.cxx:568,1
    - Dst: std::string::insert
      Src: /src/hunspell/src/hunspell/affentry.cxx:569,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 576
    functionName: SfxEntry::get_condition
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached:
    - std::string::size
    - AffixMgr::reverse_condition
    - std::string::erase
    - reverseword
    - std::string::insert
    - AffEntry::get_condition
    linkageType: ''
    returnType: std::string
    signature: std::string SfxEntry::get_condition() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:582,1
    - Dst: get_fullstrip
      Src: /src/hunspell/src/hunspell/affentry.cxx:582,1
    - Dst: SfxEntry::test_condition
      Src: /src/hunspell/src/hunspell/affentry.cxx:583,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affentry.cxx:584,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:585,1
    - Dst: strcmp
      Src: /src/hunspell/src/hunspell/affentry.cxx:585,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:585,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:585,1
    - Dst: std::string::assign
      Src: /src/hunspell/src/hunspell/affentry.cxx:586,1
    - Dst: std::string::replace
      Src: /src/hunspell/src/hunspell/affentry.cxx:588,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:588,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - word
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 591
    functionName: SfxEntry::add
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached:
    - get_fullstrip
    - std::string::assign
    - std::string::replace
    - c_str
    - empty
    - SfxEntry::test_condition
    - size
    - strcmp
    linkageType: ''
    returnType: std::string
    signature: std::string SfxEntry::add(const char* word, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 606
    functionName: SfxEntry::nextchar
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * SfxEntry::nextchar(char* p)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: SfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:622,1
    - Dst: SfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:626,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/affentry.cxx:635,1
    - Dst: SfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:642,1
    - Dst: SfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:649,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/affentry.cxx:654,1
    - Dst: SfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:668,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/affentry.cxx:679,1
    - Dst: SfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:681,1
    - Dst: SfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:690,1
    - Dst: SfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:695,1
    - Dst: SfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:702,1
    - Dst: SfxEntry::nextchar
      Src: /src/hunspell/src/hunspell/affentry.cxx:714,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 101
    argCount: 2
    argNames:
    - st
    - beg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 722
    functionName: SfxEntry::test_condition
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 1
    functionsReached:
    - SfxEntry::nextchar
    - is_utf8_cont
    linkageType: ''
    returnType: int
    signature: int SfxEntry::test_condition(const char* st, const char* beg)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:734,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affentry.cxx:735,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:736,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affentry.cxx:736,1
    - Dst: PfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affentry.cxx:736,1
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affentry.cxx:739,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affentry.cxx:739,1
    - Dst: PfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affentry.cxx:740,1
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affentry.cxx:742,1
    - Dst: PfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affentry.cxx:750,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:751,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:752,1
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affentry.cxx:755,1
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affentry.cxx:758,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:768,1
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affentry.cxx:770,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:779,1
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affentry.cxx:781,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:789,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:790,1
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affentry.cxx:793,1
    - Dst: trace_test
      Src: /src/hunspell/src/hunspell/affentry.cxx:796,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 41
    argCount: 7
    argNames:
    - he
    - optflags
    - ep
    - cclass
    - needflag
    - badflag
    - t
    argTypes:
    - struct hentry*
    - int
    - PfxEntry*
    - FLAG
    - FLAG
    - FLAG
    - TraceCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 805
    functionName: SfxEntry::applies_to
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached:
    - PfxEntry*::getCont
    - trace_test
    - TESTAFF
    - PfxEntry*::getContLen
    - PfxEntry*::getFlag
    linkageType: ''
    returnType: bool
    signature: "bool SfxEntry::applies_to(const struct hentry* he,\n                          int
      optflags,\n                          PfxEntry* ep,\n                          const
      FLAG cclass,\n                          const FLAG needflag,\n                          const
      FLAG badflag,\n                          const TraceCtx* t) const"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: trace_on
      Src: /src/hunspell/src/hunspell/affentry.cxx:820,1
    - Dst: trace_affix
      Src: /src/hunspell/src/hunspell/affentry.cxx:822,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:830,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:840,1
    - Dst: get_fullstrip
      Src: /src/hunspell/src/hunspell/affentry.cxx:844,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:845,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/affentry.cxx:851,1
    - Dst: empty
      Src: /src/hunspell/src/hunspell/affentry.cxx:852,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affentry.cxx:853,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:856,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:857,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:868,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:868,1
    - Dst: SfxEntry::test_condition
      Src: /src/hunspell/src/hunspell/affentry.cxx:870,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:872,1
    - Dst: SfxEntry::get_condition
      Src: /src/hunspell/src/hunspell/affentry.cxx:873,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:874,1
    - Dst: fprintf
      Src: /src/hunspell/src/hunspell/affentry.cxx:878,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:878,1
    - Dst: lookup
      Src: /src/hunspell/src/hunspell/affentry.cxx:880,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:880,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:880,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:882,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:882,1
    - Dst: trace_flags
      Src: /src/hunspell/src/hunspell/affentry.cxx:883,1
    - Dst: SfxEntry::applies_to
      Src: /src/hunspell/src/hunspell/affentry.cxx:885,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:887,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:893,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:894,1
    - Dst: trace_flags
      Src: /src/hunspell/src/hunspell/affentry.cxx:895,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:897,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:897,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:901,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:901,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/affentry.cxx:905,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 9
    argNames:
    - ' word'
    - start
    - len
    - optflags
    - ppfx
    - cclass
    - needflag
    - badflag
    - ' scratch'
    argTypes:
    - std::string
    - int
    - int
    - int
    - PfxEntry*
    - FLAG
    - FLAG
    - FLAG
    - AffixScratch
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 909
    functionName: SfxEntry::checkword
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached:
    - SfxEntry::applies_to
    - get_fullstrip
    - SfxEntry::get_condition
    - trace_affix
    - c_str
    - lookup
    - trace_flags
    - append
    - empty
    - trace_on
    - trace
    - SfxEntry::test_condition
    - fprintf
    - size
    - assign
    linkageType: ''
    returnType: struct hentry
    signature: "struct hentry * SfxEntry::checkword(const std::string& word,\n                                   int
      start,\n                                   int len,\n                                   int
      optflags,\n                                   PfxEntry* ppfx,\n                                   const
      FLAG cclass,\n                                   const FLAG needflag,\n                                   const
      FLAG badflag,\n                                   AffixScratch& scratch)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:932,1
    - Dst: get_fullstrip
      Src: /src/hunspell/src/hunspell/affentry.cxx:934,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:935,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/affentry.cxx:941,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/affentry.cxx:942,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affentry.cxx:943,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:944,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:946,1
    - Dst: SfxEntry::test_condition
      Src: /src/hunspell/src/hunspell/affentry.cxx:956,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:960,1
    - Dst: PfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affentry.cxx:960,1
    - Dst: suffix_check
      Src: /src/hunspell/src/hunspell/affentry.cxx:961,1
    - Dst: suffix_check
      Src: /src/hunspell/src/hunspell/affentry.cxx:963,1
    - Dst: suffix_check
      Src: /src/hunspell/src/hunspell/affentry.cxx:966,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 7
    argNames:
    - ' word'
    - start
    - len
    - optflags
    - ppfx
    - needflag
    - ' scratch'
    argTypes:
    - std::string
    - int
    - int
    - int
    - PfxEntry*
    - FLAG
    - AffixScratch
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 973
    functionName: SfxEntry::check_twosfx
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached:
    - get_fullstrip
    - c_str
    - append
    - SfxEntry::test_condition
    - suffix_check
    - size
    - TESTAFF
    - assign
    - resize
    - PfxEntry*::getFlag
    linkageType: ''
    returnType: struct hentry
    signature: "struct hentry * SfxEntry::check_twosfx(const std::string& word,\n
      \                                     int start,\n                                      int
      len,\n                                      int optflags,\n                                      PfxEntry*
      ppfx,\n                                      const FLAG needflag,\n                                      AffixScratch&
      scratch)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:998,1
    - Dst: get_fullstrip
      Src: /src/hunspell/src/hunspell/affentry.cxx:1000,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:1001,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/affentry.cxx:1007,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/affentry.cxx:1008,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/affentry.cxx:1009,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/affentry.cxx:1010,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/affentry.cxx:1012,1
    - Dst: SfxEntry::test_condition
      Src: /src/hunspell/src/hunspell/affentry.cxx:1022,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:1025,1
    - Dst: PfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affentry.cxx:1025,1
    - Dst: suffix_check_morph
      Src: /src/hunspell/src/hunspell/affentry.cxx:1026,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affentry.cxx:1027,1
    - Dst: PfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affentry.cxx:1028,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affentry.cxx:1029,1
    - Dst: PfxEntry*::getMorph
      Src: /src/hunspell/src/hunspell/affentry.cxx:1029,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/affentry.cxx:1030,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affentry.cxx:1032,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/affentry.cxx:1033,1
    - Dst: suffix_check_morph
      Src: /src/hunspell/src/hunspell/affentry.cxx:1036,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affentry.cxx:1038,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affentry.cxx:1039,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/affentry.cxx:1040,1
    - Dst: suffix_check_morph
      Src: /src/hunspell/src/hunspell/affentry.cxx:1044,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/affentry.cxx:1045,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/affentry.cxx:1046,1
    - Dst: mychomp
      Src: /src/hunspell/src/hunspell/affentry.cxx:1047,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 7
    argNames:
    - ' word'
    - start
    - len
    - optflags
    - ppfx
    - needflag
    - ' scratch'
    argTypes:
    - std::string
    - int
    - int
    - int
    - PfxEntry*
    - FLAG
    - AffixScratch
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 976
    functionDepth: 2
    functionLinenumber: 976
    functionLinenumberEnd: 1053
    functionName: SfxEntry::check_twosfx_morph
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached:
    - get_fullstrip
    - c_str
    - append
    - std::string::empty
    - SfxEntry::test_condition
    - mychomp
    - PfxEntry*::getMorph
    - size
    - TESTAFF
    - suffix_check_morph
    - std::string::append
    - std::string::push_back
    - assign
    - resize
    - PfxEntry*::getFlag
    linkageType: ''
    returnType: std::string
    signature: "std::string SfxEntry::check_twosfx_morph(const std::string& word,\n
      \                                        int start,\n                                         int
      len,\n                                         int optflags,\n                                         PfxEntry*
      ppfx,\n                                         const FLAG needflag,\n                                         AffixScratch&
      scratch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/affentry.cxx:1062,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:1066,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affentry.cxx:1067,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:1068,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/affentry.cxx:1068,1
    - Dst: PfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/affentry.cxx:1068,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:1069,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:1071,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:1074,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:1077,1
    - Dst: TESTAFF
      Src: /src/hunspell/src/hunspell/affentry.cxx:1078,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 7
    argCount: 5
    argNames:
    - he
    - optflags
    - ppfx
    - cclass
    - needflag
    argTypes:
    - struct hentry*
    - int
    - PfxEntry*
    - FLAG
    - FLAG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1082
    functionName: SfxEntry::get_next_homonym
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached:
    - PfxEntry*::getContLen
    - PfxEntry*::getCont
    - TESTAFF
    - PfxEntry*::getFlag
    linkageType: ''
    returnType: struct hentry
    signature: "struct hentry * SfxEntry::get_next_homonym(struct hentry* he,\n                                          int
      optflags,\n                                          PfxEntry* ppfx,\n                                          const
      FLAG cclass,\n                                          const FLAG needflag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reverseword
      Src: /src/hunspell/src/hunspell/affentry.cxx:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1087
    functionName: SfxEntry::initReverseWord
    functionSourceFile: /src/hunspell/src/hunspell/affentry.cxx
    functionUses: 0
    functionsReached:
    - reverseword
    linkageType: ''
    returnType: void
    signature: void SfxEntry::initReverseWord()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/hunspell/src/hunspell/csutil.cxx:114,1
    - Dst: MultiByteToWideChar
      Src: /src/hunspell/src/hunspell/csutil.cxx:115,1
    - Dst: wchar_t::wchar_t
      Src: /src/hunspell/src/hunspell/csutil.cxx:116,1
    - Dst: wchar_t::wchar_t
      Src: /src/hunspell/src/hunspell/csutil.cxx:117,1
    - Dst: MultiByteToWideChar
      Src: /src/hunspell/src/hunspell/csutil.cxx:118,1
    - Dst: _wfullpath
      Src: /src/hunspell/src/hunspell/csutil.cxx:119,1
    - Dst: open
      Src: /src/hunspell/src/hunspell/csutil.cxx:120,1
    - Dst: open
      Src: /src/hunspell/src/hunspell/csutil.cxx:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' stream'
    - path
    - mode
    argTypes:
    - std::ifstream
    - char*
    - std::ios_base::openmode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 128
    functionName: myopen
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 2
    functionsReached:
    - _wfullpath
    - wchar_t::wchar_t
    - MultiByteToWideChar
    - strncmp
    - open
    linkageType: ''
    returnType: void
    signature: void myopen(std::ifstream& stream, const char* path, std::ios_base::openmode
      mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/hunspell/src/hunspell/csutil.cxx:136,1
    - Dst: reserve
      Src: /src/hunspell/src/hunspell/csutil.cxx:137,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/csutil.cxx:137,1
    - Dst: static_cast<uint16_t>
      Src: /src/hunspell/src/hunspell/csutil.cxx:139,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/csutil.cxx:141,1
    - Dst: static_cast<char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:141,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/csutil.cxx:143,1
    - Dst: static_cast<char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:143,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/csutil.cxx:144,1
    - Dst: static_cast<char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:144,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/csutil.cxx:146,1
    - Dst: static_cast<char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:146,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/csutil.cxx:147,1
    - Dst: static_cast<char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:147,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/csutil.cxx:148,1
    - Dst: static_cast<char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' dest'
    - ' src'
    argTypes:
    - std::string
    - std::vector<w_char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 152
    functionName: u16_u8
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 20
    functionsReached:
    - static_cast<char>
    - reserve
    - size
    - push_back
    - static_cast<uint16_t>
    - clear
    linkageType: ''
    returnType: std::string
    signature: std::string & u16_u8(std::string& dest, const std::vector<w_char>&
      src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/csutil.cxx:155,1
    - Dst: static_cast<long>
      Src: /src/hunspell/src/hunspell/csutil.cxx:158,1
    - Dst: std::distance
      Src: /src/hunspell/src/hunspell/csutil.cxx:158,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:158,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/csutil.cxx:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' src'
    - p
    argTypes:
    - std::string
    - std::string::const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: warn_missing_cont
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 0
    functionsReached:
    - c_str
    - HUNSPELL_WARNING
    - std::distance
    - static_cast<long>
    - begin
    linkageType: ''
    returnType: void
    signature: void warn_missing_cont(const std::string& src, std::string::const_iterator
      p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/hunspell/src/hunspell/csutil.cxx:173,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/csutil.cxx:173,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:174,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:175,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/csutil.cxx:175,1
    - Dst: static_cast<uint8_t>
      Src: /src/hunspell/src/hunspell/csutil.cxx:178,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/csutil.cxx:186,1
    - Dst: static_cast<long>
      Src: /src/hunspell/src/hunspell/csutil.cxx:189,1
    - Dst: std::distance
      Src: /src/hunspell/src/hunspell/csutil.cxx:189,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:189,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/csutil.cxx:190,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/csutil.cxx:194,1
    - Dst: static_cast<uint8_t>
      Src: /src/hunspell/src/hunspell/csutil.cxx:195,1
    - Dst: warn_missing_cont
      Src: /src/hunspell/src/hunspell/csutil.cxx:198,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/csutil.cxx:203,1
    - Dst: static_cast<uint8_t>
      Src: /src/hunspell/src/hunspell/csutil.cxx:204,1
    - Dst: is_utf8_cont
      Src: /src/hunspell/src/hunspell/csutil.cxx:206,1
    - Dst: static_cast<uint8_t>
      Src: /src/hunspell/src/hunspell/csutil.cxx:207,1
    - Dst: warn_missing_cont
      Src: /src/hunspell/src/hunspell/csutil.cxx:210,1
    - Dst: warn_missing_cont
      Src: /src/hunspell/src/hunspell/csutil.cxx:214,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/csutil.cxx:219,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/csutil.cxx:221,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/csutil.cxx:225,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:225,1
    - Dst: static_cast<unsigned char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:229,1
    - Dst: static_cast<unsigned char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:230,1
    - Dst: static_cast<int>
      Src: /src/hunspell/src/hunspell/csutil.cxx:237,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:237,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/csutil.cxx:238,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 3
    argNames:
    - ' dest'
    - ' src'
    - only_convert_first_letter
    argTypes:
    - std::vector<w_char>
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 240
    functionName: u8_u16
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 25
    functionsReached:
    - static_cast<uint8_t>
    - warn_missing_cont
    - end
    - c_str
    - HUNSPELL_WARNING
    - size
    - std::distance
    - static_cast<unsigned char>
    - static_cast<int>
    - static_cast<long>
    - begin
    - resize
    - is_utf8_cont
    linkageType: ''
    returnType: int
    signature: int u8_u16(std::vector<w_char>& dest, const std::string& src, bool
      only_convert_first_letter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: is_any_of::is_any_of
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void is_any_of(const std::string& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/hunspell/src/hunspell/csutil.cxx:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 247
    functionName: operator()(char c) const
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 0
    functionsReached:
    - find
    linkageType: ''
    returnType: bool
    signature: bool operator()(char c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 245
    functionName: is_any_of::is_any_of
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void is_any_of(const std::string& in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/hunspell/src/hunspell/csutil.cxx:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 247
    functionName: operator()(char c) const
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 0
    functionsReached:
    - find
    linkageType: ''
    returnType: bool
    signature: bool operator()(char c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::end
      Src: /src/hunspell/src/hunspell/csutil.cxx:256,1
    - Dst: op
      Src: /src/hunspell/src/hunspell/csutil.cxx:262,1
    - Dst: op
      Src: /src/hunspell/src/hunspell/csutil.cxx:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - str
    - ' start'
    argTypes:
    - std::string
    - std::string::const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 271
    functionName: mystrsep
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 14
    functionsReached:
    - std::string::end
    - op
    linkageType: ''
    returnType: std::string::const_iterator
    signature: "std::string::const_iterator mystrsep(const std::string &str,\n                                     std::string::const_iterator&
      start)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/csutil.cxx:275,1
    - Dst: resize
      Src: /src/hunspell/src/hunspell/csutil.cxx:281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 282
    functionName: mychomp
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 18
    functionsReached:
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void mychomp(std::string& s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/csutil.cxx:287,1
    - Dst: std::getline
      Src: /src/hunspell/src/hunspell/csutil.cxx:293,1
    - Dst: std::string::empty
      Src: /src/hunspell/src/hunspell/csutil.cxx:294,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/hunspell/csutil.cxx:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' text'
    - breakchar
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: line_tok
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 4
    functionsReached:
    - std::getline
    - empty
    - std::vector::push_back
    - std::string::empty
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> line_tok(const std::string& text, char breakchar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::remove_if
      Src: /src/hunspell/src/hunspell/csutil.cxx:305,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:305,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/csutil.cxx:305,1
    - Dst: std::unordered_set::insert
      Src: /src/hunspell/src/hunspell/csutil.cxx:306,1
    - Dst: erase
      Src: /src/hunspell/src/hunspell/csutil.cxx:307,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/csutil.cxx:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' lines'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: drop_repeated_lines
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 0
    functionsReached:
    - end
    - std::remove_if
    - std::unordered_set::insert
    - begin
    - erase
    linkageType: ''
    returnType: void
    signature: void drop_repeated_lines(std::vector<std::string>& lines)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: line_tok
      Src: /src/hunspell/src/hunspell/csutil.cxx:313,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/csutil.cxx:314,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/hunspell/csutil.cxx:315,1
    - Dst: drop_repeated_lines
      Src: /src/hunspell/src/hunspell/csutil.cxx:319,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/csutil.cxx:322,1
    - Dst: push_back
      Src: /src/hunspell/src/hunspell/csutil.cxx:323,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/csutil.cxx:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' text'
    - breakchar
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 326
    functionName: line_uniq
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 1
    functionsReached:
    - std::vector::empty
    - drop_repeated_lines
    - std::vector::size
    - append
    - line_tok
    - push_back
    - clear
    linkageType: ''
    returnType: void
    signature: void line_uniq(std::string& text, char breakchar)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/hunspell/src/hunspell/csutil.cxx:330,1
    - Dst: line_tok
      Src: /src/hunspell/src/hunspell/csutil.cxx:334,1
    - Dst: clear
      Src: /src/hunspell/src/hunspell/csutil.cxx:335,1
    - Dst: std::vector::empty
      Src: /src/hunspell/src/hunspell/csutil.cxx:336,1
    - Dst: drop_repeated_lines
      Src: /src/hunspell/src/hunspell/csutil.cxx:340,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/csutil.cxx:342,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/csutil.cxx:347,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/csutil.cxx:349,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/csutil.cxx:350,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/csutil.cxx:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' text'
    - breakchar
    argTypes:
    - std::string
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 353
    functionName: line_uniq_app
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 1
    functionsReached:
    - std::vector::empty
    - find
    - drop_repeated_lines
    - std::vector::size
    - append
    - line_tok
    - size
    - assign
    - clear
    linkageType: ''
    returnType: void
    signature: void line_uniq_app(std::string& text, char breakchar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/hunspell/src/hunspell/csutil.cxx:358,1
    - Dst: insert
      Src: /src/hunspell/src/hunspell/csutil.cxx:359,1
    - Dst: length
      Src: /src/hunspell/src/hunspell/csutil.cxx:360,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/csutil.cxx:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' str'
    - ' apd'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 364
    functionName: strlinecat
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 1
    functionsReached:
    - find
    - length
    - append
    - insert
    linkageType: ''
    returnType: std::string
    signature: std::string & strlinecat(std::string& str, const std::string& apd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 373
    functionName: fieldlen
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fieldlen(const char* r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/hunspell/src/hunspell/csutil.cxx:377,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/csutil.cxx:380,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/csutil.cxx:382,1
    - Dst: append
      Src: /src/hunspell/src/hunspell/csutil.cxx:383,1
    - Dst: fieldlen
      Src: /src/hunspell/src/hunspell/csutil.cxx:383,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/csutil.cxx:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' desc'
    - ' result'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 388
    functionName: append_compound_parts
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 1
    functionsReached:
    - fieldlen
    - find
    - append
    - c_str
    linkageType: ''
    returnType: size_t
    signature: size_t append_compound_parts(const std::string& desc, std::string&
      result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/csutil.cxx:393,1
    - Dst: find
      Src: /src/hunspell/src/hunspell/csutil.cxx:395,1
    - Dst: find_first_of
      Src: /src/hunspell/src/hunspell/csutil.cxx:401,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/csutil.cxx:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' dest'
    - ' morph'
    - ' var'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 405
    functionName: copy_field
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 3
    functionsReached:
    - assign
    - find
    - empty
    - find_first_of
    linkageType: ''
    returnType: bool
    signature: "bool copy_field(std::string& dest,\n                const std::string&
      morph,\n                const std::string& var)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/hunspell/src/hunspell/csutil.cxx:411,1
    - Dst: replace
      Src: /src/hunspell/src/hunspell/csutil.cxx:412,1
    - Dst: length
      Src: /src/hunspell/src/hunspell/csutil.cxx:412,1
    - Dst: length
      Src: /src/hunspell/src/hunspell/csutil.cxx:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' str'
    - ' search'
    - ' replace'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 416
    functionName: mystrrep
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 13
    functionsReached:
    - find
    - replace
    - length
    linkageType: ''
    returnType: std::string
    signature: "std::string & mystrrep(std::string& str,\n                      const
      std::string& search,\n                      const std::string& replace)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::reverse
      Src: /src/hunspell/src/hunspell/csutil.cxx:420,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:420,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/csutil.cxx:420,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/csutil.cxx:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: reverseword
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 14
    functionsReached:
    - begin
    - size
    - std::reverse
    - end
    linkageType: ''
    returnType: size_t
    signature: size_t reverseword(std::string& word)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: std::reverse
      Src: /src/hunspell/src/hunspell/csutil.cxx:426,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:426,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/csutil.cxx:426,1
    - Dst: rbegin
      Src: /src/hunspell/src/hunspell/csutil.cxx:429,1
    - Dst: rend
      Src: /src/hunspell/src/hunspell/csutil.cxx:429,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/csutil.cxx:446,1
    - Dst: static_cast<long>
      Src: /src/hunspell/src/hunspell/csutil.cxx:449,1
    - Dst: std::distance
      Src: /src/hunspell/src/hunspell/csutil.cxx:449,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:449,1
    - Dst: auto::base
      Src: /src/hunspell/src/hunspell/csutil.cxx:449,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/csutil.cxx:450,1
    - Dst: std::distance
      Src: /src/hunspell/src/hunspell/csutil.cxx:456,1
    - Dst: rend
      Src: /src/hunspell/src/hunspell/csutil.cxx:456,1
    - Dst: std::iter_swap
      Src: /src/hunspell/src/hunspell/csutil.cxx:457,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/csutil.cxx:460,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/csutil.cxx:462,1
    - Dst: std::distance
      Src: /src/hunspell/src/hunspell/csutil.cxx:469,1
    - Dst: rend
      Src: /src/hunspell/src/hunspell/csutil.cxx:469,1
    - Dst: std::iter_swap
      Src: /src/hunspell/src/hunspell/csutil.cxx:470,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/csutil.cxx:473,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/csutil.cxx:475,1
    - Dst: std::distance
      Src: /src/hunspell/src/hunspell/csutil.cxx:482,1
    - Dst: rend
      Src: /src/hunspell/src/hunspell/csutil.cxx:482,1
    - Dst: std::iter_swap
      Src: /src/hunspell/src/hunspell/csutil.cxx:483,1
    - Dst: std::iter_swap
      Src: /src/hunspell/src/hunspell/csutil.cxx:484,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/csutil.cxx:487,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/csutil.cxx:489,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/csutil.cxx:496,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 56
    argCount: 1
    argNames:
    - ' word'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 497
    functionName: reverseword_utf
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 9
    functionsReached:
    - rend
    - rbegin
    - end
    - c_str
    - std::iter_swap
    - auto::base
    - std::reverse
    - HUNSPELL_WARNING
    - size
    - std::distance
    - static_cast<long>
    - begin
    linkageType: ''
    returnType: size_t
    signature: size_t reverseword_utf(std::string& word)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/csutil.cxx:500,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/hunspell/csutil.cxx:504,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/csutil.cxx:506,1
    - Dst: std::find
      Src: /src/hunspell/src/hunspell/csutil.cxx:507,1
    - Dst: std::vector::begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:507,1
    - Dst: std::vector::end
      Src: /src/hunspell/src/hunspell/csutil.cxx:507,1
    - Dst: std::vector::end
      Src: /src/hunspell/src/hunspell/csutil.cxx:507,1
    - Dst: std::vector::push_back
      Src: /src/hunspell/src/hunspell/csutil.cxx:508,1
    - Dst: swap
      Src: /src/hunspell/src/hunspell/csutil.cxx:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' list'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 512
    functionName: uniqlist
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 3
    functionsReached:
    - std::vector::begin
    - std::vector::push_back
    - std::find
    - size
    - swap
    - std::vector::end
    linkageType: ''
    returnType: void
    signature: void uniqlist(std::vector<std::string>& list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/hunspell/src/hunspell/csutil.cxx:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - csconv
    - nIndex
    argTypes:
    - struct cs_info*
    - int
    assertStmts:
    - condition: (nIndex >= 0 && nIndex <= 255)
      pos:
        line_end: 515
        line_start: 515
        source_file: /src/hunspell/src/hunspell/csutil.cxx
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: cupper
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char cupper(const struct cs_info* csconv, int nIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/hunspell/src/hunspell/csutil.cxx:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - csconv
    - nIndex
    argTypes:
    - struct cs_info*
    - int
    assertStmts:
    - condition: (nIndex >= 0 && nIndex <= 255)
      pos:
        line_end: 520
        line_start: 520
        source_file: /src/hunspell/src/hunspell/csutil.cxx
    constantsTouched: []
    func_position:
      end: 523
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 523
    functionName: clower
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char clower(const struct cs_info* csconv, int nIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/hunspell/src/hunspell/csutil.cxx:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - csconv
    - nIndex
    argTypes:
    - struct cs_info*
    - int
    assertStmts:
    - condition: (nIndex >= 0 && nIndex <= 255)
      pos:
        line_end: 525
        line_start: 525
        source_file: /src/hunspell/src/hunspell/csutil.cxx
    constantsTouched: []
    func_position:
      end: 528
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 528
    functionName: ccase
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char ccase(const struct cs_info* csconv, int nIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/hunspell/src/hunspell/csutil.cxx:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - csconv
    - nIndex
    argTypes:
    - struct cs_info*
    - int
    assertStmts:
    - condition: (nIndex >= 0 && nIndex <= 255)
      pos:
        line_end: 515
        line_start: 515
        source_file: /src/hunspell/src/hunspell/csutil.cxx
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: cupper
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char cupper(const struct cs_info* csconv, int nIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/hunspell/src/hunspell/csutil.cxx:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - csconv
    - nIndex
    argTypes:
    - struct cs_info*
    - int
    assertStmts:
    - condition: (nIndex >= 0 && nIndex <= 255)
      pos:
        line_end: 520
        line_start: 520
        source_file: /src/hunspell/src/hunspell/csutil.cxx
    constantsTouched: []
    func_position:
      end: 523
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 523
    functionName: clower
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char clower(const struct cs_info* csconv, int nIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/hunspell/src/hunspell/csutil.cxx:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - csconv
    - nIndex
    argTypes:
    - struct cs_info*
    - int
    assertStmts:
    - condition: (nIndex >= 0 && nIndex <= 255)
      pos:
        line_end: 525
        line_start: 525
        source_file: /src/hunspell/src/hunspell/csutil.cxx
    constantsTouched: []
    func_position:
      end: 528
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 528
    functionName: ccase
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char ccase(const struct cs_info* csconv, int nIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::bit_cast<w_char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:540,1
    - Dst: unicodetoupper
      Src: /src/hunspell/src/hunspell/csutil.cxx:540,1
    - Dst: unicodetoupper
      Src: /src/hunspell/src/hunspell/csutil.cxx:542,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/csutil.cxx:543,1
    - Dst: unicodetoupper
      Src: /src/hunspell/src/hunspell/csutil.cxx:548,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 2
    argNames:
    - u
    - langnum
    argTypes:
    - w_char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 553
    functionName: upper_utf
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 1
    functionsReached:
    - memcpy
    - std::bit_cast<w_char>
    - unicodetoupper
    linkageType: ''
    returnType: w_char
    signature: w_char upper_utf(w_char u, int langnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::bit_cast<w_char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:564,1
    - Dst: unicodetolower
      Src: /src/hunspell/src/hunspell/csutil.cxx:564,1
    - Dst: unicodetolower
      Src: /src/hunspell/src/hunspell/csutil.cxx:566,1
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/csutil.cxx:567,1
    - Dst: unicodetolower
      Src: /src/hunspell/src/hunspell/csutil.cxx:572,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 2
    argNames:
    - u
    - langnum
    argTypes:
    - w_char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 577
    functionName: lower_utf
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 1
    functionsReached:
    - memcpy
    - std::bit_cast<w_char>
    - unicodetolower
    linkageType: ''
    returnType: w_char
    signature: w_char lower_utf(w_char u, int langnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cupper
      Src: /src/hunspell/src/hunspell/csutil.cxx:582,1
    - Dst: static_cast<unsigned char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' s'
    - csconv
    argTypes:
    - std::string
    - struct cs_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 585
    functionName: mkallcap
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 5
    functionsReached:
    - cupper
    - static_cast<unsigned char>
    linkageType: ''
    returnType: std::string
    signature: std::string & mkallcap(std::string& s, const struct cs_info* csconv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clower
      Src: /src/hunspell/src/hunspell/csutil.cxx:590,1
    - Dst: static_cast<unsigned char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' s'
    - csconv
    argTypes:
    - std::string
    - struct cs_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 593
    functionName: mkallsmall
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 5
    functionsReached:
    - static_cast<unsigned char>
    - clower
    linkageType: ''
    returnType: std::string
    signature: std::string & mkallsmall(std::string& s, const struct cs_info* csconv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lower_utf
      Src: /src/hunspell/src/hunspell/csutil.cxx:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' u'
    - langnum
    argTypes:
    - std::vector<w_char>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 600
    functionName: mkallsmall_utf
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 4
    functionsReached:
    - lower_utf
    linkageType: ''
    returnType: std::vector<w_char>
    signature: std::vector<w_char> & mkallsmall_utf(std::vector<w_char>& u, int langnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: upper_utf
      Src: /src/hunspell/src/hunspell/csutil.cxx:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' u'
    - langnum
    argTypes:
    - std::vector<w_char>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 607
    functionName: mkallcap_utf
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 3
    functionsReached:
    - upper_utf
    linkageType: ''
    returnType: std::vector<w_char>
    signature: std::vector<w_char> & mkallcap_utf(std::vector<w_char>& u, int langnum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/csutil.cxx:610,1
    - Dst: cupper
      Src: /src/hunspell/src/hunspell/csutil.cxx:611,1
    - Dst: static_cast<unsigned char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' s'
    - csconv
    argTypes:
    - std::string
    - struct cs_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 614
    functionName: mkinitcap
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 7
    functionsReached:
    - cupper
    - empty
    - static_cast<unsigned char>
    linkageType: ''
    returnType: std::string
    signature: std::string & mkinitcap(std::string& s, const struct cs_info* csconv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/csutil.cxx:617,1
    - Dst: upper_utf
      Src: /src/hunspell/src/hunspell/csutil.cxx:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' u'
    - langnum
    argTypes:
    - std::vector<w_char>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 621
    functionName: mkinitcap_utf
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 4
    functionsReached:
    - empty
    - upper_utf
    linkageType: ''
    returnType: std::vector<w_char>
    signature: std::vector<w_char> & mkinitcap_utf(std::vector<w_char>& u, int langnum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/csutil.cxx:624,1
    - Dst: clower
      Src: /src/hunspell/src/hunspell/csutil.cxx:625,1
    - Dst: static_cast<unsigned char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' s'
    - csconv
    argTypes:
    - std::string
    - struct cs_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 628
    functionName: mkinitsmall
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 1
    functionsReached:
    - empty
    - static_cast<unsigned char>
    - clower
    linkageType: ''
    returnType: std::string
    signature: std::string & mkinitsmall(std::string& s, const struct cs_info* csconv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/csutil.cxx:631,1
    - Dst: lower_utf
      Src: /src/hunspell/src/hunspell/csutil.cxx:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' u'
    - langnum
    argTypes:
    - std::vector<w_char>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 635
    functionName: mkinitsmall_utf
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 1
    functionsReached:
    - lower_utf
    - empty
    linkageType: ''
    returnType: std::vector<w_char>
    signature: std::vector<w_char> & mkinitsmall_utf(std::vector<w_char>& u, int langnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/csutil.cxx:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - source
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 640
    functionName: store_pointer
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void store_pointer(char* dest, char* source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/hunspell/src/hunspell/csutil.cxx:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 647
    functionName: get_stored_pointer
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: char
    signature: char * get_stored_pointer(const char* s)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - pName
    - pBuf
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2291
      start: 2272
    functionDepth: 0
    functionLinenumber: 2272
    functionLinenumberEnd: 2291
    functionName: toAsciiLowerAndRemoveNonAlphanumeric
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void toAsciiLowerAndRemoveNonAlphanumeric(const char* pName,\n                                                 char*
      pBuf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/hunspell/src/hunspell/csutil.cxx:2294,1
    - Dst: char::char
      Src: /src/hunspell/src/hunspell/csutil.cxx:2294,1
    - Dst: toAsciiLowerAndRemoveNonAlphanumeric
      Src: /src/hunspell/src/hunspell/csutil.cxx:2295,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/csutil.cxx:2295,1
    - Dst: strcmp
      Src: /src/hunspell/src/hunspell/csutil.cxx:2299,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/csutil.cxx:2308,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/csutil.cxx:2309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ' es'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2293
    functionDepth: 1
    functionLinenumber: 2293
    functionLinenumberEnd: 2315
    functionName: get_current_cs
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 6
    functionsReached:
    - c_str
    - char::char
    - HUNSPELL_WARNING
    - size
    - strcmp
    - toAsciiLowerAndRemoveNonAlphanumeric
    linkageType: ''
    returnType: struct cs_info
    signature: struct cs_info * get_current_cs(const std::string& es)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cs_info::cs_info
      Src: /src/hunspell/src/hunspell/csutil.cxx:2321,1
    - Dst: Encoding::ForLabelNoReplacement
      Src: /src/hunspell/src/hunspell/csutil.cxx:2330,1
    - Dst: auto::NewEncoder
      Src: /src/hunspell/src/hunspell/csutil.cxx:2334,1
    - Dst: auto::NewDecoderWithoutBOMHandling
      Src: /src/hunspell/src/hunspell/csutil.cxx:2335,1
    - Dst: MakeSpan
      Src: /src/hunspell/src/hunspell/csutil.cxx:2351,1
    - Dst: MakeSpan
      Src: /src/hunspell/src/hunspell/csutil.cxx:2352,1
    - Dst: MakeSpan
      Src: /src/hunspell/src/hunspell/csutil.cxx:2353,1
    - Dst: MakeSpan
      Src: /src/hunspell/src/hunspell/csutil.cxx:2354,1
    - Dst: Tie
      Src: /src/hunspell/src/hunspell/csutil.cxx:2359,1
    - Dst: auto::DecodeToUTF16WithoutReplacement
      Src: /src/hunspell/src/hunspell/csutil.cxx:2360,1
    - Dst: ToLowerCase
      Src: /src/hunspell/src/hunspell/csutil.cxx:2365,1
    - Dst: Tie
      Src: /src/hunspell/src/hunspell/csutil.cxx:2366,1
    - Dst: auto::EncodeFromUTF16WithoutReplacement
      Src: /src/hunspell/src/hunspell/csutil.cxx:2367,1
    - Dst: ToUpperCase
      Src: /src/hunspell/src/hunspell/csutil.cxx:2373,1
    - Dst: Tie
      Src: /src/hunspell/src/hunspell/csutil.cxx:2374,1
    - Dst: auto::EncodeFromUTF16WithoutReplacement
      Src: /src/hunspell/src/hunspell/csutil.cxx:2375,1
    - Dst: auto::NewEncoderInto
      Src: /src/hunspell/src/hunspell/csutil.cxx:2384,1
    - Dst: auto::NewDecoderWithoutBOMHandlingInto
      Src: /src/hunspell/src/hunspell/csutil.cxx:2385,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 1
    argNames:
    - ' es'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2320
    functionDepth: 0
    functionLinenumber: 2320
    functionLinenumberEnd: 2402
    functionName: get_current_cs
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 6
    functionsReached:
    - auto::NewDecoderWithoutBOMHandling
    - MakeSpan
    - Encoding::ForLabelNoReplacement
    - ToLowerCase
    - auto::NewEncoder
    - Tie
    - auto::EncodeFromUTF16WithoutReplacement
    - cs_info::cs_info
    - auto::NewDecoderWithoutBOMHandlingInto
    - auto::NewEncoderInto
    - auto::DecodeToUTF16WithoutReplacement
    - ToUpperCase
    linkageType: ''
    returnType: struct cs_info
    signature: struct cs_info * get_current_cs(const std::string& es)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_current_cs
      Src: /src/hunspell/src/hunspell/csutil.cxx:2407,1
    - Dst: cupper
      Src: /src/hunspell/src/hunspell/csutil.cxx:2410,1
    - Dst: clower
      Src: /src/hunspell/src/hunspell/csutil.cxx:2410,1
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/csutil.cxx:2411,1
    - Dst: static_cast<char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:2411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - enc
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2406
    functionDepth: 2
    functionLinenumber: 2406
    functionLinenumberEnd: 2418
    functionName: get_casechars
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 1
    functionsReached:
    - cupper
    - static_cast<char>
    - clower
    - get_current_cs
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string get_casechars(const char* enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/hunspell/src/hunspell/csutil.cxx:2447,1
    - Dst: c_str
      Src: /src/hunspell/src/hunspell/csutil.cxx:2447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' lang'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2445
    functionDepth: 0
    functionLinenumber: 2445
    functionLinenumberEnd: 2452
    functionName: get_lang_num
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 2
    functionsReached:
    - strcmp
    - c_str
    linkageType: ''
    returnType: int
    signature: int get_lang_num(const std::string& lang)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned short>
      Src: /src/hunspell/src/hunspell/csutil.cxx:2461,1
    - Dst: u_toupper
      Src: /src/hunspell/src/hunspell/csutil.cxx:2461,1
    - Dst: ToUpperCase
      Src: /src/hunspell/src/hunspell/csutil.cxx:2464,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - c
    - langnum
    argTypes:
    - unsigned short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2470
      start: 2454
    functionDepth: 0
    functionLinenumber: 2454
    functionLinenumberEnd: 2470
    functionName: unicodetoupper
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 3
    functionsReached:
    - ToUpperCase
    - static_cast<unsigned short>
    - u_toupper
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short unicodetoupper(unsigned short c, int langnum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned short>
      Src: /src/hunspell/src/hunspell/csutil.cxx:2479,1
    - Dst: u_tolower
      Src: /src/hunspell/src/hunspell/csutil.cxx:2479,1
    - Dst: ToLowerCase
      Src: /src/hunspell/src/hunspell/csutil.cxx:2482,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - c
    - langnum
    argTypes:
    - unsigned short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2488
      start: 2472
    functionDepth: 0
    functionLinenumber: 2472
    functionLinenumberEnd: 2488
    functionName: unicodetolower
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 5
    functionsReached:
    - u_tolower
    - static_cast<unsigned short>
    - ToLowerCase
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short unicodetolower(unsigned short c, int langnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u_isalpha
      Src: /src/hunspell/src/hunspell/csutil.cxx:2492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2496
      start: 2490
    functionDepth: 0
    functionLinenumber: 2490
    functionLinenumberEnd: 2496
    functionName: unicodeisalpha
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 3
    functionsReached:
    - u_isalpha
    linkageType: ''
    returnType: int
    signature: int unicodeisalpha(unsigned short c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:2507,1
    - Dst: ccase
      Src: /src/hunspell/src/hunspell/csutil.cxx:2508,1
    - Dst: cupper
      Src: /src/hunspell/src/hunspell/csutil.cxx:2510,1
    - Dst: clower
      Src: /src/hunspell/src/hunspell/csutil.cxx:2510,1
    - Dst: static_cast<unsigned char>
      Src: /src/hunspell/src/hunspell/csutil.cxx:2514,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/csutil.cxx:2523,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/csutil.cxx:2523,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 2
    argNames:
    - ' word'
    - csconv
    argTypes:
    - std::string
    - cs_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2499
    functionDepth: 1
    functionLinenumber: 2499
    functionLinenumberEnd: 2529
    functionName: get_captype
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 4
    functionsReached:
    - cupper
    - clower
    - ccase
    - size
    - static_cast<unsigned char>
    linkageType: ''
    returnType: int
    signature: int get_captype(const std::string& word, const cs_info* csconv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:2537,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/csutil.cxx:2537,1
    - Dst: unicodetolower
      Src: /src/hunspell/src/hunspell/csutil.cxx:2540,1
    - Dst: unicodetoupper
      Src: /src/hunspell/src/hunspell/csutil.cxx:2543,1
    - Dst: unicodetolower
      Src: /src/hunspell/src/hunspell/csutil.cxx:2549,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/csutil.cxx:2557,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/csutil.cxx:2557,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - ' word'
    - langnum
    argTypes:
    - std::vector<w_char>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2563
      start: 2531
    functionDepth: 1
    functionLinenumber: 2531
    functionLinenumberEnd: 2563
    functionName: get_captype_utf8
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 4
    functionsReached:
    - end
    - size
    - unicodetoupper
    - begin
    - unicodetolower
    linkageType: ''
    returnType: int
    signature: int get_captype_utf8(const std::vector<w_char>& word, int langnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/csutil.cxx:2570,1
    - Dst: std::copy_if
      Src: /src/hunspell/src/hunspell/csutil.cxx:2572,1
    - Dst: std::vector::begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:2572,1
    - Dst: std::vector::end
      Src: /src/hunspell/src/hunspell/csutil.cxx:2572,1
    - Dst: std::back_inserter
      Src: /src/hunspell/src/hunspell/csutil.cxx:2572,1
    - Dst: std::binary_search
      Src: /src/hunspell/src/hunspell/csutil.cxx:2574,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:2574,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/csutil.cxx:2574,1
    - Dst: u16_u8
      Src: /src/hunspell/src/hunspell/csutil.cxx:2577,1
    - Dst: std::vector::size
      Src: /src/hunspell/src/hunspell/csutil.cxx:2578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ' word'
    - ' ignored_chars'
    argTypes:
    - std::string
    - std::vector<w_char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2566
    functionDepth: 3
    functionLinenumber: 2566
    functionLinenumberEnd: 2579
    functionName: remove_ignored_chars_utf
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 4
    functionsReached:
    - std::vector::begin
    - end
    - u8_u16
    - std::back_inserter
    - std::binary_search
    - u16_u8
    - std::vector::size
    - std::copy_if
    - begin
    - std::vector::end
    linkageType: ''
    returnType: size_t
    signature: "size_t remove_ignored_chars_utf(std::string& word,\n                                const
      std::vector<w_char>& ignored_chars)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/hunspell/src/hunspell/csutil.cxx:2584,1
    - Dst: std::remove_if
      Src: /src/hunspell/src/hunspell/csutil.cxx:2585,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:2585,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/csutil.cxx:2585,1
    - Dst: is_any_of
      Src: /src/hunspell/src/hunspell/csutil.cxx:2585,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/csutil.cxx:2586,1
    - Dst: size
      Src: /src/hunspell/src/hunspell/csutil.cxx:2587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' word'
    - ' ignored_chars'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2588
      start: 2582
    functionDepth: 0
    functionLinenumber: 2582
    functionLinenumberEnd: 2588
    functionName: remove_ignored_chars
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 4
    functionsReached:
    - end
    - std::remove_if
    - is_any_of
    - size
    - begin
    - erase
    linkageType: ''
    returnType: size_t
    signature: "size_t remove_ignored_chars(std::string& word,\n                            const
      std::string& ignored_chars)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/hunspell/src/hunspell/csutil.cxx:2591,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/csutil.cxx:2592,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:2597,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/csutil.cxx:2597,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/csutil.cxx:2598,1
    - Dst: assign
      Src: /src/hunspell/src/hunspell/csutil.cxx:2605,1
    - Dst: mystrsep
      Src: /src/hunspell/src/hunspell/csutil.cxx:2613,1
    - Dst: HUNSPELL_WARNING
      Src: /src/hunspell/src/hunspell/csutil.cxx:2616,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - ' line'
    - ' out'
    - ln
    argTypes:
    - std::string
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2620
      start: 2590
    functionDepth: 1
    functionLinenumber: 2590
    functionLinenumberEnd: 2620
    functionName: parse_string
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 4
    functionsReached:
    - end
    - empty
    - HUNSPELL_WARNING
    - mystrsep
    - assign
    - begin
    linkageType: ''
    returnType: bool
    signature: bool parse_string(const std::string& line, std::string& out, int ln)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_string
      Src: /src/hunspell/src/hunspell/csutil.cxx:2627,1
    - Dst: u8_u16
      Src: /src/hunspell/src/hunspell/csutil.cxx:2630,1
    - Dst: std::sort
      Src: /src/hunspell/src/hunspell/csutil.cxx:2631,1
    - Dst: begin
      Src: /src/hunspell/src/hunspell/csutil.cxx:2631,1
    - Dst: end
      Src: /src/hunspell/src/hunspell/csutil.cxx:2631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - ' line'
    - ' out'
    - ' out_utf16'
    - utf8
    - ln
    argTypes:
    - std::string
    - std::string
    - std::vector<w_char>
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2622
    functionDepth: 3
    functionLinenumber: 2622
    functionLinenumberEnd: 2634
    functionName: parse_array
    functionSourceFile: /src/hunspell/src/hunspell/csutil.cxx
    functionUses: 2
    functionsReached:
    - end
    - u8_u16
    - std::sort
    - parse_string
    - begin
    linkageType: ''
    returnType: bool
    signature: "bool parse_array(const std::string& line,\n                 std::string&
      out,\n                 std::vector<w_char>& out_utf16,\n                 int
      utf8,\n                 int ln)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:83,1
    - Dst: va_copy
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:85,1
    - Dst: vsnprintf
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:86,1
    - Dst: va_end
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:87,1
    - Dst: std::string::resize
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:92,1
    - Dst: vsnprintf
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:93,1
    - Dst: std::string::pop_back
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:94,1
    - Dst: va_end
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:96,1
    - Dst: emit
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' context'
    - format
    argTypes:
    - TraceCtx
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 98
    functionName: trace
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.cxx
    functionUses: 9
    functionsReached:
    - va_start
    - va_end
    - vsnprintf
    - std::string::pop_back
    - emit
    - va_copy
    - std::string::resize
    linkageType: ''
    returnType: void
    signature: void trace(const TraceCtx& context, const char* format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AffixMgr*::encode_flag
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pAMgr
    - flag
    argTypes:
    - AffixMgr*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: trace_flag
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.cxx
    functionUses: 3
    functionsReached:
    - AffixMgr*::encode_flag
    linkageType: ''
    returnType: std::string
    signature: std::string trace_flag(const AffixMgr* pAMgr, unsigned short flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::push_back
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:117,1
    - Dst: std::string::append
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:118,1
    - Dst: trace_flag
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - pAMgr
    - astr
    - alen
    argTypes:
    - AffixMgr*
    - unsigned short*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 121
    functionName: trace_flags
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.cxx
    functionUses: 5
    functionsReached:
    - std::string::push_back
    - trace_flag
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: "std::string trace_flags(const AffixMgr* pAMgr,\n                        const
      unsigned short* astr,\n                        int alen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:132,1
    - Dst: trace_flag
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:135,1
    - Dst: strip::c_str
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:135,1
    - Dst: appnd::c_str
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:136,1
    - Dst: trace_flags
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:137,1
    - Dst: get_condition
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' context'
    - verb
    - pAMgr
    - ' entry'
    argTypes:
    - TraceCtx
    - char*
    - AffixMgr*
    - AffEntry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 140
    functionName: trace_affix
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.cxx
    functionUses: 3
    functionsReached:
    - trace_flags
    - get_condition
    - trace
    - strip::c_str
    - trace_flag
    - appnd::c_str
    linkageType: ''
    returnType: void
    signature: "void trace_affix(const TraceCtx& context,\n                 const
      char* verb,\n                 const AffixMgr* pAMgr,\n                 const
      AffEntry& entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:150,1
    - Dst: trace_flag
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:151,1
    - Dst: trace_flags
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - ' context'
    - name
    - pAMgr
    - flag
    - where
    - astr
    - alen
    - outcome
    argTypes:
    - TraceCtx
    - char*
    - AffixMgr*
    - unsigned short
    - char*
    - unsigned short*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: trace_test
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.cxx
    functionUses: 4
    functionsReached:
    - trace_flag
    - trace
    - trace_flags
    linkageType: ''
    returnType: void
    signature: "void trace_test(const TraceCtx& context,\n                const char*
      name,\n                const AffixMgr* pAMgr,\n                unsigned short
      flag,\n                const char* where,\n                const unsigned short*
      astr,\n                int alen,\n                const char* outcome)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trace_flags
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:173,1
    - Dst: PfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:173,1
    - Dst: PfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:173,1
    - Dst: trace_flags
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:174,1
    - Dst: SfxEntry*::getCont
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:174,1
    - Dst: SfxEntry*::getContLen
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:174,1
    - Dst: trace
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:176,1
    - Dst: trace_flag
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:177,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:177,1
    - Dst: std::string::c_str
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 7
    argNames:
    - ' context'
    - pAMgr
    - flag
    - pfx
    - sfx
    - in_prefix
    - in_suffix
    argTypes:
    - TraceCtx
    - AffixMgr*
    - unsigned short
    - PfxEntry*
    - SfxEntry*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 179
    functionName: trace_circumfix
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.cxx
    functionUses: 1
    functionsReached:
    - SfxEntry*::getCont
    - trace_flag
    - PfxEntry*::getCont
    - SfxEntry*::getContLen
    - trace
    - std::string::c_str
    - PfxEntry*::getContLen
    - trace_flags
    linkageType: ''
    returnType: void
    signature: "void trace_circumfix(const TraceCtx& context,\n                     const
      AffixMgr* pAMgr,\n                     unsigned short flag,\n                     PfxEntry*
      pfx,\n                     SfxEntry* sfx,\n                     bool in_prefix,\n
      \                    bool in_suffix)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AffixMgr*::encode_flag
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:189,1
    - Dst: PfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:189,1
    - Dst: PfxEntry*::getKey
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:190,1
    - Dst: AffixMgr*::encode_flag
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:195,1
    - Dst: SfxEntry*::getFlag
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:195,1
    - Dst: SfxEntry*::getAffix
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:196,1
    - Dst: emit
      Src: /src/hunspell/src/hunspell/hunspelltrace.cxx:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - ' context'
    - pAMgr
    - ' surface'
    - stem
    - pfx
    - sfx
    argTypes:
    - TraceCtx
    - AffixMgr*
    - std::string
    - char*
    - PfxEntry*
    - SfxEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 198
    functionName: trace_form
    functionSourceFile: /src/hunspell/src/hunspell/hunspelltrace.cxx
    functionUses: 1
    functionsReached:
    - PfxEntry*::getKey
    - SfxEntry*::getFlag
    - emit
    - SfxEntry*::getAffix
    - AffixMgr*::encode_flag
    - PfxEntry*::getFlag
    linkageType: ''
    returnType: void
    signature: "void trace_form(const TraceCtx& context,\n                const AffixMgr*
      pAMgr,\n                const std::string& surface,\n                const char*
      stem,\n                PfxEntry* pfx,\n                SfxEntry* sfx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 16
    functionName: HUNSPELL_VERSION_CHECK
    functionSourceFile: /src/hunspell/src/hunspell/hunversion.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUNSPELL_VERSION_CHECK(major, minor, patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - q
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: ROTATE
    functionSourceFile: /src/hunspell/src/hunspell/htypes.hxx
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(v, q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: HENTRY_WORD
    functionSourceFile: /src/hunspell/src/hunspell/htypes.hxx
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HENTRY_WORD(h)
Fuzzer filename: /src/hunspell/src/tools/fuzzer.cxx
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- hunspell/hunspell.hxx
- ../hunspell/hunspell.hxx
- hunspelltrace.hxx
- firstparser.hxx
- hashmgr.hxx
- hunspell.h
- ctime
- htypes.hxx
- csutil.hxx
- cstdlib
- xmlparser.hxx
- iterator
- string.h
- latexparser.hxx
- readline/readline.h
- langinfo.h
- dirent.h
- replist.hxx
- fcntl.h
- unistd.h
- stdint.h
- hunversion.h
- stdio.h
- cstddef
- ../parsers/manparser.hxx
- cassert
- baseaffix.hxx
- iconv.h
- cstdio
- munch.h
- assert.h
- ../parsers/xmlparser.hxx
- fstream
- nsCOMPtr.h
- utf_info.hxx
- cstdint
- unmunch.h
- htmlparser.hxx
- hunvisapi.h
- ../hunspell/w_char.hxx
- sstream
- ctype.h
- limits
- affixmgr.hxx
- wchar.h
- unicode/uchar.h
- curses.h
- odfparser.hxx
- affentry.hxx
- vector
- stdlib.h
- ../parsers/htmlparser.hxx
- sys/stat.h
- bit
- suggestmgr.hxx
- mozilla/Encoding.h
- ../parsers/textparser.hxx
- stddef.h
- ../parsers/latexparser.hxx
- string
- nsUnicharUtils.h
- sys/types.h
- errno.h
- w_char.hxx
- atypes.hxx
- ../parsers/odfparser.hxx
- sal.h
- libgen.h
- cstdarg
- cctype
- manparser.hxx
- hunspell.hxx
- ../src/hunspell/hunspell.hxx
- ../hunspell/atypes.hxx
- textparser.hxx
- phonet.hxx
- windows.h
- ncursesw/curses.h
- cstring
- ../hunspell/filemgr.hxx
- memory
- unordered_set
- ../hunspell/csutil.hxx
- type_traits
- nscore.h
- locale.h
- langnum.hxx
- ../hunspell/hunzip.hxx
- algorithm
- hunzip.hxx
- ../parsers/firstparser.hxx
- filemgr.hxx
- config.h
- chrono
- libintl.h
report: name
sources:
- function_names:
  - main
  source_file: /src/hunspell/tests/gh1058.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/hunspell/tests/gh1032.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/hunspell/src/tools/persdicfuzzer.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/hunspell/src/tools/chmorph.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ROTATE
  source_file: /src/hunspell/src/tools/munch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_LN_LEN
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/hunspell/src/tools/munch.h
      type_or_value: '200'
    - item_type: preproc_def
      name: MAX_WD_LEN
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/hunspell/src/tools/munch.h
      type_or_value: '200'
    - item_type: preproc_def
      name: MAX_PREFIXES
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/hunspell/src/tools/munch.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: MAX_SUFFIXES
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/hunspell/src/tools/munch.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: MAX_ROOTS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/hunspell/src/tools/munch.h
      type_or_value: '20'
    - item_type: preproc_def
      name: MAX_WORDS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/hunspell/src/tools/munch.h
      type_or_value: '5000'
    - item_type: preproc_def
      name: ROTATE_LEN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/hunspell/src/tools/munch.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SET_SIZE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/hunspell/src/tools/munch.h
      type_or_value: '256'
    - item_type: preproc_def
      name: XPRODUCT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/hunspell/src/tools/munch.h
      type_or_value: (1 << 0)
    structs:
    - fields:
      - name: '* appnd'
        type: char
      - name: '* strip'
        type: char
      - name: appndl
        type: short
      - name: stripl
        type: short
      - name: achar
        type: char
      - name: xpflg
        type: char
      - name: numconds
        type: short
      - name: conds[SET_SIZE]
        type: char
      item_type: struct
      name: affent
      pos:
        line_end: 69
        line_start: 60
        source_file: /src/hunspell/src/tools/munch.h
    - fields:
      - name: '* aep'
        type: struct affent
      - name: num
        type: int
      item_type: struct
      name: affixptr
      pos:
        line_end: 74
        line_start: 71
        source_file: /src/hunspell/src/tools/munch.h
    - fields:
      - name: '* hashent'
        type: struct hentry
      - name: '* prefix'
        type: struct affent
      - name: '* suffix'
        type: struct affent
      item_type: struct
      name: matches
      pos:
        line_end: 91
        line_start: 87
        source_file: /src/hunspell/src/tools/munch.h
    - fields:
      - name: '* word'
        type: char
      - name: '* affstr'
        type: char
      - name: '* next'
        type: struct hentry
      - name: keep
        type: int
      item_type: struct
      name: hentry
      pos:
        line_end: 103
        line_start: 98
        source_file: /src/hunspell/src/tools/munch.h
    - fields:
      - name: '* word'
        type: char
      - name: pallow
        type: int
      item_type: struct
      name: dwords
      pos:
        line_end: 114
        line_start: 111
        source_file: /src/hunspell/src/tools/munch.h
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/hunspell/src/tools/hunzip.cxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DESC
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/hunspell/src/tools/hunzip.cxx
      type_or_value: "\"hunzip - decompress a hzip file to the standard output\\n\"
        \\\n  \"Usage: hunzip file.hz [password]\\n\""
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - parse_aff_file
  - encodeit
  - pfx_add
  - suf_add
  - expand_rootword
  - mystrsep
  - mystrdup
  - mychomp
  source_file: /src/hunspell/src/tools/unmunch.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/hunspell/src/tools/hzfuzzer.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/hunspell/src/tools/example.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gettext
  - textdomain
  - fix_encoding_name
  - chenc
  - get_parser
  - log
  - print_trace
  - putdic
  - load_privdic
  - exist
  - save_privdic
  - basename
  - mystrdup
  - scanline
  - check
  - is_zipped_odf
  - secure_filename
  - mymkdtemp
  - pipe_interface
  - set_rltext
  - rl_escape
  - expand_tab
  - strncpyu8
  - strlenu8
  - dialogscreen
  - lower_first_char
  - keymatch
  - dialog
  - interactive_line
  - interactive_interface
  - exist2
  - listdicpath
  - search
  - main
  source_file: /src/hunspell/src/tools/hunspell.cxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INPUTLEN
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: '50'
    - item_type: preproc_def
      name: HUNSPELL_PIPE_HEADING
      pos:
        line_end: 59
        line_start: 56
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: "\"@(#) International Ispell Version 3.2.06 (but really Hunspell
        \" VERSION \")\" \\\n                                                                           \"\\n\""
    - item_type: preproc_def
      name: HUNSPELL_HEADING
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: '"Hunspell "'
    - item_type: preproc_def
      name: ODF_EXT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: '"odt|ott|odp|otp|odg|otg|ods|ots"'
    - item_type: preproc_def
      name: ENTITY_APOS
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: '"&apos;"'
    - item_type: preproc_def
      name: UTF8_APOS
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: '"\xe2\x80\x99"'
    - item_type: preproc_def
      name: LIBDIR
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: '"C:\\Hunspell\\"'
    - item_type: preproc_def
      name: USEROOODIR
      pos:
        line_end: 75
        line_start: 71
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: "{                                    \\\n  \"Application Data\\\\OpenOffice.org
        2\\\\user\\\\wordbook\", \\\n  \"AppData\\\\Roaming\\\\LibreOffice\\\\4\\\\user\\\\wordbook\"
        \   \\\n}"
    - item_type: preproc_def
      name: OOODIR
      pos:
        line_end: 81
        line_start: 75
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: "\"C:\\\\Program files\\\\OpenOffice.org 2.4\\\\share\\\\dict\\\\ooo\\\\;\"
        \\\n  \"C:\\\\Program files\\\\OpenOffice.org 2.3\\\\share\\\\dict\\\\ooo\\\\;\"
        \\\n  \"C:\\\\Program files\\\\OpenOffice.org 2.2\\\\share\\\\dict\\\\ooo\\\\;\"
        \\\n  \"C:\\\\Program files\\\\OpenOffice.org 2.1\\\\share\\\\dict\\\\ooo\\\\;\"
        \\\n  \"C:\\\\Program files\\\\OpenOffice.org 2.0\\\\share\\\\dict\\\\ooo\\\\\""
    - item_type: preproc_def
      name: HOME
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: getenv("USERPROFILE")
    - item_type: preproc_def
      name: LODIR
      pos:
        line_end: 85
        line_start: 82
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: "\"C:\\\\Program Files\\\\LibreOffice\\\\share\\\\extensions;\"
        \     \\\n  \"C:\\\\Program Files (x86)\\\\LibreOffice\\\\share\\\\extensions\""
    - item_type: preproc_def
      name: DICBASENAME
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: '"hunspell_"'
    - item_type: preproc_def
      name: LOGFILE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: '"C:\\Hunspell\\log"'
    - item_type: preproc_def
      name: DIRSEPCH
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: '''\\'''
    - item_type: preproc_def
      name: DIRSEP
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: '"\\"'
    - item_type: preproc_def
      name: PATHSEP
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: '";"'
    - item_type: preproc_def
      name: LIBDIR
      pos:
        line_end: 129
        line_start: 121
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: "DATADIR \"/hunspell:\"        \\\n  DATADIR \"/myspell:\"         \\\n
        \ DATADIR \"/myspell/dicts:\"   \\\n  \"/usr/share/hunspell:\"      \\\n  \"/usr/share/myspell:\"
        \      \\\n  \"/usr/share/myspell/dicts:\" \\\n  \"/Library/Spelling\""
    - item_type: preproc_def
      name: USEROOODIR
      pos:
        line_end: 135
        line_start: 129
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: "{                       \\\n  \".openoffice.org/3/user/wordbook\",
        \      \\\n  \".openoffice.org2/user/wordbook\",        \\\n  \".openoffice.org2.0/user/wordbook\",
        \     \\\n  \".config/libreoffice/4/user/wordbook\",   \\\n  \"Library/Spelling\"
        }"
    - item_type: preproc_def
      name: OOODIR
      pos:
        line_end: 148
        line_start: 135
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: "\"/opt/openoffice.org/basis3.0/share/dict/ooo:\"     \\\n  \"/usr/lib/openoffice.org/basis3.0/share/dict/ooo:\"
        \\\n  \"/opt/openoffice.org2.4/share/dict/ooo:\"           \\\n  \"/usr/lib/openoffice.org2.4/share/dict/ooo:\"
        \      \\\n  \"/opt/openoffice.org2.3/share/dict/ooo:\"           \\\n  \"/usr/lib/openoffice.org2.3/share/dict/ooo:\"
        \      \\\n  \"/opt/openoffice.org2.2/share/dict/ooo:\"           \\\n  \"/usr/lib/openoffice.org2.2/share/dict/ooo:\"
        \      \\\n  \"/opt/openoffice.org2.1/share/dict/ooo:\"           \\\n  \"/usr/lib/openoffice.org2.1/share/dict/ooo:\"
        \      \\\n  \"/opt/openoffice.org2.0/share/dict/ooo:\"           \\\n  \"/usr/lib/openoffice.org2.0/share/dict/ooo\""
    - item_type: preproc_def
      name: HOME
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: getenv("HOME")
    - item_type: preproc_def
      name: LODIR
      pos:
        line_end: 153
        line_start: 149
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: "\"/opt/libreoffice/share/extensions:\"              \\\n  \"/usr/lib/libreoffice/share/extensions:\"
        \         \\\n  \"/usr/lib64/libreoffice/share/extensions\""
    - item_type: preproc_def
      name: DICBASENAME
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: '".hunspell_"'
    - item_type: preproc_def
      name: LOGFILE
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: '"/tmp/hunspell.log"'
    - item_type: preproc_def
      name: DIRSEPCH
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: '''/'''
    - item_type: preproc_def
      name: DIRSEP
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: '"/"'
    - item_type: preproc_def
      name: PATHSEP
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: '":"'
    - item_type: preproc_def
      name: readline
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: scanline
    - item_type: preproc_def
      name: DMAX
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/hunspell/src/tools/hunspell.cxx
      type_or_value: 10  // maximal count of loaded dictionaries
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/hunspell/src/tools/analyze.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/hunspell/src/tools/parserfuzzer.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  - main
  source_file: /src/hunspell/src/tools/morphfuzzer.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  - main
  source_file: /src/hunspell/src/tools/affdicfuzzer.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/hunspell/src/tools/persdiccrash.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - parse_aff_file
  - encodeit
  - pfx_chk
  - suf_chk
  - aff_chk
  - lookup
  - add_word
  - load_tables
  - hash
  - add_affix_char
  - pfx_add
  - suf_add
  - expand_rootword
  - mystrsep
  - mystrdup
  - mychomp
  source_file: /src/hunspell/src/tools/munch.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fail
  - code2table
  - newitem
  - get_freqdata
  - get_codetable
  - write_bits
  - encode_file
  - prefixcompress
  - hzip
  - main
  source_file: /src/hunspell/src/tools/hzip.cxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CODELEN
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/hunspell/src/tools/hzip.cxx
      type_or_value: '65536'
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/hunspell/src/tools/hzip.cxx
      type_or_value: '65536'
    - item_type: preproc_def
      name: EXTENSION
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/hunspell/src/tools/hzip.cxx
      type_or_value: '".hz"'
    - item_type: preproc_def
      name: ESCAPE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/hunspell/src/tools/hzip.cxx
      type_or_value: '31'
    - item_type: preproc_def
      name: MAGIC
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/hunspell/src/tools/hzip.cxx
      type_or_value: '"hz0"'
    - item_type: preproc_def
      name: MAGIC_ENCRYPTED
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/hunspell/src/tools/hzip.cxx
      type_or_value: '"hz1"'
    - item_type: preproc_def
      name: DESC
      pos:
        line_end: 59
        line_start: 54
        source_file: /src/hunspell/src/tools/hzip.cxx
      type_or_value: "\"hzip - dictionary compression utility\\n\"            \\\n
        \ \"Usage: hzip [-h | -P password ] [file1 file2 ..]\\n\" \\\n  \"  -P password
        \ encrypted compression\\n\"             \\\n  \"  -h           display this
        help and exit\\n\""
    structs:
    - fields:
      - name: word
        type: unsigned short
      - name: count
        type: int
      - name: type
        type: char
      - name: '* left'
        type: struct item
      - name: '* right'
        type: struct item
      item_type: struct
      name: item
      pos:
        line_end: 68
        line_start: 62
        source_file: /src/hunspell/src/tools/hzip.cxx
    typedefs: []
    union:
    - fields:
      - name: c[2]
        type: char
      - name: word
        type: unsigned short
      item_type: union
      name: u
      pos:
        line_end: 116
        line_start: 113
        source_file: /src/hunspell/src/tools/hzip.cxx
    - fields:
      - name: c[2]
        type: char
      - name: word
        type: unsigned short
      item_type: union
      name: u
      pos:
        line_end: 198
        line_start: 195
        source_file: /src/hunspell/src/tools/hzip.cxx
- function_names:
  - endswith
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/hunspell/src/tools/fuzzer.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ROTATE
  source_file: /src/hunspell/src/tools/unmunch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_LN_LEN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/hunspell/src/tools/unmunch.h
      type_or_value: '200'
    - item_type: preproc_def
      name: MAX_WD_LEN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/hunspell/src/tools/unmunch.h
      type_or_value: '200'
    - item_type: preproc_def
      name: MAX_PREFIXES
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/hunspell/src/tools/unmunch.h
      type_or_value: '256'
    - item_type: preproc_def
      name: MAX_SUFFIXES
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/hunspell/src/tools/unmunch.h
      type_or_value: '256'
    - item_type: preproc_def
      name: MAX_WORDS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/hunspell/src/tools/unmunch.h
      type_or_value: '500000'
    - item_type: preproc_def
      name: ROTATE_LEN
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/hunspell/src/tools/unmunch.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SET_SIZE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/hunspell/src/tools/unmunch.h
      type_or_value: '256'
    - item_type: preproc_def
      name: XPRODUCT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/hunspell/src/tools/unmunch.h
      type_or_value: (1 << 0)
    structs:
    - fields:
      - name: '* appnd'
        type: char
      - name: '* strip'
        type: char
      - name: appndl
        type: short
      - name: stripl
        type: short
      - name: achar
        type: char
      - name: xpflg
        type: char
      - name: numconds
        type: short
      - name: conds[SET_SIZE]
        type: char
      item_type: struct
      name: affent
      pos:
        line_end: 65
        line_start: 56
        source_file: /src/hunspell/src/tools/unmunch.h
    - fields:
      - name: '* aep'
        type: struct affent
      - name: num
        type: int
      item_type: struct
      name: affixptr
      pos:
        line_end: 70
        line_start: 67
        source_file: /src/hunspell/src/tools/unmunch.h
    - fields:
      - name: '* word'
        type: char
      - name: pallow
        type: int
      item_type: struct
      name: dwords
      pos:
        line_end: 88
        line_start: 85
        source_file: /src/hunspell/src/tools/unmunch.h
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/hunspell/src/parsers/testparser.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/hunspell/src/parsers/firstparser.hxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TextParser::is_utf8
  source_file: /src/hunspell/src/parsers/textparser.hxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXPREVLINE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/hunspell/src/parsers/textparser.hxx
      type_or_value: '4'
    - item_type: preproc_def
      name: MAXLNLEN
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/hunspell/src/parsers/textparser.hxx
      type_or_value: '8192'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TextParser::TextParser
  - TextParser::TextParser
  - TextParser::~TextParser()
  - TextParser::is_wordchar
  - TextParser::get_latin1
  - TextParser::init
  - TextParser::init
  - TextParser::next_char
  - TextParser::put_line
  - TextParser::get_prevline
  - TextParser::get_line
  - TextParser::next_token
  - TextParser::get_tokenpos
  - TextParser::change_token
  - TextParser::get_word
  - TextParser::check_urls
  - TextParser::get_url
  - TextParser::set_url_checking
  - TextParser::alloc_token
  source_file: /src/hunspell/src/parsers/textparser.cxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LATIN1_LEN
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/hunspell/src/parsers/textparser.cxx
      type_or_value: (sizeof(LATIN1) / sizeof(char*))
    - item_type: preproc_def
      name: ENTITY_APOS
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/hunspell/src/parsers/textparser.cxx
      type_or_value: '"&apos;"'
    - item_type: preproc_def
      name: UTF8_APOS
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/hunspell/src/parsers/textparser.cxx
      type_or_value: '"\xe2\x80\x99"'
    - item_type: preproc_def
      name: APOSTROPHE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/hunspell/src/parsers/textparser.cxx
      type_or_value: '"''"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/hunspell/src/parsers/manparser.hxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/hunspell/src/parsers/odfparser.hxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/hunspell/src/parsers/latexparser.hxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HTMLParser::HTMLParser
  - HTMLParser::HTMLParser
  - HTMLParser::next_token
  - HTMLParser::~HTMLParser()
  source_file: /src/hunspell/src/parsers/htmlparser.cxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PATTERN_LEN
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/hunspell/src/parsers/htmlparser.cxx
      type_or_value: (sizeof(PATTERN) / (sizeof(char*) * 2))
    - item_type: preproc_def
      name: PATTERN_LEN2
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/hunspell/src/parsers/htmlparser.cxx
      type_or_value: (sizeof(PATTERN2) / (sizeof(char*) * 2))
    - item_type: preproc_def
      name: PATTERN_LEN3
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/hunspell/src/parsers/htmlparser.cxx
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - FirstParser::FirstParser
  - FirstParser::~FirstParser()
  - FirstParser::next_token
  source_file: /src/hunspell/src/parsers/firstparser.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/hunspell/src/parsers/htmlparser.hxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LaTeXParser::LaTeXParser
  - LaTeXParser::LaTeXParser
  - LaTeXParser::~LaTeXParser()
  - LaTeXParser::look_pattern
  - LaTeXParser::next_token
  source_file: /src/hunspell/src/parsers/latexparser.cxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UTF8_APOS
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/hunspell/src/parsers/latexparser.cxx
      type_or_value: '"\xe2\x80\x99"'
    - item_type: preproc_def
      name: APOSTROPHE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/hunspell/src/parsers/latexparser.cxx
      type_or_value: '"''"'
    - item_type: preproc_def
      name: PATTERN_LEN
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/hunspell/src/parsers/latexparser.cxx
      type_or_value: (sizeof(PATTERN) / sizeof(PATTERN[0]))
    structs:
    - fields:
      - name: '* pat[2]'
        type: char
      - name: arg
        type: int
      item_type: struct
      name: "PATTERN[] = {{{\"\\\\(\", \"\\\\)\"}, 0},\n               {{\"$$\", \"$$\"},
        0},\n               {{\"$\", \"$\"}, 0},\n               {{\"\\\\begin{math}\",
        \"\\\\end{math}\"}, 0},\n               {{\"\\\\[\", \"\\\\]\"}, 0},\n               {{\"\\\\begin{displaymath}\",
        \"\\\\end{displaymath}\"}, 0},\n               {{\"\\\\begin{equation}\",
        \"\\\\end{equation}\"}, 0},\n               {{\"\\\\begin{equation*}\", \"\\\\end{equation*}\"},
        0},\n               {{\"\\\\begin{align}\", \"\\\\end{align}\"}, 0},\n               {{\"\\\\begin{align*}\",
        \"\\\\end{align*}\"}, 0},\n               {{\"\\\\begin{lstlisting}\", \"\\\\end{lstlisting}\"},
        0},\n               {{\"\\\\cite\", nullptr}, 1},\n               {{\"\\\\textcite\",
        nullptr}, 1},\n               {{\"\\\\autocite\", nullptr}, 1},\n               {{\"\\\\nocite\",
        nullptr}, 1},\n               {{\"\\\\index\", nullptr}, 1},\n               {{\"\\\\label\",
        nullptr}, 1},\n               {{\"\\\\ref\", nullptr}, 1},\n               {{\"\\\\pageref\",
        nullptr}, 1},\n               {{\"\\\\autoref\", nullptr}, 1},\n               {{\"\\\\parbox\",
        nullptr}, 1},\n               {{\"\\\\begin{verbatim}\", \"\\\\end{verbatim}\"},
        0},\n               {{\"\\\\verb+\", \"+\"}, 0},\n               {{\"\\\\verb|\",
        \"|\"}, 0},\n               {{\"\\\\verb#\", \"#\"}, 0},\n               {{\"\\\\verb*\",
        \"*\"}, 0},\n               {{\"\\\\documentstyle\", \"\\\\begin{document}\"},
        0},\n               {{\"\\\\documentclass\", \"\\\\begin{document}\"}, 0},\n
        \              // { { \"\\\\documentclass\", NULL } , 1 },\n               {{\"\\\\usepackage\",
        nullptr}, 1},\n               {{\"\\\\includeonly\", nullptr}, 1},\n               {{\"\\\\include\",
        nullptr}, 1},\n               {{\"\\\\input\", nullptr}, 1},\n               {{\"\\\\vspace\",
        nullptr}, 1},\n               {{\"\\\\setlength\", nullptr}, 2},\n               {{\"\\\\addtolength\",
        nullptr}, 2},\n               {{\"\\\\settowidth\", nullptr}, 2},\n               {{\"\\\\rule\",
        nullptr}, 2},\n               {{\"\\\\hspace\", nullptr}, 1},\n               {{\"\\\\vspace\",
        nullptr}, 1},\n               {{\"\\\\\\\\[\", \"]\"}, 0},\n               {{\"\\\\pagebreak[\",
        \"]\"}, 0},\n               {{\"\\\\nopagebreak[\", \"]\"}, 0},\n               {{\"\\\\enlargethispage\",
        nullptr}, 1},\n               {{\"\\\\begin{tabular}\", nullptr}, 1},\n               {{\"\\\\addcontentsline\",
        nullptr}, 2},\n               {{\"\\\\gls\", nullptr}, 1},\n               {{\"\\\\glspl\",
        nullptr}, 1},\n               {{\"\\\\Gls\", nullptr}, 1},\n               {{\"\\\\Glspl\",
        nullptr}, 1},\n               {{\"\\\\begin{thebibliography}\", nullptr},
        1},\n               {{\"\\\\bibliography\", nullptr}, 1},\n               {{\"\\\\bibliographystyle\",
        nullptr}, 1},\n               {{\"\\\\bibitem\", nullptr}, 1},\n               {{\"\\\\begin\",
        nullptr}, 1},\n               {{\"\\\\end\", nullptr}, 1},\n               {{\"\\\\pagestyle\",
        nullptr}, 1},\n               {{\"\\\\pagenumbering\", nullptr}, 1},\n               {{\"\\\\thispagestyle\",
        nullptr}, 1},\n               {{\"\\\\newtheorem\", nullptr}, 2},\n               {{\"\\\\newcommand\",
        nullptr}, 2},\n               {{\"\\\\renewcommand\", nullptr}, 2},\n               {{\"\\\\setcounter\",
        nullptr}, 2},\n               {{\"\\\\addtocounter\", nullptr}, 1},\n               {{\"\\\\stepcounter\",
        nullptr}, 1},\n               {{\"\\\\selectlanguage\", nullptr}, 1},\n               {{\"\\\\inputencoding\",
        nullptr}, 1},\n               {{\"\\\\hyphenation\", nullptr}, 1},\n               {{\"\\\\definecolor\",
        nullptr}, 3},\n               {{\"\\\\color\", nullptr}, 1},\n               {{\"\\\\textcolor\",
        nullptr}, 1},\n               {{\"\\\\pagecolor\", nullptr}, 1},\n               {{\"\\\\colorbox\",
        nullptr}, 2},\n               {{\"\\\\fcolorbox\", nullptr}, 2},\n               {{\"\\\\declaregraphicsextensions\",
        nullptr}, 1},\n               {{\"\\\\psfig\", nullptr}, 1},\n               {{\"\\\\url\",
        nullptr}, 1},\n               {{\"\\\\eqref\", nullptr}, 1},\n               {{\"\\\\cref\",
        nullptr}, 1},\n               {{\"\\\\Cref\", nullptr}, 1},\n               {{\"\\\\vskip\",
        nullptr}, 1},\n               {{\"\\\\vglue\", nullptr}, 1},\n               {{\"\\'\\'\",
        nullptr}, 1}}"
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/hunspell/src/parsers/latexparser.cxx
    typedefs: []
    union: []
- function_names: []
  source_file: /src/hunspell/src/parsers/xmlparser.hxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ManParser::ManParser
  - ManParser::ManParser
  - ManParser::~ManParser()
  - ManParser::next_token
  source_file: /src/hunspell/src/parsers/manparser.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ODFParser::ODFParser
  - ODFParser::ODFParser
  - ODFParser::next_token
  - ODFParser::get_word
  - ODFParser::~ODFParser()
  source_file: /src/hunspell/src/parsers/odfparser.cxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PATTERN_LEN
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/hunspell/src/parsers/odfparser.cxx
      type_or_value: (sizeof(PATTERN) / (sizeof(char*) * 2))
    - item_type: preproc_def
      name: PATTERN_LEN2
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/hunspell/src/parsers/odfparser.cxx
      type_or_value: '0'
    - item_type: preproc_def
      name: PATTERN_LEN3
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/hunspell/src/parsers/odfparser.cxx
      type_or_value: (sizeof(PATTERN3) / (sizeof(char*) * 2))
    structs: []
    typedefs: []
    union: []
- function_names:
  - XMLParser::XMLParser
  - XMLParser::XMLParser
  - XMLParser::~XMLParser()
  - XMLParser::look_pattern
  - XMLParser::next_token
  - XMLParser::next_token
  - XMLParser::get_word2
  - XMLParser::change_token
  source_file: /src/hunspell/src/parsers/xmlparser.cxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __PATTERN_LEN__
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/hunspell/src/parsers/xmlparser.cxx
      type_or_value: (sizeof(__PATTERN__) / (sizeof(char*) * 2))
    - item_type: preproc_def
      name: __PATTERN_LEN2__
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/hunspell/src/parsers/xmlparser.cxx
      type_or_value: '0'
    - item_type: preproc_def
      name: __PATTERN_LEN3__
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/hunspell/src/parsers/xmlparser.cxx
      type_or_value: '0'
    - item_type: preproc_def
      name: ENTITY_APOS
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/hunspell/src/parsers/xmlparser.cxx
      type_or_value: '"&apos;"'
    - item_type: preproc_def
      name: UTF8_APOS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/hunspell/src/parsers/xmlparser.cxx
      type_or_value: '"\xe2\x80\x99"'
    - item_type: preproc_def
      name: APOSTROPHE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/hunspell/src/parsers/xmlparser.cxx
      type_or_value: '"''"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TraceCtx::TraceCtx
  - TraceCtx::on
  - TraceCtx::emit
  - TraceScope::TraceScope
  - ~TraceScope()
  - TraceScope::TraceScope
  - '& operator=(const TraceScope&)'
  - TraceSuppress::TraceSuppress
  - ~TraceSuppress()
  - TraceSuppress::TraceSuppress
  - '& operator=(const TraceSuppress&)'
  - trace_on
  source_file: /src/hunspell/src/hunspell/hunspelltrace.hxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_FORMAT
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/hunspell/src/hunspell/hunspelltrace.hxx
      type_or_value: _Printf_format_string_
    - item_type: preproc_def
      name: TRACE_FORMAT_CHECK
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/hunspell/src/hunspell/hunspelltrace.hxx
      type_or_value: __attribute__((format(printf, 2, 3)))
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/hunspell/src/hunspell/hunvisapi.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIBHUNSPELL_DLL_EXPORTED
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/hunspell/src/hunspell/hunvisapi.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: LIBHUNSPELL_DLL_EXPORTED
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/hunspell/src/hunspell/hunvisapi.h
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: LIBHUNSPELL_DLL_EXPORTED
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/hunspell/src/hunspell/hunvisapi.h
      type_or_value: __attribute__((__visibility__("default")))
    structs: []
    typedefs: []
    union: []
- function_names:
  - SuggestMgr::SuggestMgr
  - '& operator=(const SuggestMgr&)'
  source_file: /src/hunspell/src/hunspell/suggestmgr.hxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_ROOTS
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/hunspell/src/hunspell/suggestmgr.hxx
      type_or_value: '100'
    - item_type: preproc_def
      name: MAX_WORDS
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/hunspell/src/hunspell/suggestmgr.hxx
      type_or_value: '100'
    - item_type: preproc_def
      name: MAX_GUESS
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/hunspell/src/hunspell/suggestmgr.hxx
      type_or_value: '200'
    - item_type: preproc_def
      name: MAXNGRAMSUGS
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/hunspell/src/hunspell/suggestmgr.hxx
      type_or_value: '4'
    - item_type: preproc_def
      name: MAXPHONSUGS
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/hunspell/src/hunspell/suggestmgr.hxx
      type_or_value: '2'
    - item_type: preproc_def
      name: MAXCOMPOUNDSUGS
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/hunspell/src/hunspell/suggestmgr.hxx
      type_or_value: '3'
    - item_type: preproc_def
      name: NGRAM_LONGER_WORSE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/hunspell/src/hunspell/suggestmgr.hxx
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: NGRAM_ANY_MISMATCH
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/hunspell/src/hunspell/suggestmgr.hxx
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: NGRAM_LOWERING
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/hunspell/src/hunspell/suggestmgr.hxx
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: NGRAM_WEIGHTED
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/hunspell/src/hunspell/suggestmgr.hxx
      type_or_value: (1 << 3)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/hunspell/src/hunspell/hunspell.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Hunhandle
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/hunspell/src/hunspell/hunspell.h
      type: Hunhandle
    union: []
- function_names:
  - Hunzip
  - Hunzip
  source_file: /src/hunspell/src/hunspell/hunzip.hxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/hunspell/src/hunspell/hunzip.hxx
      type_or_value: '65536'
    - item_type: preproc_def
      name: HZIP_EXTENSION
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/hunspell/src/hunspell/hunzip.hxx
      type_or_value: '".hz"'
    - item_type: preproc_def
      name: MSG_OPEN
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/hunspell/src/hunspell/hunzip.hxx
      type_or_value: '"error: %s: cannot open\n"'
    - item_type: preproc_def
      name: MSG_FORMAT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/hunspell/src/hunspell/hunzip.hxx
      type_or_value: '"error: %s: not in hzip format\n"'
    - item_type: preproc_def
      name: MSG_MEMORY
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/hunspell/src/hunspell/hunzip.hxx
      type_or_value: '"error: %s: missing memory\n"'
    - item_type: preproc_def
      name: MSG_KEY
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/hunspell/src/hunspell/hunzip.hxx
      type_or_value: '"error: %s: missing or bad password\n"'
    structs:
    - fields:
      - name: c[2]
        type: unsigned char
      - name: v[2]
        type: int
      item_type: struct
      name: bit
      pos:
        line_end: 60
        line_start: 57
        source_file: /src/hunspell/src/hunspell/hunzip.hxx
    typedefs: []
    union: []
- function_names:
  - operator unsigned short() const
  - operator<(const w_char a, const w_char b)
  - operator==(const w_char a, const w_char b)
  - operator!=(const w_char a, const w_char b)
  source_file: /src/hunspell/src/hunspell/w_char.hxx
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: l
        type: unsigned char
      - name: h
        type: unsigned char
      item_type: struct
      name: w_char
      pos:
        line_end: 83
        line_start: 50
        source_file: /src/hunspell/src/hunspell/w_char.hxx
    - fields:
      - name: pattern
        type: std::string
      - name: outstrings[4]
        type: std::string
      item_type: struct
      name: replentry
      pos:
        line_end: 89
        line_start: 86
        source_file: /src/hunspell/src/hunspell/w_char.hxx
    typedefs: []
    union: []
- function_names:
  - AffEntry::AffEntry
  - AffEntry::AffEntry
  - '& operator=(const AffEntry&)'
  source_file: /src/hunspell/src/hunspell/baseaffix.hxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FileMgr::FileMgr
  - '& operator=(const FileMgr&)'
  source_file: /src/hunspell/src/hunspell/filemgr.hxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Hunzip::fail
  - Hunzip::Hunzip
  - Hunzip::getcode
  - Hunzip::~Hunzip()
  - Hunzip::getbuf
  - Hunzip::is_open
  - Hunzip::getline
  source_file: /src/hunspell/src/hunspell/hunzip.cxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CODELEN
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/hunspell/src/hunspell/hunzip.cxx
      type_or_value: '65536'
    - item_type: preproc_def
      name: BASEBITREC
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/hunspell/src/hunspell/hunzip.cxx
      type_or_value: '5000'
    - item_type: preproc_def
      name: UNCOMPRESSED
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/hunspell/src/hunspell/hunzip.cxx
      type_or_value: '''\002'''
    - item_type: preproc_def
      name: MAGIC
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/hunspell/src/hunspell/hunzip.cxx
      type_or_value: '"hz0"'
    - item_type: preproc_def
      name: MAGIC_ENCRYPT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/hunspell/src/hunspell/hunzip.cxx
      type_or_value: '"hz1"'
    - item_type: preproc_def
      name: MAGICLEN
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/hunspell/src/hunspell/hunzip.cxx
      type_or_value: (sizeof(MAGIC) - 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - DistinctRecords::DistinctRecords
  - DistinctRecords::append
  - DistinctRecords::join
  - DistinctRecords::DistinctRecords
  - DistinctRecords::append
  - DistinctRecords::join
  - AffixMgr::AffixMgr
  - AffixMgr::~AffixMgr()
  - AffixMgr::finishFileMgr
  - AffixMgr::parse_file
  - AffixMgr::build_pfxtree
  - AffixMgr::build_sfxtree
  - AffixMgr::process_pfx_tree_to_list
  - AffixMgr::process_pfx_in_order
  - AffixMgr::process_sfx_tree_to_list
  - AffixMgr::process_sfx_in_order
  - AffixMgr::process_pfx_order
  - AffixMgr::process_sfx_order
  - '& AffixMgr::debugflag(std::string& result, unsigned short flag)'
  - AffixMgr::condlen
  - AffixMgr::encodeit
  - AffixMgr::isSubset
  - AffixMgr::prefix_check
  - AffixMgr::prefix_check_twosfx
  - AffixMgr::prefix_check_morph
  - AffixMgr::prefix_check_twosfx_morph
  - AffixMgr::cpdrep_check
  - AffixMgr::cpdwordpair_check
  - trace_cond_flag
  - trace_join_word
  - join_side_has_flag
  - AffixMgr::cpdpat_check
  - AffixMgr::cpdcase_check
  - AffixMgr::defcpd_check
  - AffixMgr::candidate_check
  - AffixMgr::get_syllable
  - AffixMgr::setcminmax
  - AffixMgr::compound_check
  - AffixMgr::compound_check_morph
  - AffixMgr::isRevSubset
  - AffixMgr::circumfix_ok
  - AffixMgr::trace_avoidflag
  - AffixMgr::suffix_applicable
  - AffixMgr::suffix_check
  - AffixMgr::suffix_check_twosfx
  - AffixMgr::suffix_check_twosfx_morph
  - AffixMgr::suffix_check_morph
  - AffixMgr::affix_check
  - AffixMgr::affix_check_morph
  - morphcmp
  - AffixMgr::morphgen
  - mystrdup
  - mystrdup
  - AffixMgr::expand_rootword
  - '& AffixMgr::get_reptable() const'
  - AffixMgr::get_iconvtable
  - AffixMgr::get_oconvtable
  - AffixMgr::get_phonetable
  - '& AffixMgr::get_maptable() const'
  - '& AffixMgr::get_breaktable() const'
  - '& AffixMgr::get_encoding()'
  - AffixMgr::get_langnum
  - AffixMgr::get_complexprefixes
  - AffixMgr::get_fullstrip
  - AffixMgr::get_keepcase
  - AffixMgr::get_forceucase
  - AffixMgr::get_warn
  - AffixMgr::get_forbidwarn
  - AffixMgr::get_checksharps
  - AffixMgr::encode_flag
  - AffixMgr::get_ignore
  - '& AffixMgr::get_ignore_utf16() const'
  - '& AffixMgr::get_key_string()'
  - '& AffixMgr::get_try_string() const'
  - '& AffixMgr::get_wordchars() const'
  - '& AffixMgr::get_wordchars_utf16() const'
  - AffixMgr::get_compound
  - AffixMgr::get_compoundflag
  - AffixMgr::get_forbiddenword
  - AffixMgr::get_nosuggest
  - AffixMgr::get_nongramsuggest
  - AffixMgr::get_substandard
  - AffixMgr::get_needaffix
  - AffixMgr::get_circumfix
  - AffixMgr::get_onlyincompound
  - '& AffixMgr::get_version() const'
  - AffixMgr::lookup
  - AffixMgr::have_contclass
  - AffixMgr::get_utf8
  - AffixMgr::get_maxngramsugs
  - AffixMgr::get_maxcpdsugs
  - AffixMgr::get_maxdiff
  - AffixMgr::get_onlymaxdiff
  - AffixMgr::get_nosplitsugs
  - AffixMgr::get_sugswithdots
  - AffixMgr::parse_flag
  - AffixMgr::parse_num
  - AffixMgr::parse_cpdsyllable
  - AffixMgr::parse_convtable
  - AffixMgr::parse_phonetable
  - AffixMgr::parse_checkcpdtable
  - AffixMgr::parse_defcpdtable
  - AffixMgr::parse_maptable
  - AffixMgr::parse_breaktable
  - AffixMgr::reverse_condition
  - entries_container::entries_container
  - entries_container::release
  - entries_container::initialize
  - entries_container::add_entry
  - entries_container::first_entry
  - ~entries_container()
  - entries_container::begin
  - entries_container::end
  - AffixMgr::parse_affix
  - AffixMgr::redundant_condition
  - AffixMgr::get_suffix_words
  source_file: /src/hunspell/src/hunspell/affixmgr.cxx
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: btpp
        type: signed short
      - name: btwp
        type: signed short
      - name: btnum
        type: int
      item_type: struct
      name: metachar_data
      pos:
        line_end: 1531
        line_start: 1527
        source_file: /src/hunspell/src/hunspell/affixmgr.cxx
    typedefs: []
    union: []
- function_names:
  - HashMgr::HashMgr
  - HashMgr::release_flags
  - HashMgr::free_table
  - HashMgr::~HashMgr()
  - HashMgr::lookup
  - HashMgr::add_word
  - HashMgr::add_hidden_capitalized_word
  - HashMgr::get_clen_and_captype
  - HashMgr::get_clen_and_captype
  - HashMgr::remove
  - HashMgr::remove_forbidden_flag
  - HashMgr::add
  - HashMgr::add_with_flags
  - HashMgr::add_with_affix
  - HashMgr::walk_hashtable
  - HashMgr::load_tables
  - HashMgr::hash
  - HashMgr::decode_flags
  - HashMgr::decode_flags
  - HashMgr::decode_flags
  - HashMgr::decode_flag
  - HashMgr::encode_flag
  - HashMgr::load_config
  - HashMgr::parse_aliasf
  - HashMgr::is_aliasf
  - HashMgr::get_aliasf
  - HashMgr::parse_aliasm
  - HashMgr::is_aliasm
  - HashMgr::get_aliasm
  - HashMgr::parse_reptable
  - '& HashMgr::get_reptable() const'
  - HashMgr::arena_alloc
  - HashMgr::arena_free
  source_file: /src/hunspell/src/hunspell/hashmgr.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HunspellImpl::HunspellImpl
  - '& operator=(const HunspellImpl&)'
  - HunspellImpl::active_trace
  - HunspellImpl::HunspellImpl
  - HunspellImpl::~HunspellImpl()
  - HunspellImpl::add_dic
  - HunspellImpl::clean_ignore
  - HunspellImpl::cleanword2
  - HunspellImpl::cleanword
  - HunspellImpl::mkallcap
  - HunspellImpl::mkallsmall2
  - HunspellImpl::sharps_u8_l1
  - HunspellImpl::spellsharps
  - HunspellImpl::is_keepcase
  - HunspellImpl::insert_sug
  - HunspellImpl::spell
  - HunspellImpl::spell_internal
  - HunspellImpl::checkword
  - HunspellImpl::suggest
  - HunspellImpl::suggest
  - HunspellImpl::suggest_internal
  - '& HunspellImpl::get_dict_encoding() const'
  - HunspellImpl::stem
  - HunspellImpl::stem
  - '& HunspellImpl::get_wordchars_cpp() const'
  - '& HunspellImpl::get_wordchars_utf16() const'
  - HunspellImpl::mkinitcap
  - HunspellImpl::mkinitcap2
  - HunspellImpl::mkinitsmall2
  - HunspellImpl::add
  - HunspellImpl::add_with_flags
  - HunspellImpl::add_with_affix
  - HunspellImpl::remove
  - '& HunspellImpl::get_version_cpp() const'
  - HunspellImpl::get_csconv
  - HunspellImpl::cat_result
  - HunspellImpl::analyze
  - HunspellImpl::analyze_internal
  - HunspellImpl::generate
  - HunspellImpl::generate
  - HunspellImpl::get_xml_par
  - HunspellImpl::get_langnum
  - HunspellImpl::input_conv
  - HunspellImpl::get_xml_pos
  - HunspellImpl::check_xml_par
  - HunspellImpl::get_xml_list
  - HunspellImpl::spellml
  - HunspellImpl::suffix_suggest
  - stringdup
  - munge_vector
  - stringdup
  - munge_vector
  - HunspellImpl::spell
  - HunspellImpl::suggest
  - HunspellImpl::suffix_suggest
  - HunspellImpl::free_list
  - HunspellImpl::get_dic_encoding
  - HunspellImpl::analyze
  - HunspellImpl::stem
  - HunspellImpl::stem
  - HunspellImpl::generate
  - HunspellImpl::generate
  - HunspellImpl::get_wordchars
  - HunspellImpl::get_version
  - HunspellImpl::set_trace_callback
  - HunspellImpl::input_conv
  - Hunspell::Hunspell
  - Hunspell::~Hunspell()
  - Hunspell::add_dic
  - Hunspell::spell
  - Hunspell::suggest
  - Hunspell::suffix_suggest
  - '& Hunspell::get_dict_encoding() const'
  - Hunspell::stem
  - Hunspell::stem
  - '& Hunspell::get_wordchars_cpp() const'
  - '& Hunspell::get_wordchars_utf16() const'
  - Hunspell::add
  - Hunspell::add_with_flags
  - Hunspell::add_with_affix
  - Hunspell::remove
  - '& Hunspell::get_version_cpp() const'
  - Hunspell::get_csconv
  - Hunspell::analyze
  - Hunspell::generate
  - Hunspell::generate
  - Hunspell::get_langnum
  - Hunspell::input_conv
  - Hunspell::spell
  - Hunspell::suggest
  - Hunspell::suffix_suggest
  - Hunspell::free_list
  - Hunspell::get_dic_encoding
  - Hunspell::analyze
  - Hunspell::stem
  - Hunspell::stem
  - Hunspell::generate
  - Hunspell::generate
  - Hunspell::get_wordchars
  - Hunspell::get_version
  - Hunspell::get_library_version
  - Hunspell::input_conv
  - Hunspell::set_trace_callback
  - Hunspell_create
  - Hunspell_create_key
  - Hunspell_destroy
  - Hunspell_add_dic
  - Hunspell_spell
  - Hunspell_get_dic_encoding
  - Hunspell_get_library_version
  - Hunspell_suggest
  - Hunspell_suffix_suggest
  - Hunspell_analyze
  - Hunspell_stem
  - Hunspell_stem2
  - Hunspell_generate
  - Hunspell_generate2
  - Hunspell_add
  - Hunspell_add_with_flags
  - Hunspell_add_with_affix
  - Hunspell_remove
  - Hunspell_free_list
  source_file: /src/hunspell/src/hunspell/hunspell.cxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXWORDUTF8LEN
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/hunspell/src/hunspell/hunspell.cxx
      type_or_value: (MAXWORDLEN * 3)
    - item_type: preproc_def
      name: MAXSPELLMLLEN
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/hunspell/src/hunspell/hunspell.cxx
      type_or_value: '8192'
    - item_type: preproc_def
      name: MAX_CANDIDATE_STACK_DEPTH
      pos:
        line_end: 1064
        line_start: 1063
        source_file: /src/hunspell/src/hunspell/hunspell.cxx
      type_or_value: '512'
    - item_type: preproc_def
      name: MAX_CANDIDATE_STACK_DEPTH
      pos:
        line_end: 1066
        line_start: 1065
        source_file: /src/hunspell/src/hunspell/hunspell.cxx
      type_or_value: '2048'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PfxEntry::PfxEntry
  - '& operator=(const PfxEntry&)'
  - PfxEntry::allowCross
  - PfxEntry::getFlag
  - PfxEntry::getKey
  - PfxEntry::getKeyLen
  - PfxEntry::getMorph
  - PfxEntry::getCont
  - PfxEntry::getContLen
  - PfxEntry::getNext
  - PfxEntry::getNextNE
  - PfxEntry::getNextEQ
  - PfxEntry::getFlgNxt
  - PfxEntry::setNext
  - PfxEntry::setNextNE
  - PfxEntry::setNextEQ
  - PfxEntry::setFlgNxt
  - SfxEntry::allowCross
  - SfxEntry::getFlag
  - SfxEntry::getKey
  - SfxEntry::getMorph
  - SfxEntry::getCont
  - SfxEntry::getContLen
  - SfxEntry::getAffix
  - SfxEntry::getKeyLen
  - SfxEntry::getNext
  - SfxEntry::getNextNE
  - SfxEntry::getNextEQ
  - SfxEntry::getLM
  - SfxEntry::getRM
  - SfxEntry::getEQM
  - SfxEntry::getFlgNxt
  - SfxEntry::setNext
  - SfxEntry::setNextNE
  - SfxEntry::setNextEQ
  - SfxEntry::setFlgNxt
  source_file: /src/hunspell/src/hunspell/affentry.hxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RepList::RepList
  - RepList::~RepList()
  - RepList::find
  - RepList::replace
  - RepList::add
  - RepList::conv
  - RepList::check_against_breaktable
  source_file: /src/hunspell/src/hunspell/replist.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Hunspell
  - Hunspell
  source_file: /src/hunspell/src/hunspell/hunspell.hxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPELL_XML
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/hunspell/src/hunspell/hunspell.hxx
      type_or_value: '"<?xml?>"'
    - item_type: preproc_def
      name: MAXSUGGESTION
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/hunspell/src/hunspell/hunspell.hxx
      type_or_value: '15'
    - item_type: preproc_def
      name: MAXSHARPS
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/hunspell/src/hunspell/hunspell.hxx
      type_or_value: '5'
    - item_type: preproc_def
      name: MAXBREAKDEPTH
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/hunspell/src/hunspell/hunspell.hxx
      type_or_value: '10'
    - item_type: preproc_def
      name: MAXWORDLEN
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/hunspell/src/hunspell/hunspell.hxx
      type_or_value: '100'
    - item_type: preproc_def
      name: H_DEPRECATED
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/hunspell/src/hunspell/hunspell.hxx
      type_or_value: __attribute__((__deprecated__))
    - item_type: preproc_def
      name: H_DEPRECATED
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/hunspell/src/hunspell/hunspell.hxx
      type_or_value: __declspec(deprecated)
    structs: []
    typedefs:
    - item_type: typedef
      name: (*HunspellTraceCallback)(void* userdata, int depth, const char* line)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/hunspell/src/hunspell/hunspell.hxx
      type: void
    union: []
- function_names: []
  source_file: /src/hunspell/src/hunspell/utf_info.hxx
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: cletter
        type: bool
      - name: cupper
        type: unsigned short
      - name: clower
        type: unsigned short
      item_type: struct
      name: unicode_info
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/hunspell/src/hunspell/utf_info.hxx
    typedefs: []
    union: []
- function_names: []
  source_file: /src/hunspell/src/hunspell/phonet.hxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASHSIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/hunspell/src/hunspell/phonet.hxx
      type_or_value: '256'
    - item_type: preproc_def
      name: MAXPHONETLEN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/hunspell/src/hunspell/phonet.hxx
      type_or_value: '256'
    - item_type: preproc_def
      name: MAXPHONETUTF8LEN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/hunspell/src/hunspell/phonet.hxx
      type_or_value: (MAXPHONETLEN * 4)
    structs:
    - fields:
      - name: utf8
        type: char
      - name: rules
        type: std::vector<std::string>
      - name: hash[HASHSIZE]
        type: int
      item_type: struct
      name: phonetable
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/hunspell/src/hunspell/phonet.hxx
    typedefs: []
    union: []
- function_names:
  - Trie::advance_or_create
  - Trie::Trie
  - Trie::add
  - Trie::transcode
  - Trie::get_status
  - RepList::RepList
  - '& operator=(const RepList&)'
  source_file: /src/hunspell/src/hunspell/replist.hxx
  types:
    enum:
    - enumerators:
      - name: None
      - name: Partial
      - name: All
      item_type: enum
      name: TranscodeResult
      pos:
        line_end: 89
        line_start: 85
        source_file: /src/hunspell/src/hunspell/replist.hxx
    preproc_defs: []
    structs:
    - fields:
      - name: ALPHABET_SIZE
        type: size_t
      - name: children[ALPHABET_SIZE]
        type: IndexType
      item_type: struct
      name: Node
      pos:
        line_end: 111
        line_start: 103
        source_file: /src/hunspell/src/hunspell/replist.hxx
    typedefs: []
    union: []
- function_names:
  - is_utf8_cont
  - utf8_next
  - has_no_ignored_chars
  - HENTRY_DATA
  - HENTRY_DATA
  - HENTRY_DATA2
  - HENTRY_FIND
  source_file: /src/hunspell/src/hunspell/csutil.hxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NOCAP
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '0'
    - item_type: preproc_def
      name: INITCAP
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '1'
    - item_type: preproc_def
      name: ALLCAP
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '2'
    - item_type: preproc_def
      name: HUHCAP
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '3'
    - item_type: preproc_def
      name: HUHINITCAP
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '4'
    - item_type: preproc_def
      name: SPELL_ENCODING
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"ISO8859-1"'
    - item_type: preproc_def
      name: SPELL_KEYSTRING
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"qwertyuiop|asdfghjkl|zxcvbnm"'
    - item_type: preproc_def
      name: MORPH_STEM
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"st:"'
    - item_type: preproc_def
      name: MORPH_ALLOMORPH
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"al:"'
    - item_type: preproc_def
      name: MORPH_POS
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"po:"'
    - item_type: preproc_def
      name: MORPH_DERI_PFX
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"dp:"'
    - item_type: preproc_def
      name: MORPH_INFL_PFX
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"ip:"'
    - item_type: preproc_def
      name: MORPH_TERM_PFX
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"tp:"'
    - item_type: preproc_def
      name: MORPH_DERI_SFX
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"ds:"'
    - item_type: preproc_def
      name: MORPH_INFL_SFX
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"is:"'
    - item_type: preproc_def
      name: MORPH_TERM_SFX
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"ts:"'
    - item_type: preproc_def
      name: MORPH_SURF_PFX
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"sp:"'
    - item_type: preproc_def
      name: MORPH_FREQ
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"fr:"'
    - item_type: preproc_def
      name: MORPH_PHON
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"ph:"'
    - item_type: preproc_def
      name: MORPH_HYPH
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"hy:"'
    - item_type: preproc_def
      name: MORPH_PART
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"pa:"'
    - item_type: preproc_def
      name: MORPH_FLAG
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"fl:"'
    - item_type: preproc_def
      name: MORPH_HENTRY
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '"_H:"'
    - item_type: preproc_def
      name: MORPH_TAG_LEN
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: strlen(MORPH_STEM)
    - item_type: preproc_def
      name: MSEP_FLD
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: ''' '''
    - item_type: preproc_def
      name: MSEP_REC
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '''\n'''
    - item_type: preproc_def
      name: MSEP_ALT
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '''\v'''
    - item_type: preproc_def
      name: DEFAULTFLAGS
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '65510'
    - item_type: preproc_def
      name: FORBIDDENWORD
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '65510'
    - item_type: preproc_def
      name: ONLYUPCASEFLAG
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/hunspell/src/hunspell/csutil.hxx
      type_or_value: '65511'
    structs:
    - fields:
      - name: ccase
        type: unsigned char
      - name: clower
        type: unsigned char
      - name: cupper
        type: unsigned char
      item_type: struct
      name: cs_info
      pos:
        line_end: 195
        line_start: 191
        source_file: /src/hunspell/src/hunspell/csutil.hxx
    typedefs: []
    union: []
- function_names:
  - FileMgr::fail
  - FileMgr::FileMgr
  - FileMgr::~FileMgr()
  - FileMgr::getline
  - FileMgr::getlinenum
  source_file: /src/hunspell/src/hunspell/filemgr.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_phonet_hash
  - strmove
  - myisalpha
  - phonet
  source_file: /src/hunspell/src/hunspell/phonet.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/hunspell/src/hunspell/affixmgr.hxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: dupSFX
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/hunspell/src/hunspell/affixmgr.hxx
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: dupPFX
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/hunspell/src/hunspell/affixmgr.hxx
      type_or_value: (1 << 1)
    structs:
    - fields:
      - name: pfx_check_word
        type: std::string
      - name: pfx_check_twosfx
        type: std::string
      - name: sfx_check_word
        type: std::string
      - name: sfx_check_twosfx
        type: std::string
      - name: '* trace'
        type: TraceCtx
      item_type: struct
      name: AffixScratch
      pos:
        line_end: 109
        line_start: 100
        source_file: /src/hunspell/src/hunspell/affixmgr.hxx
    typedefs: []
    union: []
- function_names: []
  source_file: /src/hunspell/src/hunspell/langnum.hxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/hunspell/src/hunspell/hashmgr.hxx
  types:
    enum:
    - enumerators:
      - name: FLAG_CHAR
      - name: FLAG_LONG
      - name: FLAG_NUM
      - name: FLAG_UNI
      item_type: enum
      name: flag
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/hunspell/src/hunspell/hashmgr.hxx
    preproc_defs:
    - item_type: preproc_def
      name: MORPH_PHON_RATIO
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/hunspell/src/hunspell/hashmgr.hxx
      type_or_value: '500'
    structs: []
    typedefs: []
    union: []
- function_names:
  - HUNSPELL_WARNING
  - FREE_FLAG
  - TESTAFF
  - guessword
  - patentry
  source_file: /src/hunspell/src/hunspell/atypes.hxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HUNSPELL_WARNING
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: fprintf
    - item_type: preproc_def
      name: SETSIZE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: '256'
    - item_type: preproc_def
      name: CONTSIZE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: '65536'
    - item_type: preproc_def
      name: aeXPRODUCT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: aeUTF8
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: aeALIASF
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: aeALIASM
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: aeLONGCOND
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: aeREDUNDANTCOND
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: IN_CPD_NOT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: '0'
    - item_type: preproc_def
      name: IN_CPD_BEGIN
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: '1'
    - item_type: preproc_def
      name: IN_CPD_END
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: '2'
    - item_type: preproc_def
      name: IN_CPD_OTHER
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: '3'
    - item_type: preproc_def
      name: SPELL_COMPOUND
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: (1 << 0)    // the result is a compound word
    - item_type: preproc_def
      name: SPELL_FORBIDDEN
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: SPELL_ALLCAP
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: SPELL_NOCAP
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: SPELL_INITCAP
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: SPELL_ORIGCAP
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: SPELL_WARN
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: SPELL_COMPOUND_2
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: (1 << 7)  // permit only 2 dictionary words in the compound
    - item_type: preproc_def
      name: SPELL_BEST_SUG
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: '(1 << 8)    // limit suggestions for the best ones, i.e. ph:'
    - item_type: preproc_def
      name: MINCPDLEN
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: '3'
    - item_type: preproc_def
      name: MAXCOMPOUND
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: '10'
    - item_type: preproc_def
      name: MAXCONDLEN
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: '20'
    - item_type: preproc_def
      name: MAXCONDLEN_1
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: (MAXCONDLEN - sizeof(char*))
    - item_type: preproc_def
      name: MAXACC
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: '1000'
    - item_type: preproc_def
      name: FLAG
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: unsigned short
    - item_type: preproc_def
      name: FLAG_NULL
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: '0x00'
    - item_type: preproc_def
      name: TIMELIMIT_GLOBAL_MS
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: std::chrono::milliseconds(250)
    - item_type: preproc_def
      name: TIMELIMIT_SUGGESTION_MS
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: std::chrono::milliseconds(100)
    - item_type: preproc_def
      name: TIMELIMIT_MS
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: std::chrono::milliseconds(50)
    - item_type: preproc_def
      name: MINTIMER
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: '100'
    - item_type: preproc_def
      name: MAXPLUSTIMER
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: '100'
    - item_type: preproc_def
      name: MAXMORPHRESULT
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/hunspell/src/hunspell/atypes.hxx
      type_or_value: (4 * 1024 * 1024)
    structs:
    - fields:
      - name: '* word'
        type: char
      - name: allow
        type: bool
      - name: '* orig'
        type: char
      item_type: struct
      name: guessword
      pos:
        line_end: 125
        line_start: 115
        source_file: /src/hunspell/src/hunspell/atypes.hxx
    - fields:
      - name: pattern
        type: std::string
      - name: pattern2
        type: std::string
      - name: pattern3
        type: std::string
      - name: cond
        type: FLAG
      - name: cond2
        type: FLAG
      item_type: struct
      name: patentry
      pos:
        line_end: 140
        line_start: 130
        source_file: /src/hunspell/src/hunspell/atypes.hxx
    typedefs: []
    union: []
- function_names:
  - SuggestMgr::SuggestMgr
  - SuggestMgr::~SuggestMgr()
  - SuggestMgr::testsug
  - SuggestMgr::suggest
  - SuggestMgr::capchars_utf
  - SuggestMgr::capchars
  - SuggestMgr::mapchars
  - SuggestMgr::map_related
  - SuggestMgr::replchars
  - SuggestMgr::doubletwochars
  - SuggestMgr::doubletwochars_utf
  - SuggestMgr::badcharkey
  - SuggestMgr::badcharkey_utf
  - SuggestMgr::badchar
  - SuggestMgr::badchar_utf
  - SuggestMgr::extrachar_utf
  - SuggestMgr::extrachar
  - SuggestMgr::forgotchar
  - SuggestMgr::forgotchar_utf
  - SuggestMgr::twowords
  - SuggestMgr::swapchar
  - SuggestMgr::swapchar_utf
  - SuggestMgr::longswapchar
  - SuggestMgr::longswapchar_utf
  - SuggestMgr::movechar
  - SuggestMgr::movechar_utf
  - ngsuggest_guard::ngsuggest_guard
  - ~ngsuggest_guard()
  - ngsuggest_guard::ngsuggest_guard
  - ~ngsuggest_guard()
  - SuggestMgr::ngsuggest
  - SuggestMgr::checkword
  - SuggestMgr::check_forbidden
  - SuggestMgr::suggest_morph
  - get_sfxcount
  - SuggestMgr::suggest_hentry_gen
  - SuggestMgr::suggest_gen
  - SuggestMgr::ngram
  - SuggestMgr::ngram
  - SuggestMgr::leftcommonsubstring
  - SuggestMgr::leftcommonsubstring
  - SuggestMgr::commoncharacterpositions
  - SuggestMgr::mystrlen
  - SuggestMgr::bubblesort
  - SuggestMgr::lcs
  - SuggestMgr::lcslen
  - SuggestMgr::lcslen
  source_file: /src/hunspell/src/hunspell/suggestmgr.cxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_CHAR_DISTANCE
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/hunspell/src/hunspell/suggestmgr.cxx
      type_or_value: '4'
    - item_type: preproc_def
      name: MAXWORDUTF8LEN
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/hunspell/src/hunspell/suggestmgr.cxx
      type_or_value: (MAXWORDLEN * 3)
    structs: []
    typedefs: []
    union: []
- function_names:
  - AffEntry::~AffEntry()
  - AffEntry::get_condition
  - PfxEntry::PfxEntry
  - PfxEntry::add
  - PfxEntry::nextchar
  - PfxEntry::test_condition
  - PfxEntry::applies_to
  - PfxEntry::checkword
  - PfxEntry::check_twosfx
  - PfxEntry::check_twosfx_morph
  - PfxEntry::check_morph
  - SfxEntry::SfxEntry
  - SfxEntry::get_condition
  - SfxEntry::add
  - SfxEntry::nextchar
  - SfxEntry::test_condition
  - SfxEntry::applies_to
  - SfxEntry::checkword
  - SfxEntry::check_twosfx
  - SfxEntry::check_twosfx_morph
  - SfxEntry::get_next_homonym
  - SfxEntry::initReverseWord
  source_file: /src/hunspell/src/hunspell/affentry.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - myopen
  - u16_u8
  - warn_missing_cont
  - u8_u16
  - is_any_of::is_any_of
  - operator()(char c) const
  - is_any_of::is_any_of
  - operator()(char c) const
  - mystrsep
  - mychomp
  - line_tok
  - drop_repeated_lines
  - line_uniq
  - line_uniq_app
  - strlinecat
  - fieldlen
  - append_compound_parts
  - copy_field
  - mystrrep
  - reverseword
  - reverseword_utf
  - uniqlist
  - cupper
  - clower
  - ccase
  - cupper
  - clower
  - ccase
  - upper_utf
  - lower_utf
  - mkallcap
  - mkallsmall
  - mkallsmall_utf
  - mkallcap_utf
  - mkinitcap
  - mkinitcap_utf
  - mkinitsmall
  - mkinitsmall_utf
  - store_pointer
  - get_stored_pointer
  - toAsciiLowerAndRemoveNonAlphanumeric
  - get_current_cs
  - get_current_cs
  - get_casechars
  - get_lang_num
  - unicodetoupper
  - unicodetolower
  - unicodeisalpha
  - get_captype
  - get_captype_utf8
  - remove_ignored_chars_utf
  - remove_ignored_chars
  - parse_string
  - parse_array
  source_file: /src/hunspell/src/hunspell/csutil.cxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WIN32_LONG_PATH_PREFIX
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/hunspell/src/hunspell/csutil.cxx
      type_or_value: '"\\\\?\\"'
    structs:
    - fields:
      - name: '* enc_name'
        type: char
      - name: '* cs_table'
        type: struct cs_info
      item_type: struct
      name: enc_entry
      pos:
        line_end: 2243
        line_start: 2240
        source_file: /src/hunspell/src/hunspell/csutil.cxx
    - fields:
      - name: '* lang'
        type: char
      - name: num
        type: int
      item_type: struct
      name: lang_map
      pos:
        line_end: 2424
        line_start: 2421
        source_file: /src/hunspell/src/hunspell/csutil.cxx
    typedefs: []
    union: []
- function_names:
  - trace
  - trace_flag
  - trace_flags
  - trace_affix
  - trace_test
  - trace_circumfix
  - trace_form
  source_file: /src/hunspell/src/hunspell/hunspelltrace.cxx
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HUNSPELL_VERSION_CHECK
  source_file: /src/hunspell/src/hunspell/hunversion.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HUNSPELL_VERSION_MAJOR
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/hunspell/src/hunspell/hunversion.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HUNSPELL_VERSION_MINOR
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/hunspell/src/hunspell/hunversion.h
      type_or_value: '7'
    - item_type: preproc_def
      name: HUNSPELL_VERSION_PATCH
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/hunspell/src/hunspell/hunversion.h
      type_or_value: '3'
    - item_type: preproc_def
      name: HUNSPELL_VERSION_STRING
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/hunspell/src/hunspell/hunversion.h
      type_or_value: '"1.7.3"'
    - item_type: preproc_def
      name: HUNSPELL_VERSION
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/hunspell/src/hunspell/hunversion.h
      type_or_value: "((HUNSPELL_VERSION_MAJOR << 16) | (HUNSPELL_VERSION_MINOR <<
        8) |       \\\n   HUNSPELL_VERSION_PATCH)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - ROTATE
  - HENTRY_WORD
  source_file: /src/hunspell/src/hunspell/htypes.hxx
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ROTATE_LEN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/hunspell/src/hunspell/htypes.hxx
      type_or_value: '5'
    - item_type: preproc_def
      name: H_OPT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/hunspell/src/hunspell/htypes.hxx
      type_or_value: (1 << 0)          // is there optional morphological data?
    - item_type: preproc_def
      name: H_OPT_ALIASM
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/hunspell/src/hunspell/htypes.hxx
      type_or_value: (1 << 1)   // using alias compression?
    - item_type: preproc_def
      name: H_OPT_PHON
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/hunspell/src/hunspell/htypes.hxx
      type_or_value: '(1 << 2)     // is there ph: field in the morphological data?'
    - item_type: preproc_def
      name: H_OPT_INITCAP
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/hunspell/src/hunspell/htypes.hxx
      type_or_value: (1 << 3)  // is dictionary word capitalized?
    - item_type: preproc_def
      name: H_OPT_OWNFLAGS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/hunspell/src/hunspell/htypes.hxx
      type_or_value: (1 << 4) // astr is independently allocated?
    - item_type: preproc_def
      name: USERWORD
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/hunspell/src/hunspell/htypes.hxx
      type_or_value: '1000'
    - item_type: preproc_def
      name: HUNSPELL_THREAD_LOCAL
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/hunspell/src/hunspell/htypes.hxx
      type_or_value: thread_local
    - item_type: preproc_def
      name: HUNSPELL_THREAD_LOCAL
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/hunspell/src/hunspell/htypes.hxx
      type_or_value: static
    structs:
    - fields:
      - name: '* astr'
        type: unsigned short
      - name: '* next'
        type: struct hentry
      - name: '* next_homonym'
        type: struct hentry
      - name: blen
        type: unsigned short
      - name: clen
        type: unsigned short
      - name: alen
        type: short
      - name: var
        type: char
      - name: word[1]
        type: char
      item_type: struct
      name: hentry
      pos:
        line_end: 78
        line_start: 69
        source_file: /src/hunspell/src/hunspell/htypes.hxx
    typedefs: []
    union: []
- function_names: []
  source_file: /src/hunspell/msvc/config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CRAY_STACKSEG_END
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: C_ALLOCA
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_ALLOCA
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_ALLOCA_H
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_ARGZ_H
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_DCGETTEXT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_DLFCN_H
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_ERROR_H
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_FCNTL_H
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_FEOF_UNLOCKED
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_FGETS_UNLOCKED
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETCWD
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETC_UNLOCKED
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETEGID
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETEUID
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETGID
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETPAGESIZE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETTEXT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETUID
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_INTTYPES_H
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LANGINFO_CODESET
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LC_MESSAGES
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LIBINTL_H
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LIMITS_H
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LOCALE_H
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_MEMCHR
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_MEMORY_H
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_MEMPCPY
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_MMAP
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_MUNMAP
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_NCURSESW_H
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_NL_TYPES_H
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_PUTENV
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SETENV
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SETLOCALE
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STDDEF_H
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STDINT_H
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STDLIB_H
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STPCPY
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRCASECMP
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRCHR
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRDUP
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRINGS_H
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRING_H
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRSTR
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRTOUL
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_PARAM_H
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_STAT_H
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_TYPES_H
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_TSEARCH
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_UNISTD_H
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE___ARGZ_COUNT
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE___ARGZ_NEXT
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE___ARGZ_STRINGIFY
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ICONV_CONST
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PACKAGE_VERSION
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '"1.7.3"'
    - item_type: preproc_def
      name: VERSION
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/hunspell/msvc/config.h
      type_or_value: '"1.7.3"'
    structs: []
    typedefs: []
    union: []
