emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/wisitoken-grammar-mode 3247a89: Release wisitoken-gramm


From: Stephen Leake
Subject: [elpa] externals/wisitoken-grammar-mode 3247a89: Release wisitoken-grammar-mode 1.1.0
Date: Thu, 14 May 2020 11:28:46 -0400 (EDT)

branch: externals/wisitoken-grammar-mode
commit 3247a89824ad7b0651976150e5593a7adfe5871b
Author: Stephen Leake <address@hidden>
Commit: Stephen Leake <address@hidden>

    Release wisitoken-grammar-mode 1.1.0
    
    Update to wisi 3.1.?.
    
    * wisitoken-grammar-mode.el (emacs-lisp-mode-map): Add C-c C-m
    wisitoken-grammar-mmm-parse.
    (wisitoken-grammar-mode-menu): New.
---
 build.sh                                |    2 +-
 wisi-wisitoken_grammar.adb              |    6 +-
 wisi-wisitoken_grammar.ads              |    4 +-
 wisitoken-grammar-mode.el               |   52 +-
 wisitoken_grammar_1.wy                  |   29 +-
 wisitoken_grammar_1_process_actions.adb |   68 +-
 wisitoken_grammar_1_process_actions.ads |   68 +-
 wisitoken_grammar_1_process_main.adb    | 2303 ++++++++++++++++---------------
 wisitoken_grammar_1_re2c.c              |  200 +--
 9 files changed, 1393 insertions(+), 1339 deletions(-)

diff --git a/build.sh b/build.sh
index b054fc3..26b3f33 100755
--- a/build.sh
+++ b/build.sh
@@ -20,7 +20,7 @@
 # Boston, MA 02111-1307, USA.
 
 
-export GPR_PROJECT_PATH="../wisi-2.2.1"
+export GPR_PROJECT_PATH=`ls -d ../wisi-3.1.?`
 
 gnatprep -DELPA="yes" wisitoken_grammar.gpr.gp wisitoken_grammar.gpr
 
diff --git a/wisi-wisitoken_grammar.adb b/wisi-wisitoken_grammar.adb
index 2de5a05..f5b7269 100644
--- a/wisi-wisitoken_grammar.adb
+++ b/wisi-wisitoken_grammar.adb
@@ -2,7 +2,7 @@
 --
 --  See spec.
 --
---  Copyright (C) 2019 Free Software Foundation, Inc.
+--  Copyright (C) 2019, 2020 Free Software Foundation, Inc.
 --
 --  This library is free software;  you can redistribute it and/or modify it
 --  under terms of the  GNU General Public License  as published by the Free
@@ -47,14 +47,14 @@ package body Wisi.WisiToken_Grammar is
    procedure Check_Parens
      (Data        : in out Wisi.Parse_Data_Type'Class;
       Tree        : in     WisiToken.Syntax_Trees.Tree;
-      Tree_Tokens : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array;
+      Tree_Tokens : in     WisiToken.Valid_Node_Index_Array;
       Args        : in     Arg_Index_Array)
    is
       use WisiToken;
    begin
       for Index of Args loop
          declare
-            Token : Augmented_Token renames Data.Terminals 
(Tree.Min_Terminal_Index (Tree_Tokens (Index)));
+            Token : Augmented_Token renames Get_Aug_Token_Const_1 (Tree, 
Tree.First_Terminal (Tree_Tokens (Index)));
          begin
             Data.Put_Language_Action
               (Check_Parens_Action_Index & Buffer_Pos'Image 
(Token.Char_Region.First) &
diff --git a/wisi-wisitoken_grammar.ads b/wisi-wisitoken_grammar.ads
index 70c404d..b36e9ae 100644
--- a/wisi-wisitoken_grammar.ads
+++ b/wisi-wisitoken_grammar.ads
@@ -2,7 +2,7 @@
 --
 --  Wisitoken_grammar parser language-specific runtime
 --
---  Copyright (C) 2019 Free Software Foundation, Inc.
+--  Copyright (C) 2019 - 2020 Free Software Foundation, Inc.
 --
 --  This library is free software;  you can redistribute it and/or modify it
 --  under terms of the  GNU General Public License  as published by the Free
@@ -38,7 +38,7 @@ package Wisi.WisiToken_Grammar is
    procedure Check_Parens
      (Data        : in out Wisi.Parse_Data_Type'Class;
       Tree        : in     WisiToken.Syntax_Trees.Tree;
-      Tree_Tokens : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array;
+      Tree_Tokens : in     WisiToken.Valid_Node_Index_Array;
       Args        : in     Arg_Index_Array);
 
 end Wisi.WisiToken_Grammar;
diff --git a/wisitoken-grammar-mode.el b/wisitoken-grammar-mode.el
index 493f337..96e1541 100644
--- a/wisitoken-grammar-mode.el
+++ b/wisitoken-grammar-mode.el
@@ -1,14 +1,13 @@
 ;;; wisitoken-grammar-mode.el --- Major mode for editing WisiToken grammar 
files  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2017 - 2019  Free Software Foundation, Inc.
+;; Copyright (C) 2017 - 2020  Free Software Foundation, Inc.
 
 ;; Author: Stephen Leake <address@hidden>
 ;; Maintainer: Stephen Leake <address@hidden>
 ;; Keywords: languages
-;; Version: 1.0.3
-;; package-requires: ((wisi "2.2.1") (emacs "25.0") (mmm-mode "0.5.7"))
-
-;; no upstream url; just ELPA
+;; Version: 1.1.0
+;; package-requires: ((wisi "3.1.1") (emacs "25.0") (mmm-mode "0.5.7"))
+;; url: http://www.nongnu.org/ada-mode/
 
 ;; This file is part of GNU Emacs.
 
@@ -64,6 +63,14 @@
     map
   )  "Local keymap used for wisitoken-grammar mode.")
 
+(define-key emacs-lisp-mode-map "\C-c\C-m" 'wisitoken-grammar-mmm-parse)
+
+(defvar wisitoken-grammar-mode-menu (make-sparse-keymap "Wisi-Grammar"))
+(easy-menu-define wisitoken-grammar-mode-menu wisitoken-grammar-mode-map "Menu 
keymap for Wisitoken Grammar mode"
+  '("Wisi-Grammar"
+    ["Goto declaration" xref-find-definitions t]
+    ["mmm-ify action"   wisitoken-grammar-mmm-parse t]))
+
 (cl-defstruct (wisitoken-grammar-parser (:include wisi-process--parser))
   ;; no new slots
   )
@@ -314,22 +321,29 @@ Otherwise insert a plain new line."
   (wisi-xref-identifier-at-point))
 
 (cl-defmethod xref-backend-identifier-completion-table ((_backend (eql 
wisitoken-grammar)))
-  (wisi-xref-identifier-completion-table))
+  (wisi-names t nil))
 
 (cl-defmethod xref-backend-definitions ((_backend (eql wisitoken-grammar)) 
identifier)
-  (unless (and (string-match wisi-xref-ident-regexp identifier)
-              (match-string 2 identifier))
-    ;; Identifier is from identifier-at-point; get line from completion table
-    (setq identifier (try-completion identifier 
(wisi-xref-identifier-completion-table)))
-    (unless (test-completion identifier 
(wisi-xref-identifier-completion-table))
-      (setq identifier (completing-read "decl: " 
(wisi-xref-identifier-completion-table) nil t identifier)))
-    (string-match wisi-xref-ident-regexp identifier))
-
-  (let* ((ident (match-string 1 identifier))
-        (line-str (match-string 2 identifier))
-        (line (when line-str (string-to-number line-str))))
-    (when line
-      (list (xref-make ident (xref-make-file-location (buffer-file-name) line  
0))))
+  (when (get-text-property 0 'xref-identifier identifier)
+    ;; Identifier is from identifier-at-point; find declaration in completion 
table
+    (let* ((table (wisi-names t nil))
+          (temp (try-completion identifier table)))
+      (cond
+       ((or (null temp)
+           (not (test-completion temp table)))
+       (setq identifier (completing-read "decl: " table nil t identifier)))
+
+       (t
+       (setq identifier temp)))
+      ))
+
+  ;; Identifier is now from completion table, or nil
+  (when identifier
+    (string-match wisi-names-regexp identifier)
+    (list (xref-make
+        (match-string 1 identifier)
+        (xref-make-file-location
+         (buffer-file-name) (string-to-number (match-string 2 identifier)) 0)))
     ))
 
 ;;; debug
diff --git a/wisitoken_grammar_1.wy b/wisitoken_grammar_1.wy
index 784fe48..3950b86 100644
--- a/wisitoken_grammar_1.wy
+++ b/wisitoken_grammar_1.wy
@@ -131,20 +131,18 @@
 
 declaration
   : PERCENT token_keyword_non_grammar IDENTIFIER declaration_item_list
-    %((progn
-        (wisi-statement-action [1 statement-start])
-        (wisi-name-action 3)
-        (wisi-face-apply-action
-         [1 nil font-lock-constant-face
-            2 nil font-lock-keyword-face
-            3 nil font-lock-function-name-face])
-        (wisi-indent-action [nil nil nil (wisi-hanging 4 2)])))%
+    %((wisi-statement-action [1 statement-start])
+      (wisi-name-action 3)
+      (wisi-face-apply-action
+       [1 nil font-lock-constant-face
+          2 nil font-lock-keyword-face
+          3 nil font-lock-function-name-face])
+      (wisi-indent-action [nil nil nil (wisi-hanging 4 2)]))%
   | PERCENT CODE identifier_list RAW_CODE
     %( (wisi-face-apply-action [1 nil font-lock-constant-face 2 nil 
font-lock-keyword-face]) )%
   | PERCENT IDENTIFIER declaration_item_list
-    %((progn
-        (wisi-face-apply-action [1 nil font-lock-constant-face 2 nil 
font-lock-keyword-face])
-        (wisi-indent-action [nil nil (wisi-hanging 4 2)])))%
+    %((wisi-face-apply-action [1 nil font-lock-constant-face 2 nil 
font-lock-keyword-face])
+      (wisi-indent-action [nil nil (wisi-hanging 4 2)]))%
   | PERCENT IDENTIFIER
     %( (wisi-face-apply-action [1 nil font-lock-constant-face 2 nil 
font-lock-keyword-face]) )%
   | PERCENT IF IDENTIFIER EQUAL IDENTIFIER
@@ -190,11 +188,10 @@ declaration_item
 
 nonterminal
   : IDENTIFIER (COLON | COLON_COLON_EQUAL) rhs_list semicolon_opt
-    %( (progn
-         (wisi-statement-action [1 statement-start 4 statement-end])
-         (wisi-name-action 1)
-         (wisi-face-apply-action [1 nil font-lock-function-name-face])
-         (wisi-indent-action [nil 2 2 2])) )%
+    %((wisi-statement-action [1 statement-start 4 statement-end])
+      (wisi-name-action 1)
+      (wisi-face-apply-action [1 nil font-lock-function-name-face])
+      (wisi-indent-action [nil 2 2 2]))%
   ;
 
 semicolon_opt :
diff --git a/wisitoken_grammar_1_process_actions.adb 
b/wisitoken_grammar_1_process_actions.adb
index 692d9e1..14a4920 100644
--- a/wisitoken_grammar_1_process_actions.adb
+++ b/wisitoken_grammar_1_process_actions.adb
@@ -29,8 +29,8 @@ package body Wisitoken_Grammar_1_Process_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
    begin
@@ -49,8 +49,8 @@ package body Wisitoken_Grammar_1_Process_Actions is
    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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
    begin
@@ -67,8 +67,8 @@ package body Wisitoken_Grammar_1_Process_Actions is
    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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
    begin
@@ -86,8 +86,8 @@ package body Wisitoken_Grammar_1_Process_Actions is
    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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
    begin
@@ -104,8 +104,8 @@ package body Wisitoken_Grammar_1_Process_Actions is
    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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
    begin
@@ -122,8 +122,8 @@ package body Wisitoken_Grammar_1_Process_Actions is
    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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
    begin
@@ -140,8 +140,8 @@ package body Wisitoken_Grammar_1_Process_Actions is
    procedure token_keyword_non_grammar_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
    begin
@@ -158,8 +158,8 @@ package body Wisitoken_Grammar_1_Process_Actions is
    procedure token_keyword_non_grammar_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
    begin
@@ -176,8 +176,8 @@ package body Wisitoken_Grammar_1_Process_Actions is
    procedure declaration_item_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
    begin
@@ -194,8 +194,8 @@ package body Wisitoken_Grammar_1_Process_Actions is
    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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
    begin
@@ -214,8 +214,8 @@ package body Wisitoken_Grammar_1_Process_Actions is
    procedure rhs_list_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
    begin
@@ -233,8 +233,8 @@ package body Wisitoken_Grammar_1_Process_Actions is
    procedure rhs_list_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
    begin
@@ -252,8 +252,8 @@ package body Wisitoken_Grammar_1_Process_Actions is
    procedure rhs_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
    begin
@@ -271,8 +271,8 @@ package body Wisitoken_Grammar_1_Process_Actions is
    procedure rhs_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
       pragma Unreferenced (Nonterm);
@@ -290,8 +290,8 @@ package body Wisitoken_Grammar_1_Process_Actions is
    procedure rhs_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
       pragma Unreferenced (Nonterm);
@@ -309,8 +309,8 @@ package body Wisitoken_Grammar_1_Process_Actions is
    procedure compilation_unit_list_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
    begin
@@ -327,8 +327,8 @@ package body Wisitoken_Grammar_1_Process_Actions is
    procedure compilation_unit_list_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array)
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array)
    is
       Parse_Data : Wisi.Parse_Data_Type renames Wisi.Parse_Data_Type 
(User_Data);
    begin
diff --git a/wisitoken_grammar_1_process_actions.ads 
b/wisitoken_grammar_1_process_actions.ads
index fa66e90..2574c95 100644
--- a/wisitoken_grammar_1_process_actions.ads
+++ b/wisitoken_grammar_1_process_actions.ads
@@ -169,88 +169,88 @@ package Wisitoken_Grammar_1_Process_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
    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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
    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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
    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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
    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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
    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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
    procedure token_keyword_non_grammar_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
    procedure token_keyword_non_grammar_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
    procedure declaration_item_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
    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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
    procedure rhs_list_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
    procedure rhs_list_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
    procedure rhs_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
    procedure rhs_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
    procedure rhs_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
    procedure compilation_unit_list_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
    procedure compilation_unit_list_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_Index;
-     Tokens    : in     WisiToken.Syntax_Trees.Valid_Node_Index_Array);
+     Nonterm   : in     WisiToken.Valid_Node_Index;
+     Tokens    : in     WisiToken.Valid_Node_Index_Array);
 
    Partial_Parse_Active    : Boolean := False;
    Partial_Parse_Byte_Goal : WisiToken.Buffer_Pos := WisiToken.Buffer_Pos'Last;
diff --git a/wisitoken_grammar_1_process_main.adb 
b/wisitoken_grammar_1_process_main.adb
index b350248..f408395 100644
--- a/wisitoken_grammar_1_process_main.adb
+++ b/wisitoken_grammar_1_process_main.adb
@@ -77,125 +77,126 @@ package body Wisitoken_Grammar_1_Process_Main is
          procedure Subr_1
          is begin
             Table.States (0).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (0), 23, 1);
-            Add_Action (Table.States (0), 33, 2);
+            Add_Action (Table.States (0), 23, (38, 0), 1);
+            Add_Action (Table.States (0), 33, (43, 0), 2);
             Table.States (0).Goto_List.Set_Capacity (4);
             Add_Goto (Table.States (0), 38, 3);
             Add_Goto (Table.States (0), 43, 4);
             Add_Goto (Table.States (0), 55, 5);
             Add_Goto (Table.States (0), 56, 6);
-            Table.States (0).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 23, 1)));
             Table.States (1).Action_List.Set_Capacity (7);
-            Add_Action (Table.States (1), 3, 7);
-            Add_Action (Table.States (1), 4, 8);
-            Add_Action (Table.States (1), 5, 9);
-            Add_Action (Table.States (1), 6, 10);
-            Add_Action (Table.States (1), 7, 11);
-            Add_Action (Table.States (1), 8, 12);
-            Add_Action (Table.States (1), 33, 13);
+            Add_Action (Table.States (1), 3, (38, 1), 7);
+            Add_Action (Table.States (1), 4, (38, 5), 8);
+            Add_Action (Table.States (1), 5, (38, 4), 9);
+            Add_Action (Table.States (1), 6, (39, 0), 10);
+            Add_Action (Table.States (1), 7, (39, 1), 11);
+            Add_Action (Table.States (1), 8, (39, 2), 12);
+            Add_Action (Table.States (1), 33, (38, 2), 13);
             Table.States (1).Goto_List.Set_Capacity (1);
             Add_Goto (Table.States (1), 39, 14);
-            Table.States (1).Kernel := To_Vector (((38, 23, 3, False), (38, 
23, 3, False), (38, 23, 2, False), (38, 23,
-            1, False), (38, 23, 4, False), (38, 23, 2, False)));
-            Table.States (1).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 13)));
+            Table.States (1).Kernel := To_Vector ((((38, 0),  23,  3, 
(2147483647, 0),  0), ((38, 1),  23,  3,
+            (2147483647, 0),  0), ((38, 2),  23,  2, (2147483647, 0),  0), 
((38, 3),  23,  1, (2147483647, 0),  0),
+            ((38, 4),  23,  4, (2147483647, 0),  0), ((38, 5),  23,  2, 
(2147483647, 0),  0)));
+            Table.States (1).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (38, 2),  33, 13)));
             Table.States (2).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (2), 13, 15);
-            Add_Action (Table.States (2), 14, 16);
+            Add_Action (Table.States (2), 13, (57, 0), 15);
+            Add_Action (Table.States (2), 14, (57, 1), 16);
             Table.States (2).Goto_List.Set_Capacity (1);
             Add_Goto (Table.States (2), 57, 17);
-            Table.States (2).Kernel := To_Vector ((0 => (43, 33, 1, False)));
-            Table.States (2).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 13, 15)));
+            Table.States (2).Kernel := To_Vector ((0 => ((43, 0),  33,  1, 
(2147483647, 0),  0)));
+            Table.States (2).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (57, 0),  13, 15)));
             Table.States (3).Action_List.Set_Capacity (3);
-            Add_Action (Table.States (3), (23, 33, 36), (55, 0), 1, null, 
null);
-            Table.States (3).Kernel := To_Vector ((0 => (55, 38, 0, False)));
-            Table.States (3).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 55, 1)));
+            Add_Action (Table.States (3), (23, 33, 36), (55, 0),  1, null, 
null);
+            Table.States (3).Kernel := To_Vector ((0 => ((55, 0),  38,  0, 
(55, 0),  1)));
+            Table.States (3).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (55, 0),  1)));
             Table.States (4).Action_List.Set_Capacity (3);
-            Add_Action (Table.States (4), (23, 33, 36), (55, 1), 1, null, 
null);
-            Table.States (4).Kernel := To_Vector ((0 => (55, 43, 0, False)));
-            Table.States (4).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 55, 1)));
+            Add_Action (Table.States (4), (23, 33, 36), (55, 1),  1, null, 
null);
+            Table.States (4).Kernel := To_Vector ((0 => ((55, 1),  43,  0, 
(55, 1),  1)));
+            Table.States (4).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (55, 1),  1)));
             Table.States (5).Action_List.Set_Capacity (3);
-            Add_Action (Table.States (5), (23, 33, 36), (56, 0), 1, 
compilation_unit_list_0'Access, null);
-            Table.States (5).Kernel := To_Vector ((0 => (56, 55, 0, False)));
-            Table.States (5).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 56, 1)));
+            Add_Action (Table.States (5), (23, 33, 36), (56, 0),  1, 
compilation_unit_list_0'Access, null);
+            Table.States (5).Kernel := To_Vector ((0 => ((56, 0),  55,  0, 
(56, 0),  1)));
+            Table.States (5).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (56, 0),  1)));
             Table.States (6).Action_List.Set_Capacity (3);
-            Add_Action (Table.States (6), 23, 1);
-            Add_Action (Table.States (6), 33, 2);
-            Add_Action (Table.States (6), 36, Accept_It, (37, 0), 1, null, 
null);
+            Add_Action (Table.States (6), 23, (38, 0), 1);
+            Add_Action (Table.States (6), 33, (43, 0), 2);
+            Add_Action (Table.States (6), 36, Accept_It, (37, 0),  1, null, 
null);
             Table.States (6).Goto_List.Set_Capacity (3);
             Add_Goto (Table.States (6), 38, 3);
             Add_Goto (Table.States (6), 43, 4);
             Add_Goto (Table.States (6), 55, 18);
-            Table.States (6).Kernel := To_Vector (((37, 56, 1, False), (56, 
56, 2, True)));
             Table.States (7).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (7), 33, 19);
+            Add_Action (Table.States (7), 33, (40, 0), 19);
             Table.States (7).Goto_List.Set_Capacity (1);
             Add_Goto (Table.States (7), 40, 20);
-            Table.States (7).Kernel := To_Vector ((0 => (38, 3, 2, False)));
-            Table.States (7).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 19)));
+            Table.States (7).Kernel := To_Vector ((0 => ((38, 1),  3,  2, 
(2147483647, 0),  0)));
+            Table.States (7).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (40, 0),  33, 19)));
             Table.States (8).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (8), 5, 21);
-            Table.States (8).Kernel := To_Vector ((0 => (38, 4, 1, False)));
-            Table.States (8).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 5, 21)));
+            Add_Action (Table.States (8), 5, (38, 5), 21);
+            Table.States (8).Kernel := To_Vector ((0 => ((38, 5),  4,  1, 
(2147483647, 0),  0)));
+            Table.States (8).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (38, 5),  5, 21)));
             Table.States (9).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (9), 33, 22);
-            Table.States (9).Kernel := To_Vector ((0 => (38, 5, 3, False)));
-            Table.States (9).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 22)));
+            Add_Action (Table.States (9), 33, (38, 4), 22);
+            Table.States (9).Kernel := To_Vector ((0 => ((38, 4),  5,  3, 
(2147483647, 0),  0)));
+            Table.States (9).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (38, 4),  33, 22)));
             Table.States (10).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (10), (1 =>  33), (39, 0), 1, null, null);
-            Table.States (10).Kernel := To_Vector ((0 => (39, 6, 0, False)));
-            Table.States (10).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 39, 1)));
+            Add_Action (Table.States (10), (1 =>  33), (39, 0),  1, null, 
null);
+            Table.States (10).Kernel := To_Vector ((0 => ((39, 0),  6,  0, 
(39, 0),  1)));
+            Table.States (10).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (39, 0),  1)));
             Table.States (11).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (11), 21, 23);
-            Table.States (11).Kernel := To_Vector ((0 => (39, 7, 3, False)));
-            Table.States (11).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 21, 23)));
+            Add_Action (Table.States (11), 21, (39, 1), 23);
+            Table.States (11).Kernel := To_Vector ((0 => ((39, 1),  7,  3, 
(2147483647, 0),  0)));
+            Table.States (11).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (39, 1),  21, 23)));
             Table.States (12).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (12), 21, 24);
-            Table.States (12).Kernel := To_Vector ((0 => (39, 8, 3, False)));
-            Table.States (12).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 21, 24)));
+            Add_Action (Table.States (12), 21, (39, 2), 24);
+            Table.States (12).Kernel := To_Vector ((0 => ((39, 2),  8,  3, 
(2147483647, 0),  0)));
+            Table.States (12).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (39, 2),  21, 24)));
             Table.States (13).Action_List.Set_Capacity (13);
-            Add_Action (Table.States (13), 8, 25);
-            Add_Action (Table.States (13), 10, 26);
-            Add_Action (Table.States (13), 15, 27);
-            Add_Action (Table.States (13), 16, 28);
-            Add_Action (Table.States (13), 20, 29);
-            Add_Action (Table.States (13), 23, Reduce, (38, 3), 2, 
declaration_3'Access, null);
-            Add_Action (Table.States (13), 28, 30);
-            Add_Action (Table.States (13), 30, 31);
-            Add_Action (Table.States (13), 32, 32);
-            Add_Action (Table.States (13), 33, 33);
-            Add_Conflict (Table.States (13), 33, (38, 3), 2, 
declaration_3'Access, null);
-            Add_Action (Table.States (13), 34, 34);
-            Add_Action (Table.States (13), 35, 35);
-            Add_Action (Table.States (13), 36, Reduce, (38, 3), 2, 
declaration_3'Access, null);
+            Add_Action (Table.States (13), 8, (42, 10), 25);
+            Add_Action (Table.States (13), 10, (42, 5), 26);
+            Add_Action (Table.States (13), 15, (42, 0), 27);
+            Add_Action (Table.States (13), 16, (42, 2), 28);
+            Add_Action (Table.States (13), 20, (42, 3), 29);
+            Add_Action (Table.States (13), 23, Reduce, (38, 3),  2, 
declaration_3'Access, null);
+            Add_Action (Table.States (13), 28, (42, 6), 30);
+            Add_Action (Table.States (13), 30, (42, 7), 31);
+            Add_Action (Table.States (13), 32, (42, 4), 32);
+            Add_Action (Table.States (13), 33, (42, 1), 33);
+            Add_Conflict (Table.States (13), 33, (38, 3),  2, 
declaration_3'Access, null);
+            Add_Action (Table.States (13), 34, (42, 8), 34);
+            Add_Action (Table.States (13), 35, (42, 9), 35);
+            Add_Action (Table.States (13), 36, Reduce, (38, 3),  2, 
declaration_3'Access, null);
             Table.States (13).Goto_List.Set_Capacity (2);
             Add_Goto (Table.States (13), 41, 36);
             Add_Goto (Table.States (13), 42, 37);
-            Table.States (13).Kernel := To_Vector (((38, 33, 1, False), (38, 
33, 0, False)));
-            Table.States (13).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 38, 2)));
+            Table.States (13).Kernel := To_Vector ((((38, 2),  33,  1, 
(2147483647, 0),  0), ((38, 3),  33,  0, (38,
+            3),  2)));
+            Table.States (13).Minimal_Complete_Actions := To_Vector (((Shift, 
(42, 0),  15, 27), (Reduce, (38, 3),
+            2)));
             Table.States (14).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (14), 33, 38);
-            Table.States (14).Kernel := To_Vector ((0 => (38, 39, 2, False)));
-            Table.States (14).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 38)));
+            Add_Action (Table.States (14), 33, (38, 0), 38);
+            Table.States (14).Kernel := To_Vector ((0 => ((38, 0),  39,  2, 
(2147483647, 0),  0)));
+            Table.States (14).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (38, 0),  33, 38)));
             Table.States (15).Action_List.Set_Capacity (10);
