Mercurial > hg > CbC > CbC_gcc
comparison gcc/spellcheck-tree.h @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
comparison
equal
deleted
inserted
replaced
111:04ced10e8804 | 131:84e7813d76e9 |
---|---|
1 /* Find near-matches for identifiers. | 1 /* Find near-matches for identifiers. |
2 Copyright (C) 2015-2017 Free Software Foundation, Inc. | 2 Copyright (C) 2015-2018 Free Software Foundation, Inc. |
3 | 3 |
4 This file is part of GCC. | 4 This file is part of GCC. |
5 | 5 |
6 GCC is free software; you can redistribute it and/or modify it under | 6 GCC is free software; you can redistribute it and/or modify it under |
7 the terms of the GNU General Public License as published by the Free | 7 the terms of the GNU General Public License as published by the Free |
23 #include "spellcheck.h" | 23 #include "spellcheck.h" |
24 | 24 |
25 /* spellcheck-tree.c */ | 25 /* spellcheck-tree.c */ |
26 | 26 |
27 extern edit_distance_t | 27 extern edit_distance_t |
28 levenshtein_distance (tree ident_s, tree ident_t); | 28 get_edit_distance (tree ident_s, tree ident_t); |
29 | 29 |
30 extern tree | 30 extern tree |
31 find_closest_identifier (tree target, const auto_vec<tree> *candidates); | 31 find_closest_identifier (tree target, const auto_vec<tree> *candidates); |
32 | 32 |
33 /* Specialization of edit_distance_traits for identifiers. */ | 33 /* Specialization of edit_distance_traits for identifiers. */ |
46 gcc_assert (TREE_CODE (id) == IDENTIFIER_NODE); | 46 gcc_assert (TREE_CODE (id) == IDENTIFIER_NODE); |
47 return IDENTIFIER_POINTER (id); | 47 return IDENTIFIER_POINTER (id); |
48 } | 48 } |
49 }; | 49 }; |
50 | 50 |
51 /* Specialization of edit_distance_traits for preprocessor macros. */ | |
52 | |
53 template <> | |
54 struct edit_distance_traits<cpp_hashnode *> | |
55 { | |
56 static size_t get_length (cpp_hashnode *hashnode) | |
57 { | |
58 return hashnode->ident.len; | |
59 } | |
60 | |
61 static const char *get_string (cpp_hashnode *hashnode) | |
62 { | |
63 return (const char *)hashnode->ident.str; | |
64 } | |
65 }; | |
66 | |
67 /* Specialization of best_match<> for finding the closest preprocessor | |
68 macro to a given identifier. */ | |
69 | |
70 class best_macro_match : public best_match<tree, cpp_hashnode *> | |
71 { | |
72 public: | |
73 best_macro_match (tree goal, edit_distance_t best_distance_so_far, | |
74 cpp_reader *reader); | |
75 }; | |
76 | |
77 #endif /* GCC_SPELLCHECK_TREE_H */ | 51 #endif /* GCC_SPELLCHECK_TREE_H */ |