X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=dfa%2Fstates.c;h=17b6fa340a8567d14fb21effd0b2478508cc7c8c;hp=5af1da69136c5e557c4df86d6c0d8a8035ac25ba;hb=e2e073b5c947e996304ed7d577497af5e9a879ee;hpb=b879b04a092d5b00cc866cf16f755e55053d2e89 diff --git a/dfa/states.c b/dfa/states.c index 5af1da6..17b6fa3 100644 --- a/dfa/states.c +++ b/dfa/states.c @@ -1,44 +1,44 @@ -/* - * Copyright (C) 1994, Index Data I/S - * All rights reserved. - * Sebastian Hammer, Adam Dickmeiss - * - * $Log: states.c,v $ - * Revision 1.4 1995-09-04 12:33:28 adam - * Various cleanup. YAZ util used instead. - * - * Revision 1.3 1995/01/25 11:30:51 adam - * Simple error reporting when parsing regular expressions. - * Memory usage reduced. - * - * Revision 1.2 1995/01/24 16:00:23 adam - * Added -ansi to CFLAGS. - * Some changes to the dfa module. - * - * Revision 1.1 1994/09/26 10:16:58 adam - * First version of dfa module in alex. This version uses yacc to parse - * regular expressions. This should be hand-made instead. - * - */ +/* This file is part of the Zebra server. + Copyright (C) Index Data + +Zebra is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Zebra is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +*/ + + +#if HAVE_CONFIG_H +#include +#endif #include #include #include #include -#include #include "dfap.h" #include "imalloc.h" #define DFA_CHUNK 40 #define TRAN_CHUNK 100 -int init_DFA_states (struct DFA_states **dfasp, SetType st, int hash) +int init_DFA_states (struct DFA_states **dfasp, DFASetType st, int hash) { struct DFA_states *dfas; struct DFA_trans *tm; int i; - + dfas = (struct DFA_states *) imalloc (sizeof(struct DFA_states)); assert (dfas); dfas->hasharray = (struct DFA_state **) @@ -95,7 +95,7 @@ int rm_DFA_states (struct DFA_states **dfasp) return 0; } -int add_DFA_state (struct DFA_states *dfas, Set *s, struct DFA_state **sp) +int add_DFA_state (struct DFA_states *dfas, DFASet *s, struct DFA_state **sp) { int i; struct DFA_state *si, **sip; @@ -104,12 +104,12 @@ int add_DFA_state (struct DFA_states *dfas, Set *s, struct DFA_state **sp) assert (dfas); assert (*s); assert (dfas->hasharray); - sip = dfas->hasharray + (hash_Set (dfas->st, *s) % dfas->hash); + sip = dfas->hasharray + (hash_DFASet (dfas->st, *s) % dfas->hash); for (si = *sip; si; si=si->link) - if (eq_Set (dfas->st, si->set, *s)) + if (eq_DFASet (dfas->st, si->set, *s)) { *sp = si; - *s = rm_Set (dfas->st, *s); + *s = rm_DFASet (dfas->st, *s); return 0; } if (!dfas->freelist) @@ -117,7 +117,7 @@ int add_DFA_state (struct DFA_states *dfas, Set *s, struct DFA_state **sp) sb = (DFA_stateb *) imalloc (sizeof(*sb)); sb->next = dfas->statemem; dfas->statemem = sb; - sb->state_block = si = dfas->freelist = + sb->state_block = si = dfas->freelist = (struct DFA_state *) imalloc (sizeof(struct DFA_state)*DFA_CHUNK); for (i = 0; inext = si+1; @@ -196,3 +196,12 @@ void sort_DFA_states (struct DFA_states *dfas) ifree (dfas->hasharray); dfas->hasharray = NULL; } +/* + * Local variables: + * c-basic-offset: 4 + * c-file-style: "Stroustrup" + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +