X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/c29240e74b6f81a3bc37a3b0e718479b2e7f16c3..75142d452b7f6bc3b6be3d8a08c0f602fd157ec5:/src/closure.h diff --git a/src/closure.h b/src/closure.h index 2325e7c4..fdf4cc5e 100644 --- a/src/closure.h +++ b/src/closure.h @@ -1,5 +1,5 @@ /* Subroutines for bison - Copyright (C) 1984, 1989, 2000 Free Software Foundation, Inc. + Copyright 1984, 1989, 2000, 2001 Free Software Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -18,6 +18,8 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifndef CLOSURE_H_ +# define CLOSURE_H_ /* Subroutines of file LR0.c. */ @@ -28,18 +30,19 @@ void new_closure PARAMS ((int n)); -/* Given a vector of item numbers ITEMS, of length N, set up ruleset - and itemset to indicate what rules could be run and which items - could be accepted when those items are the active ones. +/* Given the kernel (aka core) of a state (a vector of item numbers + ITEMS, of length N), set up ruleset and itemset to indicate what + rules could be run and which items could be accepted when those + items are the active ones. ruleset contains a bit for each rule. closure sets the bits for all rules which could potentially describe the next input to be read. - itemset is a vector of item numbers; itemsetend points to just - beyond the end of the part of it that is significant. closure - places there the indices of all items which represent units of - input that could arrive next. */ + ITEMSET is a vector of item numbers; NITEMSET is its size + 9actually, points to just beyond the end of the part of it that is + significant). closure places there the indices of all items which + represent units of input that could arrive next. */ void closure PARAMS ((short *items, int n)); @@ -47,3 +50,8 @@ void closure PARAMS ((short *items, int n)); /* Frees itemset, ruleset and internal data. */ void free_closure PARAMS ((void)); + +extern short *itemset; +extern int nitemset; + +#endif /* !CLOSURE_H_ */