-            Add_Action (Table.States (15), (12, 18, 19, 20, 21, 23, 29, 33, 
35, 36), (57, 0), 1, null, null);
-            Table.States (15).Kernel := To_Vector ((0 => (57, 13, 0, False)));
-            Table.States (15).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 57, 1)));
+            Add_Action (Table.States (15), (12, 18, 19, 20, 21, 23, 29, 33, 
35, 36), (57, 0),  1, null, null);
+            Table.States (15).Kernel := To_Vector ((0 => ((57, 0),  13,  0, 
(57, 0),  1)));
+            Table.States (15).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (57, 0),  1)));
             Table.States (16).Action_List.Set_Capacity (10);
-            Add_Action (Table.States (16), (12, 18, 19, 20, 21, 23, 29, 33, 
35, 36), (57, 1), 1, null, null);
-            Table.States (16).Kernel := To_Vector ((0 => (57, 14, 0, False)));
-            Table.States (16).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 57, 1)));
+            Add_Action (Table.States (16), (12, 18, 19, 20, 21, 23, 29, 33, 
35, 36), (57, 1),  1, null, null);
+            Table.States (16).Kernel := To_Vector ((0 => ((57, 1),  14,  0, 
(57, 1),  1)));
+            Table.States (16).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (57, 1),  1)));
             Table.States (17).Action_List.Set_Capacity (10);
-            Add_Action (Table.States (17), 12, Reduce, (46, 0), 0, null, null);
-            Add_Action (Table.States (17), 18, 39);
-            Add_Action (Table.States (17), 19, 40);
-            Add_Action (Table.States (17), 20, 41);
-            Add_Action (Table.States (17), 21, 42);
-            Add_Action (Table.States (17), 23, Reduce, (46, 0), 0, null, null);
-            Add_Action (Table.States (17), 29, Reduce, (46, 0), 0, null, null);
-            Add_Action (Table.States (17), 33, 43);
-            Add_Conflict (Table.States (17), 33, (46, 0), 0, null, null);
-            Add_Action (Table.States (17), 35, 44);
-            Add_Action (Table.States (17), 36, Reduce, (46, 0), 0, null, null);
+            Add_Action (Table.States (17), 12, Reduce, (46, 0),  0, null, 
null);
+            Add_Action (Table.States (17), 18, (53, 0), 39);
+            Add_Action (Table.States (17), 19, (52, 0), 40);
+            Add_Action (Table.States (17), 20, (51, 0), 41);
+            Add_Action (Table.States (17), 21, (47, 0), 42);
+            Add_Action (Table.States (17), 23, Reduce, (46, 0),  0, null, 
null);
+            Add_Action (Table.States (17), 29, Reduce, (46, 0),  0, null, 
null);
+            Add_Action (Table.States (17), 33, (48, 1), 43);
+            Add_Conflict (Table.States (17), 33, (46, 0),  0, null, null);
+            Add_Action (Table.States (17), 35, (50, 1), 44);
+            Add_Action (Table.States (17), 36, Reduce, (46, 0),  0, null, 
null);
             Table.States (17).Goto_List.Set_Capacity (9);
             Add_Goto (Table.States (17), 45, 45);
             Add_Goto (Table.States (17), 46, 46);
@@ -206,141 +207,142 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (17), 51, 51);
             Add_Goto (Table.States (17), 52, 52);
             Add_Goto (Table.States (17), 53, 53);
-            Table.States (17).Kernel := To_Vector ((0 => (43, 57, 0, False)));
-            Table.States (17).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 45, 0)));
+            Table.States (17).Kernel := To_Vector ((0 => ((43, 0),  57,  0, 
(45, 3),  4)));
+            Table.States (17).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (45, 3),  4)));
             Table.States (18).Action_List.Set_Capacity (3);
-            Add_Action (Table.States (18), (23, 33, 36), (56, 1), 2, 
compilation_unit_list_1'Access, null);
-            Table.States (18).Kernel := To_Vector ((0 => (56, 55, 0, True)));
-            Table.States (18).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 56, 2)));
-            Table.States (18).Minimal_Complete_Actions_Recursive := True;
+            Add_Action (Table.States (18), (23, 33, 36), (56, 1),  2, 
compilation_unit_list_1'Access, null);
+            Table.States (18).Kernel := To_Vector ((0 => ((56, 1),  55,  0, 
(56, 1),  2)));
+            Table.States (18).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (56, 1),  2)));
             Table.States (19).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (19), (9, 33), (40, 0), 1, null, null);
-            Table.States (19).Kernel := To_Vector ((0 => (40, 33, 0, False)));
-            Table.States (19).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 40, 1)));
+            Add_Action (Table.States (19), (9, 33), (40, 0),  1, null, null);
+            Table.States (19).Kernel := To_Vector ((0 => ((40, 0),  33,  0, 
(40, 0),  1)));
+            Table.States (19).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (40, 0),  1)));
             Table.States (20).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (20), 9, 54);
-            Add_Action (Table.States (20), 33, 55);
-            Table.States (20).Kernel := To_Vector (((38, 40, 1, False), (40, 
40, 1, True)));
-            Table.States (20).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 9, 54)));
+            Add_Action (Table.States (20), 9, (38, 1), 54);
+            Add_Action (Table.States (20), 33, (40, 1), 55);
+            Table.States (20).Kernel := To_Vector ((((38, 1),  40,  1, 
(2147483647, 0),  0), ((40, 1),  40,  1,
+            (2147483647, 0),  0)));
+            Table.States (20).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (38, 1),  9, 54)));
             Table.States (21).Action_List.Set_Capacity (3);
-            Add_Action (Table.States (21), (23, 33, 36), (38, 5), 3, 
declaration_5'Access, null);
-            Table.States (21).Kernel := To_Vector ((0 => (38, 5, 0, False)));
-            Table.States (21).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 38, 3)));
+            Add_Action (Table.States (21), (23, 33, 36), (38, 5),  3, 
declaration_5'Access, null);
+            Table.States (21).Kernel := To_Vector ((0 => ((38, 5),  5,  0, 
(38, 5),  3)));
+            Table.States (21).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (38, 5),  3)));
             Table.States (22).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (22), 16, 56);
-            Table.States (22).Kernel := To_Vector ((0 => (38, 33, 2, False)));
-            Table.States (22).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 16, 56)));
+            Add_Action (Table.States (22), 16, (38, 4), 56);
+            Table.States (22).Kernel := To_Vector ((0 => ((38, 4),  33,  2, 
(2147483647, 0),  0)));
+            Table.States (22).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (38, 4),  16, 56)));
             Table.States (23).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (23), 33, 57);
-            Table.States (23).Kernel := To_Vector ((0 => (39, 21, 2, False)));
-            Table.States (23).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 57)));
+            Add_Action (Table.States (23), 33, (39, 1), 57);
+            Table.States (23).Kernel := To_Vector ((0 => ((39, 1),  21,  2, 
(2147483647, 0),  0)));
+            Table.States (23).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (39, 1),  33, 57)));
             Table.States (24).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (24), 33, 58);
-            Table.States (24).Kernel := To_Vector ((0 => (39, 21, 2, False)));
-            Table.States (24).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 58)));
+            Add_Action (Table.States (24), 33, (39, 2), 58);
+            Table.States (24).Kernel := To_Vector ((0 => ((39, 2),  21,  2, 
(2147483647, 0),  0)));
+            Table.States (24).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (39, 2),  33, 58)));
             Table.States (25).Action_List.Set_Capacity (13);
-            Add_Action (Table.States (25), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 10), 1, null,
+            Add_Action (Table.States (25), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 10),  1, null,
             null);
-            Table.States (25).Kernel := To_Vector ((0 => (42, 8, 0, False)));
-            Table.States (25).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 42, 1)));
+            Table.States (25).Kernel := To_Vector ((0 => ((42, 10),  8,  0, 
(42, 10),  1)));
+            Table.States (25).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (42, 10),  1)));
             Table.States (26).Action_List.Set_Capacity (13);
-            Add_Action (Table.States (26), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 5), 1,
+            Add_Action (Table.States (26), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 5),  1,
             declaration_item_5'Access, null);
-            Table.States (26).Kernel := To_Vector ((0 => (42, 10, 0, False)));
-            Table.States (26).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 42, 1)));
+            Table.States (26).Kernel := To_Vector ((0 => ((42, 5),  10,  0, 
(42, 5),  1)));
+            Table.States (26).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (42, 5),  1)));
             Table.States (27).Action_List.Set_Capacity (13);
-            Add_Action (Table.States (27), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 0), 1, null,
+            Add_Action (Table.States (27), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 0),  1, null,
             null);
-            Table.States (27).Kernel := To_Vector ((0 => (42, 15, 0, False)));
-            Table.States (27).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 42, 1)));
+            Table.States (27).Kernel := To_Vector ((0 => ((42, 0),  15,  0, 
(42, 0),  1)));
+            Table.States (27).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (42, 0),  1)));
             Table.States (28).Action_List.Set_Capacity (13);
-            Add_Action (Table.States (28), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 2), 1, null,
+            Add_Action (Table.States (28), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 2),  1, null,
             null);
-            Table.States (28).Kernel := To_Vector ((0 => (42, 16, 0, False)));
-            Table.States (28).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 42, 1)));
+            Table.States (28).Kernel := To_Vector ((0 => ((42, 2),  16,  0, 
(42, 2),  1)));
+            Table.States (28).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (42, 2),  1)));
             Table.States (29).Action_List.Set_Capacity (13);
-            Add_Action (Table.States (29), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 3), 1, null,
+            Add_Action (Table.States (29), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 3),  1, null,
             null);
-            Table.States (29).Kernel := To_Vector ((0 => (42, 20, 0, False)));
-            Table.States (29).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 42, 1)));
+            Table.States (29).Kernel := To_Vector ((0 => ((42, 3),  20,  0, 
(42, 3),  1)));
+            Table.States (29).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (42, 3),  1)));
             Table.States (30).Action_List.Set_Capacity (13);
-            Add_Action (Table.States (30), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 6), 1, null,
+            Add_Action (Table.States (30), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 6),  1, null,
             null);
-            Table.States (30).Kernel := To_Vector ((0 => (42, 28, 0, False)));
-            Table.States (30).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 42, 1)));
+            Table.States (30).Kernel := To_Vector ((0 => ((42, 6),  28,  0, 
(42, 6),  1)));
+            Table.States (30).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (42, 6),  1)));
             Table.States (31).Action_List.Set_Capacity (13);
-            Add_Action (Table.States (31), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 7), 1, null,
+            Add_Action (Table.States (31), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 7),  1, null,
             null);
-            Table.States (31).Kernel := To_Vector ((0 => (42, 30, 0, False)));
-            Table.States (31).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 42, 1)));
+            Table.States (31).Kernel := To_Vector ((0 => ((42, 7),  30,  0, 
(42, 7),  1)));
+            Table.States (31).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (42, 7),  1)));
             Table.States (32).Action_List.Set_Capacity (13);
-            Add_Action (Table.States (32), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 4), 1, null,
+            Add_Action (Table.States (32), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 4),  1, null,
             null);
-            Table.States (32).Kernel := To_Vector ((0 => (42, 32, 0, False)));
-            Table.States (32).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 42, 1)));
+            Table.States (32).Kernel := To_Vector ((0 => ((42, 4),  32,  0, 
(42, 4),  1)));
+            Table.States (32).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (42, 4),  1)));
             Table.States (33).Action_List.Set_Capacity (13);
-            Add_Action (Table.States (33), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 1), 1, null,
+            Add_Action (Table.States (33), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 1),  1, null,
             null);
-            Table.States (33).Kernel := To_Vector ((0 => (42, 33, 0, False)));
-            Table.States (33).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 42, 1)));
+            Table.States (33).Kernel := To_Vector ((0 => ((42, 1),  33,  0, 
(42, 1),  1)));
+            Table.States (33).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (42, 1),  1)));
             Table.States (34).Action_List.Set_Capacity (13);
-            Add_Action (Table.States (34), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 8), 1, null,
+            Add_Action (Table.States (34), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 8),  1, null,
             null);
-            Table.States (34).Kernel := To_Vector ((0 => (42, 34, 0, False)));
-            Table.States (34).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 42, 1)));
+            Table.States (34).Kernel := To_Vector ((0 => ((42, 8),  34,  0, 
(42, 8),  1)));
+            Table.States (34).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (42, 8),  1)));
             Table.States (35).Action_List.Set_Capacity (13);
-            Add_Action (Table.States (35), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 9), 1, null,
+            Add_Action (Table.States (35), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (42, 9),  1, null,
             null);
-            Table.States (35).Kernel := To_Vector ((0 => (42, 35, 0, False)));
-            Table.States (35).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 42, 1)));
+            Table.States (35).Kernel := To_Vector ((0 => ((42, 9),  35,  0, 
(42, 9),  1)));
+            Table.States (35).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (42, 9),  1)));
             Table.States (36).Action_List.Set_Capacity (13);
-            Add_Action (Table.States (36), 8, 25);
-            Add_Action (Table.States (36), 10, 26);
-            Add_Action (Table.States (36), 15, 27);
-            Add_Action (Table.States (36), 16, 28);
-            Add_Action (Table.States (36), 20, 29);
-            Add_Action (Table.States (36), 23, Reduce, (38, 2), 3, 
declaration_2'Access, null);
-            Add_Action (Table.States (36), 28, 30);
-            Add_Action (Table.States (36), 30, 31);
-            Add_Action (Table.States (36), 32, 32);
-            Add_Action (Table.States (36), 33, 33);
-            Add_Conflict (Table.States (36), 33, (38, 2), 3, 
declaration_2'Access, null);
-            Add_Action (Table.States (36), 34, 34);
-            Add_Action (Table.States (36), 35, 35);
-            Add_Action (Table.States (36), 36, Reduce, (38, 2), 3, 
declaration_2'Access, null);
+            Add_Action (Table.States (36), 8, (42, 10), 25);
+            Add_Action (Table.States (36), 10, (42, 5), 26);
+            Add_Action (Table.States (36), 15, (42, 0), 27);
+            Add_Action (Table.States (36), 16, (42, 2), 28);
+            Add_Action (Table.States (36), 20, (42, 3), 29);
+            Add_Action (Table.States (36), 23, Reduce, (38, 2),  3, 
declaration_2'Access, null);
+            Add_Action (Table.States (36), 28, (42, 6), 30);
+            Add_Action (Table.States (36), 30, (42, 7), 31);
+            Add_Action (Table.States (36), 32, (42, 4), 32);
+            Add_Action (Table.States (36), 33, (42, 1), 33);
+            Add_Conflict (Table.States (36), 33, (38, 2),  3, 
declaration_2'Access, null);
+            Add_Action (Table.States (36), 34, (42, 8), 34);
+            Add_Action (Table.States (36), 35, (42, 9), 35);
+            Add_Action (Table.States (36), 36, Reduce, (38, 2),  3, 
declaration_2'Access, null);
             Table.States (36).Goto_List.Set_Capacity (1);
             Add_Goto (Table.States (36), 42, 59);
-            Table.States (36).Kernel := To_Vector (((38, 41, 0, False), (41, 
41, 1, True)));
-            Table.States (36).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 38, 3)));
+            Table.States (36).Kernel := To_Vector ((((38, 2),  41,  0, (38, 
2),  3), ((41, 1),  41,  1, (2147483647,
+            0),  0)));
+            Table.States (36).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (38, 2),  3)));
             Table.States (37).Action_List.Set_Capacity (13);
-            Add_Action (Table.States (37), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (41, 0), 1, null,
+            Add_Action (Table.States (37), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (41, 0),  1, null,
             null);
-            Table.States (37).Kernel := To_Vector ((0 => (41, 42, 0, False)));
-            Table.States (37).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 41, 1)));
+            Table.States (37).Kernel := To_Vector ((0 => ((41, 0),  42,  0, 
(41, 0),  1)));
+            Table.States (37).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (41, 0),  1)));
             Table.States (38).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (38), 8, 25);
-            Add_Action (Table.States (38), 10, 26);
-            Add_Action (Table.States (38), 15, 27);
-            Add_Action (Table.States (38), 16, 28);
-            Add_Action (Table.States (38), 20, 29);
-            Add_Action (Table.States (38), 28, 30);
-            Add_Action (Table.States (38), 30, 31);
-            Add_Action (Table.States (38), 32, 32);
-            Add_Action (Table.States (38), 33, 33);
-            Add_Action (Table.States (38), 34, 34);
-            Add_Action (Table.States (38), 35, 35);
+            Add_Action (Table.States (38), 8, (42, 10), 25);
+            Add_Action (Table.States (38), 10, (42, 5), 26);
+            Add_Action (Table.States (38), 15, (42, 0), 27);
+            Add_Action (Table.States (38), 16, (42, 2), 28);
+            Add_Action (Table.States (38), 20, (42, 3), 29);
+            Add_Action (Table.States (38), 28, (42, 6), 30);
+            Add_Action (Table.States (38), 30, (42, 7), 31);
+            Add_Action (Table.States (38), 32, (42, 4), 32);
+            Add_Action (Table.States (38), 33, (42, 1), 33);
+            Add_Action (Table.States (38), 34, (42, 8), 34);
+            Add_Action (Table.States (38), 35, (42, 9), 35);
             Table.States (38).Goto_List.Set_Capacity (2);
             Add_Goto (Table.States (38), 41, 60);
             Add_Goto (Table.States (38), 42, 37);
-            Table.States (38).Kernel := To_Vector ((0 => (38, 33, 1, False)));
-            Table.States (38).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 15, 27)));
+            Table.States (38).Kernel := To_Vector ((0 => ((38, 0),  33,  1, 
(2147483647, 0),  0)));
+            Table.States (38).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (42, 0),  15, 27)));
             Table.States (39).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (39), 18, 61);
-            Add_Action (Table.States (39), 19, 62);
-            Add_Action (Table.States (39), 20, 63);
-            Add_Action (Table.States (39), 21, 64);
-            Add_Action (Table.States (39), 33, 65);
-            Add_Action (Table.States (39), 35, 66);
+            Add_Action (Table.States (39), 18, (53, 0), 61);
+            Add_Action (Table.States (39), 19, (52, 0), 62);
+            Add_Action (Table.States (39), 20, (51, 0), 63);
+            Add_Action (Table.States (39), 21, (47, 0), 64);
+            Add_Action (Table.States (39), 33, (48, 1), 65);
+            Add_Action (Table.States (39), 35, (50, 1), 66);
             Table.States (39).Goto_List.Set_Capacity (8);
             Add_Goto (Table.States (39), 47, 67);
             Add_Goto (Table.States (39), 48, 68);
@@ -350,15 +352,16 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (39), 52, 72);
             Add_Goto (Table.States (39), 53, 73);
             Add_Goto (Table.States (39), 54, 74);
-            Table.States (39).Kernel := To_Vector (((53, 18, 2, False), (53, 
18, 3, False)));
-            Table.States (39).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 65)));
+            Table.States (39).Kernel := To_Vector ((((53, 0),  18,  2, 
(2147483647, 0),  0), ((53, 1),  18,  3,
+            (2147483647, 0),  0)));
+            Table.States (39).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (48, 1),  33, 65)));
             Table.States (40).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (40), 18, 75);
-            Add_Action (Table.States (40), 19, 76);
-            Add_Action (Table.States (40), 20, 77);
-            Add_Action (Table.States (40), 21, 78);
-            Add_Action (Table.States (40), 33, 79);
-            Add_Action (Table.States (40), 35, 80);
+            Add_Action (Table.States (40), 18, (53, 0), 75);
+            Add_Action (Table.States (40), 19, (52, 0), 76);
+            Add_Action (Table.States (40), 20, (51, 0), 77);
+            Add_Action (Table.States (40), 21, (47, 0), 78);
+            Add_Action (Table.States (40), 33, (48, 1), 79);
+            Add_Action (Table.States (40), 35, (50, 1), 80);
             Table.States (40).Goto_List.Set_Capacity (8);
             Add_Goto (Table.States (40), 47, 81);
             Add_Goto (Table.States (40), 48, 82);
@@ -368,15 +371,15 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (40), 52, 86);
             Add_Goto (Table.States (40), 53, 87);
             Add_Goto (Table.States (40), 54, 88);
-            Table.States (40).Kernel := To_Vector ((0 => (52, 19, 2, False)));
-            Table.States (40).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 79)));
+            Table.States (40).Kernel := To_Vector ((0 => ((52, 0),  19,  2, 
(2147483647, 0),  0)));
+            Table.States (40).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (48, 1),  33, 79)));
             Table.States (41).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (41), 18, 89);
-            Add_Action (Table.States (41), 19, 90);
-            Add_Action (Table.States (41), 20, 91);
-            Add_Action (Table.States (41), 21, 92);
-            Add_Action (Table.States (41), 33, 93);
-            Add_Action (Table.States (41), 35, 94);
+            Add_Action (Table.States (41), 18, (53, 0), 89);
+            Add_Action (Table.States (41), 19, (52, 0), 90);
+            Add_Action (Table.States (41), 20, (51, 0), 91);
+            Add_Action (Table.States (41), 21, (47, 0), 92);
+            Add_Action (Table.States (41), 33, (48, 1), 93);
+            Add_Action (Table.States (41), 35, (50, 1), 94);
             Table.States (41).Goto_List.Set_Capacity (8);
             Add_Goto (Table.States (41), 47, 95);
             Add_Goto (Table.States (41), 48, 96);
@@ -386,84 +389,88 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (41), 52, 100);
             Add_Goto (Table.States (41), 53, 101);
             Add_Goto (Table.States (41), 54, 102);
-            Table.States (41).Kernel := To_Vector (((51, 20, 2, False), (52, 
20, 3, False), (53, 20, 3, False), (53,
-            20, 3, False)));
-            Table.States (41).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 93)));
+            Table.States (41).Kernel := To_Vector ((((51, 0),  20,  2, 
(2147483647, 0),  0), ((52, 1),  20,  3,
+            (2147483647, 0),  0), ((53, 2),  20,  3, (2147483647, 0),  0), 
((53, 3),  20,  3, (2147483647, 0),  0)));
+            Table.States (41).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (48, 1),  33, 93)));
             Table.States (42).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (42), 33, 103);
-            Table.States (42).Kernel := To_Vector ((0 => (47, 21, 4, False)));
-            Table.States (42).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 103)));
+            Add_Action (Table.States (42), 33, (47, 0), 103);
+            Table.States (42).Kernel := To_Vector ((0 => ((47, 0),  21,  4, 
(2147483647, 0),  0)));
+            Table.States (42).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (47, 0),  33, 103)));
             Table.States (43).Action_List.Set_Capacity (15);
-            Add_Action (Table.States (43), 11, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (43), 12, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (43), 16, 104);
-            Add_Action (Table.States (43), 18, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (43), 19, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (43), 20, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (43), 21, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (43), 23, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (43), 24, 105);
-            Add_Action (Table.States (43), 25, 106);
-            Add_Action (Table.States (43), 29, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (43), 31, 107);
-            Add_Action (Table.States (43), 33, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (43), 35, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (43), 36, Reduce, (50, 0), 1, null, null);
-            Table.States (43).Kernel := To_Vector (((48, 33, 2, False), (50, 
33, 0, False), (52, 33, 1, False), (53,
-            33, 1, False), (53, 33, 1, False)));
-            Table.States (43).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (43), 11, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (43), 12, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (43), 16, (48, 1), 104);
+            Add_Action (Table.States (43), 18, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (43), 19, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (43), 20, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (43), 21, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (43), 23, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (43), 24, (53, 4), 105);
+            Add_Action (Table.States (43), 25, (52, 2), 106);
+            Add_Action (Table.States (43), 29, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (43), 31, (53, 5), 107);
+            Add_Action (Table.States (43), 33, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (43), 35, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (43), 36, Reduce, (50, 0),  1, null, 
null);
+            Table.States (43).Kernel := To_Vector ((((48, 1),  33,  2, 
(2147483647, 0),  0), ((50, 0),  33,  0, (50,
+            0),  1), ((52, 2),  33,  1, (2147483647, 0),  0), ((53, 4),  33,  
1, (2147483647, 0),  0), ((53, 5),  33,
+            1, (2147483647, 0),  0)));
+            Table.States (43).Minimal_Complete_Actions := To_Vector (((Reduce, 
(50, 0),  1), (Shift, (52, 2),  25,
+            106), (Shift, (53, 4),  24, 105), (Shift, (53, 5),  31, 107)));
             Table.States (44).Action_List.Set_Capacity (12);
-            Add_Action (Table.States (44), 11, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (44), 12, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (44), 18, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (44), 19, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (44), 20, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (44), 21, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (44), 23, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (44), 25, 108);
-            Add_Action (Table.States (44), 29, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (44), 33, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (44), 35, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (44), 36, Reduce, (50, 1), 1, null, null);
-            Table.States (44).Kernel := To_Vector (((50, 35, 0, False), (52, 
35, 1, False)));
-            Table.States (44).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (44), 11, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (44), 12, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (44), 18, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (44), 19, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (44), 20, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (44), 21, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (44), 23, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (44), 25, (52, 3), 108);
+            Add_Action (Table.States (44), 29, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (44), 33, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (44), 35, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (44), 36, Reduce, (50, 1),  1, null, 
null);
+            Table.States (44).Kernel := To_Vector ((((50, 1),  35,  0, (50, 
1),  1), ((52, 3),  35,  1, (2147483647,
+            0),  0)));
+            Table.States (44).Minimal_Complete_Actions := To_Vector (((Reduce, 
(50, 1),  1), (Shift, (52, 3),  25,
+            108)));
             Table.States (45).Action_List.Set_Capacity (5);
-            Add_Action (Table.States (45), 12, 109);
-            Add_Action (Table.States (45), 23, 110);
-            Add_Conflict (Table.States (45), 23, (44, 1), 0, null, null);
-            Add_Action (Table.States (45), 29, 111);
-            Add_Action (Table.States (45), 33, Reduce, (44, 1), 0, null, null);
-            Add_Action (Table.States (45), 36, Reduce, (44, 1), 0, null, null);
+            Add_Action (Table.States (45), 12, (45, 1), 109);
+            Add_Action (Table.States (45), 23, (45, 2), 110);
+            Add_Conflict (Table.States (45), 23, (44, 1),  0, null, null);
+            Add_Action (Table.States (45), 29, (44, 0), 111);
+            Add_Action (Table.States (45), 33, Reduce, (44, 1),  0, null, 
null);
+            Add_Action (Table.States (45), 36, Reduce, (44, 1),  0, null, 
null);
             Table.States (45).Goto_List.Set_Capacity (1);
             Add_Goto (Table.States (45), 44, 112);
