--  generated parser support file. -*- buffer-read-only:t  -*-
--  command line: wisitoken-bnf-generate.exe  --generate LALR Ada re2c wisitoken_grammar.wy
--

--  Copyright (C) 2017 - 2023 Free Software Foundation, Inc.
--
--  Author: Stephen Leake <stephe-leake@stephe-leake.org>
--
--  This file is part of GNU Emacs.
--
--  GNU Emacs 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 3 of the License, or
--  (at your option) any later version.
--
--  GNU Emacs 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 GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.

with WisiToken_Grammar_Runtime; use WisiToken_Grammar_Runtime;

package body Wisitoken_Grammar_Actions is

   procedure declaration_0
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Add_Declaration (User_Data, Tree, Nonterm);
   end declaration_0;

   procedure declaration_1
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Add_Declaration (User_Data, Tree, Nonterm);
   end declaration_1;

   procedure declaration_2
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Add_Declaration (User_Data, Tree, Nonterm);
   end declaration_2;

   procedure declaration_3
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Add_Declaration (User_Data, Tree, Nonterm);
   end declaration_3;

   procedure declaration_4
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Add_Declaration (User_Data, Tree, Nonterm);
   end declaration_4;

   procedure declaration_5
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Add_Declaration (User_Data, Tree, Nonterm);
   end declaration_5;

   procedure declaration_6
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Add_Declaration (User_Data, Tree, Nonterm);
   end declaration_6;

   procedure declaration_7
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Add_Declaration (User_Data, Tree, Nonterm);
   end declaration_7;

   procedure declaration_8
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Add_Declaration (User_Data, Tree, Nonterm);
   end declaration_8;

   procedure declaration_9
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Add_Declaration (User_Data, Tree, Nonterm);
   end declaration_9;

   procedure declaration_10
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Add_Declaration (User_Data, Tree, Nonterm);
   end declaration_10;

   procedure declaration_11
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Add_Declaration (User_Data, Tree, Nonterm);
   end declaration_11;

   procedure declaration_12
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Start_If (User_Data, Tree, Nonterm);
   end declaration_12;

   procedure declaration_13
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Start_If (User_Data, Tree, Nonterm);
   end declaration_13;

   procedure declaration_14
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Start_If (User_Data, Tree, Nonterm);
   end declaration_14;

   procedure declaration_15
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Start_If (User_Data, Tree, Nonterm);
   end declaration_15;

   procedure declaration_16
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
      pragma Unreferenced (Tree, Nonterm);
   begin
      End_If (User_Data);
   end declaration_16;

   procedure nonterminal_0
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Add_Nonterminal (User_Data, Tree, Nonterm);
   end nonterminal_0;

   procedure nonterminal_1
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Add_Nonterminal (User_Data, Tree, Nonterm);
   end nonterminal_1;

   procedure nonterminal_2
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Add_Nonterminal (User_Data, Tree, Nonterm);
   end nonterminal_2;

   procedure nonterminal_3
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Add_Nonterminal (User_Data, Tree, Nonterm);
   end nonterminal_3;

   procedure rhs_item_1
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Check_EBNF (User_Data, Tree, Nonterm, 1);
   end rhs_item_1;

   procedure rhs_item_2
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Check_EBNF (User_Data, Tree, Nonterm, 1);
   end rhs_item_2;

   procedure rhs_item_3
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Check_EBNF (User_Data, Tree, Nonterm, 1);
   end rhs_item_3;

   procedure rhs_item_4
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Check_EBNF (User_Data, Tree, Nonterm, 1);
   end rhs_item_4;

   procedure rhs_optional_item_3
    (User_Data : in out WisiToken.Syntax_Trees.User_Data_Type'Class;
     Tree      : in out WisiToken.Syntax_Trees.Tree;
     Nonterm   : in     WisiToken.Syntax_Trees.Valid_Node_Access)
   is
   begin
      Check_EBNF (User_Data, Tree, Nonterm, 1);
   end rhs_optional_item_3;

end Wisitoken_Grammar_Actions;
