Implement Levenshtein distance; use in C FE for misspelled field names
commitb67f0560e08d5ded89de2a4bd3376ea514fea3a4
authordmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Nov 2015 01:54:41 +0000 (13 01:54 +0000)
committerdmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Nov 2015 01:54:41 +0000 (13 01:54 +0000)
tree574b1272f86df52172c56c614532ff5032b6f73d
parent3ece4eda275f7b6f366843dd81e7b26ceb8fe3a2
Implement Levenshtein distance; use in C FE for misspelled field names

This is the combination of:
  [PATCH 1/2] Implement Levenshtein distance
  [PATCH 2/2] C FE: suggest corrections for misspelled field names
plus some nit fixes in spellcheck.c.

gcc/ChangeLog:
* Makefile.in (OBJS): Add spellcheck.o.
* spellcheck.c: New file.
* spellcheck.h: New file.

gcc/c/ChangeLog:
* c-typeck.c: Include spellcheck.h.
(lookup_field_fuzzy_find_candidates): New function.
(lookup_field_fuzzy): New function.
(build_component_ref): If the field was not found, try using
lookup_field_fuzzy and potentially offer a suggestion.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/levenshtein-test-1.c: New file.
* gcc.dg/plugin/levenshtein_plugin.c: New file.
* gcc.dg/plugin/plugin.exp (plugin_test_list): Add
levenshtein_plugin.c.
* gcc.dg/spellcheck-fields.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230284 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/Makefile.in
gcc/c/ChangeLog
gcc/c/c-typeck.c
gcc/spellcheck.c [new file with mode: 0644]
gcc/spellcheck.h [new file with mode: 0644]
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/plugin/levenshtein-test-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/plugin/levenshtein_plugin.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/plugin/plugin.exp
gcc/testsuite/gcc.dg/spellcheck-fields.c [new file with mode: 0644]