-            Table.States (45).Kernel := To_Vector (((43, 45, 0, False), (45, 
45, 1, True), (45, 45, 5, True), (45, 45,
-            3, True)));
-            Table.States (45).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 44, 0)));
+            Table.States (45).Kernel := To_Vector ((((43, 0),  45,  0, (44, 
1),  0), ((45, 1),  45,  1, (2147483647,
+            0),  0), ((45, 2),  45,  5, (2147483647, 0),  0), ((45, 3),  45,  
3, (2147483647, 0),  0)));
+            Table.States (45).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (44, 1),  0)));
             Table.States (46).Action_List.Set_Capacity (5);
-            Add_Action (Table.States (46), (12, 23, 29, 33, 36), (45, 0), 1, 
rhs_list_0'Access, null);
-            Table.States (46).Kernel := To_Vector ((0 => (45, 46, 0, False)));
-            Table.States (46).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 45, 1)));
+            Add_Action (Table.States (46), (12, 23, 29, 33, 36), (45, 0),  1, 
rhs_list_0'Access, null);
+            Table.States (46).Kernel := To_Vector ((0 => ((45, 0),  46,  0, 
(45, 0),  1)));
+            Table.States (46).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (45, 0),  1)));
             Table.States (47).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (47), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (50, 2), 1, null, null);
-            Table.States (47).Kernel := To_Vector ((0 => (50, 47, 0, False)));
-            Table.States (47).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (47), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (50, 2),  1, null, null);
+            Table.States (47).Kernel := To_Vector ((0 => ((50, 2),  47,  0, 
(50, 2),  1)));
+            Table.States (47).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (50, 2),  1)));
             Table.States (48).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (48), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (49, 0), 1, null, null);
-            Table.States (48).Kernel := To_Vector ((0 => (49, 48, 0, False)));
-            Table.States (48).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 49, 1)));
+            Add_Action (Table.States (48), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (49, 0),  1, null, null);
+            Table.States (48).Kernel := To_Vector ((0 => ((49, 0),  48,  0, 
(49, 0),  1)));
+            Table.States (48).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (49, 0),  1)));
             Table.States (49).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (49), 11, 113);
-            Add_Action (Table.States (49), 12, Reduce, (46, 1), 1, 
rhs_1'Access, null);
-            Add_Action (Table.States (49), 18, 39);
-            Add_Action (Table.States (49), 19, 40);
-            Add_Action (Table.States (49), 20, 41);
-            Add_Action (Table.States (49), 21, 42);
-            Add_Action (Table.States (49), 23, Reduce, (46, 1), 1, 
rhs_1'Access, null);
-            Add_Action (Table.States (49), 29, Reduce, (46, 1), 1, 
rhs_1'Access, null);
-            Add_Action (Table.States (49), 33, 43);
-            Add_Conflict (Table.States (49), 33, (46, 1), 1, rhs_1'Access, 
null);
-            Add_Action (Table.States (49), 35, 44);
-            Add_Action (Table.States (49), 36, Reduce, (46, 1), 1, 
rhs_1'Access, null);
+            Add_Action (Table.States (49), 11, (46, 2), 113);
+            Add_Action (Table.States (49), 12, Reduce, (46, 1),  1, 
rhs_1'Access, null);
+            Add_Action (Table.States (49), 18, (53, 0), 39);
+            Add_Action (Table.States (49), 19, (52, 0), 40);
+            Add_Action (Table.States (49), 20, (51, 0), 41);
+            Add_Action (Table.States (49), 21, (47, 0), 42);
+            Add_Action (Table.States (49), 23, Reduce, (46, 1),  1, 
rhs_1'Access, null);
+            Add_Action (Table.States (49), 29, Reduce, (46, 1),  1, 
rhs_1'Access, null);
+            Add_Action (Table.States (49), 33, (48, 1), 43);
+            Add_Conflict (Table.States (49), 33, (46, 1),  1, rhs_1'Access, 
null);
+            Add_Action (Table.States (49), 35, (50, 1), 44);
+            Add_Action (Table.States (49), 36, Reduce, (46, 1),  1, 
rhs_1'Access, null);
             Table.States (49).Goto_List.Set_Capacity (6);
             Add_Goto (Table.States (49), 47, 47);
             Add_Goto (Table.States (49), 48, 114);
@@ -471,78 +478,78 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (49), 51, 51);
             Add_Goto (Table.States (49), 52, 52);
             Add_Goto (Table.States (49), 53, 53);
-            Table.States (49).Kernel := To_Vector (((46, 49, 0, False), (46, 
49, 1, False), (46, 49, 2, False), (49,
-            49, 1, True)));
-            Table.States (49).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 46, 1)));
+            Table.States (49).Kernel := To_Vector ((((46, 1),  49,  0, (46, 
1),  1), ((46, 2),  49,  1, (2147483647,
+            0),  0), ((46, 3),  49,  2, (2147483647, 0),  0), ((49, 1),  49,  
1, (2147483647, 0),  0)));
+            Table.States (49).Minimal_Complete_Actions := To_Vector (((Reduce, 
(46, 1),  1), (Shift, (46, 2),  11,
+            113)));
             Table.States (50).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (50), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (48, 0), 1, null, null);
-            Table.States (50).Kernel := To_Vector ((0 => (48, 50, 0, False)));
-            Table.States (50).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 48, 1)));
+            Add_Action (Table.States (50), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (48, 0),  1, null, null);
+            Table.States (50).Kernel := To_Vector ((0 => ((48, 0),  50,  0, 
(48, 0),  1)));
+            Table.States (50).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (48, 0),  1)));
             Table.States (51).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (51), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (50, 5), 1, null, null);
-            Table.States (51).Kernel := To_Vector ((0 => (50, 51, 0, False)));
-            Table.States (51).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (51), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (50, 5),  1, null, null);
+            Table.States (51).Kernel := To_Vector ((0 => ((50, 5),  51,  0, 
(50, 5),  1)));
+            Table.States (51).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (50, 5),  1)));
             Table.States (52).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (52), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (50, 3), 1, null, null);
-            Table.States (52).Kernel := To_Vector ((0 => (50, 52, 0, False)));
-            Table.States (52).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (52), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (50, 3),  1, null, null);
+            Table.States (52).Kernel := To_Vector ((0 => ((50, 3),  52,  0, 
(50, 3),  1)));
+            Table.States (52).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (50, 3),  1)));
             Table.States (53).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (53), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (50, 4), 1, null, null);
-            Table.States (53).Kernel := To_Vector ((0 => (50, 53, 0, False)));
-            Table.States (53).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (53), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (50, 4),  1, null, null);
+            Table.States (53).Kernel := To_Vector ((0 => ((50, 4),  53,  0, 
(50, 4),  1)));
+            Table.States (53).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (50, 4),  1)));
             Table.States (54).Action_List.Set_Capacity (3);
-            Add_Action (Table.States (54), (23, 33, 36), (38, 1), 4, 
declaration_1'Access, null);
-            Table.States (54).Kernel := To_Vector ((0 => (38, 9, 0, False)));
-            Table.States (54).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 38, 4)));
+            Add_Action (Table.States (54), (23, 33, 36), (38, 1),  4, 
declaration_1'Access, null);
+            Table.States (54).Kernel := To_Vector ((0 => ((38, 1),  9,  0, 
(38, 1),  4)));
+            Table.States (54).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (38, 1),  4)));
             Table.States (55).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (55), (9, 33), (40, 1), 2, null, null);
-            Table.States (55).Kernel := To_Vector ((0 => (40, 33, 0, True)));
-            Table.States (55).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 40, 2)));
-            Table.States (55).Minimal_Complete_Actions_Recursive := True;
+            Add_Action (Table.States (55), (9, 33), (40, 1),  2, null, null);
+            Table.States (55).Kernel := To_Vector ((0 => ((40, 1),  33,  0, 
(40, 1),  2)));
+            Table.States (55).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (40, 1),  2)));
             Table.States (56).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (56), 33, 115);
-            Table.States (56).Kernel := To_Vector ((0 => (38, 16, 1, False)));
-            Table.States (56).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 115)));
+            Add_Action (Table.States (56), 33, (38, 4), 115);
+            Table.States (56).Kernel := To_Vector ((0 => ((38, 4),  16,  1, 
(2147483647, 0),  0)));
+            Table.States (56).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (38, 4),  33, 115)));
             Table.States (57).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (57), 17, 116);
-            Table.States (57).Kernel := To_Vector ((0 => (39, 33, 1, False)));
-            Table.States (57).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 17, 116)));
+            Add_Action (Table.States (57), 17, (39, 1), 116);
+            Table.States (57).Kernel := To_Vector ((0 => ((39, 1),  33,  1, 
(2147483647, 0),  0)));
+            Table.States (57).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (39, 1),  17, 116)));
             Table.States (58).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (58), 17, 117);
-            Table.States (58).Kernel := To_Vector ((0 => (39, 33, 1, False)));
-            Table.States (58).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 17, 117)));
+            Add_Action (Table.States (58), 17, (39, 2), 117);
+            Table.States (58).Kernel := To_Vector ((0 => ((39, 2),  33,  1, 
(2147483647, 0),  0)));
+            Table.States (58).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (39, 2),  17, 117)));
             Table.States (59).Action_List.Set_Capacity (13);
-            Add_Action (Table.States (59), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (41, 1), 2, null,
+            Add_Action (Table.States (59), (8, 10, 15, 16, 20, 23, 28, 30, 32, 
33, 34, 35, 36), (41, 1),  2, null,
             null);
-            Table.States (59).Kernel := To_Vector ((0 => (41, 42, 0, True)));
-            Table.States (59).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 41, 2)));
-            Table.States (59).Minimal_Complete_Actions_Recursive := True;
+            Table.States (59).Kernel := To_Vector ((0 => ((41, 1),  42,  0, 
(41, 1),  2)));
+            Table.States (59).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (41, 1),  2)));
             Table.States (60).Action_List.Set_Capacity (13);
-            Add_Action (Table.States (60), 8, 25);
-            Add_Action (Table.States (60), 10, 26);
-            Add_Action (Table.States (60), 15, 27);
-            Add_Action (Table.States (60), 16, 28);
-            Add_Action (Table.States (60), 20, 29);
-            Add_Action (Table.States (60), 23, Reduce, (38, 0), 4, 
declaration_0'Access, null);
-            Add_Action (Table.States (60), 28, 30);
-            Add_Action (Table.States (60), 30, 31);
-            Add_Action (Table.States (60), 32, 32);
-            Add_Action (Table.States (60), 33, 33);
-            Add_Conflict (Table.States (60), 33, (38, 0), 4, 
declaration_0'Access, null);
-            Add_Action (Table.States (60), 34, 34);
-            Add_Action (Table.States (60), 35, 35);
-            Add_Action (Table.States (60), 36, Reduce, (38, 0), 4, 
declaration_0'Access, null);
+            Add_Action (Table.States (60), 8, (42, 10), 25);
+            Add_Action (Table.States (60), 10, (42, 5), 26);
+            Add_Action (Table.States (60), 15, (42, 0), 27);
+            Add_Action (Table.States (60), 16, (42, 2), 28);
+            Add_Action (Table.States (60), 20, (42, 3), 29);
+            Add_Action (Table.States (60), 23, Reduce, (38, 0),  4, 
declaration_0'Access, null);
+            Add_Action (Table.States (60), 28, (42, 6), 30);
+            Add_Action (Table.States (60), 30, (42, 7), 31);
+            Add_Action (Table.States (60), 32, (42, 4), 32);
+            Add_Action (Table.States (60), 33, (42, 1), 33);
+            Add_Conflict (Table.States (60), 33, (38, 0),  4, 
declaration_0'Access, null);
+            Add_Action (Table.States (60), 34, (42, 8), 34);
+            Add_Action (Table.States (60), 35, (42, 9), 35);
+            Add_Action (Table.States (60), 36, Reduce, (38, 0),  4, 
declaration_0'Access, null);
             Table.States (60).Goto_List.Set_Capacity (1);
             Add_Goto (Table.States (60), 42, 59);
-            Table.States (60).Kernel := To_Vector (((38, 41, 0, False), (41, 
41, 1, True)));
-            Table.States (60).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 38, 4)));
+            Table.States (60).Kernel := To_Vector ((((38, 0),  41,  0, (38, 
0),  4), ((41, 1),  41,  1, (2147483647,
+            0),  0)));
+            Table.States (60).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (38, 0),  4)));
             Table.States (61).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (61), 18, 61);
-            Add_Action (Table.States (61), 19, 62);
-            Add_Action (Table.States (61), 20, 63);
-            Add_Action (Table.States (61), 21, 64);
-            Add_Action (Table.States (61), 33, 65);
-            Add_Action (Table.States (61), 35, 66);
+            Add_Action (Table.States (61), 18, (53, 0), 61);
+            Add_Action (Table.States (61), 19, (52, 0), 62);
+            Add_Action (Table.States (61), 20, (51, 0), 63);
+            Add_Action (Table.States (61), 21, (47, 0), 64);
+            Add_Action (Table.States (61), 33, (48, 1), 65);
+            Add_Action (Table.States (61), 35, (50, 1), 66);
             Table.States (61).Goto_List.Set_Capacity (8);
             Add_Goto (Table.States (61), 47, 67);
             Add_Goto (Table.States (61), 48, 68);
@@ -552,15 +559,16 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (61), 52, 72);
             Add_Goto (Table.States (61), 53, 73);
             Add_Goto (Table.States (61), 54, 118);
-            Table.States (61).Kernel := To_Vector (((53, 18, 2, False), (53, 
18, 3, False)));
-            Table.States (61).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 65)));
+            Table.States (61).Kernel := To_Vector ((((53, 0),  18,  2, 
(2147483647, 0),  0), ((53, 1),  18,  3,
+            (2147483647, 0),  0)));
+            Table.States (61).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (48, 1),  33, 65)));
             Table.States (62).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (62), 18, 75);
-            Add_Action (Table.States (62), 19, 76);
-            Add_Action (Table.States (62), 20, 77);
-            Add_Action (Table.States (62), 21, 78);
-            Add_Action (Table.States (62), 33, 79);
-            Add_Action (Table.States (62), 35, 80);
+            Add_Action (Table.States (62), 18, (53, 0), 75);
+            Add_Action (Table.States (62), 19, (52, 0), 76);
+            Add_Action (Table.States (62), 20, (51, 0), 77);
+            Add_Action (Table.States (62), 21, (47, 0), 78);
+            Add_Action (Table.States (62), 33, (48, 1), 79);
+            Add_Action (Table.States (62), 35, (50, 1), 80);
             Table.States (62).Goto_List.Set_Capacity (8);
             Add_Goto (Table.States (62), 47, 81);
             Add_Goto (Table.States (62), 48, 82);
@@ -570,15 +578,15 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (62), 52, 86);
             Add_Goto (Table.States (62), 53, 87);
             Add_Goto (Table.States (62), 54, 119);
-            Table.States (62).Kernel := To_Vector ((0 => (52, 19, 2, False)));
-            Table.States (62).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 79)));
+            Table.States (62).Kernel := To_Vector ((0 => ((52, 0),  19,  2, 
(2147483647, 0),  0)));
+            Table.States (62).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (48, 1),  33, 79)));
             Table.States (63).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (63), 18, 89);
-            Add_Action (Table.States (63), 19, 90);
-            Add_Action (Table.States (63), 20, 91);
-            Add_Action (Table.States (63), 21, 92);
-            Add_Action (Table.States (63), 33, 93);
-            Add_Action (Table.States (63), 35, 94);
+            Add_Action (Table.States (63), 18, (53, 0), 89);
+            Add_Action (Table.States (63), 19, (52, 0), 90);
+            Add_Action (Table.States (63), 20, (51, 0), 91);
+            Add_Action (Table.States (63), 21, (47, 0), 92);
+            Add_Action (Table.States (63), 33, (48, 1), 93);
+            Add_Action (Table.States (63), 35, (50, 1), 94);
             Table.States (63).Goto_List.Set_Capacity (8);
             Add_Goto (Table.States (63), 47, 95);
             Add_Goto (Table.States (63), 48, 96);
@@ -588,58 +596,62 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (63), 52, 100);
             Add_Goto (Table.States (63), 53, 101);
             Add_Goto (Table.States (63), 54, 120);
-            Table.States (63).Kernel := To_Vector (((51, 20, 2, False), (52, 
20, 3, False), (53, 20, 3, False), (53,
-            20, 3, False)));
-            Table.States (63).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 93)));
+            Table.States (63).Kernel := To_Vector ((((51, 0),  20,  2, 
(2147483647, 0),  0), ((52, 1),  20,  3,
+            (2147483647, 0),  0), ((53, 2),  20,  3, (2147483647, 0),  0), 
((53, 3),  20,  3, (2147483647, 0),  0)));
+            Table.States (63).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (48, 1),  33, 93)));
             Table.States (64).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (64), 33, 121);
-            Table.States (64).Kernel := To_Vector ((0 => (47, 21, 4, False)));
-            Table.States (64).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 121)));
+            Add_Action (Table.States (64), 33, (47, 0), 121);
+            Table.States (64).Kernel := To_Vector ((0 => ((47, 0),  21,  4, 
(2147483647, 0),  0)));
+            Table.States (64).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (47, 0),  33, 121)));
             Table.States (65).Action_List.Set_Capacity (12);
-            Add_Action (Table.States (65), 12, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (65), 16, 122);
-            Add_Action (Table.States (65), 18, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (65), 19, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (65), 20, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (65), 21, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (65), 24, 123);
-            Add_Action (Table.States (65), 25, 124);
-            Add_Action (Table.States (65), 26, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (65), 31, 125);
-            Add_Action (Table.States (65), 33, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (65), 35, Reduce, (50, 0), 1, null, null);
-            Table.States (65).Kernel := To_Vector (((48, 33, 2, False), (50, 
33, 0, False), (52, 33, 1, False), (53,
-            33, 1, False), (53, 33, 1, False)));
-            Table.States (65).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (65), 12, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (65), 16, (48, 1), 122);
+            Add_Action (Table.States (65), 18, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (65), 19, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (65), 20, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (65), 21, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (65), 24, (53, 4), 123);
+            Add_Action (Table.States (65), 25, (52, 2), 124);
+            Add_Action (Table.States (65), 26, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (65), 31, (53, 5), 125);
+            Add_Action (Table.States (65), 33, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (65), 35, Reduce, (50, 0),  1, null, 
null);
+            Table.States (65).Kernel := To_Vector ((((48, 1),  33,  2, 
(2147483647, 0),  0), ((50, 0),  33,  0, (50,
+            0),  1), ((52, 2),  33,  1, (2147483647, 0),  0), ((53, 4),  33,  
1, (2147483647, 0),  0), ((53, 5),  33,
+            1, (2147483647, 0),  0)));
+            Table.States (65).Minimal_Complete_Actions := To_Vector (((Reduce, 
(50, 0),  1), (Shift, (52, 2),  25,
+            124), (Shift, (53, 4),  24, 123), (Shift, (53, 5),  31, 125)));
             Table.States (66).Action_List.Set_Capacity (9);
-            Add_Action (Table.States (66), 12, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (66), 18, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (66), 19, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (66), 20, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (66), 21, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (66), 25, 126);
-            Add_Action (Table.States (66), 26, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (66), 33, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (66), 35, Reduce, (50, 1), 1, null, null);
-            Table.States (66).Kernel := To_Vector (((50, 35, 0, False), (52, 
35, 1, False)));
-            Table.States (66).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (66), 12, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (66), 18, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (66), 19, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (66), 20, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (66), 21, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (66), 25, (52, 3), 126);
+            Add_Action (Table.States (66), 26, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (66), 33, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (66), 35, Reduce, (50, 1),  1, null, 
null);
+            Table.States (66).Kernel := To_Vector ((((50, 1),  35,  0, (50, 
1),  1), ((52, 3),  35,  1, (2147483647,
+            0),  0)));
+            Table.States (66).Minimal_Complete_Actions := To_Vector (((Reduce, 
(50, 1),  1), (Shift, (52, 3),  25,
+            126)));
             Table.States (67).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (67), (12, 18, 19, 20, 21, 26, 33, 35), 
(50, 2), 1, null, null);
-            Table.States (67).Kernel := To_Vector ((0 => (50, 47, 0, False)));
-            Table.States (67).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (67), (12, 18, 19, 20, 21, 26, 33, 35), 
(50, 2),  1, null, null);
+            Table.States (67).Kernel := To_Vector ((0 => ((50, 2),  47,  0, 
(50, 2),  1)));
+            Table.States (67).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (50, 2),  1)));
             Table.States (68).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (68), (12, 18, 19, 20, 21, 26, 33, 35), 
(49, 0), 1, null, null);
-            Table.States (68).Kernel := To_Vector ((0 => (49, 48, 0, False)));
-            Table.States (68).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 49, 1)));
+            Add_Action (Table.States (68), (12, 18, 19, 20, 21, 26, 33, 35), 
(49, 0),  1, null, null);
+            Table.States (68).Kernel := To_Vector ((0 => ((49, 0),  48,  0, 
(49, 0),  1)));
+            Table.States (68).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (49, 0),  1)));
             Table.States (69).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (69), 12, Reduce, (54, 0), 1, null, null);
-            Add_Action (Table.States (69), 18, 61);
-            Add_Action (Table.States (69), 19, 62);
-            Add_Action (Table.States (69), 20, 63);
-            Add_Action (Table.States (69), 21, 64);
-            Add_Action (Table.States (69), 26, Reduce, (54, 0), 1, null, null);
-            Add_Action (Table.States (69), 33, 65);
-            Add_Action (Table.States (69), 35, 66);
+            Add_Action (Table.States (69), 12, Reduce, (54, 0),  1, null, 
null);
+            Add_Action (Table.States (69), 18, (53, 0), 61);
+            Add_Action (Table.States (69), 19, (52, 0), 62);
+            Add_Action (Table.States (69), 20, (51, 0), 63);
+            Add_Action (Table.States (69), 21, (47, 0), 64);
+            Add_Action (Table.States (69), 26, Reduce, (54, 0),  1, null, 
null);
+            Add_Action (Table.States (69), 33, (48, 1), 65);
+            Add_Action (Table.States (69), 35, (50, 1), 66);
             Table.States (69).Goto_List.Set_Capacity (6);
             Add_Goto (Table.States (69), 47, 67);
             Add_Goto (Table.States (69), 48, 127);
@@ -647,36 +659,38 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (69), 51, 71);
             Add_Goto (Table.States (69), 52, 72);
             Add_Goto (Table.States (69), 53, 73);
-            Table.States (69).Kernel := To_Vector (((49, 49, 1, True), (54, 
49, 0, False)));
-            Table.States (69).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 54, 1)));
+            Table.States (69).Kernel := To_Vector ((((49, 1),  49,  1, 
(2147483647, 0),  0), ((54, 0),  49,  0, (54,
+            0),  1)));
+            Table.States (69).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (54, 0),  1)));
             Table.States (70).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (70), (12, 18, 19, 20, 21, 26, 33, 35), 
(48, 0), 1, null, null);
-            Table.States (70).Kernel := To_Vector ((0 => (48, 50, 0, False)));
-            Table.States (70).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 48, 1)));
+            Add_Action (Table.States (70), (12, 18, 19, 20, 21, 26, 33, 35), 
(48, 0),  1, null, null);
+            Table.States (70).Kernel := To_Vector ((0 => ((48, 0),  50,  0, 
(48, 0),  1)));
+            Table.States (70).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (48, 0),  1)));
             Table.States (71).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (71), (12, 18, 19, 20, 21, 26, 33, 35), 
(50, 5), 1, null, null);
-            Table.States (71).Kernel := To_Vector ((0 => (50, 51, 0, False)));
-            Table.States (71).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (71), (12, 18, 19, 20, 21, 26, 33, 35), 
(50, 5),  1, null, null);
+            Table.States (71).Kernel := To_Vector ((0 => ((50, 5),  51,  0, 
(50, 5),  1)));
+            Table.States (71).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (50, 5),  1)));
             Table.States (72).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (72), (12, 18, 19, 20, 21, 26, 33, 35), 
(50, 3), 1, null, null);
-            Table.States (72).Kernel := To_Vector ((0 => (50, 52, 0, False)));
-            Table.States (72).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (72), (12, 18, 19, 20, 21, 26, 33, 35), 
(50, 3),  1, null, null);
+            Table.States (72).Kernel := To_Vector ((0 => ((50, 3),  52,  0, 
(50, 3),  1)));
+            Table.States (72).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (50, 3),  1)));
             Table.States (73).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (73), (12, 18, 19, 20, 21, 26, 33, 35), 
(50, 4), 1, null, null);
-            Table.States (73).Kernel := To_Vector ((0 => (50, 53, 0, False)));
-            Table.States (73).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (73), (12, 18, 19, 20, 21, 26, 33, 35), 
(50, 4),  1, null, null);
+            Table.States (73).Kernel := To_Vector ((0 => ((50, 4),  53,  0, 
(50, 4),  1)));
+            Table.States (73).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (50, 4),  1)));
             Table.States (74).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (74), 12, 128);
-            Add_Action (Table.States (74), 26, 129);
-            Table.States (74).Kernel := To_Vector (((53, 54, 1, False), (53, 
54, 2, False), (54, 54, 2, True)));
-            Table.States (74).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 26, 129)));
+            Add_Action (Table.States (74), 12, (54, 1), 128);
+            Add_Action (Table.States (74), 26, (53, 0), 129);
+            Table.States (74).Kernel := To_Vector ((((53, 0),  54,  1, 
(2147483647, 0),  0), ((53, 1),  54,  2,
+            (2147483647, 0),  0), ((54, 1),  54,  2, (2147483647, 0),  0)));
+            Table.States (74).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (53, 0),  26, 129)));
             Table.States (75).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (75), 18, 61);
-            Add_Action (Table.States (75), 19, 62);
-            Add_Action (Table.States (75), 20, 63);
-            Add_Action (Table.States (75), 21, 64);
-            Add_Action (Table.States (75), 33, 65);
-            Add_Action (Table.States (75), 35, 66);
+            Add_Action (Table.States (75), 18, (53, 0), 61);
+            Add_Action (Table.States (75), 19, (52, 0), 62);
+            Add_Action (Table.States (75), 20, (51, 0), 63);
+            Add_Action (Table.States (75), 21, (47, 0), 64);
+            Add_Action (Table.States (75), 33, (48, 1), 65);
+            Add_Action (Table.States (75), 35, (50, 1), 66);
             Table.States (75).Goto_List.Set_Capacity (8);
             Add_Goto (Table.States (75), 47, 67);
             Add_Goto (Table.States (75), 48, 68);
