(root)/
bison-3.8.2/
src/
ielr.h
       1  /* IELR main implementation.
       2  
       3     Copyright (C) 2009-2015, 2018-2021 Free Software Foundation, Inc.
       4  
       5     This file is part of Bison, the GNU Compiler Compiler.
       6  
       7     This program is free software: you can redistribute it and/or modify
       8     it under the terms of the GNU General Public License as published by
       9     the Free Software Foundation, either version 3 of the License, or
      10     (at your option) any later version.
      11  
      12     This program is distributed in the hope that it will be useful,
      13     but WITHOUT ANY WARRANTY; without even the implied warranty of
      14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      15     GNU General Public License for more details.
      16  
      17     You should have received a copy of the GNU General Public License
      18     along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      19  
      20  #ifndef IELR_H_
      21  # define IELR_H_
      22  
      23  # include <bitset.h>
      24  
      25  # include "state.h"
      26  
      27  /**
      28   * \pre
      29   *   - \c ::states is of size \c ::nstates and defines an LR(0) parser
      30   *     for the users's grammar.
      31   *   - \c ::ntokens is the number of tokens in the grammar.
      32   * \post
      33   *   - \c ::states is of size \c ::nstates (which might be greater than
      34   *     <tt>::nstates \@pre</tt>) and defines the type of parser specified by
      35   *     the value of the \c \%define variable \c lr.type.  Its value can be:
      36   *     - \c "lalr".
      37   *     - \c "ielr".
      38   *     - \c "canonical-lr".
      39   */
      40  void ielr (void);
      41  
      42  bool ielr_item_has_lookahead (state *s, symbol_number lhs, size_t item,
      43                                symbol_number lookahead, state ***predecessors,
      44                                bitset **item_lookahead_sets);
      45  
      46  #endif /* !IELR_H_ */