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 */