@@ -686,15 +700,16 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (75), 52, 72);
             Add_Goto (Table.States (75), 53, 73);
             Add_Goto (Table.States (75), 54, 130);
-            Table.States (75).Kernel := To_Vector (((53, 18, 2, False), (53, 
18, 3, False)));
-            Table.States (75).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 65)));
+            Table.States (75).Kernel := To_Vector ((((53, 0),  18,  2, 
(2147483647, 0),  0), ((53, 1),  18,  3,
+            (2147483647, 0),  0)));
+            Table.States (75).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (48, 1),  33, 65)));
             Table.States (76).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (76), 18, 75);
-            Add_Action (Table.States (76), 19, 76);
-            Add_Action (Table.States (76), 20, 77);
-            Add_Action (Table.States (76), 21, 78);
-            Add_Action (Table.States (76), 33, 79);
-            Add_Action (Table.States (76), 35, 80);
+            Add_Action (Table.States (76), 18, (53, 0), 75);
+            Add_Action (Table.States (76), 19, (52, 0), 76);
+            Add_Action (Table.States (76), 20, (51, 0), 77);
+            Add_Action (Table.States (76), 21, (47, 0), 78);
+            Add_Action (Table.States (76), 33, (48, 1), 79);
+            Add_Action (Table.States (76), 35, (50, 1), 80);
             Table.States (76).Goto_List.Set_Capacity (8);
             Add_Goto (Table.States (76), 47, 81);
             Add_Goto (Table.States (76), 48, 82);
@@ -704,15 +719,15 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (76), 52, 86);
             Add_Goto (Table.States (76), 53, 87);
             Add_Goto (Table.States (76), 54, 131);
-            Table.States (76).Kernel := To_Vector ((0 => (52, 19, 2, False)));
-            Table.States (76).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 79)));
+            Table.States (76).Kernel := To_Vector ((0 => ((52, 0),  19,  2, 
(2147483647, 0),  0)));
+            Table.States (76).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (48, 1),  33, 79)));
             Table.States (77).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (77), 18, 89);
-            Add_Action (Table.States (77), 19, 90);
-            Add_Action (Table.States (77), 20, 91);
-            Add_Action (Table.States (77), 21, 92);
-            Add_Action (Table.States (77), 33, 93);
-            Add_Action (Table.States (77), 35, 94);
+            Add_Action (Table.States (77), 18, (53, 0), 89);
+            Add_Action (Table.States (77), 19, (52, 0), 90);
+            Add_Action (Table.States (77), 20, (51, 0), 91);
+            Add_Action (Table.States (77), 21, (47, 0), 92);
+            Add_Action (Table.States (77), 33, (48, 1), 93);
+            Add_Action (Table.States (77), 35, (50, 1), 94);
             Table.States (77).Goto_List.Set_Capacity (8);
             Add_Goto (Table.States (77), 47, 95);
             Add_Goto (Table.States (77), 48, 96);
@@ -722,58 +737,62 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (77), 52, 100);
             Add_Goto (Table.States (77), 53, 101);
             Add_Goto (Table.States (77), 54, 132);
-            Table.States (77).Kernel := To_Vector (((51, 20, 2, False), (52, 
20, 3, False), (53, 20, 3, False), (53,
-            20, 3, False)));
-            Table.States (77).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 93)));
+            Table.States (77).Kernel := To_Vector ((((51, 0),  20,  2, 
(2147483647, 0),  0), ((52, 1),  20,  3,
+            (2147483647, 0),  0), ((53, 2),  20,  3, (2147483647, 0),  0), 
((53, 3),  20,  3, (2147483647, 0),  0)));
+            Table.States (77).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (48, 1),  33, 93)));
             Table.States (78).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (78), 33, 133);
-            Table.States (78).Kernel := To_Vector ((0 => (47, 21, 4, False)));
-            Table.States (78).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 133)));
+            Add_Action (Table.States (78), 33, (47, 0), 133);
+            Table.States (78).Kernel := To_Vector ((0 => ((47, 0),  21,  4, 
(2147483647, 0),  0)));
+            Table.States (78).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (47, 0),  33, 133)));
             Table.States (79).Action_List.Set_Capacity (12);
-            Add_Action (Table.States (79), 12, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (79), 16, 134);
-            Add_Action (Table.States (79), 18, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (79), 19, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (79), 20, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (79), 21, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (79), 24, 135);
-            Add_Action (Table.States (79), 25, 136);
-            Add_Action (Table.States (79), 27, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (79), 31, 137);
-            Add_Action (Table.States (79), 33, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (79), 35, Reduce, (50, 0), 1, null, null);
-            Table.States (79).Kernel := To_Vector (((48, 33, 2, False), (50, 
33, 0, False), (52, 33, 1, False), (53,
-            33, 1, False), (53, 33, 1, False)));
-            Table.States (79).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (79), 12, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (79), 16, (48, 1), 134);
+            Add_Action (Table.States (79), 18, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (79), 19, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (79), 20, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (79), 21, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (79), 24, (53, 4), 135);
+            Add_Action (Table.States (79), 25, (52, 2), 136);
+            Add_Action (Table.States (79), 27, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (79), 31, (53, 5), 137);
+            Add_Action (Table.States (79), 33, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (79), 35, Reduce, (50, 0),  1, null, 
null);
+            Table.States (79).Kernel := To_Vector ((((48, 1),  33,  2, 
(2147483647, 0),  0), ((50, 0),  33,  0, (50,
+            0),  1), ((52, 2),  33,  1, (2147483647, 0),  0), ((53, 4),  33,  
1, (2147483647, 0),  0), ((53, 5),  33,
+            1, (2147483647, 0),  0)));
+            Table.States (79).Minimal_Complete_Actions := To_Vector (((Reduce, 
(50, 0),  1), (Shift, (52, 2),  25,
+            136), (Shift, (53, 4),  24, 135), (Shift, (53, 5),  31, 137)));
             Table.States (80).Action_List.Set_Capacity (9);
-            Add_Action (Table.States (80), 12, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (80), 18, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (80), 19, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (80), 20, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (80), 21, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (80), 25, 138);
-            Add_Action (Table.States (80), 27, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (80), 33, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (80), 35, Reduce, (50, 1), 1, null, null);
-            Table.States (80).Kernel := To_Vector (((50, 35, 0, False), (52, 
35, 1, False)));
-            Table.States (80).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (80), 12, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (80), 18, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (80), 19, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (80), 20, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (80), 21, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (80), 25, (52, 3), 138);
+            Add_Action (Table.States (80), 27, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (80), 33, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (80), 35, Reduce, (50, 1),  1, null, 
null);
+            Table.States (80).Kernel := To_Vector ((((50, 1),  35,  0, (50, 
1),  1), ((52, 3),  35,  1, (2147483647,
+            0),  0)));
+            Table.States (80).Minimal_Complete_Actions := To_Vector (((Reduce, 
(50, 1),  1), (Shift, (52, 3),  25,
+            138)));
             Table.States (81).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (81), (12, 18, 19, 20, 21, 27, 33, 35), 
(50, 2), 1, null, null);
-            Table.States (81).Kernel := To_Vector ((0 => (50, 47, 0, False)));
-            Table.States (81).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (81), (12, 18, 19, 20, 21, 27, 33, 35), 
(50, 2),  1, null, null);
+            Table.States (81).Kernel := To_Vector ((0 => ((50, 2),  47,  0, 
(50, 2),  1)));
+            Table.States (81).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (50, 2),  1)));
             Table.States (82).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (82), (12, 18, 19, 20, 21, 27, 33, 35), 
(49, 0), 1, null, null);
-            Table.States (82).Kernel := To_Vector ((0 => (49, 48, 0, False)));
-            Table.States (82).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 49, 1)));
+            Add_Action (Table.States (82), (12, 18, 19, 20, 21, 27, 33, 35), 
(49, 0),  1, null, null);
+            Table.States (82).Kernel := To_Vector ((0 => ((49, 0),  48,  0, 
(49, 0),  1)));
+            Table.States (82).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (49, 0),  1)));
             Table.States (83).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (83), 12, Reduce, (54, 0), 1, null, null);
-            Add_Action (Table.States (83), 18, 75);
-            Add_Action (Table.States (83), 19, 76);
-            Add_Action (Table.States (83), 20, 77);
-            Add_Action (Table.States (83), 21, 78);
-            Add_Action (Table.States (83), 27, Reduce, (54, 0), 1, null, null);
-            Add_Action (Table.States (83), 33, 79);
-            Add_Action (Table.States (83), 35, 80);
+            Add_Action (Table.States (83), 12, Reduce, (54, 0),  1, null, 
null);
+            Add_Action (Table.States (83), 18, (53, 0), 75);
+            Add_Action (Table.States (83), 19, (52, 0), 76);
+            Add_Action (Table.States (83), 20, (51, 0), 77);
+            Add_Action (Table.States (83), 21, (47, 0), 78);
+            Add_Action (Table.States (83), 27, Reduce, (54, 0),  1, null, 
null);
+            Add_Action (Table.States (83), 33, (48, 1), 79);
+            Add_Action (Table.States (83), 35, (50, 1), 80);
             Table.States (83).Goto_List.Set_Capacity (6);
             Add_Goto (Table.States (83), 47, 81);
             Add_Goto (Table.States (83), 48, 139);
@@ -781,39 +800,41 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (83), 51, 85);
             Add_Goto (Table.States (83), 52, 86);
             Add_Goto (Table.States (83), 53, 87);
-            Table.States (83).Kernel := To_Vector (((49, 49, 1, True), (54, 
49, 0, False)));
-            Table.States (83).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 54, 1)));
-            Table.States (84).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (84), (12, 18, 19, 20, 21, 27, 33, 35), 
(48, 0), 1, null, null);
-            Table.States (84).Kernel := To_Vector ((0 => (48, 50, 0, False)));
-            Table.States (84).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 48, 1)));
+            Table.States (83).Kernel := To_Vector ((((49, 1),  49,  1, 
(2147483647, 0),  0), ((54, 0),  49,  0, (54,
+            0),  1)));
+            Table.States (83).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (54, 0),  1)));
          end Subr_1;
          procedure Subr_2
          is begin
+            Table.States (84).Action_List.Set_Capacity (8);
+            Add_Action (Table.States (84), (12, 18, 19, 20, 21, 27, 33, 35), 
(48, 0),  1, null, null);
+            Table.States (84).Kernel := To_Vector ((0 => ((48, 0),  50,  0, 
(48, 0),  1)));
+            Table.States (84).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (48, 0),  1)));
             Table.States (85).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (85), (12, 18, 19, 20, 21, 27, 33, 35), 
(50, 5), 1, null, null);
-            Table.States (85).Kernel := To_Vector ((0 => (50, 51, 0, False)));
-            Table.States (85).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (85), (12, 18, 19, 20, 21, 27, 33, 35), 
(50, 5),  1, null, null);
+            Table.States (85).Kernel := To_Vector ((0 => ((50, 5),  51,  0, 
(50, 5),  1)));
+            Table.States (85).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (50, 5),  1)));
             Table.States (86).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (86), (12, 18, 19, 20, 21, 27, 33, 35), 
(50, 3), 1, null, null);
-            Table.States (86).Kernel := To_Vector ((0 => (50, 52, 0, False)));
-            Table.States (86).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (86), (12, 18, 19, 20, 21, 27, 33, 35), 
(50, 3),  1, null, null);
+            Table.States (86).Kernel := To_Vector ((0 => ((50, 3),  52,  0, 
(50, 3),  1)));
+            Table.States (86).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (50, 3),  1)));
             Table.States (87).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (87), (12, 18, 19, 20, 21, 27, 33, 35), 
(50, 4), 1, null, null);
-            Table.States (87).Kernel := To_Vector ((0 => (50, 53, 0, False)));
-            Table.States (87).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (87), (12, 18, 19, 20, 21, 27, 33, 35), 
(50, 4),  1, null, null);
+            Table.States (87).Kernel := To_Vector ((0 => ((50, 4),  53,  0, 
(50, 4),  1)));
+            Table.States (87).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (50, 4),  1)));
             Table.States (88).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (88), 12, 140);
-            Add_Action (Table.States (88), 27, 141);
-            Table.States (88).Kernel := To_Vector (((52, 54, 1, False), (54, 
54, 2, True)));
-            Table.States (88).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 27, 141)));
+            Add_Action (Table.States (88), 12, (54, 1), 140);
+            Add_Action (Table.States (88), 27, (52, 0), 141);
+            Table.States (88).Kernel := To_Vector ((((52, 0),  54,  1, 
(2147483647, 0),  0), ((54, 1),  54,  2,
+            (2147483647, 0),  0)));
+            Table.States (88).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (52, 0),  27, 141)));
             Table.States (89).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (89), 18, 61);
-            Add_Action (Table.States (89), 19, 62);
-            Add_Action (Table.States (89), 20, 63);
-            Add_Action (Table.States (89), 21, 64);
-            Add_Action (Table.States (89), 33, 65);
-            Add_Action (Table.States (89), 35, 66);
+            Add_Action (Table.States (89), 18, (53, 0), 61);
+            Add_Action (Table.States (89), 19, (52, 0), 62);
+            Add_Action (Table.States (89), 20, (51, 0), 63);
+            Add_Action (Table.States (89), 21, (47, 0), 64);
+            Add_Action (Table.States (89), 33, (48, 1), 65);
+            Add_Action (Table.States (89), 35, (50, 1), 66);
             Table.States (89).Goto_List.Set_Capacity (8);
             Add_Goto (Table.States (89), 47, 67);
             Add_Goto (Table.States (89), 48, 68);
@@ -823,15 +844,16 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (89), 52, 72);
             Add_Goto (Table.States (89), 53, 73);
             Add_Goto (Table.States (89), 54, 142);
-            Table.States (89).Kernel := To_Vector (((53, 18, 2, False), (53, 
18, 3, False)));
-            Table.States (89).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 65)));
+            Table.States (89).Kernel := To_Vector ((((53, 0),  18,  2, 
(2147483647, 0),  0), ((53, 1),  18,  3,
+            (2147483647, 0),  0)));
+            Table.States (89).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (48, 1),  33, 65)));
             Table.States (90).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (90), 18, 75);
-            Add_Action (Table.States (90), 19, 76);
-            Add_Action (Table.States (90), 20, 77);
-            Add_Action (Table.States (90), 21, 78);
-            Add_Action (Table.States (90), 33, 79);
-            Add_Action (Table.States (90), 35, 80);
+            Add_Action (Table.States (90), 18, (53, 0), 75);
+            Add_Action (Table.States (90), 19, (52, 0), 76);
+            Add_Action (Table.States (90), 20, (51, 0), 77);
+            Add_Action (Table.States (90), 21, (47, 0), 78);
+            Add_Action (Table.States (90), 33, (48, 1), 79);
+            Add_Action (Table.States (90), 35, (50, 1), 80);
             Table.States (90).Goto_List.Set_Capacity (8);
             Add_Goto (Table.States (90), 47, 81);
             Add_Goto (Table.States (90), 48, 82);
@@ -841,15 +863,15 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (90), 52, 86);
             Add_Goto (Table.States (90), 53, 87);
             Add_Goto (Table.States (90), 54, 143);
-            Table.States (90).Kernel := To_Vector ((0 => (52, 19, 2, False)));
-            Table.States (90).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 79)));
+            Table.States (90).Kernel := To_Vector ((0 => ((52, 0),  19,  2, 
(2147483647, 0),  0)));
+            Table.States (90).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (48, 1),  33, 79)));
             Table.States (91).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (91), 18, 89);
-            Add_Action (Table.States (91), 19, 90);
-            Add_Action (Table.States (91), 20, 91);
-            Add_Action (Table.States (91), 21, 92);
-            Add_Action (Table.States (91), 33, 93);
-            Add_Action (Table.States (91), 35, 94);
+            Add_Action (Table.States (91), 18, (53, 0), 89);
+            Add_Action (Table.States (91), 19, (52, 0), 90);
+            Add_Action (Table.States (91), 20, (51, 0), 91);
+            Add_Action (Table.States (91), 21, (47, 0), 92);
+            Add_Action (Table.States (91), 33, (48, 1), 93);
+            Add_Action (Table.States (91), 35, (50, 1), 94);
             Table.States (91).Goto_List.Set_Capacity (8);
             Add_Goto (Table.States (91), 47, 95);
             Add_Goto (Table.States (91), 48, 96);
@@ -859,58 +881,62 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (91), 52, 100);
             Add_Goto (Table.States (91), 53, 101);
             Add_Goto (Table.States (91), 54, 144);
-            Table.States (91).Kernel := To_Vector (((51, 20, 2, False), (52, 
20, 3, False), (53, 20, 3, False), (53,
-            20, 3, False)));
-            Table.States (91).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 93)));
+            Table.States (91).Kernel := To_Vector ((((51, 0),  20,  2, 
(2147483647, 0),  0), ((52, 1),  20,  3,
+            (2147483647, 0),  0), ((53, 2),  20,  3, (2147483647, 0),  0), 
((53, 3),  20,  3, (2147483647, 0),  0)));
+            Table.States (91).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (48, 1),  33, 93)));
             Table.States (92).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (92), 33, 145);
-            Table.States (92).Kernel := To_Vector ((0 => (47, 21, 4, False)));
-            Table.States (92).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 145)));
+            Add_Action (Table.States (92), 33, (47, 0), 145);
+            Table.States (92).Kernel := To_Vector ((0 => ((47, 0),  21,  4, 
(2147483647, 0),  0)));
+            Table.States (92).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (47, 0),  33, 145)));
             Table.States (93).Action_List.Set_Capacity (12);
-            Add_Action (Table.States (93), 12, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (93), 16, 146);
-            Add_Action (Table.States (93), 18, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (93), 19, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (93), 20, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (93), 21, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (93), 24, 147);
-            Add_Action (Table.States (93), 25, 148);
-            Add_Action (Table.States (93), 28, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (93), 31, 149);
-            Add_Action (Table.States (93), 33, Reduce, (50, 0), 1, null, null);
-            Add_Action (Table.States (93), 35, Reduce, (50, 0), 1, null, null);
-            Table.States (93).Kernel := To_Vector (((48, 33, 2, False), (50, 
33, 0, False), (52, 33, 1, False), (53,
-            33, 1, False), (53, 33, 1, False)));
-            Table.States (93).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (93), 12, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (93), 16, (48, 1), 146);
+            Add_Action (Table.States (93), 18, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (93), 19, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (93), 20, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (93), 21, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (93), 24, (53, 4), 147);
+            Add_Action (Table.States (93), 25, (52, 2), 148);
+            Add_Action (Table.States (93), 28, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (93), 31, (53, 5), 149);
+            Add_Action (Table.States (93), 33, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (93), 35, Reduce, (50, 0),  1, null, 
null);
+            Table.States (93).Kernel := To_Vector ((((48, 1),  33,  2, 
(2147483647, 0),  0), ((50, 0),  33,  0, (50,
+            0),  1), ((52, 2),  33,  1, (2147483647, 0),  0), ((53, 4),  33,  
1, (2147483647, 0),  0), ((53, 5),  33,
+            1, (2147483647, 0),  0)));
+            Table.States (93).Minimal_Complete_Actions := To_Vector (((Reduce, 
(50, 0),  1), (Shift, (52, 2),  25,
+            148), (Shift, (53, 4),  24, 147), (Shift, (53, 5),  31, 149)));
             Table.States (94).Action_List.Set_Capacity (9);
-            Add_Action (Table.States (94), 12, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (94), 18, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (94), 19, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (94), 20, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (94), 21, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (94), 25, 150);
-            Add_Action (Table.States (94), 28, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (94), 33, Reduce, (50, 1), 1, null, null);
-            Add_Action (Table.States (94), 35, Reduce, (50, 1), 1, null, null);
-            Table.States (94).Kernel := To_Vector (((50, 35, 0, False), (52, 
35, 1, False)));
-            Table.States (94).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (94), 12, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (94), 18, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (94), 19, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (94), 20, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (94), 21, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (94), 25, (52, 3), 150);
+            Add_Action (Table.States (94), 28, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (94), 33, Reduce, (50, 1),  1, null, 
null);
+            Add_Action (Table.States (94), 35, Reduce, (50, 1),  1, null, 
null);
+            Table.States (94).Kernel := To_Vector ((((50, 1),  35,  0, (50, 
1),  1), ((52, 3),  35,  1, (2147483647,
+            0),  0)));
+            Table.States (94).Minimal_Complete_Actions := To_Vector (((Reduce, 
(50, 1),  1), (Shift, (52, 3),  25,
+            150)));
             Table.States (95).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (95), (12, 18, 19, 20, 21, 28, 33, 35), 
(50, 2), 1, null, null);
-            Table.States (95).Kernel := To_Vector ((0 => (50, 47, 0, False)));
-            Table.States (95).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (95), (12, 18, 19, 20, 21, 28, 33, 35), 
(50, 2),  1, null, null);
+            Table.States (95).Kernel := To_Vector ((0 => ((50, 2),  47,  0, 
(50, 2),  1)));
+            Table.States (95).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (50, 2),  1)));
             Table.States (96).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (96), (12, 18, 19, 20, 21, 28, 33, 35), 
(49, 0), 1, null, null);
-            Table.States (96).Kernel := To_Vector ((0 => (49, 48, 0, False)));
-            Table.States (96).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 49, 1)));
+            Add_Action (Table.States (96), (12, 18, 19, 20, 21, 28, 33, 35), 
(49, 0),  1, null, null);
+            Table.States (96).Kernel := To_Vector ((0 => ((49, 0),  48,  0, 
(49, 0),  1)));
+            Table.States (96).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (49, 0),  1)));
             Table.States (97).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (97), 12, Reduce, (54, 0), 1, null, null);
-            Add_Action (Table.States (97), 18, 89);
-            Add_Action (Table.States (97), 19, 90);
-            Add_Action (Table.States (97), 20, 91);
-            Add_Action (Table.States (97), 21, 92);
-            Add_Action (Table.States (97), 28, Reduce, (54, 0), 1, null, null);
-            Add_Action (Table.States (97), 33, 93);
-            Add_Action (Table.States (97), 35, 94);
+            Add_Action (Table.States (97), 12, Reduce, (54, 0),  1, null, 
null);
+            Add_Action (Table.States (97), 18, (53, 0), 89);
+            Add_Action (Table.States (97), 19, (52, 0), 90);
+            Add_Action (Table.States (97), 20, (51, 0), 91);
+            Add_Action (Table.States (97), 21, (47, 0), 92);
+            Add_Action (Table.States (97), 28, Reduce, (54, 0),  1, null, 
null);
+            Add_Action (Table.States (97), 33, (48, 1), 93);
+            Add_Action (Table.States (97), 35, (50, 1), 94);
             Table.States (97).Goto_List.Set_Capacity (6);
             Add_Goto (Table.States (97), 47, 95);
             Add_Goto (Table.States (97), 48, 151);
@@ -918,77 +944,79 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (97), 51, 99);
             Add_Goto (Table.States (97), 52, 100);
             Add_Goto (Table.States (97), 53, 101);
-            Table.States (97).Kernel := To_Vector (((49, 49, 1, True), (54, 
49, 0, False)));
-            Table.States (97).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 54, 1)));
+            Table.States (97).Kernel := To_Vector ((((49, 1),  49,  1, 
(2147483647, 0),  0), ((54, 0),  49,  0, (54,
+            0),  1)));
+            Table.States (97).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (54, 0),  1)));
             Table.States (98).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (98), (12, 18, 19, 20, 21, 28, 33, 35), 
(48, 0), 1, null, null);
-            Table.States (98).Kernel := To_Vector ((0 => (48, 50, 0, False)));
-            Table.States (98).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 48, 1)));
+            Add_Action (Table.States (98), (12, 18, 19, 20, 21, 28, 33, 35), 
(48, 0),  1, null, null);
+            Table.States (98).Kernel := To_Vector ((0 => ((48, 0),  50,  0, 
(48, 0),  1)));
+            Table.States (98).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (48, 0),  1)));
             Table.States (99).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (99), (12, 18, 19, 20, 21, 28, 33, 35), 
(50, 5), 1, null, null);
-            Table.States (99).Kernel := To_Vector ((0 => (50, 51, 0, False)));
-            Table.States (99).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (99), (12, 18, 19, 20, 21, 28, 33, 35), 
(50, 5),  1, null, null);
+            Table.States (99).Kernel := To_Vector ((0 => ((50, 5),  51,  0, 
(50, 5),  1)));
+            Table.States (99).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (50, 5),  1)));
             Table.States (100).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (100), (12, 18, 19, 20, 21, 28, 33, 35), 
(50, 3), 1, null, null);
-            Table.States (100).Kernel := To_Vector ((0 => (50, 52, 0, False)));
-            Table.States (100).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (100), (12, 18, 19, 20, 21, 28, 33, 35), 
(50, 3),  1, null, null);
+            Table.States (100).Kernel := To_Vector ((0 => ((50, 3),  52,  0, 
(50, 3),  1)));
+            Table.States (100).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (50, 3),  1)));
             Table.States (101).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (101), (12, 18, 19, 20, 21, 28, 33, 35), 
(50, 4), 1, null, null);
-            Table.States (101).Kernel := To_Vector ((0 => (50, 53, 0, False)));
-            Table.States (101).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (101), (12, 18, 19, 20, 21, 28, 33, 35), 
(50, 4),  1, null, null);
+            Table.States (101).Kernel := To_Vector ((0 => ((50, 4),  53,  0, 
(50, 4),  1)));
+            Table.States (101).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (50, 4),  1)));
             Table.States (102).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (102), 12, 152);
-            Add_Action (Table.States (102), 28, 153);
-            Table.States (102).Kernel := To_Vector (((51, 54, 1, False), (52, 
54, 2, False), (53, 54, 2, False), (53,
-            54, 2, False), (54, 54, 2, True)));
-            Table.States (102).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 28, 153)));
+            Add_Action (Table.States (102), 12, (54, 1), 152);
+            Add_Action (Table.States (102), 28, (51, 0), 153);
+            Table.States (102).Kernel := To_Vector ((((51, 0),  54,  1, 
(2147483647, 0),  0), ((52, 1),  54,  2,
+            (2147483647, 0),  0), ((53, 2),  54,  2, (2147483647, 0),  0), 
((53, 3),  54,  2, (2147483647, 0),  0),
+            ((54, 1),  54,  2, (2147483647, 0),  0)));
+            Table.States (102).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (51, 0),  28, 153)));
             Table.States (103).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (103), 16, 154);
