-/* $Id: lookgrep.c,v 1.25 2002-08-02 19:26:55 adam Exp $
- Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
- Index Data Aps
+/* $Id: lookgrep.c,v 1.30 2005-11-01 10:16:08 adam Exp $
+ Copyright (C) 1995-2005
+ Index Data ApS
This file is part of the Zebra server.
#include <assert.h>
#include <dfa.h>
-#include <dict.h>
+#include "dict-p.h"
typedef unsigned MatchWord;
#define WORD_BITS 32
#define MAX_LENGTH 1024
+/* This code is based
+ * Sun Wu and Udi Manber: Fast Text Searching Allowing Errors.
+ * Communications of the ACM, pp. 83-91, Vol. 35, No. 10, Oct. 1992, USA.
+ * PostScript version of the paper in its submitted form: agrep1.ps)
+ * recommended reading to understand AGREP !
+ *
+ * http://www.tgries.de/agrep/#AGREP1PS
+ * http://www.tgries.de/agrep/doc/agrep1ps.zip
+ */
+
typedef struct {
int n; /* no of MatchWord needed */
int range; /* max no. of errors */
dfa_verbose = 1;
#endif
- logf (LOG_DEBUG, "dict_lookup_grep range=%d", range);
+ yaz_log (YLOG_DEBUG, "dict_lookup_grep range=%d", range);
for (i = 0; pattern[i]; i++)
{
- logf (LOG_DEBUG, " %3d %c", pattern[i],
+ yaz_log (YLOG_DEBUG, " %3d %c", pattern[i],
(pattern[i] > ' ' && pattern[i] < 127) ? pattern[i] : '?');
}
i = dfa_parse (dfa, &this_pattern);
if (i || *this_pattern)
{
+ yaz_log (YLOG_WARN, "dfa_parse fail=%d", i);
dfa_delete (&dfa);
return -1;
}
dfa, max_pos, init_pos);
else
i = 0;
- logf (LOG_DEBUG, "max_pos = %d", *max_pos);
+ yaz_log (YLOG_DEBUG, "max_pos = %d", *max_pos);
dfa_delete (&dfa);
xfree (Rj);
rm_MatchContext (&mc);