X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/6255b435119f729b0a7d27d581b75b9e71a0b89c..4196b9316cdb172ba10d118067f9befb993e6c0a:/src/closure.h diff --git a/src/closure.h b/src/closure.h index 887f3da8..8cc4feb2 100644 --- a/src/closure.h +++ b/src/closure.h @@ -1,5 +1,7 @@ /* Subroutines for bison - Copyright 1984, 1989, 2000, 2001 Free Software Foundation, Inc. + + Copyright (C) 1984, 1989, 2000, 2001, 2002 Free Software + Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -21,36 +23,37 @@ #ifndef CLOSURE_H_ # define CLOSURE_H_ -/* Subroutines of file LR0.c. */ +# include "gram.h" /* Allocates the itemset and ruleset vectors, and precomputes useful data so that closure can be called. n is the number of elements to allocate for itemset. */ -void new_closure PARAMS ((int n)); +void new_closure (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 + 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 + (actually, 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)); +void closure (item_number *items, int n); -/* Frees itemset, ruleset and internal data. */ +/* Frees ITEMSET, RULESET and internal data. */ -void free_closure PARAMS ((void)); +void free_closure (void); -extern short *itemset; -extern int itemsetsize; +extern item_number *itemset; +extern int nritemset; #endif /* !CLOSURE_H_ */