-            Table.States (103).Kernel := To_Vector ((0 => (47, 33, 3, False)));
-            Table.States (103).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 16, 154)));
+            Add_Action (Table.States (103), 16, (47, 0), 154);
+            Table.States (103).Kernel := To_Vector ((0 => ((47, 0),  33,  3, 
(2147483647, 0),  0)));
+            Table.States (103).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (47, 0),  16, 154)));
             Table.States (104).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (104), 18, 39);
-            Add_Action (Table.States (104), 19, 40);
-            Add_Action (Table.States (104), 20, 41);
-            Add_Action (Table.States (104), 21, 42);
-            Add_Action (Table.States (104), 33, 155);
-            Add_Action (Table.States (104), 35, 44);
+            Add_Action (Table.States (104), 18, (53, 0), 39);
+            Add_Action (Table.States (104), 19, (52, 0), 40);
+            Add_Action (Table.States (104), 20, (51, 0), 41);
+            Add_Action (Table.States (104), 21, (47, 0), 42);
+            Add_Action (Table.States (104), 33, (50, 0), 155);
+            Add_Action (Table.States (104), 35, (50, 1), 44);
             Table.States (104).Goto_List.Set_Capacity (5);
             Add_Goto (Table.States (104), 47, 47);
             Add_Goto (Table.States (104), 50, 156);
             Add_Goto (Table.States (104), 51, 51);
             Add_Goto (Table.States (104), 52, 52);
             Add_Goto (Table.States (104), 53, 53);
-            Table.States (104).Kernel := To_Vector ((0 => (48, 16, 1, False)));
-            Table.States (104).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 155)));
+            Table.States (104).Kernel := To_Vector ((0 => ((48, 1),  16,  1, 
(2147483647, 0),  0)));
+            Table.States (104).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (50, 0),  33, 155)));
             Table.States (105).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (105), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (53, 4), 2, null, null);
-            Table.States (105).Kernel := To_Vector ((0 => (53, 24, 0, False)));
-            Table.States (105).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 2)));
+            Add_Action (Table.States (105), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (53, 4),  2, null, null);
+            Table.States (105).Kernel := To_Vector ((0 => ((53, 4),  24,  0, 
(53, 4),  2)));
+            Table.States (105).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 4),  2)));
             Table.States (106).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (106), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (52, 2), 2, null, null);
-            Table.States (106).Kernel := To_Vector ((0 => (52, 25, 0, False)));
-            Table.States (106).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 52, 2)));
+            Add_Action (Table.States (106), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (52, 2),  2, null, null);
+            Table.States (106).Kernel := To_Vector ((0 => ((52, 2),  25,  0, 
(52, 2),  2)));
+            Table.States (106).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (52, 2),  2)));
             Table.States (107).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (107), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (53, 5), 2, null, null);
-            Table.States (107).Kernel := To_Vector ((0 => (53, 31, 0, False)));
-            Table.States (107).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 2)));
+            Add_Action (Table.States (107), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (53, 5),  2, null, null);
+            Table.States (107).Kernel := To_Vector ((0 => ((53, 5),  31,  0, 
(53, 5),  2)));
+            Table.States (107).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 5),  2)));
             Table.States (108).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (108), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (52, 3), 2, null, null);
-            Table.States (108).Kernel := To_Vector ((0 => (52, 25, 0, False)));
-            Table.States (108).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 52, 2)));
+            Add_Action (Table.States (108), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (52, 3),  2, null, null);
+            Table.States (108).Kernel := To_Vector ((0 => ((52, 3),  25,  0, 
(52, 3),  2)));
+            Table.States (108).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (52, 3),  2)));
             Table.States (109).Action_List.Set_Capacity (10);
-            Add_Action (Table.States (109), 12, Reduce, (46, 0), 0, null, 
null);
-            Add_Action (Table.States (109), 18, 39);
-            Add_Action (Table.States (109), 19, 40);
-            Add_Action (Table.States (109), 20, 41);
-            Add_Action (Table.States (109), 21, 42);
-            Add_Action (Table.States (109), 23, Reduce, (46, 0), 0, null, 
null);
-            Add_Action (Table.States (109), 29, Reduce, (46, 0), 0, null, 
null);
-            Add_Action (Table.States (109), 33, 43);
-            Add_Conflict (Table.States (109), 33, (46, 0), 0, null, null);
-            Add_Action (Table.States (109), 35, 44);
-            Add_Action (Table.States (109), 36, Reduce, (46, 0), 0, null, 
null);
+            Add_Action (Table.States (109), 12, Reduce, (46, 0),  0, null, 
null);
+            Add_Action (Table.States (109), 18, (53, 0), 39);
+            Add_Action (Table.States (109), 19, (52, 0), 40);
+            Add_Action (Table.States (109), 20, (51, 0), 41);
+            Add_Action (Table.States (109), 21, (47, 0), 42);
+            Add_Action (Table.States (109), 23, Reduce, (46, 0),  0, null, 
null);
+            Add_Action (Table.States (109), 29, Reduce, (46, 0),  0, null, 
null);
+            Add_Action (Table.States (109), 33, (48, 1), 43);
+            Add_Conflict (Table.States (109), 33, (46, 0),  0, null, null);
+            Add_Action (Table.States (109), 35, (50, 1), 44);
+            Add_Action (Table.States (109), 36, Reduce, (46, 0),  0, null, 
null);
             Table.States (109).Goto_List.Set_Capacity (8);
             Add_Goto (Table.States (109), 46, 157);
             Add_Goto (Table.States (109), 47, 47);
@@ -998,112 +1026,113 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (109), 51, 51);
             Add_Goto (Table.States (109), 52, 52);
             Add_Goto (Table.States (109), 53, 53);
-            Table.States (109).Kernel := To_Vector ((0 => (45, 12, 0, True)));
-            Table.States (109).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 46, 0)));
-            Table.States (109).Minimal_Complete_Actions_Recursive := True;
+            Table.States (109).Kernel := To_Vector ((0 => ((45, 1),  12,  0, 
(46, 0),  0)));
+            Table.States (109).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (46, 0),  0)));
             Table.States (110).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (110), 4, 158);
-            Add_Action (Table.States (110), 5, 159);
-            Table.States (110).Kernel := To_Vector (((45, 23, 4, True), (45, 
23, 2, True)));
-            Table.States (110).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 4, 158)));
-            Table.States (110).Minimal_Complete_Actions_Recursive := True;
+            Add_Action (Table.States (110), 4, (45, 3), 158);
+            Add_Action (Table.States (110), 5, (45, 2), 159);
+            Table.States (110).Kernel := To_Vector ((((45, 2),  23,  4, 
(2147483647, 0),  0), ((45, 3),  23,  2,
+            (2147483647, 0),  0)));
             Table.States (111).Action_List.Set_Capacity (3);
-            Add_Action (Table.States (111), (23, 33, 36), (44, 0), 1, null, 
null);
-            Table.States (111).Kernel := To_Vector ((0 => (44, 29, 0, False)));
-            Table.States (111).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 44, 1)));
+            Add_Action (Table.States (111), (23, 33, 36), (44, 0),  1, null, 
null);
+            Table.States (111).Kernel := To_Vector ((0 => ((44, 0),  29,  0, 
(44, 0),  1)));
+            Table.States (111).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (44, 0),  1)));
             Table.States (112).Action_List.Set_Capacity (3);
-            Add_Action (Table.States (112), (23, 33, 36), (43, 0), 4, 
nonterminal_0'Access, null);
-            Table.States (112).Kernel := To_Vector ((0 => (43, 44, 0, False)));
-            Table.States (112).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 43, 4)));
+            Add_Action (Table.States (112), (23, 33, 36), (43, 0),  4, 
nonterminal_0'Access, null);
+            Table.States (112).Kernel := To_Vector ((0 => ((43, 0),  44,  0, 
(43, 0),  4)));
+            Table.States (112).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (43, 0),  4)));
             Table.States (113).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (113), 11, 160);
-            Add_Action (Table.States (113), 12, Reduce, (46, 2), 2, 
rhs_2'Access, null);
-            Add_Action (Table.States (113), 23, Reduce, (46, 2), 2, 
rhs_2'Access, null);
-            Add_Action (Table.States (113), 29, Reduce, (46, 2), 2, 
rhs_2'Access, null);
-            Add_Action (Table.States (113), 33, Reduce, (46, 2), 2, 
rhs_2'Access, null);
-            Add_Action (Table.States (113), 36, Reduce, (46, 2), 2, 
rhs_2'Access, null);
-            Table.States (113).Kernel := To_Vector (((46, 11, 0, False), (46, 
11, 1, False)));
-            Table.States (113).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 46, 2)));
+            Add_Action (Table.States (113), 11, (46, 3), 160);
+            Add_Action (Table.States (113), 12, Reduce, (46, 2),  2, 
rhs_2'Access, null);
+            Add_Action (Table.States (113), 23, Reduce, (46, 2),  2, 
rhs_2'Access, null);
+            Add_Action (Table.States (113), 29, Reduce, (46, 2),  2, 
rhs_2'Access, null);
+            Add_Action (Table.States (113), 33, Reduce, (46, 2),  2, 
rhs_2'Access, null);
+            Add_Action (Table.States (113), 36, Reduce, (46, 2),  2, 
rhs_2'Access, null);
+            Table.States (113).Kernel := To_Vector ((((46, 2),  11,  0, (46, 
2),  2), ((46, 3),  11,  1, (2147483647,
+            0),  0)));
+            Table.States (113).Minimal_Complete_Actions := To_Vector 
(((Reduce, (46, 2),  2), (Shift, (46, 3),  11,
+            160)));
             Table.States (114).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (114), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (49, 1), 2, null, null);
-            Table.States (114).Kernel := To_Vector ((0 => (49, 48, 0, True)));
-            Table.States (114).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 49, 2)));
-            Table.States (114).Minimal_Complete_Actions_Recursive := True;
+            Add_Action (Table.States (114), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (49, 1),  2, null, null);
+            Table.States (114).Kernel := To_Vector ((0 => ((49, 1),  48,  0, 
(49, 1),  2)));
+            Table.States (114).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (49, 1),  2)));
             Table.States (115).Action_List.Set_Capacity (3);
-            Add_Action (Table.States (115), (23, 33, 36), (38, 4), 5, 
declaration_4'Access, null);
-            Table.States (115).Kernel := To_Vector ((0 => (38, 33, 0, False)));
-            Table.States (115).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 38, 5)));
+            Add_Action (Table.States (115), (23, 33, 36), (38, 4),  5, 
declaration_4'Access, null);
+            Table.States (115).Kernel := To_Vector ((0 => ((38, 4),  33,  0, 
(38, 4),  5)));
+            Table.States (115).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (38, 4),  5)));
             Table.States (116).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (116), (1 =>  33), (39, 1), 4, 
token_keyword_non_grammar_1'Access, null);
-            Table.States (116).Kernel := To_Vector ((0 => (39, 17, 0, False)));
-            Table.States (116).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 39, 4)));
+            Add_Action (Table.States (116), (1 =>  33), (39, 1),  4, 
token_keyword_non_grammar_1'Access, null);
+            Table.States (116).Kernel := To_Vector ((0 => ((39, 1),  17,  0, 
(39, 1),  4)));
+            Table.States (116).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (39, 1),  4)));
             Table.States (117).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (117), (1 =>  33), (39, 2), 4, 
token_keyword_non_grammar_2'Access, null);
-            Table.States (117).Kernel := To_Vector ((0 => (39, 17, 0, False)));
-            Table.States (117).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 39, 4)));
+            Add_Action (Table.States (117), (1 =>  33), (39, 2),  4, 
token_keyword_non_grammar_2'Access, null);
+            Table.States (117).Kernel := To_Vector ((0 => ((39, 2),  17,  0, 
(39, 2),  4)));
+            Table.States (117).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (39, 2),  4)));
             Table.States (118).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (118), 12, 128);
-            Add_Action (Table.States (118), 26, 161);
-            Table.States (118).Kernel := To_Vector (((53, 54, 1, False), (53, 
54, 2, False), (54, 54, 2, True)));
-            Table.States (118).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 26, 161)));
+            Add_Action (Table.States (118), 12, (54, 1), 128);
+            Add_Action (Table.States (118), 26, (53, 0), 161);
+            Table.States (118).Kernel := To_Vector ((((53, 0),  54,  1, 
(2147483647, 0),  0), ((53, 1),  54,  2,
+            (2147483647, 0),  0), ((54, 1),  54,  2, (2147483647, 0),  0)));
+            Table.States (118).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (53, 0),  26, 161)));
             Table.States (119).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (119), 12, 140);
-            Add_Action (Table.States (119), 27, 162);
-            Table.States (119).Kernel := To_Vector (((52, 54, 1, False), (54, 
54, 2, True)));
-            Table.States (119).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 27, 162)));
+            Add_Action (Table.States (119), 12, (54, 1), 140);
+            Add_Action (Table.States (119), 27, (52, 0), 162);
+            Table.States (119).Kernel := To_Vector ((((52, 0),  54,  1, 
(2147483647, 0),  0), ((54, 1),  54,  2,
+            (2147483647, 0),  0)));
+            Table.States (119).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (52, 0),  27, 162)));
             Table.States (120).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (120), 12, 152);
-            Add_Action (Table.States (120), 28, 163);
-            Table.States (120).Kernel := To_Vector (((51, 54, 1, False), (52, 
54, 2, False), (53, 54, 2, False), (53,
-            54, 2, False), (54, 54, 2, True)));
-            Table.States (120).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 28, 163)));
+            Add_Action (Table.States (120), 12, (54, 1), 152);
+            Add_Action (Table.States (120), 28, (51, 0), 163);
+            Table.States (120).Kernel := To_Vector ((((51, 0),  54,  1, 
(2147483647, 0),  0), ((52, 1),  54,  2,
+            (2147483647, 0),  0), ((53, 2),  54,  2, (2147483647, 0),  0), 
((53, 3),  54,  2, (2147483647, 0),  0),
+            ((54, 1),  54,  2, (2147483647, 0),  0)));
+            Table.States (120).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (51, 0),  28, 163)));
             Table.States (121).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (121), 16, 164);
-            Table.States (121).Kernel := To_Vector ((0 => (47, 33, 3, False)));
-            Table.States (121).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 16, 164)));
+            Add_Action (Table.States (121), 16, (47, 0), 164);
+            Table.States (121).Kernel := To_Vector ((0 => ((47, 0),  33,  3, 
(2147483647, 0),  0)));
+            Table.States (121).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (47, 0),  16, 164)));
             Table.States (122).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (122), 18, 61);
-            Add_Action (Table.States (122), 19, 62);
-            Add_Action (Table.States (122), 20, 63);
-            Add_Action (Table.States (122), 21, 64);
-            Add_Action (Table.States (122), 33, 165);
-            Add_Action (Table.States (122), 35, 66);
+            Add_Action (Table.States (122), 18, (53, 0), 61);
+            Add_Action (Table.States (122), 19, (52, 0), 62);
+            Add_Action (Table.States (122), 20, (51, 0), 63);
+            Add_Action (Table.States (122), 21, (47, 0), 64);
+            Add_Action (Table.States (122), 33, (50, 0), 165);
+            Add_Action (Table.States (122), 35, (50, 1), 66);
             Table.States (122).Goto_List.Set_Capacity (5);
             Add_Goto (Table.States (122), 47, 67);
             Add_Goto (Table.States (122), 50, 166);
             Add_Goto (Table.States (122), 51, 71);
             Add_Goto (Table.States (122), 52, 72);
             Add_Goto (Table.States (122), 53, 73);
-            Table.States (122).Kernel := To_Vector ((0 => (48, 16, 1, False)));
-            Table.States (122).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 165)));
+            Table.States (122).Kernel := To_Vector ((0 => ((48, 1),  16,  1, 
(2147483647, 0),  0)));
+            Table.States (122).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (50, 0),  33, 165)));
             Table.States (123).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (123), (12, 18, 19, 20, 21, 26, 33, 35), 
(53, 4), 2, null, null);
-            Table.States (123).Kernel := To_Vector ((0 => (53, 24, 0, False)));
-            Table.States (123).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 2)));
+            Add_Action (Table.States (123), (12, 18, 19, 20, 21, 26, 33, 35), 
(53, 4),  2, null, null);
+            Table.States (123).Kernel := To_Vector ((0 => ((53, 4),  24,  0, 
(53, 4),  2)));
+            Table.States (123).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 4),  2)));
             Table.States (124).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (124), (12, 18, 19, 20, 21, 26, 33, 35), 
(52, 2), 2, null, null);
-            Table.States (124).Kernel := To_Vector ((0 => (52, 25, 0, False)));
-            Table.States (124).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 52, 2)));
+            Add_Action (Table.States (124), (12, 18, 19, 20, 21, 26, 33, 35), 
(52, 2),  2, null, null);
+            Table.States (124).Kernel := To_Vector ((0 => ((52, 2),  25,  0, 
(52, 2),  2)));
+            Table.States (124).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (52, 2),  2)));
             Table.States (125).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (125), (12, 18, 19, 20, 21, 26, 33, 35), 
(53, 5), 2, null, null);
-            Table.States (125).Kernel := To_Vector ((0 => (53, 31, 0, False)));
-            Table.States (125).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 2)));
+            Add_Action (Table.States (125), (12, 18, 19, 20, 21, 26, 33, 35), 
(53, 5),  2, null, null);
+            Table.States (125).Kernel := To_Vector ((0 => ((53, 5),  31,  0, 
(53, 5),  2)));
+            Table.States (125).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 5),  2)));
             Table.States (126).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (126), (12, 18, 19, 20, 21, 26, 33, 35), 
(52, 3), 2, null, null);
-            Table.States (126).Kernel := To_Vector ((0 => (52, 25, 0, False)));
-            Table.States (126).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 52, 2)));
+            Add_Action (Table.States (126), (12, 18, 19, 20, 21, 26, 33, 35), 
(52, 3),  2, null, null);
+            Table.States (126).Kernel := To_Vector ((0 => ((52, 3),  25,  0, 
(52, 3),  2)));
+            Table.States (126).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (52, 3),  2)));
             Table.States (127).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (127), (12, 18, 19, 20, 21, 26, 33, 35), 
(49, 1), 2, null, null);
-            Table.States (127).Kernel := To_Vector ((0 => (49, 48, 0, True)));
-            Table.States (127).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 49, 2)));
-            Table.States (127).Minimal_Complete_Actions_Recursive := True;
+            Add_Action (Table.States (127), (12, 18, 19, 20, 21, 26, 33, 35), 
(49, 1),  2, null, null);
+            Table.States (127).Kernel := To_Vector ((0 => ((49, 1),  48,  0, 
(49, 1),  2)));
+            Table.States (127).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (49, 1),  2)));
             Table.States (128).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (128), 18, 61);
-            Add_Action (Table.States (128), 19, 62);
-            Add_Action (Table.States (128), 20, 63);
-            Add_Action (Table.States (128), 21, 64);
-            Add_Action (Table.States (128), 33, 65);
-            Add_Action (Table.States (128), 35, 66);
+            Add_Action (Table.States (128), 18, (53, 0), 61);
+            Add_Action (Table.States (128), 19, (52, 0), 62);
+            Add_Action (Table.States (128), 20, (51, 0), 63);
+            Add_Action (Table.States (128), 21, (47, 0), 64);
+            Add_Action (Table.States (128), 33, (48, 1), 65);
+            Add_Action (Table.States (128), 35, (50, 1), 66);
             Table.States (128).Goto_List.Set_Capacity (7);
             Add_Goto (Table.States (128), 47, 67);
             Add_Goto (Table.States (128), 48, 68);
@@ -1112,87 +1141,90 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (128), 51, 71);
             Add_Goto (Table.States (128), 52, 72);
             Add_Goto (Table.States (128), 53, 73);
-            Table.States (128).Kernel := To_Vector ((0 => (54, 12, 1, True)));
-            Table.States (128).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 65)));
-            Table.States (128).Minimal_Complete_Actions_Recursive := True;
+            Table.States (128).Kernel := To_Vector ((0 => ((54, 1),  12,  1, 
(2147483647, 0),  0)));
+            Table.States (128).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (48, 1),  33, 65)));
             Table.States (129).Action_List.Set_Capacity (12);
-            Add_Action (Table.States (129), 11, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (129), 12, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (129), 18, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (129), 19, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (129), 20, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (129), 21, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (129), 22, 168);
-            Add_Action (Table.States (129), 23, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (129), 29, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (129), 33, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (129), 35, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (129), 36, Reduce, (53, 0), 3, null, 
null);
-            Table.States (129).Kernel := To_Vector (((53, 26, 0, False), (53, 
26, 1, False)));
-            Table.States (129).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 3)));
+            Add_Action (Table.States (129), 11, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (129), 12, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (129), 18, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (129), 19, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (129), 20, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (129), 21, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (129), 22, (53, 1), 168);
+            Add_Action (Table.States (129), 23, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (129), 29, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (129), 33, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (129), 35, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (129), 36, Reduce, (53, 0),  3, null, 
null);
+            Table.States (129).Kernel := To_Vector ((((53, 0),  26,  0, (53, 
0),  3), ((53, 1),  26,  1, (2147483647,
+            0),  0)));
+            Table.States (129).Minimal_Complete_Actions := To_Vector 
(((Reduce, (53, 0),  3), (Shift, (53, 1),  22,
+            168)));
             Table.States (130).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (130), 12, 128);
-            Add_Action (Table.States (130), 26, 169);
-            Table.States (130).Kernel := To_Vector (((53, 54, 1, False), (53, 
54, 2, False), (54, 54, 2, True)));
-            Table.States (130).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 26, 169)));
+            Add_Action (Table.States (130), 12, (54, 1), 128);
+            Add_Action (Table.States (130), 26, (53, 0), 169);
+            Table.States (130).Kernel := To_Vector ((((53, 0),  54,  1, 
(2147483647, 0),  0), ((53, 1),  54,  2,
+            (2147483647, 0),  0), ((54, 1),  54,  2, (2147483647, 0),  0)));
+            Table.States (130).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (53, 0),  26, 169)));
             Table.States (131).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (131), 12, 140);
-            Add_Action (Table.States (131), 27, 170);
-            Table.States (131).Kernel := To_Vector (((52, 54, 1, False), (54, 
54, 2, True)));
-            Table.States (131).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 27, 170)));
+            Add_Action (Table.States (131), 12, (54, 1), 140);
+            Add_Action (Table.States (131), 27, (52, 0), 170);
+            Table.States (131).Kernel := To_Vector ((((52, 0),  54,  1, 
(2147483647, 0),  0), ((54, 1),  54,  2,
+            (2147483647, 0),  0)));
+            Table.States (131).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (52, 0),  27, 170)));
             Table.States (132).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (132), 12, 152);
-            Add_Action (Table.States (132), 28, 171);
-            Table.States (132).Kernel := To_Vector (((51, 54, 1, False), (52, 
54, 2, False), (53, 54, 2, False), (53,
-            54, 2, False), (54, 54, 2, True)));
-            Table.States (132).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 28, 171)));
+            Add_Action (Table.States (132), 12, (54, 1), 152);
+            Add_Action (Table.States (132), 28, (51, 0), 171);
+            Table.States (132).Kernel := To_Vector ((((51, 0),  54,  1, 
(2147483647, 0),  0), ((52, 1),  54,  2,
+            (2147483647, 0),  0), ((53, 2),  54,  2, (2147483647, 0),  0), 
((53, 3),  54,  2, (2147483647, 0),  0),
+            ((54, 1),  54,  2, (2147483647, 0),  0)));
+            Table.States (132).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (51, 0),  28, 171)));
             Table.States (133).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (133), 16, 172);
-            Table.States (133).Kernel := To_Vector ((0 => (47, 33, 3, False)));
-            Table.States (133).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 16, 172)));
+            Add_Action (Table.States (133), 16, (47, 0), 172);
+            Table.States (133).Kernel := To_Vector ((0 => ((47, 0),  33,  3, 
(2147483647, 0),  0)));
+            Table.States (133).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (47, 0),  16, 172)));
             Table.States (134).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (134), 18, 75);
-            Add_Action (Table.States (134), 19, 76);
-            Add_Action (Table.States (134), 20, 77);
-            Add_Action (Table.States (134), 21, 78);
-            Add_Action (Table.States (134), 33, 173);
-            Add_Action (Table.States (134), 35, 80);
+            Add_Action (Table.States (134), 18, (53, 0), 75);
+            Add_Action (Table.States (134), 19, (52, 0), 76);
+            Add_Action (Table.States (134), 20, (51, 0), 77);
+            Add_Action (Table.States (134), 21, (47, 0), 78);
+            Add_Action (Table.States (134), 33, (50, 0), 173);
+            Add_Action (Table.States (134), 35, (50, 1), 80);
             Table.States (134).Goto_List.Set_Capacity (5);
             Add_Goto (Table.States (134), 47, 81);
             Add_Goto (Table.States (134), 50, 174);
             Add_Goto (Table.States (134), 51, 85);
             Add_Goto (Table.States (134), 52, 86);
             Add_Goto (Table.States (134), 53, 87);
-            Table.States (134).Kernel := To_Vector ((0 => (48, 16, 1, False)));
-            Table.States (134).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 173)));
+            Table.States (134).Kernel := To_Vector ((0 => ((48, 1),  16,  1, 
(2147483647, 0),  0)));
+            Table.States (134).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (50, 0),  33, 173)));
             Table.States (135).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (135), (12, 18, 19, 20, 21, 27, 33, 35), 
(53, 4), 2, null, null);
-            Table.States (135).Kernel := To_Vector ((0 => (53, 24, 0, False)));
-            Table.States (135).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 2)));
+            Add_Action (Table.States (135), (12, 18, 19, 20, 21, 27, 33, 35), 
(53, 4),  2, null, null);
+            Table.States (135).Kernel := To_Vector ((0 => ((53, 4),  24,  0, 
(53, 4),  2)));
+            Table.States (135).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 4),  2)));
             Table.States (136).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (136), (12, 18, 19, 20, 21, 27, 33, 35), 
(52, 2), 2, null, null);
-            Table.States (136).Kernel := To_Vector ((0 => (52, 25, 0, False)));
-            Table.States (136).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 52, 2)));
+            Add_Action (Table.States (136), (12, 18, 19, 20, 21, 27, 33, 35), 
(52, 2),  2, null, null);
+            Table.States (136).Kernel := To_Vector ((0 => ((52, 2),  25,  0, 
(52, 2),  2)));
+            Table.States (136).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (52, 2),  2)));
             Table.States (137).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (137), (12, 18, 19, 20, 21, 27, 33, 35), 
(53, 5), 2, null, null);
-            Table.States (137).Kernel := To_Vector ((0 => (53, 31, 0, False)));
-            Table.States (137).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 2)));
+            Add_Action (Table.States (137), (12, 18, 19, 20, 21, 27, 33, 35), 
(53, 5),  2, null, null);
+            Table.States (137).Kernel := To_Vector ((0 => ((53, 5),  31,  0, 
(53, 5),  2)));
+            Table.States (137).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 5),  2)));
             Table.States (138).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (138), (12, 18, 19, 20, 21, 27, 33, 35), 
(52, 3), 2, null, null);
-            Table.States (138).Kernel := To_Vector ((0 => (52, 25, 0, False)));
-            Table.States (138).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 52, 2)));
+            Add_Action (Table.States (138), (12, 18, 19, 20, 21, 27, 33, 35), 
(52, 3),  2, null, null);
+            Table.States (138).Kernel := To_Vector ((0 => ((52, 3),  25,  0, 
(52, 3),  2)));
+            Table.States (138).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (52, 3),  2)));
             Table.States (139).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (139), (12, 18, 19, 20, 21, 27, 33, 35), 
(49, 1), 2, null, null);
-            Table.States (139).Kernel := To_Vector ((0 => (49, 48, 0, True)));
-            Table.States (139).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 49, 2)));
-            Table.States (139).Minimal_Complete_Actions_Recursive := True;
+            Add_Action (Table.States (139), (12, 18, 19, 20, 21, 27, 33, 35), 
(49, 1),  2, null, null);
+            Table.States (139).Kernel := To_Vector ((0 => ((49, 1),  48,  0, 
(49, 1),  2)));
+            Table.States (139).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (49, 1),  2)));
             Table.States (140).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (140), 18, 75);
-            Add_Action (Table.States (140), 19, 76);
-            Add_Action (Table.States (140), 20, 77);
-            Add_Action (Table.States (140), 21, 78);
-            Add_Action (Table.States (140), 33, 79);
-            Add_Action (Table.States (140), 35, 80);
+            Add_Action (Table.States (140), 18, (53, 0), 75);
+            Add_Action (Table.States (140), 19, (52, 0), 76);
+            Add_Action (Table.States (140), 20, (51, 0), 77);
+            Add_Action (Table.States (140), 21, (47, 0), 78);
+            Add_Action (Table.States (140), 33, (48, 1), 79);
+            Add_Action (Table.States (140), 35, (50, 1), 80);
             Table.States (140).Goto_List.Set_Capacity (7);
             Add_Goto (Table.States (140), 47, 81);
             Add_Goto (Table.States (140), 48, 82);
@@ -1201,76 +1233,77 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (140), 51, 85);
             Add_Goto (Table.States (140), 52, 86);
             Add_Goto (Table.States (140), 53, 87);
-            Table.States (140).Kernel := To_Vector ((0 => (54, 12, 1, True)));
-            Table.States (140).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 79)));
-            Table.States (140).Minimal_Complete_Actions_Recursive := True;
+            Table.States (140).Kernel := To_Vector ((0 => ((54, 1),  12,  1, 
(2147483647, 0),  0)));
+            Table.States (140).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (48, 1),  33, 79)));
             Table.States (141).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (141), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (52, 0), 3, null, null);
-            Table.States (141).Kernel := To_Vector ((0 => (52, 27, 0, False)));
-            Table.States (141).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 52, 3)));
+            Add_Action (Table.States (141), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (52, 0),  3, null, null);
+            Table.States (141).Kernel := To_Vector ((0 => ((52, 0),  27,  0, 
(52, 0),  3)));
+            Table.States (141).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (52, 0),  3)));
             Table.States (142).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (142), 12, 128);
-            Add_Action (Table.States (142), 26, 176);
-            Table.States (142).Kernel := To_Vector (((53, 54, 1, False), (53, 
54, 2, False), (54, 54, 2, True)));
-            Table.States (142).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 26, 176)));
+            Add_Action (Table.States (142), 12, (54, 1), 128);
+            Add_Action (Table.States (142), 26, (53, 0), 176);
+            Table.States (142).Kernel := To_Vector ((((53, 0),  54,  1, 
(2147483647, 0),  0), ((53, 1),  54,  2,
+            (2147483647, 0),  0), ((54, 1),  54,  2, (2147483647, 0),  0)));
+            Table.States (142).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (53, 0),  26, 176)));
             Table.States (143).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (143), 12, 140);
-            Add_Action (Table.States (143), 27, 177);
-            Table.States (143).Kernel := To_Vector (((52, 54, 1, False), (54, 
54, 2, True)));
-            Table.States (143).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 27, 177)));
+            Add_Action (Table.States (143), 12, (54, 1), 140);
+            Add_Action (Table.States (143), 27, (52, 0), 177);
+            Table.States (143).Kernel := To_Vector ((((52, 0),  54,  1, 
(2147483647, 0),  0), ((54, 1),  54,  2,
+            (2147483647, 0),  0)));
+            Table.States (143).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (52, 0),  27, 177)));
             Table.States (144).Action_List.Set_Capacity (2);
-            Add_Action (Table.States (144), 12, 152);
-            Add_Action (Table.States (144), 28, 178);
-            Table.States (144).Kernel := To_Vector (((51, 54, 1, False), (52, 
54, 2, False), (53, 54, 2, False), (53,
-            54, 2, False), (54, 54, 2, True)));
-            Table.States (144).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 28, 178)));
+            Add_Action (Table.States (144), 12, (54, 1), 152);
+            Add_Action (Table.States (144), 28, (51, 0), 178);
+            Table.States (144).Kernel := To_Vector ((((51, 0),  54,  1, 
(2147483647, 0),  0), ((52, 1),  54,  2,
+            (2147483647, 0),  0), ((53, 2),  54,  2, (2147483647, 0),  0), 
((53, 3),  54,  2, (2147483647, 0),  0),
+            ((54, 1),  54,  2, (2147483647, 0),  0)));
+            Table.States (144).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (51, 0),  28, 178)));
             Table.States (145).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (145), 16, 179);
-            Table.States (145).Kernel := To_Vector ((0 => (47, 33, 3, False)));
-            Table.States (145).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 16, 179)));
+            Add_Action (Table.States (145), 16, (47, 0), 179);
+            Table.States (145).Kernel := To_Vector ((0 => ((47, 0),  33,  3, 
(2147483647, 0),  0)));
+            Table.States (145).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (47, 0),  16, 179)));
             Table.States (146).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (146), 18, 89);
-            Add_Action (Table.States (146), 19, 90);
-            Add_Action (Table.States (146), 20, 91);
-            Add_Action (Table.States (146), 21, 92);
-            Add_Action (Table.States (146), 33, 180);
-            Add_Action (Table.States (146), 35, 94);
+            Add_Action (Table.States (146), 18, (53, 0), 89);
+            Add_Action (Table.States (146), 19, (52, 0), 90);
+            Add_Action (Table.States (146), 20, (51, 0), 91);
+            Add_Action (Table.States (146), 21, (47, 0), 92);
+            Add_Action (Table.States (146), 33, (50, 0), 180);
+            Add_Action (Table.States (146), 35, (50, 1), 94);
             Table.States (146).Goto_List.Set_Capacity (5);
             Add_Goto (Table.States (146), 47, 95);
             Add_Goto (Table.States (146), 50, 181);
             Add_Goto (Table.States (146), 51, 99);
             Add_Goto (Table.States (146), 52, 100);
             Add_Goto (Table.States (146), 53, 101);
-            Table.States (146).Kernel := To_Vector ((0 => (48, 16, 1, False)));
-            Table.States (146).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 180)));
+            Table.States (146).Kernel := To_Vector ((0 => ((48, 1),  16,  1, 
(2147483647, 0),  0)));
+            Table.States (146).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (50, 0),  33, 180)));
             Table.States (147).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (147), (12, 18, 19, 20, 21, 28, 33, 35), 
(53, 4), 2, null, null);
-            Table.States (147).Kernel := To_Vector ((0 => (53, 24, 0, False)));
-            Table.States (147).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 2)));
+            Add_Action (Table.States (147), (12, 18, 19, 20, 21, 28, 33, 35), 
(53, 4),  2, null, null);
+            Table.States (147).Kernel := To_Vector ((0 => ((53, 4),  24,  0, 
(53, 4),  2)));
+            Table.States (147).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 4),  2)));
             Table.States (148).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (148), (12, 18, 19, 20, 21, 28, 33, 35), 
(52, 2), 2, null, null);
-            Table.States (148).Kernel := To_Vector ((0 => (52, 25, 0, False)));
-            Table.States (148).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 52, 2)));
+            Add_Action (Table.States (148), (12, 18, 19, 20, 21, 28, 33, 35), 
(52, 2),  2, null, null);
+            Table.States (148).Kernel := To_Vector ((0 => ((52, 2),  25,  0, 
(52, 2),  2)));
+            Table.States (148).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (52, 2),  2)));
             Table.States (149).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (149), (12, 18, 19, 20, 21, 28, 33, 35), 
(53, 5), 2, null, null);
-            Table.States (149).Kernel := To_Vector ((0 => (53, 31, 0, False)));
-            Table.States (149).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 2)));
+            Add_Action (Table.States (149), (12, 18, 19, 20, 21, 28, 33, 35), 
(53, 5),  2, null, null);
+            Table.States (149).Kernel := To_Vector ((0 => ((53, 5),  31,  0, 
(53, 5),  2)));
+            Table.States (149).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 5),  2)));
             Table.States (150).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (150), (12, 18, 19, 20, 21, 28, 33, 35), 
(52, 3), 2, null, null);
-            Table.States (150).Kernel := To_Vector ((0 => (52, 25, 0, False)));
-            Table.States (150).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 52, 2)));
+            Add_Action (Table.States (150), (12, 18, 19, 20, 21, 28, 33, 35), 
(52, 3),  2, null, null);
+            Table.States (150).Kernel := To_Vector ((0 => ((52, 3),  25,  0, 
(52, 3),  2)));
+            Table.States (150).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (52, 3),  2)));
             Table.States (151).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (151), (12, 18, 19, 20, 21, 28, 33, 35), 
(49, 1), 2, null, null);
-            Table.States (151).Kernel := To_Vector ((0 => (49, 48, 0, True)));
-            Table.States (151).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 49, 2)));
-            Table.States (151).Minimal_Complete_Actions_Recursive := True;
+            Add_Action (Table.States (151), (12, 18, 19, 20, 21, 28, 33, 35), 
(49, 1),  2, null, null);
+            Table.States (151).Kernel := To_Vector ((0 => ((49, 1),  48,  0, 
(49, 1),  2)));
+            Table.States (151).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (49, 1),  2)));
             Table.States (152).Action_List.Set_Capacity (6);
-            Add_Action (Table.States (152), 18, 89);
-            Add_Action (Table.States (152), 19, 90);
-            Add_Action (Table.States (152), 20, 91);
-            Add_Action (Table.States (152), 21, 92);
-            Add_Action (Table.States (152), 33, 93);
-            Add_Action (Table.States (152), 35, 94);
+            Add_Action (Table.States (152), 18, (53, 0), 89);
+            Add_Action (Table.States (152), 19, (52, 0), 90);
+            Add_Action (Table.States (152), 20, (51, 0), 91);
+            Add_Action (Table.States (152), 21, (47, 0), 92);
+            Add_Action (Table.States (152), 33, (48, 1), 93);
+            Add_Action (Table.States (152), 35, (50, 1), 94);
             Table.States (152).Goto_List.Set_Capacity (7);
             Add_Goto (Table.States (152), 47, 95);
             Add_Goto (Table.States (152), 48, 96);
@@ -1279,135 +1312,137 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (152), 51, 99);
             Add_Goto (Table.States (152), 52, 100);
             Add_Goto (Table.States (152), 53, 101);
-            Table.States (152).Kernel := To_Vector ((0 => (54, 12, 1, True)));
-            Table.States (152).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 93)));
-            Table.States (152).Minimal_Complete_Actions_Recursive := True;
+            Table.States (152).Kernel := To_Vector ((0 => ((54, 1),  12,  1, 
(2147483647, 0),  0)));
+            Table.States (152).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (48, 1),  33, 93)));
             Table.States (153).Action_List.Set_Capacity (14);
-            Add_Action (Table.States (153), 11, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (153), 12, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (153), 18, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (153), 19, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (153), 20, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (153), 21, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (153), 23, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (153), 24, 183);
-            Add_Action (Table.States (153), 25, 184);
-            Add_Action (Table.States (153), 29, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (153), 31, 185);
-            Add_Action (Table.States (153), 33, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (153), 35, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (153), 36, Reduce, (51, 0), 3, null, 
null);
-            Table.States (153).Kernel := To_Vector (((51, 28, 0, False), (52, 
28, 1, False), (53, 28, 1, False), (53,
-            28, 1, False)));
-            Table.States (153).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 51, 3)));
+            Add_Action (Table.States (153), 11, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (153), 12, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (153), 18, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (153), 19, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (153), 20, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (153), 21, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (153), 23, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (153), 24, (53, 2), 183);
+            Add_Action (Table.States (153), 25, (52, 1), 184);
+            Add_Action (Table.States (153), 29, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (153), 31, (53, 3), 185);
+            Add_Action (Table.States (153), 33, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (153), 35, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (153), 36, Reduce, (51, 0),  3, null, 
null);
+            Table.States (153).Kernel := To_Vector ((((51, 0),  28,  0, (51, 
0),  3), ((52, 1),  28,  1, (2147483647,
+            0),  0), ((53, 2),  28,  1, (2147483647, 0),  0), ((53, 3),  28,  
1, (2147483647, 0),  0)));
+            Table.States (153).Minimal_Complete_Actions := To_Vector 
(((Reduce, (51, 0),  3), (Shift, (52, 1),  25,
+            184), (Shift, (53, 2),  24, 183), (Shift, (53, 3),  31, 185)));
             Table.States (154).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (154), 33, 186);
-            Table.States (154).Kernel := To_Vector ((0 => (47, 16, 2, False)));
-            Table.States (154).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 186)));
+            Add_Action (Table.States (154), 33, (47, 0), 186);
+            Table.States (154).Kernel := To_Vector ((0 => ((47, 0),  16,  2, 
(2147483647, 0),  0)));
+            Table.States (154).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (47, 0),  33, 186)));
             Table.States (155).Action_List.Set_Capacity (14);
-            Add_Action (Table.States (155), 11, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (155), 12, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (155), 18, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (155), 19, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (155), 20, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (155), 21, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (155), 23, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (155), 24, 105);
-            Add_Action (Table.States (155), 25, 106);
-            Add_Action (Table.States (155), 29, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (155), 31, 107);
-            Add_Action (Table.States (155), 33, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (155), 35, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (155), 36, Reduce, (50, 0), 1, null, 
null);
-            Table.States (155).Kernel := To_Vector (((50, 33, 0, False), (52, 
33, 1, False), (53, 33, 1, False), (53,
-            33, 1, False)));
-            Table.States (155).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (155), 11, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (155), 12, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (155), 18, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (155), 19, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (155), 20, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (155), 21, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (155), 23, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (155), 24, (53, 4), 105);
+            Add_Action (Table.States (155), 25, (52, 2), 106);
+            Add_Action (Table.States (155), 29, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (155), 31, (53, 5), 107);
+            Add_Action (Table.States (155), 33, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (155), 35, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (155), 36, Reduce, (50, 0),  1, null, 
null);
+            Table.States (155).Kernel := To_Vector ((((50, 0),  33,  0, (50, 
0),  1), ((52, 2),  33,  1, (2147483647,
+            0),  0), ((53, 4),  33,  1, (2147483647, 0),  0), ((53, 5),  33,  
1, (2147483647, 0),  0)));
+            Table.States (155).Minimal_Complete_Actions := To_Vector 
(((Reduce, (50, 0),  1), (Shift, (52, 2),  25,
+            106), (Shift, (53, 4),  24, 105), (Shift, (53, 5),  31, 107)));
             Table.States (156).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (156), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (48, 1), 3, null, null);
-            Table.States (156).Kernel := To_Vector ((0 => (48, 50, 0, False)));
-            Table.States (156).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 48, 3)));
+            Add_Action (Table.States (156), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (48, 1),  3, null, null);
+            Table.States (156).Kernel := To_Vector ((0 => ((48, 1),  50,  0, 
(48, 1),  3)));
+            Table.States (156).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (48, 1),  3)));
             Table.States (157).Action_List.Set_Capacity (5);
-            Add_Action (Table.States (157), (12, 23, 29, 33, 36), (45, 1), 3, 
rhs_list_1'Access, null);
-            Table.States (157).Kernel := To_Vector ((0 => (45, 46, 0, True)));
-            Table.States (157).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 45, 3)));
-            Table.States (157).Minimal_Complete_Actions_Recursive := True;
+            Add_Action (Table.States (157), (12, 23, 29, 33, 36), (45, 1),  3, 
rhs_list_1'Access, null);
+            Table.States (157).Kernel := To_Vector ((0 => ((45, 1),  46,  0, 
(45, 1),  3)));
+            Table.States (157).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (45, 1),  3)));
             Table.States (158).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (158), 5, 187);
-            Table.States (158).Kernel := To_Vector ((0 => (45, 4, 1, True)));
-            Table.States (158).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 5, 187)));
-            Table.States (158).Minimal_Complete_Actions_Recursive := True;
+            Add_Action (Table.States (158), 5, (45, 3), 187);
+            Table.States (158).Kernel := To_Vector ((0 => ((45, 3),  4,  1, 
(2147483647, 0),  0)));
+            Table.States (158).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (45, 3),  5, 187)));
             Table.States (159).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (159), 33, 188);
-            Table.States (159).Kernel := To_Vector ((0 => (45, 5, 3, True)));
-            Table.States (159).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 188)));
-            Table.States (159).Minimal_Complete_Actions_Recursive := True;
+            Add_Action (Table.States (159), 33, (45, 2), 188);
+            Table.States (159).Kernel := To_Vector ((0 => ((45, 2),  5,  3, 
(2147483647, 0),  0)));
+            Table.States (159).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (45, 2),  33, 188)));
             Table.States (160).Action_List.Set_Capacity (5);
-            Add_Action (Table.States (160), (12, 23, 29, 33, 36), (46, 3), 3, 
rhs_3'Access, null);
-            Table.States (160).Kernel := To_Vector ((0 => (46, 11, 0, False)));
-            Table.States (160).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 46, 3)));
+            Add_Action (Table.States (160), (12, 23, 29, 33, 36), (46, 3),  3, 
rhs_3'Access, null);
+            Table.States (160).Kernel := To_Vector ((0 => ((46, 3),  11,  0, 
(46, 3),  3)));
+            Table.States (160).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (46, 3),  3)));
             Table.States (161).Action_List.Set_Capacity (9);
-            Add_Action (Table.States (161), 12, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (161), 18, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (161), 19, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (161), 20, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (161), 21, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (161), 22, 189);
-            Add_Action (Table.States (161), 26, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (161), 33, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (161), 35, Reduce, (53, 0), 3, null, 
null);
-            Table.States (161).Kernel := To_Vector (((53, 26, 0, False), (53, 
26, 1, False)));
-            Table.States (161).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 3)));
+            Add_Action (Table.States (161), 12, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (161), 18, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (161), 19, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (161), 20, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (161), 21, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (161), 22, (53, 1), 189);
+            Add_Action (Table.States (161), 26, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (161), 33, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (161), 35, Reduce, (53, 0),  3, null, 
null);
+            Table.States (161).Kernel := To_Vector ((((53, 0),  26,  0, (53, 
0),  3), ((53, 1),  26,  1, (2147483647,
+            0),  0)));
+            Table.States (161).Minimal_Complete_Actions := To_Vector 
(((Reduce, (53, 0),  3), (Shift, (53, 1),  22,
+            189)));
             Table.States (162).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (162), (12, 18, 19, 20, 21, 26, 33, 35), 
(52, 0), 3, null, null);
-            Table.States (162).Kernel := To_Vector ((0 => (52, 27, 0, False)));
-            Table.States (162).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 52, 3)));
+            Add_Action (Table.States (162), (12, 18, 19, 20, 21, 26, 33, 35), 
(52, 0),  3, null, null);
+            Table.States (162).Kernel := To_Vector ((0 => ((52, 0),  27,  0, 
(52, 0),  3)));
+            Table.States (162).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (52, 0),  3)));
             Table.States (163).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (163), 12, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (163), 18, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (163), 19, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (163), 20, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (163), 21, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (163), 24, 190);
-            Add_Action (Table.States (163), 25, 191);
-            Add_Action (Table.States (163), 26, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (163), 31, 192);
-            Add_Action (Table.States (163), 33, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (163), 35, Reduce, (51, 0), 3, null, 
null);
-            Table.States (163).Kernel := To_Vector (((51, 28, 0, False), (52, 
28, 1, False), (53, 28, 1, False), (53,
-            28, 1, False)));
-            Table.States (163).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 51, 3)));
+            Add_Action (Table.States (163), 12, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (163), 18, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (163), 19, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (163), 20, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (163), 21, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (163), 24, (53, 2), 190);
+            Add_Action (Table.States (163), 25, (52, 1), 191);
+            Add_Action (Table.States (163), 26, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (163), 31, (53, 3), 192);
+            Add_Action (Table.States (163), 33, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (163), 35, Reduce, (51, 0),  3, null, 
null);
+            Table.States (163).Kernel := To_Vector ((((51, 0),  28,  0, (51, 
0),  3), ((52, 1),  28,  1, (2147483647,
+            0),  0), ((53, 2),  28,  1, (2147483647, 0),  0), ((53, 3),  28,  
1, (2147483647, 0),  0)));
+            Table.States (163).Minimal_Complete_Actions := To_Vector 
(((Reduce, (51, 0),  3), (Shift, (52, 1),  25,
+            191), (Shift, (53, 2),  24, 190), (Shift, (53, 3),  31, 192)));
             Table.States (164).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (164), 33, 193);
-            Table.States (164).Kernel := To_Vector ((0 => (47, 16, 2, False)));
-            Table.States (164).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 193)));
+            Add_Action (Table.States (164), 33, (47, 0), 193);
+            Table.States (164).Kernel := To_Vector ((0 => ((47, 0),  16,  2, 
(2147483647, 0),  0)));
+            Table.States (164).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (47, 0),  33, 193)));
             Table.States (165).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (165), 12, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (165), 18, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (165), 19, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (165), 20, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (165), 21, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (165), 24, 123);
-            Add_Action (Table.States (165), 25, 124);
-            Add_Action (Table.States (165), 26, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (165), 31, 125);
-            Add_Action (Table.States (165), 33, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (165), 35, Reduce, (50, 0), 1, null, 
null);
-            Table.States (165).Kernel := To_Vector (((50, 33, 0, False), (52, 
33, 1, False), (53, 33, 1, False), (53,
-            33, 1, False)));
-            Table.States (165).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (165), 12, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (165), 18, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (165), 19, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (165), 20, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (165), 21, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (165), 24, (53, 4), 123);
+            Add_Action (Table.States (165), 25, (52, 2), 124);
+            Add_Action (Table.States (165), 26, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (165), 31, (53, 5), 125);
+            Add_Action (Table.States (165), 33, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (165), 35, Reduce, (50, 0),  1, null, 
null);
+            Table.States (165).Kernel := To_Vector ((((50, 0),  33,  0, (50, 
0),  1), ((52, 2),  33,  1, (2147483647,
+            0),  0), ((53, 4),  33,  1, (2147483647, 0),  0), ((53, 5),  33,  
1, (2147483647, 0),  0)));
+            Table.States (165).Minimal_Complete_Actions := To_Vector 
(((Reduce, (50, 0),  1), (Shift, (52, 2),  25,
+            124), (Shift, (53, 4),  24, 123), (Shift, (53, 5),  31, 125)));
             Table.States (166).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (166), (12, 18, 19, 20, 21, 26, 33, 35), 
(48, 1), 3, null, null);
-            Table.States (166).Kernel := To_Vector ((0 => (48, 50, 0, False)));
-            Table.States (166).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 48, 3)));
+            Add_Action (Table.States (166), (12, 18, 19, 20, 21, 26, 33, 35), 
(48, 1),  3, null, null);
+            Table.States (166).Kernel := To_Vector ((0 => ((48, 1),  50,  0, 
(48, 1),  3)));
+            Table.States (166).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (48, 1),  3)));
             Table.States (167).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (167), 12, Reduce, (54, 1), 3, null, 
null);
-            Add_Action (Table.States (167), 18, 61);
-            Add_Action (Table.States (167), 19, 62);
-            Add_Action (Table.States (167), 20, 63);
-            Add_Action (Table.States (167), 21, 64);
-            Add_Action (Table.States (167), 26, Reduce, (54, 1), 3, null, 
null);
-            Add_Action (Table.States (167), 33, 65);
-            Add_Action (Table.States (167), 35, 66);
+            Add_Action (Table.States (167), 12, Reduce, (54, 1),  3, null, 
null);
+            Add_Action (Table.States (167), 18, (53, 0), 61);
+            Add_Action (Table.States (167), 19, (52, 0), 62);
+            Add_Action (Table.States (167), 20, (51, 0), 63);
+            Add_Action (Table.States (167), 21, (47, 0), 64);
+            Add_Action (Table.States (167), 26, Reduce, (54, 1),  3, null, 
null);
+            Add_Action (Table.States (167), 33, (48, 1), 65);
+            Add_Action (Table.States (167), 35, (50, 1), 66);
             Table.States (167).Goto_List.Set_Capacity (6);
             Add_Goto (Table.States (167), 47, 67);
             Add_Goto (Table.States (167), 48, 127);
@@ -1415,76 +1450,83 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (167), 51, 71);
             Add_Goto (Table.States (167), 52, 72);
             Add_Goto (Table.States (167), 53, 73);
-            Table.States (167).Kernel := To_Vector (((49, 49, 1, True), (54, 
49, 0, True)));
-            Table.States (167).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 54, 3)));
-            Table.States (167).Minimal_Complete_Actions_Recursive := True;
+            Table.States (167).Kernel := To_Vector ((((49, 1),  49,  1, 
(2147483647, 0),  0), ((54, 1),  49,  0, (54,
+            1),  3)));
+            Table.States (167).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (54, 1),  3)));
             Table.States (168).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (168), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (53, 1), 4, null, null);
-            Table.States (168).Kernel := To_Vector ((0 => (53, 22, 0, False)));
-            Table.States (168).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 4)));
+            Add_Action (Table.States (168), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (53, 1),  4, null, null);
+            Table.States (168).Kernel := To_Vector ((0 => ((53, 1),  22,  0, 
(53, 1),  4)));
+            Table.States (168).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 1),  4)));
             Table.States (169).Action_List.Set_Capacity (9);
-            Add_Action (Table.States (169), 12, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (169), 18, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (169), 19, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (169), 20, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (169), 21, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (169), 22, 194);
-            Add_Action (Table.States (169), 27, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (169), 33, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (169), 35, Reduce, (53, 0), 3, null, 
null);
-            Table.States (169).Kernel := To_Vector (((53, 26, 0, False), (53, 
26, 1, False)));
-            Table.States (169).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 3)));
+            Add_Action (Table.States (169), 12, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (169), 18, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (169), 19, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (169), 20, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (169), 21, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (169), 22, (53, 1), 194);
+            Add_Action (Table.States (169), 27, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (169), 33, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (169), 35, Reduce, (53, 0),  3, null, 
null);
+            Table.States (169).Kernel := To_Vector ((((53, 0),  26,  0, (53, 
0),  3), ((53, 1),  26,  1, (2147483647,
+            0),  0)));
+            Table.States (169).Minimal_Complete_Actions := To_Vector 
(((Reduce, (53, 0),  3), (Shift, (53, 1),  22,
+            194)));
             Table.States (170).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (170), (12, 18, 19, 20, 21, 27, 33, 35), 
(52, 0), 3, null, null);
-            Table.States (170).Kernel := To_Vector ((0 => (52, 27, 0, False)));
-            Table.States (170).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 52, 3)));
+            Add_Action (Table.States (170), (12, 18, 19, 20, 21, 27, 33, 35), 
(52, 0),  3, null, null);
+            Table.States (170).Kernel := To_Vector ((0 => ((52, 0),  27,  0, 
(52, 0),  3)));
+            Table.States (170).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (52, 0),  3)));
             Table.States (171).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (171), 12, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (171), 18, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (171), 19, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (171), 20, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (171), 21, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (171), 24, 195);
-            Add_Action (Table.States (171), 25, 196);
-            Add_Action (Table.States (171), 27, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (171), 31, 197);
-            Add_Action (Table.States (171), 33, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (171), 35, Reduce, (51, 0), 3, null, 
null);
-            Table.States (171).Kernel := To_Vector (((51, 28, 0, False), (52, 
28, 1, False), (53, 28, 1, False), (53,
-            28, 1, False)));
-            Table.States (171).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 51, 3)));
+            Add_Action (Table.States (171), 12, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (171), 18, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (171), 19, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (171), 20, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (171), 21, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (171), 24, (53, 2), 195);
+            Add_Action (Table.States (171), 25, (52, 1), 196);
+            Add_Action (Table.States (171), 27, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (171), 31, (53, 3), 197);
+            Add_Action (Table.States (171), 33, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (171), 35, Reduce, (51, 0),  3, null, 
null);
+            Table.States (171).Kernel := To_Vector ((((51, 0),  28,  0, (51, 
0),  3), ((52, 1),  28,  1, (2147483647,
+            0),  0), ((53, 2),  28,  1, (2147483647, 0),  0), ((53, 3),  28,  
1, (2147483647, 0),  0)));
+            Table.States (171).Minimal_Complete_Actions := To_Vector 
(((Reduce, (51, 0),  3), (Shift, (52, 1),  25,
+            196), (Shift, (53, 2),  24, 195), (Shift, (53, 3),  31, 197)));
             Table.States (172).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (172), 33, 198);
-            Table.States (172).Kernel := To_Vector ((0 => (47, 16, 2, False)));
-            Table.States (172).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 198)));
+            Add_Action (Table.States (172), 33, (47, 0), 198);
+            Table.States (172).Kernel := To_Vector ((0 => ((47, 0),  16,  2, 
(2147483647, 0),  0)));
+            Table.States (172).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (47, 0),  33, 198)));
             Table.States (173).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (173), 12, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (173), 18, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (173), 19, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (173), 20, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (173), 21, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (173), 24, 135);
-            Add_Action (Table.States (173), 25, 136);
-            Add_Action (Table.States (173), 27, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (173), 31, 137);
-            Add_Action (Table.States (173), 33, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (173), 35, Reduce, (50, 0), 1, null, 
null);
-            Table.States (173).Kernel := To_Vector (((50, 33, 0, False), (52, 
33, 1, False), (53, 33, 1, False), (53,
-            33, 1, False)));
-            Table.States (173).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (173), 12, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (173), 18, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (173), 19, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (173), 20, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (173), 21, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (173), 24, (53, 4), 135);
+            Add_Action (Table.States (173), 25, (52, 2), 136);
+            Add_Action (Table.States (173), 27, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (173), 31, (53, 5), 137);
+            Add_Action (Table.States (173), 33, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (173), 35, Reduce, (50, 0),  1, null, 
null);
+            Table.States (173).Kernel := To_Vector ((((50, 0),  33,  0, (50, 
0),  1), ((52, 2),  33,  1, (2147483647,
+            0),  0), ((53, 4),  33,  1, (2147483647, 0),  0), ((53, 5),  33,  
1, (2147483647, 0),  0)));
+            Table.States (173).Minimal_Complete_Actions := To_Vector 
(((Reduce, (50, 0),  1), (Shift, (52, 2),  25,
+            136), (Shift, (53, 4),  24, 135), (Shift, (53, 5),  31, 137)));
+         end Subr_2;
+         procedure Subr_3
+         is begin
             Table.States (174).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (174), (12, 18, 19, 20, 21, 27, 33, 35), 
(48, 1), 3, null, null);
-            Table.States (174).Kernel := To_Vector ((0 => (48, 50, 0, False)));
-            Table.States (174).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 48, 3)));
+            Add_Action (Table.States (174), (12, 18, 19, 20, 21, 27, 33, 35), 
(48, 1),  3, null, null);
+            Table.States (174).Kernel := To_Vector ((0 => ((48, 1),  50,  0, 
(48, 1),  3)));
+            Table.States (174).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (48, 1),  3)));
             Table.States (175).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (175), 12, Reduce, (54, 1), 3, null, 
null);
-            Add_Action (Table.States (175), 18, 75);
-            Add_Action (Table.States (175), 19, 76);
-            Add_Action (Table.States (175), 20, 77);
-            Add_Action (Table.States (175), 21, 78);
-            Add_Action (Table.States (175), 27, Reduce, (54, 1), 3, null, 
null);
-            Add_Action (Table.States (175), 33, 79);
-            Add_Action (Table.States (175), 35, 80);
+            Add_Action (Table.States (175), 12, Reduce, (54, 1),  3, null, 
null);
+            Add_Action (Table.States (175), 18, (53, 0), 75);
+            Add_Action (Table.States (175), 19, (52, 0), 76);
+            Add_Action (Table.States (175), 20, (51, 0), 77);
+            Add_Action (Table.States (175), 21, (47, 0), 78);
+            Add_Action (Table.States (175), 27, Reduce, (54, 1),  3, null, 
null);
+            Add_Action (Table.States (175), 33, (48, 1), 79);
+            Add_Action (Table.States (175), 35, (50, 1), 80);
             Table.States (175).Goto_List.Set_Capacity (6);
             Add_Goto (Table.States (175), 47, 81);
             Add_Goto (Table.States (175), 48, 139);
@@ -1492,75 +1534,76 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (175), 51, 85);
             Add_Goto (Table.States (175), 52, 86);
             Add_Goto (Table.States (175), 53, 87);
-            Table.States (175).Kernel := To_Vector (((49, 49, 1, True), (54, 
49, 0, True)));
-            Table.States (175).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 54, 3)));
-            Table.States (175).Minimal_Complete_Actions_Recursive := True;
-         end Subr_2;
-         procedure Subr_3
-         is begin
+            Table.States (175).Kernel := To_Vector ((((49, 1),  49,  1, 
(2147483647, 0),  0), ((54, 1),  49,  0, (54,
+            1),  3)));
+            Table.States (175).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (54, 1),  3)));
             Table.States (176).Action_List.Set_Capacity (9);
-            Add_Action (Table.States (176), 12, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (176), 18, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (176), 19, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (176), 20, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (176), 21, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (176), 22, 199);
-            Add_Action (Table.States (176), 28, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (176), 33, Reduce, (53, 0), 3, null, 
null);
-            Add_Action (Table.States (176), 35, Reduce, (53, 0), 3, null, 
null);
-            Table.States (176).Kernel := To_Vector (((53, 26, 0, False), (53, 
26, 1, False)));
-            Table.States (176).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 3)));
+            Add_Action (Table.States (176), 12, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (176), 18, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (176), 19, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (176), 20, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (176), 21, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (176), 22, (53, 1), 199);
+            Add_Action (Table.States (176), 28, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (176), 33, Reduce, (53, 0),  3, null, 
null);
+            Add_Action (Table.States (176), 35, Reduce, (53, 0),  3, null, 
null);
+            Table.States (176).Kernel := To_Vector ((((53, 0),  26,  0, (53, 
0),  3), ((53, 1),  26,  1, (2147483647,
+            0),  0)));
+            Table.States (176).Minimal_Complete_Actions := To_Vector 
(((Reduce, (53, 0),  3), (Shift, (53, 1),  22,
+            199)));
             Table.States (177).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (177), (12, 18, 19, 20, 21, 28, 33, 35), 
(52, 0), 3, null, null);
-            Table.States (177).Kernel := To_Vector ((0 => (52, 27, 0, False)));
-            Table.States (177).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 52, 3)));
+            Add_Action (Table.States (177), (12, 18, 19, 20, 21, 28, 33, 35), 
(52, 0),  3, null, null);
+            Table.States (177).Kernel := To_Vector ((0 => ((52, 0),  27,  0, 
(52, 0),  3)));
+            Table.States (177).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (52, 0),  3)));
             Table.States (178).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (178), 12, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (178), 18, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (178), 19, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (178), 20, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (178), 21, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (178), 24, 200);
-            Add_Action (Table.States (178), 25, 201);
-            Add_Action (Table.States (178), 28, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (178), 31, 202);
-            Add_Action (Table.States (178), 33, Reduce, (51, 0), 3, null, 
null);
-            Add_Action (Table.States (178), 35, Reduce, (51, 0), 3, null, 
null);
-            Table.States (178).Kernel := To_Vector (((51, 28, 0, False), (52, 
28, 1, False), (53, 28, 1, False), (53,
-            28, 1, False)));
-            Table.States (178).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 51, 3)));
+            Add_Action (Table.States (178), 12, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (178), 18, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (178), 19, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (178), 20, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (178), 21, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (178), 24, (53, 2), 200);
+            Add_Action (Table.States (178), 25, (52, 1), 201);
+            Add_Action (Table.States (178), 28, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (178), 31, (53, 3), 202);
+            Add_Action (Table.States (178), 33, Reduce, (51, 0),  3, null, 
null);
+            Add_Action (Table.States (178), 35, Reduce, (51, 0),  3, null, 
null);
+            Table.States (178).Kernel := To_Vector ((((51, 0),  28,  0, (51, 
0),  3), ((52, 1),  28,  1, (2147483647,
+            0),  0), ((53, 2),  28,  1, (2147483647, 0),  0), ((53, 3),  28,  
1, (2147483647, 0),  0)));
+            Table.States (178).Minimal_Complete_Actions := To_Vector 
(((Reduce, (51, 0),  3), (Shift, (52, 1),  25,
+            201), (Shift, (53, 2),  24, 200), (Shift, (53, 3),  31, 202)));
             Table.States (179).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (179), 33, 203);
-            Table.States (179).Kernel := To_Vector ((0 => (47, 16, 2, False)));
-            Table.States (179).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 203)));
+            Add_Action (Table.States (179), 33, (47, 0), 203);
+            Table.States (179).Kernel := To_Vector ((0 => ((47, 0),  16,  2, 
(2147483647, 0),  0)));
+            Table.States (179).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (47, 0),  33, 203)));
             Table.States (180).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (180), 12, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (180), 18, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (180), 19, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (180), 20, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (180), 21, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (180), 24, 147);
-            Add_Action (Table.States (180), 25, 148);
-            Add_Action (Table.States (180), 28, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (180), 31, 149);
-            Add_Action (Table.States (180), 33, Reduce, (50, 0), 1, null, 
null);
-            Add_Action (Table.States (180), 35, Reduce, (50, 0), 1, null, 
null);
-            Table.States (180).Kernel := To_Vector (((50, 33, 0, False), (52, 
33, 1, False), (53, 33, 1, False), (53,
-            33, 1, False)));
-            Table.States (180).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 50, 1)));
+            Add_Action (Table.States (180), 12, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (180), 18, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (180), 19, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (180), 20, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (180), 21, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (180), 24, (53, 4), 147);
+            Add_Action (Table.States (180), 25, (52, 2), 148);
+            Add_Action (Table.States (180), 28, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (180), 31, (53, 5), 149);
+            Add_Action (Table.States (180), 33, Reduce, (50, 0),  1, null, 
null);
+            Add_Action (Table.States (180), 35, Reduce, (50, 0),  1, null, 
null);
+            Table.States (180).Kernel := To_Vector ((((50, 0),  33,  0, (50, 
0),  1), ((52, 2),  33,  1, (2147483647,
+            0),  0), ((53, 4),  33,  1, (2147483647, 0),  0), ((53, 5),  33,  
1, (2147483647, 0),  0)));
+            Table.States (180).Minimal_Complete_Actions := To_Vector 
(((Reduce, (50, 0),  1), (Shift, (52, 2),  25,
+            148), (Shift, (53, 4),  24, 147), (Shift, (53, 5),  31, 149)));
             Table.States (181).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (181), (12, 18, 19, 20, 21, 28, 33, 35), 
(48, 1), 3, null, null);
-            Table.States (181).Kernel := To_Vector ((0 => (48, 50, 0, False)));
-            Table.States (181).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 48, 3)));
+            Add_Action (Table.States (181), (12, 18, 19, 20, 21, 28, 33, 35), 
(48, 1),  3, null, null);
+            Table.States (181).Kernel := To_Vector ((0 => ((48, 1),  50,  0, 
(48, 1),  3)));
+            Table.States (181).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (48, 1),  3)));
             Table.States (182).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (182), 12, Reduce, (54, 1), 3, null, 
null);
-            Add_Action (Table.States (182), 18, 89);
-            Add_Action (Table.States (182), 19, 90);
-            Add_Action (Table.States (182), 20, 91);
-            Add_Action (Table.States (182), 21, 92);
-            Add_Action (Table.States (182), 28, Reduce, (54, 1), 3, null, 
null);
-            Add_Action (Table.States (182), 33, 93);
-            Add_Action (Table.States (182), 35, 94);
+            Add_Action (Table.States (182), 12, Reduce, (54, 1),  3, null, 
null);
+            Add_Action (Table.States (182), 18, (53, 0), 89);
+            Add_Action (Table.States (182), 19, (52, 0), 90);
+            Add_Action (Table.States (182), 20, (51, 0), 91);
+            Add_Action (Table.States (182), 21, (47, 0), 92);
+            Add_Action (Table.States (182), 28, Reduce, (54, 1),  3, null, 
null);
+            Add_Action (Table.States (182), 33, (48, 1), 93);
+            Add_Action (Table.States (182), 35, (50, 1), 94);
             Table.States (182).Goto_List.Set_Capacity (6);
             Add_Goto (Table.States (182), 47, 95);
             Add_Goto (Table.States (182), 48, 151);
@@ -1568,127 +1611,123 @@ package body Wisitoken_Grammar_1_Process_Main is
             Add_Goto (Table.States (182), 51, 99);
             Add_Goto (Table.States (182), 52, 100);
             Add_Goto (Table.States (182), 53, 101);
-            Table.States (182).Kernel := To_Vector (((49, 49, 1, True), (54, 
49, 0, True)));
-            Table.States (182).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 54, 3)));
-            Table.States (182).Minimal_Complete_Actions_Recursive := True;
+            Table.States (182).Kernel := To_Vector ((((49, 1),  49,  1, 
(2147483647, 0),  0), ((54, 1),  49,  0, (54,
+            1),  3)));
+            Table.States (182).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (54, 1),  3)));
             Table.States (183).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (183), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (53, 2), 4, null, null);
-            Table.States (183).Kernel := To_Vector ((0 => (53, 24, 0, False)));
-            Table.States (183).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 4)));
+            Add_Action (Table.States (183), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (53, 2),  4, null, null);
+            Table.States (183).Kernel := To_Vector ((0 => ((53, 2),  24,  0, 
(53, 2),  4)));
+            Table.States (183).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 2),  4)));
             Table.States (184).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (184), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (52, 1), 4, null, null);
-            Table.States (184).Kernel := To_Vector ((0 => (52, 25, 0, False)));
-            Table.States (184).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 52, 4)));
+            Add_Action (Table.States (184), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (52, 1),  4, null, null);
+            Table.States (184).Kernel := To_Vector ((0 => ((52, 1),  25,  0, 
(52, 1),  4)));
+            Table.States (184).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (52, 1),  4)));
             Table.States (185).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (185), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (53, 3), 4, null, null);
-            Table.States (185).Kernel := To_Vector ((0 => (53, 31, 0, False)));
-            Table.States (185).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 4)));
+            Add_Action (Table.States (185), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (53, 3),  4, null, null);
+            Table.States (185).Kernel := To_Vector ((0 => ((53, 3),  31,  0, 
(53, 3),  4)));
+            Table.States (185).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 3),  4)));
             Table.States (186).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (186), 17, 204);
-            Table.States (186).Kernel := To_Vector ((0 => (47, 33, 1, False)));
-            Table.States (186).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 17, 204)));
+            Add_Action (Table.States (186), 17, (47, 0), 204);
+            Table.States (186).Kernel := To_Vector ((0 => ((47, 0),  33,  1, 
(2147483647, 0),  0)));
+            Table.States (186).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (47, 0),  17, 204)));
             Table.States (187).Action_List.Set_Capacity (5);
-            Add_Action (Table.States (187), (12, 23, 29, 33, 36), (45, 3), 4, 
null, null);
-            Table.States (187).Kernel := To_Vector ((0 => (45, 5, 0, True)));
-            Table.States (187).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 45, 4)));
-            Table.States (187).Minimal_Complete_Actions_Recursive := True;
+            Add_Action (Table.States (187), (12, 23, 29, 33, 36), (45, 3),  4, 
null, null);
+            Table.States (187).Kernel := To_Vector ((0 => ((45, 3),  5,  0, 
(45, 3),  4)));
+            Table.States (187).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (45, 3),  4)));
             Table.States (188).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (188), 16, 205);
-            Table.States (188).Kernel := To_Vector ((0 => (45, 33, 2, True)));
-            Table.States (188).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 16, 205)));
-            Table.States (188).Minimal_Complete_Actions_Recursive := True;
+            Add_Action (Table.States (188), 16, (45, 2), 205);
+            Table.States (188).Kernel := To_Vector ((0 => ((45, 2),  33,  2, 
(2147483647, 0),  0)));
+            Table.States (188).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (45, 2),  16, 205)));
             Table.States (189).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (189), (12, 18, 19, 20, 21, 26, 33, 35), 
(53, 1), 4, null, null);
-            Table.States (189).Kernel := To_Vector ((0 => (53, 22, 0, False)));
-            Table.States (189).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 4)));
+            Add_Action (Table.States (189), (12, 18, 19, 20, 21, 26, 33, 35), 
(53, 1),  4, null, null);
+            Table.States (189).Kernel := To_Vector ((0 => ((53, 1),  22,  0, 
(53, 1),  4)));
+            Table.States (189).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 1),  4)));
             Table.States (190).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (190), (12, 18, 19, 20, 21, 26, 33, 35), 
(53, 2), 4, null, null);
-            Table.States (190).Kernel := To_Vector ((0 => (53, 24, 0, False)));
-            Table.States (190).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 4)));
+            Add_Action (Table.States (190), (12, 18, 19, 20, 21, 26, 33, 35), 
(53, 2),  4, null, null);
+            Table.States (190).Kernel := To_Vector ((0 => ((53, 2),  24,  0, 
(53, 2),  4)));
+            Table.States (190).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 2),  4)));
             Table.States (191).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (191), (12, 18, 19, 20, 21, 26, 33, 35), 
(52, 1), 4, null, null);
-            Table.States (191).Kernel := To_Vector ((0 => (52, 25, 0, False)));
-            Table.States (191).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 52, 4)));
+            Add_Action (Table.States (191), (12, 18, 19, 20, 21, 26, 33, 35), 
(52, 1),  4, null, null);
+            Table.States (191).Kernel := To_Vector ((0 => ((52, 1),  25,  0, 
(52, 1),  4)));
+            Table.States (191).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (52, 1),  4)));
             Table.States (192).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (192), (12, 18, 19, 20, 21, 26, 33, 35), 
(53, 3), 4, null, null);
-            Table.States (192).Kernel := To_Vector ((0 => (53, 31, 0, False)));
-            Table.States (192).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 4)));
+            Add_Action (Table.States (192), (12, 18, 19, 20, 21, 26, 33, 35), 
(53, 3),  4, null, null);
+            Table.States (192).Kernel := To_Vector ((0 => ((53, 3),  31,  0, 
(53, 3),  4)));
+            Table.States (192).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 3),  4)));
             Table.States (193).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (193), 17, 206);
-            Table.States (193).Kernel := To_Vector ((0 => (47, 33, 1, False)));
-            Table.States (193).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 17, 206)));
+            Add_Action (Table.States (193), 17, (47, 0), 206);
+            Table.States (193).Kernel := To_Vector ((0 => ((47, 0),  33,  1, 
(2147483647, 0),  0)));
+            Table.States (193).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (47, 0),  17, 206)));
             Table.States (194).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (194), (12, 18, 19, 20, 21, 27, 33, 35), 
(53, 1), 4, null, null);
-            Table.States (194).Kernel := To_Vector ((0 => (53, 22, 0, False)));
-            Table.States (194).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 4)));
+            Add_Action (Table.States (194), (12, 18, 19, 20, 21, 27, 33, 35), 
(53, 1),  4, null, null);
+            Table.States (194).Kernel := To_Vector ((0 => ((53, 1),  22,  0, 
(53, 1),  4)));
+            Table.States (194).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 1),  4)));
             Table.States (195).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (195), (12, 18, 19, 20, 21, 27, 33, 35), 
(53, 2), 4, null, null);
-            Table.States (195).Kernel := To_Vector ((0 => (53, 24, 0, False)));
-            Table.States (195).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 4)));
+            Add_Action (Table.States (195), (12, 18, 19, 20, 21, 27, 33, 35), 
(53, 2),  4, null, null);
+            Table.States (195).Kernel := To_Vector ((0 => ((53, 2),  24,  0, 
(53, 2),  4)));
+            Table.States (195).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 2),  4)));
             Table.States (196).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (196), (12, 18, 19, 20, 21, 27, 33, 35), 
(52, 1), 4, null, null);
-            Table.States (196).Kernel := To_Vector ((0 => (52, 25, 0, False)));
-            Table.States (196).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 52, 4)));
+            Add_Action (Table.States (196), (12, 18, 19, 20, 21, 27, 33, 35), 
(52, 1),  4, null, null);
+            Table.States (196).Kernel := To_Vector ((0 => ((52, 1),  25,  0, 
(52, 1),  4)));
+            Table.States (196).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (52, 1),  4)));
             Table.States (197).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (197), (12, 18, 19, 20, 21, 27, 33, 35), 
(53, 3), 4, null, null);
-            Table.States (197).Kernel := To_Vector ((0 => (53, 31, 0, False)));
-            Table.States (197).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 4)));
+            Add_Action (Table.States (197), (12, 18, 19, 20, 21, 27, 33, 35), 
(53, 3),  4, null, null);
+            Table.States (197).Kernel := To_Vector ((0 => ((53, 3),  31,  0, 
(53, 3),  4)));
+            Table.States (197).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 3),  4)));
             Table.States (198).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (198), 17, 207);
-            Table.States (198).Kernel := To_Vector ((0 => (47, 33, 1, False)));
-            Table.States (198).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 17, 207)));
+            Add_Action (Table.States (198), 17, (47, 0), 207);
+            Table.States (198).Kernel := To_Vector ((0 => ((47, 0),  33,  1, 
(2147483647, 0),  0)));
+            Table.States (198).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (47, 0),  17, 207)));
             Table.States (199).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (199), (12, 18, 19, 20, 21, 28, 33, 35), 
(53, 1), 4, null, null);
-            Table.States (199).Kernel := To_Vector ((0 => (53, 22, 0, False)));
-            Table.States (199).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 4)));
+            Add_Action (Table.States (199), (12, 18, 19, 20, 21, 28, 33, 35), 
(53, 1),  4, null, null);
+            Table.States (199).Kernel := To_Vector ((0 => ((53, 1),  22,  0, 
(53, 1),  4)));
+            Table.States (199).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 1),  4)));
             Table.States (200).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (200), (12, 18, 19, 20, 21, 28, 33, 35), 
(53, 2), 4, null, null);
-            Table.States (200).Kernel := To_Vector ((0 => (53, 24, 0, False)));
-            Table.States (200).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 4)));
+            Add_Action (Table.States (200), (12, 18, 19, 20, 21, 28, 33, 35), 
(53, 2),  4, null, null);
+            Table.States (200).Kernel := To_Vector ((0 => ((53, 2),  24,  0, 
(53, 2),  4)));
+            Table.States (200).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 2),  4)));
             Table.States (201).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (201), (12, 18, 19, 20, 21, 28, 33, 35), 
(52, 1), 4, null, null);
-            Table.States (201).Kernel := To_Vector ((0 => (52, 25, 0, False)));
-            Table.States (201).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 52, 4)));
+            Add_Action (Table.States (201), (12, 18, 19, 20, 21, 28, 33, 35), 
(52, 1),  4, null, null);
+            Table.States (201).Kernel := To_Vector ((0 => ((52, 1),  25,  0, 
(52, 1),  4)));
+            Table.States (201).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (52, 1),  4)));
             Table.States (202).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (202), (12, 18, 19, 20, 21, 28, 33, 35), 
(53, 3), 4, null, null);
-            Table.States (202).Kernel := To_Vector ((0 => (53, 31, 0, False)));
-            Table.States (202).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 53, 4)));
+            Add_Action (Table.States (202), (12, 18, 19, 20, 21, 28, 33, 35), 
(53, 3),  4, null, null);
+            Table.States (202).Kernel := To_Vector ((0 => ((53, 3),  31,  0, 
(53, 3),  4)));
+            Table.States (202).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (53, 3),  4)));
             Table.States (203).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (203), 17, 208);
-            Table.States (203).Kernel := To_Vector ((0 => (47, 33, 1, False)));
-            Table.States (203).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 17, 208)));
+            Add_Action (Table.States (203), 17, (47, 0), 208);
+            Table.States (203).Kernel := To_Vector ((0 => ((47, 0),  33,  1, 
(2147483647, 0),  0)));
+            Table.States (203).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (47, 0),  17, 208)));
             Table.States (204).Action_List.Set_Capacity (11);
-            Add_Action (Table.States (204), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (47, 0), 5, null, null);
-            Table.States (204).Kernel := To_Vector ((0 => (47, 17, 0, False)));
-            Table.States (204).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 47, 5)));
+            Add_Action (Table.States (204), (11, 12, 18, 19, 20, 21, 23, 29, 
33, 35, 36), (47, 0),  5, null, null);
+            Table.States (204).Kernel := To_Vector ((0 => ((47, 0),  17,  0, 
(47, 0),  5)));
+            Table.States (204).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (47, 0),  5)));
             Table.States (205).Action_List.Set_Capacity (1);
-            Add_Action (Table.States (205), 33, 209);
-            Table.States (205).Kernel := To_Vector ((0 => (45, 16, 1, True)));
-            Table.States (205).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, 33, 209)));
-            Table.States (205).Minimal_Complete_Actions_Recursive := True;
+            Add_Action (Table.States (205), 33, (45, 2), 209);
+            Table.States (205).Kernel := To_Vector ((0 => ((45, 2),  16,  1, 
(2147483647, 0),  0)));
+            Table.States (205).Minimal_Complete_Actions := To_Vector ((0 => 
(Shift, (45, 2),  33, 209)));
             Table.States (206).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (206), (12, 18, 19, 20, 21, 26, 33, 35), 
(47, 0), 5, null, null);
-            Table.States (206).Kernel := To_Vector ((0 => (47, 17, 0, False)));
-            Table.States (206).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 47, 5)));
+            Add_Action (Table.States (206), (12, 18, 19, 20, 21, 26, 33, 35), 
(47, 0),  5, null, null);
+            Table.States (206).Kernel := To_Vector ((0 => ((47, 0),  17,  0, 
(47, 0),  5)));
+            Table.States (206).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (47, 0),  5)));
             Table.States (207).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (207), (12, 18, 19, 20, 21, 27, 33, 35), 
(47, 0), 5, null, null);
-            Table.States (207).Kernel := To_Vector ((0 => (47, 17, 0, False)));
-            Table.States (207).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 47, 5)));
+            Add_Action (Table.States (207), (12, 18, 19, 20, 21, 27, 33, 35), 
(47, 0),  5, null, null);
+            Table.States (207).Kernel := To_Vector ((0 => ((47, 0),  17,  0, 
(47, 0),  5)));
+            Table.States (207).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (47, 0),  5)));
             Table.States (208).Action_List.Set_Capacity (8);
-            Add_Action (Table.States (208), (12, 18, 19, 20, 21, 28, 33, 35), 
(47, 0), 5, null, null);
-            Table.States (208).Kernel := To_Vector ((0 => (47, 17, 0, False)));
-            Table.States (208).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 47, 5)));
+            Add_Action (Table.States (208), (12, 18, 19, 20, 21, 28, 33, 35), 
(47, 0),  5, null, null);
+            Table.States (208).Kernel := To_Vector ((0 => ((47, 0),  17,  0, 
(47, 0),  5)));
+            Table.States (208).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (47, 0),  5)));
             Table.States (209).Action_List.Set_Capacity (5);
-            Add_Action (Table.States (209), (12, 23, 29, 33, 36), (45, 2), 6, 
null, null);
-            Table.States (209).Kernel := To_Vector ((0 => (45, 33, 0, True)));
-            Table.States (209).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, 45, 6)));
-            Table.States (209).Minimal_Complete_Actions_Recursive := True;
+            Add_Action (Table.States (209), (12, 23, 29, 33, 36), (45, 2),  6, 
null, null);
+            Table.States (209).Kernel := To_Vector ((0 => ((45, 2),  33,  0, 
(45, 2),  6)));
+            Table.States (209).Minimal_Complete_Actions := To_Vector ((0 => 
(Reduce, (45, 2),  6)));
          end Subr_3;
       begin
          Subr_1;
          Subr_2;
          Subr_3;
-         Table.Error_Action := new Parse_Action_Node'((Verb => Error), null);
+         Table.Error_Action := new Parse_Action_Node'((Verb => Error, others 
=> <>), null);
       end;
 
       WisiToken.Parse.LR.Parser.New_Parser
diff --git a/wisitoken_grammar_1_re2c.c b/wisitoken_grammar_1_re2c.c
index 9cfbf31..057fc89 100644
--- a/wisitoken_grammar_1_re2c.c
+++ b/wisitoken_grammar_1_re2c.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 1.0.3 */
+/* Generated by re2c 1.3 */
 #line 1 "wisitoken_grammar_1.re2c"
 //  generated parser support file. -*- mode: C -*-
 //  command line: wisitoken-bnf-generate.exe  --generate LR1 Ada_Emacs re2c 
PROCESS wisitoken_grammar_1.wy
@@ -59,7 +59,7 @@ wisi_lexer* wisitoken_grammar_1_new_lexer
    result->buffer_last       = input + length - 1;
    result->cursor            = input;
    result->byte_token_start  = input;
-   result->char_pos          = 1;
+   result->char_pos          = 1; /* match WisiToken.Buffer_Region */
    result->char_token_start  = 1;
    result->line              = (*result->cursor == 0x0A) ? 2 : 1;
    result->line_token_start  = result->line;
@@ -97,16 +97,22 @@ static void debug(wisi_lexer* lexer, int state, unsigned 
char ch)
 
 #define YYPEEK() (lexer->cursor <= lexer->buffer_last) ? *lexer->cursor : 4
 
-#define DO_COUNT ((*lexer->cursor & 0xC0) != 0xC0) && (*lexer->cursor != 0x0D)
-
 static void skip(wisi_lexer* lexer)
 {
    if (lexer->cursor <= lexer->buffer_last)
-   {
       ++lexer->cursor;
-      if (DO_COUNT) ++lexer->char_pos;
-      if (lexer->cursor <= lexer->buffer_last)
-         if (*lexer->cursor == 0x0A) ++lexer->line;
+   if (lexer->cursor <= lexer->buffer_last)
+   {
+      /* UFT-8 encoding: https://en.wikipedia.org/wiki/UTF-8#Description */
+      if (*lexer->cursor == 0x0A && lexer->cursor > lexer->buffer && 
*(lexer->cursor - 1) == 0x0D)
+        {/* second byte of DOS line ending */
+        }
+      else if ((*lexer->cursor & 0x80) == 0x80 && (*lexer->cursor & 0xC0) != 
0xC0)
+        {/* byte 2, 3 or 4 of multi-byte UTF-8 char */
+        }
+      else
+        ++lexer->char_pos;
+      if (*lexer->cursor == 0x0A) ++lexer->line;
    }
 }
 #define YYSKIP() skip(lexer)
@@ -173,7 +179,7 @@ int wisitoken_grammar_1_next_token
    while (*id == -1 && status == 0)
    {
 
-#line 177 "wisitoken_grammar_1_re2c.c"
+#line 183 "wisitoken_grammar_1_re2c.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -326,36 +332,36 @@ yy2:
        YYSKIP ();
 yy3:
        YYDEBUG(3, YYPEEK ());
-#line 255 "wisitoken_grammar_1.re2c"
+#line 262 "wisitoken_grammar_1.re2c"
        {status = ERROR_unrecognized_character; continue;}
-#line 332 "wisitoken_grammar_1_re2c.c"
+#line 338 "wisitoken_grammar_1_re2c.c"
 yy4:
        YYDEBUG(4, YYPEEK ());
        YYSKIP ();
        YYDEBUG(5, YYPEEK ());
-#line 253 "wisitoken_grammar_1.re2c"
+#line 260 "wisitoken_grammar_1.re2c"
        {*id =  36; continue;}
-#line 339 "wisitoken_grammar_1_re2c.c"
+#line 345 "wisitoken_grammar_1_re2c.c"
 yy6:
        YYDEBUG(6, YYPEEK ());
        YYSKIP ();
        YYDEBUG(7, YYPEEK ());
-#line 211 "wisitoken_grammar_1.re2c"
-       { lexer->byte_token_start = lexer->cursor;
-          lexer->char_token_start = lexer->char_pos;
-          if (*lexer->cursor == 0x0A)
-             lexer->line_token_start = lexer->line-1;
-          else
-             lexer->line_token_start = lexer->line;
+#line 218 "wisitoken_grammar_1.re2c"
+       { lexer->byte_token_start = lexer->cursor;
+          lexer->char_token_start = lexer->char_pos;
+          if (*lexer->cursor == 0x0A)
+             lexer->line_token_start = lexer->line-1;
+          else
+             lexer->line_token_start = lexer->line;
           continue; }
-#line 352 "wisitoken_grammar_1_re2c.c"
+#line 358 "wisitoken_grammar_1_re2c.c"
 yy8:
        YYDEBUG(8, YYPEEK ());
        YYSKIP ();
        YYDEBUG(9, YYPEEK ());
-#line 218 "wisitoken_grammar_1.re2c"
+#line 225 "wisitoken_grammar_1.re2c"
        {*id =  1; continue;}
-#line 359 "wisitoken_grammar_1_re2c.c"
+#line 365 "wisitoken_grammar_1_re2c.c"
 yy10:
        YYDEBUG(10, YYPEEK ());
        YYSKIP ();
@@ -532,9 +538,9 @@ yy12:
        }
 yy13:
        YYDEBUG(13, YYPEEK ());
-#line 240 "wisitoken_grammar_1.re2c"
+#line 247 "wisitoken_grammar_1.re2c"
        {*id =  23; continue;}
-#line 538 "wisitoken_grammar_1_re2c.c"
+#line 544 "wisitoken_grammar_1_re2c.c"
 yy14:
        YYDEBUG(14, YYPEEK ());
        yyaccept = 0;
@@ -695,37 +701,37 @@ yy15:
        YYDEBUG(15, YYPEEK ());
        YYSKIP ();
        YYDEBUG(16, YYPEEK ());
-#line 237 "wisitoken_grammar_1.re2c"
+#line 244 "wisitoken_grammar_1.re2c"
        {*id =  20; continue;}
-#line 701 "wisitoken_grammar_1_re2c.c"
+#line 707 "wisitoken_grammar_1_re2c.c"
 yy17:
        YYDEBUG(17, YYPEEK ());
        YYSKIP ();
        YYDEBUG(18, YYPEEK ());
-#line 245 "wisitoken_grammar_1.re2c"
+#line 252 "wisitoken_grammar_1.re2c"
        {*id =  28; continue;}
-#line 708 "wisitoken_grammar_1_re2c.c"
+#line 714 "wisitoken_grammar_1_re2c.c"
 yy19:
        YYDEBUG(19, YYPEEK ());
        YYSKIP ();
        YYDEBUG(20, YYPEEK ());
-#line 248 "wisitoken_grammar_1.re2c"
+#line 255 "wisitoken_grammar_1.re2c"
        {*id =  31; continue;}
-#line 715 "wisitoken_grammar_1_re2c.c"
+#line 721 "wisitoken_grammar_1_re2c.c"
 yy21:
        YYDEBUG(21, YYPEEK ());
        YYSKIP ();
        YYDEBUG(22, YYPEEK ());
-#line 241 "wisitoken_grammar_1.re2c"
+#line 248 "wisitoken_grammar_1.re2c"
        {*id =  24; continue;}
-#line 722 "wisitoken_grammar_1_re2c.c"
+#line 728 "wisitoken_grammar_1_re2c.c"
 yy23:
        YYDEBUG(23, YYPEEK ());
        YYSKIP ();
        YYDEBUG(24, YYPEEK ());
-#line 232 "wisitoken_grammar_1.re2c"
+#line 239 "wisitoken_grammar_1.re2c"
        {*id =  15; continue;}
-#line 729 "wisitoken_grammar_1_re2c.c"
+#line 735 "wisitoken_grammar_1_re2c.c"
 yy25:
        YYDEBUG(25, YYPEEK ());
        YYSKIP ();
@@ -746,16 +752,16 @@ yy25:
        }
 yy26:
        YYDEBUG(26, YYPEEK ());
-#line 239 "wisitoken_grammar_1.re2c"
+#line 246 "wisitoken_grammar_1.re2c"
        {*id =  22; continue;}
-#line 752 "wisitoken_grammar_1_re2c.c"
+#line 758 "wisitoken_grammar_1_re2c.c"
 yy27:
        YYDEBUG(27, YYPEEK ());
        YYSKIP ();
        YYDEBUG(28, YYPEEK ());
-#line 247 "wisitoken_grammar_1.re2c"
+#line 254 "wisitoken_grammar_1.re2c"
        {*id =  30; continue;}
-#line 759 "wisitoken_grammar_1_re2c.c"
+#line 765 "wisitoken_grammar_1_re2c.c"
 yy29:
        YYDEBUG(29, YYPEEK ());
        YYSKIP ();
@@ -777,9 +783,9 @@ yy29:
        }
 yy31:
        YYDEBUG(31, YYPEEK ());
-#line 249 "wisitoken_grammar_1.re2c"
+#line 256 "wisitoken_grammar_1.re2c"
        {*id =  32; continue;}
-#line 783 "wisitoken_grammar_1_re2c.c"
+#line 789 "wisitoken_grammar_1_re2c.c"
 yy32:
        YYDEBUG(32, YYPEEK ());
        yyaccept = 1;
@@ -792,9 +798,9 @@ yy32:
        }
 yy33:
        YYDEBUG(33, YYPEEK ());
-#line 230 "wisitoken_grammar_1.re2c"
+#line 237 "wisitoken_grammar_1.re2c"
        {*id =  13; continue;}
-#line 798 "wisitoken_grammar_1_re2c.c"
+#line 804 "wisitoken_grammar_1_re2c.c"
 yy34:
        YYDEBUG(34, YYPEEK ());
        YYSKIP ();
@@ -805,37 +811,37 @@ yy34:
        }
 yy35:
        YYDEBUG(35, YYPEEK ());
-#line 246 "wisitoken_grammar_1.re2c"
+#line 253 "wisitoken_grammar_1.re2c"
        {*id =  29; continue;}
-#line 811 "wisitoken_grammar_1_re2c.c"
+#line 817 "wisitoken_grammar_1_re2c.c"
 yy36:
        YYDEBUG(36, YYPEEK ());
        YYSKIP ();
        YYDEBUG(37, YYPEEK ());
-#line 238 "wisitoken_grammar_1.re2c"
+#line 245 "wisitoken_grammar_1.re2c"
        {*id =  21; continue;}
-#line 818 "wisitoken_grammar_1_re2c.c"
+#line 824 "wisitoken_grammar_1_re2c.c"
 yy38:
        YYDEBUG(38, YYPEEK ());
        YYSKIP ();
        YYDEBUG(39, YYPEEK ());
-#line 233 "wisitoken_grammar_1.re2c"
+#line 240 "wisitoken_grammar_1.re2c"
        {*id =  16; continue;}
-#line 825 "wisitoken_grammar_1_re2c.c"
+#line 831 "wisitoken_grammar_1_re2c.c"
 yy40:
        YYDEBUG(40, YYPEEK ());
        YYSKIP ();
        YYDEBUG(41, YYPEEK ());
-#line 234 "wisitoken_grammar_1.re2c"
+#line 241 "wisitoken_grammar_1.re2c"
        {*id =  17; continue;}
-#line 832 "wisitoken_grammar_1_re2c.c"
+#line 838 "wisitoken_grammar_1_re2c.c"
 yy42:
        YYDEBUG(42, YYPEEK ());
        YYSKIP ();
        YYDEBUG(43, YYPEEK ());
-#line 242 "wisitoken_grammar_1.re2c"
+#line 249 "wisitoken_grammar_1.re2c"
        {*id =  25; continue;}
-#line 839 "wisitoken_grammar_1_re2c.c"
+#line 845 "wisitoken_grammar_1_re2c.c"
 yy44:
        YYDEBUG(44, YYPEEK ());
        yyaccept = 2;
@@ -964,23 +970,23 @@ yy45:
        }
 yy46:
        YYDEBUG(46, YYPEEK ());
-#line 250 "wisitoken_grammar_1.re2c"
+#line 257 "wisitoken_grammar_1.re2c"
        {*id =  33; continue;}
-#line 970 "wisitoken_grammar_1_re2c.c"
+#line 976 "wisitoken_grammar_1_re2c.c"
 yy47:
        YYDEBUG(47, YYPEEK ());
        YYSKIP ();
        YYDEBUG(48, YYPEEK ());
-#line 236 "wisitoken_grammar_1.re2c"
+#line 243 "wisitoken_grammar_1.re2c"
        {*id =  19; continue;}
-#line 977 "wisitoken_grammar_1_re2c.c"
+#line 983 "wisitoken_grammar_1_re2c.c"
 yy49:
        YYDEBUG(49, YYPEEK ());
        YYSKIP ();
        YYDEBUG(50, YYPEEK ());
-#line 244 "wisitoken_grammar_1.re2c"
+#line 251 "wisitoken_grammar_1.re2c"
        {*id =  27; continue;}
-#line 984 "wisitoken_grammar_1_re2c.c"
+#line 990 "wisitoken_grammar_1_re2c.c"
 yy51:
        YYDEBUG(51, YYPEEK ());
        yyaccept = 2;
@@ -1045,23 +1051,23 @@ yy57:
        YYDEBUG(57, YYPEEK ());
        YYSKIP ();
        YYDEBUG(58, YYPEEK ());
-#line 235 "wisitoken_grammar_1.re2c"
+#line 242 "wisitoken_grammar_1.re2c"
        {*id =  18; continue;}
-#line 1051 "wisitoken_grammar_1_re2c.c"
+#line 1057 "wisitoken_grammar_1_re2c.c"
 yy59:
        YYDEBUG(59, YYPEEK ());
        YYSKIP ();
        YYDEBUG(60, YYPEEK ());
-#line 229 "wisitoken_grammar_1.re2c"
+#line 236 "wisitoken_grammar_1.re2c"
        {*id =  12; continue;}
-#line 1058 "wisitoken_grammar_1_re2c.c"
+#line 1064 "wisitoken_grammar_1_re2c.c"
 yy61:
        YYDEBUG(61, YYPEEK ());
        YYSKIP ();
        YYDEBUG(62, YYPEEK ());
-#line 243 "wisitoken_grammar_1.re2c"
+#line 250 "wisitoken_grammar_1.re2c"
        {*id =  26; continue;}
-#line 1065 "wisitoken_grammar_1_re2c.c"
+#line 1071 "wisitoken_grammar_1_re2c.c"
 yy63:
        YYDEBUG(63, YYPEEK ());
        YYSKIP ();
@@ -1587,9 +1593,9 @@ yy72:
        }
 yy73:
        YYDEBUG(73, YYPEEK ());
-#line 251 "wisitoken_grammar_1.re2c"
+#line 258 "wisitoken_grammar_1.re2c"
        {*id =  34; continue;}
-#line 1593 "wisitoken_grammar_1_re2c.c"
+#line 1599 "wisitoken_grammar_1_re2c.c"
 yy74:
        YYDEBUG(74, YYPEEK ());
        YYSKIP ();
@@ -1924,23 +1930,23 @@ yy80:
        YYDEBUG(80, YYPEEK ());
        YYSKIP ();
        YYDEBUG(81, YYPEEK ());
-#line 228 "wisitoken_grammar_1.re2c"
+#line 235 "wisitoken_grammar_1.re2c"
        {*id =  11; skip_to(lexer, ")%"); continue;}
-#line 1930 "wisitoken_grammar_1_re2c.c"
+#line 1936 "wisitoken_grammar_1_re2c.c"
 yy82:
        YYDEBUG(82, YYPEEK ());
        YYSKIP ();
        YYDEBUG(83, YYPEEK ());
-#line 227 "wisitoken_grammar_1.re2c"
+#line 234 "wisitoken_grammar_1.re2c"
        {*id =  10; skip_to(lexer, "]%"); continue;}
-#line 1937 "wisitoken_grammar_1_re2c.c"
+#line 1943 "wisitoken_grammar_1_re2c.c"
 yy84:
        YYDEBUG(84, YYPEEK ());
        YYSKIP ();
        YYDEBUG(85, YYPEEK ());
-#line 226 "wisitoken_grammar_1.re2c"
+#line 233 "wisitoken_grammar_1.re2c"
        {*id =  9; skip_to(lexer, "}%"); continue;}
-#line 1944 "wisitoken_grammar_1_re2c.c"
+#line 1950 "wisitoken_grammar_1_re2c.c"
 yy86:
        YYDEBUG(86, YYPEEK ());
        YYSKIP ();
@@ -2109,9 +2115,9 @@ yy88:
        }
 yy89:
        YYDEBUG(89, YYPEEK ());
-#line 252 "wisitoken_grammar_1.re2c"
+#line 259 "wisitoken_grammar_1.re2c"
        {*id =  35; continue;}
-#line 2115 "wisitoken_grammar_1_re2c.c"
+#line 2121 "wisitoken_grammar_1_re2c.c"
 yy90:
        YYDEBUG(90, YYPEEK ());
        YYSKIP ();
@@ -2639,9 +2645,9 @@ yy97:
        }
 yy99:
        YYDEBUG(99, YYPEEK ());
-#line 219 "wisitoken_grammar_1.re2c"
+#line 226 "wisitoken_grammar_1.re2c"
        {*id =  2; continue;}
-#line 2645 "wisitoken_grammar_1_re2c.c"
+#line 2651 "wisitoken_grammar_1_re2c.c"
 yy100:
        YYDEBUG(100, YYPEEK ());
        YYSKIP ();
@@ -3118,9 +3124,9 @@ yy108:
        }
 yy109:
        YYDEBUG(109, YYPEEK ());
-#line 222 "wisitoken_grammar_1.re2c"
+#line 229 "wisitoken_grammar_1.re2c"
        {*id =  5; continue;}
-#line 3124 "wisitoken_grammar_1_re2c.c"
+#line 3130 "wisitoken_grammar_1_re2c.c"
 yy110:
        YYDEBUG(110, YYPEEK ());
        yyaccept = 2;
@@ -3155,9 +3161,9 @@ yy113:
        YYDEBUG(113, YYPEEK ());
        YYSKIP ();
        YYDEBUG(114, YYPEEK ());
-#line 231 "wisitoken_grammar_1.re2c"
+#line 238 "wisitoken_grammar_1.re2c"
        {*id =  14; continue;}
-#line 3161 "wisitoken_grammar_1_re2c.c"
+#line 3167 "wisitoken_grammar_1_re2c.c"
 yy115:
        YYDEBUG(115, YYPEEK ());
        YYSKIP ();
@@ -3624,9 +3630,9 @@ yy122:
        }
 yy123:
        YYDEBUG(123, YYPEEK ());
-#line 221 "wisitoken_grammar_1.re2c"
+#line 228 "wisitoken_grammar_1.re2c"
        {*id =  4; continue;}
-#line 3630 "wisitoken_grammar_1_re2c.c"
+#line 3636 "wisitoken_grammar_1_re2c.c"
 yy124:
        YYDEBUG(124, YYPEEK ());
        yyaccept = 2;
@@ -3783,9 +3789,9 @@ yy127:
        }
 yy128:
        YYDEBUG(128, YYPEEK ());
-#line 220 "wisitoken_grammar_1.re2c"
+#line 227 "wisitoken_grammar_1.re2c"
        {*id =  3; continue;}
-#line 3789 "wisitoken_grammar_1_re2c.c"
+#line 3795 "wisitoken_grammar_1_re2c.c"
 yy129:
        YYDEBUG(129, YYPEEK ());
        yyaccept = 2;
@@ -3962,9 +3968,9 @@ yy134:
        }
 yy135:
        YYDEBUG(135, YYPEEK ());
-#line 225 "wisitoken_grammar_1.re2c"
+#line 232 "wisitoken_grammar_1.re2c"
        {*id =  8; continue;}
-#line 3968 "wisitoken_grammar_1_re2c.c"
+#line 3974 "wisitoken_grammar_1_re2c.c"
 yy136:
        YYDEBUG(136, YYPEEK ());
        yyaccept = 2;
@@ -4111,9 +4117,9 @@ yy138:
        }
 yy139:
        YYDEBUG(139, YYPEEK ());
-#line 223 "wisitoken_grammar_1.re2c"
+#line 230 "wisitoken_grammar_1.re2c"
        {*id =  6; continue;}
-#line 4117 "wisitoken_grammar_1_re2c.c"
+#line 4123 "wisitoken_grammar_1_re2c.c"
 yy140:
        YYDEBUG(140, YYPEEK ());
        yyaccept = 2;
@@ -4280,20 +4286,18 @@ yy144:
        }
 yy145:
        YYDEBUG(145, YYPEEK ());
-#line 224 "wisitoken_grammar_1.re2c"
+#line 231 "wisitoken_grammar_1.re2c"
        {*id =  7; continue;}
-#line 4286 "wisitoken_grammar_1_re2c.c"
+#line 4292 "wisitoken_grammar_1_re2c.c"
 }
-#line 256 "wisitoken_grammar_1.re2c"
+#line 263 "wisitoken_grammar_1.re2c"
 
-      }
+   }
+   /* lexer->cursor and lexer ->char_pos are one char past end of token */
    *byte_position = lexer->byte_token_start - lexer->buffer + 1;
    *byte_length   = lexer->cursor - lexer->byte_token_start;
    *char_position = lexer->char_token_start;
-   if (DO_COUNT)
-      *char_length = lexer->char_pos - lexer->char_token_start;
-   else
-      *char_length = lexer->char_pos - lexer->char_token_start + 1;
-   *line_start     = lexer->line_token_start;
+   *char_length   = lexer->char_pos - lexer->char_token_start;
+   *line_start    = lexer->line_token_start;
    return status;
    }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]