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

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

[elpa] externals/ada-mode cc65bfe 18/48: Update ada-mode, wisi


From: Stefan Monnier
Subject: [elpa] externals/ada-mode cc65bfe 18/48: Update ada-mode, wisi
Date: Mon, 30 Nov 2020 17:20:39 -0500 (EST)

branch: externals/ada-mode
commit cc65bfeb4cb3fcf1bc0b2bbe021fe0ee2aaf88da
Author: Stephen Leake <stephen_leake@stephe-leake.org>
Commit: Stephen Leake <stephen_leake@stephe-leake.org>

    Update ada-mode, wisi
    
    * packages/ada-mode: Version 5.1.9.
    * packages/wisi: Version 1.1.2.
---
 NEWS                       |   49 +
 README                     |    4 +-
 ada-build.el               |   13 +-
 ada-fix-error.el           |   56 +-
 ada-gnat-compile.el        |   39 +-
 ada-gnat-xref.el           |   21 +-
 ada-grammar-wy.el          | 2276 ++++++++++++++++++++++----------------------
 ada-indent-user-options.el |   42 +-
 ada-mode-compat-24.2.el    |   16 +-
 ada-mode.el                |  309 +++---
 ada-mode.info              |  130 ++-
 ada-mode.texi              |   60 +-
 ada-ref-man.el             |    4 +-
 ada-wisi-opentoken.el      |    4 +-
 ada-wisi.el                |  144 ++-
 ada-xref.el                |    1 +
 gnat-core.el               |   30 +-
 gnat-inspect.el            |  571 -----------
 gpr-grammar-wy.el          |  303 +++---
 gpr-mode.el                |   53 +-
 gpr-mode.info              |    2 +-
 gpr-query.el               |  126 ++-
 gpr-skel.el                |    7 +-
 gpr-wisi.el                |    7 +-
 24 files changed, 2090 insertions(+), 2177 deletions(-)

diff --git a/NEWS b/NEWS
index 1765b96..960584e 100755
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,55 @@ Please send Emacs Ada mode bug reports to 
bug-gnu-emacs@gnu.org, with
 'ada-mode' in the subject. If possible, use M-x report-emacs-bug.
 
 
+* Ada mode 5.1.9
+20 Jan 2016
+
+** New option ada-indent-comment-gnat matches the GNAT style check for
+   comments in all cases (previously, there were some cases where the
+   comment indent algorithm did not match the GNAT check).
+
+** New menu command "Show source file search path"; displays
+   compilation-search-path in a buffer.
+
+** Adding missing grammar statements to allow removing parens around
+   conditional and quantified expressions.
+
+** Key binding for ada-case-create-partial-exception in ada-mode
+   changed to C-c C-M-y; this is easier to type, and matches the key
+   binding in gpr-mode.
+
+** ada-case-keyword changed to accept the symbols 'lower-case,
+   'upper-case instead of the functions downcase-word, upcase-word.
+
+** ada-case-identifier changed to accept the symbols 'mixed-case,
+   'lower-case, 'upper-case instead of the functions 'ada-mixed-case,
+   'ada-lower-case, 'ada-upper-case.
+
+** ada-fix-add-context-clause now sorts "limited with" and "private
+   with" clauses after other clauses.
+
+** ada-align now aligns '=>' in case expressions.
+
+** ada-align-paramlist now handles access function parameters:
+
+   procedure Choose
+     (X, Y, Z    :        Integer;
+      Preference : access function (A, B : Integer) return Boolean);
+
+** ada-next-statement-keyword now moves to matching close paren if on
+   open paren, ada-prev-statement-keyword moves from close paren to
+   open paren.
+
+** New hook ada-prj-parse-hook, run from ada-parse-prj-file.
+
+** GPR mode now does case adjust similar to Ada mode.
+
+** gpr parser handles nested case statements without blowing up.
+
+** gpr parser handles package renames
+
+** fix other bugs
+
 * Ada mode 5.1.8
 10 Apr 2015
 
diff --git a/README b/README
index fdc20c0..df7a48c 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-Emacs Ada mode version 5.1.8
+Emacs Ada mode version 5.1.9
 
 Ada mode requires Emacs 24.2 or greater
 
@@ -22,7 +22,7 @@ Unzip to a convenient place (we will use ~/ada-mode in the 
following).
 
 In a shell:
 $ cd ~/ada-mode/build/wisi
-$ byte-compile
+$ make byte-compile
 
 Edit your ~/.emacs, add:
 
diff --git a/ada-build.el b/ada-build.el
index c54cae2..0553454 100644
--- a/ada-build.el
+++ b/ada-build.el
@@ -1,4 +1,4 @@
-;;; ada-build.el --- Extensions to ada-mode for compiling and running  -*- 
lexical-binding:t -*-
+;; ada-build.el --- Extensions to ada-mode for compiling and running  -*- 
lexical-binding:t -*-
 ;; Ada projects without 'make' or similar tool
 ;;
 ;; Copyright (C) 1994, 1995, 1997 - 2015  Free Software Foundation, Inc.
@@ -34,9 +34,7 @@
 ;; compiling and running capabilities in Ada mode 4.01, done in 2013 by
 ;; Stephen Leake <stephen_leake@stephe-leake.org>.
 
-(when (and (= emacs-major-version 24)
-          (= emacs-minor-version 2))
-  (require 'ada-mode-compat-24.2))
+(require 'ada-mode-compat-24.2)
 
 (require 'ada-mode)
 
@@ -72,6 +70,9 @@ Overridden by project variable 'check_cmd'."
 Overridden by project variable 'make_cmd'."
   :type 'string)
 
+;; FIXME: make this more intelligent to work on Windows cmd shell?
+;; either detect Windows and drop "./", or expand to full path at
+;; runtime.
 (defcustom ada-build-run-cmd "./${main}"
   "Default command to run the application, in a spawned shell.
 Overridden by project variable 'run_cmd'."
@@ -90,8 +91,8 @@ a list, the prefix is prepended to each list element. For
 example, if src_dir contains 'dir_1 dir_2', '-I${src_dir}'
 expands to '-Idir_1 -Idir_2'.
 
-As a special case, ${full_current} is replaced by the name
-including the directory and extension."
+As a special case, ${full_current} is replaced by the current
+buffer file name including the directory and extension."
 
   (while (string-match "\\(-[^-$ ]+\\)?\\${\\([^}]+\\)}" cmd-string)
     (let ((prefix (match-string 1 cmd-string))
diff --git a/ada-fix-error.el b/ada-fix-error.el
index 8008104..6ec0fd7 100644
--- a/ada-fix-error.el
+++ b/ada-fix-error.el
@@ -63,6 +63,57 @@ compilation unit.")
     (ada-case-adjust-identifier)
     (delete-char 1)))
 
+(defun ada-fix-sort-context-pred (a b)
+  "Predicate for `sort-subr'; sorts \"limited with\", \"private with\" last.
+Returns non-nil if a should preceed b in buffer."
+  ;; a, b are buffer ranges in the current buffer
+  (cl-flet
+      ((starts-with
+       (pat reg)
+       (string= pat (buffer-substring-no-properties (car reg)
+                                                    (min (point-max)
+                                                         (+(car reg) (length 
pat)))))))
+    (cond
+     ((and
+       (starts-with "limited with" a)
+       (starts-with "private with" b))
+      t)
+
+     ((and
+       (starts-with "limited with" a)
+       (not (starts-with "limited with" b)))
+      nil)
+
+     ((and
+       (not (starts-with "limited with" a))
+       (starts-with "limited with" b))
+      t)
+
+     ((and
+       (starts-with "private with" a)
+       (not (starts-with "private with" b)))
+      nil)
+
+     ((and
+       (not (starts-with "private with" a))
+       (starts-with "private with" b))
+      t)
+
+     (t
+      (> 0 (compare-buffer-substrings
+           nil (car a) (cdr a)
+           nil (car b) (cdr b))) )
+     )))
+
+(defun ada-fix-sort-context-clause (beg end)
+  "Sort context clauses in range BEG END."
+  (save-excursion
+    (save-restriction
+      (narrow-to-region beg end)
+      (goto-char (point-min))
+      (sort-subr nil 'forward-line 'end-of-line nil nil 
'ada-fix-sort-context-pred)
+      )))
+
 (defun ada-fix-add-with-clause (package-name)
   "Add a with_clause for PACKAGE_NAME.
 If ada-fix-sort-context-clause, sort the context clauses using
@@ -78,8 +129,7 @@ sort-lines."
 
     (when (and (< (car context-clause) (cdr context-clause))
               ada-fix-sort-context-clause)
-      ;; FIXME (later): this puts "limited with", "private with" at top of 
list; prefer at bottom
-      (sort-lines nil (car context-clause) (point)))
+      (ada-fix-sort-context-clause (car context-clause) (point)))
     ))
 
 (defun ada-fix-extend-with-clause (child-name)
@@ -157,7 +207,7 @@ point and return nil.")
       (when (not (ada-get-compilation-message))
        (beep)
        (message "FIXME: ada-fix-compiler-error")
-       ;; not clear why this can happens, but it does
+       ;; not clear why this can happen, but it has
        (compilation-next-error 1))
       (let ((comp-buf-pt (point))
            (success
diff --git a/ada-gnat-compile.el b/ada-gnat-compile.el
index a09c482..ee4b12a 100644
--- a/ada-gnat-compile.el
+++ b/ada-gnat-compile.el
@@ -347,24 +347,23 @@ Prompt user if more than one."
               t)))
 
          ((looking-at (concat "expected \\(private \\)?type " 
ada-gnat-quoted-name-regexp))
-          (progn
-            (forward-line 1)
-            (move-to-column message-column)
-            (cond
-             ((looking-at "found type access")
-              (pop-to-buffer source-buffer)
-              (if (looking-at "'Access")
-                  (kill-word 1)
-                (forward-word 1)
-                (insert ".all"))
-              t)
-            ((looking-at "found type .*_Access_Type")
-              ;; assume just need '.all'
-              (pop-to-buffer source-buffer)
+          (forward-line 1)
+          (move-to-column message-column)
+          (cond
+           ((looking-at "found type access")
+            (pop-to-buffer source-buffer)
+            (if (looking-at "'Access")
+                (kill-word 1)
               (forward-word 1)
-              (insert ".all")
-              t)
-            )))
+              (insert ".all"))
+            t)
+           ((looking-at "found type .*_Access_Type")
+            ;; assume just need '.all'
+            (pop-to-buffer source-buffer)
+            (forward-word 1)
+            (insert ".all")
+            t)
+           ))
 
          ((looking-at "extra \".\" ignored")
           (set-buffer source-buffer)
@@ -381,7 +380,9 @@ Prompt user if more than one."
           ;; also 'possible missing "with Ada.Text_IO; use Ada.Text_IO"' - 
ignoring the 'use'
           (let ((package-name (match-string-no-properties 1)))
             (pop-to-buffer source-buffer)
-            ;; FIXME (later): should check if prefix is already with'd, extend 
it
+            ;; Could check if prefix is already with'd, extend
+            ;; it. But no one has reported that case yet; this
+            ;; message only occurs for predefined Ada packages.
             (ada-fix-add-with-clause package-name))
           t)
 
@@ -579,7 +580,7 @@ Prompt user if more than one."
 
 (defun ada-gnat-compile-select-prj ()
   (setq ada-fix-error-hook 'ada-gnat-fix-error-hook)
-  (setq ada-prj-show-path 'gnat-prj-show-path)
+  (setq ada-prj-show-prj-path 'gnat-prj-show-prj-path)
   (add-to-list 'completion-ignored-extensions ".ali") ;; gnat library files
   (add-hook 'ada-syntax-propertize-hook 'ada-gnat-syntax-propertize)
   (add-hook 'ada-syntax-propertize-hook 'gnatprep-syntax-propertize)
diff --git a/ada-gnat-xref.el b/ada-gnat-xref.el
index 05961a0..53553b3 100644
--- a/ada-gnat-xref.el
+++ b/ada-gnat-xref.el
@@ -1,4 +1,4 @@
-;;; ada-gnat-xref.el --- Ada mode cross-reference functionality provided by 
the 'gnat xref' tool  -*- lexical-binding:t -*-
+;;; ada-gnat-xref.el --- Ada mode cross-reference functionality provided by 
'gnat xref'  -*- lexical-binding:t -*-
 ;;
 ;; These tools are all Ada-specific; see gpr-query for multi-language
 ;; GNAT cross-reference tools.
@@ -119,15 +119,14 @@
            ;; error in *.gpr; ignore here.
            (forward-line 1)
          ;; else process line
-         (progn
-           (skip-syntax-forward "^ ")
-           (skip-syntax-forward " ")
-           (if (looking-at (concat "derived from .* (" 
ada-gnat-file-line-col-regexp ")"))
-               ;; found other item
-               (setq result (list (match-string 1)
-                                  (string-to-number (match-string 2))
-                                  (1- (string-to-number (match-string 3)))))
-             (forward-line 1)))
+         (skip-syntax-forward "^ ")
+         (skip-syntax-forward " ")
+         (if (looking-at (concat "derived from .* (" 
ada-gnat-file-line-col-regexp ")"))
+             ;; found other item
+             (setq result (list (match-string 1)
+                                (string-to-number (match-string 2))
+                                (1- (string-to-number (match-string 3)))))
+           (forward-line 1))
          )
        (when (eobp)
          (error "gnat find did not return parent types"))
@@ -159,7 +158,7 @@
 
        (compilation-start cmd
                           'compilation-mode
-                          (lambda (mode) (concat mode "-gnatfind")))
+                          (lambda (name) (concat name "-gnatfind")))
     ))))
 
 ;;;;; setup
diff --git a/ada-grammar-wy.el b/ada-grammar-wy.el
index 3266513..10cd525 100644
--- a/ada-grammar-wy.el
+++ b/ada-grammar-wy.el
@@ -1,6 +1,6 @@
 ;;; ada-grammar-wy.el --- Generated parser support file  -*- lexical-binding:t 
-*-
 
-;; Copyright (C) 2013, 2015  Free Software Foundation, Inc.
+;; Copyright (C) 2013 - 2015 Free Software Foundation, Inc.
 
 ;; This program is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU General Public License as
@@ -202,6 +202,10 @@
        ((LEFT_PAREN association_list RIGHT_PAREN )
         (progn
         (wisi-statement-action [1 open-paren 3 close-paren])
+        (wisi-containing-action 1 2)))
+       ((LEFT_PAREN conditional_quantified_expression RIGHT_PAREN )
+        (progn
+        (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2))))
       (actual_parameter_part_opt
        (())
@@ -217,11 +221,7 @@
         (wisi-containing-action 1 2)
         (wisi-containing-action 1 3)
         (wisi-containing-action 3 4)))
-       ((LEFT_PAREN case_expression RIGHT_PAREN )
-        (progn
-        (wisi-statement-action [1 open-paren 3 close-paren])
-        (wisi-containing-action 1 2)))
-       ((LEFT_PAREN if_expression RIGHT_PAREN )
+       ((LEFT_PAREN conditional_quantified_expression RIGHT_PAREN )
         (progn
         (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2)))
@@ -340,6 +340,7 @@
        ((WHEN discrete_choice_list EQUAL_GREATER expression )
         (progn
         (wisi-statement-action [1 block-middle 3 statement-other])
+        (wisi-containing-action 1 3)
         (wisi-containing-action 3 4))))
       (case_expression_alternative_list
        ((case_expression_alternative ))
@@ -359,6 +360,7 @@
         (progn
         (wisi-statement-action [1 block-middle 3 statement-other])
         (wisi-containing-action 1 2)
+        (wisi-containing-action 1 3)
         (wisi-containing-action 3 4))))
       (case_statement_alternative_list
        ((case_statement_alternative ))
@@ -449,6 +451,10 @@
         (wisi-statement-action [1 block-start 3 block-middle 5 block-end 7 
statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4))))
+      (conditional_quantified_expression
+       ((if_expression ))
+       ((case_expression ))
+       ((quantified_expression )))
       (constant_opt
        (())
        ((CONSTANT )))
@@ -617,7 +623,8 @@
        ((FOR name USE aggregate SEMICOLON )
         (progn
         (wisi-statement-action [1 statement-start 3 statement-other 5 
statement-end])
-        (wisi-containing-action 3 4))))
+        (wisi-containing-action 3 4)
+        (wisi-face-action [2 font-lock-type-face]))))
       (enumeration_type_definition
        ((LEFT_PAREN enumeration_literal_list RIGHT_PAREN )
         (progn
@@ -637,11 +644,13 @@
         (progn
         (wisi-statement-action [1 block-middle 5 statement-other])
         (wisi-containing-action 1 4)
+        (wisi-containing-action 1 5)
         (wisi-containing-action 5 6)))
        ((WHEN exception_choice_list EQUAL_GREATER sequence_of_statements_opt )
         (progn
         (wisi-statement-action [1 block-middle 3 statement-other])
         (wisi-containing-action 1 2)
+        (wisi-containing-action 1 3)
         (wisi-containing-action 3 4))))
       (exception_handler_list
        ((exception_handler ))
@@ -669,11 +678,14 @@
       (expression_function_declaration
        ((overriding_indicator_opt function_specification IS paren_expression 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action [1 statement-start 2 statement-other 6 
statement-end])
-        (wisi-containing-action 2 4)
+        (wisi-statement-action [1 statement-start 2 block-middle 3 
statement-other 6 statement-end])
+        (wisi-containing-action 3 4)
         (wisi-containing-action 2 5))))
       (extended_return_object_declaration
-       ((IDENTIFIER COLON aliased_opt constant_opt return_subtype_indication 
COLON_EQUAL expression ))
+       ((IDENTIFIER COLON aliased_opt constant_opt return_subtype_indication 
COLON_EQUAL expression )
+        (progn
+        (wisi-statement-action [1 statement-start 6 statement-other])
+        (wisi-containing-action 6 7)))
        ((IDENTIFIER COLON aliased_opt constant_opt return_subtype_indication 
)))
       (extended_return_object_declaration_opt
        (())
@@ -1071,8 +1083,7 @@
         (wisi-statement-action [1 name-paren 2 open-paren 4 close-paren])
         (wisi-containing-action 1 2)
         (wisi-containing-action 2 3)))
-       ((selected_component )
-        (wisi-extend-action 1))
+       ((selected_component ))
        ((attribute_reference ))
        ((name actual_parameter_part )
         (progn
@@ -1169,6 +1180,7 @@
         (wisi-containing-action 3 4)
         (wisi-containing-action 5 6)
         (wisi-containing-action 7 8)
+        (wisi-containing-action 9 10)
         (wisi-motion-action [1 5 7 [8 block-middle EXCEPTION block-middle 
WHEN] 9])
         (wisi-face-action [3 font-lock-function-name-face 10 
font-lock-function-name-face])))
        ((PACKAGE BODY name aspect_specification_opt IS declarative_part_opt 
END name_opt SEMICOLON )
@@ -1177,6 +1189,7 @@
         (wisi-containing-action 1 3)
         (wisi-containing-action 3 4)
         (wisi-containing-action 5 6)
+        (wisi-containing-action 7 8)
         (wisi-motion-action [1 5 7])
         (wisi-face-action [3 font-lock-function-name-face 8 
font-lock-function-name-face]))))
       (package_body_stub
@@ -1206,7 +1219,7 @@
         (wisi-containing-action 6 7)
         (wisi-motion-action [1 4 6 8])
         (wisi-face-action [2 font-lock-function-name-face 9 
font-lock-function-name-face])))
-       ((PACKAGE name aspect_specification_opt IS declarative_part_opt END 
name )
+       ((PACKAGE name aspect_specification_opt IS declarative_part_opt END 
name_opt )
         (progn
         (wisi-statement-action [1 statement-start 2 name 4 block-start 6 
block-end])
         (wisi-containing-action 1 2)
@@ -1253,11 +1266,7 @@
         (progn
         (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2)))
-       ((LEFT_PAREN case_expression RIGHT_PAREN )
-        (progn
-        (wisi-statement-action [1 open-paren 3 close-paren])
-        (wisi-containing-action 1 2)))
-       ((LEFT_PAREN if_expression RIGHT_PAREN )
+       ((LEFT_PAREN conditional_quantified_expression RIGHT_PAREN )
         (progn
         (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2))))
@@ -1274,6 +1283,7 @@
       (pragma_argument_association
        ((IDENTIFIER EQUAL_GREATER expression ))
        ((expression ))
+       ((conditional_quantified_expression ))
        ((IDENTIFIER TICK IDENTIFIER EQUAL_GREATER expression )))
       (pragma_argument_association_list
        ((pragma_argument_association ))
@@ -1285,33 +1295,22 @@
        ((aggregate ))
        ((name ))
        ((NEW name )
-        (wisi-face-action [2 font-lock-type-face] t))
-       ((LEFT_PAREN if_expression RIGHT_PAREN )
-        (progn
-        (wisi-statement-action [1 open-paren 3 close-paren])
-        (wisi-containing-action 1 2)))
-       ((LEFT_PAREN case_expression RIGHT_PAREN )
-        (progn
-        (wisi-statement-action [1 open-paren 3 close-paren])
-        (wisi-containing-action 1 2)))
-       ((LEFT_PAREN quantified_expression RIGHT_PAREN )
-        (progn
-        (wisi-statement-action [1 open-paren 3 close-paren])
-        (wisi-containing-action 1 2))))
+        (wisi-face-action [2 font-lock-type-face] t)))
       (private_extension_declaration
        ((TYPE IDENTIFIER discriminant_part_opt IS 
abstract_limited_synchronized_opt NEW subtype_indication and_interface_list_opt 
WITH PRIVATE aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action [1 statement-start 2 name 6 statement-other 12 
statement-end])
+        (wisi-statement-action [1 statement-start 2 name 4 statement-other 6 
statement-other 12 statement-end])
         (wisi-containing-action 1 3)
         (wisi-containing-action 6 7)
         (wisi-containing-action 6 8)
-        (wisi-containing-action 2 11)
+        (wisi-containing-action 4 11)
         (wisi-face-action [2 font-lock-type-face]))))
       (private_type_declaration
        ((TYPE IDENTIFIER discriminant_part_opt IS abstract_tagged_limited_opt 
PRIVATE aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action [1 statement-start 2 name 8 statement-end])
-        (wisi-containing-action 1 7)
+        (wisi-statement-action [1 statement-start 2 name 4 statement-other 8 
statement-end])
+        (wisi-containing-action 1 3)
+        (wisi-containing-action 4 7)
         (wisi-face-action [2 font-lock-type-face]))))
       (procedure_call_statement
        ((name SEMICOLON )
@@ -1373,15 +1372,15 @@
       (protected_type_declaration
        ((PROTECTED TYPE IDENTIFIER discriminant_part_opt 
aspect_specification_opt IS NEW interface_list WITH protected_definition 
SEMICOLON )
         (progn
-        (wisi-statement-action [1 statement-start 3 name 6 block-start 9 
statement-other 11 statement-end])
-        (wisi-containing-action 1 3)
+        (wisi-statement-action [1 statement-start 3 name 6 block-middle 9 
block-middle 11 statement-end])
+        (wisi-containing-action 1 4)
         (wisi-containing-action 3 5)
         (wisi-containing-action 6 10)
         (wisi-face-action [3 font-lock-type-face])))
        ((PROTECTED TYPE IDENTIFIER discriminant_part_opt 
aspect_specification_opt IS protected_definition SEMICOLON )
         (progn
-        (wisi-statement-action [1 statement-start 3 name 6 block-start 8 
statement-end])
-        (wisi-containing-action 1 3)
+        (wisi-statement-action [1 statement-start 3 name 6 block-middle 8 
statement-end])
+        (wisi-containing-action 1 4)
         (wisi-containing-action 3 5)
         (wisi-containing-action 6 7)
         (wisi-face-action [3 font-lock-type-face]))))
@@ -1437,7 +1436,8 @@
        ((FOR name USE record_rep SEMICOLON )
         (progn
         (wisi-statement-action [1 statement-start 3 statement-other 5 
statement-end])
-        (wisi-containing-action 3 4))))
+        (wisi-containing-action 3 4)
+        (wisi-face-action [2 font-lock-type-face]))))
       (record_rep
        ((RECORD mod_clause_opt component_clause_list END RECORD )
         (progn
@@ -1491,7 +1491,8 @@
        ((subtype_indication ))
        ((access_definition )))
       (selected_component
-       ((name DOT IDENTIFIER ))
+       ((name DOT IDENTIFIER )
+        (wisi-extend-action 1 3))
        ((name DOT CHARACTER_LITERAL ))
        ((name DOT STRING_LITERAL ))
        ((name DOT ALL )))
@@ -1512,6 +1513,7 @@
         (progn
         (wisi-statement-action [1 block-start 3 statement-other])
         (wisi-containing-action 1 2)
+        (wisi-containing-action 1 3)
         (wisi-containing-action 3 4)
         (wisi-containing-action 3 5)))
        ((accept_statement sequence_of_statements_opt ))
@@ -1519,12 +1521,14 @@
         (progn
         (wisi-statement-action [1 block-start 3 statement-other])
         (wisi-containing-action 1 2)
+        (wisi-containing-action 1 3)
         (wisi-containing-action 3 4)))
        ((delay_alternative ))
        ((WHEN expression EQUAL_GREATER TERMINATE SEMICOLON )
         (progn
         (wisi-statement-action [1 block-start 3 statement-other 4 
statement-start 5 statement-end])
-        (wisi-containing-action 1 2)))
+        (wisi-containing-action 1 2)
+        (wisi-containing-action 1 3)))
        ((TERMINATE SEMICOLON )
         (wisi-statement-action [1 statement-start 2 statement-end])))
       (select_alternative_list
@@ -1575,14 +1579,15 @@
       (single_protected_declaration
        ((PROTECTED IDENTIFIER aspect_specification_opt IS NEW interface_list 
WITH protected_definition SEMICOLON )
         (progn
-        (wisi-statement-action [1 block-start 2 name 7 block-middle 9 
statement-end])
+        (wisi-statement-action [1 statement-start 2 name 4 block-middle 7 
block-middle 9 statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 2 3)
+        (wisi-containing-action 4 6)
         (wisi-containing-action 7 8)
         (wisi-face-action [2 font-lock-type-face])))
        ((PROTECTED IDENTIFIER aspect_specification_opt IS protected_definition 
SEMICOLON )
         (progn
-        (wisi-statement-action [1 block-start 2 name 4 block-middle 6 
statement-end])
+        (wisi-statement-action [1 statement-start 2 name 4 block-middle 6 
statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 2 3)
         (wisi-containing-action 4 5)
@@ -1590,14 +1595,15 @@
       (single_task_declaration
        ((TASK IDENTIFIER aspect_specification_opt IS NEW interface_list WITH 
task_definition SEMICOLON )
         (progn
-        (wisi-statement-action [1 block-start 2 name 7 block-middle 9 
statement-end])
+        (wisi-statement-action [1 statement-start 2 name 4 block-middle 7 
block-middle 9 statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 2 3)
+        (wisi-containing-action 4 6)
         (wisi-containing-action 7 8)
         (wisi-face-action [2 font-lock-type-face])))
        ((TASK IDENTIFIER aspect_specification_opt IS task_definition SEMICOLON 
)
         (progn
-        (wisi-statement-action [1 block-start 2 name 4 block-middle 6 
statement-end])
+        (wisi-statement-action [1 statement-start 2 name 4 block-middle 6 
statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 2 3)
         (wisi-containing-action 4 5)
@@ -1702,19 +1708,22 @@
       (task_type_declaration
        ((TASK TYPE IDENTIFIER discriminant_part_opt aspect_specification_opt 
IS NEW interface_list WITH task_definition SEMICOLON )
         (progn
-        (wisi-statement-action [1 statement-start 3 name 10 statement-other 11 
statement-end])
+        (wisi-statement-action [1 statement-start 3 name 6 block-middle 9 
block-middle 11 statement-end])
+        (wisi-containing-action 1 4)
         (wisi-containing-action 3 5)
-        (wisi-containing-action 9 10)
-        (wisi-face-action [2 font-lock-type-face])))
+        (wisi-containing-action 6 10)
+        (wisi-face-action [3 font-lock-type-face])))
        ((TASK TYPE IDENTIFIER discriminant_part_opt aspect_specification_opt 
IS task_definition SEMICOLON )
         (progn
-        (wisi-statement-action [1 statement-start 3 name 6 block-start 8 
statement-end])
+        (wisi-statement-action [1 statement-start 3 name 6 block-middle 8 
statement-end])
+        (wisi-containing-action 1 4)
         (wisi-containing-action 3 5)
         (wisi-containing-action 6 7)
         (wisi-face-action [3 font-lock-type-face])))
        ((TASK TYPE IDENTIFIER discriminant_part_opt aspect_specification_opt 
SEMICOLON )
         (progn
         (wisi-statement-action [1 statement-start 3 name 6 statement-end])
+        (wisi-containing-action 1 4)
         (wisi-containing-action 3 5)
         (wisi-face-action [3 font-lock-type-face]))))
       (term
@@ -1763,6 +1772,7 @@
         (progn
         (wisi-statement-action [1 block-middle 3 statement-other])
         (wisi-containing-action 1 2)
+        (wisi-containing-action 1 3)
         (wisi-containing-action 3 4))))
       (unary_adding_operator
        ((PLUS ))
@@ -1852,14 +1862,14 @@
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
       ((default . error) ($EOI . accept) (CHARACTER_LITERAL . accept) 
(STRING_LITERAL . accept) (IDENTIFIER . accept) (NUMERIC_LITERAL . accept) 
(TICK . accept) (STAR_STAR . accept) (STAR . accept) (SLASH_EQUAL . accept) 
(SLASH . accept) (SEMICOLON . accept) (PLUS . accept) (MINUS . accept) 
(LESS_LESS . accept) (LESS_EQUAL . accept) (LESS . accept) (GREATER_GREATER . 
accept) (GREATER_EQUAL . accept) (GREATER . accept) (EQUAL_GREATER . accept) 
(EQUAL . accept) (DOT_DOT . accept) (DOT . ac [...]
       ((default . error) (WITH . (compilation_unit_list . 1)) (USE . 
(compilation_unit_list . 1)) (SEPARATE . (compilation_unit_list . 1)) 
(PROCEDURE . (compilation_unit_list . 1)) (PRIVATE . (compilation_unit_list . 
1)) (PRAGMA . (compilation_unit_list . 1)) (PACKAGE . (compilation_unit_list . 
1)) (OVERRIDING . (compilation_unit_list . 1)) (NOT . (compilation_unit_list . 
1)) (LIMITED . (compilation_unit_list . 1)) (GENERIC . (compilation_unit_list . 
1)) (FUNCTION . (compilation_unit_lis [...]
-      ((default . error) (USE . (name . 0)) (DO . (name . 0)) (ELSIF . (name . 
0)) (RENAMES . (name . 0)) (ELSE . (name . 0)) (ACCEPT . (name . 0)) (ABORT . 
(name . 0)) (BEGIN . (name . 0)) (CASE . (name . 0)) (DECLARE . (name . 0)) 
(DELAY . (name . 0)) (EXIT . (name . 0)) (FOR . (name . 0)) (GOTO . (name . 0)) 
(IF . (name . 0)) (LOOP . (name . 0)) (NULL . (name . 0)) (PRAGMA . (name . 0)) 
(RAISE . (name . 0)) (REQUEUE . (name . 0)) (RETURN . (name . 0)) (SELECT . 
(name . 0)) (WHILE . (n [...]
-      ((default . error) (USE . (name . 7)) (DO . (name . 7)) (ELSIF . (name . 
7)) (RENAMES . (name . 7)) (ELSE . (name . 7)) (ACCEPT . (name . 7)) (ABORT . 
(name . 7)) (BEGIN . (name . 7)) (CASE . (name . 7)) (DECLARE . (name . 7)) 
(DELAY . (name . 7)) (EXIT . (name . 7)) (FOR . (name . 7)) (GOTO . (name . 7)) 
(IF . (name . 7)) (LOOP . (name . 7)) (NULL . (name . 7)) (PRAGMA . (name . 7)) 
(RAISE . (name . 7)) (REQUEUE . (name . 7)) (RETURN . (name . 7)) (SELECT . 
(name . 7)) (WHILE . (n [...]
-      ((default . error) (DO . (name . 1)) (USE . (name . 1)) (ELSIF . (name . 
1)) (COMMA . (name . 1)) (RENAMES . (name . 1)) (ELSE . (name . 1)) (ACCEPT . 
(name . 1)) (ABORT . (name . 1)) (BEGIN . (name . 1)) (CASE . (name . 1)) 
(DECLARE . (name . 1)) (DELAY . (name . 1)) (EXIT . (name . 1)) (FOR . (name . 
1)) (GOTO . (name . 1)) (IF . (name . 1)) (LOOP . (name . 1)) (NULL . (name . 
1)) (PRAGMA . (name . 1)) (RAISE . (name . 1)) (REQUEUE . (name . 1)) (RETURN . 
(name . 1)) (SELECT . (n [...]
-      ((default . error) (USE . (name . 4)) (DO . (name . 4)) (ELSIF . (name . 
4)) (RENAMES . (name . 4)) (ELSE . (name . 4)) (ACCEPT . (name . 4)) (ABORT . 
(name . 4)) (BEGIN . (name . 4)) (CASE . (name . 4)) (DECLARE . (name . 4)) 
(DELAY . (name . 4)) (EXIT . (name . 4)) (FOR . (name . 4)) (GOTO . (name . 4)) 
(IF . (name . 4)) (LOOP . (name . 4)) (NULL . (name . 4)) (PRAGMA . (name . 4)) 
(RAISE . (name . 4)) (REQUEUE . (name . 4)) (RETURN . (name . 4)) (SELECT . 
(name . 4)) (WHILE . (n [...]
+      ((default . error) (USE . (name . 0)) (DO . (name . 0)) (ELSIF . (name . 
0)) (RENAMES . (name . 0)) (OF . (name . 0)) (ELSE . (name . 0)) (ACCEPT . 
(name . 0)) (ABORT . (name . 0)) (BEGIN . (name . 0)) (CASE . (name . 0)) 
(DECLARE . (name . 0)) (DELAY . (name . 0)) (EXIT . (name . 0)) (FOR . (name . 
0)) (GOTO . (name . 0)) (IF . (name . 0)) (LOOP . (name . 0)) (NULL . (name . 
0)) (PRAGMA . (name . 0)) (RAISE . (name . 0)) (REQUEUE . (name . 0)) (RETURN . 
(name . 0)) (SELECT . (name [...]
+      ((default . error) (USE . (name . 7)) (DO . (name . 7)) (ELSIF . (name . 
7)) (RENAMES . (name . 7)) (OF . (name . 7)) (ELSE . (name . 7)) (ACCEPT . 
(name . 7)) (ABORT . (name . 7)) (BEGIN . (name . 7)) (CASE . (name . 7)) 
(DECLARE . (name . 7)) (DELAY . (name . 7)) (EXIT . (name . 7)) (FOR . (name . 
7)) (GOTO . (name . 7)) (IF . (name . 7)) (LOOP . (name . 7)) (NULL . (name . 
7)) (PRAGMA . (name . 7)) (RAISE . (name . 7)) (REQUEUE . (name . 7)) (RETURN . 
(name . 7)) (SELECT . (name [...]
+      ((default . error) (DO . (name . 1)) (USE . (name . 1)) (ELSIF . (name . 
1)) (COMMA . (name . 1)) (RENAMES . (name . 1)) (OF . (name . 1)) (ELSE . (name 
. 1)) (ACCEPT . (name . 1)) (ABORT . (name . 1)) (BEGIN . (name . 1)) (CASE . 
(name . 1)) (DECLARE . (name . 1)) (DELAY . (name . 1)) (EXIT . (name . 1)) 
(FOR . (name . 1)) (GOTO . (name . 1)) (IF . (name . 1)) (LOOP . (name . 1)) 
(NULL . (name . 1)) (PRAGMA . (name . 1)) (RAISE . (name . 1)) (REQUEUE . (name 
. 1)) (RETURN . (name  [...]
+      ((default . error) (USE . (name . 4)) (DO . (name . 4)) (ELSIF . (name . 
4)) (RENAMES . (name . 4)) (OF . (name . 4)) (ELSE . (name . 4)) (ACCEPT . 
(name . 4)) (ABORT . (name . 4)) (BEGIN . (name . 4)) (CASE . (name . 4)) 
(DECLARE . (name . 4)) (DELAY . (name . 4)) (EXIT . (name . 4)) (FOR . (name . 
4)) (GOTO . (name . 4)) (IF . (name . 4)) (LOOP . (name . 4)) (NULL . (name . 
4)) (PRAGMA . (name . 4)) (RAISE . (name . 4)) (REQUEUE . (name . 4)) (RETURN . 
(name . 4)) (SELECT . (name [...]
       ((default . error) (COMMA .  120) (SEMICOLON .  124))
       ((default . error) (DOT .  90) (SEMICOLON . (name_list . 0)) (COMMA . 
(name_list . 0)) (TICK .  91) (LEFT_PAREN .  107))
-      ((default . error) (DO . (name . 6)) (USE . (name . 6)) (ELSIF . (name . 
6)) (RENAMES . (name . 6)) (ELSE . (name . 6)) (ACCEPT . (name . 6)) (ABORT . 
(name . 6)) (BEGIN . (name . 6)) (CASE . (name . 6)) (DECLARE . (name . 6)) 
(DELAY . (name . 6)) (EXIT . (name . 6)) (FOR . (name . 6)) (GOTO . (name . 6)) 
(IF . (name . 6)) (LOOP . (name . 6)) (NULL . (name . 6)) (PRAGMA . (name . 6)) 
(RAISE . (name . 6)) (REQUEUE . (name . 6)) (RETURN . (name . 6)) (SELECT . 
(name . 6)) (WHILE . (n [...]
-      ((default . error) (DO . (name . 3)) (USE . (name . 3)) (ELSIF . (name . 
3)) (RENAMES . (name . 3)) (ELSE . (name . 3)) (ACCEPT . (name . 3)) (ABORT . 
(name . 3)) (BEGIN . (name . 3)) (CASE . (name . 3)) (DECLARE . (name . 3)) 
(DELAY . (name . 3)) (EXIT . (name . 3)) (FOR . (name . 3)) (GOTO . (name . 3)) 
(IF . (name . 3)) (LOOP . (name . 3)) (NULL . (name . 3)) (PRAGMA . (name . 3)) 
(RAISE . (name . 3)) (REQUEUE . (name . 3)) (RETURN . (name . 3)) (SELECT . 
(name . 3)) (WHILE . (n [...]
+      ((default . error) (DO . (name . 6)) (USE . (name . 6)) (ELSIF . (name . 
6)) (RENAMES . (name . 6)) (OF . (name . 6)) (ELSE . (name . 6)) (ACCEPT . 
(name . 6)) (ABORT . (name . 6)) (BEGIN . (name . 6)) (CASE . (name . 6)) 
(DECLARE . (name . 6)) (DELAY . (name . 6)) (EXIT . (name . 6)) (FOR . (name . 
6)) (GOTO . (name . 6)) (IF . (name . 6)) (LOOP . (name . 6)) (NULL . (name . 
6)) (PRAGMA . (name . 6)) (RAISE . (name . 6)) (REQUEUE . (name . 6)) (RETURN . 
(name . 6)) (SELECT . (name [...]
+      ((default . error) (DO . (name . 3)) (USE . (name . 3)) (ELSIF . (name . 
3)) (RENAMES . (name . 3)) (OF . (name . 3)) (ELSE . (name . 3)) (ACCEPT . 
(name . 3)) (ABORT . (name . 3)) (BEGIN . (name . 3)) (CASE . (name . 3)) 
(DECLARE . (name . 3)) (DELAY . (name . 3)) (EXIT . (name . 3)) (FOR . (name . 
3)) (GOTO . (name . 3)) (IF . (name . 3)) (LOOP . (name . 3)) (NULL . (name . 
3)) (PRAGMA . (name . 3)) (RAISE . (name . 3)) (REQUEUE . (name . 3)) (RETURN . 
(name . 3)) (SELECT . (name [...]
       ((default . error) (TYPE .  123))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (COMMA .  120) (SEMICOLON .  121))
@@ -1892,31 +1902,31 @@
       ((default . error) (PACKAGE . (generic_formal_parameter_declaration . 
4)) (PROCEDURE . (generic_formal_parameter_declaration . 4)) (FUNCTION . 
(generic_formal_parameter_declaration . 4)) (IDENTIFIER . 
(generic_formal_parameter_declaration . 4)) (WITH . 
(generic_formal_parameter_declaration . 4)) (USE . 
(generic_formal_parameter_declaration . 4)) (TYPE . 
(generic_formal_parameter_declaration . 4)) (PRAGMA . 
(generic_formal_parameter_declaration . 4)))
       ((default . error) (PACKAGE . (generic_formal_parameter_declaration . 
5)) (PROCEDURE . (generic_formal_parameter_declaration . 5)) (FUNCTION . 
(generic_formal_parameter_declaration . 5)) (IDENTIFIER . 
(generic_formal_parameter_declaration . 5)) (WITH . 
(generic_formal_parameter_declaration . 5)) (USE . 
(generic_formal_parameter_declaration . 5)) (TYPE . 
(generic_formal_parameter_declaration . 5)) (PRAGMA . 
(generic_formal_parameter_declaration . 5)))
       ((default . error) (DOT .  90) (TICK .  91) (RETURN .  89) (LEFT_PAREN . 
 88))
-      ((default . error) (RIGHT_PAREN . ((expression_opt . 0) (association_opt 
. 0))) (COMMA . ((expression_opt . 0) (association_opt . 0))) (EQUAL_GREATER . 
(discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) 
(CHARACTER_LITERAL .  176) (STRING_LITERAL .  49) (IDENTIFIER .  228) (PLUS .  
151) (MINUS .  150) (OTHERS .  175) (ABS .  144) (NOT .  174) (RAISE .  149) 
(NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (IDENTIFIER . (null_exclusion_opt . 0)) 
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . 
(null_exclusion_opt . 0)) (DO . (null_exclusion_opt . 0)) (COLON_EQUAL . 
(null_exclusion_opt . 0)) (RIGHT_PAREN . (null_exclusion_opt . 0)) (RENAMES . 
(null_exclusion_opt . 0)) (IS . (null_exclusion_opt . 0)) (SEMICOLON . 
(null_exclusion_opt . 0)) (WITH . (null_exclusion_opt . 0)) (ACCESS . 
(null_exclusion_opt . 0)) (NOT .  225))
-      ((default . error) (IDENTIFIER .  222) (CHARACTER_LITERAL .  224) 
(STRING_LITERAL .  223) (ALL .  221))
-      ((default . error) (LEFT_PAREN .  216) (ACCESS .  213) (DELTA .  214) 
(DIGITS .  215) (MOD .  217) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
+      ((default . error) (FOR .  146) (CASE .  145) (IF .  147) (RIGHT_PAREN . 
((expression_opt . 0) (association_opt . 0))) (COMMA . ((expression_opt . 0) 
(association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (CHARACTER_LITERAL .  183) (STRING_LITERAL .  49) 
(IDENTIFIER .  235) (PLUS .  154) (MINUS .  153) (OTHERS .  182) (ABS .  144) 
(NOT .  181) (RAISE .  152) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(LEFT_PAREN .  148))
+      ((default . error) (IDENTIFIER . (null_exclusion_opt . 0)) 
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . 
(null_exclusion_opt . 0)) (DO . (null_exclusion_opt . 0)) (COLON_EQUAL . 
(null_exclusion_opt . 0)) (RIGHT_PAREN . (null_exclusion_opt . 0)) (RENAMES . 
(null_exclusion_opt . 0)) (IS . (null_exclusion_opt . 0)) (SEMICOLON . 
(null_exclusion_opt . 0)) (WITH . (null_exclusion_opt . 0)) (ACCESS . 
(null_exclusion_opt . 0)) (NOT .  232))
+      ((default . error) (IDENTIFIER .  229) (CHARACTER_LITERAL .  231) 
(STRING_LITERAL .  230) (ALL .  228))
+      ((default . error) (LEFT_PAREN .  148) (ACCESS .  221) (DELTA .  222) 
(DIGITS .  223) (MOD .  224) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (DO . (name . 5)) (OF . (name . 5)) 
(CHARACTER_LITERAL . (name . 5)) (STRING_LITERAL . (name . 5)) (IDENTIFIER . 
(name . 5)) (LESS_LESS . (name . 5)) (WHILE . (name . 5)) (SELECT . (name . 5)) 
(REQUEUE . (name . 5)) (RAISE . (name . 5)) (PRAGMA . (name . 5)) (NULL . (name 
. 5)) (LOOP . (name . 5)) (IF . (name . 5)) (GOTO . (name . 5)) (FOR . (name . 
5)) (EXIT . (name . 5)) (DELAY . (name . 5)) (DECLARE . (name . 5)) (CASE . 
(name . 5)) (BEGIN . (name . 5)) (ABORT [...]
-      ((default . error) (RETURN .  212))
+      ((default . error) (RETURN .  220))
       ((default . error) (RENAMES . (function_specification . 0)) (IS . 
(function_specification . 0)) (SEMICOLON . (function_specification . 0)) (WITH 
. (function_specification . 0)))
-      ((default . error) (ACCESS . (mode_opt . 0)) (NOT . (mode_opt . 0)) 
(IDENTIFIER . (mode_opt . 0)) (STRING_LITERAL . (mode_opt . 0)) 
(CHARACTER_LITERAL . (mode_opt . 0)) (IN .  209) (OUT .  210))
-      ((default . error) (IDENTIFIER .  208))
+      ((default . error) (ACCESS . (mode_opt . 0)) (NOT . (mode_opt . 0)) 
(IDENTIFIER . (mode_opt . 0)) (STRING_LITERAL . (mode_opt . 0)) 
(CHARACTER_LITERAL . (mode_opt . 0)) (IN .  217) (OUT .  218))
+      ((default . error) (IDENTIFIER .  216))
       ((default . error) (IDENTIFIER . (generic_formal_parameter_declarations 
. 1)) (WITH . (generic_formal_parameter_declarations . 1)) (USE . 
(generic_formal_parameter_declarations . 1)) (TYPE . 
(generic_formal_parameter_declarations . 1)) (PRAGMA . 
(generic_formal_parameter_declarations . 1)) (FUNCTION . 
(generic_formal_parameter_declarations . 1)) (PROCEDURE . 
(generic_formal_parameter_declarations . 1)) (PACKAGE . 
(generic_formal_parameter_declarations . 1)))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (IS .  205) (SEMICOLON . (aspect_specification_opt . 
0)) (WITH .  109))
-      ((default . error) (WITH . (discriminant_part_opt . 0)) (SEMICOLON . 
(discriminant_part_opt . 0)) (IS . (discriminant_part_opt . 0)) (LEFT_PAREN .  
203))
-      ((default . error) (DOT .  90) (TICK .  91) (RENAMES .  202) (LEFT_PAREN 
.  107))
-      ((default . error) (DOT .  90) (TICK .  91) (RENAMES .  201) (LEFT_PAREN 
.  107))
-      ((default . error) (DOT .  90) (TICK .  91) (RENAMES .  200) (LEFT_PAREN 
.  107))
-      ((default . error) (COMMA .  120) (SEMICOLON .  199))
+      ((default . error) (IS .  213) (SEMICOLON . (aspect_specification_opt . 
0)) (WITH .  109))
+      ((default . error) (WITH . (discriminant_part_opt . 0)) (SEMICOLON . 
(discriminant_part_opt . 0)) (IS . (discriminant_part_opt . 0)) (LEFT_PAREN .  
211))
+      ((default . error) (DOT .  90) (TICK .  91) (RENAMES .  210) (LEFT_PAREN 
.  107))
+      ((default . error) (DOT .  90) (TICK .  91) (RENAMES .  209) (LEFT_PAREN 
.  107))
+      ((default . error) (DOT .  90) (TICK .  91) (RENAMES .  208) (LEFT_PAREN 
.  107))
+      ((default . error) (COMMA .  120) (SEMICOLON .  207))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (NEW .  197))
-      ((default . error) (RIGHT_PAREN . ((expression_opt . 0) (association_opt 
. 0))) (COMMA . ((expression_opt . 0) (association_opt . 0))) (EQUAL_GREATER . 
(discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (IDENTIFIER .  
48) (CHARACTER_LITERAL .  176) (STRING_LITERAL .  49) (PLUS .  151) (MINUS .  
150) (OTHERS .  175) (ABS .  144) (NOT .  174) (RAISE .  149) (NUMERIC_LITERAL 
.  152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (NEW .  205))
+      ((default . error) (FOR .  146) (CASE .  145) (IF .  147) (RIGHT_PAREN . 
((expression_opt . 0) (association_opt . 0))) (COMMA . ((expression_opt . 0) 
(association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (IDENTIFIER .  48) (CHARACTER_LITERAL .  183) 
(STRING_LITERAL .  49) (PLUS .  154) (MINUS .  153) (OTHERS .  182) (ABS .  
144) (NOT .  181) (RAISE .  152) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  
149) (LEFT_PAREN .  148))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (SEMICOLON . ((expression_opt . 0) (association_opt . 
0))) (IS . ((expression_opt . 0) (association_opt . 0))) (COMMA . 
((expression_opt . 0) (association_opt . 0))) (EQUAL_GREATER . 
(discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  175) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  176) (STRING_LITERAL .  49) (RAISE .  
149) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  174) (NUMERIC_LITERAL .  
152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (IS .  173))
+      ((default . error) (SEMICOLON . ((expression_opt . 0) (association_opt . 
0))) (IS . ((expression_opt . 0) (association_opt . 0))) (COMMA . 
((expression_opt . 0) (association_opt . 0))) (EQUAL_GREATER . 
(discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  182) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  183) (STRING_LITERAL .  49) (RAISE .  
152) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  181) (NUMERIC_LITERAL .  
155) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (IS .  180))
       ((default . error) (DOT .  90) (TICK .  91) (IS . 
(aspect_specification_opt . 0)) (WITH .  109) (LEFT_PAREN .  107))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  153) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  145))
+      ((default . error) (FOR .  146) (CASE .  145) (IF .  147) (RAISE .  152) 
(PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) 
(NULL .  151) (NEW .  149) (IDENTIFIER .  156) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (OR . (pragma . 1)) (THEN . (pragma . 1)) (WHEN . 
(pragma . 1)) (EXCEPTION . (pragma . 1)) (ACCEPT . (pragma . 1)) (ABORT . 
(pragma . 1)) (CASE . (pragma . 1)) (DECLARE . (pragma . 1)) (DELAY . (pragma . 
1)) (EXIT . (pragma . 1)) (GOTO . (pragma . 1)) (IF . (pragma . 1)) (LOOP . 
(pragma . 1)) (NULL . (pragma . 1)) (RAISE . (pragma . 1)) (REQUEUE . (pragma . 
1)) (RETURN . (pragma . 1)) (SELECT . (pragma . 1)) (WHILE . (pragma . 1)) 
(LESS_LESS . (pragma . 1)) (STRI [...]
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
       ((default . error) (COMMA .  120) (SEMICOLON .  142))
@@ -1936,69 +1946,77 @@
       ((default . error) (SEMICOLON .  135) (IS .  134))
       ((default . error) (DOT .  90) (TICK .  91) (IS . ( 133 
(parameter_profile_opt . 0))) (SEMICOLON . (parameter_profile_opt . 0)) (WITH . 
(parameter_profile_opt . 0)) (RENAMES . (parameter_profile_opt . 0)) 
(LEFT_PAREN .  88))
       ((default . error) (DOT .  90) (TICK .  91) (IS .  132) (RETURN .  89) 
(LEFT_PAREN .  88))
-      ((default . error) (NEW .  393))
-      ((default . error) (NEW .  392))
-      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  301) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  298) (IDENTIFIER .  304) (TYPE 
.  303) (GENERIC .  2) (PROTECTED .  300) (TASK .  302) (PACKAGE .  299))
+      ((default . error) (NEW .  399))
+      ((default . error) (NEW .  398))
+      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  302) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  299) (IDENTIFIER .  305) (TYPE 
.  304) (GENERIC .  2) (PROTECTED .  301) (TASK .  303) (PACKAGE .  300))
       ((default . error) (IDENTIFIER . (subprogram_declaration . 0)) (TYPE . 
(subprogram_declaration . 0)) (TASK . (subprogram_declaration . 0)) (SUBTYPE . 
(subprogram_declaration . 0)) (PROTECTED . (subprogram_declaration . 0)) (FOR . 
(subprogram_declaration . 0)) (ENTRY . (subprogram_declaration . 0)) (BEGIN . 
(subprogram_declaration . 0)) (END . (subprogram_declaration . 0)) (WITH . 
(subprogram_declaration . 0)) (USE . (subprogram_declaration . 0)) (SEPARATE . 
(subprogram_declaration  [...]
       ((default . error) (DOT .  90) (TICK .  91) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109) (LEFT_PAREN .  107))
       ((default . error) (BEGIN . (generic_subprogram_declaration . 0)) (ENTRY 
. (generic_subprogram_declaration . 0)) (FOR . (generic_subprogram_declaration 
. 0)) (FUNCTION . (generic_subprogram_declaration . 0)) (GENERIC . 
(generic_subprogram_declaration . 0)) (NOT . (generic_subprogram_declaration . 
0)) (OVERRIDING . (generic_subprogram_declaration . 0)) (PACKAGE . 
(generic_subprogram_declaration . 0)) (PRAGMA . (generic_subprogram_declaration 
. 0)) (PROCEDURE . (generic_subprogram_de [...]
-      ((default . error) (COMMA .  120) (SEMICOLON .  389))
+      ((default . error) (COMMA .  120) (SEMICOLON .  395))
       ((default . error) (IDENTIFIER . (use_clause . 2)) (USE . (use_clause . 
2)) (TYPE . (use_clause . 2)) (TASK . (use_clause . 2)) (SUBTYPE . (use_clause 
. 2)) (PROTECTED . (use_clause . 2)) (PROCEDURE . (use_clause . 2)) (PRAGMA . 
(use_clause . 2)) (PACKAGE . (use_clause . 2)) (OVERRIDING . (use_clause . 2)) 
(NOT . (use_clause . 2)) (GENERIC . (use_clause . 2)) (FUNCTION . (use_clause . 
2)) (FOR . (use_clause . 2)) (ENTRY . (use_clause . 2)) (BEGIN . (use_clause . 
2)) (END . (use_cla [...]
       ((default . error) (DOT .  90) (TICK .  91) (SEMICOLON . (name_list . 
1)) (COMMA . (name_list . 1)) (LEFT_PAREN .  107))
-      ((default . error) (PROTECTED .  385) (TASK .  386) (PACKAGE .  384) 
(NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)))
+      ((default . error) (PROTECTED .  391) (TASK .  392) (PACKAGE .  390) 
(NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)))
       ((default . error) ($EOI . (with_clause . 2)) (FUNCTION . (with_clause . 
2)) (GENERIC . (with_clause . 2)) (LIMITED . (with_clause . 2)) (NOT . 
(with_clause . 2)) (OVERRIDING . (with_clause . 2)) (PACKAGE . (with_clause . 
2)) (PRAGMA . (with_clause . 2)) (PRIVATE . (with_clause . 2)) (PROCEDURE . 
(with_clause . 2)) (SEPARATE . (with_clause . 2)) (USE . (with_clause . 2)) 
(WITH . (with_clause . 2)))
       ((default . error) (SEMICOLON .  135))
-      ((default . error) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (CASE .  239) (IF .  240) (FOR .  379) (RIGHT_PAREN . 
((expression_opt . 0) (association_opt . 0))) (COMMA . ((expression_opt . 0) 
(association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (RAISE .  149) (PLUS .  151) (MINUS .  150) (OTHERS 
.  175) (ABS .  144) (NOT .  174) (IDENTIFIER .  48) (CHARACTER_LITERAL .  176) 
(STRING_LITERAL .  49) (NUMERIC_LITERAL .  152) (NULL .  241) (NEW .  146) 
(LEFT_PAREN .  145))
+      ((default . error) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (ALL .  385) (SOME .  386))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (FOR .  146) (CASE .  145) (IF .  147) (RIGHT_PAREN . 
((expression_opt . 0) (association_opt . 0))) (COMMA . ((expression_opt . 0) 
(association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (RAISE .  152) (PLUS .  154) (MINUS .  153) (OTHERS 
.  182) (ABS .  144) (NOT .  181) (IDENTIFIER .  48) (CHARACTER_LITERAL .  183) 
(STRING_LITERAL .  49) (NUMERIC_LITERAL .  155) (NULL .  380) (NEW .  149) 
(LEFT_PAREN .  148))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
+      ((default . error) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (OF . (primary . 1)) (COLON_EQUAL . (primary . 1)) 
(DO . (primary . 1)) (LOOP . (primary . 1)) (ELSIF . (primary . 1)) (ELSE . 
(primary . 1)) (DIGITS . (primary . 1)) (RIGHT_PAREN . (primary . 1)) (COMMA . 
(primary . 1)) (RANGE . (primary . 1)) (THEN . (primary . 1)) (WITH . (primary 
. 1)) (BAR . (primary . 1)) (EQUAL_GREATER . (primary . 1)) (IS . (primary . 
1)) (IN . (primary . 1)) (NOT . (primary . 1)) (EQUAL . (primary . 1)) (GREATER 
. (primary . 1)) (GREATER [...]
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (ABS . (unary_adding_operator . 1)) (LEFT_PAREN . 
(unary_adding_operator . 1)) (NEW . (unary_adding_operator . 1)) (NOT . 
(unary_adding_operator . 1)) (NULL . (unary_adding_operator . 1)) 
(NUMERIC_LITERAL . (unary_adding_operator . 1)) (IDENTIFIER . 
(unary_adding_operator . 1)) (STRING_LITERAL . (unary_adding_operator . 1)) 
(CHARACTER_LITERAL . (unary_adding_operator . 1)))
       ((default . error) (ABS . (unary_adding_operator . 0)) (LEFT_PAREN . 
(unary_adding_operator . 0)) (NEW . (unary_adding_operator . 0)) (NOT . 
(unary_adding_operator . 0)) (NULL . (unary_adding_operator . 0)) 
(NUMERIC_LITERAL . (unary_adding_operator . 0)) (IDENTIFIER . 
(unary_adding_operator . 0)) (STRING_LITERAL . (unary_adding_operator . 0)) 
(CHARACTER_LITERAL . (unary_adding_operator . 0)))
       ((default . error) (OF . (primary . 0)) (COLON_EQUAL . (primary . 0)) 
(DO . (primary . 0)) (LOOP . (primary . 0)) (ELSIF . (primary . 0)) (ELSE . 
(primary . 0)) (DIGITS . (primary . 0)) (RIGHT_PAREN . (primary . 0)) (COMMA . 
(primary . 0)) (RANGE . (primary . 0)) (THEN . (primary . 0)) (WITH . (primary 
. 0)) (BAR . (primary . 0)) (EQUAL_GREATER . (primary . 0)) (IS . (primary . 
0)) (IN . (primary . 0)) (NOT . (primary . 0)) (EQUAL . (primary . 0)) (GREATER 
. (primary . 0)) (GREATER [...]
-      ((default . error) (EQUAL_GREATER .  375) (RIGHT_PAREN . (name . 0)) 
(COMMA . (name . 0)) (STAR_STAR . (name . 0)) (STAR . (name . 0)) (SLASH . 
(name . 0)) (REM . (name . 0)) (MOD . (name . 0)) (SLASH_EQUAL . (name . 0)) 
(LESS_EQUAL . (name . 0)) (LESS . (name . 0)) (GREATER_EQUAL . (name . 0)) 
(GREATER . (name . 0)) (EQUAL . (name . 0)) (NOT . (name . 0)) (IN . (name . 
0)) (AMPERSAND . (name . 0)) (MINUS . (name . 0)) (PLUS . (name . 0)) 
(LEFT_PAREN . (name . 0)) (AND . (name . 0) [...]
+      ((default . error) (EQUAL_GREATER .  376) (RIGHT_PAREN . (name . 0)) 
(COMMA . (name . 0)) (STAR_STAR . (name . 0)) (STAR . (name . 0)) (SLASH . 
(name . 0)) (REM . (name . 0)) (MOD . (name . 0)) (SLASH_EQUAL . (name . 0)) 
(LESS_EQUAL . (name . 0)) (LESS . (name . 0)) (GREATER_EQUAL . (name . 0)) 
(GREATER . (name . 0)) (EQUAL . (name . 0)) (NOT . (name . 0)) (IN . (name . 
0)) (AMPERSAND . (name . 0)) (MINUS . (name . 0)) (PLUS . (name . 0)) 
(LEFT_PAREN . (name . 0)) (AND . (name . 0) [...]
       ((default . error) (OF . (primary . 2)) (COLON_EQUAL . (primary . 2)) 
(DO . (primary . 2)) (LOOP . (primary . 2)) (ELSIF . (primary . 2)) (ELSE . 
(primary . 2)) (DIGITS . (primary . 2)) (RIGHT_PAREN . (primary . 2)) (COMMA . 
(primary . 2)) (RANGE . (primary . 2)) (THEN . (primary . 2)) (WITH . (primary 
. 2)) (BAR . (primary . 2)) (EQUAL_GREATER . (primary . 2)) (IS . (primary . 
2)) (IN . (primary . 2)) (NOT . (primary . 2)) (EQUAL . (primary . 2)) (GREATER 
. (primary . 2)) (GREATER [...]
+      ((default . error) (COMMA . (conditional_quantified_expression . 1)) 
(RIGHT_PAREN . (conditional_quantified_expression . 1)))
+      ((default . error) (COMMA . (pragma_argument_association . 2)) 
(RIGHT_PAREN . (pragma_argument_association . 2)))
       ((default . error) (COMMA . (pragma_argument_association . 1)) 
(RIGHT_PAREN . (pragma_argument_association . 1)))
       ((default . error) (OF . (term . 0)) (COLON_EQUAL . (term . 0)) (DO . 
(term . 0)) (LOOP . (term . 0)) (ELSIF . (term . 0)) (ELSE . (term . 0)) 
(DIGITS . (term . 0)) (RIGHT_PAREN . (term . 0)) (COMMA . (term . 0)) (RANGE . 
(term . 0)) (THEN . (term . 0)) (WITH . (term . 0)) (BAR . (term . 0)) 
(EQUAL_GREATER . (term . 0)) (IS . (term . 0)) (IN . (term . 0)) (NOT . (term . 
0)) (EQUAL . (term . 0)) (GREATER . (term . 0)) (GREATER_EQUAL . (term . 0)) 
(LESS . (term . 0)) (LESS_EQUAL . (t [...]
+      ((default . error) (COMMA . (conditional_quantified_expression . 0)) 
(RIGHT_PAREN . (conditional_quantified_expression . 0)))
       ((default . error) (DOT .  90) (OF . (primary . 3)) (COLON_EQUAL . 
(primary . 3)) (DO . (primary . 3)) (LOOP . (primary . 3)) (BAR . (primary . 
3)) (COMMA . (primary . 3)) (ELSIF . (primary . 3)) (ELSE . (primary . 3)) 
(EQUAL_GREATER . (primary . 3)) (RIGHT_PAREN . (primary . 3)) (DIGITS . 
(primary . 3)) (RANGE . (primary . 3)) (THEN . (primary . 3)) (DOT_DOT . 
(primary . 3)) (WITH . (primary . 3)) (IS . (primary . 3)) (IN . (primary . 3)) 
(NOT . (primary . 3)) (EQUAL . (primary .  [...]
       ((default . error) (RIGHT_PAREN . (pragma_argument_association_list . 
0)) (COMMA . (pragma_argument_association_list . 0)))
-      ((default . error) (COMMA .  374) (RIGHT_PAREN .  373))
-      ((default . error) (OF . (factor . 1)) (COLON_EQUAL . (factor . 1)) (DO 
. (factor . 1)) (LOOP . (factor . 1)) (ELSIF . (factor . 1)) (ELSE . (factor . 
1)) (DIGITS . (factor . 1)) (COMMA . (factor . 1)) (RIGHT_PAREN . (factor . 1)) 
(RANGE . (factor . 1)) (THEN . (factor . 1)) (WITH . (factor . 1)) (BAR . 
(factor . 1)) (EQUAL_GREATER . (factor . 1)) (IS . (factor . 1)) (SLASH_EQUAL . 
(factor . 1)) (LESS_EQUAL . (factor . 1)) (LESS . (factor . 1)) (GREATER_EQUAL 
. (factor . 1)) (GREAT [...]
+      ((default . error) (COMMA .  375) (RIGHT_PAREN .  374))
+      ((default . error) (OF . (factor . 1)) (COLON_EQUAL . (factor . 1)) (DO 
. (factor . 1)) (LOOP . (factor . 1)) (ELSIF . (factor . 1)) (ELSE . (factor . 
1)) (DIGITS . (factor . 1)) (COMMA . (factor . 1)) (RIGHT_PAREN . (factor . 1)) 
(RANGE . (factor . 1)) (THEN . (factor . 1)) (WITH . (factor . 1)) (BAR . 
(factor . 1)) (EQUAL_GREATER . (factor . 1)) (IS . (factor . 1)) (SLASH_EQUAL . 
(factor . 1)) (LESS_EQUAL . (factor . 1)) (LESS . (factor . 1)) (GREATER_EQUAL 
. (factor . 1)) (GREAT [...]
+      ((default . error) (COMMA . (conditional_quantified_expression . 2)) 
(RIGHT_PAREN . (conditional_quantified_expression . 2)))
       ((default . error) (DO . (relation . 4)) (LOOP . (relation . 4)) (ELSIF 
. (relation . 4)) (ELSE . (relation . 4)) (EQUAL_GREATER . (relation . 4)) 
(DIGITS . (relation . 4)) (RIGHT_PAREN . (relation . 4)) (COMMA . (relation . 
4)) (RANGE . (relation . 4)) (THEN . (relation . 4)) (SEMICOLON . (relation . 
4)) (WITH . (relation . 4)) (IS . (relation . 4)) (AND . (relation . 4)) (OR . 
(relation . 4)) (XOR . (relation . 4)))
-      ((default . error) (DO . (expression . 1)) (LOOP . (expression . 1)) 
(XOR . (expression . 1)) (OR . (expression . 1)) (AND . ( 371 (expression . 
1))) (ELSIF . (expression . 1)) (ELSE . (expression . 1)) (EQUAL_GREATER . 
(expression . 1)) (DIGITS . (expression . 1)) (COMMA . (expression . 1)) 
(RIGHT_PAREN . (expression . 1)) (RANGE . (expression . 1)) (THEN . (expression 
. 1)) (WITH . (expression . 1)) (SEMICOLON . (expression . 1)) (IS . 
(expression . 1)))
-      ((default . error) (DO . (expression . 2)) (LOOP . (expression . 2)) 
(XOR . (expression . 2)) (OR . (expression . 2)) (AND . ( 370 (expression . 
2))) (ELSIF . (expression . 2)) (ELSE . (expression . 2)) (EQUAL_GREATER . 
(expression . 2)) (DIGITS . (expression . 2)) (COMMA . (expression . 2)) 
(RIGHT_PAREN . (expression . 2)) (RANGE . (expression . 2)) (THEN . (expression 
. 2)) (WITH . (expression . 2)) (SEMICOLON . (expression . 2)) (IS . 
(expression . 2)))
-      ((default . error) (DO . (expression . 3)) (LOOP . (expression . 3)) 
(XOR . (expression . 3)) (OR . ( 369 (expression . 3))) (AND . (expression . 
3)) (ELSIF . (expression . 3)) (ELSE . (expression . 3)) (EQUAL_GREATER . 
(expression . 3)) (DIGITS . (expression . 3)) (COMMA . (expression . 3)) 
(RIGHT_PAREN . (expression . 3)) (RANGE . (expression . 3)) (THEN . (expression 
. 3)) (WITH . (expression . 3)) (SEMICOLON . (expression . 3)) (IS . 
(expression . 3)))
-      ((default . error) (DO . (expression . 4)) (LOOP . (expression . 4)) 
(XOR . (expression . 4)) (OR . ( 368 (expression . 4))) (AND . (expression . 
4)) (ELSIF . (expression . 4)) (ELSE . (expression . 4)) (EQUAL_GREATER . 
(expression . 4)) (DIGITS . (expression . 4)) (COMMA . (expression . 4)) 
(RIGHT_PAREN . (expression . 4)) (RANGE . (expression . 4)) (THEN . (expression 
. 4)) (WITH . (expression . 4)) (SEMICOLON . (expression . 4)) (IS . 
(expression . 4)))
-      ((default . error) (DO . (expression . 5)) (LOOP . (expression . 5)) 
(XOR . ( 367 (expression . 5))) (OR . (expression . 5)) (AND . (expression . 
5)) (ELSIF . (expression . 5)) (ELSE . (expression . 5)) (EQUAL_GREATER . 
(expression . 5)) (DIGITS . (expression . 5)) (COMMA . (expression . 5)) 
(RIGHT_PAREN . (expression . 5)) (RANGE . (expression . 5)) (THEN . (expression 
. 5)) (WITH . (expression . 5)) (SEMICOLON . (expression . 5)) (IS . 
(expression . 5)))
-      ((default . error) (DO . (expression . 0)) (LOOP . (expression . 0)) 
(XOR . ( 366 (expression . 0))) (OR . ( 365 (expression . 0))) (AND . ( 364 
(expression . 0))) (ELSIF . (expression . 0)) (ELSE . (expression . 0)) 
(EQUAL_GREATER . (expression . 0)) (DIGITS . (expression . 0)) (COMMA . 
(expression . 0)) (RIGHT_PAREN . (expression . 0)) (RANGE . (expression . 0)) 
(THEN . (expression . 0)) (WITH . (expression . 0)) (SEMICOLON . (expression . 
0)) (IS . (expression . 0)))
-      ((default . error) (IN .  274) (NOT .  275) (DO . (relation . 0)) (LOOP 
. (relation . 0)) (COMMA . (relation . 0)) (ELSIF . (relation . 0)) (ELSE . 
(relation . 0)) (EQUAL_GREATER . (relation . 0)) (RIGHT_PAREN . (relation . 0)) 
(DIGITS . (relation . 0)) (RANGE . (relation . 0)) (THEN . (relation . 0)) 
(SEMICOLON . (relation . 0)) (WITH . (relation . 0)) (IS . (relation . 0)) (AND 
. (relation . 0)) (OR . (relation . 0)) (XOR . (relation . 0)) (EQUAL .  277) 
(SLASH_EQUAL .  282) (LES [...]
-      ((default . error) (OF . (term_list . 0)) (COLON_EQUAL . (term_list . 
0)) (DO . (term_list . 0)) (LOOP . (term_list . 0)) (ELSIF . (term_list . 0)) 
(ELSE . (term_list . 0)) (DIGITS . (term_list . 0)) (COMMA . (term_list . 0)) 
(RIGHT_PAREN . (term_list . 0)) (RANGE . (term_list . 0)) (THEN . (term_list . 
0)) (WITH . (term_list . 0)) (BAR . (term_list . 0)) (EQUAL_GREATER . 
(term_list . 0)) (IS . (term_list . 0)) (SLASH_EQUAL . (term_list . 0)) 
(LESS_EQUAL . (term_list . 0)) (LESS .  [...]
-      ((default . error) (OF . (simple_expression . 1)) (COLON_EQUAL . 
(simple_expression . 1)) (DO . (simple_expression . 1)) (LOOP . 
(simple_expression . 1)) (ELSIF . (simple_expression . 1)) (ELSE . 
(simple_expression . 1)) (DIGITS . (simple_expression . 1)) (RIGHT_PAREN . 
(simple_expression . 1)) (COMMA . (simple_expression . 1)) (RANGE . 
(simple_expression . 1)) (THEN . (simple_expression . 1)) (WITH . 
(simple_expression . 1)) (BAR . (simple_expression . 1)) (EQUAL_GREATER . 
(simple [...]
-      ((default . error) (ABS .  144) (NOT .  147) (NUMERIC_LITERAL .  152) 
(NULL .  148) (NEW .  146) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  145))
-      ((default . error) (IS .  352))
-      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  301) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 298) (IDENTIFIER .  304) (TYPE .  303) (GENERIC .  2) (PROTECTED .  300) (TASK 
.  302) (PACKAGE .  299))
-      ((default . error) (NUMERIC_LITERAL .  152) (NULL .  296) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
+      ((default . error) (DO . (expression . 1)) (LOOP . (expression . 1)) 
(XOR . (expression . 1)) (OR . (expression . 1)) (AND . ( 372 (expression . 
1))) (ELSIF . (expression . 1)) (ELSE . (expression . 1)) (EQUAL_GREATER . 
(expression . 1)) (DIGITS . (expression . 1)) (COMMA . (expression . 1)) 
(RIGHT_PAREN . (expression . 1)) (RANGE . (expression . 1)) (THEN . (expression 
. 1)) (WITH . (expression . 1)) (SEMICOLON . (expression . 1)) (IS . 
(expression . 1)))
+      ((default . error) (DO . (expression . 2)) (LOOP . (expression . 2)) 
(XOR . (expression . 2)) (OR . (expression . 2)) (AND . ( 371 (expression . 
2))) (ELSIF . (expression . 2)) (ELSE . (expression . 2)) (EQUAL_GREATER . 
(expression . 2)) (DIGITS . (expression . 2)) (COMMA . (expression . 2)) 
(RIGHT_PAREN . (expression . 2)) (RANGE . (expression . 2)) (THEN . (expression 
. 2)) (WITH . (expression . 2)) (SEMICOLON . (expression . 2)) (IS . 
(expression . 2)))
+      ((default . error) (DO . (expression . 3)) (LOOP . (expression . 3)) 
(XOR . (expression . 3)) (OR . ( 370 (expression . 3))) (AND . (expression . 
3)) (ELSIF . (expression . 3)) (ELSE . (expression . 3)) (EQUAL_GREATER . 
(expression . 3)) (DIGITS . (expression . 3)) (COMMA . (expression . 3)) 
(RIGHT_PAREN . (expression . 3)) (RANGE . (expression . 3)) (THEN . (expression 
. 3)) (WITH . (expression . 3)) (SEMICOLON . (expression . 3)) (IS . 
(expression . 3)))
+      ((default . error) (DO . (expression . 4)) (LOOP . (expression . 4)) 
(XOR . (expression . 4)) (OR . ( 369 (expression . 4))) (AND . (expression . 
4)) (ELSIF . (expression . 4)) (ELSE . (expression . 4)) (EQUAL_GREATER . 
(expression . 4)) (DIGITS . (expression . 4)) (COMMA . (expression . 4)) 
(RIGHT_PAREN . (expression . 4)) (RANGE . (expression . 4)) (THEN . (expression 
. 4)) (WITH . (expression . 4)) (SEMICOLON . (expression . 4)) (IS . 
(expression . 4)))
+      ((default . error) (DO . (expression . 5)) (LOOP . (expression . 5)) 
(XOR . ( 368 (expression . 5))) (OR . (expression . 5)) (AND . (expression . 
5)) (ELSIF . (expression . 5)) (ELSE . (expression . 5)) (EQUAL_GREATER . 
(expression . 5)) (DIGITS . (expression . 5)) (COMMA . (expression . 5)) 
(RIGHT_PAREN . (expression . 5)) (RANGE . (expression . 5)) (THEN . (expression 
. 5)) (WITH . (expression . 5)) (SEMICOLON . (expression . 5)) (IS . 
(expression . 5)))
+      ((default . error) (DO . (expression . 0)) (LOOP . (expression . 0)) 
(XOR . ( 367 (expression . 0))) (OR . ( 366 (expression . 0))) (AND . ( 365 
(expression . 0))) (ELSIF . (expression . 0)) (ELSE . (expression . 0)) 
(EQUAL_GREATER . (expression . 0)) (DIGITS . (expression . 0)) (COMMA . 
(expression . 0)) (RIGHT_PAREN . (expression . 0)) (RANGE . (expression . 0)) 
(THEN . (expression . 0)) (WITH . (expression . 0)) (SEMICOLON . (expression . 
0)) (IS . (expression . 0)))
+      ((default . error) (IN .  275) (NOT .  276) (DO . (relation . 0)) (LOOP 
. (relation . 0)) (COMMA . (relation . 0)) (ELSIF . (relation . 0)) (ELSE . 
(relation . 0)) (EQUAL_GREATER . (relation . 0)) (RIGHT_PAREN . (relation . 0)) 
(DIGITS . (relation . 0)) (RANGE . (relation . 0)) (THEN . (relation . 0)) 
(SEMICOLON . (relation . 0)) (WITH . (relation . 0)) (IS . (relation . 0)) (AND 
. (relation . 0)) (OR . (relation . 0)) (XOR . (relation . 0)) (EQUAL .  278) 
(SLASH_EQUAL .  283) (LES [...]
+      ((default . error) (OF . (term_list . 0)) (COLON_EQUAL . (term_list . 
0)) (DO . (term_list . 0)) (LOOP . (term_list . 0)) (ELSIF . (term_list . 0)) 
(ELSE . (term_list . 0)) (DIGITS . (term_list . 0)) (COMMA . (term_list . 0)) 
(RIGHT_PAREN . (term_list . 0)) (RANGE . (term_list . 0)) (THEN . (term_list . 
0)) (WITH . (term_list . 0)) (BAR . (term_list . 0)) (EQUAL_GREATER . 
(term_list . 0)) (IS . (term_list . 0)) (SLASH_EQUAL . (term_list . 0)) 
(LESS_EQUAL . (term_list . 0)) (LESS .  [...]
+      ((default . error) (OF . (simple_expression . 1)) (COLON_EQUAL . 
(simple_expression . 1)) (DO . (simple_expression . 1)) (LOOP . 
(simple_expression . 1)) (ELSIF . (simple_expression . 1)) (ELSE . 
(simple_expression . 1)) (DIGITS . (simple_expression . 1)) (RIGHT_PAREN . 
(simple_expression . 1)) (COMMA . (simple_expression . 1)) (RANGE . 
(simple_expression . 1)) (THEN . (simple_expression . 1)) (WITH . 
(simple_expression . 1)) (BAR . (simple_expression . 1)) (EQUAL_GREATER . 
(simple [...]
+      ((default . error) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) 
(NULL .  151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (IS .  353))
+      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  302) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 299) (IDENTIFIER .  305) (TYPE .  304) (GENERIC .  2) (PROTECTED .  301) (TASK 
.  303) (PACKAGE .  300))
+      ((default . error) (NUMERIC_LITERAL .  155) (NULL .  297) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (BAR . (discrete_choice . 3)) (EQUAL_GREATER . 
(discrete_choice . 3)))
-      ((default . error) (SEMICOLON . (name . 1)) (IS . (name . 1)) (WITH . 
(name . 1)) (RANGE . (name . 1)) (TICK . (name . 1)) (LEFT_PAREN . (name . 1)) 
(DOT . (name . 1)) (PLUS . (name . 1)) (MINUS . (name . 1)) (AMPERSAND . (name 
. 1)) (DOT_DOT . (name . 1)) (IN . (name . 1)) (NOT . (name . 1)) (EQUAL . 
(name . 1)) (GREATER . (name . 1)) (GREATER_EQUAL . (name . 1)) (LESS . (name . 
1)) (LESS_EQUAL . (name . 1)) (SLASH_EQUAL . (name . 1)) (RIGHT_PAREN . (name . 
1)) (COMMA . (name . 1) [...]
+      ((default . error) (SEMICOLON . (name . 1)) (IS . (name . 1)) (WITH . 
(name . 1)) (RANGE . (name . 1)) (TICK . (name . 1)) (LEFT_PAREN . (name . 1)) 
(DOT . (name . 1)) (PLUS . (name . 1)) (MINUS . (name . 1)) (AMPERSAND . (name 
. 1)) (DOT_DOT . (name . 1)) (IN . (name . 1)) (NOT . (name . 1)) (EQUAL . 
(name . 1)) (GREATER . (name . 1)) (GREATER_EQUAL . (name . 1)) (LESS . (name . 
1)) (LESS_EQUAL . (name . 1)) (SLASH_EQUAL . (name . 1)) (RIGHT_PAREN . (name . 
1)) (COMMA . (name . 1) [...]
       ((default . error) (SEMICOLON . (association_list . 0)) (IS . 
(association_list . 0)) (RIGHT_PAREN . (association_list . 0)) (COMMA . 
(association_list . 0)))
-      ((default . error) (COMMA .  272) (SEMICOLON . (aspect_specification_opt 
. 1)) (IS . (aspect_specification_opt . 1)))
+      ((default . error) (COMMA .  273) (SEMICOLON . (aspect_specification_opt 
. 1)) (IS . (aspect_specification_opt . 1)))
       ((default . error) (BAR . (discrete_choice . 0)) (EQUAL_GREATER . 
(discrete_choice . 0)))
-      ((default . error) (AND .  294) (EQUAL_GREATER . (choice_expression . 
1)) (BAR . (choice_expression . 1)))
-      ((default . error) (OR .  293) (EQUAL_GREATER . (choice_expression . 2)) 
(BAR . (choice_expression . 2)))
-      ((default . error) (XOR .  292) (EQUAL_GREATER . (choice_expression . 
3)) (BAR . (choice_expression . 3)))
-      ((default . error) (AND .  291) (EQUAL_GREATER . (choice_expression . 
4)) (BAR . (choice_expression . 4)))
-      ((default . error) (OR .  290) (EQUAL_GREATER . (choice_expression . 5)) 
(BAR . (choice_expression . 5)))
-      ((default . error) (XOR .  289) (OR .  288) (AND .  287) (EQUAL_GREATER 
. (choice_expression . 0)) (BAR . (choice_expression . 0)))
+      ((default . error) (AND .  295) (EQUAL_GREATER . (choice_expression . 
1)) (BAR . (choice_expression . 1)))
+      ((default . error) (OR .  294) (EQUAL_GREATER . (choice_expression . 2)) 
(BAR . (choice_expression . 2)))
+      ((default . error) (XOR .  293) (EQUAL_GREATER . (choice_expression . 
3)) (BAR . (choice_expression . 3)))
+      ((default . error) (AND .  292) (EQUAL_GREATER . (choice_expression . 
4)) (BAR . (choice_expression . 4)))
+      ((default . error) (OR .  291) (EQUAL_GREATER . (choice_expression . 5)) 
(BAR . (choice_expression . 5)))
+      ((default . error) (XOR .  290) (OR .  289) (AND .  288) (EQUAL_GREATER 
. (choice_expression . 0)) (BAR . (choice_expression . 0)))
       ((default . error) (EQUAL_GREATER . (discrete_choice_list . 1)) (BAR . 
(discrete_choice_list . 1)))
-      ((default . error) (BAR .  285) (EQUAL_GREATER .  286))
+      ((default . error) (BAR .  286) (EQUAL_GREATER .  287))
       ((default . error) (LOOP . (expression_opt . 1)) (RIGHT_PAREN . 
(expression_opt . 1)) (COMMA . (expression_opt . 1)) (SEMICOLON . 
(expression_opt . 1)) (THEN . (expression_opt . 1)) (IS . (expression_opt . 1)))
       ((default . error) (SEMICOLON . (association_opt . 5)) (IS . 
(association_opt . 5)) (COMMA . (association_opt . 5)) (RIGHT_PAREN . 
(association_opt . 5)))
-      ((default . error) (DOT .  90) (DO . (primary . 3)) (LOOP . (primary . 
3)) (ELSIF . (primary . 3)) (ELSE . (primary . 3)) (DIGITS . (primary . 3)) 
(RANGE . (primary . 3)) (THEN . (primary . 3)) (SEMICOLON . (primary . 3)) (IS 
. (primary . 3)) (WITH . (primary . 3)) (IN . (primary . 3)) (NOT . (primary . 
3)) (RIGHT_PAREN . (primary . 3)) (COMMA . (primary . 3)) (PLUS . (primary . 
3)) (MINUS . (primary . 3)) (AMPERSAND . (primary . 3)) (DOT_DOT . (primary . 
3)) (MOD . (primary . 3))  [...]
+      ((default . error) (DOT .  90) (DO . (primary . 3)) (LOOP . (primary . 
3)) (ELSIF . (primary . 3)) (ELSE . (primary . 3)) (DIGITS . (primary . 3)) 
(RANGE . (primary . 3)) (THEN . (primary . 3)) (SEMICOLON . (primary . 3)) (IS 
. (primary . 3)) (WITH . (primary . 3)) (IN . (primary . 3)) (NOT . (primary . 
3)) (RIGHT_PAREN . (primary . 3)) (COMMA . (primary . 3)) (PLUS . (primary . 
3)) (MINUS . (primary . 3)) (AMPERSAND . (primary . 3)) (DOT_DOT . (primary . 
3)) (MOD . (primary . 3))  [...]
       ((default . error) (BAR . (discrete_choice . 2)) (EQUAL_GREATER . 
(discrete_choice . 2)))
-      ((default . error) (IN .  274) (NOT .  275) (SEMICOLON . (relation . 0)) 
(IS . (relation . 0)) (WITH . (relation . 0)) (RIGHT_PAREN . (relation . 0)) 
(COMMA . (relation . 0)) (DOT_DOT .  276) (BAR . (choice_relation . 1)) 
(EQUAL_GREATER . (choice_relation . 1)) (AND . ((choice_relation . 1) (relation 
. 0))) (OR . ((choice_relation . 1) (relation . 0))) (XOR . ((choice_relation . 
1) (relation . 0))) (EQUAL .  277) (SLASH_EQUAL .  282) (LESS .  280) 
(LESS_EQUAL .  281) (GREATER .  27 [...]
+      ((default . error) (IN .  275) (NOT .  276) (SEMICOLON . (relation . 0)) 
(IS . (relation . 0)) (WITH . (relation . 0)) (RIGHT_PAREN . (relation . 0)) 
(COMMA . (relation . 0)) (DOT_DOT .  277) (BAR . (choice_relation . 1)) 
(EQUAL_GREATER . (choice_relation . 1)) (AND . ((choice_relation . 1) (relation 
. 0))) (OR . ((choice_relation . 1) (relation . 0))) (XOR . ((choice_relation . 
1) (relation . 0))) (EQUAL .  278) (SLASH_EQUAL .  283) (LESS .  281) 
(LESS_EQUAL .  282) (GREATER .  27 [...]
       ((default . error) (DOT .  90) (TICK .  91) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109) (LEFT_PAREN .  107))
-      ((default . error) (COMMA .  272) (RIGHT_PAREN .  271))
+      ((default . error) (COMMA .  273) (RIGHT_PAREN .  272))
+      ((default . error) (RIGHT_PAREN .  271))
       ((default . error) (BAR . (discrete_choice . 2)) (EQUAL_GREATER . 
(discrete_choice . 2)) (RIGHT_PAREN . (range_list . 0)) (COMMA . (range_list . 
0)))
       ((default . error) (COMMA .  270) (RIGHT_PAREN .  269))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
@@ -2015,12 +2033,11 @@
       ((default . error) (COLON . (identifier_list . 1)) (COMMA . 
(identifier_list . 1)))
       ((default . error) (OUT .  250) (ACCESS . (mode_opt . 1)) (NOT . 
(mode_opt . 1)) (IDENTIFIER . (mode_opt . 1)) (STRING_LITERAL . (mode_opt . 1)) 
(CHARACTER_LITERAL . (mode_opt . 1)))
       ((default . error) (ACCESS . (mode_opt . 3)) (NOT . (mode_opt . 3)) 
(IDENTIFIER . (mode_opt . 3)) (STRING_LITERAL . (mode_opt . 3)) 
(CHARACTER_LITERAL . (mode_opt . 3)))
-      ((default . error) (IDENTIFIER . (null_exclusion_opt . 0)) 
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . 
(null_exclusion_opt . 0)) (ACCESS . (null_exclusion_opt . 0)) (NOT .  225))
-      ((default . error) (IDENTIFIER . (null_exclusion_opt . 0)) 
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . 
(null_exclusion_opt . 0)) (DO . (null_exclusion_opt . 0)) (RIGHT_PAREN . 
(null_exclusion_opt . 0)) (COLON_EQUAL . (null_exclusion_opt . 0)) (RENAMES . 
(null_exclusion_opt . 0)) (WITH . (null_exclusion_opt . 0)) (SEMICOLON . 
(null_exclusion_opt . 0)) (IS . (null_exclusion_opt . 0)) (ACCESS . 
(null_exclusion_opt . 0)) (NOT .  225))
+      ((default . error) (IDENTIFIER . (null_exclusion_opt . 0)) 
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . 
(null_exclusion_opt . 0)) (ACCESS . (null_exclusion_opt . 0)) (NOT .  232))
+      ((default . error) (IDENTIFIER . (null_exclusion_opt . 0)) 
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . 
(null_exclusion_opt . 0)) (DO . (null_exclusion_opt . 0)) (RIGHT_PAREN . 
(null_exclusion_opt . 0)) (COLON_EQUAL . (null_exclusion_opt . 0)) (RENAMES . 
(null_exclusion_opt . 0)) (WITH . (null_exclusion_opt . 0)) (SEMICOLON . 
(null_exclusion_opt . 0)) (IS . (null_exclusion_opt . 0)) (ACCESS . 
(null_exclusion_opt . 0)) (NOT .  232))
       ((default . error) (DO . (attribute_designator . 1)) (ELSIF . 
(attribute_designator . 1)) (ELSE . (attribute_designator . 1)) (DIGITS . 
(attribute_designator . 1)) (RANGE . (attribute_designator . 1)) (THEN . 
(attribute_designator . 1)) (USE . (attribute_designator . 1)) (COLON_EQUAL . 
(attribute_designator . 1)) (CHARACTER_LITERAL . (attribute_designator . 1)) 
(STRING_LITERAL . (attribute_designator . 1)) (IDENTIFIER . 
(attribute_designator . 1)) (LESS_LESS . (attribute_designator [...]
       ((default . error) (DO . (attribute_designator . 2)) (ELSIF . 
(attribute_designator . 2)) (ELSE . (attribute_designator . 2)) (DIGITS . 
(attribute_designator . 2)) (RANGE . (attribute_designator . 2)) (THEN . 
(attribute_designator . 2)) (USE . (attribute_designator . 2)) (COLON_EQUAL . 
(attribute_designator . 2)) (CHARACTER_LITERAL . (attribute_designator . 2)) 
(STRING_LITERAL . (attribute_designator . 2)) (IDENTIFIER . 
(attribute_designator . 2)) (LESS_LESS . (attribute_designator [...]
       ((default . error) (DO . (attribute_designator . 3)) (ELSIF . 
(attribute_designator . 3)) (ELSE . (attribute_designator . 3)) (DIGITS . 
(attribute_designator . 3)) (RANGE . (attribute_designator . 3)) (THEN . 
(attribute_designator . 3)) (USE . (attribute_designator . 3)) (COLON_EQUAL . 
(attribute_designator . 3)) (CHARACTER_LITERAL . (attribute_designator . 3)) 
(STRING_LITERAL . (attribute_designator . 3)) (IDENTIFIER . 
(attribute_designator . 3)) (LESS_LESS . (attribute_designator [...]
-      ((default . error) (CASE .  239) (IF .  240) (RIGHT_PAREN . 
((expression_opt . 0) (association_opt . 0))) (COMMA . ((expression_opt . 0) 
(association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (RAISE .  149) (PLUS .  151) (MINUS .  150) (OTHERS 
.  175) (ABS .  144) (NOT .  174) (IDENTIFIER .  48) (CHARACTER_LITERAL .  176) 
(STRING_LITERAL .  49) (NUMERIC_LITERAL .  152) (NULL .  241) (NEW .  146) 
(LEFT_PAREN .  145))
       ((default . error) (DO . (attribute_designator . 4)) (ELSIF . 
(attribute_designator . 4)) (ELSE . (attribute_designator . 4)) (DIGITS . 
(attribute_designator . 4)) (RANGE . (attribute_designator . 4)) (THEN . 
(attribute_designator . 4)) (USE . (attribute_designator . 4)) (COLON_EQUAL . 
(attribute_designator . 4)) (CHARACTER_LITERAL . (attribute_designator . 4)) 
(STRING_LITERAL . (attribute_designator . 4)) (IDENTIFIER . 
(attribute_designator . 4)) (LESS_LESS . (attribute_designator [...]
       ((default . error) (DO . (qualified_expression . 0)) (ELSIF . 
(qualified_expression . 0)) (ELSE . (qualified_expression . 0)) (DIGITS . 
(qualified_expression . 0)) (RANGE . (qualified_expression . 0)) (THEN . 
(qualified_expression . 0)) (USE . (qualified_expression . 0)) (COLON_EQUAL . 
(qualified_expression . 0)) (CHARACTER_LITERAL . (qualified_expression . 0)) 
(STRING_LITERAL . (qualified_expression . 0)) (IDENTIFIER . 
(qualified_expression . 0)) (LESS_LESS . (qualified_expression [...]
       ((default . error) (DO . (attribute_reference . 0)) (ELSIF . 
(attribute_reference . 0)) (ELSE . (attribute_reference . 0)) (DIGITS . 
(attribute_reference . 0)) (RANGE . (attribute_reference . 0)) (THEN . 
(attribute_reference . 0)) (USE . (attribute_reference . 0)) (COLON_EQUAL . 
(attribute_reference . 0)) (CHARACTER_LITERAL . (attribute_reference . 0)) 
(STRING_LITERAL . (attribute_reference . 0)) (IDENTIFIER . (attribute_reference 
. 0)) (LESS_LESS . (attribute_reference . 0)) (WHIL [...]
@@ -2029,94 +2046,88 @@
       ((default . error) (DO . (selected_component . 0)) (RIGHT_PAREN . 
(selected_component . 0)) (BAR . (selected_component . 0)) (ELSIF . 
(selected_component . 0)) (ELSE . (selected_component . 0)) (EQUAL_GREATER . 
(selected_component . 0)) (DIGITS . (selected_component . 0)) (RANGE . 
(selected_component . 0)) (THEN . (selected_component . 0)) (DOT_DOT . 
(selected_component . 0)) (IN . (selected_component . 0)) (NOT . 
(selected_component . 0)) (EQUAL . (selected_component . 0)) (GREATE [...]
       ((default . error) (DO . (selected_component . 2)) (RIGHT_PAREN . 
(selected_component . 2)) (BAR . (selected_component . 2)) (ELSIF . 
(selected_component . 2)) (ELSE . (selected_component . 2)) (EQUAL_GREATER . 
(selected_component . 2)) (DIGITS . (selected_component . 2)) (RANGE . 
(selected_component . 2)) (THEN . (selected_component . 2)) (DOT_DOT . 
(selected_component . 2)) (IN . (selected_component . 2)) (NOT . 
(selected_component . 2)) (EQUAL . (selected_component . 2)) (GREATE [...]
       ((default . error) (DO . (selected_component . 1)) (RIGHT_PAREN . 
(selected_component . 1)) (BAR . (selected_component . 1)) (ELSIF . 
(selected_component . 1)) (ELSE . (selected_component . 1)) (EQUAL_GREATER . 
(selected_component . 1)) (DIGITS . (selected_component . 1)) (RANGE . 
(selected_component . 1)) (THEN . (selected_component . 1)) (DOT_DOT . 
(selected_component . 1)) (IN . (selected_component . 1)) (NOT . 
(selected_component . 1)) (EQUAL . (selected_component . 1)) (GREATE [...]
-      ((default . error) (NULL .  238))
+      ((default . error) (NULL .  245))
       ((default . error) (DO . (parameter_and_result_profile . 3)) 
(RIGHT_PAREN . (parameter_and_result_profile . 3)) (COLON_EQUAL . 
(parameter_and_result_profile . 3)) (RENAMES . (parameter_and_result_profile . 
3)) (WITH . (parameter_and_result_profile . 3)) (SEMICOLON . 
(parameter_and_result_profile . 3)) (IS . (parameter_and_result_profile . 3)))
-      ((default . error) (ACCESS .  235) (IS . (name_opt . 0)) (SEMICOLON . 
(name_opt . 0)) (WITH . (name_opt . 0)) (RENAMES . (name_opt . 0)) (COLON_EQUAL 
. (name_opt . 0)) (RIGHT_PAREN . (name_opt . 0)) (DO . (name_opt . 0)) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (ACCESS .  242) (IS . (name_opt . 0)) (SEMICOLON . 
(name_opt . 0)) (WITH . (name_opt . 0)) (RENAMES . (name_opt . 0)) (COLON_EQUAL 
. (name_opt . 0)) (RIGHT_PAREN . (name_opt . 0)) (DO . (name_opt . 0)) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (IN . (name . 0)) (NOT . (name . 0)) (EQUAL . (name . 
0)) (GREATER . (name . 0)) (GREATER_EQUAL . (name . 0)) (LESS . (name . 0)) 
(LESS_EQUAL . (name . 0)) (SLASH_EQUAL . (name . 0)) (BAR . (name . 0)) 
(EQUAL_GREATER . (name . 0)) (AND . (name . 0)) (OR . (name . 0)) (XOR . (name 
. 0)) (RIGHT_PAREN . (name . 0)) (LEFT_PAREN . (name . 0)) (RANGE . (name . 0)) 
(TICK . (name . 0)) (DOT . (name . 0)) (PLUS . (name . 0)) (MINUS . (name . 0)) 
(AMPERSAND . (name . 0)) ( [...]
-      ((default . error) (COLON .  234) (COMMA .  96))
+      ((default . error) (COLON .  241) (COMMA .  96))
       ((default . error) (RIGHT_PAREN . (parameter_specification_list . 0)) 
(SEMICOLON . (parameter_specification_list . 0)))
-      ((default . error) (SEMICOLON .  233) (RIGHT_PAREN .  232))
+      ((default . error) (SEMICOLON .  240) (RIGHT_PAREN .  239))
       ((default . error) (COLON_EQUAL . (formal_part . 0)) (RIGHT_PAREN . 
(formal_part . 0)) (DO . (formal_part . 0)) (WHEN . (formal_part . 0)) (RENAMES 
. (formal_part . 0)) (IS . (formal_part . 0)) (SEMICOLON . (formal_part . 0)) 
(WITH . (formal_part . 0)) (RETURN . (formal_part . 0)))
       ((default . error) (IDENTIFIER .  77))
-      ((default . error) (ACCESS . (aliased_opt . 0)) (NOT . (aliased_opt . 
0)) (IN . (aliased_opt . 0)) (OUT . (aliased_opt . 0)) (IDENTIFIER . 
(aliased_opt . 0)) (STRING_LITERAL . (aliased_opt . 0)) (CHARACTER_LITERAL . 
(aliased_opt . 0)) (ALIASED .  530))
-      ((default . error) (FUNCTION . (protected_opt . 0)) (PROCEDURE . 
(protected_opt . 0)) (PROTECTED .  527) (IDENTIFIER . 
(general_access_modifier_opt . 0)) (STRING_LITERAL . 
(general_access_modifier_opt . 0)) (CHARACTER_LITERAL . 
(general_access_modifier_opt . 0)) (ALL .  525) (CONSTANT .  526))
+      ((default . error) (ACCESS . (aliased_opt . 0)) (NOT . (aliased_opt . 
0)) (IN . (aliased_opt . 0)) (OUT . (aliased_opt . 0)) (IDENTIFIER . 
(aliased_opt . 0)) (STRING_LITERAL . (aliased_opt . 0)) (CHARACTER_LITERAL . 
(aliased_opt . 0)) (ALIASED .  531))
+      ((default . error) (FUNCTION . (protected_opt . 0)) (PROCEDURE . 
(protected_opt . 0)) (PROTECTED .  528) (IDENTIFIER . 
(general_access_modifier_opt . 0)) (STRING_LITERAL . 
(general_access_modifier_opt . 0)) (CHARACTER_LITERAL . 
(general_access_modifier_opt . 0)) (ALL .  526) (CONSTANT .  527))
       ((default . error) (DOT .  90) (DO . (name_opt . 1)) (COLON_EQUAL . 
(name_opt . 1)) (RIGHT_PAREN . (name_opt . 1)) (RENAMES . (name_opt . 1)) (IS . 
(name_opt . 1)) (WITH . (name_opt . 1)) (SEMICOLON . (name_opt . 1)) (TICK .  
91) (LEFT_PAREN .  107))
       ((default . error) (DO . (parameter_and_result_profile . 1)) 
(COLON_EQUAL . (parameter_and_result_profile . 1)) (RIGHT_PAREN . 
(parameter_and_result_profile . 1)) (RENAMES . (parameter_and_result_profile . 
1)) (IS . (parameter_and_result_profile . 1)) (SEMICOLON . 
(parameter_and_result_profile . 1)) (WITH . (parameter_and_result_profile . 1)))
       ((default . error) (DO . (null_exclusion_opt . 1)) (COLON_EQUAL . 
(null_exclusion_opt . 1)) (RIGHT_PAREN . (null_exclusion_opt . 1)) (RENAMES . 
(null_exclusion_opt . 1)) (ACCESS . (null_exclusion_opt . 1)) 
(CHARACTER_LITERAL . (null_exclusion_opt . 1)) (STRING_LITERAL . 
(null_exclusion_opt . 1)) (IDENTIFIER . (null_exclusion_opt . 1)) (IS . 
(null_exclusion_opt . 1)) (SEMICOLON . (null_exclusion_opt . 1)) (WITH . 
(null_exclusion_opt . 1)))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (DOT_DOT . (primary . 1)) (RIGHT_PAREN . (primary . 
1)) (COMMA . (primary . 1)) (BAR . (primary . 1)) (EQUAL_GREATER . (primary . 
1)) (PLUS . (primary . 1)) (MINUS . (primary . 1)) (AMPERSAND . (primary . 1)) 
(IN . (primary . 1)) (NOT . (primary . 1)) (EQUAL . (primary . 1)) (GREATER . 
(primary . 1)) (GREATER_EQUAL . (primary . 1)) (LESS . (primary . 1)) 
(LESS_EQUAL . (primary . 1)) (SLASH_EQUAL . (primary . 1)) (WITH . (primary . 
1)) (MOD . (primary . 1)) (REM . [...]
-      ((default . error) (COMMA .  272) (RIGHT_PAREN .  521))
-      ((default . error) (RIGHT_PAREN .  520))
-      ((default . error) (RIGHT_PAREN . (expression_opt . 1)) (COMMA . 
(expression_opt . 1)) (WITH .  519))
-      ((default . error) (RIGHT_PAREN .  518))
       ((default . error) (DO . (parameter_and_result_profile . 2)) 
(COLON_EQUAL . (parameter_and_result_profile . 2)) (RIGHT_PAREN . 
(parameter_and_result_profile . 2)) (RENAMES . (parameter_and_result_profile . 
2)) (IS . (parameter_and_result_profile . 2)) (SEMICOLON . 
(parameter_and_result_profile . 2)) (WITH . (parameter_and_result_profile . 2)))
-      ((default . error) (ACCESS .  235) (WITH . (name_opt . 0)) (SEMICOLON . 
(name_opt . 0)) (IS . (name_opt . 0)) (RENAMES . (name_opt . 0)) (RIGHT_PAREN . 
(name_opt . 0)) (COLON_EQUAL . (name_opt . 0)) (DO . (name_opt . 0)) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
-      ((default . error) (COLON_EQUAL .  515) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109))
-      ((default . error) (ACCESS .  235) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49))
+      ((default . error) (ACCESS .  242) (WITH . (name_opt . 0)) (SEMICOLON . 
(name_opt . 0)) (IS . (name_opt . 0)) (RENAMES . (name_opt . 0)) (RIGHT_PAREN . 
(name_opt . 0)) (COLON_EQUAL . (name_opt . 0)) (DO . (name_opt . 0)) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (COLON_EQUAL .  523) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109))
+      ((default . error) (ACCESS .  242) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49))
       ((default . error) (CHARACTER_LITERAL . (mode_opt . 2)) (STRING_LITERAL 
. (mode_opt . 2)) (IDENTIFIER . (mode_opt . 2)) (NOT . (mode_opt . 2)) (ACCESS 
. (mode_opt . 2)))
-      ((default . error) (NEW .  513))
+      ((default . error) (NEW .  521))
       ((default . error) (IDENTIFIER . (formal_subprogram_declaration . 1)) 
(WITH . (formal_subprogram_declaration . 1)) (USE . 
(formal_subprogram_declaration . 1)) (TYPE . (formal_subprogram_declaration . 
1)) (PRAGMA . (formal_subprogram_declaration . 1)) (FUNCTION . 
(formal_subprogram_declaration . 1)) (PROCEDURE . 
(formal_subprogram_declaration . 1)) (PACKAGE . (formal_subprogram_declaration 
. 1)))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109) (BOX .  255) (NULL .  254) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (WITH . (subprogram_default . 2)) (SEMICOLON . 
(subprogram_default . 2)))
       ((default . error) (WITH . (subprogram_default . 1)) (SEMICOLON . 
(subprogram_default . 1)))
       ((default . error) (WITH . (subprogram_default . 0)) (SEMICOLON . 
(subprogram_default . 0)) (DOT .  90) (TICK .  91) (LEFT_PAREN .  107))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
-      ((default . error) (LEFT_PAREN .  494) (RANGE .  498) (MOD .  496) 
(DIGITS .  492) (DELTA .  491) (TASK .  501) (PROTECTED .  497) (INTERFACE .  
493) (ARRAY .  490) (PRIVATE . (abstract_tagged_limited_opt . 0)) (TAGGED .  
500) (NEW . (abstract_limited_synchronized_opt . 0)) (ABSTRACT .  489) (LIMITED 
.  495) (SYNCHRONIZED .  499) (ACCESS . (null_exclusion_opt . 0)) (NOT .  225))
-      ((default . error) (SEMICOLON .  488))
-      ((default . error) (RIGHT_PAREN .  487))
+      ((default . error) (LEFT_PAREN .  502) (RANGE .  506) (MOD .  504) 
(DIGITS .  500) (DELTA .  499) (TASK .  509) (PROTECTED .  505) (INTERFACE .  
501) (ARRAY .  498) (PRIVATE . (abstract_tagged_limited_opt . 0)) (TAGGED .  
508) (NEW . (abstract_limited_synchronized_opt . 0)) (ABSTRACT .  497) (LIMITED 
.  503) (SYNCHRONIZED .  507) (ACCESS . (null_exclusion_opt . 0)) (NOT .  232))
+      ((default . error) (SEMICOLON .  496))
+      ((default . error) (RIGHT_PAREN .  495))
       ((default . error) (RIGHT_PAREN . (discriminant_specification_list . 0)) 
(SEMICOLON . (discriminant_specification_list . 0)))
-      ((default . error) (SEMICOLON .  486) (RIGHT_PAREN .  485))
-      ((default . error) (COMMA .  96) (COLON .  484))
+      ((default . error) (SEMICOLON .  494) (RIGHT_PAREN .  493))
+      ((default . error) (COMMA .  96) (COLON .  492))
       ((default . error) (DOT .  90) (TICK .  91) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109) (LEFT_PAREN .  107))
       ((default . error) (DOT .  90) (TICK .  91) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109) (LEFT_PAREN .  107))
       ((default . error) (DOT .  90) (TICK .  91) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109) (LEFT_PAREN .  107))
       ((default . error) (WITH . (with_clause . 0)) (USE . (with_clause . 0)) 
(SEPARATE . (with_clause . 0)) (PROCEDURE . (with_clause . 0)) (PRIVATE . 
(with_clause . 0)) (PRAGMA . (with_clause . 0)) (PACKAGE . (with_clause . 0)) 
(OVERRIDING . (with_clause . 0)) (NOT . (with_clause . 0)) (LIMITED . 
(with_clause . 0)) (GENERIC . (with_clause . 0)) (FUNCTION . (with_clause . 0)) 
($EOI . (with_clause . 0)))
       ((default . error) (DOT .  90) (TICK .  91) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109) (LEFT_PAREN .  107))
-      ((default . error) (DO . (name . 2)) (STAR_STAR . (name . 2)) (STAR . 
(name . 2)) (SLASH . (name . 2)) (REM . (name . 2)) (MOD . (name . 2)) (DOT_DOT 
. (name . 2)) (AMPERSAND . (name . 2)) (MINUS . (name . 2)) (PLUS . (name . 2)) 
(RIGHT_PAREN . (name . 2)) (RANGE . (name . 2)) (COLON_EQUAL . (name . 2)) (AND 
. (name . 2)) (OF . (name . 2)) (CHARACTER_LITERAL . (name . 2)) 
(STRING_LITERAL . (name . 2)) (IDENTIFIER . (name . 2)) (LESS_LESS . (name . 
2)) (WHILE . (name . 2)) (SELECT . [...]
-      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  147) 
(NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (STAR_STAR . (actual_parameter_part . 0)) (STAR . 
(actual_parameter_part . 0)) (SLASH . (actual_parameter_part . 0)) (REM . 
(actual_parameter_part . 0)) (MOD . (actual_parameter_part . 0)) (DOT_DOT . 
(actual_parameter_part . 0)) (AMPERSAND . (actual_parameter_part . 0)) (MINUS . 
(actual_parameter_part . 0)) (PLUS . (actual_parameter_part . 0)) (RIGHT_PAREN 
. (actual_parameter_part . 0)) (RANGE . (actual_parameter_part . 0)) 
(COLON_EQUAL . (actual_parameter_part . [...]
-      ((default . error) (RIGHT_PAREN . ((expression_opt . 0) (association_opt 
. 0))) (COMMA . ((expression_opt . 0) (association_opt . 0))) (IS . 
((expression_opt . 0) (association_opt . 0))) (SEMICOLON . ((expression_opt . 
0) (association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (OTHERS .  175) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  176) (STRING_LITERAL .  49) (RAISE .  149) (PLUS .  151) 
(MINUS .  150) (ABS .  144) (NOT .  174) (NUME [...]
-      ((default . error) (SEMICOLON .  476))
-      ((default . error) (PLUS .  151) (MINUS .  150) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ABS .  144) (NOT .  147) 
(NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (IN .  471))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
+      ((default . error) (DO . (name . 2)) (STAR_STAR . (name . 2)) (STAR . 
(name . 2)) (SLASH . (name . 2)) (REM . (name . 2)) (MOD . (name . 2)) (DOT_DOT 
. (name . 2)) (AMPERSAND . (name . 2)) (MINUS . (name . 2)) (PLUS . (name . 2)) 
(RIGHT_PAREN . (name . 2)) (XOR . (name . 2)) (OR . (name . 2)) (EQUAL_GREATER 
. (name . 2)) (BAR . (name . 2)) (SLASH_EQUAL . (name . 2)) (LESS_EQUAL . (name 
. 2)) (LESS . (name . 2)) (GREATER_EQUAL . (name . 2)) (GREATER . (name . 2)) 
(EQUAL . (name . 2) [...]
+      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  150) 
(NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (STAR_STAR . (actual_parameter_part . 1)) (STAR . 
(actual_parameter_part . 1)) (SLASH . (actual_parameter_part . 1)) (REM . 
(actual_parameter_part . 1)) (MOD . (actual_parameter_part . 1)) (DOT_DOT . 
(actual_parameter_part . 1)) (AMPERSAND . (actual_parameter_part . 1)) (MINUS . 
(actual_parameter_part . 1)) (PLUS . (actual_parameter_part . 1)) (RIGHT_PAREN 
. (actual_parameter_part . 1)) (XOR . (actual_parameter_part . 1)) (OR . 
(actual_parameter_part . 1)) (EQUAL [...]
+      ((default . error) (STAR_STAR . (actual_parameter_part . 0)) (STAR . 
(actual_parameter_part . 0)) (SLASH . (actual_parameter_part . 0)) (REM . 
(actual_parameter_part . 0)) (MOD . (actual_parameter_part . 0)) (DOT_DOT . 
(actual_parameter_part . 0)) (AMPERSAND . (actual_parameter_part . 0)) (MINUS . 
(actual_parameter_part . 0)) (PLUS . (actual_parameter_part . 0)) (RIGHT_PAREN 
. (actual_parameter_part . 0)) (XOR . (actual_parameter_part . 0)) (OR . 
(actual_parameter_part . 0)) (EQUAL [...]
+      ((default . error) (RIGHT_PAREN . ((expression_opt . 0) (association_opt 
. 0))) (COMMA . ((expression_opt . 0) (association_opt . 0))) (IS . 
((expression_opt . 0) (association_opt . 0))) (SEMICOLON . ((expression_opt . 
0) (association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (OTHERS .  182) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  183) (STRING_LITERAL .  49) (RAISE .  152) (PLUS .  154) 
(MINUS .  153) (ABS .  144) (NOT .  181) (NUME [...]
+      ((default . error) (SEMICOLON .  484))
+      ((default . error) (PLUS .  154) (MINUS .  153) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ABS .  144) (NOT .  150) 
(NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (IN .  479))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (ABS . (relational_operator . 0)) (LEFT_PAREN . 
(relational_operator . 0)) (NEW . (relational_operator . 0)) (NOT . 
(relational_operator . 0)) (NULL . (relational_operator . 0)) (MINUS . 
(relational_operator . 0)) (PLUS . (relational_operator . 0)) (NUMERIC_LITERAL 
. (relational_operator . 0)) (IDENTIFIER . (relational_operator . 0)) 
(STRING_LITERAL . (relational_operator . 0)) (CHARACTER_LITERAL . 
(relational_operator . 0)))
       ((default . error) (ABS . (relational_operator . 4)) (LEFT_PAREN . 
(relational_operator . 4)) (NEW . (relational_operator . 4)) (NOT . 
(relational_operator . 4)) (NULL . (relational_operator . 4)) (MINUS . 
(relational_operator . 4)) (PLUS . (relational_operator . 4)) (NUMERIC_LITERAL 
. (relational_operator . 4)) (IDENTIFIER . (relational_operator . 4)) 
(STRING_LITERAL . (relational_operator . 4)) (CHARACTER_LITERAL . 
(relational_operator . 4)))
       ((default . error) (ABS . (relational_operator . 5)) (LEFT_PAREN . 
(relational_operator . 5)) (NEW . (relational_operator . 5)) (NOT . 
(relational_operator . 5)) (NULL . (relational_operator . 5)) (MINUS . 
(relational_operator . 5)) (PLUS . (relational_operator . 5)) (NUMERIC_LITERAL 
. (relational_operator . 5)) (IDENTIFIER . (relational_operator . 5)) 
(STRING_LITERAL . (relational_operator . 5)) (CHARACTER_LITERAL . 
(relational_operator . 5)))
       ((default . error) (ABS . (relational_operator . 2)) (LEFT_PAREN . 
(relational_operator . 2)) (NEW . (relational_operator . 2)) (NOT . 
(relational_operator . 2)) (NULL . (relational_operator . 2)) (MINUS . 
(relational_operator . 2)) (PLUS . (relational_operator . 2)) (NUMERIC_LITERAL 
. (relational_operator . 2)) (IDENTIFIER . (relational_operator . 2)) 
(STRING_LITERAL . (relational_operator . 2)) (CHARACTER_LITERAL . 
(relational_operator . 2)))
       ((default . error) (ABS . (relational_operator . 3)) (LEFT_PAREN . 
(relational_operator . 3)) (NEW . (relational_operator . 3)) (NOT . 
(relational_operator . 3)) (NULL . (relational_operator . 3)) (MINUS . 
(relational_operator . 3)) (PLUS . (relational_operator . 3)) (NUMERIC_LITERAL 
. (relational_operator . 3)) (IDENTIFIER . (relational_operator . 3)) 
(STRING_LITERAL . (relational_operator . 3)) (CHARACTER_LITERAL . 
(relational_operator . 3)))
       ((default . error) (ABS . (relational_operator . 1)) (LEFT_PAREN . 
(relational_operator . 1)) (NEW . (relational_operator . 1)) (NOT . 
(relational_operator . 1)) (NULL . (relational_operator . 1)) (MINUS . 
(relational_operator . 1)) (PLUS . (relational_operator . 1)) (NUMERIC_LITERAL 
. (relational_operator . 1)) (IDENTIFIER . (relational_operator . 1)) 
(STRING_LITERAL . (relational_operator . 1)) (CHARACTER_LITERAL . 
(relational_operator . 1)))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
-      ((default . error) (RANGE .  468) (LEFT_PAREN .  216) (ACCESS .  213) 
(DELTA .  214) (DIGITS .  215) (MOD .  217) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
-      ((default . error) (OTHERS .  175) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
174) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (BOX .  464) (RAISE .  149) (PLUS .  151) (MINUS .  
150) (ABS .  144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  
146) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  145))
-      ((default . error) (THEN .  462) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (ELSE .  460) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
-      ((default . error) (ELSE .  458))
-      ((default . error) (THEN .  457))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
-      ((default . error) (BOX .  451) (RAISE .  149) (PLUS .  151) (MINUS .  
150) (ABS .  144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  
146) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  145))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (RANGE .  476) (LEFT_PAREN .  148) (ACCESS .  221) 
(DELTA .  222) (DIGITS .  223) (MOD .  224) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (OTHERS .  182) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
181) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (BOX .  472) (RAISE .  152) (PLUS .  154) (MINUS .  
153) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  
149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  148))
+      ((default . error) (THEN .  470) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (ELSE .  468) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (ELSE .  466))
+      ((default . error) (THEN .  465))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (BOX .  459) (RAISE .  152) (PLUS .  154) (MINUS .  
153) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  
149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  148))
       ((default . error) (XOR . (primary . 1)) (OR . (primary . 1)) (AND . 
(primary . 1)) (SLASH_EQUAL . (primary . 1)) (LESS_EQUAL . (primary . 1)) (LESS 
. (primary . 1)) (GREATER_EQUAL . (primary . 1)) (GREATER . (primary . 1)) 
(EQUAL . (primary . 1)) (EQUAL_GREATER . (primary . 1)) (BAR . (primary . 1)) 
(PLUS . (primary . 1)) (MINUS . (primary . 1)) (AMPERSAND . (primary . 1)) 
(DOT_DOT . (primary . 1)) (MOD . (primary . 1)) (REM . (primary . 1)) (SLASH . 
(primary . 1)) (STAR . (primar [...]
-      ((default . error) (COLON_EQUAL . (factor . 3)) (OF . (factor . 3)) 
(LOOP . (factor . 3)) (DO . (factor . 3)) (PLUS . (factor . 3)) (MINUS . 
(factor . 3)) (AMPERSAND . (factor . 3)) (SEMICOLON . (factor . 3)) (MOD . 
(factor . 3)) (REM . (factor . 3)) (SLASH . (factor . 3)) (STAR . (factor . 3)) 
(XOR . (factor . 3)) (OR . (factor . 3)) (AND . (factor . 3)) (IN . (factor . 
3)) (NOT . (factor . 3)) (EQUAL . (factor . 3)) (GREATER . (factor . 3)) 
(GREATER_EQUAL . (factor . 3)) (LESS .  [...]
-      ((default . error) (IDENTIFIER .  445) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  446))
-      ((default . error) (BODY .  444) (IDENTIFIER .  48) (CHARACTER_LITERAL . 
 50) (STRING_LITERAL .  49))
-      ((default . error) (IDENTIFIER .  443) (TYPE .  442) (BODY .  441))
-      ((default . error) (IDENTIFIER .  440))
-      ((default . error) (TYPE .  438) (BODY .  437) (IDENTIFIER .  439))
-      ((default . error) (IDENTIFIER .  436))
-      ((default . error) (COLON . ( 435 (identifier_list . 0))) (COMMA . 
(identifier_list . 0)))
+      ((default . error) (COLON_EQUAL . (factor . 3)) (OF . (factor . 3)) 
(LOOP . (factor . 3)) (DO . (factor . 3)) (PLUS . (factor . 3)) (MINUS . 
(factor . 3)) (AMPERSAND . (factor . 3)) (SEMICOLON . (factor . 3)) (MOD . 
(factor . 3)) (REM . (factor . 3)) (SLASH . (factor . 3)) (STAR . (factor . 3)) 
(XOR . (factor . 3)) (OR . (factor . 3)) (AND . (factor . 3)) (IN . (factor . 
3)) (NOT . (factor . 3)) (EQUAL . (factor . 3)) (GREATER . (factor . 3)) 
(GREATER_EQUAL . (factor . 3)) (LESS .  [...]
+      ((default . error) (IDENTIFIER .  453) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  454))
+      ((default . error) (BODY .  452) (IDENTIFIER .  48) (CHARACTER_LITERAL . 
 50) (STRING_LITERAL .  49))
+      ((default . error) (IDENTIFIER .  451) (TYPE .  450) (BODY .  449))
+      ((default . error) (IDENTIFIER .  448))
+      ((default . error) (TYPE .  446) (BODY .  445) (IDENTIFIER .  447))
+      ((default . error) (IDENTIFIER .  444))
+      ((default . error) (COLON . ( 443 (identifier_list . 0))) (COMMA . 
(identifier_list . 0)))
       ((default . error) (END . (declaration . 0)) (PRIVATE . (declaration . 
0)) (IDENTIFIER . (declaration . 0)) (USE . (declaration . 0)) (TYPE . 
(declaration . 0)) (TASK . (declaration . 0)) (SUBTYPE . (declaration . 0)) 
(PROTECTED . (declaration . 0)) (PROCEDURE . (declaration . 0)) (PRAGMA . 
(declaration . 0)) (PACKAGE . (declaration . 0)) (OVERRIDING . (declaration . 
0)) (NOT . (declaration . 0)) (GENERIC . (declaration . 0)) (FUNCTION . 
(declaration . 0)) (FOR . (declaration . 0)) [...]
       ((default . error) (END . (declaration . 1)) (PRIVATE . (declaration . 
1)) (IDENTIFIER . (declaration . 1)) (USE . (declaration . 1)) (TYPE . 
(declaration . 1)) (TASK . (declaration . 1)) (SUBTYPE . (declaration . 1)) 
(PROTECTED . (declaration . 1)) (PROCEDURE . (declaration . 1)) (PRAGMA . 
(declaration . 1)) (PACKAGE . (declaration . 1)) (OVERRIDING . (declaration . 
1)) (NOT . (declaration . 1)) (GENERIC . (declaration . 1)) (FUNCTION . 
(declaration . 1)) (FOR . (declaration . 1)) [...]
       ((default . error) (WHEN . (aspect_clause . 3)) (PRIVATE . 
(aspect_clause . 3)) (END . (aspect_clause . 3)) (CASE . (aspect_clause . 3)) 
(BEGIN . (aspect_clause . 3)) (ENTRY . (aspect_clause . 3)) (FOR . 
(aspect_clause . 3)) (FUNCTION . (aspect_clause . 3)) (GENERIC . (aspect_clause 
. 3)) (NOT . (aspect_clause . 3)) (OVERRIDING . (aspect_clause . 3)) (PACKAGE . 
(aspect_clause . 3)) (PRAGMA . (aspect_clause . 3)) (PROCEDURE . (aspect_clause 
. 3)) (PROTECTED . (aspect_clause . 3)) (S [...]
       ((default . error) (END . (declaration . 2)) (PRIVATE . (declaration . 
2)) (IDENTIFIER . (declaration . 2)) (USE . (declaration . 2)) (TYPE . 
(declaration . 2)) (TASK . (declaration . 2)) (SUBTYPE . (declaration . 2)) 
(PROTECTED . (declaration . 2)) (PROCEDURE . (declaration . 2)) (PRAGMA . 
(declaration . 2)) (PACKAGE . (declaration . 2)) (OVERRIDING . (declaration . 
2)) (NOT . (declaration . 2)) (GENERIC . (declaration . 2)) (FUNCTION . 
(declaration . 2)) (FOR . (declaration . 2)) [...]
       ((default . error) (PRIVATE . (body . 1)) (END . (body . 1)) (BEGIN . 
(body . 1)) (ENTRY . (body . 1)) (FOR . (body . 1)) (FUNCTION . (body . 1)) 
(GENERIC . (body . 1)) (NOT . (body . 1)) (OVERRIDING . (body . 1)) (PACKAGE . 
(body . 1)) (PRAGMA . (body . 1)) (PROCEDURE . (body . 1)) (PROTECTED . (body . 
1)) (SUBTYPE . (body . 1)) (TASK . (body . 1)) (TYPE . (body . 1)) (USE . (body 
. 1)) (IDENTIFIER . (body . 1)))
       ((default . error) (PRIVATE . (declarations . 0)) (END . (declarations . 
0)) (BEGIN . (declarations . 0)) (ENTRY . (declarations . 0)) (FOR . 
(declarations . 0)) (FUNCTION . (declarations . 0)) (GENERIC . (declarations . 
0)) (NOT . (declarations . 0)) (OVERRIDING . (declarations . 0)) (PACKAGE . 
(declarations . 0)) (PRAGMA . (declarations . 0)) (PROCEDURE . (declarations . 
0)) (PROTECTED . (declarations . 0)) (SUBTYPE . (declarations . 0)) (TASK . 
(declarations . 0)) (TYPE . (decla [...]
-      ((default . error) (END . (declarative_part_opt . 1)) (PRIVATE . 
(declarative_part_opt . 1)) (BEGIN . (declarative_part_opt . 1)) (USE .  11) 
(SUBTYPE .  301) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  298) (IDENTIFIER .  304) (TYPE 
.  303) (GENERIC .  2) (PROTECTED .  300) (TASK .  302) (PACKAGE .  299))
-      ((default . error) (END .  432) (PRIVATE .  433))
+      ((default . error) (END . (declarative_part_opt . 1)) (PRIVATE . 
(declarative_part_opt . 1)) (BEGIN . (declarative_part_opt . 1)) (USE .  11) 
(SUBTYPE .  302) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  299) (IDENTIFIER .  305) (TYPE 
.  304) (GENERIC .  2) (PROTECTED .  301) (TASK .  303) (PACKAGE .  300))
+      ((default . error) (END .  440) (PRIVATE .  441))
       ((default . error) (END . (declaration . 3)) (PRIVATE . (declaration . 
3)) (IDENTIFIER . (declaration . 3)) (USE . (declaration . 3)) (TYPE . 
(declaration . 3)) (TASK . (declaration . 3)) (SUBTYPE . (declaration . 3)) 
(PROTECTED . (declaration . 3)) (PROCEDURE . (declaration . 3)) (PRAGMA . 
(declaration . 3)) (PACKAGE . (declaration . 3)) (OVERRIDING . (declaration . 
3)) (NOT . (declaration . 3)) (GENERIC . (declaration . 3)) (FUNCTION . 
(declaration . 3)) (FOR . (declaration . 3)) [...]
       ((default . error) (WHEN . (aspect_clause . 1)) (PRIVATE . 
(aspect_clause . 1)) (END . (aspect_clause . 1)) (CASE . (aspect_clause . 1)) 
(BEGIN . (aspect_clause . 1)) (ENTRY . (aspect_clause . 1)) (FOR . 
(aspect_clause . 1)) (FUNCTION . (aspect_clause . 1)) (GENERIC . (aspect_clause 
. 1)) (NOT . (aspect_clause . 1)) (OVERRIDING . (aspect_clause . 1)) (PACKAGE . 
(aspect_clause . 1)) (PRAGMA . (aspect_clause . 1)) (PROCEDURE . (aspect_clause 
. 1)) (PROTECTED . (aspect_clause . 1)) (S [...]
       ((default . error) (END . (declaration . 4)) (PRIVATE . (declaration . 
4)) (IDENTIFIER . (declaration . 4)) (USE . (declaration . 4)) (TYPE . 
(declaration . 4)) (TASK . (declaration . 4)) (SUBTYPE . (declaration . 4)) 
(PROTECTED . (declaration . 4)) (PROCEDURE . (declaration . 4)) (PRAGMA . 
(declaration . 4)) (PACKAGE . (declaration . 4)) (OVERRIDING . (declaration . 
4)) (NOT . (declaration . 4)) (GENERIC . (declaration . 4)) (FUNCTION . 
(declaration . 4)) (FOR . (declaration . 4)) [...]
@@ -2125,12 +2136,12 @@
       ((default . error) (END . (declaration . 6)) (PRIVATE . (declaration . 
6)) (IDENTIFIER . (declaration . 6)) (USE . (declaration . 6)) (TYPE . 
(declaration . 6)) (TASK . (declaration . 6)) (SUBTYPE . (declaration . 6)) 
(PROTECTED . (declaration . 6)) (PROCEDURE . (declaration . 6)) (PRAGMA . 
(declaration . 6)) (PACKAGE . (declaration . 6)) (OVERRIDING . (declaration . 
6)) (NOT . (declaration . 6)) (GENERIC . (declaration . 6)) (FUNCTION . 
(declaration . 6)) (FOR . (declaration . 6)) [...]
       ((default . error) (END . (declaration . 7)) (PRIVATE . (declaration . 
7)) (IDENTIFIER . (declaration . 7)) (USE . (declaration . 7)) (TYPE . 
(declaration . 7)) (TASK . (declaration . 7)) (SUBTYPE . (declaration . 7)) 
(PROTECTED . (declaration . 7)) (PROCEDURE . (declaration . 7)) (PRAGMA . 
(declaration . 7)) (PACKAGE . (declaration . 7)) (OVERRIDING . (declaration . 
7)) (NOT . (declaration . 7)) (GENERIC . (declaration . 7)) (FUNCTION . 
(declaration . 7)) (FOR . (declaration . 7)) [...]
       ((default . error) (PRIVATE . (renaming_declaration . 3)) (END . 
(renaming_declaration . 3)) (BEGIN . (renaming_declaration . 3)) (ENTRY . 
(renaming_declaration . 3)) (FOR . (renaming_declaration . 3)) (FUNCTION . 
(renaming_declaration . 3)) (GENERIC . (renaming_declaration . 3)) (NOT . 
(renaming_declaration . 3)) (OVERRIDING . (renaming_declaration . 3)) (PACKAGE 
. (renaming_declaration . 3)) (PRAGMA . (renaming_declaration . 3)) (PROCEDURE 
. (renaming_declaration . 3)) (PROTECTED [...]
-      ((default . error) (COMMA .  96) (COLON .  431))
+      ((default . error) (COMMA .  96) (COLON .  439))
       ((default . error) (PRIVATE . (type_declaration . 1)) (END . 
(type_declaration . 1)) (BEGIN . (type_declaration . 1)) (ENTRY . 
(type_declaration . 1)) (FOR . (type_declaration . 1)) (FUNCTION . 
(type_declaration . 1)) (GENERIC . (type_declaration . 1)) (NOT . 
(type_declaration . 1)) (OVERRIDING . (type_declaration . 1)) (PACKAGE . 
(type_declaration . 1)) (PRAGMA . (type_declaration . 1)) (PROCEDURE . 
(type_declaration . 1)) (PROTECTED . (type_declaration . 1)) (SUBTYPE . 
(type_decl [...]
       ((default . error) (END . (declaration . 8)) (PRIVATE . (declaration . 
8)) (IDENTIFIER . (declaration . 8)) (USE . (declaration . 8)) (TYPE . 
(declaration . 8)) (TASK . (declaration . 8)) (SUBTYPE . (declaration . 8)) 
(PROTECTED . (declaration . 8)) (PROCEDURE . (declaration . 8)) (PRAGMA . 
(declaration . 8)) (PACKAGE . (declaration . 8)) (OVERRIDING . (declaration . 
8)) (NOT . (declaration . 8)) (GENERIC . (declaration . 8)) (FUNCTION . 
(declaration . 8)) (FOR . (declaration . 8)) [...]
       ((default . error) (END . (declaration . 10)) (PRIVATE . (declaration . 
10)) (IDENTIFIER . (declaration . 10)) (USE . (declaration . 10)) (TYPE . 
(declaration . 10)) (TASK . (declaration . 10)) (SUBTYPE . (declaration . 10)) 
(PROTECTED . (declaration . 10)) (PROCEDURE . (declaration . 10)) (PRAGMA . 
(declaration . 10)) (PACKAGE . (declaration . 10)) (OVERRIDING . (declaration . 
10)) (NOT . (declaration . 10)) (GENERIC . (declaration . 10)) (FUNCTION . 
(declaration . 10)) (FOR . (de [...]
       ((default . error) (PRIVATE . (renaming_declaration . 0)) (END . 
(renaming_declaration . 0)) (BEGIN . (renaming_declaration . 0)) (ENTRY . 
(renaming_declaration . 0)) (FOR . (renaming_declaration . 0)) (FUNCTION . 
(renaming_declaration . 0)) (GENERIC . (renaming_declaration . 0)) (NOT . 
(renaming_declaration . 0)) (OVERRIDING . (renaming_declaration . 0)) (PACKAGE 
. (renaming_declaration . 0)) (PRAGMA . (renaming_declaration . 0)) (PROCEDURE 
. (renaming_declaration . 0)) (PROTECTED [...]
-      ((default . error) (ENTRY .  427) (FUNCTION .  40) (PROCEDURE .  41))
+      ((default . error) (ENTRY .  435) (FUNCTION .  40) (PROCEDURE .  41))
       ((default . error) ($EOI . (proper_body . 1)) (LIMITED . (proper_body . 
1)) (SEPARATE . (proper_body . 1)) (WITH . (proper_body . 1)) (END . 
(proper_body . 1)) (PRIVATE . (proper_body . 1)) (IDENTIFIER . (proper_body . 
1)) (USE . (proper_body . 1)) (TYPE . (proper_body . 1)) (TASK . (proper_body . 
1)) (SUBTYPE . (proper_body . 1)) (PROTECTED . (proper_body . 1)) (PROCEDURE . 
(proper_body . 1)) (PRAGMA . (proper_body . 1)) (PACKAGE . (proper_body . 1)) 
(OVERRIDING . (proper_body . 1 [...]
       ((default . error) (END . (body_stub . 1)) (PRIVATE . (body_stub . 1)) 
(IDENTIFIER . (body_stub . 1)) (USE . (body_stub . 1)) (TYPE . (body_stub . 1)) 
(TASK . (body_stub . 1)) (SUBTYPE . (body_stub . 1)) (PROTECTED . (body_stub . 
1)) (PROCEDURE . (body_stub . 1)) (PRAGMA . (body_stub . 1)) (PACKAGE . 
(body_stub . 1)) (OVERRIDING . (body_stub . 1)) (NOT . (body_stub . 1)) 
(GENERIC . (body_stub . 1)) (FUNCTION . (body_stub . 1)) (FOR . (body_stub . 
1)) (ENTRY . (body_stub . 1)) (BEGI [...]
       ((default . error) (END . (declaration . 11)) (PRIVATE . (declaration . 
11)) (IDENTIFIER . (declaration . 11)) (USE . (declaration . 11)) (TYPE . 
(declaration . 11)) (TASK . (declaration . 11)) (SUBTYPE . (declaration . 11)) 
(PROTECTED . (declaration . 11)) (PROCEDURE . (declaration . 11)) (PRAGMA . 
(declaration . 11)) (PACKAGE . (declaration . 11)) (OVERRIDING . (declaration . 
11)) (NOT . (declaration . 11)) (GENERIC . (declaration . 11)) (FUNCTION . 
(declaration . 11)) (FOR . (de [...]
@@ -2156,298 +2167,302 @@
       ((default . error) (END . (full_type_declaration . 1)) (PRIVATE . 
(full_type_declaration . 1)) (IDENTIFIER . (full_type_declaration . 1)) (USE . 
(full_type_declaration . 1)) (TYPE . (full_type_declaration . 1)) (TASK . 
(full_type_declaration . 1)) (SUBTYPE . (full_type_declaration . 1)) (PROTECTED 
. (full_type_declaration . 1)) (PROCEDURE . (full_type_declaration . 1)) 
(PRAGMA . (full_type_declaration . 1)) (PACKAGE . (full_type_declaration . 1)) 
(OVERRIDING . (full_type_declaratio [...]
       ((default . error) (END . (declaration . 16)) (PRIVATE . (declaration . 
16)) (IDENTIFIER . (declaration . 16)) (USE . (declaration . 16)) (TYPE . 
(declaration . 16)) (TASK . (declaration . 16)) (SUBTYPE . (declaration . 16)) 
(PROTECTED . (declaration . 16)) (PROCEDURE . (declaration . 16)) (PRAGMA . 
(declaration . 16)) (PACKAGE . (declaration . 16)) (OVERRIDING . (declaration . 
16)) (NOT . (declaration . 16)) (GENERIC . (declaration . 16)) (FUNCTION . 
(declaration . 16)) (FOR . (de [...]
       ((default . error) (END . (declaration . 17)) (PRIVATE . (declaration . 
17)) (IDENTIFIER . (declaration . 17)) (USE . (declaration . 17)) (TYPE . 
(declaration . 17)) (TASK . (declaration . 17)) (SUBTYPE . (declaration . 17)) 
(PROTECTED . (declaration . 17)) (PROCEDURE . (declaration . 17)) (PRAGMA . 
(declaration . 17)) (PACKAGE . (declaration . 17)) (OVERRIDING . (declaration . 
17)) (NOT . (declaration . 17)) (GENERIC . (declaration . 17)) (FUNCTION . 
(declaration . 17)) (FOR . (de [...]
-      ((default . error) (BEGIN . (declarative_part_opt . 0)) (END . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  301) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 298) (IDENTIFIER .  304) (TYPE .  303) (GENERIC .  2) (PROTECTED .  300) (TASK 
.  302) (PACKAGE .  299))
-      ((default . error) (COLON_EQUAL . (simple_expression . 0)) (OF . 
(simple_expression . 0)) (LOOP . (simple_expression . 0)) (DO . 
(simple_expression . 0)) (DOT_DOT . (simple_expression . 0)) (SEMICOLON . 
(simple_expression . 0)) (XOR . (simple_expression . 0)) (OR . 
(simple_expression . 0)) (AND . (simple_expression . 0)) (SLASH_EQUAL . 
(simple_expression . 0)) (LESS_EQUAL . (simple_expression . 0)) (LESS . 
(simple_expression . 0)) (GREATER_EQUAL . (simple_expression . 0)) (GREATER  
[...]
+      ((default . error) (BEGIN . (declarative_part_opt . 0)) (END . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  302) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 299) (IDENTIFIER .  305) (TYPE .  304) (GENERIC .  2) (PROTECTED .  301) (TASK 
.  303) (PACKAGE .  300))
+      ((default . error) (COLON_EQUAL . (simple_expression . 0)) (OF . 
(simple_expression . 0)) (LOOP . (simple_expression . 0)) (DO . 
(simple_expression . 0)) (DOT_DOT . (simple_expression . 0)) (SEMICOLON . 
(simple_expression . 0)) (XOR . (simple_expression . 0)) (OR . 
(simple_expression . 0)) (AND . (simple_expression . 0)) (SLASH_EQUAL . 
(simple_expression . 0)) (LESS_EQUAL . (simple_expression . 0)) (LESS . 
(simple_expression . 0)) (GREATER_EQUAL . (simple_expression . 0)) (GREATER  
[...]
       ((default . error) (ABS . (binary_adding_operator . 2)) (LEFT_PAREN . 
(binary_adding_operator . 2)) (NEW . (binary_adding_operator . 2)) (NOT . 
(binary_adding_operator . 2)) (NULL . (binary_adding_operator . 2)) 
(NUMERIC_LITERAL . (binary_adding_operator . 2)) (IDENTIFIER . 
(binary_adding_operator . 2)) (STRING_LITERAL . (binary_adding_operator . 2)) 
(CHARACTER_LITERAL . (binary_adding_operator . 2)))
       ((default . error) (ABS . (binary_adding_operator . 1)) (LEFT_PAREN . 
(binary_adding_operator . 1)) (NEW . (binary_adding_operator . 1)) (NOT . 
(binary_adding_operator . 1)) (NULL . (binary_adding_operator . 1)) 
(NUMERIC_LITERAL . (binary_adding_operator . 1)) (IDENTIFIER . 
(binary_adding_operator . 1)) (STRING_LITERAL . (binary_adding_operator . 1)) 
(CHARACTER_LITERAL . (binary_adding_operator . 1)))
       ((default . error) (ABS . (binary_adding_operator . 0)) (LEFT_PAREN . 
(binary_adding_operator . 0)) (NEW . (binary_adding_operator . 0)) (NOT . 
(binary_adding_operator . 0)) (NULL . (binary_adding_operator . 0)) 
(NUMERIC_LITERAL . (binary_adding_operator . 0)) (IDENTIFIER . 
(binary_adding_operator . 0)) (STRING_LITERAL . (binary_adding_operator . 0)) 
(CHARACTER_LITERAL . (binary_adding_operator . 0)))
-      ((default . error) (ABS .  144) (NOT .  147) (NUMERIC_LITERAL .  152) 
(NULL .  148) (NEW .  146) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  145))
+      ((default . error) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) 
(NULL .  151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (ABS . (multiplying_operator . 2)) (LEFT_PAREN . 
(multiplying_operator . 2)) (NEW . (multiplying_operator . 2)) (NOT . 
(multiplying_operator . 2)) (NULL . (multiplying_operator . 2)) 
(NUMERIC_LITERAL . (multiplying_operator . 2)) (IDENTIFIER . 
(multiplying_operator . 2)) (STRING_LITERAL . (multiplying_operator . 2)) 
(CHARACTER_LITERAL . (multiplying_operator . 2)))
       ((default . error) (ABS . (multiplying_operator . 3)) (LEFT_PAREN . 
(multiplying_operator . 3)) (NEW . (multiplying_operator . 3)) (NOT . 
(multiplying_operator . 3)) (NULL . (multiplying_operator . 3)) 
(NUMERIC_LITERAL . (multiplying_operator . 3)) (IDENTIFIER . 
(multiplying_operator . 3)) (STRING_LITERAL . (multiplying_operator . 3)) 
(CHARACTER_LITERAL . (multiplying_operator . 3)))
       ((default . error) (ABS . (multiplying_operator . 1)) (LEFT_PAREN . 
(multiplying_operator . 1)) (NEW . (multiplying_operator . 1)) (NOT . 
(multiplying_operator . 1)) (NULL . (multiplying_operator . 1)) 
(NUMERIC_LITERAL . (multiplying_operator . 1)) (IDENTIFIER . 
(multiplying_operator . 1)) (STRING_LITERAL . (multiplying_operator . 1)) 
(CHARACTER_LITERAL . (multiplying_operator . 1)))
       ((default . error) (ABS . (multiplying_operator . 0)) (LEFT_PAREN . 
(multiplying_operator . 0)) (NEW . (multiplying_operator . 0)) (NOT . 
(multiplying_operator . 0)) (NULL . (multiplying_operator . 0)) 
(NUMERIC_LITERAL . (multiplying_operator . 0)) (IDENTIFIER . 
(multiplying_operator . 0)) (STRING_LITERAL . (multiplying_operator . 0)) 
(CHARACTER_LITERAL . (multiplying_operator . 0)))
-      ((default . error) (ABS .  144) (NOT .  147) (NUMERIC_LITERAL .  152) 
(NULL .  148) (NEW .  146) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
-      ((default . error) (THEN .  421) (RAISE .  149) (PLUS .  151) (MINUS .  
150) (ABS .  144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  
146) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  145))
-      ((default . error) (ELSE .  419) (RAISE .  149) (PLUS .  151) (MINUS .  
150) (ABS .  144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  
146) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  145))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (ELSE .  416))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (THEN .  414))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (SEMICOLON .  411))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  153) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  145))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (IDENTIFIER .  408))
-      ((default . error) (LOOP . (raise_expression . 0)) (DO . 
(raise_expression . 0)) (XOR . (raise_expression . 0)) (OR . (raise_expression 
. 0)) (AND . (raise_expression . 0)) (IS . (raise_expression . 0)) (SEMICOLON . 
(raise_expression . 0)) (THEN . (raise_expression . 0)) (RANGE . 
(raise_expression . 0)) (RIGHT_PAREN . (raise_expression . 0)) (COMMA . 
(raise_expression . 0)) (DIGITS . (raise_expression . 0)) (EQUAL_GREATER . 
(raise_expression . 0)) (ELSE . (raise_expression . 0)) (E [...]
+      ((default . error) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) 
(NULL .  151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (THEN .  429) (RAISE .  152) (PLUS .  154) (MINUS .  
153) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  
149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  148))
+      ((default . error) (ELSE .  427) (RAISE .  152) (PLUS .  154) (MINUS .  
153) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  
149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  148))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (ELSE .  424))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (THEN .  422))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (SEMICOLON .  419))
+      ((default . error) (FOR .  146) (CASE .  145) (IF .  147) (RAISE .  152) 
(PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) 
(NULL .  151) (NEW .  149) (IDENTIFIER .  156) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (IDENTIFIER .  416))
+      ((default . error) (LOOP . (raise_expression . 0)) (DO . 
(raise_expression . 0)) (XOR . (raise_expression . 0)) (OR . (raise_expression 
. 0)) (AND . (raise_expression . 0)) (IS . (raise_expression . 0)) (SEMICOLON . 
(raise_expression . 0)) (THEN . (raise_expression . 0)) (RANGE . 
(raise_expression . 0)) (RIGHT_PAREN . (raise_expression . 0)) (COMMA . 
(raise_expression . 0)) (DIGITS . (raise_expression . 0)) (EQUAL_GREATER . 
(raise_expression . 0)) (ELSE . (raise_expression . 0)) (E [...]
       ((default . error) (DOT .  90) (TICK .  91) (COLON_EQUAL . (primary . 
4)) (OF . (primary . 4)) (LOOP . (primary . 4)) (DO . (primary . 4)) (STAR_STAR 
. (primary . 4)) (STAR . (primary . 4)) (SLASH . (primary . 4)) (REM . (primary 
. 4)) (MOD . (primary . 4)) (DOT_DOT . (primary . 4)) (AMPERSAND . (primary . 
4)) (MINUS . (primary . 4)) (PLUS . (primary . 4)) (SEMICOLON . (primary . 4)) 
(XOR . (primary . 4)) (OR . (primary . 4)) (AND . (primary . 4)) (SLASH_EQUAL . 
(primary . 4)) (LES [...]
-      ((default . error) (ALL .  404) (SOME .  405))
-      ((default . error) (RIGHT_PAREN .  403))
-      ((default . error) (RIGHT_PAREN .  402))
-      ((default . error) (RIGHT_PAREN .  401))
+      ((default . error) (DOT_DOT . (primary . 1)) (RIGHT_PAREN . (primary . 
1)) (COMMA . (primary . 1)) (BAR . (primary . 1)) (EQUAL_GREATER . (primary . 
1)) (PLUS . (primary . 1)) (MINUS . (primary . 1)) (AMPERSAND . (primary . 1)) 
(IN . (primary . 1)) (NOT . (primary . 1)) (EQUAL . (primary . 1)) (GREATER . 
(primary . 1)) (GREATER_EQUAL . (primary . 1)) (LESS . (primary . 1)) 
(LESS_EQUAL . (primary . 1)) (SLASH_EQUAL . (primary . 1)) (WITH . (primary . 
1)) (MOD . (primary . 1)) (REM . [...]
+      ((default . error) (COMMA .  273) (RIGHT_PAREN .  413))
+      ((default . error) (RIGHT_PAREN .  412))
+      ((default . error) (RIGHT_PAREN . (expression_opt . 1)) (COMMA . 
(expression_opt . 1)) (WITH .  411))
+      ((default . error) (THEN .  410))
+      ((default . error) (IDENTIFIER . (quantifier . 0)))
+      ((default . error) (IDENTIFIER . (quantifier . 1)))
+      ((default . error) (IDENTIFIER .  408))
+      ((default . error) (IS .  407))
       ((default . error) (COLON_EQUAL . (factor . 2)) (OF . (factor . 2)) 
(LOOP . (factor . 2)) (DO . (factor . 2)) (PLUS . (factor . 2)) (MINUS . 
(factor . 2)) (AMPERSAND . (factor . 2)) (DOT_DOT . (factor . 2)) (MOD . 
(factor . 2)) (REM . (factor . 2)) (SLASH . (factor . 2)) (STAR . (factor . 2)) 
(SEMICOLON . (factor . 2)) (XOR . (factor . 2)) (OR . (factor . 2)) (AND . 
(factor . 2)) (IN . (factor . 2)) (NOT . (factor . 2)) (EQUAL . (factor . 2)) 
(GREATER . (factor . 2)) (GREATER_EQUAL [...]
       ((default . error) (BODY .  67))
-      ((default . error) (BODY .  400))
-      ((default . error) (BODY .  399))
+      ((default . error) (BODY .  406))
+      ((default . error) (BODY .  405))
       ((default . error) (FUNCTION .  1) (PROCEDURE .  9))
       ((default . error) ($EOI . (subunit . 0)) (FUNCTION . (subunit . 0)) 
(GENERIC . (subunit . 0)) (LIMITED . (subunit . 0)) (NOT . (subunit . 0)) 
(OVERRIDING . (subunit . 0)) (PACKAGE . (subunit . 0)) (PRAGMA . (subunit . 0)) 
(PRIVATE . (subunit . 0)) (PROCEDURE . (subunit . 0)) (SEPARATE . (subunit . 
0)) (USE . (subunit . 0)) (WITH . (subunit . 0)))
       ((default . error) (SEPARATE . (use_clause . 1)) (LIMITED . (use_clause 
. 1)) ($EOI . (use_clause . 1)) (WITH . (use_clause . 1)) (PRIVATE . 
(use_clause . 1)) (END . (use_clause . 1)) (BEGIN . (use_clause . 1)) (ENTRY . 
(use_clause . 1)) (FOR . (use_clause . 1)) (FUNCTION . (use_clause . 1)) 
(GENERIC . (use_clause . 1)) (NOT . (use_clause . 1)) (OVERRIDING . (use_clause 
. 1)) (PACKAGE . (use_clause . 1)) (PRAGMA . (use_clause . 1)) (PROCEDURE . 
(use_clause . 1)) (PROTECTED . (use_c [...]
-      ((default . error) (SEMICOLON .  397))
-      ((default . error) (BEGIN .  396))
+      ((default . error) (SEMICOLON .  403))
+      ((default . error) (BEGIN .  402))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (DOT .  90) (TICK .  91) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109) (LEFT_PAREN .  107))
       ((default . error) (DOT .  90) (TICK .  91) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109) (LEFT_PAREN .  107))
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt  [...]
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt  [...]
       ((default . error) (BEGIN . (subprogram_renaming_declaration . 0)) 
(ENTRY . (subprogram_renaming_declaration . 0)) (FOR . 
(subprogram_renaming_declaration . 0)) (PROTECTED . 
(subprogram_renaming_declaration . 0)) (SUBTYPE . 
(subprogram_renaming_declaration . 0)) (TASK . (subprogram_renaming_declaration 
. 0)) (TYPE . (subprogram_renaming_declaration . 0)) (IDENTIFIER . 
(subprogram_renaming_declaration . 0)) (END . (subprogram_renaming_declaration 
. 0)) (WITH . (subprogram_renaming_d [...]
       ((default . error) (IS . (aspect_specification_opt . 0)) (WITH .  109))
-      ((default . error) (IDENTIFIER .  623))
-      ((default . error) (IDENTIFIER .  622))
-      ((default . error) (OF . (primary . 7)) (COLON_EQUAL . (primary . 7)) 
(DO . (primary . 7)) (LOOP . (primary . 7)) (ELSIF . (primary . 7)) (ELSE . 
(primary . 7)) (DIGITS . (primary . 7)) (RIGHT_PAREN . (primary . 7)) (COMMA . 
(primary . 7)) (RANGE . (primary . 7)) (THEN . (primary . 7)) (WITH . (primary 
. 7)) (BAR . (primary . 7)) (EQUAL_GREATER . (primary . 7)) (IS . (primary . 
7)) (IN . (primary . 7)) (NOT . (primary . 7)) (EQUAL . (primary . 7)) (GREATER 
. (primary . 7)) (GREATER [...]
-      ((default . error) (OF . ((aggregate . 3) (primary . 5))) (COLON_EQUAL . 
((aggregate . 3) (primary . 5))) (DO . ((aggregate . 3) (primary . 5))) (LOOP . 
((aggregate . 3) (primary . 5))) (ELSIF . ((aggregate . 3) (primary . 5))) 
(ELSE . ((aggregate . 3) (primary . 5))) (DIGITS . ((aggregate . 3) (primary . 
5))) (COMMA . ((aggregate . 3) (primary . 5))) (RIGHT_PAREN . ((aggregate . 3) 
(primary . 5))) (RANGE . ((aggregate . 3) (primary . 5))) (THEN . ((aggregate . 
3) (primary . 5))) ( [...]
-      ((default . error) (OF . ((aggregate . 2) (primary . 6))) (COLON_EQUAL . 
((aggregate . 2) (primary . 6))) (DO . ((aggregate . 2) (primary . 6))) (LOOP . 
((aggregate . 2) (primary . 6))) (ELSIF . ((aggregate . 2) (primary . 6))) 
(ELSE . ((aggregate . 2) (primary . 6))) (DIGITS . ((aggregate . 2) (primary . 
6))) (COMMA . ((aggregate . 2) (primary . 6))) (RIGHT_PAREN . ((aggregate . 2) 
(primary . 6))) (RANGE . ((aggregate . 2) (primary . 6))) (THEN . ((aggregate . 
2) (primary . 6))) ( [...]
-      ((default . error) (IDENTIFIER . (quantifier . 0)))
-      ((default . error) (IDENTIFIER . (quantifier . 1)))
-      ((default . error) (IDENTIFIER .  620))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (EQUAL_GREATER .  618))
+      ((default . error) (IDENTIFIER .  628))
+      ((default . error) (IDENTIFIER .  627))
+      ((default . error) (WHEN .  624))
+      ((default . error) (OF .  622) (COLON .  623) (IN .  621))
+      ((default . error) (EQUAL_GREATER .  620))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RIGHT_PAREN . ((expression_opt . 0) (association_opt 
. 0))) (COMMA . ((expression_opt . 0) (association_opt . 0))) (EQUAL_GREATER . 
(discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  182) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  183) (STRING_LITERAL .  49) (RAISE .  
152) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  181) (NUMERIC_LITERAL .  
155) (NULL .  617) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (USE . (aggregate . 2)) (COLON_EQUAL . (aggregate . 
2)) (CHARACTER_LITERAL . (aggregate . 2)) (STRING_LITERAL . (aggregate . 2)) 
(IDENTIFIER . (aggregate . 2)) (LESS_LESS . (aggregate . 2)) (WHILE . 
(aggregate . 2)) (SELECT . (aggregate . 2)) (REQUEUE . (aggregate . 2)) (RAISE 
. (aggregate . 2)) (PRAGMA . (aggregate . 2)) (NULL . (aggregate . 2)) (IF . 
(aggregate . 2)) (GOTO . (aggregate . 2)) (FOR . (aggregate . 2)) (EXIT . 
(aggregate . 2)) (DELAY . (aggregate . [...]
+      ((default . error) (USE . (aggregate . 0)) (COLON_EQUAL . (aggregate . 
0)) (CHARACTER_LITERAL . (aggregate . 0)) (STRING_LITERAL . (aggregate . 0)) 
(IDENTIFIER . (aggregate . 0)) (LESS_LESS . (aggregate . 0)) (WHILE . 
(aggregate . 0)) (SELECT . (aggregate . 0)) (REQUEUE . (aggregate . 0)) (RAISE 
. (aggregate . 0)) (PRAGMA . (aggregate . 0)) (NULL . (aggregate . 0)) (IF . 
(aggregate . 0)) (GOTO . (aggregate . 0)) (FOR . (aggregate . 0)) (EXIT . 
(aggregate . 0)) (DELAY . (aggregate . [...]
+      ((default . error) (RIGHT_PAREN .  616))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (EQUAL_GREATER .  614))
       ((default . error) (COMMA . (pragma_argument_association . 0)) 
(RIGHT_PAREN . (pragma_argument_association . 0)))
       ((default . error) (RIGHT_PAREN . (pragma_argument_association_list . 
1)) (COMMA . (pragma_argument_association_list . 1)))
       ((default . error) (WHEN . (pragma . 0)) (THEN . (pragma . 0)) (OR . 
(pragma . 0)) (ELSIF . (pragma . 0)) (ELSE . (pragma . 0)) (CHARACTER_LITERAL . 
(pragma . 0)) (STRING_LITERAL . (pragma . 0)) (LESS_LESS . (pragma . 0)) (WHILE 
. (pragma . 0)) (SELECT . (pragma . 0)) (RETURN . (pragma . 0)) (REQUEUE . 
(pragma . 0)) (RAISE . (pragma . 0)) (NULL . (pragma . 0)) (LOOP . (pragma . 
0)) (IF . (pragma . 0)) (GOTO . (pragma . 0)) (EXIT . (pragma . 0)) (DELAY . 
(pragma . 0)) (DECLARE . (pr [...]
       ((default . error) (OF . (factor . 0)) (COLON_EQUAL . (factor . 0)) (DO 
. (factor . 0)) (LOOP . (factor . 0)) (ELSIF . (factor . 0)) (ELSE . (factor . 
0)) (DIGITS . (factor . 0)) (COMMA . (factor . 0)) (RIGHT_PAREN . (factor . 0)) 
(RANGE . (factor . 0)) (THEN . (factor . 0)) (WITH . (factor . 0)) (BAR . 
(factor . 0)) (EQUAL_GREATER . (factor . 0)) (IS . (factor . 0)) (SLASH_EQUAL . 
(factor . 0)) (LESS_EQUAL . (factor . 0)) (LESS . (factor . 0)) (GREATER_EQUAL 
. (factor . 0)) (GREAT [...]
       ((default . error) (DO . (relation_and_list . 1)) (LOOP . 
(relation_and_list . 1)) (XOR . (relation_and_list . 1)) (OR . 
(relation_and_list . 1)) (ELSIF . (relation_and_list . 1)) (ELSE . 
(relation_and_list . 1)) (EQUAL_GREATER . (relation_and_list . 1)) (DIGITS . 
(relation_and_list . 1)) (RIGHT_PAREN . (relation_and_list . 1)) (COMMA . 
(relation_and_list . 1)) (RANGE . (relation_and_list . 1)) (THEN . 
(relation_and_list . 1)) (SEMICOLON . (relation_and_list . 1)) (WITH . 
(relation [...]
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (DO . (relation_or_list . 1)) (LOOP . 
(relation_or_list . 1)) (XOR . (relation_or_list . 1)) (AND . (relation_or_list 
. 1)) (ELSIF . (relation_or_list . 1)) (ELSE . (relation_or_list . 1)) 
(EQUAL_GREATER . (relation_or_list . 1)) (DIGITS . (relation_or_list . 1)) 
(RIGHT_PAREN . (relation_or_list . 1)) (COMMA . (relation_or_list . 1)) (RANGE 
. (relation_or_list . 1)) (THEN . (relation_or_list . 1)) (SEMICOLON . 
(relation_or_list . 1)) (WITH . (relation_or_list . 1 [...]
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (DO . (relation_xor_list . 1)) (LOOP . 
(relation_xor_list . 1)) (OR . (relation_xor_list . 1)) (AND . 
(relation_xor_list . 1)) (ELSIF . (relation_xor_list . 1)) (ELSE . 
(relation_xor_list . 1)) (EQUAL_GREATER . (relation_xor_list . 1)) (DIGITS . 
(relation_xor_list . 1)) (RIGHT_PAREN . (relation_xor_list . 1)) (COMMA . 
(relation_xor_list . 1)) (RANGE . (relation_xor_list . 1)) (THEN . 
(relation_xor_list . 1)) (SEMICOLON . (relation_xor_list . 1)) (WITH . 
(relation [...]
       ((default . error) (DO . (relation_xor_list . 0)) (LOOP . 
(relation_xor_list . 0)) (OR . (relation_xor_list . 0)) (AND . 
(relation_xor_list . 0)) (ELSIF . (relation_xor_list . 0)) (ELSE . 
(relation_xor_list . 0)) (EQUAL_GREATER . (relation_xor_list . 0)) (DIGITS . 
(relation_xor_list . 0)) (RIGHT_PAREN . (relation_xor_list . 0)) (COMMA . 
(relation_xor_list . 0)) (RANGE . (relation_xor_list . 0)) (THEN . 
(relation_xor_list . 0)) (SEMICOLON . (relation_xor_list . 0)) (WITH . 
(relation [...]
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (DO . (relation_or_list . 0)) (LOOP . 
(relation_or_list . 0)) (XOR . (relation_or_list . 0)) (AND . (relation_or_list 
. 0)) (ELSIF . (relation_or_list . 0)) (ELSE . (relation_or_list . 0)) 
(EQUAL_GREATER . (relation_or_list . 0)) (DIGITS . (relation_or_list . 0)) 
(RIGHT_PAREN . (relation_or_list . 0)) (COMMA . (relation_or_list . 0)) (RANGE 
. (relation_or_list . 0)) (THEN . (relation_or_list . 0)) (SEMICOLON . 
(relation_or_list . 0)) (WITH . (relation_or_list . 0 [...]
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (DO . (relation_and_list . 0)) (LOOP . 
(relation_and_list . 0)) (XOR . (relation_and_list . 0)) (OR . 
(relation_and_list . 0)) (ELSIF . (relation_and_list . 0)) (ELSE . 
(relation_and_list . 0)) (EQUAL_GREATER . (relation_and_list . 0)) (DIGITS . 
(relation_and_list . 0)) (RIGHT_PAREN . (relation_and_list . 0)) (COMMA . 
(relation_and_list . 0)) (RANGE . (relation_and_list . 0)) (THEN . 
(relation_and_list . 0)) (SEMICOLON . (relation_and_list . 0)) (WITH . 
(relation [...]
       ((default . error) (DO . (relation . 1)) (LOOP . (relation . 1)) (COMMA 
. (relation . 1)) (ELSIF . (relation . 1)) (ELSE . (relation . 1)) 
(EQUAL_GREATER . (relation . 1)) (RIGHT_PAREN . (relation . 1)) (DIGITS . 
(relation . 1)) (RANGE . (relation . 1)) (THEN . (relation . 1)) (SEMICOLON . 
(relation . 1)) (WITH . (relation . 1)) (IS . (relation . 1)) (AND . (relation 
. 1)) (OR . (relation . 1)) (XOR . (relation . 1)))
       ((default . error) (OF . (term . 1)) (COLON_EQUAL . (term . 1)) (DO . 
(term . 1)) (LOOP . (term . 1)) (ELSIF . (term . 1)) (ELSE . (term . 1)) 
(DIGITS . (term . 1)) (RIGHT_PAREN . (term . 1)) (COMMA . (term . 1)) (RANGE . 
(term . 1)) (THEN . (term . 1)) (WITH . (term . 1)) (BAR . (term . 1)) 
(EQUAL_GREATER . (term . 1)) (IS . (term . 1)) (IN . (term . 1)) (NOT . (term . 
1)) (EQUAL . (term . 1)) (GREATER . (term . 1)) (GREATER_EQUAL . (term . 1)) 
(LESS . (term . 1)) (LESS_EQUAL . (t [...]
-      ((default . error) (OF . (term_list . 1)) (COLON_EQUAL . (term_list . 
1)) (DO . (term_list . 1)) (LOOP . (term_list . 1)) (ELSIF . (term_list . 1)) 
(ELSE . (term_list . 1)) (DIGITS . (term_list . 1)) (COMMA . (term_list . 1)) 
(RIGHT_PAREN . (term_list . 1)) (RANGE . (term_list . 1)) (THEN . (term_list . 
1)) (WITH . (term_list . 1)) (BAR . (term_list . 1)) (EQUAL_GREATER . 
(term_list . 1)) (IS . (term_list . 1)) (SLASH_EQUAL . (term_list . 1)) 
(LESS_EQUAL . (term_list . 1)) (LESS .  [...]
-      ((default . error) (BEGIN .  612) (END .  613))
-      ((default . error) (IDENTIFIER .  611))
-      ((default . error) (RENAMES . (subprogram_specification . 1)) (IS . ( 
610 (subprogram_specification . 1))) (WITH . (subprogram_specification . 1)) 
(SEMICOLON . (subprogram_specification . 1)))
-      ((default . error) (RENAMES . (subprogram_specification . 0)) (IS . ( 
609 (subprogram_specification . 0))) (WITH . (subprogram_specification . 0)) 
(SEMICOLON . (subprogram_specification . 0)))
-      ((default . error) (RENAMES .  128) (SEMICOLON . 
(aspect_specification_opt . 0)) (IS . ( 608 (aspect_specification_opt . 0))) 
(WITH .  109))
-      ((default . error) (EXCEPTION .  606) (CONSTANT . ( 605 (aliased_opt . 
0))) (ARRAY . (aliased_opt . 0)) (ACCESS . (aliased_opt . 0)) (NOT . 
(aliased_opt . 0)) (IDENTIFIER . (aliased_opt . 0)) (STRING_LITERAL . 
(aliased_opt . 0)) (CHARACTER_LITERAL . (aliased_opt . 0)) (ALIASED .  530))
-      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  301) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  298) (IDENTIFIER .  304) (TYPE 
.  303) (GENERIC .  2) (PROTECTED .  300) (TASK .  302) (PACKAGE .  299))
+      ((default . error) (OF . (term_list . 1)) (COLON_EQUAL . (term_list . 
1)) (DO . (term_list . 1)) (LOOP . (term_list . 1)) (ELSIF . (term_list . 1)) 
(ELSE . (term_list . 1)) (DIGITS . (term_list . 1)) (COMMA . (term_list . 1)) 
(RIGHT_PAREN . (term_list . 1)) (RANGE . (term_list . 1)) (THEN . (term_list . 
1)) (WITH . (term_list . 1)) (BAR . (term_list . 1)) (EQUAL_GREATER . 
(term_list . 1)) (IS . (term_list . 1)) (SLASH_EQUAL . (term_list . 1)) 
(LESS_EQUAL . (term_list . 1)) (LESS .  [...]
+      ((default . error) (BEGIN .  608) (END .  609))
+      ((default . error) (IDENTIFIER .  607))
+      ((default . error) (RENAMES . (subprogram_specification . 1)) (IS . ( 
606 (subprogram_specification . 1))) (WITH . (subprogram_specification . 1)) 
(SEMICOLON . (subprogram_specification . 1)))
+      ((default . error) (RENAMES . (subprogram_specification . 0)) (IS . ( 
605 (subprogram_specification . 0))) (WITH . (subprogram_specification . 0)) 
(SEMICOLON . (subprogram_specification . 0)))
+      ((default . error) (RENAMES .  128) (SEMICOLON . 
(aspect_specification_opt . 0)) (IS . ( 604 (aspect_specification_opt . 0))) 
(WITH .  109))
+      ((default . error) (EXCEPTION .  602) (CONSTANT . ( 601 (aliased_opt . 
0))) (ARRAY . (aliased_opt . 0)) (ACCESS . (aliased_opt . 0)) (NOT . 
(aliased_opt . 0)) (IDENTIFIER . (aliased_opt . 0)) (STRING_LITERAL . 
(aliased_opt . 0)) (CHARACTER_LITERAL . (aliased_opt . 0)) (ALIASED .  531))
+      ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  302) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  299) (IDENTIFIER .  305) (TYPE 
.  304) (GENERIC .  2) (PROTECTED .  301) (TASK .  303) (PACKAGE .  300))
       ((default . error) (IDENTIFIER . (declarations . 1)) (USE . 
(declarations . 1)) (TYPE . (declarations . 1)) (TASK . (declarations . 1)) 
(SUBTYPE . (declarations . 1)) (PROTECTED . (declarations . 1)) (PROCEDURE . 
(declarations . 1)) (PRAGMA . (declarations . 1)) (PACKAGE . (declarations . 
1)) (OVERRIDING . (declarations . 1)) (NOT . (declarations . 1)) (GENERIC . 
(declarations . 1)) (FUNCTION . (declarations . 1)) (FOR . (declarations . 1)) 
(ENTRY . (declarations . 1)) (BEGIN . (de [...]
-      ((default . error) (EXCEPTION .  600) (IDENTIFIER . (null_exclusion_opt 
. 0)) (STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . 
(null_exclusion_opt . 0)) (ACCESS . (null_exclusion_opt . 0)) (NOT .  225))
-      ((default . error) (IS . (discriminant_part_opt . 0)) (SEMICOLON . 
(discriminant_part_opt . 0)) (LEFT_PAREN .  203))
-      ((default . error) (IDENTIFIER .  598))
-      ((default . error) (IDENTIFIER .  597))
-      ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (IS . 
(aspect_specification_opt . 0)) (WITH .  109))
-      ((default . error) (IS .  595))
+      ((default . error) (EXCEPTION .  596) (IDENTIFIER . (null_exclusion_opt 
. 0)) (STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . 
(null_exclusion_opt . 0)) (ACCESS . (null_exclusion_opt . 0)) (NOT .  232))
+      ((default . error) (IS . (discriminant_part_opt . 0)) (SEMICOLON . 
(discriminant_part_opt . 0)) (LEFT_PAREN .  211))
       ((default . error) (IDENTIFIER .  594))
       ((default . error) (IDENTIFIER .  593))
+      ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (IS . 
(aspect_specification_opt . 0)) (WITH .  109))
+      ((default . error) (IS .  591))
+      ((default . error) (IDENTIFIER .  590))
+      ((default . error) (IDENTIFIER .  589))
       ((default . error) (IS . (aspect_specification_opt . 0)) (WITH .  109))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (USE . ((name . 0) (direct_name . 0))) (LEFT_PAREN . 
(name . 0)) (DOT . (name . 0)) (TICK . (name . 0)))
       ((default . error) (USE . ((name . 7) (direct_name . 1))) (LEFT_PAREN . 
(name . 7)) (DOT . (name . 7)) (TICK . (name . 7)))
-      ((default . error) (USE . ( 590 (name . 4))) (LEFT_PAREN . (name . 4)) 
(DOT . (name . 4)) (TICK . (name . 4)))
-      ((default . error) (USE .  589))
-      ((default . error) (DOT .  90) (TICK .  91) (USE .  588) (LEFT_PAREN .  
107))
+      ((default . error) (USE . ( 586 (name . 4))) (LEFT_PAREN . (name . 4)) 
(DOT . (name . 4)) (TICK . (name . 4)))
+      ((default . error) (USE .  585))
+      ((default . error) (DOT .  90) (TICK .  91) (USE .  584) (LEFT_PAREN .  
107))
       ((default . error) (DOT .  90) (TICK .  91) (BAR . (discrete_choice . 
1)) (EQUAL_GREATER . (discrete_choice . 1)) (LEFT_PAREN .  107))
       ((default . error) (SEMICOLON . (association_opt . 2)) (IS . 
(association_opt . 2)) (COMMA . (association_opt . 2)) (RIGHT_PAREN . 
(association_opt . 2)))
       ((default . error) (SEMICOLON . (association_opt . 1)) (IS . 
(association_opt . 1)) (COMMA . (association_opt . 1)) (RIGHT_PAREN . 
(association_opt . 1)))
       ((default . error) (BAR . (choice_relation_and_list . 1)) (EQUAL_GREATER 
. (choice_relation_and_list . 1)) (AND . (choice_relation_and_list . 1)))
-      ((default . error) (XOR . (choice_relation . 1)) (OR . (choice_relation 
. 1)) (BAR . (choice_relation . 1)) (EQUAL_GREATER . (choice_relation . 1)) 
(AND . (choice_relation . 1)) (EQUAL .  277) (SLASH_EQUAL .  282) (LESS .  280) 
(LESS_EQUAL .  281) (GREATER .  278) (GREATER_EQUAL .  279))
+      ((default . error) (XOR . (choice_relation . 1)) (OR . (choice_relation 
. 1)) (BAR . (choice_relation . 1)) (EQUAL_GREATER . (choice_relation . 1)) 
(AND . (choice_relation . 1)) (EQUAL .  278) (SLASH_EQUAL .  283) (LESS .  281) 
(LESS_EQUAL .  282) (GREATER .  279) (GREATER_EQUAL .  280))
       ((default . error) (BAR . (choice_relation_or_list . 1)) (EQUAL_GREATER 
. (choice_relation_or_list . 1)) (OR . (choice_relation_or_list . 1)))
       ((default . error) (BAR . (choice_relation_xor_list . 1)) (EQUAL_GREATER 
. (choice_relation_xor_list . 1)) (XOR . (choice_relation_xor_list . 1)))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (BAR . (choice_relation_xor_list . 0)) (EQUAL_GREATER 
. (choice_relation_xor_list . 0)) (XOR . (choice_relation_xor_list . 0)))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (BAR . (choice_relation_or_list . 0)) (EQUAL_GREATER 
. (choice_relation_or_list . 0)) (OR . (choice_relation_or_list . 0)))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (BAR . (choice_relation_and_list . 0)) (EQUAL_GREATER 
. (choice_relation_and_list . 0)) (AND . (choice_relation_and_list . 0)))
       ((default . error) (SEMICOLON . (association_opt . 4)) (IS . 
(association_opt . 4)) (COMMA . (association_opt . 4)) (RIGHT_PAREN . 
(association_opt . 4)))
       ((default . error) (SEMICOLON . (association_opt . 3)) (IS . 
(association_opt . 3)) (COMMA . (association_opt . 3)) (RIGHT_PAREN . 
(association_opt . 3)))
       ((default . error) (EQUAL_GREATER . (discrete_choice_list . 2)) (BAR . 
(discrete_choice_list . 2)))
-      ((default . error) (DOT_DOT .  276) (BAR . (choice_relation . 1)) 
(EQUAL_GREATER . (choice_relation . 1)) (AND . (choice_relation . 1)) (OR . 
(choice_relation . 1)) (XOR . (choice_relation . 1)) (EQUAL .  277) 
(SLASH_EQUAL .  282) (LESS .  280) (LESS_EQUAL .  281) (GREATER .  278) 
(GREATER_EQUAL .  279))
-      ((default . error) (LOOP . (range . 1)) (DO . (range . 1)) (OF . (range 
. 1)) (COLON_EQUAL . (range . 1)) (ELSIF . (range . 1)) (ELSE . (range . 1)) 
(DIGITS . (range . 1)) (RANGE . (range . 1)) (THEN . (range . 1)) (SEMICOLON . 
(range . 1)) (WITH . (range . 1)) (IS . (range . 1)) (AND . (range . 1)) (OR . 
(range . 1)) (XOR . (range . 1)) (COMMA . (range . 1)) (RIGHT_PAREN . (range . 
1)) (EQUAL_GREATER . (range . 1)) (BAR . (range . 1)) (LEFT_PAREN .  582))
+      ((default . error) (DOT_DOT .  277) (BAR . (choice_relation . 1)) 
(EQUAL_GREATER . (choice_relation . 1)) (AND . (choice_relation . 1)) (OR . 
(choice_relation . 1)) (XOR . (choice_relation . 1)) (EQUAL .  278) 
(SLASH_EQUAL .  283) (LESS .  281) (LESS_EQUAL .  282) (GREATER .  279) 
(GREATER_EQUAL .  280))
+      ((default . error) (LOOP . (range . 1)) (DO . (range . 1)) (OF . (range 
. 1)) (COLON_EQUAL . (range . 1)) (ELSIF . (range . 1)) (ELSE . (range . 1)) 
(DIGITS . (range . 1)) (RANGE . (range . 1)) (THEN . (range . 1)) (SEMICOLON . 
(range . 1)) (WITH . (range . 1)) (IS . (range . 1)) (AND . (range . 1)) (OR . 
(range . 1)) (XOR . (range . 1)) (COMMA . (range . 1)) (RIGHT_PAREN . (range . 
1)) (EQUAL_GREATER . (range . 1)) (BAR . (range . 1)) (LEFT_PAREN .  578))
       ((default . error) (SEMICOLON . (relation . 1)) (IS . (relation . 1)) 
(WITH . (relation . 1)) (RIGHT_PAREN . (relation . 1)) (COMMA . (relation . 1)) 
(BAR . (choice_relation . 0)) (EQUAL_GREATER . (choice_relation . 0)) (AND . 
((choice_relation . 0) (relation . 1))) (OR . ((choice_relation . 0) (relation 
. 1))) (XOR . ((choice_relation . 0) (relation . 1))))
       ((default . error) (DO . (range . 2)) (LOOP . (range . 2)) (OF . (range 
. 2)) (COLON_EQUAL . (range . 2)) (ELSIF . (range . 2)) (ELSE . (range . 2)) 
(DIGITS . (range . 2)) (RANGE . (range . 2)) (THEN . (range . 2)) (SEMICOLON . 
(range . 2)) (WITH . (range . 2)) (IS . (range . 2)) (AND . (range . 2)) (OR . 
(range . 2)) (XOR . (range . 2)) (COMMA . (range . 2)) (RIGHT_PAREN . (range . 
2)) (EQUAL_GREATER . (range . 2)) (BAR . (range . 2)))
-      ((default . error) (PLUS .  151) (MINUS .  150) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ABS .  144) (NOT .  147) 
(NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (BAR .  580) (DO . (relation . 3)) (LOOP . (relation 
. 3)) (COMMA . (relation . 3)) (ELSIF . (relation . 3)) (ELSE . (relation . 3)) 
(EQUAL_GREATER . (relation . 3)) (RIGHT_PAREN . (relation . 3)) (DIGITS . 
(relation . 3)) (RANGE . (relation . 3)) (THEN . (relation . 3)) (SEMICOLON . 
(relation . 3)) (WITH . (relation . 3)) (IS . (relation . 3)) (AND . (relation 
. 3)) (OR . (relation . 3)) (XOR . (relation . 3)))
+      ((default . error) (PLUS .  154) (MINUS .  153) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ABS .  144) (NOT .  150) 
(NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (BAR .  576) (DO . (relation . 3)) (LOOP . (relation 
. 3)) (COMMA . (relation . 3)) (ELSIF . (relation . 3)) (ELSE . (relation . 3)) 
(EQUAL_GREATER . (relation . 3)) (RIGHT_PAREN . (relation . 3)) (DIGITS . 
(relation . 3)) (RANGE . (relation . 3)) (THEN . (relation . 3)) (SEMICOLON . 
(relation . 3)) (WITH . (relation . 3)) (IS . (relation . 3)) (AND . (relation 
. 3)) (OR . (relation . 3)) (XOR . (relation . 3)))
       ((default . error) (DO . (membership_choice_list . 0)) (LOOP . 
(membership_choice_list . 0)) (COMMA . (membership_choice_list . 0)) (ELSIF . 
(membership_choice_list . 0)) (ELSE . (membership_choice_list . 0)) 
(EQUAL_GREATER . (membership_choice_list . 0)) (RIGHT_PAREN . 
(membership_choice_list . 0)) (DIGITS . (membership_choice_list . 0)) (RANGE . 
(membership_choice_list . 0)) (THEN . (membership_choice_list . 0)) (SEMICOLON 
. (membership_choice_list . 0)) (WITH . (membership_choic [...]
       ((default . error) (DO . (membership_choice . 1)) (LOOP . 
(membership_choice . 1)) (COMMA . (membership_choice . 1)) (ELSIF . 
(membership_choice . 1)) (ELSE . (membership_choice . 1)) (EQUAL_GREATER . 
(membership_choice . 1)) (RIGHT_PAREN . (membership_choice . 1)) (DIGITS . 
(membership_choice . 1)) (RANGE . (membership_choice . 1)) (THEN . 
(membership_choice . 1)) (SEMICOLON . (membership_choice . 1)) (WITH . 
(membership_choice . 1)) (IS . (membership_choice . 1)) (AND . (membersh [...]
-      ((default . error) (DOT_DOT .  276) (DO . (membership_choice . 0)) (LOOP 
. (membership_choice . 0)) (COMMA . (membership_choice . 0)) (ELSIF . 
(membership_choice . 0)) (ELSE . (membership_choice . 0)) (EQUAL_GREATER . 
(membership_choice . 0)) (RIGHT_PAREN . (membership_choice . 0)) (DIGITS . 
(membership_choice . 0)) (RANGE . (membership_choice . 0)) (THEN . 
(membership_choice . 0)) (SEMICOLON . (membership_choice . 0)) (WITH . 
(membership_choice . 0)) (IS . (membership_choice . 0)) [...]
+      ((default . error) (DOT_DOT .  277) (DO . (membership_choice . 0)) (LOOP 
. (membership_choice . 0)) (COMMA . (membership_choice . 0)) (ELSIF . 
(membership_choice . 0)) (ELSE . (membership_choice . 0)) (EQUAL_GREATER . 
(membership_choice . 0)) (RIGHT_PAREN . (membership_choice . 0)) (DIGITS . 
(membership_choice . 0)) (RANGE . (membership_choice . 0)) (THEN . 
(membership_choice . 0)) (SEMICOLON . (membership_choice . 0)) (WITH . 
(membership_choice . 0)) (IS . (membership_choice . 0)) [...]
       ((default . error) (BEGIN . (package_renaming_declaration . 0)) (ENTRY . 
(package_renaming_declaration . 0)) (FOR . (package_renaming_declaration . 0)) 
(PROTECTED . (package_renaming_declaration . 0)) (SUBTYPE . 
(package_renaming_declaration . 0)) (TASK . (package_renaming_declaration . 0)) 
(TYPE . (package_renaming_declaration . 0)) (IDENTIFIER . 
(package_renaming_declaration . 0)) (END . (package_renaming_declaration . 0)) 
(WITH . (package_renaming_declaration . 0)) (USE . (packa [...]
       ((default . error) (SEMICOLON . (association_list . 1)) (IS . 
(association_list . 1)) (COMMA . (association_list . 1)) (RIGHT_PAREN . 
(association_list . 1)))
       ((default . error) (RIGHT_PAREN . (range_list . 1)) (COMMA . (range_list 
. 1)))
-      ((default . error) (DOT_DOT .  276))
-      ((default . error) (SEMICOLON .  579))
-      ((default . error) (SEMICOLON .  578))
-      ((default . error) (SEMICOLON .  577))
-      ((default . error) (SEMICOLON .  576))
-      ((default . error) (ACCESS . (null_exclusion_opt . 0)) (NOT .  570) 
(IDENTIFIER .  571) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (DOT_DOT .  277))
+      ((default . error) (SEMICOLON .  575))
+      ((default . error) (SEMICOLON .  574))
+      ((default . error) (SEMICOLON .  573))
+      ((default . error) (SEMICOLON .  572))
+      ((default . error) (ACCESS . (null_exclusion_opt . 0)) (NOT .  566) 
(IDENTIFIER .  567) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (IS . (discriminant_part_opt . 2)) (WITH . 
(discriminant_part_opt . 2)) (SEMICOLON . (discriminant_part_opt . 2)))
       ((default . error) (RIGHT_PAREN . (discriminant_specification_opt . 0)) 
(SEMICOLON . (discriminant_specification_opt . 0)) (IDENTIFIER .  77))
       ((default . error) (IS . (discriminant_part_opt . 1)) (WITH . 
(discriminant_part_opt . 1)) (SEMICOLON . (discriminant_part_opt . 1)))
       ((default . error) (PACKAGE . (formal_type_declaration . 2)) (PROCEDURE 
. (formal_type_declaration . 2)) (FUNCTION . (formal_type_declaration . 2)) 
(PRAGMA . (formal_type_declaration . 2)) (TYPE . (formal_type_declaration . 2)) 
(USE . (formal_type_declaration . 2)) (WITH . (formal_type_declaration . 2)) 
(IDENTIFIER . (formal_type_declaration . 2)))
-      ((default . error) (TAGGED .  568) (NEW . 
(abstract_limited_synchronized_opt . 3)) (SYNCHRONIZED .  567) (LIMITED .  566))
-      ((default . error) (LEFT_PAREN .  565))
-      ((default . error) (BOX .  564))
-      ((default . error) (BOX .  563))
-      ((default . error) (SEMICOLON . (interface_type_definition . 8)) (WITH . 
(interface_type_definition . 8)))
-      ((default . error) (BOX .  562))
-      ((default . error) (INTERFACE .  561) (PRIVATE . 
(abstract_tagged_limited_opt . 5)) (NEW . (abstract_limited_synchronized_opt . 
4)))
+      ((default . error) (TAGGED .  564) (NEW . 
(abstract_limited_synchronized_opt . 3)) (SYNCHRONIZED .  563) (LIMITED .  562))
+      ((default . error) (LEFT_PAREN .  561))
       ((default . error) (BOX .  560))
-      ((default . error) (INTERFACE .  559))
+      ((default . error) (BOX .  559))
+      ((default . error) (SEMICOLON . (interface_type_definition . 8)) (WITH . 
(interface_type_definition . 8)))
       ((default . error) (BOX .  558))
-      ((default . error) (INTERFACE .  557) (NEW . 
(abstract_limited_synchronized_opt . 5)))
-      ((default . error) (PRIVATE . (abstract_tagged_limited_opt . 4)) 
(LIMITED .  555) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  109))
-      ((default . error) (INTERFACE .  554))
-      ((default . error) (NEW .  553))
-      ((default . error) (PRIVATE .  552))
+      ((default . error) (INTERFACE .  557) (PRIVATE . 
(abstract_tagged_limited_opt . 5)) (NEW . (abstract_limited_synchronized_opt . 
4)))
+      ((default . error) (BOX .  556))
+      ((default . error) (INTERFACE .  555))
+      ((default . error) (BOX .  554))
+      ((default . error) (INTERFACE .  553) (NEW . 
(abstract_limited_synchronized_opt . 5)))
+      ((default . error) (PRIVATE . (abstract_tagged_limited_opt . 4)) 
(LIMITED .  551) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  109))
+      ((default . error) (INTERFACE .  550))
+      ((default . error) (NEW .  549))
+      ((default . error) (PRIVATE .  548))
       ((default . error) (WITH . (formal_type_definition . 9)) (SEMICOLON . 
(formal_type_definition . 9)))
       ((default . error) (WITH . (formal_type_definition . 8)) (SEMICOLON . 
(formal_type_definition . 8)))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
       ((default . error) (WITH . (formal_type_definition . 1)) (SEMICOLON . 
(formal_type_definition . 1)))
       ((default . error) (WITH . (formal_type_definition . 10)) (SEMICOLON . 
(formal_type_definition . 10)))
-      ((default . error) (ACCESS .  235))
-      ((default . error) (SEMICOLON .  550))
-      ((default . error) (SEMICOLON .  549))
+      ((default . error) (ACCESS .  242))
+      ((default . error) (SEMICOLON .  546))
+      ((default . error) (SEMICOLON .  545))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (DOT .  90) (TICK .  91) (COLON_EQUAL .  545) 
(LEFT_PAREN .  107) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  109))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (SEMICOLON .  543))
+      ((default . error) (DOT .  90) (TICK .  91) (COLON_EQUAL .  541) 
(LEFT_PAREN .  107) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  109))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (SEMICOLON .  539))
       ((default . error) (DO . (parameter_and_result_profile . 0)) 
(RIGHT_PAREN . (parameter_and_result_profile . 0)) (COLON_EQUAL . 
(parameter_and_result_profile . 0)) (RENAMES . (parameter_and_result_profile . 
0)) (WITH . (parameter_and_result_profile . 0)) (SEMICOLON . 
(parameter_and_result_profile . 0)) (IS . (parameter_and_result_profile . 0)))
-      ((default . error) (DO . (aggregate . 3)) (ELSIF . (aggregate . 3)) 
(ELSE . (aggregate . 3)) (DIGITS . (aggregate . 3)) (RANGE . (aggregate . 3)) 
(THEN . (aggregate . 3)) (USE . (aggregate . 3)) (COLON_EQUAL . (aggregate . 
3)) (CHARACTER_LITERAL . (aggregate . 3)) (STRING_LITERAL . (aggregate . 3)) 
(IDENTIFIER . (aggregate . 3)) (LESS_LESS . (aggregate . 3)) (WHILE . 
(aggregate . 3)) (SELECT . (aggregate . 3)) (REQUEUE . (aggregate . 3)) (RAISE 
. (aggregate . 3)) (PRAGMA . (aggrega [...]
-      ((default . error) (RIGHT_PAREN . ((expression_opt . 0) (association_opt 
. 0))) (COMMA . ((expression_opt . 0) (association_opt . 0))) (EQUAL_GREATER . 
(discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  175) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  176) (STRING_LITERAL .  49) (RAISE .  
149) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  174) (NUMERIC_LITERAL .  
152) (NULL .  541) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (DO . (aggregate . 2)) (ELSIF . (aggregate . 2)) 
(ELSE . (aggregate . 2)) (DIGITS . (aggregate . 2)) (RANGE . (aggregate . 2)) 
(THEN . (aggregate . 2)) (USE . (aggregate . 2)) (COLON_EQUAL . (aggregate . 
2)) (CHARACTER_LITERAL . (aggregate . 2)) (STRING_LITERAL . (aggregate . 2)) 
(IDENTIFIER . (aggregate . 2)) (LESS_LESS . (aggregate . 2)) (WHILE . 
(aggregate . 2)) (SELECT . (aggregate . 2)) (REQUEUE . (aggregate . 2)) (RAISE 
. (aggregate . 2)) (PRAGMA . (aggrega [...]
-      ((default . error) (DO . (aggregate . 0)) (LOOP . (aggregate . 0)) (USE 
. (aggregate . 0)) (COLON_EQUAL . (aggregate . 0)) (CHARACTER_LITERAL . 
(aggregate . 0)) (STRING_LITERAL . (aggregate . 0)) (IDENTIFIER . (aggregate . 
0)) (LESS_LESS . (aggregate . 0)) (WHILE . (aggregate . 0)) (SELECT . 
(aggregate . 0)) (REQUEUE . (aggregate . 0)) (RAISE . (aggregate . 0)) (PRAGMA 
. (aggregate . 0)) (NULL . (aggregate . 0)) (IF . (aggregate . 0)) (GOTO . 
(aggregate . 0)) (FOR . (aggregate . 0) [...]
-      ((default . error) (RIGHT_PAREN .  540))
-      ((default . error) (THEN .  539))
-      ((default . error) (IS .  538))
       ((default . error) (IDENTIFIER . (general_access_modifier_opt . 1)) 
(STRING_LITERAL . (general_access_modifier_opt . 1)) (CHARACTER_LITERAL . 
(general_access_modifier_opt . 1)))
       ((default . error) (IDENTIFIER . (general_access_modifier_opt . 2)) 
(STRING_LITERAL . (general_access_modifier_opt . 2)) (CHARACTER_LITERAL . 
(general_access_modifier_opt . 2)))
       ((default . error) (FUNCTION . (protected_opt . 1)) (PROCEDURE . 
(protected_opt . 1)))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (FUNCTION .  535) (PROCEDURE .  536))
+      ((default . error) (FUNCTION .  536) (PROCEDURE .  537))
       ((default . error) (IN . (aliased_opt . 1)) (OUT . (aliased_opt . 1)) 
(ARRAY . (aliased_opt . 1)) (CONSTANT . (aliased_opt . 1)) (ACCESS . 
(aliased_opt . 1)) (NOT . (aliased_opt . 1)) (IDENTIFIER . (aliased_opt . 1)) 
(STRING_LITERAL . (aliased_opt . 1)) (CHARACTER_LITERAL . (aliased_opt . 1)))
-      ((default . error) (IDENTIFIER . (mode_opt . 0)) (STRING_LITERAL . 
(mode_opt . 0)) (CHARACTER_LITERAL . (mode_opt . 0)) (IN .  209) (OUT .  210) 
(ACCESS . (null_exclusion_opt . 0)) (NOT . ( 225 (mode_opt . 0))))
+      ((default . error) (IDENTIFIER . (mode_opt . 0)) (STRING_LITERAL . 
(mode_opt . 0)) (CHARACTER_LITERAL . (mode_opt . 0)) (IN .  217) (OUT .  218) 
(ACCESS . (null_exclusion_opt . 0)) (NOT . ( 232 (mode_opt . 0))))
       ((default . error) (RIGHT_PAREN . (parameter_specification_list . 1)) 
(SEMICOLON . (parameter_specification_list . 1)))
-      ((default . error) (COLON_EQUAL .  802) (RIGHT_PAREN . 
(parameter_specification . 3)) (SEMICOLON . (parameter_specification . 3)))
-      ((default . error) (IDENTIFIER . (null_exclusion_opt . 0)) 
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . 
(null_exclusion_opt . 0)) (NOT .  225))
-      ((default . error) (RETURN .  89) (LEFT_PAREN .  798))
-      ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON . 
(parameter_profile_opt . 0)) (IS . (parameter_profile_opt . 0)) (COLON_EQUAL . 
(parameter_profile_opt . 0)) (RIGHT_PAREN . (parameter_profile_opt . 0)) 
(RENAMES . (parameter_profile_opt . 0)) (DO . (parameter_profile_opt . 0)) 
(LEFT_PAREN .  798))
+      ((default . error) (COLON_EQUAL .  812) (RIGHT_PAREN . 
(parameter_specification . 3)) (SEMICOLON . (parameter_specification . 3)))
+      ((default . error) (IDENTIFIER . (null_exclusion_opt . 0)) 
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . 
(null_exclusion_opt . 0)) (NOT .  232))
+      ((default . error) (RETURN .  89) (LEFT_PAREN .  808))
+      ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON . 
(parameter_profile_opt . 0)) (IS . (parameter_profile_opt . 0)) (COLON_EQUAL . 
(parameter_profile_opt . 0)) (RIGHT_PAREN . (parameter_profile_opt . 0)) 
(RENAMES . (parameter_profile_opt . 0)) (DO . (parameter_profile_opt . 0)) 
(LEFT_PAREN .  808))
       ((default . error) (DOT .  90) (TICK .  91) (DO . (access_definition . 
0)) (RENAMES . (access_definition . 0)) (RIGHT_PAREN . (access_definition . 0)) 
(COLON_EQUAL . (access_definition . 0)) (IS . (access_definition . 0)) 
(SEMICOLON . (access_definition . 0)) (WITH . (access_definition . 0)) 
(LEFT_PAREN .  107))
-      ((default . error) (WHEN .  795))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (OF . (aggregate . 5)) (ACCEPT . (aggregate . 5)) 
(ABORT . (aggregate . 5)) (BEGIN . (aggregate . 5)) (CASE . (aggregate . 5)) 
(DECLARE . (aggregate . 5)) (DELAY . (aggregate . 5)) (EXIT . (aggregate . 5)) 
(FOR . (aggregate . 5)) (GOTO . (aggregate . 5)) (IF . (aggregate . 5)) (NULL . 
(aggregate . 5)) (PRAGMA . (aggregate . 5)) (RAISE . (aggregate . 5)) (REQUEUE 
. (aggregate . 5)) (SELECT . (aggregate . 5)) (WHILE . (aggregate . 5)) 
(LESS_LESS . (aggregate . 5))  [...]
-      ((default . error) (PLUS . (primary . 1)) (MINUS . (primary . 1)) 
(AMPERSAND . (primary . 1)) (DOT_DOT . (primary . 1)) (IN . (primary . 1)) (NOT 
. (primary . 1)) (EQUAL . (primary . 1)) (GREATER . (primary . 1)) 
(GREATER_EQUAL . (primary . 1)) (LESS . (primary . 1)) (LESS_EQUAL . (primary . 
1)) (SLASH_EQUAL . (primary . 1)) (RIGHT_PAREN . (primary . 1)) (COMMA . 
(primary . 1)) (MOD . (primary . 1)) (REM . (primary . 1)) (SLASH . (primary . 
1)) (STAR . (primary . 1)) (STAR_STAR . ( [...]
-      ((default . error) (COMMA .  272) (RIGHT_PAREN .  792))
       ((default . error) (IDENTIFIER . (formal_object_declaration . 3)) (WITH 
. (formal_object_declaration . 3)) (USE . (formal_object_declaration . 3)) 
(TYPE . (formal_object_declaration . 3)) (PRAGMA . (formal_object_declaration . 
3)) (FUNCTION . (formal_object_declaration . 3)) (PROCEDURE . 
(formal_object_declaration . 3)) (PACKAGE . (formal_object_declaration . 3)))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (SEMICOLON .  789))
-      ((default . error) (DOT .  90) (TICK .  91) (WITH . 
(formal_package_actual_part . 1)) (SEMICOLON . (formal_package_actual_part . 
1)) (LEFT_PAREN .  787))
-      ((default . error) (SEMICOLON .  786))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (SEMICOLON .  805))
+      ((default . error) (DOT .  90) (TICK .  91) (WITH . 
(formal_package_actual_part . 1)) (SEMICOLON . (formal_package_actual_part . 
1)) (LEFT_PAREN .  803))
+      ((default . error) (SEMICOLON .  802))
       ((default . error) (IDENTIFIER . (formal_subprogram_declaration . 3)) 
(WITH . (formal_subprogram_declaration . 3)) (USE . 
(formal_subprogram_declaration . 3)) (TYPE . (formal_subprogram_declaration . 
3)) (PRAGMA . (formal_subprogram_declaration . 3)) (FUNCTION . 
(formal_subprogram_declaration . 3)) (PROCEDURE . 
(formal_subprogram_declaration . 3)) (PACKAGE . (formal_subprogram_declaration 
. 3)))
       ((default . error) (IDENTIFIER . (formal_subprogram_declaration . 0)) 
(WITH . (formal_subprogram_declaration . 0)) (USE . 
(formal_subprogram_declaration . 0)) (TYPE . (formal_subprogram_declaration . 
0)) (PRAGMA . (formal_subprogram_declaration . 0)) (FUNCTION . 
(formal_subprogram_declaration . 0)) (PROCEDURE . 
(formal_subprogram_declaration . 0)) (PACKAGE . (formal_subprogram_declaration 
. 0)))
-      ((default . error) (SEMICOLON .  785))
+      ((default . error) (SEMICOLON .  801))
       ((default . error) (SEMICOLON . (formal_type_definition . 0)) (WITH . 
(formal_type_definition . 0)))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (AND .  783) (WITH . (interface_type_definition . 5)) 
(SEMICOLON . (interface_type_definition . 5)))
+      ((default . error) (AND .  799) (WITH . (interface_type_definition . 5)) 
(SEMICOLON . (interface_type_definition . 5)))
       ((default . error) (RECORD . (abstract_tagged_limited_opt . 3)) (NULL . 
(abstract_tagged_limited_opt . 3)) (PRIVATE . (abstract_tagged_limited_opt . 
3)))
-      ((default . error) (SEMICOLON .  782))
-      ((default . error) (AND .  781) (WITH . (interface_type_definition . 7)) 
(SEMICOLON . (interface_type_definition . 7)))
+      ((default . error) (SEMICOLON .  798))
+      ((default . error) (AND .  797) (WITH . (interface_type_definition . 7)) 
(SEMICOLON . (interface_type_definition . 7)))
       ((default . error) (SEMICOLON . (formal_type_definition . 3)) (WITH . 
(formal_type_definition . 3)))
-      ((default . error) (AND .  780) (WITH . (interface_type_definition . 6)) 
(SEMICOLON . (interface_type_definition . 6)))
+      ((default . error) (AND .  796) (WITH . (interface_type_definition . 6)) 
(SEMICOLON . (interface_type_definition . 6)))
       ((default . error) (SEMICOLON . (formal_type_definition . 4)) (WITH . 
(formal_type_definition . 4)))
-      ((default . error) (AND .  779) (WITH . (interface_type_definition . 4)) 
(SEMICOLON . (interface_type_definition . 4)))
-      ((default . error) (RIGHT_PAREN .  778))
+      ((default . error) (AND .  795) (WITH . (interface_type_definition . 4)) 
(SEMICOLON . (interface_type_definition . 4)))
+      ((default . error) (RIGHT_PAREN .  794))
       ((default . error) (SEMICOLON . (formal_type_definition . 5)) (WITH . 
(formal_type_definition . 5)))
-      ((default . error) (SEMICOLON . (formal_type_definition . 6)) (WITH . 
(formal_type_definition . 6)) (DIGITS .  777))
-      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  769) 
(NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (SEMICOLON . (formal_type_definition . 6)) (WITH . 
(formal_type_definition . 6)) (DIGITS .  793))
+      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  734) 
(NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
       ((default . error) (NEW . (abstract_limited_synchronized_opt . 1)))
       ((default . error) (NEW . (abstract_limited_synchronized_opt . 2)))
-      ((default . error) (LIMITED .  768) (RECORD . 
(abstract_tagged_limited_opt . 2)) (NULL . (abstract_tagged_limited_opt . 2)) 
(PRIVATE . (abstract_tagged_limited_opt . 2)))
+      ((default . error) (LIMITED .  787) (RECORD . 
(abstract_tagged_limited_opt . 2)) (NULL . (abstract_tagged_limited_opt . 2)) 
(PRIVATE . (abstract_tagged_limited_opt . 2)))
       ((default . error) (RIGHT_PAREN . (discriminant_specification_list . 1)) 
(SEMICOLON . (discriminant_specification_list . 1)))
-      ((default . error) (NULL .  767))
+      ((default . error) (NULL .  786))
       ((default . error) (SEMICOLON . (null_exclusion_opt_name_type . 0)) 
(RIGHT_PAREN . (null_exclusion_opt_name_type . 0)) (COLON_EQUAL . 
(null_exclusion_opt_name_type . 0)) (DOT . (name . 0)) (LEFT_PAREN . (name . 
0)) (TICK . (name . 0)))
-      ((default . error) (SEMICOLON . (discriminant_specification_opt . 4)) 
(RIGHT_PAREN . (discriminant_specification_opt . 4)) (COLON_EQUAL .  766))
+      ((default . error) (SEMICOLON . (discriminant_specification_opt . 4)) 
(RIGHT_PAREN . (discriminant_specification_opt . 4)) (COLON_EQUAL .  785))
       ((default . error) (DOT .  90) (TICK .  91) (LEFT_PAREN .  107))
-      ((default . error) (SEMICOLON . (discriminant_specification_opt . 2)) 
(RIGHT_PAREN . (discriminant_specification_opt . 2)) (COLON_EQUAL .  765))
+      ((default . error) (SEMICOLON . (discriminant_specification_opt . 2)) 
(RIGHT_PAREN . (discriminant_specification_opt . 2)) (COLON_EQUAL .  784))
       ((default . error) (SEMICOLON . (null_exclusion_opt_name_type . 1)) 
(RIGHT_PAREN . (null_exclusion_opt_name_type . 1)) (COLON_EQUAL . 
(null_exclusion_opt_name_type . 1)) (DOT . (name . 3)) (LEFT_PAREN . (name . 
3)) (TICK . (name . 3)))
       ((default . error) ($EOI . (generic_renaming_declaration . 1)) (LIMITED 
. (generic_renaming_declaration . 1)) (SEPARATE . (generic_renaming_declaration 
. 1)) (WITH . (generic_renaming_declaration . 1)) (END . 
(generic_renaming_declaration . 1)) (PRIVATE . (generic_renaming_declaration . 
1)) (IDENTIFIER . (generic_renaming_declaration . 1)) (USE . 
(generic_renaming_declaration . 1)) (TYPE . (generic_renaming_declaration . 1)) 
(TASK . (generic_renaming_declaration . 1)) (SUBTYPE . (g [...]
       ((default . error) ($EOI . (generic_renaming_declaration . 0)) (LIMITED 
. (generic_renaming_declaration . 0)) (SEPARATE . (generic_renaming_declaration 
. 0)) (WITH . (generic_renaming_declaration . 0)) (END . 
(generic_renaming_declaration . 0)) (PRIVATE . (generic_renaming_declaration . 
0)) (IDENTIFIER . (generic_renaming_declaration . 0)) (USE . 
(generic_renaming_declaration . 0)) (TYPE . (generic_renaming_declaration . 0)) 
(TASK . (generic_renaming_declaration . 0)) (SUBTYPE . (g [...]
       ((default . error) ($EOI . (generic_renaming_declaration . 2)) (LIMITED 
. (generic_renaming_declaration . 2)) (SEPARATE . (generic_renaming_declaration 
. 2)) (WITH . (generic_renaming_declaration . 2)) (END . 
(generic_renaming_declaration . 2)) (PRIVATE . (generic_renaming_declaration . 
2)) (IDENTIFIER . (generic_renaming_declaration . 2)) (USE . 
(generic_renaming_declaration . 2)) (TYPE . (generic_renaming_declaration . 2)) 
(TASK . (generic_renaming_declaration . 2)) (SUBTYPE . (g [...]
       ((default . error) (END . (generic_instantiation . 0)) (BEGIN . 
(generic_instantiation . 0)) (ENTRY . (generic_instantiation . 0)) (FOR . 
(generic_instantiation . 0)) (PROTECTED . (generic_instantiation . 0)) (SUBTYPE 
. (generic_instantiation . 0)) (TASK . (generic_instantiation . 0)) (TYPE . 
(generic_instantiation . 0)) (IDENTIFIER . (generic_instantiation . 0)) ($EOI . 
(generic_instantiation . 0)) (FUNCTION . (generic_instantiation . 0)) (GENERIC 
. (generic_instantiation . 0)) (L [...]
-      ((default . error) (PLUS .  151) (MINUS .  150) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ABS .  144) (NOT .  147) 
(NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (BAR .  580) (LOOP . (relation . 2)) (DO . (relation 
. 2)) (XOR . (relation . 2)) (OR . (relation . 2)) (AND . (relation . 2)) (IS . 
(relation . 2)) (WITH . (relation . 2)) (SEMICOLON . (relation . 2)) (THEN . 
(relation . 2)) (RANGE . (relation . 2)) (DIGITS . (relation . 2)) (RIGHT_PAREN 
. (relation . 2)) (EQUAL_GREATER . (relation . 2)) (ELSE . (relation . 2)) 
(ELSIF . (relation . 2)) (COMMA . (relation . 2)))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  154) (MINUS .  153) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ABS .  144) (NOT .  150) 
(NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (BAR .  576) (LOOP . (relation . 2)) (DO . (relation 
. 2)) (XOR . (relation . 2)) (OR . (relation . 2)) (AND . (relation . 2)) (IS . 
(relation . 2)) (WITH . (relation . 2)) (SEMICOLON . (relation . 2)) (THEN . 
(relation . 2)) (RANGE . (relation . 2)) (DIGITS . (relation . 2)) (RIGHT_PAREN 
. (relation . 2)) (EQUAL_GREATER . (relation . 2)) (ELSE . (relation . 2)) 
(ELSIF . (relation . 2)) (COMMA . (relation . 2)))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (AND . (choice_relation_and_then_list . 0)) 
(EQUAL_GREATER . (choice_relation_and_then_list . 0)) (BAR . 
(choice_relation_and_then_list . 0)))
       ((default . error) (OR . (choice_relation_or_else_list . 0)) 
(EQUAL_GREATER . (choice_relation_or_else_list . 0)) (BAR . 
(choice_relation_or_else_list . 0)))
       ((default . error) (OR . (choice_relation_or_else_list . 1)) 
(EQUAL_GREATER . (choice_relation_or_else_list . 1)) (BAR . 
(choice_relation_or_else_list . 1)))
       ((default . error) (AND . (choice_relation_and_then_list . 1)) 
(EQUAL_GREATER . (choice_relation_and_then_list . 1)) (BAR . 
(choice_relation_and_then_list . 1)))
-      ((default . error) (LEFT_PAREN .  216) (RECORD .  759))
-      ((default . error) (AT .  758))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (DOT .  90) (TICK .  91) (IS . ( 756 
(aspect_specification_opt . 0))) (WITH .  109) (LEFT_PAREN .  107))
-      ((default . error) (IS .  755))
-      ((default . error) (WITH . (discriminant_part_opt . 0)) (IS . 
(discriminant_part_opt . 0)) (LEFT_PAREN .  203))
-      ((default . error) (IS . ( 753 (aspect_specification_opt . 0))) (WITH .  
109))
-      ((default . error) (NOT .  750) (IDENTIFIER .  48) (CHARACTER_LITERAL .  
50) (STRING_LITERAL .  49))
-      ((default . error) (SEMICOLON .  749) (IS .  748))
-      ((default . error) (WITH . (discriminant_part_opt . 0)) (IS . 
(discriminant_part_opt . 0)) (SEMICOLON . (discriminant_part_opt . 0)) 
(LEFT_PAREN .  203))
-      ((default . error) (IS . ( 746 (aspect_specification_opt . 0))) (WITH .  
109))
-      ((default . error) (SEMICOLON .  745) (IS .  744))
-      ((default . error) (RENAMES .  743))
-      ((default . error) (RENAMES .  742))
-      ((default . error) (ACCESS .  235) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49))
-      ((default . error) (END .  740))
-      ((default . error) (DOT .  90) (TICK .  91) (SEMICOLON . 
(package_specification . 1)) (LEFT_PAREN .  107))
-      ((default . error) (COLON_EQUAL .  739))
-      ((default . error) (SEMICOLON .  738))
-      ((default . error) (NOT . (constant_opt . 0)) (IDENTIFIER . 
(constant_opt . 0)) (STRING_LITERAL . (constant_opt . 0)) (CHARACTER_LITERAL . 
(constant_opt . 0)) (ACCESS . (constant_opt . 0)) (ARRAY . (constant_opt . 0)) 
(CONSTANT .  736))
-      ((default . error) (SEPARATE .  735) (ABSTRACT .  734))
-      ((default . error) (NULL .  733))
-      ((default . error) (LEFT_PAREN .  731))
-      ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON . 
(parameter_profile_opt . 0)) (LEFT_PAREN .  729))
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt  [...]
+      ((default . error) (LEFT_PAREN .  148) (RECORD .  778))
+      ((default . error) (AT .  777))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (DOT .  90) (TICK .  91) (IS . ( 775 
(aspect_specification_opt . 0))) (WITH .  109) (LEFT_PAREN .  107))
+      ((default . error) (IS .  774))
+      ((default . error) (WITH . (discriminant_part_opt . 0)) (IS . 
(discriminant_part_opt . 0)) (LEFT_PAREN .  211))
+      ((default . error) (IS . ( 772 (aspect_specification_opt . 0))) (WITH .  
109))
+      ((default . error) (NOT .  729) (IDENTIFIER .  48) (CHARACTER_LITERAL .  
50) (STRING_LITERAL .  49))
+      ((default . error) (SEMICOLON .  770) (IS .  769))
+      ((default . error) (WITH . (discriminant_part_opt . 0)) (IS . 
(discriminant_part_opt . 0)) (SEMICOLON . (discriminant_part_opt . 0)) 
(LEFT_PAREN .  211))
+      ((default . error) (IS . ( 767 (aspect_specification_opt . 0))) (WITH .  
109))
+      ((default . error) (SEMICOLON .  766) (IS .  765))
+      ((default . error) (RENAMES .  764))
+      ((default . error) (RENAMES .  763))
+      ((default . error) (ACCESS .  242) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49))
+      ((default . error) (END .  761))
+      ((default . error) (SEMICOLON . (package_specification . 1)))
+      ((default . error) (COLON_EQUAL .  760))
+      ((default . error) (SEMICOLON .  759))
+      ((default . error) (NOT . (constant_opt . 0)) (IDENTIFIER . 
(constant_opt . 0)) (STRING_LITERAL . (constant_opt . 0)) (CHARACTER_LITERAL . 
(constant_opt . 0)) (ACCESS . (constant_opt . 0)) (ARRAY . (constant_opt . 0)) 
(CONSTANT .  757))
+      ((default . error) (SEPARATE .  756) (ABSTRACT .  755))
+      ((default . error) (NULL .  754))
+      ((default . error) (LEFT_PAREN .  752))
+      ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON . 
(parameter_profile_opt . 0)) (LEFT_PAREN .  750))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt  [...]
       ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (OR . (relation_and_then_list . 0)) (XOR . 
(relation_and_then_list . 0)) (LOOP . (relation_and_then_list . 0)) (DO . 
(relation_and_then_list . 0)) (AND . (relation_and_then_list . 0)) (IS . 
(relation_and_then_list . 0)) (WITH . (relation_and_then_list . 0)) (SEMICOLON 
. (relation_and_then_list . 0)) (THEN . (relation_and_then_list . 0)) (RANGE . 
(relation_and_then_list . 0)) (COMMA . (relation_and_then_list . 0)) 
(RIGHT_PAREN . (relation_and_then_list . 0)) (DIGI [...]
       ((default . error) (AND . (relation_or_else_list . 0)) (XOR . 
(relation_or_else_list . 0)) (LOOP . (relation_or_else_list . 0)) (DO . 
(relation_or_else_list . 0)) (OR . (relation_or_else_list . 0)) (IS . 
(relation_or_else_list . 0)) (WITH . (relation_or_else_list . 0)) (SEMICOLON . 
(relation_or_else_list . 0)) (THEN . (relation_or_else_list . 0)) (RANGE . 
(relation_or_else_list . 0)) (COMMA . (relation_or_else_list . 0)) (RIGHT_PAREN 
. (relation_or_else_list . 0)) (DIGITS . (relati [...]
       ((default . error) (AND . (relation_or_else_list . 1)) (XOR . 
(relation_or_else_list . 1)) (LOOP . (relation_or_else_list . 1)) (DO . 
(relation_or_else_list . 1)) (OR . (relation_or_else_list . 1)) (IS . 
(relation_or_else_list . 1)) (WITH . (relation_or_else_list . 1)) (SEMICOLON . 
(relation_or_else_list . 1)) (THEN . (relation_or_else_list . 1)) (RANGE . 
(relation_or_else_list . 1)) (COMMA . (relation_or_else_list . 1)) (RIGHT_PAREN 
. (relation_or_else_list . 1)) (DIGITS . (relati [...]
       ((default . error) (OR . (relation_and_then_list . 1)) (XOR . 
(relation_and_then_list . 1)) (LOOP . (relation_and_then_list . 1)) (DO . 
(relation_and_then_list . 1)) (AND . (relation_and_then_list . 1)) (IS . 
(relation_and_then_list . 1)) (WITH . (relation_and_then_list . 1)) (SEMICOLON 
. (relation_and_then_list . 1)) (THEN . (relation_and_then_list . 1)) (RANGE . 
(relation_and_then_list . 1)) (COMMA . (relation_and_then_list . 1)) 
(RIGHT_PAREN . (relation_and_then_list . 1)) (DIGI [...]
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (LOOP . (raise_expression . 1)) (DO . 
(raise_expression . 1)) (XOR . (raise_expression . 1)) (OR . (raise_expression 
. 1)) (AND . (raise_expression . 1)) (IS . (raise_expression . 1)) (SEMICOLON . 
(raise_expression . 1)) (WITH . (raise_expression . 1)) (THEN . 
(raise_expression . 1)) (RANGE . (raise_expression . 1)) (RIGHT_PAREN . 
(raise_expression . 1)) (COMMA . (raise_expression . 1)) (DIGITS . 
(raise_expression . 1)) (EQUAL_GREATER . (raise_expression . 1)) (E [...]
-      ((default . error) (OF .  724) (COLON .  725) (IN .  723))
-      ((default . error) (EQUAL_GREATER .  722))
+      ((default . error) (LOOP . (aggregate . 4)) (DO . (aggregate . 4)) (OF . 
(aggregate . 4)) (ACCEPT . (aggregate . 4)) (ABORT . (aggregate . 4)) (BEGIN . 
(aggregate . 4)) (CASE . (aggregate . 4)) (DECLARE . (aggregate . 4)) (DELAY . 
(aggregate . 4)) (EXIT . (aggregate . 4)) (FOR . (aggregate . 4)) (GOTO . 
(aggregate . 4)) (IF . (aggregate . 4)) (NULL . (aggregate . 4)) (PRAGMA . 
(aggregate . 4)) (RAISE . (aggregate . 4)) (REQUEUE . (aggregate . 4)) (SELECT 
. (aggregate . 4)) (WHILE . [...]
+      ((default . error) (PLUS . (primary . 1)) (MINUS . (primary . 1)) 
(AMPERSAND . (primary . 1)) (DOT_DOT . (primary . 1)) (IN . (primary . 1)) (NOT 
. (primary . 1)) (EQUAL . (primary . 1)) (GREATER . (primary . 1)) 
(GREATER_EQUAL . (primary . 1)) (LESS . (primary . 1)) (LESS_EQUAL . (primary . 
1)) (SLASH_EQUAL . (primary . 1)) (RIGHT_PAREN . (primary . 1)) (COMMA . 
(primary . 1)) (MOD . (primary . 1)) (REM . (primary . 1)) (SLASH . (primary . 
1)) (STAR . (primary . 1)) (STAR_STAR . ( [...]
+      ((default . error) (COMMA .  273) (RIGHT_PAREN .  745))
+      ((default . error) (ELSE .  741) (RIGHT_PAREN . (if_expression . 3)) 
(COMMA . (if_expression . 3)) (ELSIF .  742))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (REVERSE .  735) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (PLUS .  154) (MINUS .  153) 
(ABS .  144) (NOT .  734) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(LEFT_PAREN .  148))
+      ((default . error) (REVERSE .  732) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (NOT .  729) (IDENTIFIER .  48) (CHARACTER_LITERAL .  
50) (STRING_LITERAL .  49))
+      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (OTHERS .  182) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (PLUS .  154) (MINUS .  153) 
(ABS .  144) (NOT .  181) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(LEFT_PAREN .  148))
+      ((default . error) (RIGHT_PAREN . (case_expression_alternative_list . 
0)) (COMMA . (case_expression_alternative_list . 0)))
+      ((default . error) (RIGHT_PAREN . (case_expression . 0)) (COMMA . ( 727 
(case_expression . 0))))
       ((default . error) (IS . (aspect_specification_opt . 0)) (WITH .  109))
       ((default . error) (IS . (aspect_specification_opt . 0)) (WITH .  109))
       ((default . error) (IS .  134))
-      ((default . error) (IDENTIFIER .  719))
+      ((default . error) (IDENTIFIER .  724))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt  [...]
-      ((default . error) (IS . (expression_opt . 0)) (RAISE .  149) (PLUS .  
151) (MINUS .  150) (ABS .  144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  
148) (NEW .  146) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  145))
-      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  301) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  298) (IDENTIFIER .  304) (TYPE 
.  303) (GENERIC .  2) (PROTECTED .  300) (TASK .  302) (PACKAGE .  299))
-      ((default . error) (UNTIL .  713) (RAISE .  149) (PLUS .  151) (MINUS .  
150) (ABS .  144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  
146) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  145))
-      ((default . error) (WHEN . (identifier_opt . 0)) (SEMICOLON . 
(identifier_opt . 0)) (IDENTIFIER .  711))
-      ((default . error) (LOOP . (iterator_specification_opt . 0)) (IDENTIFIER 
.  620))
-      ((default . error) (IDENTIFIER .  708))
-      ((default . error) (THEN . (expression_opt . 0)) (RAISE .  149) (PLUS .  
151) (MINUS .  150) (ABS .  144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  
148) (NEW .  146) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  145))
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . 
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA . 
(label_opt . 0)) (RAISE . (labe [...]
-      ((default . error) (SEMICOLON .  705))
-      ((default . error) (SEMICOLON .  703) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt  [...]
+      ((default . error) (IS . (expression_opt . 0)) (RAISE .  152) (PLUS .  
154) (MINUS .  153) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  
151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  148))
+      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  302) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  299) (IDENTIFIER .  305) (TYPE 
.  304) (GENERIC .  2) (PROTECTED .  301) (TASK .  303) (PACKAGE .  300))
+      ((default . error) (UNTIL .  718) (RAISE .  152) (PLUS .  154) (MINUS .  
153) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  
149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  148))
+      ((default . error) (WHEN . (identifier_opt . 0)) (SEMICOLON . 
(identifier_opt . 0)) (IDENTIFIER .  716))
+      ((default . error) (LOOP . (iterator_specification_opt . 0)) (IDENTIFIER 
.  408))
+      ((default . error) (IDENTIFIER .  713))
+      ((default . error) (THEN . (expression_opt . 0)) (RAISE .  152) (PLUS .  
154) (MINUS .  153) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  
151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  148))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . 
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA . 
(label_opt . 0)) (RAISE . (labe [...]
+      ((default . error) (SEMICOLON .  710))
+      ((default . error) (SEMICOLON .  708) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (SEMICOLON .  697) (DO . 
(extended_return_object_declaration_opt . 0)) (RAISE .  149) (PLUS .  151) 
(MINUS .  150) (ABS .  144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) 
(NEW .  146) (IDENTIFIER .  698) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  
49) (LEFT_PAREN .  145))
-      ((default . error) (ELSE . (select_alternative_list_opt . 0)) (END . 
(select_alternative_list_opt . 0)) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (DELAY .  630) (WHEN .  686) (TERMINATE .  685) (ACCEPT 
.  625))
-      ((default . error) (LOOP . (expression_opt . 0)) (RAISE .  149) (PLUS .  
151) (MINUS .  150) (ABS .  144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  
148) (NEW .  146) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  145))
-      ((default . error) (IDENTIFIER .  683))
-      ((default . error) (COLON .  682))
+      ((default . error) (SEMICOLON .  702) (DO . 
(extended_return_object_declaration_opt . 0)) (RAISE .  152) (PLUS .  154) 
(MINUS .  153) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) 
(NEW .  149) (IDENTIFIER .  703) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  
49) (LEFT_PAREN .  148))
+      ((default . error) (ELSE . (select_alternative_list_opt . 0)) (END . 
(select_alternative_list_opt . 0)) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (DELAY .  635) (WHEN .  691) (TERMINATE .  690) (ACCEPT 
.  630))
+      ((default . error) (LOOP . (expression_opt . 0)) (RAISE .  152) (PLUS .  
154) (MINUS .  153) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  
151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  148))
+      ((default . error) (IDENTIFIER .  688))
+      ((default . error) (COLON .  687))
       ((default . error) (OR . (compound_statement . 5)) (THEN . 
(compound_statement . 5)) (WHEN . (compound_statement . 5)) (EXCEPTION . 
(compound_statement . 5)) (END . (compound_statement . 5)) (ACCEPT . 
(compound_statement . 5)) (ABORT . (compound_statement . 5)) (BEGIN . 
(compound_statement . 5)) (CASE . (compound_statement . 5)) (DECLARE . 
(compound_statement . 5)) (DELAY . (compound_statement . 5)) (EXIT . 
(compound_statement . 5)) (FOR . (compound_statement . 5)) (GOTO . (compoun 
[...]
       ((default . error) (OR . (simple_statement . 1)) (THEN . 
(simple_statement . 1)) (WHEN . (simple_statement . 1)) (EXCEPTION . 
(simple_statement . 1)) (END . (simple_statement . 1)) (ACCEPT . 
(simple_statement . 1)) (ABORT . (simple_statement . 1)) (BEGIN . 
(simple_statement . 1)) (CASE . (simple_statement . 1)) (DECLARE . 
(simple_statement . 1)) (DELAY . (simple_statement . 1)) (EXIT . 
(simple_statement . 1)) (FOR . (simple_statement . 1)) (GOTO . 
(simple_statement . 1)) (IF . (sim [...]
       ((default . error) (OR . (select_statement . 3)) (THEN . 
(select_statement . 3)) (WHEN . (select_statement . 3)) (EXCEPTION . 
(select_statement . 3)) (END . (select_statement . 3)) (ACCEPT . 
(select_statement . 3)) (ABORT . (select_statement . 3)) (BEGIN . 
(select_statement . 3)) (CASE . (select_statement . 3)) (DECLARE . 
(select_statement . 3)) (DELAY . (select_statement . 3)) (EXIT . 
(select_statement . 3)) (FOR . (select_statement . 3)) (GOTO . 
(select_statement . 3)) (IF . (sel [...]
@@ -2457,186 +2472,183 @@
       ((default . error) (OR . (simple_statement . 7)) (THEN . 
(simple_statement . 7)) (WHEN . (simple_statement . 7)) (EXCEPTION . 
(simple_statement . 7)) (END . (simple_statement . 7)) (ACCEPT . 
(simple_statement . 7)) (ABORT . (simple_statement . 7)) (BEGIN . 
(simple_statement . 7)) (CASE . (simple_statement . 7)) (DECLARE . 
(simple_statement . 7)) (DELAY . (simple_statement . 7)) (EXIT . 
(simple_statement . 7)) (FOR . (simple_statement . 7)) (GOTO . 
(simple_statement . 7)) (IF . (sim [...]
       ((default . error) (OR . (simple_statement . 2)) (THEN . 
(simple_statement . 2)) (WHEN . (simple_statement . 2)) (EXCEPTION . 
(simple_statement . 2)) (END . (simple_statement . 2)) (ACCEPT . 
(simple_statement . 2)) (ABORT . (simple_statement . 2)) (BEGIN . 
(simple_statement . 2)) (CASE . (simple_statement . 2)) (DECLARE . 
(simple_statement . 2)) (DELAY . (simple_statement . 2)) (EXIT . 
(simple_statement . 2)) (FOR . (simple_statement . 2)) (GOTO . 
(simple_statement . 2)) (IF . (sim [...]
       ((default . error) (OR . (compound_statement . 4)) (THEN . 
(compound_statement . 4)) (WHEN . (compound_statement . 4)) (EXCEPTION . 
(compound_statement . 4)) (END . (compound_statement . 4)) (ACCEPT . 
(compound_statement . 4)) (ABORT . (compound_statement . 4)) (BEGIN . 
(compound_statement . 4)) (CASE . (compound_statement . 4)) (DECLARE . 
(compound_statement . 4)) (DELAY . (compound_statement . 4)) (EXIT . 
(compound_statement . 4)) (FOR . (compound_statement . 4)) (GOTO . (compoun 
[...]
-      ((default . error) (END .  681))
+      ((default . error) (END .  686))
       ((default . error) (OR . (compound_statement . 0)) (THEN . 
(compound_statement . 0)) (WHEN . (compound_statement . 0)) (EXCEPTION . 
(compound_statement . 0)) (END . (compound_statement . 0)) (ACCEPT . 
(compound_statement . 0)) (ABORT . (compound_statement . 0)) (BEGIN . 
(compound_statement . 0)) (CASE . (compound_statement . 0)) (DECLARE . 
(compound_statement . 0)) (DELAY . (compound_statement . 0)) (EXIT . 
(compound_statement . 0)) (FOR . (compound_statement . 0)) (GOTO . (compoun 
[...]
-      ((default . error) (LOOP .  680))
-      ((default . error) (NULL .  636) (GOTO .  633) (ABORT .  626) (ACCEPT .  
625) (DECLARE .  629) (BEGIN .  627) (LOOP .  635) (CASE .  628) (IF .  634) 
(PRAGMA .  7) (RAISE .  637) (DELAY .  630) (REQUEUE .  638) (RETURN .  639) 
(EXIT .  631) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  
49) (WHILE .  641) (FOR .  632) (SELECT .  640))
+      ((default . error) (LOOP .  685))
+      ((default . error) (NULL .  641) (GOTO .  638) (ABORT .  631) (ACCEPT .  
630) (DECLARE .  634) (BEGIN .  632) (LOOP .  640) (CASE .  633) (IF .  639) 
(PRAGMA .  7) (RAISE .  642) (DELAY .  635) (REQUEUE .  643) (RETURN .  644) 
(EXIT .  636) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  
49) (WHILE .  646) (FOR .  637) (SELECT .  645))
       ((default . error) (OR . (compound_statement . 2)) (THEN . 
(compound_statement . 2)) (WHEN . (compound_statement . 2)) (EXCEPTION . 
(compound_statement . 2)) (END . (compound_statement . 2)) (ACCEPT . 
(compound_statement . 2)) (ABORT . (compound_statement . 2)) (BEGIN . 
(compound_statement . 2)) (CASE . (compound_statement . 2)) (DECLARE . 
(compound_statement . 2)) (DELAY . (compound_statement . 2)) (EXIT . 
(compound_statement . 2)) (FOR . (compound_statement . 2)) (GOTO . (compoun 
[...]
-      ((default . error) (DOT .  90) (SEMICOLON .  677) (TICK .  91) 
(COLON_EQUAL .  676) (LEFT_PAREN .  107))
+      ((default . error) (DOT .  90) (SEMICOLON .  682) (TICK .  91) 
(COLON_EQUAL .  681) (LEFT_PAREN .  107))
       ((default . error) (OR . (simple_statement . 10)) (THEN . 
(simple_statement . 10)) (WHEN . (simple_statement . 10)) (EXCEPTION . 
(simple_statement . 10)) (END . (simple_statement . 10)) (ACCEPT . 
(simple_statement . 10)) (ABORT . (simple_statement . 10)) (BEGIN . 
(simple_statement . 10)) (CASE . (simple_statement . 10)) (DECLARE . 
(simple_statement . 10)) (DELAY . (simple_statement . 10)) (EXIT . 
(simple_statement . 10)) (FOR . (simple_statement . 10)) (GOTO . 
(simple_statement . 1 [...]
       ((default . error) (OR . (simple_statement . 4)) (THEN . 
(simple_statement . 4)) (WHEN . (simple_statement . 4)) (EXCEPTION . 
(simple_statement . 4)) (END . (simple_statement . 4)) (ACCEPT . 
(simple_statement . 4)) (ABORT . (simple_statement . 4)) (BEGIN . 
(simple_statement . 4)) (CASE . (simple_statement . 4)) (DECLARE . 
(simple_statement . 4)) (DELAY . (simple_statement . 4)) (EXIT . 
(simple_statement . 4)) (FOR . (simple_statement . 4)) (GOTO . 
(simple_statement . 4)) (IF . (sim [...]
       ((default . error) (OR . (simple_statement . 9)) (THEN . 
(simple_statement . 9)) (WHEN . (simple_statement . 9)) (EXCEPTION . 
(simple_statement . 9)) (END . (simple_statement . 9)) (ACCEPT . 
(simple_statement . 9)) (ABORT . (simple_statement . 9)) (BEGIN . 
(simple_statement . 9)) (CASE . (simple_statement . 9)) (DECLARE . 
(simple_statement . 9)) (DELAY . (simple_statement . 9)) (EXIT . 
(simple_statement . 9)) (FOR . (simple_statement . 9)) (GOTO . 
(simple_statement . 9)) (IF . (sim [...]
       ((default . error) (OR . (simple_statement . 6)) (THEN . 
(simple_statement . 6)) (WHEN . (simple_statement . 6)) (EXCEPTION . 
(simple_statement . 6)) (END . (simple_statement . 6)) (ACCEPT . 
(simple_statement . 6)) (ABORT . (simple_statement . 6)) (BEGIN . 
(simple_statement . 6)) (CASE . (simple_statement . 6)) (DECLARE . 
(simple_statement . 6)) (DELAY . (simple_statement . 6)) (EXIT . 
(simple_statement . 6)) (FOR . (simple_statement . 6)) (GOTO . 
(simple_statement . 6)) (IF . (sim [...]
       ((default . error) (OR . (select_statement . 0)) (THEN . 
(select_statement . 0)) (WHEN . (select_statement . 0)) (EXCEPTION . 
(select_statement . 0)) (END . (select_statement . 0)) (ACCEPT . 
(select_statement . 0)) (ABORT . (select_statement . 0)) (BEGIN . 
(select_statement . 0)) (CASE . (select_statement . 0)) (DECLARE . 
(select_statement . 0)) (DELAY . (select_statement . 0)) (EXIT . 
(select_statement . 0)) (FOR . (select_statement . 0)) (GOTO . 
(select_statement . 0)) (IF . (sel [...]
       ((default . error) (OR . (compound_statement . 6)) (THEN . 
(compound_statement . 6)) (WHEN . (compound_statement . 6)) (EXCEPTION . 
(compound_statement . 6)) (END . (compound_statement . 6)) (ACCEPT . 
(compound_statement . 6)) (ABORT . (compound_statement . 6)) (BEGIN . 
(compound_statement . 6)) (CASE . (compound_statement . 6)) (DECLARE . 
(compound_statement . 6)) (DELAY . (compound_statement . 6)) (EXIT . 
(compound_statement . 6)) (FOR . (compound_statement . 6)) (GOTO . (compoun 
[...]
-      ((default . error) (WHEN . (sequence_of_statements_opt . 1)) (THEN . 
(sequence_of_statements_opt . 1)) (OR . (sequence_of_statements_opt . 1)) 
(ELSIF . (sequence_of_statements_opt . 1)) (ELSE . (sequence_of_statements_opt 
. 1)) (END . (sequence_of_statements_opt . 1)) (EXCEPTION . 
(sequence_of_statements_opt . 1)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_op [...]
-      ((default . error) (END . (handled_sequence_of_statements . 1)) 
(EXCEPTION .  674))
+      ((default . error) (WHEN . (sequence_of_statements_opt . 1)) (THEN . 
(sequence_of_statements_opt . 1)) (OR . (sequence_of_statements_opt . 1)) 
(ELSIF . (sequence_of_statements_opt . 1)) (ELSE . (sequence_of_statements_opt 
. 1)) (END . (sequence_of_statements_opt . 1)) (EXCEPTION . 
(sequence_of_statements_opt . 1)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_op [...]
+      ((default . error) (END . (handled_sequence_of_statements . 1)) 
(EXCEPTION .  679))
       ((default . error) (OR . (simple_statement . 5)) (THEN . 
(simple_statement . 5)) (WHEN . (simple_statement . 5)) (EXCEPTION . 
(simple_statement . 5)) (END . (simple_statement . 5)) (ACCEPT . 
(simple_statement . 5)) (ABORT . (simple_statement . 5)) (BEGIN . 
(simple_statement . 5)) (CASE . (simple_statement . 5)) (DECLARE . 
(simple_statement . 5)) (DELAY . (simple_statement . 5)) (EXIT . 
(simple_statement . 5)) (FOR . (simple_statement . 5)) (GOTO . 
(simple_statement . 5)) (IF . (sim [...]
       ((default . error) (WHEN . (sequence_of_statements . 0)) (THEN . 
(sequence_of_statements . 0)) (OR . (sequence_of_statements . 0)) (ELSIF . 
(sequence_of_statements . 0)) (ELSE . (sequence_of_statements . 0)) (EXCEPTION 
. (sequence_of_statements . 0)) (END . (sequence_of_statements . 0)) (ACCEPT . 
(sequence_of_statements . 0)) (ABORT . (sequence_of_statements . 0)) (BEGIN . 
(sequence_of_statements . 0)) (CASE . (sequence_of_statements . 0)) (DECLARE . 
(sequence_of_statements . 0)) ( [...]
       ((default . error) (OR . (select_statement . 1)) (THEN . 
(select_statement . 1)) (WHEN . (select_statement . 1)) (EXCEPTION . 
(select_statement . 1)) (END . (select_statement . 1)) (ACCEPT . 
(select_statement . 1)) (ABORT . (select_statement . 1)) (BEGIN . 
(select_statement . 1)) (CASE . (select_statement . 1)) (DECLARE . 
(select_statement . 1)) (DELAY . (select_statement . 1)) (EXIT . 
(select_statement . 1)) (FOR . (select_statement . 1)) (GOTO . 
(select_statement . 1)) (IF . (sel [...]
-      ((default . error) (SEMICOLON .  673))
-      ((default . error) (SEMICOLON .  672))
+      ((default . error) (SEMICOLON .  678))
+      ((default . error) (SEMICOLON .  677))
       ((default . error) (IDENTIFIER . (generic_instantiation . 2)) (TYPE . 
(generic_instantiation . 2)) (TASK . (generic_instantiation . 2)) (SUBTYPE . 
(generic_instantiation . 2)) (PROTECTED . (generic_instantiation . 2)) (FOR . 
(generic_instantiation . 2)) (ENTRY . (generic_instantiation . 2)) (BEGIN . 
(generic_instantiation . 2)) (END . (generic_instantiation . 2)) (WITH . 
(generic_instantiation . 2)) (USE . (generic_instantiation . 2)) (SEPARATE . 
(generic_instantiation . 2)) (PROCE [...]
       ((default . error) (IDENTIFIER . (generic_instantiation . 1)) (TYPE . 
(generic_instantiation . 1)) (TASK . (generic_instantiation . 1)) (SUBTYPE . 
(generic_instantiation . 1)) (PROTECTED . (generic_instantiation . 1)) (FOR . 
(generic_instantiation . 1)) (ENTRY . (generic_instantiation . 1)) (BEGIN . 
(generic_instantiation . 1)) (END . (generic_instantiation . 1)) (WITH . 
(generic_instantiation . 1)) (USE . (generic_instantiation . 1)) (SEPARATE . 
(generic_instantiation . 1)) (PROCE [...]
-      ((default . error) (END . (exception_handler_list_opt . 0)) (WHEN .  
945))
+      ((default . error) (END . (exception_handler_list_opt . 0)) (WHEN .  
950))
       ((default . error) (OR . (sequence_of_statements . 1)) (THEN . 
(sequence_of_statements . 1)) (WHEN . (sequence_of_statements . 1)) 
(CHARACTER_LITERAL . (sequence_of_statements . 1)) (STRING_LITERAL . 
(sequence_of_statements . 1)) (IDENTIFIER . (sequence_of_statements . 1)) 
(LESS_LESS . (sequence_of_statements . 1)) (WHILE . (sequence_of_statements . 
1)) (SELECT . (sequence_of_statements . 1)) (RETURN . (sequence_of_statements . 
1)) (REQUEUE . (sequence_of_statements . 1)) (RAISE .  [...]
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (WHEN . (procedure_call_statement . 0)) (OR . 
(procedure_call_statement . 0)) (THEN . (procedure_call_statement . 0)) (ELSIF 
. (procedure_call_statement . 0)) (ELSE . (procedure_call_statement . 0)) 
(CHARACTER_LITERAL . (procedure_call_statement . 0)) (STRING_LITERAL . 
(procedure_call_statement . 0)) (IDENTIFIER . (procedure_call_statement . 0)) 
(LESS_LESS . (procedure_call_statement . 0)) (WHILE . (procedure_call_statement 
. 0)) (SELECT . (procedure_call_stateme [...]
       ((default . error) (OR . (statement . 1)) (THEN . (statement . 1)) (WHEN 
. (statement . 1)) (EXCEPTION . (statement . 1)) (END . (statement . 1)) 
(ACCEPT . (statement . 1)) (ABORT . (statement . 1)) (BEGIN . (statement . 1)) 
(CASE . (statement . 1)) (DECLARE . (statement . 1)) (DELAY . (statement . 1)) 
(EXIT . (statement . 1)) (FOR . (statement . 1)) (GOTO . (statement . 1)) (IF . 
(statement . 1)) (LOOP . (statement . 1)) (NULL . (statement . 1)) (PRAGMA . 
(statement . 1)) (RAISE . [...]
       ((default . error) (OR . (statement . 0)) (THEN . (statement . 0)) (WHEN 
. (statement . 0)) (EXCEPTION . (statement . 0)) (END . (statement . 0)) 
(ACCEPT . (statement . 0)) (ABORT . (statement . 0)) (BEGIN . (statement . 0)) 
(CASE . (statement . 0)) (DECLARE . (statement . 0)) (DELAY . (statement . 0)) 
(EXIT . (statement . 0)) (FOR . (statement . 0)) (GOTO . (statement . 0)) (IF . 
(statement . 0)) (LOOP . (statement . 0)) (NULL . (statement . 0)) (PRAGMA . 
(statement . 0)) (RAISE . [...]
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . 
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA . 
(label_opt . 0)) (RAISE . (labe [...]
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . 
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA . 
(label_opt . 0)) (RAISE . (labe [...]
       ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (CHARACTER_LITERAL . (label_opt . 2)) (STRING_LITERAL 
. (label_opt . 2)) (IDENTIFIER . (label_opt . 2)) (REQUEUE . (label_opt . 2)) 
(RAISE . (label_opt . 2)) (PRAGMA . (label_opt . 2)) (NULL . (label_opt . 2)) 
(GOTO . (label_opt . 2)) (EXIT . (label_opt . 2)) (DELAY . (label_opt . 2)) 
(ABORT . (label_opt . 2)) (WHILE . (label_opt . 2)) (SELECT . (label_opt . 2)) 
(RETURN . (label_opt . 2)) (LOOP . (label_opt . 2)) (IF . (label_opt . 2)) (FOR 
. (label_opt . 2)) (DE [...]
-      ((default . error) (GREATER_GREATER .  941))
+      ((default . error) (GREATER_GREATER .  946))
       ((default . error) (LOOP . (iteration_scheme . 0)))
-      ((default . error) (SEMICOLON .  940))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (OR . 
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0)) 
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) 
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) 
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) 
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) 
(EXIT . (label_opt . 0)) (GOTO . ( [...]
+      ((default . error) (SEMICOLON .  945))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (OR . 
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0)) 
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) 
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) 
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) 
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) 
(EXIT . (label_opt . 0)) (GOTO . ( [...]
       ((default . error) (ELSE . (select_alternative . 3)) (OR . 
(select_alternative . 3)) (END . (select_alternative . 3)))
-      ((default . error) (OR . (sequence_of_statements_opt . 0)) (END . 
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0)) 
(THEN . (sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_op [...]
-      ((default . error) (ELSE .  935) (OR .  936))
-      ((default . error) (DOT .  90) (SEMICOLON .  677) (TICK .  91) (OR . 
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0)) 
(THEN . (sequence_of_statements_opt . 0)) (LEFT_PAREN .  107) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (ABORT . (label_opt . [...]
-      ((default . error) (OR . (sequence_of_statements_opt . 0)) (ELSE . 
(sequence_of_statements_opt . 0)) (THEN . (sequence_of_statements_opt . 0)) 
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) 
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) 
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) 
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) 
(EXIT . (label_opt . 0)) (GOTO .  [...]
+      ((default . error) (OR . (sequence_of_statements_opt . 0)) (END . 
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0)) 
(THEN . (sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_op [...]
+      ((default . error) (ELSE .  940) (OR .  941))
+      ((default . error) (DOT .  90) (SEMICOLON .  682) (TICK .  91) (OR . 
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0)) 
(THEN . (sequence_of_statements_opt . 0)) (LEFT_PAREN .  107) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (ABORT . (label_opt . [...]
+      ((default . error) (OR . (sequence_of_statements_opt . 0)) (ELSE . 
(sequence_of_statements_opt . 0)) (THEN . (sequence_of_statements_opt . 0)) 
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) 
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) 
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) 
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) 
(EXIT . (label_opt . 0)) (GOTO .  [...]
       ((default . error) (ELSE . (select_alternative_list . 0)) (END . 
(select_alternative_list . 0)) (OR . (select_alternative_list . 0)))
-      ((default . error) (ELSE . (select_alternative_list_opt . 1)) (END . 
(select_alternative_list_opt . 1)) (OR .  932))
-      ((default . error) (ELSE .  930) (END .  931))
-      ((default . error) (THEN .  929))
+      ((default . error) (ELSE . (select_alternative_list_opt . 1)) (END . 
(select_alternative_list_opt . 1)) (OR .  937))
+      ((default . error) (ELSE .  935) (END .  936))
+      ((default . error) (THEN .  934))
       ((default . error) (WHEN . (simple_return_statement . 0)) (THEN . 
(simple_return_statement . 0)) (OR . (simple_return_statement . 0)) (ELSIF . 
(simple_return_statement . 0)) (ELSE . (simple_return_statement . 0)) 
(CHARACTER_LITERAL . (simple_return_statement . 0)) (STRING_LITERAL . 
(simple_return_statement . 0)) (IDENTIFIER . (simple_return_statement . 0)) 
(LESS_LESS . (simple_return_statement . 0)) (WHILE . (simple_return_statement . 
0)) (SELECT . (simple_return_statement . 0)) (R [...]
-      ((default . error) (COLON .  928) (STAR_STAR . (name . 0)) (STAR . (name 
. 0)) (SLASH . (name . 0)) (REM . (name . 0)) (MOD . (name . 0)) (SEMICOLON . 
(name . 0)) (SLASH_EQUAL . (name . 0)) (LESS_EQUAL . (name . 0)) (LESS . (name 
. 0)) (GREATER_EQUAL . (name . 0)) (GREATER . (name . 0)) (EQUAL . (name . 0)) 
(NOT . (name . 0)) (IN . (name . 0)) (AMPERSAND . (name . 0)) (MINUS . (name . 
0)) (PLUS . (name . 0)) (LEFT_PAREN . (name . 0)) (AND . (name . 0)) (OR . 
(name . 0)) (XOR . (nam [...]
-      ((default . error) (SEMICOLON .  927))
-      ((default . error) (DO . (extended_return_object_declaration_opt . 1)) 
(SEMICOLON .  926))
-      ((default . error) (DO .  925))
-      ((default . error) (WITH .  923) (DOT .  90) (TICK .  91) (SEMICOLON .  
924) (LEFT_PAREN .  107))
+      ((default . error) (COLON .  933) (STAR_STAR . (name . 0)) (STAR . (name 
. 0)) (SLASH . (name . 0)) (REM . (name . 0)) (MOD . (name . 0)) (SEMICOLON . 
(name . 0)) (SLASH_EQUAL . (name . 0)) (LESS_EQUAL . (name . 0)) (LESS . (name 
. 0)) (GREATER_EQUAL . (name . 0)) (GREATER . (name . 0)) (EQUAL . (name . 0)) 
(NOT . (name . 0)) (IN . (name . 0)) (AMPERSAND . (name . 0)) (MINUS . (name . 
0)) (PLUS . (name . 0)) (LEFT_PAREN . (name . 0)) (AND . (name . 0)) (OR . 
(name . 0)) (XOR . (nam [...]
+      ((default . error) (SEMICOLON .  932))
+      ((default . error) (DO . (extended_return_object_declaration_opt . 1)) 
(SEMICOLON .  931))
+      ((default . error) (DO .  930))
+      ((default . error) (WITH .  928) (DOT .  90) (TICK .  91) (SEMICOLON .  
929) (LEFT_PAREN .  107))
       ((default . error) (WHEN . (raise_statement . 0)) (THEN . 
(raise_statement . 0)) (OR . (raise_statement . 0)) (ELSIF . (raise_statement . 
0)) (ELSE . (raise_statement . 0)) (CHARACTER_LITERAL . (raise_statement . 0)) 
(STRING_LITERAL . (raise_statement . 0)) (IDENTIFIER . (raise_statement . 0)) 
(LESS_LESS . (raise_statement . 0)) (WHILE . (raise_statement . 0)) (SELECT . 
(raise_statement . 0)) (RETURN . (raise_statement . 0)) (REQUEUE . 
(raise_statement . 0)) (RAISE . (raise_stateme [...]
-      ((default . error) (WITH .  921) (DOT .  90) (TICK .  91) (SEMICOLON .  
922) (LEFT_PAREN .  107))
+      ((default . error) (WITH .  926) (DOT .  90) (TICK .  91) (SEMICOLON .  
927) (LEFT_PAREN .  107))
       ((default . error) (WHEN . (simple_statement . 0)) (THEN . 
(simple_statement . 0)) (OR . (simple_statement . 0)) (ELSIF . 
(simple_statement . 0)) (ELSE . (simple_statement . 0)) (CHARACTER_LITERAL . 
(simple_statement . 0)) (STRING_LITERAL . (simple_statement . 0)) (IDENTIFIER . 
(simple_statement . 0)) (LESS_LESS . (simple_statement . 0)) (WHILE . 
(simple_statement . 0)) (SELECT . (simple_statement . 0)) (RETURN . 
(simple_statement . 0)) (REQUEUE . (simple_statement . 0)) (RAISE . ( [...]
-      ((default . error) (END .  920))
-      ((default . error) (THEN .  919))
-      ((default . error) (SEMICOLON .  918))
+      ((default . error) (END .  925))
+      ((default . error) (THEN .  924))
+      ((default . error) (SEMICOLON .  923))
       ((default . error) (LOOP . (iterator_specification_opt . 1)))
       ((default . error) (LOOP . (iteration_scheme . 1)))
       ((default . error) (WHEN . (identifier_opt . 1)) (SEMICOLON . 
(identifier_opt . 1)))
-      ((default . error) (WHEN .  916) (SEMICOLON .  917))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (SEMICOLON .  914))
-      ((default . error) (BEGIN .  913))
-      ((default . error) (IS .  912))
-      ((default . error) (END .  911))
-      ((default . error) (DOT .  90) (TICK .  91) (SEMICOLON .  910) 
(LEFT_PAREN .  107))
-      ((default . error) (SEMICOLON . (actual_parameter_part_opt . 0)) (DO . 
(actual_parameter_part_opt . 0)) (LEFT_PAREN . ( 907 (actual_parameter_part_opt 
. 0))))
-      ((default . error) (IS .  906))
-      ((default . error) (IS .  905))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (REVERSE .  902) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (PLUS .  151) (MINUS .  150) 
(ABS .  144) (NOT .  769) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(LEFT_PAREN .  145))
-      ((default . error) (REVERSE .  900) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
-      ((default . error) (NOT .  750) (IDENTIFIER .  48) (CHARACTER_LITERAL .  
50) (STRING_LITERAL .  49))
-      ((default . error) (COMMA . (pragma_argument_association . 2)) 
(RIGHT_PAREN . (pragma_argument_association . 2)))
-      ((default . error) (SEMICOLON .  898))
-      ((default . error) (END .  897))
-      ((default . error) (IDENTIFIER .  228) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  769) 
(NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (WHEN .  921) (SEMICOLON .  922))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (SEMICOLON .  919))
+      ((default . error) (BEGIN .  918))
+      ((default . error) (IS .  917))
+      ((default . error) (END .  916))
+      ((default . error) (DOT .  90) (TICK .  91) (SEMICOLON .  915) 
(LEFT_PAREN .  107))
+      ((default . error) (SEMICOLON . (actual_parameter_part_opt . 0)) (DO . 
(actual_parameter_part_opt . 0)) (LEFT_PAREN . ( 912 (actual_parameter_part_opt 
. 0))))
+      ((default . error) (IS .  911))
+      ((default . error) (IS .  910))
+      ((default . error) (WHEN .  624))
+      ((default . error) (BAR .  286) (EQUAL_GREATER .  908))
+      ((default . error) (NULL .  907))
+      ((default . error) (DO . (subtype_indication . 3)) (OF . 
(subtype_indication . 3)) (AND . (subtype_indication . 3)) (SEMICOLON . 
(subtype_indication . 3)) (WITH . (subtype_indication . 3)) (COLON_EQUAL . 
(subtype_indication . 3)) (DOT .  90) (TICK .  91) (RANGE .  902) (LEFT_PAREN . 
 827))
+      ((default . error) (OF .  906))
+      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
+      ((default . error) (DOT .  90) (TICK .  91) (LOOP . 
(iterator_specification . 5)) (EQUAL_GREATER . (iterator_specification . 5)) 
(LEFT_PAREN .  107))
+      ((default . error) (NUMERIC_LITERAL .  155) (NULL .  904) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  734) 
(NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (LOOP . (iterator_specification . 1)) (EQUAL_GREATER 
. (iterator_specification . 1)))
+      ((default . error) (LOOP . (subtype_indication . 3)) (DOT .  90) (IN . 
(primary . 3)) (NOT . (primary . 3)) (EQUAL . (primary . 3)) (GREATER . 
(primary . 3)) (GREATER_EQUAL . (primary . 3)) (LESS . (primary . 3)) 
(LESS_EQUAL . (primary . 3)) (SLASH_EQUAL . (primary . 3)) (RIGHT_PAREN . 
((primary . 3) (subtype_indication . 3))) (COMMA . ((primary . 3) 
(subtype_indication . 3))) (BAR . (primary . 3)) (EQUAL_GREATER . ((primary . 
3) (subtype_indication . 3))) (AND . (primary . 3)) (OR [...]
+      ((default . error) (LOOP . (discrete_subtype_definition . 1)) 
(EQUAL_GREATER . (discrete_subtype_definition . 1)) (COMMA . 
(discrete_subtype_definition . 1)) (RIGHT_PAREN . (discrete_subtype_definition 
. 1)))
+      ((default . error) (LOOP . (discrete_subtype_definition . 0)) 
(EQUAL_GREATER . (discrete_subtype_definition . 0)) (COMMA . 
(discrete_subtype_definition . 0)) (RIGHT_PAREN . (discrete_subtype_definition 
. 0)))
+      ((default . error) (COMMA . (quantified_expression . 0)) (RIGHT_PAREN . 
(quantified_expression . 0)))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (COMMA . (elsif_expression_list . 0)) (RIGHT_PAREN . 
(elsif_expression_list . 0)) (ELSE . (elsif_expression_list . 0)) (ELSIF . 
(elsif_expression_list . 0)))
+      ((default . error) (COMMA . (if_expression . 1)) (RIGHT_PAREN . 
(if_expression . 1)) (ELSE .  898) (ELSIF .  742))
+      ((default . error) (USE . (aggregate . 1)) (COLON_EQUAL . (aggregate . 
1)) (CHARACTER_LITERAL . (aggregate . 1)) (STRING_LITERAL . (aggregate . 1)) 
(IDENTIFIER . (aggregate . 1)) (LESS_LESS . (aggregate . 1)) (WHILE . 
(aggregate . 1)) (SELECT . (aggregate . 1)) (REQUEUE . (aggregate . 1)) (RAISE 
. (aggregate . 1)) (PRAGMA . (aggregate . 1)) (NULL . (aggregate . 1)) (IF . 
(aggregate . 1)) (GOTO . (aggregate . 1)) (FOR . (aggregate . 1)) (EXIT . 
(aggregate . 1)) (DELAY . (aggregate . [...]
+      ((default . error) (RIGHT_PAREN .  897))
+      ((default . error) (COMMA . (pragma_argument_association . 3)) 
(RIGHT_PAREN . (pragma_argument_association . 3)))
+      ((default . error) (SEMICOLON .  896))
+      ((default . error) (END .  895))
+      ((default . error) (IDENTIFIER .  235) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  734) 
(NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
-      ((default . error) (CASE .  239) (IF .  240) (RAISE .  149) (PLUS .  
151) (MINUS .  150) (ABS .  144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  
148) (NEW .  146) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  145))
+      ((default . error) (FOR .  146) (CASE .  145) (IF .  147) (RAISE .  152) 
(PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) 
(NULL .  151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
       ((default . error) (ARRAY . (constant_opt . 1)) (ACCESS . (constant_opt 
. 1)) (NOT . (constant_opt . 1)) (IDENTIFIER . (constant_opt . 1)) 
(STRING_LITERAL . (constant_opt . 1)) (CHARACTER_LITERAL . (constant_opt . 1)))
-      ((default . error) (ARRAY .  490) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt . 0)) (NOT .  883))
+      ((default . error) (ARRAY .  498) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt . 0)) (NOT .  883))
       ((default . error) (IDENTIFIER . (exception_declaration . 0)) (USE . 
(exception_declaration . 0)) (TYPE . (exception_declaration . 0)) (TASK . 
(exception_declaration . 0)) (SUBTYPE . (exception_declaration . 0)) (PROTECTED 
. (exception_declaration . 0)) (PROCEDURE . (exception_declaration . 0)) 
(PRAGMA . (exception_declaration . 0)) (PACKAGE . (exception_declaration . 0)) 
(OVERRIDING . (exception_declaration . 0)) (NOT . (exception_declaration . 0)) 
(GENERIC . (exception_declaratio [...]
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (DOT .  90) (TICK .  91) (RENAMES .  880) (LEFT_PAREN 
.  107))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (PRIVATE . (abstract_tagged_limited_opt . 0)) (NULL . 
(abstract_tagged_limited_opt . 0)) (RECORD . (abstract_tagged_limited_opt . 0)) 
(TAGGED .  867) (RANGE .  865) (MOD .  863) (DIGITS .  860) (DELTA .  859) 
(TASK .  501) (PROTECTED .  497) (SYNCHRONIZED .  499) (INTERFACE .  493) 
(ARRAY .  490) (LEFT_PAREN .  861) (ACCESS . (null_exclusion_opt . 0)) (NOT .  
225) (NEW . ((abstract_limited_opt . 0) (abstract_limited_synchronized_opt . 
0))) (LIMITED .  862) (ABSTR [...]
+      ((default . error) (PRIVATE . (abstract_tagged_limited_opt . 0)) (NULL . 
(abstract_tagged_limited_opt . 0)) (RECORD . (abstract_tagged_limited_opt . 0)) 
(TAGGED .  867) (RANGE .  865) (MOD .  863) (DIGITS .  860) (DELTA .  859) 
(TASK .  509) (PROTECTED .  505) (SYNCHRONIZED .  507) (INTERFACE .  501) 
(ARRAY .  498) (LEFT_PAREN .  861) (ACCESS . (null_exclusion_opt . 0)) (NOT .  
232) (NEW . ((abstract_limited_opt . 0) (abstract_limited_synchronized_opt . 
0))) (LIMITED .  862) (ABSTR [...]
       ((default . error) (BEGIN . (incomplete_type_declaration . 1)) (ENTRY . 
(incomplete_type_declaration . 1)) (FOR . (incomplete_type_declaration . 1)) 
(FUNCTION . (incomplete_type_declaration . 1)) (GENERIC . 
(incomplete_type_declaration . 1)) (NOT . (incomplete_type_declaration . 1)) 
(OVERRIDING . (incomplete_type_declaration . 1)) (PACKAGE . 
(incomplete_type_declaration . 1)) (PRAGMA . (incomplete_type_declaration . 1)) 
(PROCEDURE . (incomplete_type_declaration . 1)) (PROTECTED . ( [...]
       ((default . error) (SEPARATE .  857))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (IS . 
(aspect_specification_opt . 0)) (WITH .  109))
-      ((default . error) (NEW .  853) (END . (declarative_part_opt . 0)) 
(PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  301) (PRAGMA .  
7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt 
. 2)) (FOR .  298) (IDENTIFIER .  304) (TYPE .  303) (GENERIC .  2) (PROTECTED 
.  300) (TASK .  302) (PACKAGE .  299))
+      ((default . error) (NEW .  853) (END . (declarative_part_opt . 0)) 
(PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  302) (PRAGMA .  
7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt 
. 2)) (FOR .  299) (IDENTIFIER .  305) (TYPE .  304) (GENERIC .  2) (PROTECTED 
.  301) (TASK .  303) (PACKAGE .  300))
       ((default . error) (BEGIN . (single_task_declaration . 2)) (ENTRY . 
(single_task_declaration . 2)) (FOR . (single_task_declaration . 2)) (FUNCTION 
. (single_task_declaration . 2)) (GENERIC . (single_task_declaration . 2)) (NOT 
. (single_task_declaration . 2)) (OVERRIDING . (single_task_declaration . 2)) 
(PACKAGE . (single_task_declaration . 2)) (PRAGMA . (single_task_declaration . 
2)) (PROCEDURE . (single_task_declaration . 2)) (PROTECTED . 
(single_task_declaration . 2)) (SUBTYPE . [...]
-      ((default . error) (NULL .  852))
-      ((default . error) (DO . (subtype_indication . 3)) (OF . 
(subtype_indication . 3)) (AND . (subtype_indication . 3)) (SEMICOLON . 
(subtype_indication . 3)) (WITH . (subtype_indication . 3)) (COLON_EQUAL . 
(subtype_indication . 3)) (DOT .  90) (TICK .  91) (RANGE .  851) (LEFT_PAREN . 
 824))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
-      ((default . error) (SEPARATE .  849))
+      ((default . error) (SEPARATE .  851))
       ((default . error) (IS . (aspect_specification_opt . 0)) (WITH .  109))
-      ((default . error) (NEW .  845) (END . (declarative_part_opt . 0)) 
(PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  301) (PRAGMA .  
7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt 
. 2)) (FOR .  298) (IDENTIFIER .  304) (TYPE .  303) (GENERIC .  2) (PROTECTED 
.  300) (TASK .  302) (PACKAGE .  299))
-      ((default . error) (SEPARATE .  844))
-      ((default . error) (SEMICOLON .  843))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (IDENTIFIER . (mod_clause_opt . 0)) (AT .  840))
-      ((default . error) (SEMICOLON .  839))
-      ((default . error) (SEMICOLON .  838))
+      ((default . error) (NEW .  847) (END . (declarative_part_opt . 0)) 
(PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  302) (PRAGMA .  
7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt 
. 2)) (FOR .  299) (IDENTIFIER .  305) (TYPE .  304) (GENERIC .  2) (PROTECTED 
.  301) (TASK .  303) (PACKAGE .  300))
+      ((default . error) (SEPARATE .  846))
+      ((default . error) (SEMICOLON .  845))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (IDENTIFIER . (mod_clause_opt . 0)) (AT .  842))
+      ((default . error) (SEMICOLON .  841))
+      ((default . error) (SEMICOLON .  840))
       ((default . error) (XOR . (choice_relation . 0)) (OR . (choice_relation 
. 0)) (BAR . (choice_relation . 0)) (EQUAL_GREATER . (choice_relation . 0)) 
(AND . (choice_relation . 0)))
-      ((default . error) (RIGHT_PAREN .  837))
+      ((default . error) (RIGHT_PAREN .  839))
       ((default . error) (DO . (membership_choice_list . 1)) (LOOP . 
(membership_choice_list . 1)) (COMMA . (membership_choice_list . 1)) (ELSIF . 
(membership_choice_list . 1)) (ELSE . (membership_choice_list . 1)) 
(EQUAL_GREATER . (membership_choice_list . 1)) (RIGHT_PAREN . 
(membership_choice_list . 1)) (DIGITS . (membership_choice_list . 1)) (RANGE . 
(membership_choice_list . 1)) (THEN . (membership_choice_list . 1)) (SEMICOLON 
. (membership_choice_list . 1)) (WITH . (membership_choic [...]
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (ACCESS . (null_exclusion_opt . 1)) (IDENTIFIER .  
833) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (ACCESS . (null_exclusion_opt . 1)) (IDENTIFIER .  
835) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (NULL . (abstract_tagged_limited_opt . 1)) (RECORD . 
(abstract_tagged_limited_opt . 1)) (PRIVATE . (abstract_tagged_limited_opt . 
1)))
-      ((default . error) (NUMERIC_LITERAL .  152) (NULL .  832) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
       ((default . error) (RIGHT_PAREN . (discrete_subtype_definition_list . 
0)) (COMMA . (discrete_subtype_definition_list . 0)))
-      ((default . error) (COMMA .  831) (RIGHT_PAREN .  830))
+      ((default . error) (COMMA .  834) (RIGHT_PAREN .  833))
       ((default . error) (RIGHT_PAREN . (index_subtype_definition_list . 0)) 
(COMMA . (index_subtype_definition_list . 0)))
-      ((default . error) (COMMA .  829) (RIGHT_PAREN .  828))
-      ((default . error) (RIGHT_PAREN . (subtype_indication . 3)) (COMMA . 
(subtype_indication . 3)) (PLUS . (primary . 3)) (MINUS . (primary . 3)) 
(AMPERSAND . (primary . 3)) (DOT_DOT . (primary . 3)) (MOD . (primary . 3)) 
(REM . (primary . 3)) (SLASH . (primary . 3)) (STAR . (primary . 3)) (STAR_STAR 
. (primary . 3)) (DOT .  90) (TICK .  284) (RANGE .  825) (LEFT_PAREN .  824))
-      ((default . error) (LOOP . (discrete_subtype_definition . 1)) 
(EQUAL_GREATER . (discrete_subtype_definition . 1)) (COMMA . 
(discrete_subtype_definition . 1)) (RIGHT_PAREN . (discrete_subtype_definition 
. 1)))
-      ((default . error) (LOOP . (discrete_subtype_definition . 0)) 
(EQUAL_GREATER . (discrete_subtype_definition . 0)) (COMMA . 
(discrete_subtype_definition . 0)) (RIGHT_PAREN . (discrete_subtype_definition 
. 0)))
-      ((default . error) (BOX .  823))
+      ((default . error) (COMMA .  832) (RIGHT_PAREN .  831))
+      ((default . error) (RIGHT_PAREN . (subtype_indication . 3)) (COMMA . 
(subtype_indication . 3)) (PLUS . (primary . 3)) (MINUS . (primary . 3)) 
(AMPERSAND . (primary . 3)) (DOT_DOT . (primary . 3)) (MOD . (primary . 3)) 
(REM . (primary . 3)) (SLASH . (primary . 3)) (STAR . (primary . 3)) (STAR_STAR 
. (primary . 3)) (DOT .  90) (TICK .  285) (RANGE .  828) (LEFT_PAREN .  827))
+      ((default . error) (BOX .  826))
       ((default . error) (WITH . (formal_type_definition . 2)) (SEMICOLON . 
(formal_type_definition . 2)))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (PACKAGE . (formal_type_declaration . 1)) (PROCEDURE 
. (formal_type_declaration . 1)) (FUNCTION . (formal_type_declaration . 1)) 
(PRAGMA . (formal_type_declaration . 1)) (TYPE . (formal_type_declaration . 1)) 
(USE . (formal_type_declaration . 1)) (WITH . (formal_type_declaration . 1)) 
(IDENTIFIER . (formal_type_declaration . 1)))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (DOT .  90) (TICK .  91) (WITH . 
(and_interface_list_opt . 0)) (SEMICOLON . (and_interface_list_opt . 0)) (AND . 
 816) (LEFT_PAREN .  107))
+      ((default . error) (DOT .  90) (TICK .  91) (WITH . 
(and_interface_list_opt . 0)) (SEMICOLON . (and_interface_list_opt . 0)) (AND . 
 819) (LEFT_PAREN .  107))
       ((default . error) (PACKAGE . (formal_type_declaration . 0)) (PROCEDURE 
. (formal_type_declaration . 0)) (FUNCTION . (formal_type_declaration . 0)) 
(PRAGMA . (formal_type_declaration . 0)) (TYPE . (formal_type_declaration . 0)) 
(USE . (formal_type_declaration . 0)) (WITH . (formal_type_declaration . 0)) 
(IDENTIFIER . (formal_type_declaration . 0)))
       ((default . error) (PACKAGE . (formal_subprogram_declaration . 2)) 
(PROCEDURE . (formal_subprogram_declaration . 2)) (FUNCTION . 
(formal_subprogram_declaration . 2)) (PRAGMA . (formal_subprogram_declaration . 
2)) (TYPE . (formal_subprogram_declaration . 2)) (USE . 
(formal_subprogram_declaration . 2)) (WITH . (formal_subprogram_declaration . 
2)) (IDENTIFIER . (formal_subprogram_declaration . 2)))
-      ((default . error) (BOX .  815) (RIGHT_PAREN . ((expression_opt . 0) 
(association_opt . 0))) (COMMA . ((expression_opt . 0) (association_opt . 0))) 
(EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  176) (STRING_LITERAL .  49) (PLUS .  
151) (MINUS .  150) (OTHERS .  175) (ABS .  144) (NOT .  174) (RAISE .  149) 
(NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (BOX .  818) (FOR .  146) (CASE .  145) (IF .  147) 
(RIGHT_PAREN . ((expression_opt . 0) (association_opt . 0))) (COMMA . 
((expression_opt . 0) (association_opt . 0))) (EQUAL_GREATER . 
(discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (IDENTIFIER .  
48) (CHARACTER_LITERAL .  183) (STRING_LITERAL .  49) (PLUS .  154) (MINUS .  
153) (OTHERS .  182) (ABS .  144) (NOT .  181) (RAISE .  152) (NUMERIC_LITERAL 
.  155) (NULL .  151) (NEW .  149) (LEFT_PAREN  [...]
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
       ((default . error) (PACKAGE . (formal_object_declaration . 1)) 
(PROCEDURE . (formal_object_declaration . 1)) (FUNCTION . 
(formal_object_declaration . 1)) (PRAGMA . (formal_object_declaration . 1)) 
(TYPE . (formal_object_declaration . 1)) (USE . (formal_object_declaration . 
1)) (WITH . (formal_object_declaration . 1)) (IDENTIFIER . 
(formal_object_declaration . 1)))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
-      ((default . error) (SEMICOLON .  812))
-      ((default . error) (DO . (aggregate . 1)) (LOOP . (aggregate . 1)) (USE 
. (aggregate . 1)) (COLON_EQUAL . (aggregate . 1)) (CHARACTER_LITERAL . 
(aggregate . 1)) (STRING_LITERAL . (aggregate . 1)) (IDENTIFIER . (aggregate . 
1)) (LESS_LESS . (aggregate . 1)) (WHILE . (aggregate . 1)) (SELECT . 
(aggregate . 1)) (REQUEUE . (aggregate . 1)) (RAISE . (aggregate . 1)) (PRAGMA 
. (aggregate . 1)) (NULL . (aggregate . 1)) (IF . (aggregate . 1)) (GOTO . 
(aggregate . 1)) (FOR . (aggregate . 1) [...]
-      ((default . error) (RIGHT_PAREN .  811))
-      ((default . error) (ELSE .  807) (RIGHT_PAREN . (if_expression . 3)) 
(ELSIF .  808))
-      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (OTHERS .  175) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (PLUS .  151) (MINUS .  150) 
(ABS .  144) (NOT .  174) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(LEFT_PAREN .  145))
-      ((default . error) (RIGHT_PAREN . (case_expression_alternative_list . 
0)) (COMMA . (case_expression_alternative_list . 0)))
-      ((default . error) (COMMA .  805) (RIGHT_PAREN . (case_expression . 0)))
+      ((default . error) (SEMICOLON .  815))
       ((default . error) (IDENTIFIER .  77))
       ((default . error) (DO . (access_definition . 1)) (COLON_EQUAL . 
(access_definition . 1)) (RIGHT_PAREN . (access_definition . 1)) (RENAMES . 
(access_definition . 1)) (WITH . (access_definition . 1)) (SEMICOLON . 
(access_definition . 1)) (IS . (access_definition . 1)))
       ((default . error) (DO . (access_definition . 2)) (COLON_EQUAL . 
(access_definition . 2)) (RIGHT_PAREN . (access_definition . 2)) (RENAMES . 
(access_definition . 2)) (WITH . (access_definition . 2)) (SEMICOLON . 
(access_definition . 2)) (IS . (access_definition . 2)))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (RIGHT_PAREN . (parameter_specification . 2)) 
(SEMICOLON . (parameter_specification . 2)))
       ((default . error) (COLON_EQUAL .  1084) (DOT .  90) (TICK .  91) 
(RIGHT_PAREN . (parameter_specification . 1)) (SEMICOLON . 
(parameter_specification . 1)) (LEFT_PAREN .  107))
-      ((default . error) (WHEN .  795))
-      ((default . error) (BAR .  285) (EQUAL_GREATER .  1082))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (RIGHT_PAREN . (elsif_expression_list . 0)) (ELSE . 
(elsif_expression_list . 0)) (ELSIF . (elsif_expression_list . 0)))
-      ((default . error) (RIGHT_PAREN . (if_expression . 1)) (ELSE .  1078) 
(ELSIF .  808))
-      ((default . error) (OF . (aggregate . 4)) (ACCEPT . (aggregate . 4)) 
(ABORT . (aggregate . 4)) (BEGIN . (aggregate . 4)) (CASE . (aggregate . 4)) 
(DECLARE . (aggregate . 4)) (DELAY . (aggregate . 4)) (EXIT . (aggregate . 4)) 
(FOR . (aggregate . 4)) (GOTO . (aggregate . 4)) (IF . (aggregate . 4)) (NULL . 
(aggregate . 4)) (PRAGMA . (aggregate . 4)) (RAISE . (aggregate . 4)) (REQUEUE 
. (aggregate . 4)) (SELECT . (aggregate . 4)) (WHILE . (aggregate . 4)) 
(LESS_LESS . (aggregate . 4))  [...]
       ((default . error) (IDENTIFIER . (formal_object_declaration . 2)) (WITH 
. (formal_object_declaration . 2)) (USE . (formal_object_declaration . 2)) 
(TYPE . (formal_object_declaration . 2)) (PRAGMA . (formal_object_declaration . 
2)) (FUNCTION . (formal_object_declaration . 2)) (PROCEDURE . 
(formal_object_declaration . 2)) (PACKAGE . (formal_object_declaration . 2)))
-      ((default . error) (SEMICOLON .  1077))
-      ((default . error) (SEMICOLON .  1076))
-      ((default . error) (RIGHT_PAREN .  1075))
+      ((default . error) (SEMICOLON .  1083))
+      ((default . error) (SEMICOLON .  1082))
+      ((default . error) (RIGHT_PAREN .  1081))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (WITH . ( 1073 (formal_derived_type_definition . 1))) 
(SEMICOLON . (formal_derived_type_definition . 1)))
-      ((default . error) (AND .  1072) (WITH . (interface_type_definition . 
1)) (SEMICOLON . (interface_type_definition . 1)))
+      ((default . error) (WITH . ( 1079 (formal_derived_type_definition . 1))) 
(SEMICOLON . (formal_derived_type_definition . 1)))
+      ((default . error) (AND .  1078) (WITH . (interface_type_definition . 
1)) (SEMICOLON . (interface_type_definition . 1)))
       ((default . error) (DOT .  90) (SEMICOLON . (interface_list . 0)) (WITH 
. (interface_list . 0)) (AND . (interface_list . 0)) (TICK .  91) (LEFT_PAREN . 
 107))
-      ((default . error) (AND .  1072) (WITH . (interface_type_definition . 
3)) (SEMICOLON . (interface_type_definition . 3)))
-      ((default . error) (AND .  1072) (WITH . (interface_type_definition . 
2)) (SEMICOLON . (interface_type_definition . 2)))
-      ((default . error) (AND .  1072) (WITH . (interface_type_definition . 
0)) (SEMICOLON . (interface_type_definition . 0)))
+      ((default . error) (AND .  1078) (WITH . (interface_type_definition . 
3)) (SEMICOLON . (interface_type_definition . 3)))
+      ((default . error) (AND .  1078) (WITH . (interface_type_definition . 
2)) (SEMICOLON . (interface_type_definition . 2)))
+      ((default . error) (AND .  1078) (WITH . (interface_type_definition . 
0)) (SEMICOLON . (interface_type_definition . 0)))
       ((default . error) (SEMICOLON . (formal_type_definition . 7)) (WITH . 
(formal_type_definition . 7)))
-      ((default . error) (RIGHT_PAREN . ((expression_opt . 0) (association_opt 
. 0))) (COMMA . ((expression_opt . 0) (association_opt . 0))) (EQUAL_GREATER . 
(discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (IDENTIFIER .  
48) (CHARACTER_LITERAL .  176) (STRING_LITERAL .  49) (PLUS .  151) (MINUS .  
150) (OTHERS .  175) (ABS .  144) (NOT .  1069) (RAISE .  149) (NUMERIC_LITERAL 
.  152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (BOX .  1068) (IDENTIFIER .  48) (CHARACTER_LITERAL . 
 50) (STRING_LITERAL .  49) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (LOOP . (subtype_indication . 2)) (DO . 
(subtype_indication . 2)) (EQUAL_GREATER . (subtype_indication . 2)) (COMMA . 
(subtype_indication . 2)) (RIGHT_PAREN . (subtype_indication . 2)) (COLON_EQUAL 
. (subtype_indication . 2)) (WITH . (subtype_indication . 2)) (SEMICOLON . 
(subtype_indication . 2)) (AND . (subtype_indication . 2)) (OF . 
(subtype_indication . 2)))
-      ((default . error) (LOOP . (constraint . 1)) (DO . (constraint . 1)) 
(EQUAL_GREATER . (constraint . 1)) (COMMA . (constraint . 1)) (RIGHT_PAREN . 
(constraint . 1)) (COLON_EQUAL . (constraint . 1)) (WITH . (constraint . 1)) 
(SEMICOLON . (constraint . 1)) (AND . (constraint . 1)) (OF . (constraint . 1)))
-      ((default . error) (OF .  1067))
+      ((default . error) (FOR .  146) (CASE .  145) (IF .  147) (RIGHT_PAREN . 
((expression_opt . 0) (association_opt . 0))) (COMMA . ((expression_opt . 0) 
(association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (IDENTIFIER .  48) (CHARACTER_LITERAL .  183) 
(STRING_LITERAL .  49) (PLUS .  154) (MINUS .  153) (OTHERS .  182) (ABS .  
144) (NOT .  1075) (RAISE .  152) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW . 
 149) (LEFT_PAREN .  148))
+      ((default . error) (BOX .  1074) (IDENTIFIER .  48) (CHARACTER_LITERAL . 
 50) (STRING_LITERAL .  49) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (LOOP . (subtype_indication . 2)) (DO . 
(subtype_indication . 2)) (RIGHT_PAREN . (subtype_indication . 2)) (COMMA . 
(subtype_indication . 2)) (EQUAL_GREATER . (subtype_indication . 2)) 
(COLON_EQUAL . (subtype_indication . 2)) (WITH . (subtype_indication . 2)) 
(SEMICOLON . (subtype_indication . 2)) (AND . (subtype_indication . 2)) (OF . 
(subtype_indication . 2)))
+      ((default . error) (LOOP . (constraint . 1)) (DO . (constraint . 1)) 
(RIGHT_PAREN . (constraint . 1)) (COMMA . (constraint . 1)) (EQUAL_GREATER . 
(constraint . 1)) (COLON_EQUAL . (constraint . 1)) (WITH . (constraint . 1)) 
(SEMICOLON . (constraint . 1)) (AND . (constraint . 1)) (OF . (constraint . 1)))
+      ((default . error) (OF .  1073))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (OF .  1064))
-      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  769) 
(NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (PLUS . (primary . 1)) (MINUS . (primary . 1)) 
(AMPERSAND . (primary . 1)) (DOT_DOT . (primary . 1)) (MOD . (primary . 1)) 
(REM . (primary . 1)) (SLASH . (primary . 1)) (STAR . (primary . 1)) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (OF .  1070))
+      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  734) 
(NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
       ((default . error) (DOT . (name . 0)) (LEFT_PAREN . (name . 0)) (TICK . 
(name . 0)) (SEMICOLON . (null_exclusion_opt_name_type . 2)) (RIGHT_PAREN . 
(null_exclusion_opt_name_type . 2)) (COLON_EQUAL . 
(null_exclusion_opt_name_type . 2)))
       ((default . error) (DOT . (name . 3)) (LEFT_PAREN . (name . 3)) (TICK . 
(name . 3)) (SEMICOLON . (null_exclusion_opt_name_type . 3)) (RIGHT_PAREN . 
(null_exclusion_opt_name_type . 3)) (COLON_EQUAL . 
(null_exclusion_opt_name_type . 3)))
       ((default . error) (SEMICOLON . (discriminant_specification_opt . 3)) 
(RIGHT_PAREN . (discriminant_specification_opt . 3)))
@@ -2644,37 +2656,35 @@
       ((default . error) (DO . (range . 0)) (LOOP . (range . 0)) (XOR . (range 
. 0)) (OR . (range . 0)) (AND . (range . 0)) (IS . (range . 0)) (WITH . (range 
. 0)) (SEMICOLON . (range . 0)) (THEN . (range . 0)) (RANGE . (range . 0)) 
(DIGITS . (range . 0)) (ELSE . (range . 0)) (ELSIF . (range . 0)) (COLON_EQUAL 
. (range . 0)) (OF . (range . 0)) (BAR . (range . 0)) (EQUAL_GREATER . (range . 
0)) (RIGHT_PAREN . (range . 0)) (COMMA . (range . 0)))
       ((default . error) (WHEN . (record_representation_clause . 0)) (END . 
(record_representation_clause . 0)) (PRIVATE . (record_representation_clause . 
0)) (CASE . (record_representation_clause . 0)) (IDENTIFIER . 
(record_representation_clause . 0)) (USE . (record_representation_clause . 0)) 
(TYPE . (record_representation_clause . 0)) (TASK . 
(record_representation_clause . 0)) (SUBTYPE . (record_representation_clause . 
0)) (PROTECTED . (record_representation_clause . 0)) (PROCEDURE . [...]
       ((default . error) (WHEN . (enumeration_representation_clause . 0)) (END 
. (enumeration_representation_clause . 0)) (PRIVATE . 
(enumeration_representation_clause . 0)) (CASE . 
(enumeration_representation_clause . 0)) (IDENTIFIER . 
(enumeration_representation_clause . 0)) (USE . 
(enumeration_representation_clause . 0)) (TYPE . 
(enumeration_representation_clause . 0)) (TASK . 
(enumeration_representation_clause . 0)) (SUBTYPE . 
(enumeration_representation_clause . 0)) (PROTECTED . (en [...]
-      ((default . error) (MOD .  1062))
-      ((default . error) (IDENTIFIER .  1059))
-      ((default . error) (SEMICOLON .  1058))
+      ((default . error) (MOD .  1068))
+      ((default . error) (IDENTIFIER .  1065))
+      ((default . error) (SEMICOLON .  1064))
       ((default . error) (WHEN . (aspect_clause . 0)) (PRIVATE . 
(aspect_clause . 0)) (END . (aspect_clause . 0)) (CASE . (aspect_clause . 0)) 
(BEGIN . (aspect_clause . 0)) (ENTRY . (aspect_clause . 0)) (FOR . 
(aspect_clause . 0)) (FUNCTION . (aspect_clause . 0)) (GENERIC . (aspect_clause 
. 0)) (NOT . (aspect_clause . 0)) (OVERRIDING . (aspect_clause . 0)) (PACKAGE . 
(aspect_clause . 0)) (PRAGMA . (aspect_clause . 0)) (PROCEDURE . (aspect_clause 
. 0)) (PROTECTED . (aspect_clause . 0)) (S [...]
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (END .  1054) (PRIVATE .  1055))
-      ((default . error) (SEMICOLON .  1053))
-      ((default . error) (IS .  1052))
+      ((default . error) (END .  1060) (PRIVATE .  1061))
+      ((default . error) (SEMICOLON .  1059))
+      ((default . error) (IS .  1058))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
-      ((default . error) (SEMICOLON .  1050))
-      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  147) 
(NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (SEMICOLON .  1056))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (END .  1045) (PRIVATE .  1046))
-      ((default . error) (SEMICOLON .  1044))
-      ((default . error) (SEMICOLON .  1043) (IS .  1042))
+      ((default . error) (END .  1053) (PRIVATE .  1054))
+      ((default . error) (SEMICOLON .  1052))
+      ((default . error) (SEMICOLON .  1051) (IS .  1050))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
-      ((default . error) (SYNCHRONIZED .  567) (TAGGED .  568) (NEW . 
((abstract_limited_opt . 3) (abstract_limited_synchronized_opt . 3))) (LIMITED 
.  1040))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (IDENTIFIER .  1034) (CHARACTER_LITERAL .  1035))
-      ((default . error) (INTERFACE .  561) (PRIVATE . 
(abstract_tagged_limited_opt . 5)) (NULL . (abstract_tagged_limited_opt . 5)) 
(RECORD . (abstract_tagged_limited_opt . 5)) (NEW . ((abstract_limited_opt . 2) 
(abstract_limited_synchronized_opt . 4))))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (RECORD .  1032))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
-      ((default . error) (END . (component_list_opt . 0)) (NULL .  1023) (CASE 
.  1022) (IDENTIFIER .  77) (FOR .  298))
-      ((default . error) (SEMICOLON .  1021) (PRIVATE . 
(abstract_tagged_limited_opt . 4)) (NULL . (abstract_tagged_limited_opt . 4)) 
(RECORD . (abstract_tagged_limited_opt . 4)) (LIMITED .  555))
-      ((default . error) (NEW .  1020))
-      ((default . error) (NEW .  1019))
-      ((default . error) (PRIVATE .  1017) (RECORD .  866) (NULL .  864))
+      ((default . error) (SYNCHRONIZED .  563) (TAGGED .  564) (NEW . 
((abstract_limited_opt . 3) (abstract_limited_synchronized_opt . 3))) (LIMITED 
.  1048))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (IDENTIFIER .  1042) (CHARACTER_LITERAL .  1043))
+      ((default . error) (INTERFACE .  557) (PRIVATE . 
(abstract_tagged_limited_opt . 5)) (NULL . (abstract_tagged_limited_opt . 5)) 
(RECORD . (abstract_tagged_limited_opt . 5)) (NEW . ((abstract_limited_opt . 2) 
(abstract_limited_synchronized_opt . 4))))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RECORD .  1040))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (END . (component_list_opt . 0)) (NULL .  1031) (CASE 
.  1030) (IDENTIFIER .  77) (FOR .  299))
+      ((default . error) (SEMICOLON .  1029) (PRIVATE . 
(abstract_tagged_limited_opt . 4)) (NULL . (abstract_tagged_limited_opt . 4)) 
(RECORD . (abstract_tagged_limited_opt . 4)) (LIMITED .  551))
+      ((default . error) (NEW .  1028))
+      ((default . error) (NEW .  1027))
+      ((default . error) (PRIVATE .  1025) (RECORD .  866) (NULL .  864))
       ((default . error) (WITH . (type_definition . 8)) (SEMICOLON . 
(type_definition . 8)))
       ((default . error) (WITH . (type_definition . 6)) (SEMICOLON . 
(type_definition . 6)))
       ((default . error) (WITH . (type_definition . 9)) (SEMICOLON . 
(type_definition . 9)))
@@ -2686,264 +2696,260 @@
       ((default . error) (DOT .  90) (TICK .  91) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109) (LEFT_PAREN .  107))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (SEMICOLON . (package_specification . 0)))
+      ((default . error) (SEMICOLON .  1020))
+      ((default . error) (NULL .  1019))
+      ((default . error) (COLON_EQUAL .  1017) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109))
+      ((default . error) (COLON_EQUAL .  1015) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109))
+      ((default . error) (COLON_EQUAL .  1013) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109))
       ((default . error) (SEMICOLON .  1012))
-      ((default . error) (NULL .  1011))
-      ((default . error) (COLON_EQUAL .  1009) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109))
-      ((default . error) (COLON_EQUAL .  1007) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109))
-      ((default . error) (COLON_EQUAL .  1005) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109))
-      ((default . error) (SEMICOLON .  1004))
-      ((default . error) (SEMICOLON .  1003))
-      ((default . error) (SEMICOLON .  1002))
-      ((default . error) (SEMICOLON .  1001))
-      ((default . error) (RIGHT_PAREN .  1000))
-      ((default . error) (RIGHT_PAREN .  999))
-      ((default . error) (RIGHT_PAREN .  998))
-      ((default . error) (SEMICOLON .  997))
-      ((default . error) (RIGHT_PAREN .  996))
-      ((default . error) (LOOP . (subtype_indication . 3)) (DOT .  90) (IN . 
(primary . 3)) (NOT . (primary . 3)) (EQUAL . (primary . 3)) (GREATER . 
(primary . 3)) (GREATER_EQUAL . (primary . 3)) (LESS . (primary . 3)) 
(LESS_EQUAL . (primary . 3)) (SLASH_EQUAL . (primary . 3)) (RIGHT_PAREN . 
((primary . 3) (subtype_indication . 3))) (COMMA . ((primary . 3) 
(subtype_indication . 3))) (BAR . (primary . 3)) (EQUAL_GREATER . ((primary . 
3) (subtype_indication . 3))) (AND . (primary . 3)) (OR [...]
+      ((default . error) (SEMICOLON .  1011))
+      ((default . error) (SEMICOLON .  1010))
+      ((default . error) (SEMICOLON .  1009))
+      ((default . error) (RIGHT_PAREN .  1008))
+      ((default . error) (RIGHT_PAREN .  1007))
+      ((default . error) (SEMICOLON .  1006))
+      ((default . error) (RIGHT_PAREN .  1005))
       ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (END . (package_body . 1)) (BEGIN . (package_body . 
1)) (ENTRY . (package_body . 1)) (FOR . (package_body . 1)) (PROTECTED . 
(package_body . 1)) (SUBTYPE . (package_body . 1)) (TASK . (package_body . 1)) 
(TYPE . (package_body . 1)) (IDENTIFIER . (package_body . 1)) (WITH . 
(package_body . 1)) (USE . (package_body . 1)) (SEPARATE . (package_body . 1)) 
(PROCEDURE . (package_body . 1)) (PRIVATE . (package_body . 1)) (PRAGMA . 
(package_body . 1)) (PACKAGE . (package_ [...]
-      ((default . error) (OF .  994))
+      ((default . error) (LOOP . (aggregate . 3)) (DO . (aggregate . 3)) (OF . 
(aggregate . 3)) (ACCEPT . (aggregate . 3)) (ABORT . (aggregate . 3)) (BEGIN . 
(aggregate . 3)) (CASE . (aggregate . 3)) (DECLARE . (aggregate . 3)) (DELAY . 
(aggregate . 3)) (EXIT . (aggregate . 3)) (FOR . (aggregate . 3)) (GOTO . 
(aggregate . 3)) (IF . (aggregate . 3)) (NULL . (aggregate . 3)) (PRAGMA . 
(aggregate . 3)) (RAISE . (aggregate . 3)) (REQUEUE . (aggregate . 3)) (SELECT 
. (aggregate . 3)) (WHILE . [...]
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (ELSIF . (elsif_expression_list . 1)) (ELSE . 
(elsif_expression_list . 1)) (RIGHT_PAREN . (elsif_expression_list . 1)) (COMMA 
. (elsif_expression_list . 1)))
+      ((default . error) (THEN .  1002))
+      ((default . error) (RIGHT_PAREN . (if_expression . 2)) (COMMA . 
(if_expression . 2)))
+      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  150) 
(NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (LOOP . (iterator_specification . 0)) (EQUAL_GREATER 
. (iterator_specification . 0)))
+      ((default . error) (PLUS . (primary . 1)) (MINUS . (primary . 1)) 
(AMPERSAND . (primary . 1)) (DOT_DOT . (primary . 1)) (MOD . (primary . 1)) 
(REM . (primary . 1)) (SLASH . (primary . 1)) (STAR . (primary . 1)) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (DOT .  90) (TICK .  91) (LOOP . 
(iterator_specification . 4)) (EQUAL_GREATER . (iterator_specification . 4)) 
(LEFT_PAREN .  107))
+      ((default . error) (REVERSE .  999) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (DOT .  90) (TICK .  91) (LOOP . 
(iterator_specification . 5)) (EQUAL_GREATER . (iterator_specification . 5)) 
(LEFT_PAREN .  107))
-      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  769) 
(NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (LOOP . (iterator_specification . 1)) (EQUAL_GREATER 
. (iterator_specification . 1)))
-      ((default . error) (RIGHT_PAREN . (quantified_expression . 0)))
-      ((default . error) (END . (protected_operation_item_list_opt . 0)) 
(ENTRY .  981) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(FOR .  298))
-      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  301) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  298) (IDENTIFIER .  304) (TYPE 
.  303) (GENERIC .  2) (PROTECTED .  300) (TASK .  302) (PACKAGE .  299))
-      ((default . error) (RIGHT_PAREN . ((expression_opt . 0) (association_opt 
. 0))) (COMMA . ((expression_opt . 0) (association_opt . 0))) (EQUAL_GREATER . 
(discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  175) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  176) (STRING_LITERAL .  49) (RAISE .  
149) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  174) (NUMERIC_LITERAL .  
152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RIGHT_PAREN . (case_expression_alternative_list . 
1)) (COMMA . (case_expression_alternative_list . 1)))
+      ((default . error) (END . (protected_operation_item_list_opt . 0)) 
(ENTRY .  986) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(FOR .  299))
+      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  302) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  299) (IDENTIFIER .  305) (TYPE 
.  304) (GENERIC .  2) (PROTECTED .  301) (TASK .  303) (PACKAGE .  300))
+      ((default . error) (FOR .  146) (CASE .  145) (IF .  147) (RIGHT_PAREN . 
((expression_opt . 0) (association_opt . 0))) (COMMA . ((expression_opt . 0) 
(association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (OTHERS .  182) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  183) (STRING_LITERAL .  49) (RAISE .  152) (PLUS .  154) 
(MINUS .  153) (ABS .  144) (NOT .  181) (NUMERIC_LITERAL .  155) (NULL .  151) 
(NEW .  149) (LEFT_PAREN .  148))
       ((default . error) (SEMICOLON . (actual_parameter_part_opt . 1)) 
(LEFT_PAREN . (actual_parameter_part_opt . 1)) (DO . (actual_parameter_part_opt 
. 1)))
-      ((default . error) (DO . (parameter_profile_opt . 0)) (SEMICOLON . 
(parameter_profile_opt . 0)) (LEFT_PAREN .  798))
+      ((default . error) (DO . (parameter_profile_opt . 0)) (SEMICOLON . 
(parameter_profile_opt . 0)) (LEFT_PAREN .  808))
       ((default . error) (OR . (simple_statement . 8)) (THEN . 
(simple_statement . 8)) (WHEN . (simple_statement . 8)) (EXCEPTION . 
(simple_statement . 8)) (END . (simple_statement . 8)) (ACCEPT . 
(simple_statement . 8)) (ABORT . (simple_statement . 8)) (BEGIN . 
(simple_statement . 8)) (CASE . (simple_statement . 8)) (DECLARE . 
(simple_statement . 8)) (DELAY . (simple_statement . 8)) (EXIT . 
(simple_statement . 8)) (FOR . (simple_statement . 8)) (GOTO . 
(simple_statement . 8)) (IF . (sim [...]
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
711))
-      ((default . error) (WHEN .  975))
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt  [...]
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
716))
+      ((default . error) (WHEN .  980))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt  [...]
       ((default . error) (WHEN . (delay_statement . 1)) (EXCEPTION . 
(delay_statement . 1)) (ELSIF . (delay_statement . 1)) (THEN . (delay_statement 
. 1)) (ELSE . (delay_statement . 1)) (OR . (delay_statement . 1)) (END . 
(delay_statement . 1)) (ACCEPT . (delay_statement . 1)) (ABORT . 
(delay_statement . 1)) (BEGIN . (delay_statement . 1)) (CASE . (delay_statement 
. 1)) (DECLARE . (delay_statement . 1)) (DELAY . (delay_statement . 1)) (EXIT . 
(delay_statement . 1)) (FOR . (delay_statemen [...]
-      ((default . error) (SEMICOLON .  973))
-      ((default . error) (SEMICOLON . (expression_opt . 0)) (RAISE .  149) 
(PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  147) (NUMERIC_LITERAL .  152) 
(NULL .  148) (NEW .  146) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  145))
+      ((default . error) (SEMICOLON .  978))
+      ((default . error) (SEMICOLON . (expression_opt . 0)) (RAISE .  152) 
(PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) 
(NULL .  151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (OR . (exit_statement . 1)) (THEN . (exit_statement . 
1)) (WHEN . (exit_statement . 1)) (EXCEPTION . (exit_statement . 1)) (END . 
(exit_statement . 1)) (ACCEPT . (exit_statement . 1)) (ABORT . (exit_statement 
. 1)) (BEGIN . (exit_statement . 1)) (CASE . (exit_statement . 1)) (DECLARE . 
(exit_statement . 1)) (DELAY . (exit_statement . 1)) (EXIT . (exit_statement . 
1)) (FOR . (exit_statement . 1)) (GOTO . (exit_statement . 1)) (IF . 
(exit_statement . 1)) (LOOP . (e [...]
       ((default . error) (OR . (simple_statement . 3)) (THEN . 
(simple_statement . 3)) (WHEN . (simple_statement . 3)) (EXCEPTION . 
(simple_statement . 3)) (END . (simple_statement . 3)) (ACCEPT . 
(simple_statement . 3)) (ABORT . (simple_statement . 3)) (BEGIN . 
(simple_statement . 3)) (CASE . (simple_statement . 3)) (DECLARE . 
(simple_statement . 3)) (DELAY . (simple_statement . 3)) (EXIT . 
(simple_statement . 3)) (FOR . (simple_statement . 3)) (GOTO . 
(simple_statement . 3)) (IF . (sim [...]
-      ((default . error) (ELSIF . (sequence_of_statements_opt . 0)) (ELSE . 
(sequence_of_statements_opt . 0)) (END . (sequence_of_statements_opt . 0)) 
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) 
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) 
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) 
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) 
(EXIT . (label_opt . 0)) (GOTO  [...]
-      ((default . error) (LOOP .  970))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
+      ((default . error) (ELSIF . (sequence_of_statements_opt . 0)) (ELSE . 
(sequence_of_statements_opt . 0)) (END . (sequence_of_statements_opt . 0)) 
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) 
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) 
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) 
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) 
(EXIT . (label_opt . 0)) (GOTO  [...]
+      ((default . error) (LOOP .  975))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (OR . (raise_statement . 2)) (THEN . (raise_statement 
. 2)) (WHEN . (raise_statement . 2)) (EXCEPTION . (raise_statement . 2)) (END . 
(raise_statement . 2)) (ACCEPT . (raise_statement . 2)) (ABORT . 
(raise_statement . 2)) (BEGIN . (raise_statement . 2)) (CASE . (raise_statement 
. 2)) (DECLARE . (raise_statement . 2)) (DELAY . (raise_statement . 2)) (EXIT . 
(raise_statement . 2)) (FOR . (raise_statement . 2)) (GOTO . (raise_statement . 
2)) (IF . (raise_statement . [...]
-      ((default . error) (ABORT .  968))
+      ((default . error) (ABORT .  973))
       ((default . error) (OR . (requeue_statement . 1)) (THEN . 
(requeue_statement . 1)) (WHEN . (requeue_statement . 1)) (EXCEPTION . 
(requeue_statement . 1)) (END . (requeue_statement . 1)) (ACCEPT . 
(requeue_statement . 1)) (ABORT . (requeue_statement . 1)) (BEGIN . 
(requeue_statement . 1)) (CASE . (requeue_statement . 1)) (DECLARE . 
(requeue_statement . 1)) (DELAY . (requeue_statement . 1)) (EXIT . 
(requeue_statement . 1)) (FOR . (requeue_statement . 1)) (GOTO . 
(requeue_statement .  [...]
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt  [...]
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt  [...]
       ((default . error) (OR . (extended_return_statement . 1)) (THEN . 
(extended_return_statement . 1)) (WHEN . (extended_return_statement . 1)) 
(EXCEPTION . (extended_return_statement . 1)) (END . (extended_return_statement 
. 1)) (ACCEPT . (extended_return_statement . 1)) (ABORT . 
(extended_return_statement . 1)) (BEGIN . (extended_return_statement . 1)) 
(CASE . (extended_return_statement . 1)) (DECLARE . (extended_return_statement 
. 1)) (DELAY . (extended_return_statement . 1)) (EXIT  [...]
       ((default . error) (OR . (simple_return_statement . 1)) (THEN . 
(simple_return_statement . 1)) (WHEN . (simple_return_statement . 1)) 
(EXCEPTION . (simple_return_statement . 1)) (END . (simple_return_statement . 
1)) (ACCEPT . (simple_return_statement . 1)) (ABORT . (simple_return_statement 
. 1)) (BEGIN . (simple_return_statement . 1)) (CASE . (simple_return_statement 
. 1)) (DECLARE . (simple_return_statement . 1)) (DELAY . 
(simple_return_statement . 1)) (EXIT . (simple_return_state [...]
-      ((default . error) (CONSTANT . (aliased_opt . 0)) (ACCESS . (aliased_opt 
. 0)) (NOT . (aliased_opt . 0)) (IDENTIFIER . (aliased_opt . 0)) 
(STRING_LITERAL . (aliased_opt . 0)) (CHARACTER_LITERAL . (aliased_opt . 0)) 
(ALIASED .  530))
-      ((default . error) (ABORT .  965))
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . 
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA . 
(label_opt . 0)) (RAISE . (labe [...]
-      ((default . error) (SELECT .  963))
-      ((default . error) (WHEN .  686) (TERMINATE .  685) (ACCEPT .  625) 
(DELAY .  630))
+      ((default . error) (CONSTANT . (aliased_opt . 0)) (ACCESS . (aliased_opt 
. 0)) (NOT . (aliased_opt . 0)) (IDENTIFIER . (aliased_opt . 0)) 
(STRING_LITERAL . (aliased_opt . 0)) (CHARACTER_LITERAL . (aliased_opt . 0)) 
(ALIASED .  531))
+      ((default . error) (ABORT .  970))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . 
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA . 
(label_opt . 0)) (RAISE . (labe [...]
+      ((default . error) (SELECT .  968))
+      ((default . error) (WHEN .  691) (TERMINATE .  690) (ACCEPT .  630) 
(DELAY .  635))
       ((default . error) (OR . (entry_call_alternative . 0)) (ELSE . 
(entry_call_alternative . 0)) (THEN . (triggering_alternative . 0)))
       ((default . error) (OR . (entry_call_alternative . 1)) (ELSE . 
(entry_call_alternative . 1)) (THEN . (triggering_alternative . 1)))
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . 
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA . 
(label_opt . 0)) (RAISE . (labe [...]
-      ((default . error) (DELAY .  630))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . 
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA . 
(label_opt . 0)) (RAISE . (labe [...]
+      ((default . error) (DELAY .  635))
       ((default . error) (OR . (delay_alternative . 0)) (END . 
(delay_alternative . 0)) (ELSE . (delay_alternative . 0)) (THEN . 
(triggering_alternative . 2)))
       ((default . error) (END . (select_alternative . 1)) (OR . 
(select_alternative . 1)) (ELSE . (select_alternative . 1)))
-      ((default . error) (EQUAL_GREATER .  958))
+      ((default . error) (EQUAL_GREATER .  963))
       ((default . error) (END . (select_alternative . 5)) (OR . 
(select_alternative . 5)) (ELSE . (select_alternative . 5)))
       ((default . error) (ACCEPT . (label_opt . 1)) (BEGIN . (label_opt . 1)) 
(CASE . (label_opt . 1)) (DECLARE . (label_opt . 1)) (FOR . (label_opt . 1)) 
(IF . (label_opt . 1)) (LOOP . (label_opt . 1)) (RETURN . (label_opt . 1)) 
(SELECT . (label_opt . 1)) (WHILE . (label_opt . 1)) (ABORT . (label_opt . 1)) 
(DELAY . (label_opt . 1)) (EXIT . (label_opt . 1)) (GOTO . (label_opt . 1)) 
(NULL . (label_opt . 1)) (PRAGMA . (label_opt . 1)) (RAISE . (label_opt . 1)) 
(REQUEUE . (label_opt . 1)) ( [...]
-      ((default . error) (SEMICOLON .  957))
-      ((default . error) (END .  956))
-      ((default . error) (SEMICOLON .  955))
-      ((default . error) (OTHERS .  950) (IDENTIFIER .  951) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (SEMICOLON .  962))
+      ((default . error) (END .  961))
+      ((default . error) (SEMICOLON .  960))
+      ((default . error) (OTHERS .  955) (IDENTIFIER .  956) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (END . (exception_handler_list . 0)) (WHEN . 
(exception_handler_list . 0)))
-      ((default . error) (END . (exception_handler_list_opt . 1)) (WHEN .  
945))
+      ((default . error) (END . (exception_handler_list_opt . 1)) (WHEN .  
950))
       ((default . error) (END . (handled_sequence_of_statements . 0)))
       ((default . error) (WHEN . (exception_handler_list . 1)) (END . 
(exception_handler_list . 1)))
       ((default . error) (BAR . (exception_choice . 1)) (EQUAL_GREATER . 
(exception_choice . 1)))
-      ((default . error) (COLON .  1185) (EQUAL_GREATER . (name . 0)) (BAR . 
(name . 0)) (LEFT_PAREN . (name . 0)) (DOT . (name . 0)) (TICK . (name . 0)))
+      ((default . error) (COLON .  1182) (EQUAL_GREATER . (name . 0)) (BAR . 
(name . 0)) (LEFT_PAREN . (name . 0)) (DOT . (name . 0)) (TICK . (name . 0)))
       ((default . error) (EQUAL_GREATER . (exception_choice_list . 0)) (BAR . 
(exception_choice_list . 0)))
-      ((default . error) (BAR .  1183) (EQUAL_GREATER .  1184))
+      ((default . error) (BAR .  1180) (EQUAL_GREATER .  1181))
       ((default . error) (DOT .  90) (BAR . (exception_choice . 0)) 
(EQUAL_GREATER . (exception_choice . 0)) (TICK .  91) (LEFT_PAREN .  107))
       ((default . error) (WHEN . (assignment_statement . 0)) (THEN . 
(assignment_statement . 0)) (OR . (assignment_statement . 0)) (ELSIF . 
(assignment_statement . 0)) (ELSE . (assignment_statement . 0)) 
(CHARACTER_LITERAL . (assignment_statement . 0)) (STRING_LITERAL . 
(assignment_statement . 0)) (IDENTIFIER . (assignment_statement . 0)) 
(LESS_LESS . (assignment_statement . 0)) (WHILE . (assignment_statement . 0)) 
(SELECT . (assignment_statement . 0)) (RETURN . (assignment_statement . 0 [...]
-      ((default . error) (LOOP .  1182))
+      ((default . error) (LOOP .  1179))
       ((default . error) (IDENTIFIER . (subprogram_body . 0)) (TYPE . 
(subprogram_body . 0)) (TASK . (subprogram_body . 0)) (SUBTYPE . 
(subprogram_body . 0)) (PROTECTED . (subprogram_body . 0)) (FOR . 
(subprogram_body . 0)) (ENTRY . (subprogram_body . 0)) (BEGIN . 
(subprogram_body . 0)) (END . (subprogram_body . 0)) ($EOI . (subprogram_body . 
0)) (FUNCTION . (subprogram_body . 0)) (GENERIC . (subprogram_body . 0)) 
(LIMITED . (subprogram_body . 0)) (NOT . (subprogram_body . 0)) (OVERRIDIN [...]
-      ((default . error) (TERMINATE .  1179) (ACCEPT .  625) (DELAY .  630))
-      ((default . error) (END .  1178))
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (OR . 
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0)) 
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) 
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) 
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) 
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) 
(EXIT . (label_opt . 0)) (GOTO . ( [...]
-      ((default . error) (END .  1176))
+      ((default . error) (TERMINATE .  1176) (ACCEPT .  630) (DELAY .  635))
+      ((default . error) (END .  1175))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (OR . 
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0)) 
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) 
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) 
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) 
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) 
(EXIT . (label_opt . 0)) (GOTO . ( [...]
+      ((default . error) (END .  1173))
       ((default . error) (ELSE . (select_alternative_list . 1)) (END . 
(select_alternative_list . 1)) (OR . (select_alternative_list . 1)))
-      ((default . error) (SEMICOLON .  1175))
-      ((default . error) (END .  1174))
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . 
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA . 
(label_opt . 0)) (RAISE . (labe [...]
-      ((default . error) (ACCESS . (constant_opt . 0)) (NOT . (constant_opt . 
0)) (IDENTIFIER . (constant_opt . 0)) (STRING_LITERAL . (constant_opt . 0)) 
(CHARACTER_LITERAL . (constant_opt . 0)) (CONSTANT .  736))
+      ((default . error) (SEMICOLON .  1172))
       ((default . error) (END .  1171))
-      ((default . error) (SEMICOLON .  1170))
-      ((default . error) (SEMICOLON .  1169))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
711))
-      ((default . error) (ELSE .  1163) (END .  1165) (ELSIF .  1164))
-      ((default . error) (SEMICOLON .  1162))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . 
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA . 
(label_opt . 0)) (RAISE . (labe [...]
+      ((default . error) (ACCESS . (constant_opt . 0)) (NOT . (constant_opt . 
0)) (IDENTIFIER . (constant_opt . 0)) (STRING_LITERAL . (constant_opt . 0)) 
(CHARACTER_LITERAL . (constant_opt . 0)) (CONSTANT .  757))
+      ((default . error) (END .  1168))
+      ((default . error) (SEMICOLON .  1167))
+      ((default . error) (SEMICOLON .  1166))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
716))
+      ((default . error) (ELSE .  1160) (END .  1162) (ELSIF .  1161))
+      ((default . error) (SEMICOLON .  1159))
       ((default . error) (WHEN . (delay_statement . 0)) (ELSIF . 
(delay_statement . 0)) (EXCEPTION . (delay_statement . 0)) (CHARACTER_LITERAL . 
(delay_statement . 0)) (STRING_LITERAL . (delay_statement . 0)) (IDENTIFIER . 
(delay_statement . 0)) (LESS_LESS . (delay_statement . 0)) (WHILE . 
(delay_statement . 0)) (SELECT . (delay_statement . 0)) (RETURN . 
(delay_statement . 0)) (REQUEUE . (delay_statement . 0)) (RAISE . 
(delay_statement . 0)) (PRAGMA . (delay_statement . 0)) (NULL . (dela [...]
-      ((default . error) (END .  1161))
-      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (OTHERS .  175) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (PLUS .  151) (MINUS .  150) 
(ABS .  144) (NOT .  174) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(LEFT_PAREN .  145))
+      ((default . error) (END .  1158))
+      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (OTHERS .  182) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (PLUS .  154) (MINUS .  153) 
(ABS .  144) (NOT .  181) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(LEFT_PAREN .  148))
       ((default . error) (END . (case_statement_alternative_list . 0)) (WHEN . 
(case_statement_alternative_list . 0)))
-      ((default . error) (END .  1158) (WHEN .  975))
-      ((default . error) (SEMICOLON .  1157))
-      ((default . error) (DO .  1155) (SEMICOLON .  1156))
-      ((default . error) (BEGIN .  1154))
-      ((default . error) (IDENTIFIER .  1153))
+      ((default . error) (END .  1155) (WHEN .  980))
+      ((default . error) (SEMICOLON .  1154))
+      ((default . error) (DO .  1152) (SEMICOLON .  1153))
+      ((default . error) (BEGIN .  1151))
+      ((default . error) (IDENTIFIER .  1150))
       ((default . error) (PROCEDURE . (protected_operation_item . 5)) 
(OVERRIDING . (protected_operation_item . 5)) (NOT . (protected_operation_item 
. 5)) (FUNCTION . (protected_operation_item . 5)) (FOR . 
(protected_operation_item . 5)) (ENTRY . (protected_operation_item . 5)) (END . 
(protected_operation_item . 5)))
       ((default . error) (PROCEDURE . (protected_operation_item . 2)) 
(OVERRIDING . (protected_operation_item . 2)) (NOT . (protected_operation_item 
. 2)) (FUNCTION . (protected_operation_item . 2)) (FOR . 
(protected_operation_item . 2)) (ENTRY . (protected_operation_item . 2)) (END . 
(protected_operation_item . 2)))
       ((default . error) (PROCEDURE . (protected_operation_item . 3)) 
(OVERRIDING . (protected_operation_item . 3)) (NOT . (protected_operation_item 
. 3)) (FUNCTION . (protected_operation_item . 3)) (FOR . 
(protected_operation_item . 3)) (ENTRY . (protected_operation_item . 3)) (END . 
(protected_operation_item . 3)))
       ((default . error) (PROCEDURE . (protected_operation_item . 4)) 
(OVERRIDING . (protected_operation_item . 4)) (NOT . (protected_operation_item 
. 4)) (FUNCTION . (protected_operation_item . 4)) (FOR . 
(protected_operation_item . 4)) (ENTRY . (protected_operation_item . 4)) (END . 
(protected_operation_item . 4)))
       ((default . error) (FUNCTION .  1) (PROCEDURE .  9))
       ((default . error) (END . (protected_operation_item_list . 0)) (ENTRY . 
(protected_operation_item_list . 0)) (FOR . (protected_operation_item_list . 
0)) (FUNCTION . (protected_operation_item_list . 0)) (NOT . 
(protected_operation_item_list . 0)) (OVERRIDING . 
(protected_operation_item_list . 0)) (PROCEDURE . 
(protected_operation_item_list . 0)))
-      ((default . error) (END . (protected_operation_item_list_opt . 1)) 
(ENTRY .  981) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(FOR .  298))
-      ((default . error) (END .  1150))
+      ((default . error) (END . (protected_operation_item_list_opt . 1)) 
(ENTRY .  986) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(FOR .  299))
+      ((default . error) (END .  1147))
       ((default . error) (PROCEDURE . (protected_operation_item . 1)) 
(OVERRIDING . (protected_operation_item . 1)) (NOT . (protected_operation_item 
. 1)) (FUNCTION . (protected_operation_item . 1)) (FOR . 
(protected_operation_item . 1)) (ENTRY . (protected_operation_item . 1)) (END . 
(protected_operation_item . 1)))
       ((default . error) (PROCEDURE . (protected_operation_item . 0)) 
(OVERRIDING . (protected_operation_item . 0)) (NOT . (protected_operation_item 
. 0)) (FUNCTION . (protected_operation_item . 0)) (FOR . 
(protected_operation_item . 0)) (ENTRY . (protected_operation_item . 0)) (END . 
(protected_operation_item . 0)))
-      ((default . error) (LOOP . (iterator_specification . 0)) (EQUAL_GREATER 
. (iterator_specification . 0)))
-      ((default . error) (DOT .  90) (TICK .  91) (LOOP . 
(iterator_specification . 4)) (EQUAL_GREATER . (iterator_specification . 4)) 
(LEFT_PAREN .  107))
-      ((default . error) (REVERSE .  1148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
-      ((default . error) (SEMICOLON .  1147))
-      ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON . 
(parameter_profile_opt . 0)) (LEFT_PAREN .  798))
+      ((default . error) (COMMA . (case_expression_alternative . 0)) 
(RIGHT_PAREN . (case_expression_alternative . 0)))
+      ((default . error) (DO . (subtype_indication . 1)) (LOOP . 
(subtype_indication . 1)) (COLON_EQUAL . (subtype_indication . 1)) (SEMICOLON . 
(subtype_indication . 1)) (OF . (subtype_indication . 1)) (AND . 
(subtype_indication . 1)) (WITH . (subtype_indication . 1)) (EQUAL_GREATER . 
(subtype_indication . 1)) (COMMA . (subtype_indication . 1)) (RIGHT_PAREN . 
(subtype_indication . 1)) (DOT .  90) (TICK .  91) (RANGE .  902) (LEFT_PAREN . 
 827))
+      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
+      ((default . error) (DOT .  90) (TICK .  91) (LOOP . 
(iterator_specification . 3)) (EQUAL_GREATER . (iterator_specification . 3)) 
(LEFT_PAREN .  107))
+      ((default . error) (DO . (constraint . 0)) (LOOP . (constraint . 0)) (OF 
. (constraint . 0)) (AND . (constraint . 0)) (SEMICOLON . (constraint . 0)) 
(WITH . (constraint . 0)) (COLON_EQUAL . (constraint . 0)) (EQUAL_GREATER . 
(constraint . 0)) (RIGHT_PAREN . (constraint . 0)) (COMMA . (constraint . 0)))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (COMMA . (if_expression . 0)) (RIGHT_PAREN . 
(if_expression . 0)))
+      ((default . error) (SEMICOLON .  1143))
+      ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON . 
(parameter_profile_opt . 0)) (LEFT_PAREN .  808))
       ((default . error) (IDENTIFIER . (entry_declaration . 1)) (USE . 
(entry_declaration . 1)) (TYPE . (entry_declaration . 1)) (TASK . 
(entry_declaration . 1)) (SUBTYPE . (entry_declaration . 1)) (PROTECTED . 
(entry_declaration . 1)) (PROCEDURE . (entry_declaration . 1)) (PRAGMA . 
(entry_declaration . 1)) (PACKAGE . (entry_declaration . 1)) (OVERRIDING . 
(entry_declaration . 1)) (NOT . (entry_declaration . 1)) (GENERIC . 
(entry_declaration . 1)) (FUNCTION . (entry_declaration . 1)) (FO [...]
-      ((default . error) (WITH . (paren_expression . 2)) (SEMICOLON . 
(paren_expression . 2)))
       ((default . error) (WITH . (paren_expression . 0)) (SEMICOLON . 
(paren_expression . 0)))
       ((default . error) (WITH . (paren_expression . 1)) (SEMICOLON . 
(paren_expression . 1)))
       ((default . error) (IDENTIFIER . (expression_function_declaration . 0)) 
(USE . (expression_function_declaration . 0)) (TYPE . 
(expression_function_declaration . 0)) (TASK . (expression_function_declaration 
. 0)) (SUBTYPE . (expression_function_declaration . 0)) (PROTECTED . 
(expression_function_declaration . 0)) (PROCEDURE . 
(expression_function_declaration . 0)) (PRAGMA . 
(expression_function_declaration . 0)) (PACKAGE . 
(expression_function_declaration . 0)) (OVERRIDING . (expres [...]
       ((default . error) (IDENTIFIER . (null_procedure_declaration . 0)) (USE 
. (null_procedure_declaration . 0)) (TYPE . (null_procedure_declaration . 0)) 
(TASK . (null_procedure_declaration . 0)) (SUBTYPE . 
(null_procedure_declaration . 0)) (PROTECTED . (null_procedure_declaration . 
0)) (PROCEDURE . (null_procedure_declaration . 0)) (PRAGMA . 
(null_procedure_declaration . 0)) (PACKAGE . (null_procedure_declaration . 0)) 
(OVERRIDING . (null_procedure_declaration . 0)) (NOT . (null_proce [...]
       ((default . error) (IDENTIFIER . (abstract_subprogram_declaration . 0)) 
(USE . (abstract_subprogram_declaration . 0)) (TYPE . 
(abstract_subprogram_declaration . 0)) (TASK . (abstract_subprogram_declaration 
. 0)) (SUBTYPE . (abstract_subprogram_declaration . 0)) (PROTECTED . 
(abstract_subprogram_declaration . 0)) (PROCEDURE . 
(abstract_subprogram_declaration . 0)) (PRAGMA . 
(abstract_subprogram_declaration . 0)) (PACKAGE . 
(abstract_subprogram_declaration . 0)) (OVERRIDING . (abstra [...]
       ((default . error) (IDENTIFIER . (subprogram_body_stub . 0)) (USE . 
(subprogram_body_stub . 0)) (TYPE . (subprogram_body_stub . 0)) (TASK . 
(subprogram_body_stub . 0)) (SUBTYPE . (subprogram_body_stub . 0)) (PROTECTED . 
(subprogram_body_stub . 0)) (PROCEDURE . (subprogram_body_stub . 0)) (PRAGMA . 
(subprogram_body_stub . 0)) (PACKAGE . (subprogram_body_stub . 0)) (OVERRIDING 
. (subprogram_body_stub . 0)) (NOT . (subprogram_body_stub . 0)) (GENERIC . 
(subprogram_body_stub . 0)) (FUN [...]
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (SEMICOLON .  1144))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (SEMICOLON .  1142))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (SEMICOLON .  1140))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (SEMICOLON .  1138))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (SEMICOLON .  1136))
       ((default . error) (ACCESS . (null_exclusion_opt . 1)) (IDENTIFIER .  
48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (BEGIN . (declaration . 9)) (ENTRY . (declaration . 
9)) (FOR . (declaration . 9)) (FUNCTION . (declaration . 9)) (GENERIC . 
(declaration . 9)) (NOT . (declaration . 9)) (OVERRIDING . (declaration . 9)) 
(PACKAGE . (declaration . 9)) (PRAGMA . (declaration . 9)) (PROCEDURE . 
(declaration . 9)) (PROTECTED . (declaration . 9)) (SUBTYPE . (declaration . 
9)) (TASK . (declaration . 9)) (TYPE . (declaration . 9)) (USE . (declaration . 
9)) (IDENTIFIER . (declaration . 9)) [...]
       ((default . error) (DOT .  90) (TICK .  91) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109) (LEFT_PAREN .  107))
-      ((default . error) (SEMICOLON .  1138))
-      ((default . error) (SEMICOLON .  1137))
-      ((default . error) (SEMICOLON .  1136))
+      ((default . error) (SEMICOLON .  1134))
+      ((default . error) (SEMICOLON .  1133))
+      ((default . error) (SEMICOLON .  1132))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
       ((default . error) (WITH . (record_type_definition . 0)) (SEMICOLON . 
(record_type_definition . 0)))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (NOT .  750) (IDENTIFIER .  48) (CHARACTER_LITERAL .  
50) (STRING_LITERAL .  49))
+      ((default . error) (NOT .  729) (IDENTIFIER .  48) (CHARACTER_LITERAL .  
50) (STRING_LITERAL .  49))
       ((default . error) (BEGIN . (incomplete_type_declaration . 0)) (ENTRY . 
(incomplete_type_declaration . 0)) (FOR . (incomplete_type_declaration . 0)) 
(FUNCTION . (incomplete_type_declaration . 0)) (GENERIC . 
(incomplete_type_declaration . 0)) (NOT . (incomplete_type_declaration . 0)) 
(OVERRIDING . (incomplete_type_declaration . 0)) (PACKAGE . 
(incomplete_type_declaration . 0)) (PRAGMA . (incomplete_type_declaration . 0)) 
(PROCEDURE . (incomplete_type_declaration . 0)) (PROTECTED . ( [...]
-      ((default . error) (IS . (direct_name_opt . 0)) (IDENTIFIER .  1129) 
(STRING_LITERAL .  1130))
-      ((default . error) (SEMICOLON .  1128))
+      ((default . error) (IS . (direct_name_opt . 0)) (IDENTIFIER .  1125) 
(STRING_LITERAL .  1126))
+      ((default . error) (SEMICOLON .  1124))
       ((default . error) (WHEN . (component_item . 1)) (END . (component_item 
. 1)) (IDENTIFIER . (component_item . 1)) (FOR . (component_item . 1)) (CASE . 
(component_item . 1)))
       ((default . error) (WHEN . (component_item . 0)) (END . (component_item 
. 0)) (IDENTIFIER . (component_item . 0)) (FOR . (component_item . 0)) (CASE . 
(component_item . 0)))
       ((default . error) (WHEN . (component_list . 0)) (END . (component_list 
. 0)) (CASE . (component_list . 0)) (FOR . (component_list . 0)) (IDENTIFIER . 
(component_list . 0)))
-      ((default . error) (WHEN . (component_list_opt . 1)) (END . 
(component_list_opt . 1)) (CASE .  1022) (IDENTIFIER .  77) (FOR .  298))
-      ((default . error) (END .  1125))
-      ((default . error) (COMMA .  96) (COLON .  1124))
+      ((default . error) (WHEN . (component_list_opt . 1)) (END . 
(component_list_opt . 1)) (CASE .  1030) (IDENTIFIER .  77) (FOR .  299))
+      ((default . error) (END .  1121))
+      ((default . error) (COMMA .  96) (COLON .  1120))
       ((default . error) (WHEN . (component_list . 3)) (END . (component_list 
. 3)) (CASE . (component_list . 3)) (FOR . (component_list . 3)) (IDENTIFIER . 
(component_list . 3)))
-      ((default . error) (DOT_DOT .  1123))
+      ((default . error) (DOT_DOT .  1119))
       ((default . error) (SEMICOLON . (record_definition . 1)) (WITH . 
(record_definition . 1)))
       ((default . error) (SEMICOLON . (type_definition . 2)) (WITH . 
(type_definition . 2)))
       ((default . error) (COMMA . (enumeration_literal . 0)) (RIGHT_PAREN . 
(enumeration_literal . 0)))
       ((default . error) (COMMA . (enumeration_literal . 1)) (RIGHT_PAREN . 
(enumeration_literal . 1)))
       ((default . error) (RIGHT_PAREN . (enumeration_literal_list . 0)) (COMMA 
. (enumeration_literal_list . 0)))
-      ((default . error) (COMMA .  1122) (RIGHT_PAREN .  1121))
-      ((default . error) (WITH . (real_range_specification_opt . 0)) 
(SEMICOLON . (real_range_specification_opt . 0)) (RANGE .  1118))
-      ((default . error) (DIGITS .  1117) (WITH . 
(real_range_specification_opt . 0)) (SEMICOLON . (real_range_specification_opt 
. 0)) (RANGE .  1118))
+      ((default . error) (COMMA .  1118) (RIGHT_PAREN .  1117))
+      ((default . error) (WITH . (real_range_specification_opt . 0)) 
(SEMICOLON . (real_range_specification_opt . 0)) (RANGE .  1114))
+      ((default . error) (DIGITS .  1113) (WITH . 
(real_range_specification_opt . 0)) (SEMICOLON . (real_range_specification_opt 
. 0)) (RANGE .  1114))
       ((default . error) (NEW . ((abstract_limited_synchronized_opt . 1) 
(abstract_limited_opt . 1))))
-      ((default . error) (SEMICOLON .  1116))
-      ((default . error) (NEW .  1114) (END . (declarative_part_opt . 0)) 
(PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  301) (PRAGMA .  
7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt 
. 2)) (FOR .  298) (IDENTIFIER .  304) (TYPE .  303) (GENERIC .  2) (PROTECTED 
.  300) (TASK .  302) (PACKAGE .  299))
+      ((default . error) (SEMICOLON .  1112))
+      ((default . error) (NEW .  1110) (END . (declarative_part_opt . 0)) 
(PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  302) (PRAGMA .  
7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt 
. 2)) (FOR .  299) (IDENTIFIER .  305) (TYPE .  304) (GENERIC .  2) (PROTECTED 
.  301) (TASK .  303) (PACKAGE .  300))
       ((default . error) (IDENTIFIER . (task_type_declaration . 2)) (USE . 
(task_type_declaration . 2)) (TYPE . (task_type_declaration . 2)) (TASK . 
(task_type_declaration . 2)) (SUBTYPE . (task_type_declaration . 2)) (PROTECTED 
. (task_type_declaration . 2)) (PROCEDURE . (task_type_declaration . 2)) 
(PRAGMA . (task_type_declaration . 2)) (PACKAGE . (task_type_declaration . 2)) 
(OVERRIDING . (task_type_declaration . 2)) (NOT . (task_type_declaration . 2)) 
(GENERIC . (task_type_declaratio [...]
       ((default . error) (BEGIN . (single_task_declaration . 1)) (ENTRY . 
(single_task_declaration . 1)) (FOR . (single_task_declaration . 1)) (FUNCTION 
. (single_task_declaration . 1)) (GENERIC . (single_task_declaration . 1)) (NOT 
. (single_task_declaration . 1)) (OVERRIDING . (single_task_declaration . 1)) 
(PACKAGE . (single_task_declaration . 1)) (PRAGMA . (single_task_declaration . 
1)) (PROCEDURE . (single_task_declaration . 1)) (PROTECTED . 
(single_task_declaration . 1)) (SUBTYPE . [...]
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
711))
-      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  301) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  298) (IDENTIFIER .  304) (TYPE 
.  303) (GENERIC .  2) (PROTECTED .  300) (TASK .  302) (PACKAGE .  299))
-      ((default . error) (AND .  1072) (WITH .  1111))
-      ((default . error) (DO . (subtype_indication . 1)) (LOOP . 
(subtype_indication . 1)) (COLON_EQUAL . (subtype_indication . 1)) (SEMICOLON . 
(subtype_indication . 1)) (OF . (subtype_indication . 1)) (AND . 
(subtype_indication . 1)) (WITH . (subtype_indication . 1)) (EQUAL_GREATER . 
(subtype_indication . 1)) (COMMA . (subtype_indication . 1)) (RIGHT_PAREN . 
(subtype_indication . 1)) (DOT .  90) (TICK .  91) (RANGE .  851) (LEFT_PAREN . 
 824))
-      ((default . error) (LOOP . (constraint . 0)) (EQUAL_GREATER . 
(constraint . 0)) (DO . (constraint . 0)) (OF . (constraint . 0)) (AND . 
(constraint . 0)) (SEMICOLON . (constraint . 0)) (WITH . (constraint . 0)) 
(COLON_EQUAL . (constraint . 0)) (RIGHT_PAREN . (constraint . 0)) (COMMA . 
(constraint . 0)))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
716))
+      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  302) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  299) (IDENTIFIER .  305) (TYPE 
.  304) (GENERIC .  2) (PROTECTED .  301) (TASK .  303) (PACKAGE .  300))
+      ((default . error) (AND .  1078) (WITH .  1107))
       ((default . error) (IDENTIFIER . (subtype_declaration . 0)) (USE . 
(subtype_declaration . 0)) (TYPE . (subtype_declaration . 0)) (TASK . 
(subtype_declaration . 0)) (SUBTYPE . (subtype_declaration . 0)) (PROTECTED . 
(subtype_declaration . 0)) (PROCEDURE . (subtype_declaration . 0)) (PRAGMA . 
(subtype_declaration . 0)) (PACKAGE . (subtype_declaration . 0)) (OVERRIDING . 
(subtype_declaration . 0)) (NOT . (subtype_declaration . 0)) (GENERIC . 
(subtype_declaration . 0)) (FUNCTION . (sub [...]
-      ((default . error) (SEMICOLON .  1109))
-      ((default . error) (NEW .  1107) (END . (declarative_part_opt . 0)) 
(PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  301) (PRAGMA .  
7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt 
. 2)) (FOR .  298) (IDENTIFIER .  304) (TYPE .  303) (GENERIC .  2) (PROTECTED 
.  300) (TASK .  302) (PACKAGE .  299))
+      ((default . error) (SEMICOLON .  1106))
+      ((default . error) (NEW .  1104) (END . (declarative_part_opt . 0)) 
(PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  302) (PRAGMA .  
7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt 
. 2)) (FOR .  299) (IDENTIFIER .  305) (TYPE .  304) (GENERIC .  2) (PROTECTED 
.  301) (TASK .  303) (PACKAGE .  300))
       ((default . error) (BEGIN . (single_protected_declaration . 1)) (ENTRY . 
(single_protected_declaration . 1)) (FOR . (single_protected_declaration . 1)) 
(FUNCTION . (single_protected_declaration . 1)) (GENERIC . 
(single_protected_declaration . 1)) (NOT . (single_protected_declaration . 1)) 
(OVERRIDING . (single_protected_declaration . 1)) (PACKAGE . 
(single_protected_declaration . 1)) (PRAGMA . (single_protected_declaration . 
1)) (PROCEDURE . (single_protected_declaration . 1)) (PRO [...]
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
711))
-      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  301) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  298) (IDENTIFIER .  304) (TYPE 
.  303) (GENERIC .  2) (PROTECTED .  300) (TASK .  302) (PACKAGE .  299))
-      ((default . error) (AND .  1072) (WITH .  1104))
-      ((default . error) (SEMICOLON .  1103))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
716))
+      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  302) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  299) (IDENTIFIER .  305) (TYPE 
.  304) (GENERIC .  2) (PROTECTED .  301) (TASK .  303) (PACKAGE .  300))
+      ((default . error) (AND .  1078) (WITH .  1101))
+      ((default . error) (SEMICOLON .  1100))
       ((default . error) (WHEN . (at_clause . 0)) (BEGIN . (at_clause . 0)) 
(ENTRY . (at_clause . 0)) (FOR . (at_clause . 0)) (FUNCTION . (at_clause . 0)) 
(GENERIC . (at_clause . 0)) (NOT . (at_clause . 0)) (OVERRIDING . (at_clause . 
0)) (PACKAGE . (at_clause . 0)) (PRAGMA . (at_clause . 0)) (PROCEDURE . 
(at_clause . 0)) (PROTECTED . (at_clause . 0)) (SUBTYPE . (at_clause . 0)) 
(TASK . (at_clause . 0)) (TYPE . (at_clause . 0)) (USE . (at_clause . 0)) 
(IDENTIFIER . (at_clause . 0)) (CASE  [...]
-      ((default . error) (AT .  1102))
+      ((default . error) (AT .  1099))
       ((default . error) (END . (component_clause_list . 0)) (IDENTIFIER . 
(component_clause_list . 0)))
-      ((default . error) (END .  1100) (IDENTIFIER .  1059))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
+      ((default . error) (END .  1097) (IDENTIFIER .  1065))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (RIGHT_PAREN . (discrete_subtype_definition_list . 
1)) (COMMA . (discrete_subtype_definition_list . 1)))
-      ((default . error) (ALIASED .  1093) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt 
. 0)) (NOT .  883))
+      ((default . error) (ALIASED .  1090) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt 
. 0)) (NOT .  883))
       ((default . error) (RIGHT_PAREN . (index_subtype_definition_list . 1)) 
(COMMA . (index_subtype_definition_list . 1)))
-      ((default . error) (DOT .  90) (RANGE .  1097) (TICK .  91) (LEFT_PAREN 
.  107))
-      ((default . error) (ALIASED .  1093) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt 
. 0)) (NOT .  883))
+      ((default . error) (DOT .  90) (RANGE .  1094) (TICK .  91) (LEFT_PAREN 
.  107))
+      ((default . error) (ALIASED .  1090) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt 
. 0)) (NOT .  883))
       ((default . error) (COMMA . (index_subtype_definition . 0)) (RIGHT_PAREN 
. (index_subtype_definition . 0)))
-      ((default . error) (NUMERIC_LITERAL .  152) (NULL .  1092) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (COMMA .  831) (RIGHT_PAREN .  1091))
+      ((default . error) (NUMERIC_LITERAL .  155) (NULL .  1089) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (COMMA .  834) (RIGHT_PAREN .  1088))
       ((default . error) (BAR . (discrete_choice . 2)) (EQUAL_GREATER . 
(discrete_choice . 2)) (RIGHT_PAREN . ((range_list . 0) 
(discrete_subtype_definition . 1))) (COMMA . ((range_list . 0) 
(discrete_subtype_definition . 1))))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (PRIVATE .  1089))
-      ((default . error) (AND .  1072) (WITH . (and_interface_list_opt . 1)) 
(SEMICOLON . (and_interface_list_opt . 1)))
+      ((default . error) (PRIVATE .  1086))
+      ((default . error) (AND .  1078) (WITH . (and_interface_list_opt . 1)) 
(SEMICOLON . (and_interface_list_opt . 1)))
       ((default . error) (WITH . (formal_package_actual_part . 0)) (SEMICOLON 
. (formal_package_actual_part . 0)))
       ((default . error) (PACKAGE . (formal_package_declaration . 0)) 
(PROCEDURE . (formal_package_declaration . 0)) (FUNCTION . 
(formal_package_declaration . 0)) (PRAGMA . (formal_package_declaration . 0)) 
(TYPE . (formal_package_declaration . 0)) (USE . (formal_package_declaration . 
0)) (WITH . (formal_package_declaration . 0)) (IDENTIFIER . 
(formal_package_declaration . 0)))
       ((default . error) (PACKAGE . (formal_object_declaration . 0)) 
(PROCEDURE . (formal_object_declaration . 0)) (FUNCTION . 
(formal_object_declaration . 0)) (PRAGMA . (formal_object_declaration . 0)) 
(TYPE . (formal_object_declaration . 0)) (USE . (formal_object_declaration . 
0)) (WITH . (formal_object_declaration . 0)) (IDENTIFIER . 
(formal_object_declaration . 0)))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (ELSIF . (elsif_expression_list . 1)) (ELSE . 
(elsif_expression_list . 1)) (RIGHT_PAREN . (elsif_expression_list . 1)))
-      ((default . error) (THEN .  1087))
-      ((default . error) (RIGHT_PAREN . (if_expression . 2)))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (RIGHT_PAREN . (case_expression_alternative_list . 
1)) (COMMA . (case_expression_alternative_list . 1)))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (RIGHT_PAREN . (parameter_specification . 0)) 
(SEMICOLON . (parameter_specification . 0)))
-      ((default . error) (COMMA . (case_expression_alternative . 0)) 
(RIGHT_PAREN . (case_expression_alternative . 0)))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (RIGHT_PAREN . (if_expression . 0)))
       ((default . error) (WITH . (formal_derived_type_definition . 0)) 
(SEMICOLON . (formal_derived_type_definition . 0)))
       ((default . error) (DOT .  90) (TICK .  91) (WITH . (interface_list . 
1)) (SEMICOLON . (interface_list . 1)) (AND . (interface_list . 1)) (LEFT_PAREN 
.  107))
-      ((default . error) (LOOP . (index_constraint . 0)) (DO . 
(index_constraint . 0)) (EQUAL_GREATER . (index_constraint . 0)) (COMMA . 
(index_constraint . 0)) (RIGHT_PAREN . (index_constraint . 0)) (COLON_EQUAL . 
(index_constraint . 0)) (WITH . (index_constraint . 0)) (SEMICOLON . 
(index_constraint . 0)) (AND . (index_constraint . 0)) (OF . (index_constraint 
. 0)))
+      ((default . error) (LOOP . (index_constraint . 0)) (DO . 
(index_constraint . 0)) (RIGHT_PAREN . (index_constraint . 0)) (COMMA . 
(index_constraint . 0)) (EQUAL_GREATER . (index_constraint . 0)) (COLON_EQUAL . 
(index_constraint . 0)) (WITH . (index_constraint . 0)) (SEMICOLON . 
(index_constraint . 0)) (AND . (index_constraint . 0)) (OF . (index_constraint 
. 0)))
       ((default . error) (PLUS . (primary . 1)) (MINUS . (primary . 1)) 
(AMPERSAND . (primary . 1)) (DOT_DOT . (primary . 1)) (MOD . (primary . 1)) 
(REM . (primary . 1)) (SLASH . (primary . 1)) (STAR . (primary . 1)) (XOR . 
(primary . 1)) (OR . (primary . 1)) (AND . (primary . 1)) (EQUAL_GREATER . 
(primary . 1)) (BAR . (primary . 1)) (IN . (primary . 1)) (NOT . (primary . 1)) 
(EQUAL . (primary . 1)) (GREATER . (primary . 1)) (GREATER_EQUAL . (primary . 
1)) (LESS . (primary . 1)) (LESS_EQ [...]
       ((default . error) (ACCESS . (null_exclusion_opt . 0)) (NOT .  883) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (WITH . (component_definition . 3)) (SEMICOLON . 
(component_definition . 3)) (COLON_EQUAL . (component_definition . 3)))
       ((default . error) (WITH . (array_type_definition . 0)) (SEMICOLON . 
(array_type_definition . 0)) (COLON_EQUAL . (array_type_definition . 0)))
       ((default . error) (WITH . (component_definition . 1)) (SEMICOLON . 
(component_definition . 1)) (COLON_EQUAL . (component_definition . 1)))
-      ((default . error) (BOX .  1068))
+      ((default . error) (BOX .  1074))
       ((default . error) (WITH . (array_type_definition . 1)) (SEMICOLON . 
(array_type_definition . 1)) (COLON_EQUAL . (array_type_definition . 1)))
-      ((default . error) (SEMICOLON .  1244))
-      ((default . error) (RECORD .  1243))
+      ((default . error) (SEMICOLON .  1240))
+      ((default . error) (RECORD .  1239))
       ((default . error) (IDENTIFIER . (component_clause_list . 1)) (END . 
(component_clause_list . 1)))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (PRIVATE . (package_body_stub . 0)) (END . 
(package_body_stub . 0)) (BEGIN . (package_body_stub . 0)) (ENTRY . 
(package_body_stub . 0)) (FOR . (package_body_stub . 0)) (FUNCTION . 
(package_body_stub . 0)) (GENERIC . (package_body_stub . 0)) (NOT . 
(package_body_stub . 0)) (OVERRIDING . (package_body_stub . 0)) (PACKAGE . 
(package_body_stub . 0)) (PRAGMA . (package_body_stub . 0)) (PROCEDURE . 
(package_body_stub . 0)) (PROTECTED . (package_body_stub . 0)) (SUBTYPE [...]
-      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  301) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 298) (IDENTIFIER .  304) (TYPE .  303) (GENERIC .  2) (PROTECTED .  300) (TASK 
.  302) (PACKAGE .  299))
-      ((default . error) (END .  1240))
+      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  302) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 299) (IDENTIFIER .  305) (TYPE .  304) (GENERIC .  2) (PROTECTED .  301) (TASK 
.  303) (PACKAGE .  300))
+      ((default . error) (END .  1236))
       ((default . error) (SEMICOLON . (protected_definition . 1)))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (SEMICOLON .  1238))
+      ((default . error) (SEMICOLON .  1234))
       ((default . error) (PRIVATE . (protected_body_stub . 0)) (END . 
(protected_body_stub . 0)) (BEGIN . (protected_body_stub . 0)) (ENTRY . 
(protected_body_stub . 0)) (FOR . (protected_body_stub . 0)) (FUNCTION . 
(protected_body_stub . 0)) (GENERIC . (protected_body_stub . 0)) (NOT . 
(protected_body_stub . 0)) (OVERRIDING . (protected_body_stub . 0)) (PACKAGE . 
(protected_body_stub . 0)) (PRAGMA . (protected_body_stub . 0)) (PROCEDURE . 
(protected_body_stub . 0)) (PROTECTED . (protecte [...]
-      ((default . error) (LOOP . (subtype_indication . 0)) (DO . 
(subtype_indication . 0)) (RIGHT_PAREN . (subtype_indication . 0)) (COMMA . 
(subtype_indication . 0)) (EQUAL_GREATER . (subtype_indication . 0)) (WITH . 
(subtype_indication . 0)) (AND . (subtype_indication . 0)) (OF . 
(subtype_indication . 0)) (SEMICOLON . (subtype_indication . 0)) (COLON_EQUAL . 
(subtype_indication . 0)))
-      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  301) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 298) (IDENTIFIER .  304) (TYPE .  303) (GENERIC .  2) (PROTECTED .  300) (TASK 
.  302) (PACKAGE .  299))
-      ((default . error) (END .  1236))
+      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  302) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 299) (IDENTIFIER .  305) (TYPE .  304) (GENERIC .  2) (PROTECTED .  301) (TASK 
.  303) (PACKAGE .  300))
+      ((default . error) (END .  1232))
       ((default . error) (SEMICOLON . (task_definition . 1)))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (SEMICOLON .  1234))
+      ((default . error) (SEMICOLON .  1230))
       ((default . error) (PRIVATE . (task_body_stub . 0)) (END . 
(task_body_stub . 0)) (BEGIN . (task_body_stub . 0)) (ENTRY . (task_body_stub . 
0)) (FOR . (task_body_stub . 0)) (FUNCTION . (task_body_stub . 0)) (GENERIC . 
(task_body_stub . 0)) (NOT . (task_body_stub . 0)) (OVERRIDING . 
(task_body_stub . 0)) (PACKAGE . (task_body_stub . 0)) (PRAGMA . 
(task_body_stub . 0)) (PROCEDURE . (task_body_stub . 0)) (PROTECTED . 
(task_body_stub . 0)) (SUBTYPE . (task_body_stub . 0)) (TASK . (task_ [...]
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (WITH . (type_definition . 4)) (SEMICOLON . 
(type_definition . 4)))
       ((default . error) (WITH . (type_definition . 3)) (SEMICOLON . 
(type_definition . 3)))
       ((default . error) (SEMICOLON . (enumeration_type_definition . 0)) (WITH 
. (enumeration_type_definition . 0)))
-      ((default . error) (IDENTIFIER .  1034) (CHARACTER_LITERAL .  1035))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
-      ((default . error) (ALIASED .  1093) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt 
. 0)) (NOT .  883))
-      ((default . error) (RECORD .  1228))
+      ((default . error) (IDENTIFIER .  1042) (CHARACTER_LITERAL .  1043))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (ALIASED .  1090) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt 
. 0)) (NOT .  883))
+      ((default . error) (RECORD .  1224))
       ((default . error) (WHEN . (component_list . 1)) (IDENTIFIER . 
(component_list . 1)) (FOR . (component_list . 1)) (CASE . (component_list . 
1)) (END . (component_list . 1)))
       ((default . error) (WHEN . (component_list . 2)) (IDENTIFIER . 
(component_list . 2)) (FOR . (component_list . 2)) (CASE . (component_list . 
2)) (END . (component_list . 2)))
       ((default . error) (WHEN . (component_list . 4)) (IDENTIFIER . 
(component_list . 4)) (FOR . (component_list . 4)) (CASE . (component_list . 
4)) (END . (component_list . 4)))
       ((default . error) (IS . (direct_name . 0)))
       ((default . error) (IS . (direct_name . 1)))
       ((default . error) (IS . (direct_name_opt . 1)))
-      ((default . error) (IS .  1227))
-      ((default . error) (WITH . (and_interface_list_opt . 0)) (AND .  816))
-      ((default . error) (DOT .  90) (TICK .  91) (AND .  816) (WITH . 
((constraint_opt . 0) (and_interface_list_opt . 0))) (SEMICOLON . 
(constraint_opt . 0)) (RANGE .  851) (LEFT_PAREN .  824))
-      ((default . error) (SEMICOLON .  1222))
+      ((default . error) (IS .  1223))
+      ((default . error) (WITH . (and_interface_list_opt . 0)) (AND .  819))
+      ((default . error) (DOT .  90) (TICK .  91) (AND .  819) (WITH . 
((constraint_opt . 0) (and_interface_list_opt . 0))) (SEMICOLON . 
(constraint_opt . 0)) (RANGE .  902) (LEFT_PAREN .  827))
+      ((default . error) (SEMICOLON .  1218))
       ((default . error) (END . (full_type_declaration . 0)) (PRIVATE . 
(full_type_declaration . 0)) (IDENTIFIER . (full_type_declaration . 0)) (USE . 
(full_type_declaration . 0)) (TYPE . (full_type_declaration . 0)) (TASK . 
(full_type_declaration . 0)) (SUBTYPE . (full_type_declaration . 0)) (PROTECTED 
. (full_type_declaration . 0)) (PROCEDURE . (full_type_declaration . 0)) 
(PRAGMA . (full_type_declaration . 0)) (PACKAGE . (full_type_declaration . 0)) 
(OVERRIDING . (full_type_declaratio [...]
       ((default . error) (END . (object_renaming_declaration . 2)) (PRIVATE . 
(object_renaming_declaration . 2)) (IDENTIFIER . (object_renaming_declaration . 
2)) (USE . (object_renaming_declaration . 2)) (TYPE . 
(object_renaming_declaration . 2)) (TASK . (object_renaming_declaration . 2)) 
(SUBTYPE . (object_renaming_declaration . 2)) (PROTECTED . 
(object_renaming_declaration . 2)) (PROCEDURE . (object_renaming_declaration . 
2)) (PRAGMA . (object_renaming_declaration . 2)) (PACKAGE . (obj [...]
       ((default . error) (END . (object_renaming_declaration . 1)) (PRIVATE . 
(object_renaming_declaration . 1)) (IDENTIFIER . (object_renaming_declaration . 
1)) (USE . (object_renaming_declaration . 1)) (TYPE . 
(object_renaming_declaration . 1)) (TASK . (object_renaming_declaration . 1)) 
(SUBTYPE . (object_renaming_declaration . 1)) (PROTECTED . 
(object_renaming_declaration . 1)) (PROCEDURE . (object_renaming_declaration . 
1)) (PRAGMA . (object_renaming_declaration . 1)) (PACKAGE . (obj [...]
-      ((default . error) (SEMICOLON .  1221))
+      ((default . error) (SEMICOLON .  1217))
       ((default . error) (PRIVATE . (object_declaration . 3)) (END . 
(object_declaration . 3)) (BEGIN . (object_declaration . 3)) (ENTRY . 
(object_declaration . 3)) (FOR . (object_declaration . 3)) (FUNCTION . 
(object_declaration . 3)) (GENERIC . (object_declaration . 3)) (NOT . 
(object_declaration . 3)) (OVERRIDING . (object_declaration . 3)) (PACKAGE . 
(object_declaration . 3)) (PRAGMA . (object_declaration . 3)) (PROCEDURE . 
(object_declaration . 3)) (PROTECTED . (object_declaration . [...]
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
       ((default . error) (PRIVATE . (object_declaration . 5)) (END . 
(object_declaration . 5)) (BEGIN . (object_declaration . 5)) (ENTRY . 
(object_declaration . 5)) (FOR . (object_declaration . 5)) (FUNCTION . 
(object_declaration . 5)) (GENERIC . (object_declaration . 5)) (NOT . 
(object_declaration . 5)) (OVERRIDING . (object_declaration . 5)) (PACKAGE . 
(object_declaration . 5)) (PRAGMA . (object_declaration . 5)) (PROCEDURE . 
(object_declaration . 5)) (PROTECTED . (object_declaration . [...]
@@ -2952,198 +2958,197 @@
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
       ((default . error) (END . (package_body . 0)) (BEGIN . (package_body . 
0)) (ENTRY . (package_body . 0)) (FOR . (package_body . 0)) (PROTECTED . 
(package_body . 0)) (SUBTYPE . (package_body . 0)) (TASK . (package_body . 0)) 
(TYPE . (package_body . 0)) (IDENTIFIER . (package_body . 0)) (WITH . 
(package_body . 0)) (USE . (package_body . 0)) (SEPARATE . (package_body . 0)) 
(PROCEDURE . (package_body . 0)) (PRIVATE . (package_body . 0)) (PRAGMA . 
(package_body . 0)) (PACKAGE . (package_ [...]
-      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (DOT .  90) (TICK .  91) (LOOP . 
(iterator_specification . 3)) (EQUAL_GREATER . (iterator_specification . 3)) 
(LEFT_PAREN .  107))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
711))
+      ((default . error) (ELSE . (elsif_expression_item . 0)) (ELSIF . 
(elsif_expression_item . 0)) (RIGHT_PAREN . (elsif_expression_item . 0)) (COMMA 
. (elsif_expression_item . 0)))
+      ((default . error) (DOT .  90) (TICK .  91) (LOOP . 
(iterator_specification . 2)) (EQUAL_GREATER . (iterator_specification . 2)) 
(LEFT_PAREN .  107))
+      ((default . error) (DO . (subtype_indication . 0)) (COLON_EQUAL . 
(subtype_indication . 0)) (LOOP . (subtype_indication . 0)) (RIGHT_PAREN . 
(subtype_indication . 0)) (COMMA . (subtype_indication . 0)) (EQUAL_GREATER . 
(subtype_indication . 0)) (WITH . (subtype_indication . 0)) (AND . 
(subtype_indication . 0)) (OF . (subtype_indication . 0)) (SEMICOLON . 
(subtype_indication . 0)))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
716))
       ((default . error) (PROCEDURE . (protected_operation_item_list . 1)) 
(OVERRIDING . (protected_operation_item_list . 1)) (NOT . 
(protected_operation_item_list . 1)) (FUNCTION . (protected_operation_item_list 
. 1)) (FOR . (protected_operation_item_list . 1)) (ENTRY . 
(protected_operation_item_list . 1)) (END . (protected_operation_item_list . 
1)))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (IS . 
(aspect_specification_opt . 0)) (WITH .  109))
-      ((default . error) (WHEN . (parameter_profile_opt . 0)) (LEFT_PAREN .  
1212))
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt  [...]
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt  [...]
+      ((default . error) (WHEN . (parameter_profile_opt . 0)) (LEFT_PAREN .  
1209))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt  [...]
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt  [...]
       ((default . error) (THEN . (accept_statement . 1)) (WHEN . 
(accept_statement . 1)) (EXCEPTION . (accept_statement . 1)) (ELSIF . 
(accept_statement . 1)) (ELSE . (accept_statement . 1)) (OR . (accept_statement 
. 1)) (END . (accept_statement . 1)) (ACCEPT . (accept_statement . 1)) (ABORT . 
(accept_statement . 1)) (BEGIN . (accept_statement . 1)) (CASE . 
(accept_statement . 1)) (DECLARE . (accept_statement . 1)) (DELAY . 
(accept_statement . 1)) (EXIT . (accept_statement . 1)) (FOR . ( [...]
       ((default . error) (OR . (block_statement . 1)) (THEN . (block_statement 
. 1)) (WHEN . (block_statement . 1)) (EXCEPTION . (block_statement . 1)) (END . 
(block_statement . 1)) (ACCEPT . (block_statement . 1)) (ABORT . 
(block_statement . 1)) (BEGIN . (block_statement . 1)) (CASE . (block_statement 
. 1)) (DECLARE . (block_statement . 1)) (DELAY . (block_statement . 1)) (EXIT . 
(block_statement . 1)) (FOR . (block_statement . 1)) (GOTO . (block_statement . 
1)) (IF . (block_statement . [...]
-      ((default . error) (CASE .  1209))
+      ((default . error) (CASE .  1206))
       ((default . error) (WHEN . (case_statement_alternative_list . 1)) (END . 
(case_statement_alternative_list . 1)))
-      ((default . error) (BAR .  285) (EQUAL_GREATER .  1208))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
711))
+      ((default . error) (BAR .  286) (EQUAL_GREATER .  1205))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
716))
       ((default . error) (OR . (exit_statement . 0)) (THEN . (exit_statement . 
0)) (WHEN . (exit_statement . 0)) (EXCEPTION . (exit_statement . 0)) (END . 
(exit_statement . 0)) (ACCEPT . (exit_statement . 0)) (ABORT . (exit_statement 
. 0)) (BEGIN . (exit_statement . 0)) (CASE . (exit_statement . 0)) (DECLARE . 
(exit_statement . 0)) (DELAY . (exit_statement . 0)) (EXIT . (exit_statement . 
0)) (FOR . (exit_statement . 0)) (GOTO . (exit_statement . 0)) (IF . 
(exit_statement . 0)) (LOOP . (e [...]
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . 
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA . 
(label_opt . 0)) (RAISE . (labe [...]
-      ((default . error) (THEN . (expression_opt . 0)) (RAISE .  149) (PLUS .  
151) (MINUS .  150) (ABS .  144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  
148) (NEW .  146) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  145))
-      ((default . error) (IF .  1204))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . 
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA . 
(label_opt . 0)) (RAISE . (labe [...]
+      ((default . error) (THEN . (expression_opt . 0)) (RAISE .  152) (PLUS .  
154) (MINUS .  153) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  
151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  148))
+      ((default . error) (IF .  1201))
       ((default . error) (END . (elsif_statement_list . 0)) (ELSE . 
(elsif_statement_list . 0)) (ELSIF . (elsif_statement_list . 0)))
-      ((default . error) (END .  1202) (ELSE .  1201) (ELSIF .  1164))
-      ((default . error) (SEMICOLON .  1200))
+      ((default . error) (END .  1199) (ELSE .  1198) (ELSIF .  1161))
+      ((default . error) (SEMICOLON .  1197))
       ((default . error) (OR . (raise_statement . 1)) (THEN . (raise_statement 
. 1)) (WHEN . (raise_statement . 1)) (EXCEPTION . (raise_statement . 1)) (END . 
(raise_statement . 1)) (ACCEPT . (raise_statement . 1)) (ABORT . 
(raise_statement . 1)) (BEGIN . (raise_statement . 1)) (CASE . (raise_statement 
. 1)) (DECLARE . (raise_statement . 1)) (DELAY . (raise_statement . 1)) (EXIT . 
(raise_statement . 1)) (FOR . (raise_statement . 1)) (GOTO . (raise_statement . 
1)) (IF . (raise_statement . [...]
       ((default . error) (OR . (requeue_statement . 0)) (THEN . 
(requeue_statement . 0)) (WHEN . (requeue_statement . 0)) (EXCEPTION . 
(requeue_statement . 0)) (END . (requeue_statement . 0)) (ACCEPT . 
(requeue_statement . 0)) (ABORT . (requeue_statement . 0)) (BEGIN . 
(requeue_statement . 0)) (CASE . (requeue_statement . 0)) (DECLARE . 
(requeue_statement . 0)) (DELAY . (requeue_statement . 0)) (EXIT . 
(requeue_statement . 0)) (FOR . (requeue_statement . 0)) (GOTO . 
(requeue_statement .  [...]
-      ((default . error) (RETURN .  1199))
+      ((default . error) (RETURN .  1196))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt . 0)) (NOT .  883))
-      ((default . error) (END .  1195))
-      ((default . error) (SELECT .  1194))
+      ((default . error) (END .  1192))
+      ((default . error) (SELECT .  1191))
       ((default . error) (OR . (selective_accept . 1)) (THEN . 
(selective_accept . 1)) (WHEN . (selective_accept . 1)) (EXCEPTION . 
(selective_accept . 1)) (END . (selective_accept . 1)) (ACCEPT . 
(selective_accept . 1)) (ABORT . (selective_accept . 1)) (BEGIN . 
(selective_accept . 1)) (CASE . (selective_accept . 1)) (DECLARE . 
(selective_accept . 1)) (DELAY . (selective_accept . 1)) (EXIT . 
(selective_accept . 1)) (FOR . (selective_accept . 1)) (GOTO . 
(selective_accept . 1)) (IF . (sel [...]
-      ((default . error) (SELECT .  1193))
+      ((default . error) (SELECT .  1190))
       ((default . error) (END . (delay_alternative . 0)) (OR . 
(delay_alternative . 0)) (ELSE . (delay_alternative . 0)))
-      ((default . error) (SELECT .  1192))
-      ((default . error) (SEMICOLON .  1191))
-      ((default . error) (ELSE . (sequence_of_statements_opt . 0)) (OR . 
(sequence_of_statements_opt . 0)) (END . (sequence_of_statements_opt . 0)) 
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) 
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) 
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) 
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) 
(EXIT . (label_opt . 0)) (GOTO . ( [...]
+      ((default . error) (SELECT .  1189))
+      ((default . error) (SEMICOLON .  1188))
+      ((default . error) (ELSE . (sequence_of_statements_opt . 0)) (OR . 
(sequence_of_statements_opt . 0)) (END . (sequence_of_statements_opt . 0)) 
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) 
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) 
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) 
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) 
(EXIT . (label_opt . 0)) (GOTO . ( [...]
       ((default . error) (END . (select_alternative . 2)) (OR . 
(select_alternative . 2)) (ELSE . (select_alternative . 2)))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
711))
-      ((default . error) (OTHERS .  950) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49))
-      ((default . error) (WHEN . (sequence_of_statements_opt . 0)) (END . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt . 0)) [...]
-      ((default . error) (OTHERS .  950) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49))
-      ((default . error) (BAR .  1183) (EQUAL_GREATER .  1289))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
716))
+      ((default . error) (OTHERS .  955) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49))
+      ((default . error) (WHEN . (sequence_of_statements_opt . 0)) (END . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt . 0)) [...]
+      ((default . error) (OTHERS .  955) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49))
+      ((default . error) (BAR .  1180) (EQUAL_GREATER .  1284))
       ((default . error) (WHEN . (exception_handler . 1)) (END . 
(exception_handler . 1)))
       ((default . error) (EQUAL_GREATER . (exception_choice_list . 1)) (BAR . 
(exception_choice_list . 1)))
-      ((default . error) (SEMICOLON .  1288))
+      ((default . error) (SEMICOLON .  1283))
       ((default . error) (ELSE . (select_alternative . 0)) (OR . 
(select_alternative . 0)) (END . (select_alternative . 0)))
       ((default . error) (ELSE . (select_alternative . 4)) (OR . 
(select_alternative . 4)) (END . (select_alternative . 4)))
-      ((default . error) (SEMICOLON .  1287))
-      ((default . error) (SEMICOLON .  1286))
-      ((default . error) (SEMICOLON .  1285))
-      ((default . error) (SELECT .  1284))
+      ((default . error) (SEMICOLON .  1282))
+      ((default . error) (SEMICOLON .  1281))
+      ((default . error) (SEMICOLON .  1280))
+      ((default . error) (SELECT .  1279))
       ((default . error) (DO . (return_subtype_indication . 1)) (SEMICOLON . 
(return_subtype_indication . 1)) (COLON_EQUAL . (return_subtype_indication . 
1)))
-      ((default . error) (DO . (extended_return_object_declaration . 1)) 
(SEMICOLON . (extended_return_object_declaration . 1)) (COLON_EQUAL .  1283))
+      ((default . error) (DO . (extended_return_object_declaration . 1)) 
(SEMICOLON . (extended_return_object_declaration . 1)) (COLON_EQUAL .  1278))
       ((default . error) (DO . (return_subtype_indication . 0)) (SEMICOLON . 
(return_subtype_indication . 0)) (COLON_EQUAL . (return_subtype_indication . 
0)))
-      ((default . error) (SEMICOLON .  1282))
+      ((default . error) (SEMICOLON .  1277))
       ((default . error) (WHEN . (loop_statement . 1)) (THEN . (loop_statement 
. 1)) (OR . (loop_statement . 1)) (ELSIF . (loop_statement . 1)) (ELSE . 
(loop_statement . 1)) (CHARACTER_LITERAL . (loop_statement . 1)) 
(STRING_LITERAL . (loop_statement . 1)) (IDENTIFIER . (loop_statement . 1)) 
(LESS_LESS . (loop_statement . 1)) (WHILE . (loop_statement . 1)) (SELECT . 
(loop_statement . 1)) (RETURN . (loop_statement . 1)) (REQUEUE . 
(loop_statement . 1)) (RAISE . (loop_statement . 1)) (PRAG [...]
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . 
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA . 
(label_opt . 0)) (RAISE . (labe [...]
-      ((default . error) (IF .  1280))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . 
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA . 
(label_opt . 0)) (RAISE . (labe [...]
+      ((default . error) (IF .  1275))
       ((default . error) (ELSIF . (elsif_statement_list . 1)) (ELSE . 
(elsif_statement_list . 1)) (END . (elsif_statement_list . 1)))
-      ((default . error) (SEMICOLON .  1279))
-      ((default . error) (THEN .  1278))
-      ((default . error) (END .  1277))
-      ((default . error) (SEMICOLON .  1276))
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (WHEN . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt . 0)) [...]
       ((default . error) (SEMICOLON .  1274))
-      ((default . error) (END .  1273))
+      ((default . error) (THEN .  1273))
       ((default . error) (END .  1272))
-      ((default . error) (FOR .  1271) (IDENTIFIER .  77))
-      ((default . error) (WHEN .  1270))
-      ((default . error) (WHEN . (entry_body_formal_part . 1)))
+      ((default . error) (SEMICOLON .  1271))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (WHEN . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt . 0)) [...]
       ((default . error) (SEMICOLON .  1269))
-      ((default . error) (DOT .  90) (TICK .  91) (LOOP . 
(iterator_specification . 2)) (EQUAL_GREATER . (iterator_specification . 2)) 
(LEFT_PAREN .  107))
-      ((default . error) (SEMICOLON .  1268))
-      ((default . error) (SEMICOLON .  1267))
-      ((default . error) (SEMICOLON .  1266))
-      ((default . error) (SEMICOLON .  1265))
+      ((default . error) (END .  1268))
+      ((default . error) (END .  1267))
+      ((default . error) (FOR .  1266) (IDENTIFIER .  77))
+      ((default . error) (WHEN .  1265))
+      ((default . error) (WHEN . (entry_body_formal_part . 1)))
+      ((default . error) (SEMICOLON .  1264))
+      ((default . error) (SEMICOLON .  1263))
+      ((default . error) (SEMICOLON .  1262))
+      ((default . error) (SEMICOLON .  1261))
+      ((default . error) (SEMICOLON .  1260))
       ((default . error) (BEGIN . (object_renaming_declaration . 0)) (ENTRY . 
(object_renaming_declaration . 0)) (FOR . (object_renaming_declaration . 0)) 
(FUNCTION . (object_renaming_declaration . 0)) (GENERIC . 
(object_renaming_declaration . 0)) (NOT . (object_renaming_declaration . 0)) 
(OVERRIDING . (object_renaming_declaration . 0)) (PACKAGE . 
(object_renaming_declaration . 0)) (PRAGMA . (object_renaming_declaration . 0)) 
(PROCEDURE . (object_renaming_declaration . 0)) (PROTECTED . ( [...]
       ((default . error) (BEGIN . (private_type_declaration . 0)) (ENTRY . 
(private_type_declaration . 0)) (FOR . (private_type_declaration . 0)) 
(FUNCTION . (private_type_declaration . 0)) (GENERIC . 
(private_type_declaration . 0)) (NOT . (private_type_declaration . 0)) 
(OVERRIDING . (private_type_declaration . 0)) (PACKAGE . 
(private_type_declaration . 0)) (PRAGMA . (private_type_declaration . 0)) 
(PROCEDURE . (private_type_declaration . 0)) (PROTECTED . 
(private_type_declaration . 0)) [...]
-      ((default . error) (WITH .  1264))
+      ((default . error) (WITH .  1259))
       ((default . error) (WITH . (constraint_opt . 1)) (SEMICOLON . 
(constraint_opt . 1)))
       ((default . error) (WITH . (derived_type_definition . 1)) (SEMICOLON . 
(derived_type_definition . 1)))
-      ((default . error) (WITH .  1263))
-      ((default . error) (WHEN .  1260))
+      ((default . error) (WITH .  1258))
+      ((default . error) (WHEN .  1255))
       ((default . error) (SEMICOLON . (record_definition . 0)) (WITH . 
(record_definition . 0)))
-      ((default . error) (COLON_EQUAL .  1258) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109))
+      ((default . error) (COLON_EQUAL .  1253) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  109))
       ((default . error) (SEMICOLON . (type_definition . 1)) (WITH . 
(type_definition . 1)))
       ((default . error) (RIGHT_PAREN . (enumeration_literal_list . 1)) (COMMA 
. (enumeration_literal_list . 1)))
-      ((default . error) (DOT_DOT .  1257))
-      ((default . error) (WITH . (real_range_specification_opt . 0)) 
(SEMICOLON . (real_range_specification_opt . 0)) (RANGE .  1118))
+      ((default . error) (DOT_DOT .  1252))
+      ((default . error) (WITH . (real_range_specification_opt . 0)) 
(SEMICOLON . (real_range_specification_opt . 0)) (RANGE .  1114))
       ((default . error) (IDENTIFIER . (task_type_declaration . 1)) (USE . 
(task_type_declaration . 1)) (TYPE . (task_type_declaration . 1)) (TASK . 
(task_type_declaration . 1)) (SUBTYPE . (task_type_declaration . 1)) (PROTECTED 
. (task_type_declaration . 1)) (PROCEDURE . (task_type_declaration . 1)) 
(PRAGMA . (task_type_declaration . 1)) (PACKAGE . (task_type_declaration . 1)) 
(OVERRIDING . (task_type_declaration . 1)) (NOT . (task_type_declaration . 1)) 
(GENERIC . (task_type_declaratio [...]
-      ((default . error) (AND .  1072) (WITH .  1255))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
711))
-      ((default . error) (SEMICOLON .  1253))
+      ((default . error) (AND .  1078) (WITH .  1250))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
716))
+      ((default . error) (SEMICOLON .  1248))
       ((default . error) (IDENTIFIER . (protected_type_declaration . 1)) (USE 
. (protected_type_declaration . 1)) (TYPE . (protected_type_declaration . 1)) 
(TASK . (protected_type_declaration . 1)) (SUBTYPE . 
(protected_type_declaration . 1)) (PROTECTED . (protected_type_declaration . 
1)) (PROCEDURE . (protected_type_declaration . 1)) (PRAGMA . 
(protected_type_declaration . 1)) (PACKAGE . (protected_type_declaration . 1)) 
(OVERRIDING . (protected_type_declaration . 1)) (NOT . (protected_ [...]
-      ((default . error) (AND .  1072) (WITH .  1252))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
711))
-      ((default . error) (SEMICOLON .  1250))
-      ((default . error) (RANGE .  1249))
+      ((default . error) (AND .  1078) (WITH .  1247))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
716))
+      ((default . error) (SEMICOLON .  1245))
+      ((default . error) (RANGE .  1244))
       ((default . error) (SEMICOLON . (record_rep . 0)))
       ((default . error) (IDENTIFIER . (mod_clause_opt . 1)))
       ((default . error) (COLON_EQUAL . (component_definition . 2)) (SEMICOLON 
. (component_definition . 2)) (WITH . (component_definition . 2)))
       ((default . error) (COLON_EQUAL . (component_definition . 0)) (SEMICOLON 
. (component_definition . 0)) (WITH . (component_definition . 0)))
-      ((default . error) (RIGHT_PAREN . (subtype_indication . 1)) (COMMA . 
(subtype_indication . 1)) (DOT .  90) (TICK .  91) (BAR . (discrete_choice . 
1)) (EQUAL_GREATER . (discrete_choice . 1)) (RANGE .  851) (LEFT_PAREN .  824))
-      ((default . error) (ELSE . (elsif_expression_item . 0)) (ELSIF . 
(elsif_expression_item . 0)) (RIGHT_PAREN . (elsif_expression_item . 0)))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
+      ((default . error) (RIGHT_PAREN . (subtype_indication . 1)) (COMMA . 
(subtype_indication . 1)) (DOT .  90) (TICK .  91) (BAR . (discrete_choice . 
1)) (EQUAL_GREATER . (discrete_choice . 1)) (RANGE .  902) (LEFT_PAREN .  827))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (END . (single_protected_declaration . 0)) (PRIVATE . 
(single_protected_declaration . 0)) (IDENTIFIER . (single_protected_declaration 
. 0)) (USE . (single_protected_declaration . 0)) (TYPE . 
(single_protected_declaration . 0)) (TASK . (single_protected_declaration . 0)) 
(SUBTYPE . (single_protected_declaration . 0)) (PROTECTED . 
(single_protected_declaration . 0)) (PROCEDURE . (single_protected_declaration 
. 0)) (PRAGMA . (single_protected_declaration . 0)) (PACK [...]
       ((default . error) (SEMICOLON . (protected_definition . 0)))
-      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  301) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 298) (IDENTIFIER .  304) (TYPE .  303) (GENERIC .  2) (PROTECTED .  300) (TASK 
.  302) (PACKAGE .  299))
+      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  302) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 299) (IDENTIFIER .  305) (TYPE .  304) (GENERIC .  2) (PROTECTED .  301) (TASK 
.  303) (PACKAGE .  300))
       ((default . error) (END . (single_task_declaration . 0)) (PRIVATE . 
(single_task_declaration . 0)) (IDENTIFIER . (single_task_declaration . 0)) 
(USE . (single_task_declaration . 0)) (TYPE . (single_task_declaration . 0)) 
(TASK . (single_task_declaration . 0)) (SUBTYPE . (single_task_declaration . 
0)) (PROTECTED . (single_task_declaration . 0)) (PROCEDURE . 
(single_task_declaration . 0)) (PRAGMA . (single_task_declaration . 0)) 
(PACKAGE . (single_task_declaration . 0)) (OVERRIDING . [...]
       ((default . error) (SEMICOLON . (task_definition . 0)))
-      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  301) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 298) (IDENTIFIER .  304) (TYPE .  303) (GENERIC .  2) (PROTECTED .  300) (TASK 
.  302) (PACKAGE .  299))
+      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  302) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 299) (IDENTIFIER .  305) (TYPE .  304) (GENERIC .  2) (PROTECTED .  301) (TASK 
.  303) (PACKAGE .  300))
       ((default . error) (WITH . (type_definition . 5)) (SEMICOLON . 
(type_definition . 5)))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (SEMICOLON .  1306))
-      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (OTHERS .  175) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (PLUS .  151) (MINUS .  150) 
(ABS .  144) (NOT .  174) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(LEFT_PAREN .  145))
-      ((default . error) (END .  1303) (WHEN .  1260))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (SEMICOLON .  1301))
+      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (OTHERS .  182) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (PLUS .  154) (MINUS .  153) 
(ABS .  144) (NOT .  181) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(LEFT_PAREN .  148))
+      ((default . error) (END .  1298) (WHEN .  1255))
       ((default . error) (END . (variant_list . 0)) (WHEN . (variant_list . 
0)))
-      ((default . error) (PRIVATE .  1302))
+      ((default . error) (PRIVATE .  1297))
       ((default . error) (RECORD .  866) (NULL .  864))
       ((default . error) (PRIVATE . (object_declaration . 2)) (END . 
(object_declaration . 2)) (BEGIN . (object_declaration . 2)) (ENTRY . 
(object_declaration . 2)) (FOR . (object_declaration . 2)) (FUNCTION . 
(object_declaration . 2)) (GENERIC . (object_declaration . 2)) (NOT . 
(object_declaration . 2)) (OVERRIDING . (object_declaration . 2)) (PACKAGE . 
(object_declaration . 2)) (PRAGMA . (object_declaration . 2)) (PROCEDURE . 
(object_declaration . 2)) (PROTECTED . (object_declaration . [...]
       ((default . error) (PRIVATE . (object_declaration . 4)) (END . 
(object_declaration . 4)) (BEGIN . (object_declaration . 4)) (ENTRY . 
(object_declaration . 4)) (FOR . (object_declaration . 4)) (FUNCTION . 
(object_declaration . 4)) (GENERIC . (object_declaration . 4)) (NOT . 
(object_declaration . 4)) (OVERRIDING . (object_declaration . 4)) (PACKAGE . 
(object_declaration . 4)) (PRAGMA . (object_declaration . 4)) (PROCEDURE . 
(object_declaration . 4)) (PROTECTED . (object_declaration . [...]
       ((default . error) (PRIVATE . (object_declaration . 0)) (END . 
(object_declaration . 0)) (BEGIN . (object_declaration . 0)) (ENTRY . 
(object_declaration . 0)) (FOR . (object_declaration . 0)) (FUNCTION . 
(object_declaration . 0)) (GENERIC . (object_declaration . 0)) (NOT . 
(object_declaration . 0)) (OVERRIDING . (object_declaration . 0)) (PACKAGE . 
(object_declaration . 0)) (PRAGMA . (object_declaration . 0)) (PROCEDURE . 
(object_declaration . 0)) (PROTECTED . (object_declaration . [...]
       ((default . error) (PRIVATE . (entry_declaration . 0)) (END . 
(entry_declaration . 0)) (BEGIN . (entry_declaration . 0)) (ENTRY . 
(entry_declaration . 0)) (FOR . (entry_declaration . 0)) (FUNCTION . 
(entry_declaration . 0)) (GENERIC . (entry_declaration . 0)) (NOT . 
(entry_declaration . 0)) (OVERRIDING . (entry_declaration . 0)) (PACKAGE . 
(entry_declaration . 0)) (PRAGMA . (entry_declaration . 0)) (PROCEDURE . 
(entry_declaration . 0)) (PROTECTED . (entry_declaration . 0)) (SUBTYPE [...]
       ((default . error) (PRIVATE . (protected_body . 0)) (END . 
(protected_body . 0)) (BEGIN . (protected_body . 0)) (ENTRY . (protected_body . 
0)) (FOR . (protected_body . 0)) (FUNCTION . (protected_body . 0)) (GENERIC . 
(protected_body . 0)) (NOT . (protected_body . 0)) (OVERRIDING . 
(protected_body . 0)) (PACKAGE . (protected_body . 0)) (PRAGMA . 
(protected_body . 0)) (PROCEDURE . (protected_body . 0)) (PROTECTED . 
(protected_body . 0)) (SUBTYPE . (protected_body . 0)) (TASK . (prote [...]
-      ((default . error) (IS . (expression_opt . 0)) (RAISE .  149) (PLUS .  
151) (MINUS .  150) (ABS .  144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  
148) (NEW .  146) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  145))
-      ((default . error) (IDENTIFIER .  1299))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
711))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
711))
+      ((default . error) (IS . (expression_opt . 0)) (RAISE .  152) (PLUS .  
154) (MINUS .  153) (ABS .  144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  
151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  148))
+      ((default . error) (IDENTIFIER .  1294))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
716))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
716))
       ((default . error) (OR . (case_statement . 0)) (THEN . (case_statement . 
0)) (WHEN . (case_statement . 0)) (EXCEPTION . (case_statement . 0)) (END . 
(case_statement . 0)) (ACCEPT . (case_statement . 0)) (ABORT . (case_statement 
. 0)) (BEGIN . (case_statement . 0)) (CASE . (case_statement . 0)) (DECLARE . 
(case_statement . 0)) (DELAY . (case_statement . 0)) (EXIT . (case_statement . 
0)) (FOR . (case_statement . 0)) (GOTO . (case_statement . 0)) (IF . 
(case_statement . 0)) (LOOP . (c [...]
       ((default . error) (END . (case_statement_alternative . 0)) (WHEN . 
(case_statement_alternative . 0)))
       ((default . error) (OR . (block_statement . 0)) (THEN . (block_statement 
. 0)) (WHEN . (block_statement . 0)) (EXCEPTION . (block_statement . 0)) (END . 
(block_statement . 0)) (ACCEPT . (block_statement . 0)) (ABORT . 
(block_statement . 0)) (BEGIN . (block_statement . 0)) (CASE . (block_statement 
. 0)) (DECLARE . (block_statement . 0)) (DELAY . (block_statement . 0)) (EXIT . 
(block_statement . 0)) (FOR . (block_statement . 0)) (GOTO . (block_statement . 
0)) (IF . (block_statement . [...]
-      ((default . error) (IF .  1296))
-      ((default . error) (ELSE . (sequence_of_statements_opt . 0)) (ELSIF . 
(sequence_of_statements_opt . 0)) (END . (sequence_of_statements_opt . 0)) 
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) 
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) 
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) 
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) 
(EXIT . (label_opt . 0)) (GOTO  [...]
+      ((default . error) (IF .  1291))
+      ((default . error) (ELSE . (sequence_of_statements_opt . 0)) (ELSIF . 
(sequence_of_statements_opt . 0)) (END . (sequence_of_statements_opt . 0)) 
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) 
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) 
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) 
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) 
(EXIT . (label_opt . 0)) (GOTO  [...]
       ((default . error) (OR . (if_statement . 3)) (THEN . (if_statement . 3)) 
(WHEN . (if_statement . 3)) (EXCEPTION . (if_statement . 3)) (END . 
(if_statement . 3)) (ACCEPT . (if_statement . 3)) (ABORT . (if_statement . 3)) 
(BEGIN . (if_statement . 3)) (CASE . (if_statement . 3)) (DECLARE . 
(if_statement . 3)) (DELAY . (if_statement . 3)) (EXIT . (if_statement . 3)) 
(FOR . (if_statement . 3)) (GOTO . (if_statement . 3)) (IF . (if_statement . 
3)) (LOOP . (if_statement . 3)) (NULL . (if_ [...]
-      ((default . error) (SEMICOLON .  1294))
-      ((default . error) (END .  1293))
+      ((default . error) (SEMICOLON .  1289))
+      ((default . error) (END .  1288))
       ((default . error) (OR . (extended_return_statement . 0)) (THEN . 
(extended_return_statement . 0)) (WHEN . (extended_return_statement . 0)) 
(EXCEPTION . (extended_return_statement . 0)) (END . (extended_return_statement 
. 0)) (ACCEPT . (extended_return_statement . 0)) (ABORT . 
(extended_return_statement . 0)) (BEGIN . (extended_return_statement . 0)) 
(CASE . (extended_return_statement . 0)) (DECLARE . (extended_return_statement 
. 0)) (DELAY . (extended_return_statement . 0)) (EXIT  [...]
-      ((default . error) (RAISE .  149) (PLUS .  151) (MINUS .  150) (ABS .  
144) (NOT .  147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  145))
-      ((default . error) (SEMICOLON .  1291))
+      ((default . error) (RAISE .  152) (PLUS .  154) (MINUS .  153) (ABS .  
144) (NOT .  150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (SEMICOLON .  1286))
       ((default . error) (OR . (selective_accept . 0)) (THEN . 
(selective_accept . 0)) (WHEN . (selective_accept . 0)) (EXCEPTION . 
(selective_accept . 0)) (END . (selective_accept . 0)) (ACCEPT . 
(selective_accept . 0)) (ABORT . (selective_accept . 0)) (BEGIN . 
(selective_accept . 0)) (CASE . (selective_accept . 0)) (DECLARE . 
(selective_accept . 0)) (DELAY . (selective_accept . 0)) (EXIT . 
(selective_accept . 0)) (FOR . (selective_accept . 0)) (GOTO . 
(selective_accept . 0)) (IF . (sel [...]
       ((default . error) (OR . (conditional_entry_call . 0)) (THEN . 
(conditional_entry_call . 0)) (WHEN . (conditional_entry_call . 0)) (EXCEPTION 
. (conditional_entry_call . 0)) (END . (conditional_entry_call . 0)) (ACCEPT . 
(conditional_entry_call . 0)) (ABORT . (conditional_entry_call . 0)) (BEGIN . 
(conditional_entry_call . 0)) (CASE . (conditional_entry_call . 0)) (DECLARE . 
(conditional_entry_call . 0)) (DELAY . (conditional_entry_call . 0)) (EXIT . 
(conditional_entry_call . 0)) ( [...]
       ((default . error) (OR . (timed_entry_call . 0)) (THEN . 
(timed_entry_call . 0)) (WHEN . (timed_entry_call . 0)) (EXCEPTION . 
(timed_entry_call . 0)) (END . (timed_entry_call . 0)) (ACCEPT . 
(timed_entry_call . 0)) (ABORT . (timed_entry_call . 0)) (BEGIN . 
(timed_entry_call . 0)) (CASE . (timed_entry_call . 0)) (DECLARE . 
(timed_entry_call . 0)) (DELAY . (timed_entry_call . 0)) (EXIT . 
(timed_entry_call . 0)) (FOR . (timed_entry_call . 0)) (GOTO . 
(timed_entry_call . 0)) (IF . (tim [...]
       ((default . error) (OR . (loop_statement . 0)) (THEN . (loop_statement . 
0)) (WHEN . (loop_statement . 0)) (EXCEPTION . (loop_statement . 0)) (END . 
(loop_statement . 0)) (ACCEPT . (loop_statement . 0)) (ABORT . (loop_statement 
. 0)) (BEGIN . (loop_statement . 0)) (CASE . (loop_statement . 0)) (DECLARE . 
(loop_statement . 0)) (DELAY . (loop_statement . 0)) (EXIT . (loop_statement . 
0)) (FOR . (loop_statement . 0)) (GOTO . (loop_statement . 0)) (IF . 
(loop_statement . 0)) (LOOP . (l [...]
-      ((default . error) (WHEN . (sequence_of_statements_opt . 0)) (END . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt . 0)) [...]
+      ((default . error) (WHEN . (sequence_of_statements_opt . 0)) (END . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt . 0)) [...]
       ((default . error) (WHEN . (exception_handler . 0)) (END . 
(exception_handler . 0)))
       ((default . error) (WHEN . (asynchronous_select . 0)) (THEN . 
(asynchronous_select . 0)) (OR . (asynchronous_select . 0)) (ELSIF . 
(asynchronous_select . 0)) (ELSE . (asynchronous_select . 0)) 
(CHARACTER_LITERAL . (asynchronous_select . 0)) (STRING_LITERAL . 
(asynchronous_select . 0)) (IDENTIFIER . (asynchronous_select . 0)) (LESS_LESS 
. (asynchronous_select . 0)) (WHILE . (asynchronous_select . 0)) (SELECT . 
(asynchronous_select . 0)) (RETURN . (asynchronous_select . 0)) (REQUEUE  [...]
       ((default . error) (DO . (extended_return_object_declaration . 0)) 
(SEMICOLON . (extended_return_object_declaration . 0)))
-      ((default . error) (IF .  1324))
+      ((default . error) (IF .  1319))
       ((default . error) (WHEN . (if_statement . 1)) (THEN . (if_statement . 
1)) (OR . (if_statement . 1)) (ELSIF . (if_statement . 1)) (ELSE . 
(if_statement . 1)) (CHARACTER_LITERAL . (if_statement . 1)) (STRING_LITERAL . 
(if_statement . 1)) (IDENTIFIER . (if_statement . 1)) (LESS_LESS . 
(if_statement . 1)) (WHILE . (if_statement . 1)) (SELECT . (if_statement . 1)) 
(RETURN . (if_statement . 1)) (REQUEUE . (if_statement . 1)) (RAISE . 
(if_statement . 1)) (PRAGMA . (if_statement . 1)) (NU [...]
       ((default . error) (ELSE . (elsif_statement_item . 0)) (ELSIF . 
(elsif_statement_item . 0)) (END . (elsif_statement_item . 0)))
-      ((default . error) (SEMICOLON .  1323))
-      ((default . error) (SEMICOLON .  1322))
-      ((default . error) (SEMICOLON .  1321))
-      ((default . error) (IN .  1320))
-      ((default . error) (IS .  1319))
+      ((default . error) (SEMICOLON .  1318))
+      ((default . error) (SEMICOLON .  1317))
+      ((default . error) (SEMICOLON .  1316))
+      ((default . error) (IN .  1315))
+      ((default . error) (IS .  1314))
       ((default . error) (WITH . (derived_type_definition . 0)) (SEMICOLON . 
(derived_type_definition . 0)))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
-      ((default . error) (CASE .  1317))
+      ((default . error) (CASE .  1312))
       ((default . error) (WHEN . (variant_list . 1)) (END . (variant_list . 
1)))
-      ((default . error) (BAR .  285) (EQUAL_GREATER .  1316))
+      ((default . error) (BAR .  286) (EQUAL_GREATER .  1311))
       ((default . error) (WHEN . (component_declaration . 1)) (END . 
(component_declaration . 1)) (CASE . (component_declaration . 1)) (FOR . 
(component_declaration . 1)) (IDENTIFIER . (component_declaration . 1)))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
109))
       ((default . error) (SEMICOLON . (real_range_specification_opt . 1)) 
(WITH . (real_range_specification_opt . 1)))
-      ((default . error) (SEMICOLON .  1314))
-      ((default . error) (SEMICOLON .  1313))
-      ((default . error) (DOT_DOT .  1312))
-      ((default . error) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  
147) (NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  145))
+      ((default . error) (SEMICOLON .  1309))
+      ((default . error) (SEMICOLON .  1308))
+      ((default . error) (DOT_DOT .  1307))
+      ((default . error) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  
150) (NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (PRIVATE . (protected_type_declaration . 0)) (END . 
(protected_type_declaration . 0)) (BEGIN . (protected_type_declaration . 0)) 
(ENTRY . (protected_type_declaration . 0)) (FOR . (protected_type_declaration . 
0)) (FUNCTION . (protected_type_declaration . 0)) (GENERIC . 
(protected_type_declaration . 0)) (NOT . (protected_type_declaration . 0)) 
(OVERRIDING . (protected_type_declaration . 0)) (PACKAGE . 
(protected_type_declaration . 0)) (PRAGMA . (protected_type_dec [...]
       ((default . error) (PRIVATE . (task_type_declaration . 0)) (END . 
(task_type_declaration . 0)) (BEGIN . (task_type_declaration . 0)) (ENTRY . 
(task_type_declaration . 0)) (FOR . (task_type_declaration . 0)) (FUNCTION . 
(task_type_declaration . 0)) (GENERIC . (task_type_declaration . 0)) (NOT . 
(task_type_declaration . 0)) (OVERRIDING . (task_type_declaration . 0)) 
(PACKAGE . (task_type_declaration . 0)) (PRAGMA . (task_type_declaration . 0)) 
(PROCEDURE . (task_type_declaration . 0) [...]
-      ((default . error) (SEMICOLON .  1331))
-      ((default . error) (END . (component_list_opt . 0)) (WHEN . 
(component_list_opt . 0)) (NULL .  1023) (CASE .  1022) (IDENTIFIER .  77) (FOR 
.  298))
-      ((default . error) (SEMICOLON .  1329))
-      ((default . error) (SEMICOLON .  1328))
-      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  301) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  298) (IDENTIFIER .  304) (TYPE 
.  303) (GENERIC .  2) (PROTECTED .  300) (TASK .  302) (PACKAGE .  299))
-      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  151) (MINUS .  150) (ABS .  144) (NOT .  769) 
(NUMERIC_LITERAL .  152) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (SEMICOLON .  1326))
+      ((default . error) (END . (component_list_opt . 0)) (WHEN . 
(component_list_opt . 0)) (NULL .  1031) (CASE .  1030) (IDENTIFIER .  77) (FOR 
.  299))
+      ((default . error) (SEMICOLON .  1324))
+      ((default . error) (SEMICOLON .  1323))
+      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  302) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  299) (IDENTIFIER .  305) (TYPE 
.  304) (GENERIC .  2) (PROTECTED .  301) (TASK .  303) (PACKAGE .  300))
+      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  154) (MINUS .  153) (ABS .  144) (NOT .  734) 
(NUMERIC_LITERAL .  155) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
       ((default . error) (PRIVATE . (task_body . 0)) (END . (task_body . 0)) 
(BEGIN . (task_body . 0)) (ENTRY . (task_body . 0)) (FOR . (task_body . 0)) 
(FUNCTION . (task_body . 0)) (GENERIC . (task_body . 0)) (NOT . (task_body . 
0)) (OVERRIDING . (task_body . 0)) (PACKAGE . (task_body . 0)) (PRAGMA . 
(task_body . 0)) (PROCEDURE . (task_body . 0)) (PROTECTED . (task_body . 0)) 
(SUBTYPE . (task_body . 0)) (TASK . (task_body . 0)) (TYPE . (task_body . 0)) 
(USE . (task_body . 0)) (IDENTIFIE [...]
       ((default . error) (THEN . (accept_statement . 0)) (WHEN . 
(accept_statement . 0)) (EXCEPTION . (accept_statement . 0)) (ELSIF . 
(accept_statement . 0)) (ELSE . (accept_statement . 0)) (OR . (accept_statement 
. 0)) (END . (accept_statement . 0)) (ACCEPT . (accept_statement . 0)) (ABORT . 
(accept_statement . 0)) (BEGIN . (accept_statement . 0)) (CASE . 
(accept_statement . 0)) (DECLARE . (accept_statement . 0)) (DELAY . 
(accept_statement . 0)) (EXIT . (accept_statement . 0)) (FOR . ( [...]
       ((default . error) (OR . (if_statement . 2)) (THEN . (if_statement . 2)) 
(WHEN . (if_statement . 2)) (EXCEPTION . (if_statement . 2)) (END . 
(if_statement . 2)) (ACCEPT . (if_statement . 2)) (ABORT . (if_statement . 2)) 
(BEGIN . (if_statement . 2)) (CASE . (if_statement . 2)) (DECLARE . 
(if_statement . 2)) (DELAY . (if_statement . 2)) (EXIT . (if_statement . 2)) 
(FOR . (if_statement . 2)) (GOTO . (if_statement . 2)) (IF . (if_statement . 
2)) (LOOP . (if_statement . 2)) (NULL . (if_ [...]
-      ((default . error) (SEMICOLON .  1325))
+      ((default . error) (SEMICOLON .  1320))
       ((default . error) (WHEN . (if_statement . 0)) (THEN . (if_statement . 
0)) (OR . (if_statement . 0)) (ELSIF . (if_statement . 0)) (ELSE . 
(if_statement . 0)) (CHARACTER_LITERAL . (if_statement . 0)) (STRING_LITERAL . 
(if_statement . 0)) (IDENTIFIER . (if_statement . 0)) (LESS_LESS . 
(if_statement . 0)) (WHILE . (if_statement . 0)) (SELECT . (if_statement . 0)) 
(RETURN . (if_statement . 0)) (REQUEUE . (if_statement . 0)) (RAISE . 
(if_statement . 0)) (PRAGMA . (if_statement . 0)) (NU [...]
-      ((default . error) (RIGHT_PAREN .  1335))
-      ((default . error) (BEGIN .  1334))
+      ((default . error) (RIGHT_PAREN .  1330))
+      ((default . error) (BEGIN .  1329))
       ((default . error) (BEGIN . (private_extension_declaration . 0)) (ENTRY 
. (private_extension_declaration . 0)) (FOR . (private_extension_declaration . 
0)) (FUNCTION . (private_extension_declaration . 0)) (GENERIC . 
(private_extension_declaration . 0)) (NOT . (private_extension_declaration . 
0)) (OVERRIDING . (private_extension_declaration . 0)) (PACKAGE . 
(private_extension_declaration . 0)) (PRAGMA . (private_extension_declaration . 
0)) (PROCEDURE . (private_extension_declaration  [...]
       ((default . error) (WHEN . (variant_part . 0)) (END . (variant_part . 
0)) (CASE . (variant_part . 0)) (FOR . (variant_part . 0)) (IDENTIFIER . 
(variant_part . 0)))
       ((default . error) (END . (variant . 0)) (WHEN . (variant . 0)))
       ((default . error) (WHEN . (component_declaration . 0)) (END . 
(component_declaration . 0)) (CASE . (component_declaration . 0)) (FOR . 
(component_declaration . 0)) (IDENTIFIER . (component_declaration . 0)))
-      ((default . error) (SEMICOLON .  1333))
+      ((default . error) (SEMICOLON .  1328))
       ((default . error) (END . (component_clause . 0)) (IDENTIFIER . 
(component_clause . 0)))
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt  [...]
-      ((default . error) (WHEN . (parameter_profile_opt . 0)) (LEFT_PAREN .  
798))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT . 
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO . 
(label_opt . 0)) (NULL . (label_opt  [...]
+      ((default . error) (WHEN . (parameter_profile_opt . 0)) (LEFT_PAREN .  
808))
       ((default . error) (WHEN . (entry_body_formal_part . 0)))
-      ((default . error) (END .  1338))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
711))
-      ((default . error) (SEMICOLON .  1340))
+      ((default . error) (END .  1333))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
716))
+      ((default . error) (SEMICOLON .  1335))
       ((default . error) (PROCEDURE . (entry_body . 0)) (OVERRIDING . 
(entry_body . 0)) (NOT . (entry_body . 0)) (FUNCTION . (entry_body . 0)) (FOR . 
(entry_body . 0)) (ENTRY . (entry_body . 0)) (END . (entry_body . 0)))]
      [((compilation_unit . 13)(compilation_unit_list . 14)(context_item . 
15)(function_specification . 16)(generic_declaration . 17)(generic_formal_part 
. 18)(generic_instantiation . 19)(generic_package_declaration . 
20)(generic_renaming_declaration . 21)(generic_subprogram_declaration . 
22)(library_item . 23)(library_unit_declaration . 
24)(library_unit_renaming_declaration . 25)(overriding_indicator_opt . 
26)(package_body . 27)(package_declaration . 28)(package_renaming_declaration . 
29 [...]
       ((attribute_reference . 51)(name . 87)(qualified_expression . 
54)(selected_component . 55))
@@ -3233,31 +3238,31 @@
       nil
       nil
       ((actual_parameter_part . 92)(formal_part . 
93)(parameter_and_result_profile . 94))
-      ((aggregate . 154)(association_opt . 177)(association_list . 
194)(attribute_reference . 51)(choice_expression . 
179)(choice_relation_and_list . 180)(choice_relation_or_list . 
181)(choice_relation_xor_list . 182)(choice_relation_and_then_list . 
183)(choice_relation_or_else_list . 184)(choice_relation . 185)(discrete_choice 
. 186)(discrete_choice_list . 187)(expression . 188)(expression_opt . 
189)(factor . 156)(identifier_list . 229)(name . 190)(parameter_specification . 
230)(paramet [...]
-      ((access_definition . 226)(null_exclusion_opt . 227))
+      ((aggregate . 157)(association_opt . 184)(association_list . 
201)(attribute_reference . 51)(case_expression . 158)(choice_expression . 
186)(choice_relation_and_list . 187)(choice_relation_or_list . 
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list . 
190)(choice_relation_or_else_list . 191)(choice_relation . 
192)(conditional_quantified_expression . 202)(discrete_choice . 
193)(discrete_choice_list . 194)(expression . 195)(expression_opt . 196)(factor 
. 161)(identifie [...]
+      ((access_definition . 233)(null_exclusion_opt . 234))
       nil
-      ((aggregate . 218)(attribute_reference . 51)(attribute_designator . 
219)(name . 220)(qualified_expression . 54)(selected_component . 55))
+      ((aggregate . 225)(attribute_reference . 51)(attribute_designator . 
226)(name . 227)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
       nil
-      ((mode_opt . 211))
+      ((mode_opt . 219))
       nil
       nil
-      ((attribute_reference . 51)(name . 207)(qualified_expression . 
54)(selected_component . 55))
-      ((aspect_specification_opt . 206))
-      ((discriminant_part_opt . 204))
+      ((attribute_reference . 51)(name . 215)(qualified_expression . 
54)(selected_component . 55))
+      ((aspect_specification_opt . 214))
+      ((discriminant_part_opt . 212))
       ((actual_parameter_part . 92))
       ((actual_parameter_part . 92))
       ((actual_parameter_part . 92))
       nil
-      ((attribute_reference . 51)(name_list . 198)(name . 
53)(qualified_expression . 54)(selected_component . 55))
+      ((attribute_reference . 51)(name_list . 206)(name . 
53)(qualified_expression . 54)(selected_component . 55))
       nil
-      ((aggregate . 154)(association_opt . 177)(association_list . 
194)(attribute_reference . 51)(choice_expression . 
179)(choice_relation_and_list . 180)(choice_relation_or_list . 
181)(choice_relation_xor_list . 182)(choice_relation_and_then_list . 
183)(choice_relation_or_else_list . 184)(choice_relation . 185)(discrete_choice 
. 186)(discrete_choice_list . 187)(expression . 188)(expression_opt . 
189)(factor . 156)(name . 190)(primary . 160)(qualified_expression . 
54)(raise_expression .  [...]
-      ((attribute_reference . 51)(name . 193)(qualified_expression . 
54)(selected_component . 55))
-      ((aggregate . 154)(association_opt . 177)(association_list . 
178)(attribute_reference . 51)(choice_expression . 
179)(choice_relation_and_list . 180)(choice_relation_or_list . 
181)(choice_relation_xor_list . 182)(choice_relation_and_then_list . 
183)(choice_relation_or_else_list . 184)(choice_relation . 185)(discrete_choice 
. 186)(discrete_choice_list . 187)(expression . 188)(expression_opt . 
189)(factor . 156)(name . 190)(primary . 160)(qualified_expression . 
54)(raise_expression .  [...]
+      ((aggregate . 157)(association_opt . 184)(association_list . 
201)(attribute_reference . 51)(case_expression . 158)(choice_expression . 
186)(choice_relation_and_list . 187)(choice_relation_or_list . 
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list . 
190)(choice_relation_or_else_list . 191)(choice_relation . 
192)(conditional_quantified_expression . 202)(discrete_choice . 
193)(discrete_choice_list . 194)(expression . 195)(expression_opt . 196)(factor 
. 161)(if_expres [...]
+      ((attribute_reference . 51)(name . 200)(qualified_expression . 
54)(selected_component . 55))
+      ((aggregate . 157)(association_opt . 184)(association_list . 
185)(attribute_reference . 51)(choice_expression . 
186)(choice_relation_and_list . 187)(choice_relation_or_list . 
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list . 
190)(choice_relation_or_else_list . 191)(choice_relation . 192)(discrete_choice 
. 193)(discrete_choice_list . 194)(expression . 195)(expression_opt . 
196)(factor . 161)(name . 197)(primary . 166)(qualified_expression . 
54)(raise_expression .  [...]
       nil
-      ((actual_parameter_part . 92)(aspect_specification_opt . 172))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 155)(factor . 
156)(name . 157)(pragma_argument_association . 
158)(pragma_argument_association_list . 159)(primary . 
160)(qualified_expression . 54)(raise_expression . 161)(relation_and_list . 
162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((actual_parameter_part . 92)(aspect_specification_opt . 179))
+      ((aggregate . 157)(attribute_reference . 51)(case_expression . 
158)(conditional_quantified_expression . 159)(expression . 160)(factor . 
161)(if_expression . 162)(name . 163)(pragma_argument_association . 
164)(pragma_argument_association_list . 165)(primary . 
166)(qualified_expression . 54)(quantified_expression . 167)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation  [...]
       nil
       ((aspect_specification_opt . 143))
       nil
@@ -3279,22 +3284,28 @@
       ((actual_parameter_part . 92)(formal_part . 
93)(parameter_and_result_profile . 94))
       nil
       nil
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 391)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(gen [...]
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 397)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(gen [...]
       nil
-      ((actual_parameter_part . 92)(aspect_specification_opt . 390))
+      ((actual_parameter_part . 92)(aspect_specification_opt . 396))
       nil
       nil
       nil
       ((actual_parameter_part . 92))
-      ((function_specification . 16)(overriding_indicator_opt . 
387)(package_body . 327)(procedure_specification . 32)(proper_body . 
388)(protected_body . 335)(subprogram_body . 342)(task_body . 347))
+      ((function_specification . 16)(overriding_indicator_opt . 
393)(package_body . 328)(procedure_specification . 32)(proper_body . 
394)(protected_body . 336)(subprogram_body . 343)(task_body . 348))
+      nil
       nil
+      ((aggregate . 157)(attribute_reference . 51)(name . 163)(primary . 
389)(qualified_expression . 54)(selected_component . 55))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 388)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((quantifier . 387))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 384)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aggregate . 157)(association_opt . 184)(association_list . 
381)(attribute_reference . 51)(case_expression . 158)(choice_expression . 
186)(choice_relation_and_list . 187)(choice_relation_or_list . 
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list . 
190)(choice_relation_or_else_list . 191)(choice_relation . 
192)(conditional_quantified_expression . 382)(discrete_choice . 
193)(discrete_choice_list . 194)(expression . 383)(expression_opt . 196)(factor 
. 161)(if_expres [...]
+      ((attribute_reference . 51)(name . 379)(qualified_expression . 
54)(selected_component . 55))
+      ((aggregate . 157)(attribute_reference . 51)(name . 163)(primary . 
298)(qualified_expression . 54)(selected_component . 55))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(name . 157)(primary . 
383)(qualified_expression . 54)(selected_component . 55))
-      ((aggregate . 154)(association_opt . 177)(association_list . 
242)(attribute_reference . 51)(case_expression . 380)(choice_expression . 
179)(choice_relation_and_list . 180)(choice_relation_or_list . 
181)(choice_relation_xor_list . 182)(choice_relation_and_then_list . 
183)(choice_relation_or_else_list . 184)(choice_relation . 185)(discrete_choice 
. 186)(discrete_choice_list . 187)(expression . 244)(expression_opt . 
189)(factor . 156)(if_expression . 381)(name . 190)(primary . 160)(qu [...]
       ((attribute_reference . 51)(name . 378)(qualified_expression . 
54)(selected_component . 55))
-      ((aggregate . 154)(attribute_reference . 51)(name . 157)(primary . 
297)(qualified_expression . 54)(selected_component . 55))
       nil
-      ((attribute_reference . 51)(name . 377)(qualified_expression . 
54)(selected_component . 55))
+      nil
+      nil
       nil
       nil
       nil
@@ -3313,13 +3324,14 @@
       nil
       nil
       nil
-      ((relational_operator . 363))
-      ((multiplying_operator . 362))
-      ((binary_adding_operator . 357))
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(selected_component . 55)(term . 
169)(term_list . 353))
       nil
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 312)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(gen [...]
-      ((aggregate . 154)(attribute_reference . 51)(name . 157)(primary . 
297)(qualified_expression . 54)(selected_component . 55))
+      ((relational_operator . 364))
+      ((multiplying_operator . 363))
+      ((binary_adding_operator . 358))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(selected_component . 55)(term . 
176)(term_list . 354))
+      nil
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 313)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(gen [...]
+      ((aggregate . 157)(attribute_reference . 51)(name . 163)(primary . 
298)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
       nil
@@ -3337,8 +3349,9 @@
       nil
       ((actual_parameter_part . 92))
       nil
-      ((relational_operator . 283))
-      ((actual_parameter_part . 92)(aspect_specification_opt . 273))
+      ((relational_operator . 284))
+      ((actual_parameter_part . 92)(aspect_specification_opt . 274))
+      nil
       nil
       nil
       nil
@@ -3361,7 +3374,6 @@
       nil
       nil
       nil
-      ((aggregate . 154)(association_opt . 177)(association_list . 
242)(attribute_reference . 51)(case_expression . 243)(choice_expression . 
179)(choice_relation_and_list . 180)(choice_relation_or_list . 
181)(choice_relation_xor_list . 182)(choice_relation_and_then_list . 
183)(choice_relation_or_else_list . 184)(choice_relation . 185)(discrete_choice 
. 186)(discrete_choice_list . 187)(expression . 244)(expression_opt . 
189)(factor . 156)(if_expression . 245)(name . 190)(primary . 160)(qu [...]
       nil
       nil
       nil
@@ -3372,79 +3384,77 @@
       nil
       nil
       nil
-      ((attribute_reference . 51)(name . 236)(name_opt . 
237)(qualified_expression . 54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 243)(name_opt . 
244)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
       nil
       nil
       nil
-      ((identifier_list . 229)(parameter_specification . 532))
-      ((aliased_opt . 531))
-      ((general_access_modifier_opt . 528)(protected_opt . 529))
+      ((identifier_list . 236)(parameter_specification . 533))
+      ((aliased_opt . 532))
+      ((general_access_modifier_opt . 529)(protected_opt . 530))
       ((actual_parameter_part . 92))
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 524)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 523)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
+      ((attribute_reference . 51)(name . 243)(name_opt . 
525)(qualified_expression . 54)(selected_component . 55))
+      ((aspect_specification_opt . 524))
+      ((attribute_reference . 51)(name . 522)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
       nil
+      ((aspect_specification_opt . 519)(attribute_reference . 51)(name . 
256)(qualified_expression . 54)(selected_component . 55)(subprogram_default . 
520))
       nil
       nil
-      ((attribute_reference . 51)(name . 236)(name_opt . 
517)(qualified_expression . 54)(selected_component . 55))
-      ((aspect_specification_opt . 516))
-      ((attribute_reference . 51)(name . 514)(qualified_expression . 
54)(selected_component . 55))
+      ((actual_parameter_part . 92))
+      ((aspect_specification_opt . 518))
+      ((abstract_limited_synchronized_opt . 510)(abstract_tagged_limited_opt . 
511)(access_definition . 512)(array_type_definition . 
513)(formal_type_definition . 514)(formal_derived_type_definition . 
515)(interface_type_definition . 516)(null_exclusion_opt . 517))
       nil
       nil
       nil
-      ((aspect_specification_opt . 511)(attribute_reference . 51)(name . 
256)(qualified_expression . 54)(selected_component . 55)(subprogram_default . 
512))
       nil
       nil
-      ((actual_parameter_part . 92))
-      ((aspect_specification_opt . 510))
-      ((abstract_limited_synchronized_opt . 502)(abstract_tagged_limited_opt . 
503)(access_definition . 504)(array_type_definition . 
505)(formal_type_definition . 506)(formal_derived_type_definition . 
507)(interface_type_definition . 508)(null_exclusion_opt . 509))
+      ((actual_parameter_part . 92)(aspect_specification_opt . 491))
+      ((actual_parameter_part . 92)(aspect_specification_opt . 490))
+      ((actual_parameter_part . 92)(aspect_specification_opt . 489))
       nil
+      ((actual_parameter_part . 92)(aspect_specification_opt . 488))
       nil
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
197)(primary . 166)(qualified_expression . 54)(range . 486)(selected_component 
. 55)(simple_expression . 487)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
+      ((aggregate . 157)(association_opt . 485)(attribute_reference . 
51)(choice_expression . 186)(choice_relation_and_list . 
187)(choice_relation_or_list . 188)(choice_relation_xor_list . 
189)(choice_relation_and_then_list . 190)(choice_relation_or_else_list . 
191)(choice_relation . 192)(discrete_choice . 193)(discrete_choice_list . 
194)(expression . 195)(expression_opt . 196)(factor . 161)(name . 197)(primary 
. 166)(qualified_expression . 54)(raise_expression . 168)(range . 198)(relati 
[...]
       nil
-      ((actual_parameter_part . 92)(aspect_specification_opt . 483))
-      ((actual_parameter_part . 92)(aspect_specification_opt . 482))
-      ((actual_parameter_part . 92)(aspect_specification_opt . 481))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 
161)(membership_choice_list . 480)(membership_choice . 481)(name . 197)(primary 
. 166)(qualified_expression . 54)(range . 482)(selected_component . 
55)(simple_expression . 483)(term . 176)(term_list . 177)(unary_adding_operator 
. 178))
       nil
-      ((actual_parameter_part . 92)(aspect_specification_opt . 480))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 478)(term . 176)(term_list . 177)(unary_adding_operator 
. 178))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
190)(primary . 160)(qualified_expression . 54)(range . 478)(selected_component 
. 55)(simple_expression . 479)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
-      ((aggregate . 154)(association_opt . 477)(attribute_reference . 
51)(choice_expression . 179)(choice_relation_and_list . 
180)(choice_relation_or_list . 181)(choice_relation_xor_list . 
182)(choice_relation_and_then_list . 183)(choice_relation_or_else_list . 
184)(choice_relation . 185)(discrete_choice . 186)(discrete_choice_list . 
187)(expression . 188)(expression_opt . 189)(factor . 156)(name . 190)(primary 
. 160)(qualified_expression . 54)(raise_expression . 161)(range . 191)(relati 
[...]
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 
156)(membership_choice_list . 472)(membership_choice . 473)(name . 190)(primary 
. 160)(qualified_expression . 54)(range . 474)(selected_component . 
55)(simple_expression . 475)(term . 169)(term_list . 170)(unary_adding_operator 
. 171))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 470)(term . 169)(term_list . 170)(unary_adding_operator 
. 171))
       nil
       nil
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 477)(term . 176)(term_list . 177)(unary_adding_operator 
. 178))
+      ((aggregate . 225)(attribute_reference . 51)(attribute_designator . 
226)(name . 227)(qualified_expression . 54)(selected_component . 55))
+      ((aggregate . 157)(attribute_reference . 51)(choice_expression . 
186)(choice_relation_and_list . 187)(choice_relation_or_list . 
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list . 
190)(choice_relation_or_else_list . 191)(choice_relation . 192)(discrete_choice 
. 474)(factor . 161)(name . 197)(primary . 166)(qualified_expression . 
54)(range . 198)(selected_component . 55)(simple_expression . 475)(term . 
176)(term_list . 177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 473)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(choice_relation . 
471)(factor . 161)(name . 163)(primary . 166)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(choice_relation . 
469)(factor . 161)(name . 163)(primary . 166)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(choice_relation . 
467)(factor . 161)(name . 163)(primary . 166)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
+      ((aggregate . 157)(attribute_reference . 51)(choice_relation . 
464)(factor . 161)(name . 163)(primary . 166)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(choice_relation . 
463)(factor . 161)(name . 163)(primary . 166)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(choice_relation . 
461)(factor . 161)(name . 163)(primary . 166)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 460)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((attribute_reference . 51)(name . 458)(qualified_expression . 
54)(selected_component . 55))
       nil
+      ((attribute_reference . 455)(direct_name . 456)(name . 
457)(qualified_expression . 54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 68)(qualified_expression . 
54)(selected_component . 55))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 469)(term . 169)(term_list . 170)(unary_adding_operator 
. 171))
-      ((aggregate . 218)(attribute_reference . 51)(attribute_designator . 
219)(name . 220)(qualified_expression . 54)(selected_component . 55))
-      ((aggregate . 154)(attribute_reference . 51)(choice_expression . 
179)(choice_relation_and_list . 180)(choice_relation_or_list . 
181)(choice_relation_xor_list . 182)(choice_relation_and_then_list . 
183)(choice_relation_or_else_list . 184)(choice_relation . 185)(discrete_choice 
. 466)(factor . 156)(name . 190)(primary . 160)(qualified_expression . 
54)(range . 191)(selected_component . 55)(simple_expression . 467)(term . 
169)(term_list . 170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 465)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(choice_relation . 
463)(factor . 156)(name . 157)(primary . 160)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 454)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(choice_relation . 
461)(factor . 156)(name . 157)(primary . 160)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 454)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(choice_relation . 
459)(factor . 156)(name . 157)(primary . 160)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 454)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(choice_relation . 
456)(factor . 156)(name . 157)(primary . 160)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 454)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(choice_relation . 
455)(factor . 156)(name . 157)(primary . 160)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 454)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(choice_relation . 
453)(factor . 156)(name . 157)(primary . 160)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 454)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 452)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((attribute_reference . 51)(name . 450)(qualified_expression . 
54)(selected_component . 55))
       nil
-      ((attribute_reference . 447)(direct_name . 448)(name . 
449)(qualified_expression . 54)(selected_component . 55))
-      ((attribute_reference . 51)(name . 68)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
       nil
@@ -3452,11 +3462,11 @@
       nil
       nil
       nil
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 442)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(generic_renaming_declaration . 
321)(generic_subprog [...]
       nil
       nil
       nil
       nil
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 434)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(generic_renaming_declaration . 
320)(generic_subprog [...]
       nil
       nil
       nil
@@ -3467,11 +3477,11 @@
       nil
       nil
       nil
+      ((function_specification . 436)(procedure_specification . 
437)(subprogram_specification . 438))
       nil
       nil
       nil
       nil
-      ((function_specification . 428)(procedure_specification . 
429)(subprogram_specification . 430))
       nil
       nil
       nil
@@ -3493,103 +3503,106 @@
       nil
       nil
       nil
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 434)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(gen [...]
+      ((binary_adding_operator . 358))
       nil
       nil
       nil
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(selected_component . 55)(term . 
433))
       nil
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 426)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(gen [...]
-      ((binary_adding_operator . 357))
       nil
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(selected_component . 55)(term . 
425))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 432)(name . 
163)(primary . 166)(qualified_expression . 54)(selected_component . 55))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 431)(term . 176)(term_list . 177)(unary_adding_operator 
. 178))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation 
. 430)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list 
. 177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation 
. 428)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list 
. 177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation 
. 426)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list 
. 177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation 
. 425)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list 
. 177)(unary_adding_operator . 178))
       nil
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation 
. 423)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list 
. 177)(unary_adding_operator . 178))
       nil
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation 
. 421)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list 
. 177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(name . 163)(primary . 
420)(qualified_expression . 54)(selected_component . 55))
       nil
+      ((aggregate . 157)(attribute_reference . 51)(case_expression . 
158)(conditional_quantified_expression . 159)(expression . 160)(factor . 
161)(if_expression . 162)(name . 163)(pragma_argument_association . 
418)(primary . 166)(qualified_expression . 54)(quantified_expression . 
167)(raise_expression . 168)(relation_and_list . 169)(relation_and_then_list . 
170)(relation_or_list . 171)(relation_or_else_list . 172)(relation_xor_list . 
173)(relation . 174)(selected_component . 55)(simple_e [...]
+      ((aggregate . 157)(attribute_reference . 51)(expression . 417)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      nil
+      ((actual_parameter_part . 92))
+      ((actual_parameter_part . 92))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 424)(name . 
157)(primary . 160)(qualified_expression . 54)(selected_component . 55))
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 423)(term . 169)(term_list . 170)(unary_adding_operator 
. 171))
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(raise_expression . 161)(relation 
. 422)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list 
. 170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(raise_expression . 161)(relation 
. 420)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list 
. 170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(raise_expression . 161)(relation 
. 418)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list 
. 170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(raise_expression . 161)(relation 
. 417)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list 
. 170)(unary_adding_operator . 171))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(raise_expression . 161)(relation 
. 415)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list 
. 170)(unary_adding_operator . 171))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(raise_expression . 161)(relation 
. 413)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list 
. 170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(name . 157)(primary . 
412)(qualified_expression . 54)(selected_component . 55))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 155)(factor . 
156)(name . 157)(pragma_argument_association . 410)(primary . 
160)(qualified_expression . 54)(raise_expression . 161)(relation_and_list . 
162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 409)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
-      ((actual_parameter_part . 92))
-      ((actual_parameter_part . 92))
-      ((quantifier . 406))
       nil
       nil
+      ((iterator_specification . 409))
       nil
       nil
       nil
       nil
       nil
-      ((function_specification . 16)(procedure_specification . 
32)(subprogram_specification . 398))
+      ((function_specification . 16)(procedure_specification . 
32)(subprogram_specification . 404))
       nil
       nil
       nil
       nil
-      ((attribute_reference . 51)(name . 395)(qualified_expression . 
54)(selected_component . 55))
-      ((attribute_reference . 51)(name . 394)(qualified_expression . 
54)(selected_component . 55))
-      ((actual_parameter_part . 92)(aspect_specification_opt . 671))
-      ((actual_parameter_part . 92)(aspect_specification_opt . 670))
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 
652)(handled_sequence_of_statements . 653)(if_statement . 654)(iteration_scheme 
. 655)(label_opt . 656)(loop_statement . 657)(name . 658)(pragma . 
659)(procedure_call_statement . 660)(qualified_expression . 54)(raise_statement 
. 66 [...]
+      ((attribute_reference . 51)(name . 401)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 400)(qualified_expression . 
54)(selected_component . 55))
+      ((actual_parameter_part . 92)(aspect_specification_opt . 676))
+      ((actual_parameter_part . 92)(aspect_specification_opt . 675))
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 
657)(handled_sequence_of_statements . 658)(if_statement . 659)(iteration_scheme 
. 660)(label_opt . 661)(loop_statement . 662)(name . 663)(pragma . 
664)(procedure_call_statement . 665)(qualified_expression . 54)(raise_statement 
. 66 [...]
       nil
-      ((aspect_specification_opt . 624))
+      ((aspect_specification_opt . 629))
       nil
       nil
+      ((case_expression_alternative . 625)(case_expression_alternative_list . 
626))
       nil
       nil
+      ((aggregate . 157)(attribute_reference . 51)(expression . 619)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aggregate . 157)(association_opt . 184)(association_list . 
618)(attribute_reference . 51)(choice_expression . 
186)(choice_relation_and_list . 187)(choice_relation_or_list . 
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list . 
190)(choice_relation_or_else_list . 191)(choice_relation . 192)(discrete_choice 
. 193)(discrete_choice_list . 194)(expression . 195)(expression_opt . 
196)(factor . 161)(name . 197)(primary . 166)(qualified_expression . 
54)(raise_expression .  [...]
       nil
       nil
       nil
-      ((iterator_specification . 621))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 619)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 615)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(raise_expression . 161)(relation 
. 617)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list 
. 170)(unary_adding_operator . 171))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation 
. 613)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list 
. 177)(unary_adding_operator . 178))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(raise_expression . 161)(relation 
. 616)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list 
. 170)(unary_adding_operator . 171))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation 
. 612)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list 
. 177)(unary_adding_operator . 178))
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(raise_expression . 161)(relation 
. 615)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list 
. 170)(unary_adding_operator . 171))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation 
. 611)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list 
. 177)(unary_adding_operator . 178))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(raise_expression . 161)(relation 
. 614)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list 
. 170)(unary_adding_operator . 171))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation 
. 610)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list 
. 177)(unary_adding_operator . 178))
       nil
       nil
       nil
-      ((multiplying_operator . 362))
+      ((multiplying_operator . 363))
       nil
       nil
       nil
       nil
       ((aspect_specification_opt . 129))
-      ((aliased_opt . 607))
-      ((attribute_reference . 51)(name . 604)(qualified_expression . 
54)(selected_component . 55))
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 603)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(gen [...]
+      ((aliased_opt . 603))
+      ((attribute_reference . 51)(name . 243)(name_opt . 
600)(qualified_expression . 54)(selected_component . 55))
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 599)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(gen [...]
       nil
-      ((access_definition . 601)(null_exclusion_opt . 602))
-      ((discriminant_part_opt . 599))
+      ((access_definition . 597)(null_exclusion_opt . 598))
+      ((discriminant_part_opt . 595))
       nil
       nil
-      ((aspect_specification_opt . 596))
+      ((aspect_specification_opt . 592))
       nil
       nil
       nil
-      ((aspect_specification_opt . 592))
-      ((attribute_reference . 51)(name . 591)(qualified_expression . 
54)(selected_component . 55))
+      ((aspect_specification_opt . 588))
+      ((attribute_reference . 51)(name . 587)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
       nil
@@ -3599,24 +3612,24 @@
       nil
       nil
       nil
-      ((relational_operator . 583))
+      ((relational_operator . 579))
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(choice_relation . 
587)(factor . 156)(name . 157)(primary . 160)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 454)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(choice_relation . 
586)(factor . 156)(name . 157)(primary . 160)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 454)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((aggregate . 157)(attribute_reference . 51)(choice_relation . 
583)(factor . 161)(name . 163)(primary . 166)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(choice_relation . 
582)(factor . 161)(name . 163)(primary . 166)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(choice_relation . 
585)(factor . 156)(name . 157)(primary . 160)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 454)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((aggregate . 157)(attribute_reference . 51)(choice_relation . 
581)(factor . 161)(name . 163)(primary . 166)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(choice_relation . 
584)(factor . 156)(name . 157)(primary . 160)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 454)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((aggregate . 157)(attribute_reference . 51)(choice_relation . 
580)(factor . 161)(name . 163)(primary . 166)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
       nil
       nil
-      ((relational_operator . 583))
+      ((relational_operator . 579))
       nil
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 
156)(membership_choice_list . 581)(membership_choice . 473)(name . 190)(primary 
. 160)(qualified_expression . 54)(range . 474)(selected_component . 
55)(simple_expression . 475)(term . 169)(term_list . 170)(unary_adding_operator 
. 171))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 
161)(membership_choice_list . 577)(membership_choice . 481)(name . 197)(primary 
. 166)(qualified_expression . 54)(range . 482)(selected_component . 
55)(simple_expression . 483)(term . 176)(term_list . 177)(unary_adding_operator 
. 178))
       nil
       nil
       nil
@@ -3629,9 +3642,9 @@
       nil
       nil
       nil
-      ((access_definition . 572)(attribute_reference . 51)(name . 
573)(null_exclusion_opt . 509)(null_exclusion_opt_name_type . 
574)(qualified_expression . 54)(selected_component . 575))
+      ((access_definition . 568)(attribute_reference . 51)(name . 
569)(null_exclusion_opt . 517)(null_exclusion_opt_name_type . 
570)(qualified_expression . 54)(selected_component . 571))
       nil
-      ((discriminant_specification_opt . 569)(identifier_list . 263))
+      ((discriminant_specification_opt . 565)(identifier_list . 263))
       nil
       nil
       nil
@@ -3645,62 +3658,60 @@
       nil
       nil
       nil
-      ((aspect_specification_opt . 556))
+      ((aspect_specification_opt . 552))
       nil
       nil
       nil
       nil
       nil
-      ((aspect_specification_opt . 551))
+      ((aspect_specification_opt . 547))
       nil
       nil
       nil
       nil
       nil
-      ((aspect_specification_opt . 548))
-      ((attribute_reference . 51)(name . 547)(qualified_expression . 
54)(selected_component . 55))
-      ((actual_parameter_part . 92)(aspect_specification_opt . 546))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 544)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((aspect_specification_opt . 544))
+      ((attribute_reference . 51)(name . 543)(qualified_expression . 
54)(selected_component . 55))
+      ((actual_parameter_part . 92)(aspect_specification_opt . 542))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 540)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
       nil
-      ((aggregate . 154)(association_opt . 177)(association_list . 
542)(attribute_reference . 51)(choice_expression . 
179)(choice_relation_and_list . 180)(choice_relation_or_list . 
181)(choice_relation_xor_list . 182)(choice_relation_and_then_list . 
183)(choice_relation_or_else_list . 184)(choice_relation . 185)(discrete_choice 
. 186)(discrete_choice_list . 187)(expression . 188)(expression_opt . 
189)(factor . 156)(name . 190)(primary . 160)(qualified_expression . 
54)(raise_expression .  [...]
       nil
       nil
+      ((attribute_reference . 51)(name . 538)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
+      ((access_definition . 534)(mode_opt . 535)(null_exclusion_opt . 517))
       nil
       nil
+      ((null_exclusion_opt . 811))
+      ((formal_part . 93)(parameter_and_result_profile . 810))
+      ((formal_part . 117)(parameter_profile_opt . 809))
+      ((actual_parameter_part . 92))
       nil
+      ((aspect_specification_opt . 807))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 806)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((attribute_reference . 51)(name . 537)(qualified_expression . 
54)(selected_component . 55))
+      ((actual_parameter_part . 92)(formal_package_actual_part . 804))
       nil
       nil
-      ((access_definition . 533)(mode_opt . 534)(null_exclusion_opt . 509))
       nil
       nil
-      ((null_exclusion_opt . 801))
-      ((formal_part . 93)(parameter_and_result_profile . 800))
-      ((formal_part . 117)(parameter_profile_opt . 799))
-      ((actual_parameter_part . 92))
-      ((case_expression_alternative . 796)(case_expression_alternative_list . 
797))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 794)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
+      ((attribute_reference . 51)(name . 800)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
       nil
-      ((aspect_specification_opt . 791))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 790)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
-      ((actual_parameter_part . 92)(formal_package_actual_part . 788))
       nil
       nil
       nil
       nil
       nil
-      ((attribute_reference . 51)(name . 784)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
+      ((aggregate . 157)(attribute_reference . 51)(discrete_subtype_definition 
. 788)(discrete_subtype_definition_list . 789)(factor . 
161)(index_subtype_definition . 790)(index_subtype_definition_list . 791)(name 
. 792)(primary . 166)(qualified_expression . 54)(range . 
738)(selected_component . 55)(simple_expression . 487)(subtype_indication . 
739)(term . 176)(term_list . 177)(unary_adding_operator . 178))
       nil
       nil
       nil
@@ -3708,85 +3719,89 @@
       nil
       nil
       nil
+      ((actual_parameter_part . 92))
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(discrete_subtype_definition 
. 770)(discrete_subtype_definition_list . 771)(factor . 
156)(index_subtype_definition . 772)(index_subtype_definition_list . 773)(name 
. 774)(primary . 160)(qualified_expression . 54)(range . 
775)(selected_component . 55)(simple_expression . 479)(subtype_indication . 
776)(term . 169)(term_list . 170)(unary_adding_operator . 171))
       nil
       nil
       nil
       nil
+      ((aggregate . 157)(attribute_reference . 51)(factor . 
161)(membership_choice . 783)(name . 197)(primary . 166)(qualified_expression . 
54)(range . 482)(selected_component . 55)(simple_expression . 483)(term . 
176)(term_list . 177)(unary_adding_operator . 178))
       nil
+      ((aggregate . 157)(attribute_reference . 51)(expression . 782)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 781)(term . 176)(term_list . 177)(unary_adding_operator 
. 178))
       nil
       nil
-      ((actual_parameter_part . 92))
       nil
       nil
+      ((aggregate . 779)(record_rep . 780))
       nil
+      ((aggregate . 157)(attribute_reference . 51)(expression . 776)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((actual_parameter_part . 92)(aspect_specification_opt . 179))
       nil
+      ((discriminant_part_opt . 773))
+      ((aspect_specification_opt . 726))
+      ((attribute_reference . 51)(name . 730)(qualified_expression . 
54)(selected_component . 55)(subtype_indication . 771))
       nil
+      ((discriminant_part_opt . 768))
+      ((aspect_specification_opt . 725))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 
156)(membership_choice . 764)(name . 190)(primary . 160)(qualified_expression . 
54)(range . 474)(selected_component . 55)(simple_expression . 475)(term . 
169)(term_list . 170)(unary_adding_operator . 171))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 763)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 762)(term . 169)(term_list . 170)(unary_adding_operator 
. 171))
       nil
+      ((attribute_reference . 51)(name . 762)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
       nil
-      ((aggregate . 760)(record_rep . 761))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 757)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((actual_parameter_part . 92)(aspect_specification_opt . 172))
+      ((constant_opt . 758))
       nil
-      ((discriminant_part_opt . 754))
-      ((aspect_specification_opt . 721))
-      ((attribute_reference . 51)(name . 751)(qualified_expression . 
54)(selected_component . 55)(subtype_indication . 752))
       nil
-      ((discriminant_part_opt . 747))
-      ((aspect_specification_opt . 720))
+      ((paren_expression . 753))
+      ((formal_part . 117)(parameter_profile_opt . 751))
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 
657)(handled_sequence_of_statements . 749)(if_statement . 659)(iteration_scheme 
. 660)(label_opt . 661)(loop_statement . 662)(name . 663)(pragma . 
664)(procedure_call_statement . 665)(qualified_expression . 54)(raise_statement 
. 66 [...]
+      ((attribute_reference . 51)(name . 243)(name_opt . 
748)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
       nil
-      ((attribute_reference . 51)(name . 741)(qualified_expression . 
54)(selected_component . 55))
       nil
-      ((actual_parameter_part . 92))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 747)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
-      ((constant_opt . 737))
       nil
       nil
-      ((paren_expression . 732))
-      ((formal_part . 117)(parameter_profile_opt . 730))
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 
652)(handled_sequence_of_statements . 728)(if_statement . 654)(iteration_scheme 
. 655)(label_opt . 656)(loop_statement . 657)(name . 658)(pragma . 
659)(procedure_call_statement . 660)(qualified_expression . 54)(raise_statement 
. 66 [...]
-      ((attribute_reference . 51)(name . 236)(name_opt . 
727)(qualified_expression . 54)(selected_component . 55))
+      ((elsif_expression_item . 743)(elsif_expression_list . 744))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 740)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(discrete_subtype_definition 
. 736)(factor . 161)(name . 737)(primary . 166)(qualified_expression . 
54)(range . 738)(selected_component . 55)(simple_expression . 
487)(subtype_indication . 739)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((attribute_reference . 51)(name . 733)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 730)(qualified_expression . 
54)(selected_component . 55)(subtype_indication . 731))
+      ((aggregate . 157)(attribute_reference . 51)(choice_expression . 
186)(choice_relation_and_list . 187)(choice_relation_or_list . 
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list . 
190)(choice_relation_or_else_list . 191)(choice_relation . 192)(discrete_choice 
. 193)(discrete_choice_list . 728)(factor . 161)(name . 197)(primary . 
166)(qualified_expression . 54)(range . 198)(selected_component . 
55)(simple_expression . 475)(term . 176)(term_list . 177)(unary_adding_o [...]
       nil
       nil
+      ((aspect_specification_opt . 726))
+      ((aspect_specification_opt . 725))
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 726)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((attribute_reference . 51)(name . 723)(qualified_expression . 
54)(selected_component . 55))
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 
657)(handled_sequence_of_statements . 722)(if_statement . 659)(iteration_scheme 
. 660)(label_opt . 661)(loop_statement . 662)(name . 663)(pragma . 
664)(procedure_call_statement . 665)(qualified_expression . 54)(raise_statement 
. 66 [...]
+      ((aggregate . 157)(attribute_reference . 51)(expression . 
195)(expression_opt . 721)(factor . 161)(name . 163)(primary . 
166)(qualified_expression . 54)(raise_expression . 168)(relation_and_list . 
169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 720)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(gen [...]
+      ((aggregate . 157)(attribute_reference . 51)(expression . 719)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((identifier_opt . 717))
+      ((iterator_specification . 714)(iterator_specification_opt . 715))
       nil
+      ((aggregate . 157)(attribute_reference . 51)(expression . 
195)(expression_opt . 712)(factor . 161)(name . 163)(primary . 
166)(qualified_expression . 54)(raise_expression . 168)(relation_and_list . 
169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
       nil
+      ((attribute_reference . 51)(name . 709)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 707)(qualified_expression . 
54)(selected_component . 55))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 
704)(extended_return_object_declaration . 
705)(extended_return_object_declaration_opt . 706)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_op [...]
+      ((accept_statement . 692)(attribute_reference . 51)(delay_alternative . 
693)(delay_statement . 694)(entry_call_alternative . 695)(name . 
696)(procedure_call_statement . 697)(qualified_expression . 
54)(selected_component . 55)(select_alternative . 698)(select_alternative_list 
. 699)(select_alternative_list_opt . 700)(triggering_alternative . 701))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 
195)(expression_opt . 689)(factor . 161)(name . 163)(primary . 
166)(qualified_expression . 54)(raise_expression . 168)(relation_and_list . 
169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((aspect_specification_opt . 721))
-      ((aspect_specification_opt . 720))
       nil
       nil
-      ((attribute_reference . 51)(name . 718)(qualified_expression . 
54)(selected_component . 55))
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 
652)(handled_sequence_of_statements . 717)(if_statement . 654)(iteration_scheme 
. 655)(label_opt . 656)(loop_statement . 657)(name . 658)(pragma . 
659)(procedure_call_statement . 660)(qualified_expression . 54)(raise_statement 
. 66 [...]
-      ((aggregate . 154)(attribute_reference . 51)(expression . 
188)(expression_opt . 716)(factor . 156)(name . 157)(primary . 
160)(qualified_expression . 54)(raise_expression . 161)(relation_and_list . 
162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 715)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(gen [...]
-      ((aggregate . 154)(attribute_reference . 51)(expression . 714)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((identifier_opt . 712))
-      ((iterator_specification . 709)(iterator_specification_opt . 710))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 
188)(expression_opt . 707)(factor . 156)(name . 157)(primary . 
160)(qualified_expression . 54)(raise_expression . 161)(relation_and_list . 
162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
       nil
-      ((attribute_reference . 51)(name . 704)(qualified_expression . 
54)(selected_component . 55))
-      ((attribute_reference . 51)(name . 702)(qualified_expression . 
54)(selected_component . 55))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 
699)(extended_return_object_declaration . 
700)(extended_return_object_declaration_opt . 701)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_op [...]
-      ((accept_statement . 687)(attribute_reference . 51)(delay_alternative . 
688)(delay_statement . 689)(entry_call_alternative . 690)(name . 
691)(procedure_call_statement . 692)(qualified_expression . 
54)(selected_component . 55)(select_alternative . 693)(select_alternative_list 
. 694)(select_alternative_list_opt . 695)(triggering_alternative . 696))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 
188)(expression_opt . 684)(factor . 156)(name . 157)(primary . 
160)(qualified_expression . 54)(raise_expression . 161)(relation_and_list . 
162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
       nil
       nil
@@ -3796,292 +3811,288 @@
       nil
       nil
       nil
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(compound_statement . 683)(conditional_entry_call . 
654)(delay_statement . 655)(exit_statement . 656)(extended_return_statement . 
657)(if_statement . 659)(iteration_scheme . 660)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(s [...]
       nil
+      ((actual_parameter_part . 92))
       nil
       nil
       nil
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(compound_statement . 678)(conditional_entry_call . 
649)(delay_statement . 650)(exit_statement . 651)(extended_return_statement . 
652)(if_statement . 654)(iteration_scheme . 655)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(s [...]
       nil
-      ((actual_parameter_part . 92))
       nil
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
       nil
       nil
       nil
       nil
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
       nil
       nil
       nil
+      ((exception_handler . 951)(exception_handler_list . 
952)(exception_handler_list_opt . 953))
       nil
+      ((aggregate . 157)(attribute_reference . 51)(expression . 949)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
       nil
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
+      ((attribute_reference . 51)(name . 243)(name_opt . 
947)(qualified_expression . 54)(selected_component . 55))
       nil
-      ((exception_handler . 946)(exception_handler_list . 
947)(exception_handler_list_opt . 948))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 944)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
       nil
+      ((aggregate . 157)(attribute_reference . 51)(expression . 944)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
-      ((attribute_reference . 51)(name . 236)(name_opt . 
942)(qualified_expression . 54)(selected_component . 55))
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
       nil
+      ((accept_statement . 649)(actual_parameter_part . 
92)(assignment_statement . 650)(asynchronous_select . 651)(attribute_reference 
. 51)(block_statement . 652)(case_statement . 653)(conditional_entry_call . 
654)(delay_statement . 655)(exit_statement . 656)(extended_return_statement . 
657)(if_statement . 659)(iteration_scheme . 660)(label_opt . 
661)(loop_statement . 662)(name . 663)(pragma . 664)(procedure_call_statement . 
665)(qualified_expression . 54)(raise_statement . 666)(requeue [...]
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
       nil
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 939)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
       nil
-      ((accept_statement . 644)(actual_parameter_part . 
92)(assignment_statement . 645)(asynchronous_select . 646)(attribute_reference 
. 51)(block_statement . 647)(case_statement . 648)(conditional_entry_call . 
649)(delay_statement . 650)(exit_statement . 651)(extended_return_statement . 
652)(if_statement . 654)(iteration_scheme . 655)(label_opt . 
656)(loop_statement . 657)(name . 658)(pragma . 659)(procedure_call_statement . 
660)(qualified_expression . 54)(raise_statement . 661)(requeue [...]
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
       nil
       nil
       nil
       nil
+      ((actual_parameter_part . 92))
       nil
+      ((actual_parameter_part . 92))
       nil
       nil
       nil
       nil
-      ((actual_parameter_part . 92))
       nil
-      ((actual_parameter_part . 92))
       nil
       nil
       nil
+      ((aggregate . 157)(attribute_reference . 51)(expression . 920)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
       nil
       nil
+      ((actual_parameter_part . 92))
+      ((actual_parameter_part . 913)(actual_parameter_part_opt . 914))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 915)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
+      ((case_expression_alternative . 909))
       nil
       nil
+      ((actual_parameter_part . 92)(constraint . 829)(index_constraint . 830))
       nil
+      ((attribute_reference . 51)(name . 905)(qualified_expression . 
54)(selected_component . 55))
       ((actual_parameter_part . 92))
-      ((actual_parameter_part . 908)(actual_parameter_part_opt . 909))
+      ((aggregate . 157)(attribute_reference . 51)(name . 163)(primary . 
298)(qualified_expression . 54)(selected_component . 55))
+      ((aggregate . 157)(attribute_reference . 51)(discrete_subtype_definition 
. 903)(factor . 161)(name . 737)(primary . 166)(qualified_expression . 
54)(range . 738)(selected_component . 55)(simple_expression . 
487)(subtype_indication . 739)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      nil
+      ((actual_parameter_part . 92)(constraint . 829)(index_constraint . 830))
+      nil
+      nil
+      nil
+      ((aggregate . 157)(attribute_reference . 51)(expression . 901)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 900)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
+      ((elsif_expression_item . 899))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 904)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(discrete_subtype_definition 
. 903)(factor . 156)(name . 896)(primary . 160)(qualified_expression . 
54)(range . 775)(selected_component . 55)(simple_expression . 
479)(subtype_indication . 776)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((attribute_reference . 51)(name . 901)(qualified_expression . 
54)(selected_component . 55))
-      ((attribute_reference . 51)(name . 751)(qualified_expression . 
54)(selected_component . 55)(subtype_indication . 899))
       nil
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(discrete_subtype_definition 
. 895)(factor . 156)(identifier_list . 229)(name . 896)(parameter_specification 
. 230)(parameter_specification_list . 231)(primary . 160)(qualified_expression 
. 54)(range . 775)(selected_component . 55)(simple_expression . 
479)(subtype_indication . 776)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aspect_specification_opt . 894))
-      ((aggregate . 154)(attribute_reference . 51)(case_expression . 
891)(expression . 892)(factor . 156)(if_expression . 893)(name . 157)(primary . 
160)(qualified_expression . 54)(raise_expression . 161)(relation_and_list . 
162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      nil
+      ((aggregate . 157)(attribute_reference . 51)(discrete_subtype_definition 
. 894)(factor . 161)(identifier_list . 236)(name . 737)(parameter_specification 
. 237)(parameter_specification_list . 238)(primary . 166)(qualified_expression 
. 54)(range . 738)(selected_component . 55)(simple_expression . 
487)(subtype_indication . 739)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aspect_specification_opt . 893))
+      ((aggregate . 157)(attribute_reference . 51)(case_expression . 
158)(conditional_quantified_expression . 891)(expression . 892)(factor . 
161)(if_expression . 162)(name . 163)(primary . 166)(qualified_expression . 
54)(quantified_expression . 167)(raise_expression . 168)(relation_and_list . 
169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_l [...]
       ((aspect_specification_opt . 890))
       ((aspect_specification_opt . 889))
       ((aspect_specification_opt . 888))
       ((aspect_specification_opt . 887))
       nil
-      ((access_definition . 884)(array_type_definition . 
885)(attribute_reference . 51)(name . 751)(null_exclusion_opt . 
509)(qualified_expression . 54)(selected_component . 55)(subtype_indication . 
886))
+      ((access_definition . 884)(array_type_definition . 
885)(attribute_reference . 51)(name . 730)(null_exclusion_opt . 
517)(qualified_expression . 54)(selected_component . 55)(subtype_indication . 
886))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 882)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((attribute_reference . 51)(name . 236)(name_opt . 
881)(qualified_expression . 54)(selected_component . 55))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 882)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((attribute_reference . 51)(name . 243)(name_opt . 
881)(qualified_expression . 54)(selected_component . 55))
       ((actual_parameter_part . 92))
       ((attribute_reference . 51)(name . 879)(qualified_expression . 
54)(selected_component . 55))
       ((attribute_reference . 51)(name . 878)(qualified_expression . 
54)(selected_component . 55))
-      ((abstract_limited_synchronized_opt . 868)(abstract_limited_opt . 
869)(abstract_tagged_limited_opt . 870)(access_definition . 
871)(array_type_definition . 872)(derived_type_definition . 
873)(enumeration_type_definition . 874)(interface_type_definition . 
875)(null_exclusion_opt . 509)(record_type_definition . 876)(type_definition . 
877))
+      ((abstract_limited_synchronized_opt . 868)(abstract_limited_opt . 
869)(abstract_tagged_limited_opt . 870)(access_definition . 
871)(array_type_definition . 872)(derived_type_definition . 
873)(enumeration_type_definition . 874)(interface_type_definition . 
875)(null_exclusion_opt . 517)(record_type_definition . 876)(type_definition . 
877))
       nil
       nil
       ((aspect_specification_opt . 856))
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 854)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(gen [...]
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 854)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(gen [...]
       nil
+      ((aspect_specification_opt . 852))
       nil
-      ((actual_parameter_part . 92)(constraint . 826)(index_constraint . 827))
       ((aspect_specification_opt . 850))
-      nil
-      ((aspect_specification_opt . 848))
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 846)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(gen [...]
-      nil
-      nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 842)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((mod_clause_opt . 841))
-      nil
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 848)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(gen [...]
       nil
       nil
+      ((aggregate . 157)(attribute_reference . 51)(expression . 844)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((mod_clause_opt . 843))
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 836)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 835)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((attribute_reference . 51)(name . 573)(qualified_expression . 
54)(selected_component . 834))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(name . 157)(primary . 
297)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
+      ((aggregate . 157)(attribute_reference . 51)(expression . 838)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 837)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((attribute_reference . 51)(name . 569)(qualified_expression . 
54)(selected_component . 836))
       nil
       nil
-      ((actual_parameter_part . 92)(constraint . 826)(index_constraint . 827))
       nil
       nil
       nil
+      ((actual_parameter_part . 92)(constraint . 829)(index_constraint . 830))
       nil
-      ((attribute_reference . 51)(interface_list . 822)(name . 
819)(qualified_expression . 54)(selected_component . 55))
-      ((attribute_reference . 51)(interface_list . 821)(name . 
819)(qualified_expression . 54)(selected_component . 55))
-      ((attribute_reference . 51)(interface_list . 820)(name . 
819)(qualified_expression . 54)(selected_component . 55))
       nil
-      ((attribute_reference . 51)(interface_list . 818)(name . 
819)(qualified_expression . 54)(selected_component . 55))
-      ((actual_parameter_part . 92)(and_interface_list_opt . 817))
+      ((attribute_reference . 51)(interface_list . 825)(name . 
822)(qualified_expression . 54)(selected_component . 55))
+      ((attribute_reference . 51)(interface_list . 824)(name . 
822)(qualified_expression . 54)(selected_component . 55))
+      ((attribute_reference . 51)(interface_list . 823)(name . 
822)(qualified_expression . 54)(selected_component . 55))
       nil
+      ((attribute_reference . 51)(interface_list . 821)(name . 
822)(qualified_expression . 54)(selected_component . 55))
+      ((actual_parameter_part . 92)(and_interface_list_opt . 820))
       nil
-      ((aggregate . 154)(association_opt . 177)(association_list . 
194)(attribute_reference . 51)(choice_expression . 
179)(choice_relation_and_list . 180)(choice_relation_or_list . 
181)(choice_relation_xor_list . 182)(choice_relation_and_then_list . 
183)(choice_relation_or_else_list . 184)(choice_relation . 185)(discrete_choice 
. 186)(discrete_choice_list . 187)(expression . 188)(expression_opt . 
189)(factor . 156)(name . 190)(primary . 160)(qualified_expression . 
54)(raise_expression .  [...]
-      ((aspect_specification_opt . 814))
       nil
-      ((aspect_specification_opt . 813))
+      ((aggregate . 157)(association_opt . 184)(association_list . 
201)(attribute_reference . 51)(case_expression . 158)(choice_expression . 
186)(choice_relation_and_list . 187)(choice_relation_or_list . 
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list . 
190)(choice_relation_or_else_list . 191)(choice_relation . 
192)(conditional_quantified_expression . 202)(discrete_choice . 
193)(discrete_choice_list . 194)(expression . 195)(expression_opt . 196)(factor 
. 161)(if_expres [...]
+      ((aspect_specification_opt . 817))
       nil
+      ((aspect_specification_opt . 816))
       nil
+      ((identifier_list . 236)(parameter_specification . 
237)(parameter_specification_list . 238))
       nil
-      ((elsif_expression_item . 809)(elsif_expression_list . 810))
-      ((aggregate . 154)(attribute_reference . 51)(choice_expression . 
179)(choice_relation_and_list . 180)(choice_relation_or_list . 
181)(choice_relation_xor_list . 182)(choice_relation_and_then_list . 
183)(choice_relation_or_else_list . 184)(choice_relation . 185)(discrete_choice 
. 186)(discrete_choice_list . 806)(factor . 156)(name . 190)(primary . 
160)(qualified_expression . 54)(range . 191)(selected_component . 
55)(simple_expression . 467)(term . 169)(term_list . 170)(unary_adding_o [...]
       nil
-      nil
-      ((identifier_list . 229)(parameter_specification . 
230)(parameter_specification_list . 231))
-      nil
-      nil
-      ((attribute_reference . 51)(name . 804)(qualified_expression . 
54)(selected_component . 55))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 803)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((attribute_reference . 51)(name . 814)(qualified_expression . 
54)(selected_component . 55))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 813)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       ((actual_parameter_part . 92))
-      ((case_expression_alternative . 1083))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 1081)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 1080)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
-      ((elsif_expression_item . 1079))
       nil
       nil
+      ((attribute_reference . 51)(interface_list . 1080)(name . 
822)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
+      ((actual_parameter_part . 92))
       nil
-      ((attribute_reference . 51)(interface_list . 1074)(name . 
819)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
-      ((actual_parameter_part . 92))
       nil
+      ((aggregate . 157)(association_opt . 184)(association_list . 
201)(attribute_reference . 51)(case_expression . 158)(choice_expression . 
186)(choice_relation_and_list . 187)(choice_relation_or_list . 
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list . 
190)(choice_relation_or_else_list . 191)(choice_relation . 
192)(conditional_quantified_expression . 202)(discrete_choice . 
193)(discrete_choice_list . 194)(discrete_subtype_definition . 
788)(discrete_subtype_definition_ [...]
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
197)(primary . 166)(qualified_expression . 54)(range . 1001)(selected_component 
. 55)(simple_expression . 487)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
       nil
-      ((aggregate . 154)(association_opt . 177)(association_list . 
194)(attribute_reference . 51)(choice_expression . 
179)(choice_relation_and_list . 180)(choice_relation_or_list . 
181)(choice_relation_xor_list . 182)(choice_relation_and_then_list . 
183)(choice_relation_or_else_list . 184)(choice_relation . 185)(discrete_choice 
. 186)(discrete_choice_list . 187)(discrete_subtype_definition . 
770)(discrete_subtype_definition_list . 1070)(expression . 188)(expression_opt 
. 189)(factor . 15 [...]
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
190)(primary . 160)(qualified_expression . 54)(range . 1049)(selected_component 
. 55)(simple_expression . 479)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((attribute_reference . 51)(index_subtype_definition . 1071)(name . 
1072)(qualified_expression . 54)(selected_component . 55))
       nil
+      ((aggregate . 157)(attribute_reference . 51)(discrete_subtype_definition 
. 1069)(factor . 161)(name . 737)(primary . 166)(qualified_expression . 
54)(range . 738)(selected_component . 55)(simple_expression . 
487)(subtype_indication . 739)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
-      ((attribute_reference . 51)(index_subtype_definition . 1065)(name . 
1066)(qualified_expression . 54)(selected_component . 55))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(discrete_subtype_definition 
. 1063)(factor . 156)(name . 896)(primary . 160)(qualified_expression . 
54)(range . 775)(selected_component . 55)(simple_expression . 
479)(subtype_indication . 776)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((attribute_reference . 51)(name . 1048)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
       nil
       nil
       nil
+      ((component_clause . 1066)(component_clause_list . 1067))
       nil
       nil
+      ((aspect_specification_opt . 1063))
+      ((attribute_reference . 51)(interface_list . 1062)(name . 
822)(qualified_expression . 54)(selected_component . 55))
       nil
-      ((component_clause . 1060)(component_clause_list . 1061))
       nil
       nil
       ((aspect_specification_opt . 1057))
-      ((attribute_reference . 51)(interface_list . 1056)(name . 
819)(qualified_expression . 54)(selected_component . 55))
       nil
+      ((attribute_reference . 51)(interface_list . 1055)(name . 
822)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
-      ((aspect_specification_opt . 1051))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
190)(primary . 160)(qualified_expression . 54)(range . 1049)(selected_component 
. 55)(simple_expression . 479)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((attribute_reference . 51)(name . 1048)(qualified_expression . 
54)(selected_component . 55))
-      ((attribute_reference . 51)(interface_list . 1047)(name . 
819)(qualified_expression . 54)(selected_component . 55))
+      ((aspect_specification_opt . 1049))
       nil
+      ((aggregate . 157)(attribute_reference . 51)(expression . 1047)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 1046)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((enumeration_literal . 1044)(enumeration_literal_list . 1045))
       nil
+      ((aggregate . 157)(attribute_reference . 51)(expression . 1041)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((aspect_specification_opt . 1041))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1039)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aspect_clause . 1032)(at_clause . 308)(component_declaration . 
1033)(component_item . 1034)(component_list . 1035)(component_list_opt . 
1036)(enumeration_representation_clause . 315)(identifier_list . 
1037)(record_representation_clause . 339)(variant_part . 1038))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 1039)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 1038)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((enumeration_literal . 1036)(enumeration_literal_list . 1037))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 1033)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1031)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aspect_clause . 1024)(at_clause . 307)(component_declaration . 
1025)(component_item . 1026)(component_list . 1027)(component_list_opt . 
1028)(enumeration_representation_clause . 314)(identifier_list . 
1029)(record_representation_clause . 338)(variant_part . 1030))
+      ((record_definition . 1026))
       nil
       nil
       nil
-      ((record_definition . 1018))
       nil
       nil
       nil
+      ((aspect_specification_opt . 1024))
+      ((actual_parameter_part . 92)(aspect_specification_opt . 1023))
+      ((actual_parameter_part . 92)(aspect_specification_opt . 1022))
+      ((attribute_reference . 51)(name . 1021)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
       nil
+      ((aspect_specification_opt . 1018))
       ((aspect_specification_opt . 1016))
-      ((actual_parameter_part . 92)(aspect_specification_opt . 1015))
-      ((actual_parameter_part . 92)(aspect_specification_opt . 1014))
-      ((attribute_reference . 51)(name . 1013)(qualified_expression . 
54)(selected_component . 55))
+      ((aspect_specification_opt . 1014))
       nil
       nil
       nil
-      ((aspect_specification_opt . 1010))
-      ((aspect_specification_opt . 1008))
-      ((aspect_specification_opt . 1006))
       nil
       nil
       nil
       nil
       nil
+      ((attribute_reference . 51)(name . 243)(name_opt . 
1004)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
+      ((aggregate . 157)(attribute_reference . 51)(expression . 1003)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
-      ((actual_parameter_part . 92)(constraint . 826)(index_constraint . 827))
-      ((attribute_reference . 51)(name . 236)(name_opt . 
995)(qualified_expression . 54)(selected_component . 55))
       nil
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
197)(primary . 166)(qualified_expression . 54)(range . 1001)(selected_component 
. 55)(simple_expression . 487)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((attribute_reference . 51)(name . 993)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 998)(qualified_expression . 
54)(selected_component . 55))
       ((actual_parameter_part . 92))
-      ((aggregate . 154)(attribute_reference . 51)(discrete_subtype_definition 
. 992)(factor . 156)(name . 896)(primary . 160)(qualified_expression . 
54)(range . 775)(selected_component . 55)(simple_expression . 
479)(subtype_indication . 776)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((attribute_reference . 51)(name . 1000)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 998)(qualified_expression . 
54)(selected_component . 55))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 997)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
+      ((aspect_clause . 987)(at_clause . 308)(entry_body . 
988)(enumeration_representation_clause . 315)(expression_function_declaration . 
989)(function_specification . 16)(null_procedure_declaration . 
990)(overriding_indicator_opt . 991)(procedure_specification . 
32)(protected_operation_item . 992)(protected_operation_item_list . 
993)(protected_operation_item_list_opt . 994)(record_representation_clause . 
339)(subprogram_body . 995)(subprogram_declaration . 996))
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 985)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(gen [...]
+      ((aggregate . 157)(association_opt . 184)(association_list . 
201)(attribute_reference . 51)(case_expression . 158)(choice_expression . 
186)(choice_relation_and_list . 187)(choice_relation_or_list . 
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list . 
190)(choice_relation_or_else_list . 191)(choice_relation . 
192)(conditional_quantified_expression . 202)(discrete_choice . 
193)(discrete_choice_list . 194)(expression . 195)(expression_opt . 196)(factor 
. 161)(if_expres [...]
       nil
-      ((aspect_clause . 982)(at_clause . 307)(entry_body . 
983)(enumeration_representation_clause . 314)(expression_function_declaration . 
984)(function_specification . 16)(null_procedure_declaration . 
985)(overriding_indicator_opt . 986)(procedure_specification . 
32)(protected_operation_item . 987)(protected_operation_item_list . 
988)(protected_operation_item_list_opt . 989)(record_representation_clause . 
338)(subprogram_body . 990)(subprogram_declaration . 991))
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 980)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(gen [...]
-      ((aggregate . 154)(association_opt . 177)(association_list . 
194)(attribute_reference . 51)(choice_expression . 
179)(choice_relation_and_list . 180)(choice_relation_or_list . 
181)(choice_relation_xor_list . 182)(choice_relation_and_then_list . 
183)(choice_relation_or_else_list . 184)(choice_relation . 185)(discrete_choice 
. 186)(discrete_choice_list . 187)(expression . 188)(expression_opt . 
189)(factor . 156)(name . 190)(primary . 160)(qualified_expression . 
54)(raise_expression .  [...]
+      ((formal_part . 117)(parameter_profile_opt . 984))
       nil
-      ((formal_part . 117)(parameter_profile_opt . 979))
+      ((identifier_opt . 983))
+      ((case_statement_alternative . 981)(case_statement_alternative_list . 
982))
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 
657)(handled_sequence_of_statements . 979)(if_statement . 659)(iteration_scheme 
. 660)(label_opt . 661)(loop_statement . 662)(name . 663)(pragma . 
664)(procedure_call_statement . 665)(qualified_expression . 54)(raise_statement 
. 66 [...]
       nil
-      ((identifier_opt . 978))
-      ((case_statement_alternative . 976)(case_statement_alternative_list . 
977))
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 
652)(handled_sequence_of_statements . 974)(if_statement . 654)(iteration_scheme 
. 655)(label_opt . 656)(loop_statement . 657)(name . 658)(pragma . 
659)(procedure_call_statement . 660)(qualified_expression . 54)(raise_statement 
. 66 [...]
       nil
+      ((aggregate . 157)(attribute_reference . 51)(expression . 
195)(expression_opt . 977)(factor . 161)(name . 163)(primary . 
166)(qualified_expression . 54)(raise_expression . 168)(relation_and_list . 
169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 
188)(expression_opt . 972)(factor . 156)(name . 157)(primary . 
160)(qualified_expression . 54)(raise_expression . 161)(relation_and_list . 
162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
+      ((aggregate . 157)(attribute_reference . 51)(expression . 974)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 969)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
       nil
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 
657)(handled_sequence_of_statements . 972)(if_statement . 659)(iteration_scheme 
. 660)(label_opt . 661)(loop_statement . 662)(name . 663)(pragma . 
664)(procedure_call_statement . 665)(qualified_expression . 54)(raise_statement 
. 66 [...]
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 
652)(handled_sequence_of_statements . 967)(if_statement . 654)(iteration_scheme 
. 655)(label_opt . 656)(loop_statement . 657)(name . 658)(pragma . 
659)(procedure_call_statement . 660)(qualified_expression . 54)(raise_statement 
. 66 [...]
       nil
+      ((aliased_opt . 971))
       nil
-      ((aliased_opt . 966))
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
+      ((accept_statement . 692)(delay_alternative . 693)(delay_statement . 
965)(select_alternative . 967))
       nil
-      ((accept_statement . 687)(delay_alternative . 688)(delay_statement . 
960)(select_alternative . 962))
       nil
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
+      ((delay_alternative . 964)(delay_statement . 965))
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
-      ((delay_alternative . 959)(delay_statement . 960))
       nil
       nil
       nil
@@ -4089,10 +4100,9 @@
       nil
       nil
       nil
+      ((attribute_reference . 51)(exception_choice . 
957)(exception_choice_list . 958)(name . 959)(qualified_expression . 
54)(selected_component . 55))
       nil
-      ((attribute_reference . 51)(exception_choice . 
952)(exception_choice_list . 953)(name . 954)(qualified_expression . 
54)(selected_component . 55))
-      nil
-      ((exception_handler . 949))
+      ((exception_handler . 954))
       nil
       nil
       nil
@@ -4103,26 +4113,26 @@
       nil
       nil
       nil
-      ((accept_statement . 1180)(delay_alternative . 1181)(delay_statement . 
960))
+      ((accept_statement . 1177)(delay_alternative . 1178)(delay_statement . 
965))
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
       nil
       nil
       nil
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
-      ((constant_opt . 1172))
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
+      ((constant_opt . 1169))
       nil
       nil
       nil
-      ((identifier_opt . 1168))
-      ((elsif_statement_item . 1166)(elsif_statement_list . 1167))
+      ((identifier_opt . 1165))
+      ((elsif_statement_item . 1163)(elsif_statement_list . 1164))
       nil
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(choice_expression . 
179)(choice_relation_and_list . 180)(choice_relation_or_list . 
181)(choice_relation_xor_list . 182)(choice_relation_and_then_list . 
183)(choice_relation_or_else_list . 184)(choice_relation . 185)(discrete_choice 
. 186)(discrete_choice_list . 1160)(factor . 156)(name . 190)(primary . 
160)(qualified_expression . 54)(range . 191)(selected_component . 
55)(simple_expression . 467)(term . 169)(term_list . 170)(unary_adding_ [...]
+      ((aggregate . 157)(attribute_reference . 51)(choice_expression . 
186)(choice_relation_and_list . 187)(choice_relation_or_list . 
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list . 
190)(choice_relation_or_else_list . 191)(choice_relation . 192)(discrete_choice 
. 193)(discrete_choice_list . 1157)(factor . 161)(name . 197)(primary . 
166)(qualified_expression . 54)(range . 198)(selected_component . 
55)(simple_expression . 475)(term . 176)(term_list . 177)(unary_adding_ [...]
       nil
-      ((case_statement_alternative . 1159))
+      ((case_statement_alternative . 1156))
       nil
       nil
       nil
@@ -4131,49 +4141,51 @@
       nil
       nil
       nil
-      ((function_specification . 428)(procedure_specification . 
429)(subprogram_specification . 1152))
+      ((function_specification . 436)(procedure_specification . 
437)(subprogram_specification . 1149))
       nil
-      ((aspect_clause . 982)(at_clause . 307)(entry_body . 
983)(enumeration_representation_clause . 314)(expression_function_declaration . 
984)(function_specification . 16)(null_procedure_declaration . 
985)(overriding_indicator_opt . 986)(procedure_specification . 
32)(protected_operation_item . 1151)(record_representation_clause . 
338)(subprogram_body . 990)(subprogram_declaration . 991))
+      ((aspect_clause . 987)(at_clause . 308)(entry_body . 
988)(enumeration_representation_clause . 315)(expression_function_declaration . 
989)(function_specification . 16)(null_procedure_declaration . 
990)(overriding_indicator_opt . 991)(procedure_specification . 
32)(protected_operation_item . 1148)(record_representation_clause . 
339)(subprogram_body . 995)(subprogram_declaration . 996))
       nil
       nil
       nil
       nil
+      ((actual_parameter_part . 92)(constraint . 1146)(index_constraint . 830))
+      ((attribute_reference . 51)(name . 1145)(qualified_expression . 
54)(selected_component . 55))
       ((actual_parameter_part . 92))
-      ((attribute_reference . 51)(name . 1149)(qualified_expression . 
54)(selected_component . 55))
       nil
-      ((formal_part . 117)(parameter_profile_opt . 1146))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 1144)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
+      ((formal_part . 117)(parameter_profile_opt . 1142))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 1145)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 1143)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 1141)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 1141)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 1139)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((attribute_reference . 51)(name . 1048)(qualified_expression . 
54)(selected_component . 55))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 1137)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((actual_parameter_part . 92)(aspect_specification_opt . 1139))
+      ((attribute_reference . 51)(name . 998)(qualified_expression . 
54)(selected_component . 55))
       nil
+      ((actual_parameter_part . 92)(aspect_specification_opt . 1135))
       nil
       nil
-      ((aspect_specification_opt . 1135))
       nil
-      ((attribute_reference . 51)(name . 1134)(qualified_expression . 
54)(selected_component . 55))
-      ((attribute_reference . 51)(name . 751)(qualified_expression . 
54)(selected_component . 55)(subtype_indication . 1133))
+      ((aspect_specification_opt . 1131))
       nil
-      ((direct_name . 1131)(direct_name_opt . 1132))
+      ((attribute_reference . 51)(name . 1130)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 730)(qualified_expression . 
54)(selected_component . 55)(subtype_indication . 1129))
       nil
+      ((direct_name . 1127)(direct_name_opt . 1128))
       nil
       nil
       nil
-      ((aspect_clause . 1024)(at_clause . 307)(component_declaration . 
1025)(component_item . 1126)(enumeration_representation_clause . 
314)(identifier_list . 1029)(record_representation_clause . 338)(variant_part . 
1127))
       nil
+      ((aspect_clause . 1032)(at_clause . 308)(component_declaration . 
1033)(component_item . 1122)(enumeration_representation_clause . 
315)(identifier_list . 1037)(record_representation_clause . 339)(variant_part . 
1123))
       nil
       nil
       nil
@@ -4183,62 +4195,52 @@
       nil
       nil
       nil
-      ((real_range_specification_opt . 1120))
-      ((real_range_specification_opt . 1119))
       nil
+      ((real_range_specification_opt . 1116))
+      ((real_range_specification_opt . 1115))
       nil
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 854)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(gen [...]
       nil
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 854)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(gen [...]
       nil
-      ((identifier_opt . 1113))
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 1112)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(ge [...]
       nil
-      ((actual_parameter_part . 92)(constraint . 1110)(index_constraint . 827))
+      ((identifier_opt . 1109))
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 1108)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(ge [...]
       nil
       nil
       nil
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 846)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(gen [...]
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 848)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(gen [...]
       nil
-      ((identifier_opt . 1106))
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 1105)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(ge [...]
+      ((identifier_opt . 1103))
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 1102)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(ge [...]
       nil
       nil
       nil
       nil
       nil
-      ((component_clause . 1101))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 1099)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((component_clause . 1098))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 1096)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((access_definition . 1094)(attribute_reference . 
51)(component_definition . 1098)(name . 751)(null_exclusion_opt . 
509)(qualified_expression . 54)(selected_component . 55)(subtype_indication . 
1096))
+      ((access_definition . 1091)(attribute_reference . 
51)(component_definition . 1095)(name . 730)(null_exclusion_opt . 
517)(qualified_expression . 54)(selected_component . 55)(subtype_indication . 
1093))
       nil
       ((actual_parameter_part . 92))
-      ((access_definition . 1094)(attribute_reference . 
51)(component_definition . 1095)(name . 751)(null_exclusion_opt . 
509)(qualified_expression . 54)(selected_component . 55)(subtype_indication . 
1096))
-      nil
-      ((aggregate . 154)(attribute_reference . 51)(name . 157)(primary . 
297)(qualified_expression . 54)(selected_component . 55))
-      nil
-      nil
-      ((attribute_reference . 51)(name . 1090)(qualified_expression . 
54)(selected_component . 55))
-      nil
+      ((access_definition . 1091)(attribute_reference . 
51)(component_definition . 1092)(name . 730)(null_exclusion_opt . 
517)(qualified_expression . 54)(selected_component . 55)(subtype_indication . 
1093))
       nil
+      ((aggregate . 157)(attribute_reference . 51)(name . 163)(primary . 
298)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
+      ((attribute_reference . 51)(name . 1087)(qualified_expression . 
54)(selected_component . 55))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 1088)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 1086)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 1085)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      nil
-      nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 1248)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 1085)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
       ((actual_parameter_part . 92))
       nil
-      ((attribute_reference . 51)(name . 1247)(qualified_expression . 
54)(selected_component . 55))
-      ((access_definition . 1245)(attribute_reference . 51)(name . 
751)(null_exclusion_opt . 509)(qualified_expression . 54)(selected_component . 
55)(subtype_indication . 1246))
+      ((attribute_reference . 51)(name . 1243)(qualified_expression . 
54)(selected_component . 55))
+      ((access_definition . 1241)(attribute_reference . 51)(name . 
730)(null_exclusion_opt . 517)(qualified_expression . 54)(selected_component . 
55)(subtype_indication . 1242))
       nil
       nil
       nil
@@ -4247,29 +4249,29 @@
       nil
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1242)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1238)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 846)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(gen [...]
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 848)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(gen [...]
       nil
       nil
-      ((attribute_reference . 51)(interface_list . 1239)(name . 
819)(qualified_expression . 54)(selected_component . 55))
+      ((attribute_reference . 51)(interface_list . 1235)(name . 
822)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 854)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(gen [...]
       nil
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 854)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(gen [...]
       nil
+      ((attribute_reference . 51)(interface_list . 1231)(name . 
822)(qualified_expression . 54)(selected_component . 55))
       nil
-      ((attribute_reference . 51)(interface_list . 1235)(name . 
819)(qualified_expression . 54)(selected_component . 55))
       nil
+      ((aggregate . 157)(attribute_reference . 51)(expression . 1229)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1228)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 1233)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1232)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
       nil
       nil
+      ((enumeration_literal . 1227))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1226)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((access_definition . 1091)(attribute_reference . 
51)(component_definition . 1225)(name . 730)(null_exclusion_opt . 
517)(qualified_expression . 54)(selected_component . 55)(subtype_indication . 
1093))
       nil
-      ((enumeration_literal . 1231))
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1230)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((access_definition . 1094)(attribute_reference . 
51)(component_definition . 1229)(name . 751)(null_exclusion_opt . 
509)(qualified_expression . 54)(selected_component . 55)(subtype_indication . 
1096))
       nil
       nil
       nil
@@ -4277,61 +4279,60 @@
       nil
       nil
       nil
+      ((and_interface_list_opt . 1222))
+      ((actual_parameter_part . 92)(and_interface_list_opt . 1219)(constraint 
. 1220)(constraint_opt . 1221)(index_constraint . 830))
       nil
-      ((and_interface_list_opt . 1226))
-      ((actual_parameter_part . 92)(and_interface_list_opt . 1223)(constraint 
. 1224)(constraint_opt . 1225)(index_constraint . 827))
       nil
       nil
       nil
       nil
       nil
+      ((aspect_specification_opt . 1216))
       nil
-      ((aspect_specification_opt . 1220))
+      ((aspect_specification_opt . 1215))
       nil
-      ((aspect_specification_opt . 1219))
+      ((aspect_specification_opt . 1214))
+      ((aspect_specification_opt . 1213))
       nil
-      ((aspect_specification_opt . 1218))
-      ((aspect_specification_opt . 1217))
       nil
-      ((attribute_reference . 51)(name . 1216)(qualified_expression . 
54)(selected_component . 55))
       ((actual_parameter_part . 92))
-      ((identifier_opt . 1215))
       nil
-      ((aspect_specification_opt . 129))
-      ((entry_body_formal_part . 1213)(formal_part . 
117)(parameter_profile_opt . 1214))
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 
652)(handled_sequence_of_statements . 1211)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 6 [...]
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 
652)(handled_sequence_of_statements . 1210)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 6 [...]
+      ((identifier_opt . 1212))
       nil
+      ((aspect_specification_opt . 129))
+      ((entry_body_formal_part . 1210)(formal_part . 
117)(parameter_profile_opt . 1211))
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 
657)(handled_sequence_of_statements . 1208)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 6 [...]
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 
657)(handled_sequence_of_statements . 1207)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 6 [...]
       nil
       nil
       nil
       nil
-      ((identifier_opt . 1207))
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
-      ((aggregate . 154)(attribute_reference . 51)(expression . 
188)(expression_opt . 1205)(factor . 156)(name . 157)(primary . 
160)(qualified_expression . 54)(raise_expression . 161)(relation_and_list . 
162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((identifier_opt . 1204))
       nil
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
+      ((aggregate . 157)(attribute_reference . 51)(expression . 
195)(expression_opt . 1202)(factor . 161)(name . 163)(primary . 
166)(qualified_expression . 54)(raise_expression . 168)(relation_and_list . 
169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((elsif_statement_item . 1203))
       nil
+      ((elsif_statement_item . 1200))
       nil
       nil
       nil
-      ((access_definition . 1196)(attribute_reference . 51)(name . 
751)(null_exclusion_opt . 509)(qualified_expression . 
54)(return_subtype_indication . 1197)(selected_component . 
55)(subtype_indication . 1198))
       nil
+      ((access_definition . 1193)(attribute_reference . 51)(name . 
730)(null_exclusion_opt . 517)(qualified_expression . 
54)(return_subtype_indication . 1194)(selected_component . 
55)(subtype_indication . 1195))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
       nil
-      ((identifier_opt . 1189))
-      ((attribute_reference . 51)(exception_choice . 1188)(name . 
954)(qualified_expression . 54)(selected_component . 55))
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
-      ((attribute_reference . 51)(exception_choice . 
952)(exception_choice_list . 1186)(name . 954)(qualified_expression . 
54)(selected_component . 55))
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
       nil
+      ((identifier_opt . 1186))
+      ((attribute_reference . 51)(exception_choice . 1185)(name . 
959)(qualified_expression . 54)(selected_component . 55))
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
+      ((attribute_reference . 51)(exception_choice . 
957)(exception_choice_list . 1183)(name . 959)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
       nil
@@ -4346,22 +4347,21 @@
       nil
       nil
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
       nil
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
       nil
       nil
       nil
       nil
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
       nil
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
       nil
       nil
-      ((identifier_list . 229)(parameter_specification . 
230)(parameter_specification_list . 231))
       nil
+      ((identifier_list . 236)(parameter_specification . 
237)(parameter_specification_list . 238))
       nil
       nil
-      ((actual_parameter_part . 92))
       nil
       nil
       nil
@@ -4372,69 +4372,69 @@
       nil
       nil
       nil
-      ((variant_list . 1261)(variant . 1262))
       nil
-      ((aspect_specification_opt . 1259))
+      ((variant_list . 1256)(variant . 1257))
       nil
+      ((aspect_specification_opt . 1254))
       nil
       nil
-      ((real_range_specification_opt . 1256))
       nil
+      ((real_range_specification_opt . 1251))
       nil
-      ((identifier_opt . 1254))
       nil
+      ((identifier_opt . 1249))
       nil
       nil
-      ((identifier_opt . 1251))
       nil
+      ((identifier_opt . 1246))
       nil
       nil
       nil
       nil
       nil
-      ((actual_parameter_part . 92)(constraint . 1110)(index_constraint . 827))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1311)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((actual_parameter_part . 92)(constraint . 1146)(index_constraint . 830))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1306)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 846)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(gen [...]
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 848)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(gen [...]
       nil
       nil
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 854)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(gen [...]
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 854)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(gen [...]
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1308)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
-      ((aggregate . 154)(attribute_reference . 51)(expression . 1307)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1303)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 1302)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((aggregate . 154)(attribute_reference . 51)(choice_expression . 
179)(choice_relation_and_list . 180)(choice_relation_or_list . 
181)(choice_relation_xor_list . 182)(choice_relation_and_then_list . 
183)(choice_relation_or_else_list . 184)(choice_relation . 185)(discrete_choice 
. 186)(discrete_choice_list . 1305)(factor . 156)(name . 190)(primary . 
160)(qualified_expression . 54)(range . 191)(selected_component . 
55)(simple_expression . 467)(term . 169)(term_list . 170)(unary_adding_ [...]
-      ((variant . 1304))
+      ((aggregate . 157)(attribute_reference . 51)(choice_expression . 
186)(choice_relation_and_list . 187)(choice_relation_or_list . 
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list . 
190)(choice_relation_or_else_list . 191)(choice_relation . 192)(discrete_choice 
. 193)(discrete_choice_list . 1300)(factor . 161)(name . 197)(primary . 
166)(qualified_expression . 54)(range . 198)(selected_component . 
55)(simple_expression . 475)(term . 176)(term_list . 177)(unary_adding_ [...]
+      ((variant . 1299))
       nil
       nil
-      ((record_definition . 1301))
+      ((record_definition . 1296))
       nil
       nil
       nil
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 
188)(expression_opt . 1300)(factor . 156)(name . 157)(primary . 
160)(qualified_expression . 54)(raise_expression . 161)(relation_and_list . 
162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 
195)(expression_opt . 1295)(factor . 161)(name . 163)(primary . 
166)(qualified_expression . 54)(raise_expression . 168)(relation_and_list . 
169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
-      ((identifier_opt . 1298))
-      ((identifier_opt . 1297))
+      ((identifier_opt . 1293))
+      ((identifier_opt . 1292))
       nil
       nil
       nil
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
       nil
       nil
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(expression . 1292)(factor . 
156)(name . 157)(primary . 160)(qualified_expression . 54)(raise_expression . 
161)(relation_and_list . 162)(relation_and_then_list . 163)(relation_or_list . 
164)(relation_or_else_list . 165)(relation_xor_list . 166)(relation . 
167)(selected_component . 55)(simple_expression . 168)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((aggregate . 157)(attribute_reference . 51)(expression . 1287)(factor . 
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression . 
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list . 
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation . 
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
       nil
       nil
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 652)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 661)(requeue_statement . 662)(selected_c [...]
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 657)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 666)(requeue_statement . 667)(selected_c [...]
       nil
       nil
       nil
@@ -4447,25 +4447,25 @@
       nil
       nil
       nil
-      ((aspect_specification_opt . 1318))
+      ((aspect_specification_opt . 1313))
       nil
       nil
       nil
       nil
-      ((aspect_specification_opt . 1315))
+      ((aspect_specification_opt . 1310))
       nil
       nil
       nil
       nil
-      ((aggregate . 154)(attribute_reference . 51)(factor . 156)(name . 
157)(primary . 160)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1332)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name . 
163)(primary . 166)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1327)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
       nil
-      ((aspect_clause . 1024)(at_clause . 307)(component_declaration . 
1025)(component_item . 1026)(component_list . 1027)(component_list_opt . 
1330)(enumeration_representation_clause . 314)(identifier_list . 
1029)(record_representation_clause . 338)(variant_part . 1030))
+      ((aspect_clause . 1032)(at_clause . 308)(component_declaration . 
1033)(component_item . 1034)(component_list . 1035)(component_list_opt . 
1325)(enumeration_representation_clause . 315)(identifier_list . 
1037)(record_representation_clause . 339)(variant_part . 1038))
       nil
       nil
-      ((abstract_subprogram_declaration . 305)(aspect_clause . 306)(at_clause 
. 307)(body . 308)(body_stub . 309)(declaration . 310)(declarations . 
311)(declarative_part_opt . 1327)(entry_declaration . 
313)(enumeration_representation_clause . 314)(exception_declaration . 
315)(expression_function_declaration . 316)(full_type_declaration . 
317)(function_specification . 16)(generic_declaration . 
318)(generic_formal_part . 18)(generic_instantiation . 
319)(generic_package_declaration . 20)(ge [...]
-      ((aggregate . 154)(attribute_reference . 51)(discrete_subtype_definition 
. 1326)(factor . 156)(name . 896)(primary . 160)(qualified_expression . 
54)(range . 775)(selected_component . 55)(simple_expression . 
479)(subtype_indication . 776)(term . 169)(term_list . 
170)(unary_adding_operator . 171))
+      ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause 
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations . 
312)(declarative_part_opt . 1322)(entry_declaration . 
314)(enumeration_representation_clause . 315)(exception_declaration . 
316)(expression_function_declaration . 317)(full_type_declaration . 
318)(function_specification . 16)(generic_declaration . 
319)(generic_formal_part . 18)(generic_instantiation . 
320)(generic_package_declaration . 20)(ge [...]
+      ((aggregate . 157)(attribute_reference . 51)(discrete_subtype_definition 
. 1321)(factor . 161)(name . 737)(primary . 166)(qualified_expression . 
54)(range . 738)(selected_component . 55)(simple_expression . 
487)(subtype_indication . 739)(term . 176)(term_list . 
177)(unary_adding_operator . 178))
       nil
       nil
       nil
@@ -4479,11 +4479,11 @@
       nil
       nil
       nil
-      ((accept_statement . 644)(assignment_statement . 
645)(asynchronous_select . 646)(attribute_reference . 51)(block_statement . 
647)(case_statement . 648)(conditional_entry_call . 649)(delay_statement . 
650)(exit_statement . 651)(extended_return_statement . 
652)(handled_sequence_of_statements . 1337)(if_statement . 
654)(iteration_scheme . 655)(label_opt . 656)(loop_statement . 657)(name . 
658)(pragma . 659)(procedure_call_statement . 660)(qualified_expression . 
54)(raise_statement . 6 [...]
-      ((formal_part . 117)(parameter_profile_opt . 1336))
+      ((accept_statement . 649)(assignment_statement . 
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement . 
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement . 
655)(exit_statement . 656)(extended_return_statement . 
657)(handled_sequence_of_statements . 1332)(if_statement . 
659)(iteration_scheme . 660)(label_opt . 661)(loop_statement . 662)(name . 
663)(pragma . 664)(procedure_call_statement . 665)(qualified_expression . 
54)(raise_statement . 6 [...]
+      ((formal_part . 117)(parameter_profile_opt . 1331))
       nil
       nil
-      ((identifier_opt . 1339))
+      ((identifier_opt . 1334))
       nil
       nil]))
   "Parser table.")
diff --git a/ada-indent-user-options.el b/ada-indent-user-options.el
index 78e1854..1be01cd 100644
--- a/ada-indent-user-options.el
+++ b/ada-indent-user-options.el
@@ -1,4 +1,4 @@
-;;; user options shared by Ada mode indentation engines  -*- lexical-binding:t 
-*-
+;; user options shared by Ada mode indentation engines  -*- lexical-binding:t 
-*-
 ;;
 ;; Copyright (C) 2012, 2013, 2015  Free Software Foundation, Inc.
 ;;
@@ -56,16 +56,30 @@ begin
 Example :
    My_Var : My_Type :=
    >>(Field1 => Value);"
-  :type  'integer
-  :safe  #'integerp)
+  :type 'integer
+  :safe #'integerp)
 (make-variable-buffer-local 'ada-indent-broken)
 
 (defcustom ada-indent-comment-col-0 nil
   "If non-nil, comments currently starting in column 0 are left in column 0.
 Otherwise, they are indented with previous comments or code."
+  :type 'boolean
+  :safe #'booleanp)
+(make-variable-buffer-local 'ada-indent-comment-col-0)
+
+(defcustom ada-indent-comment-gnat nil
+  "If non-nil, comments are indented to meet the GNAT comment style check.
+That is, one of:
+
+- multiple of ada-indent
+- next non-blank line
+- previous non-blank line
+
+Otherwise, they are indented as a with previous comments or code."
   :type  'boolean
+  :group 'ada-indentation
   :safe  #'booleanp)
-(make-variable-buffer-local 'ada-indent-comment-col-0)
+(make-variable-buffer-local 'ada-indent-comment-gnat)
 
 (defvar ada-label-indent nil)
 (make-obsolete-variable
@@ -101,8 +115,8 @@ Example :
 An example is:
    type A is
    >>>record"
-  :type  'integer
-  :safe  #'integerp)
+  :type 'integer
+  :safe #'integerp)
 (make-variable-buffer-local 'ada-indent-record-rel-type)
 
 (defcustom ada-indent-renames 2
@@ -130,8 +144,8 @@ Examples:
    function A (B : Integer)
                return C
    >>>>>>>>>>>renames Foo;"
-  :type  'integer
-  :safe  #'integerp)
+  :type 'integer
+  :safe #'integerp)
 (make-variable-buffer-local 'ada-indent-renames)
 
 (defcustom ada-indent-return 0
@@ -148,8 +162,8 @@ relative to line containing 'function'.
 An example is:
    function A (B : Integer)
    >>>>>>>>>>>return C;"
-  :type  'integer
-  :safe  #'integerp)
+  :type 'integer
+  :safe #'integerp)
 (make-variable-buffer-local 'ada-indent-return)
 
 (defvar ada-use-indent nil)
@@ -169,8 +183,8 @@ An example is:
 An example is:
    use Ada.Text_IO,
    >>Ada.Numerics;"
-  :type  'integer
-  :safe  #'integerp)
+  :type 'integer
+  :safe #'integerp)
 (make-variable-buffer-local 'ada-indent-use)
 
 (defvar ada-when-indent nil)
@@ -211,8 +225,8 @@ An example is:
 An example is:
    with Ada.Text_IO,
    >>Ada.Numerics;"
-  :type  'integer
-  :safe  #'integerp)
+  :type 'integer
+  :safe #'integerp)
 (make-variable-buffer-local 'ada-indent-with)
 
 (provide 'ada-indent-user-options)
diff --git a/ada-mode-compat-24.2.el b/ada-mode-compat-24.2.el
index 2338ff6..51ac700 100644
--- a/ada-mode-compat-24.2.el
+++ b/ada-mode-compat-24.2.el
@@ -1,4 +1,5 @@
-;;; ada-mode-compat-24.2.el --- Implement current Emacs features not present 
in Emacs 24.2  -*- lexical-binding:t -*-
+;; ada-mode-compat-24.2.el --- Implement current Emacs features not present in 
Emacs 24.2  -*- lexical-binding:t -*-
+;; FIXME: rename to ada-mode-compat.el, rely on functionp etc. doc emacs 
version for each item
 
 ;; Copyright (C) 2014-2015 Free Software Foundation, Inc.
 
@@ -19,13 +20,18 @@
 
 ;; using cl-lib 0.4 from Gnu ELPA
 
-(defun file-name-base (&optional filename)
-  "Return the base name of the FILENAME: no directory, no extension.
+(when (not (functionp 'file-name-base))
+  (defun file-name-base (&optional filename)
+    "Return the base name of the FILENAME: no directory, no extension.
 FILENAME defaults to `buffer-file-name'."
-  (file-name-sans-extension
-   (file-name-nondirectory (or filename (buffer-file-name)))))
+    (file-name-sans-extension
+     (file-name-nondirectory (or filename (buffer-file-name))))))
 
+(when (not (functionp 'font-lock-ensure))
+  (defun font-lock-ensure (&optional beg end)
+    (font-lock-fontify-region (or beg (point-min)) (or end (point-max)))))
 
+;; FIXME: need cl-flet, but there is no macrop
 (provide 'ada-mode-compat-24.2)
 
 ;; end of file
diff --git a/ada-mode.el b/ada-mode.el
index 9e0bdfc..3fca118 100644
--- a/ada-mode.el
+++ b/ada-mode.el
@@ -1,13 +1,13 @@
 ;;; ada-mode.el --- major-mode for editing Ada sources  -*- lexical-binding:t 
-*-
 ;;
-;; Copyright (C) 1994, 1995, 1997 - 2015  Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1997 - 2016  Free Software Foundation, Inc.
 ;;
 ;; Author: Stephen Leake <stephen_leake@member.fsf.org>
 ;; Maintainer: Stephen Leake <stephen_leake@member.fsf.org>
 ;; Keywords: languages
 ;;  ada
-;; Version: 5.1.8
-;; package-requires: ((wisi "1.1.1") (cl-lib "0.4") (emacs "24.2"))
+;; Version: 5.1.9
+;; package-requires: ((wisi "1.1.2") (cl-lib "0.4") (emacs "24.2"))
 ;; url: http://stephe-leake.org/emacs/ada-mode/emacs-ada-mode.html
 ;;
 ;; (Gnu ELPA requires single digits between dots in versions)
@@ -168,7 +168,7 @@
 (defun ada-mode-version ()
   "Return Ada mode version."
   (interactive)
-  (let ((version-string "5.1.8"))
+  (let ((version-string "5.1.9"))
     ;; must match:
     ;; ada-mode.texi
     ;; README-ada-mode
@@ -214,31 +214,36 @@ character, and end either at the end of the word or at a _
 character.  Characters after the first word are ignored, and not
 preserved when the list is written back to the file."
   :type  '(repeat (file))
-  ;; :safe  #'listp    ;FIXME: is '("~/.emacs" "~/.bashrc" "/etc/passwd") safe?
-  )
+  :safe  #'listp)
 
-(defcustom ada-case-keyword 'downcase-word
+(defcustom ada-case-keyword 'lower-case
   "Buffer-local value that may override project variable `case_keyword'.
 Global value is default for project variable `case_keyword'.
 Function to call to adjust the case of Ada keywords."
-  :type '(choice (const downcase-word)
-                (const upcase-word))
-  ;; :safe #'functionp ; FIXME: `functionp' CANNOT be safe!
+  :type '(choice (const lower-case)
+                (const upper-case))
+  ;; We'd like to specify that the value must be a function that takes
+  ;; one arg, but custom doesn't support that. ':safe' is supposed
+  ;; to be used to prevent user-provided functions from compromising
+  ;; security, so ":safe #'functionp" is not appropriate. So we
+  ;; use a symbol, and a cl-ecase in ada-case-keyword.
+  :safe (lambda (val) (memq val '(lower-case upper-case)))
   )
 (make-variable-buffer-local 'ada-case-keyword)
 
-(defcustom ada-case-identifier 'ada-mixed-case
+(defcustom ada-case-identifier 'mixed-case
   "Buffer-local value that may override project variable `case_keyword'.
 Global value is default for project variable `case_keyword'.
 Function to call to adjust the case of Ada keywords.
 Called with three args;
 start      - buffer pos of start of identifier
 end        - end of identifier
-force-case - if t, treat `ada-strict-case' as t"
-  :type '(choice (const ada-mixed-case)
-                (const ada-lower-case)
-                (const ada-upper-case))
-  ;; :safe #'functionp ; FIXME: `functionp' CANNOT be safe!
+force-case - if t, treat `ada-case-strict' as t"
+  :type '(choice (const mixed-case)
+                (const lower-case)
+                (const upper-case))
+  ;; see comment on :safe at ada-case-keyword
+  :safe (lambda (val) (memq val '(mixed-case lower-case upper-case)))
   )
 ;; we'd like to check that there are 3 args, since the previous
 ;; release required 2 here. But there doesn't seem to be a way to
@@ -269,10 +274,12 @@ indentation parser accepts."
 (defcustom ada-fill-comment-prefix "-- "
   "Comment fill prefix."
   :type 'string)
+(make-variable-buffer-local 'ada-language-version)
 
 (defcustom ada-fill-comment-postfix " --"
   "Comment fill postfix."
   :type 'string)
+(make-variable-buffer-local 'ada-language-version)
 
 (defcustom ada-prj-file-extensions '("adp" "prj")
   "List of Emacs Ada mode project file extensions.
@@ -287,6 +294,12 @@ secondary project file (referenced from a primary).  The 
user
 must provide a parser for a file with one of these extensions."
   :type 'list)
 
+(defcustom ada-prj-parse-hook nil
+  "Hook run at start of `ada-parse-prj-file'.
+Useful for setting `ada-xref-tool' and similar vars."
+  :type 'function
+  :group 'ada)
+
 ;;;;; end of user variables
 
 (defconst ada-symbol-end
@@ -355,7 +368,7 @@ Values defined by cross reference packages.")
     (define-key map "\C-c\C-x"   'ada-show-overriding)
     (define-key map "\C-c\M-x"   'ada-show-overridden)
     (define-key map "\C-c\C-y"          'ada-case-create-exception)
-    (define-key map "\C-c\M-y"   'ada-case-create-partial-exception)
+    (define-key map "\C-c\C-\M-y" 'ada-case-create-partial-exception)
     (define-key map [C-down-mouse-3] 'ada-popup-menu)
 
     (ada-case-activate-keys map)
@@ -376,7 +389,8 @@ Values defined by cross reference packages.")
      ["Find and select project ..."   ada-build-prompt-select-prj-file t]
      ["Select project ..."            ada-prj-select                   t]
      ["Show project"                  ada-prj-show                     t]
-     ["Show project search path"      ada-prj-show-path                t]
+     ["Show project file search path" ada-prj-show-prj-path            t]
+     ["Show source file search path"  ada-prj-show-src-path            t]
     )
     ("Build"
      ["Next compilation error"     next-error                t]
@@ -456,29 +470,17 @@ Values defined by cross reference packages.")
     ["Indent current statement"    ada-indent-statement       t]
     ["Goto next statement keyword" ada-next-statement-keyword t]
     ["Goto prev statement keyword" ada-next-statement-keyword t]
-    ["Other File"                  ada-find-other-file        t]
-    ["Other file don't find decl"  ada-find-other-file-noset  t]))
+    ["Other File"                  ada-find-other-file        t]))
 
-(defun ada-popup-menu (_position)
-  "Pops up a `ada-context-menu', with `ada-context-menu-on-identifer' set 
appropriately.
-POSITION is the location the mouse was clicked on.
-Sets `ada-context-menu-last-point' to the current position before
-displaying the menu.  When a function from the menu is called,
-point is where the mouse button was clicked."
-  (interactive "e")
+(defun ada-popup-menu ()
+  "Pops up `ada-context-menu'.
+When a function from the menu is called, point is where the mouse
+button was clicked."
+  (interactive)
 
   (mouse-set-point last-input-event)
-
-  (setq ada-context-menu-on-identifier
-       (and (char-after)
-            (or (= (char-syntax (char-after)) ?w)
-                (= (char-after) ?_))
-            (not (ada-in-string-or-comment-p))
-            (save-excursion (skip-syntax-forward "w")
-                            (not (ada-after-keyword-p)))
-            ))
-    (popup-menu ada-context-menu)
-    )
+  (popup-menu ada-context-menu)
+  )
 
 (defun ada-indent-newline-indent ()
   "insert a newline, indent the old and new lines."
@@ -604,23 +606,32 @@ current construct."
         (deactivate-mark))
 
     ;; else see if we are in a construct we know how to align
-    (cond
-     ((ada-in-paramlist-p)
+    (let ((parse-result (syntax-ppss)))
+      (cond
+       ((ada-in-paramlist-p parse-result)
         (ada-format-paramlist))
 
-     (t
-      (align-current))
-     )))
+       ((and
+        (ada-in-paren-p parse-result)
+        (ada-in-case-expression))
+       ;; align '=>'
+       (let ((begin (nth 1 parse-result))
+             (end   (scan-lists (point) 1 1)))
+         (align begin end 'entire)))
+
+       (t
+       (align-current))
+       ))))
 
 (defvar ada-in-paramlist-p nil
   ;; Supplied by indentation engine parser
   "Function to return t if point is inside the parameter-list of a subprogram 
declaration.
-Function is called with no arguments.")
+Function is called with one optional argument; syntax-ppss result.")
 
-(defun ada-in-paramlist-p ()
+(defun ada-in-paramlist-p (&optional parse-result)
   "Return t if point is inside the parameter-list of a subprogram declaration."
   (when ada-in-paramlist-p
-    (funcall ada-in-paramlist-p)))
+    (funcall ada-in-paramlist-p parse-result)))
 
 (defun ada-format-paramlist ()
   "Reformat the parameter list point is in."
@@ -809,13 +820,13 @@ Each parameter declaration is represented by a list
 
 (defun ada-insert-paramlist-single-line (paramlist)
   "Insert a single-line formatted PARAMLIST in the buffer."
+  ;; point is properly indented
   (let ((i (length paramlist))
        param)
 
     ;; clean up whitespace
-    (skip-syntax-forward " ")
-    (delete-char (- (skip-syntax-backward " ")))
-    (insert " (")
+    (delete-char (- (skip-syntax-forward " ")))
+    (insert "(")
 
     (setq i (length paramlist))
     (while (not (zerop i))
@@ -985,8 +996,6 @@ replacing current values of `ada-case-full-exceptions', 
`ada-case-partial-except
     (push (cons word t) exceptions))
   exceptions)
 
-(defvar ada-prj-current-file)
-
 (defun ada-case-create-exception (&optional word file-name partial)
   "Define WORD as an exception for the casing system, save it in FILE-NAME.
 If PARTIAL is non-nil, create a partial word exception.  WORD
@@ -1025,7 +1034,9 @@ list."
 
   (unless word
     (if (use-region-p)
-       (setq word (buffer-substring-no-properties (region-beginning) 
(region-end)))
+       (progn
+         (setq word (buffer-substring-no-properties (region-beginning) 
(region-end)))
+         (deactivate-mark))
       (save-excursion
        (let ((syntax (if partial "w" "w_")))
          (skip-syntax-backward syntax)
@@ -1061,9 +1072,8 @@ User is prompted to choose a file from project variable 
casing if it is a list."
   (interactive)
   (ada-case-create-exception nil nil t))
 
-(defun ada-in-numeric-literal-p ()
-  "Return t if point is after a prefix of a numeric literal."
-  ;; FIXME: this is actually a based numeric literal; excludes 1234
+(defun ada-in-based-numeric-literal-p ()
+  "Return t if point is after a prefix of a based numeric literal."
   (looking-back "\\([0-9]+#[0-9a-fA-F_]+\\)" (line-beginning-position)))
 
 (defvar ada-keywords nil
@@ -1076,11 +1086,18 @@ User is prompted to choose a file from project variable 
casing if it is a list."
               (point))))
     (member (downcase word) ada-keywords)))
 
-(defun ada-lower-case (start end _force-case-strict)
-  (downcase-region start end))
+(defun ada-case-keyword (beg end)
+  (cl-ecase ada-case-keyword
+    (lower-case (downcase-region beg end))
+    (upper-case (upcase-region beg end))
+    ))
 
-(defun ada-upper-case (start end _force-case-strict)
-  (upcase-region start end))
+(defun ada-case-identifier (start end force-case-strict)
+  (cl-ecase ada-case-identifier
+    (mixed-case (ada-mixed-case start end force-case-strict))
+    (lower-case (downcase-region start end))
+    (upper-case (upcase-region start end))
+    ))
 
 (defun ada-mixed-case (start end force-case-strict)
   "Adjust case of region START END to Mixed_Case."
@@ -1127,7 +1144,7 @@ Uses `ada-case-identifier', with exceptions defined in
            (delete-region (point) end))
 
        ;; else apply ada-case-identifier
-       (funcall ada-case-identifier start end force-case)
+       (ada-case-identifier start end force-case)
 
        ;; apply partial-exceptions
        (goto-char start)
@@ -1148,7 +1165,16 @@ Uses `ada-case-identifier', with exceptions defined in
          (if (< (point) end)
              (setq start (point))
            (setq done t))
-       )))))
+          )))))
+
+(defun ada-case-adjust-keyword ()
+  "Adjust the case of the previous word as a keyword.
+'word' here is allowed to be underscore-separated (GPR external_as_list)."
+  (save-excursion
+    (let ((end   (point-marker))
+         (start (progn (skip-syntax-backward "w_") (point))))
+      (ada-case-keyword start end)
+    )))
 
 (defun ada-case-adjust (&optional typed-char in-comment)
   "Adjust the case of the word before point.
@@ -1171,7 +1197,8 @@ and treat `ada-case-strict' as t in code.."
                 ;; referenced in a comment, via
                 ;; ada-case-adjust-at-point.
 
-                (not (ada-in-numeric-literal-p))
+                (not (ada-in-based-numeric-literal-p))
+                ;; don't adjust case on hex digits
                 ))
 
       ;; The indentation engine may trigger a reparse on
@@ -1193,7 +1220,7 @@ and treat `ada-case-strict' as t in code.."
           (not in-comment)
           (not (eq typed-char ?_))
           (ada-after-keyword-p))
-         (funcall ada-case-keyword -1))
+         (ada-case-adjust-keyword))
 
         (t (ada-case-adjust-identifier in-comment))
         ))
@@ -1302,7 +1329,7 @@ Optional PLIST defaults to `ada-prj-current-project'."
        (plist-get prj prop)
 
       ;; no project, just use default vars
-      ;; must match code in ada-prj-default
+      ;; must match code in ada-prj-default, except for src_dir.
       (cl-case prop
        (ada_compiler    ada-compiler)
        (auto_case       ada-auto-case)
@@ -1314,7 +1341,7 @@ Optional PLIST defaults to `ada-prj-current-project'."
                           (list ada-case-exception-file)))
        (path_sep        path-separator)
        (proc_env        process-environment)
-       (src_dir         (list "."))
+       (src_dir         (list (directory-file-name default-directory)))
        (xref_tool       ada-xref-tool)
        ))))
 
@@ -1368,7 +1395,7 @@ Include properties set via 
`ada-prj-default-compiler-alist',
                         (list ada-case-exception-file))
       'path_sep        path-separator;; prj variable so users can override it 
for their compiler
       'proc_env        process-environment
-      'src_dir         (list (if src-dir src-dir "."))
+      'src_dir         (if src-dir (list src-dir) nil)
       'xref_tool       ada-xref-tool
       ))
 
@@ -1398,7 +1425,8 @@ list. Parser must modify or add to the property list and 
return it.")
 (defun ada-parse-prj-file (prj-file)
   "Read Emacs Ada or compiler-specific project file PRJ-FILE, set project 
properties in `ada-prj-alist'."
   ;; Not called ada-prj-parse-file for Ada mode 4.01 compatibility
-  ;; FIXME: use the right name, add an alias
+  ;; FIXME: need to kill gpr-query session if .gpr file has changed (like from 
non-agg to agg!)
+  (run-hooks `ada-prj-parse-hook)
   (let ((project (ada-prj-default))
        (parser (cdr (assoc (file-name-extension prj-file) 
ada-prj-parser-alist))))
 
@@ -1653,15 +1681,27 @@ Indexed by project variable xref_tool.")
   (interactive)
   (message "current Emacs Ada mode project file: %s" ada-prj-current-file))
 
-(defvar ada-prj-show-path nil
+(defvar ada-prj-show-prj-path nil
   ;; Supplied by compiler
-  "Function to show project search path used by compiler (and possibly xref 
tool)."
+  "Function to show project file search path used by compiler (and possibly 
xref tool)."
   )
 
-(defun ada-prj-show-path ()
+(defun ada-prj-show-prj-path ()
   (interactive)
-  (when ada-prj-show-path
-    (funcall ada-prj-show-path)))
+  (when ada-prj-show-prj-path
+    (funcall ada-prj-show-prj-path)))
+
+(defun ada-prj-show-src-path ()
+  "Show the project source file search path."
+  (interactive)
+  (if compilation-search-path
+      (progn
+       (pop-to-buffer (get-buffer-create "*Ada project source file search 
path*"))
+       (erase-buffer)
+       (dolist (file compilation-search-path)
+         (insert (format "%s\n" file))))
+    (message "no project source file search path set")
+    ))
 
 (defvar ada-show-xref-tool-buffer nil
   ;; Supplied by xref tool
@@ -1912,6 +1952,17 @@ other file.")
   (when ada-on-context-clause
     (funcall ada-on-context-clause)))
 
+(defvar ada-in-case-expression nil
+  ;; supplied by indentation engine
+  "Function called with no parameters; it should return non-nil
+  if point is in a case expression.")
+
+(defun ada-in-case-expression ()
+  "See `ada-in-case-expression' variable."
+  (interactive)
+  (when ada-in-case-expression
+    (funcall ada-in-case-expression)))
+
 (defvar ada-goto-subunit-name nil
   ;; supplied by indentation engine
   "Function called with no parameters; if the current buffer
@@ -1984,13 +2035,7 @@ set."
         (error "%s (opened) and %s (found in project) are two different files"
                file-name found-file)))))
 
-(defun ada-find-other-file-noset (other-window)
-  "Same as `ada-find-other-file', but preserve point in the other file,
-don't move to corresponding declaration."
-  (interactive "P")
-  (ada-find-other-file other-window t))
-
-(defun ada-find-other-file (other-window &optional _no-set-point)
+(defun ada-find-other-file (other-window)
   "Move to the corresponding declaration in another file.
 
 - If region is active, assume it contains a package name;
@@ -2010,11 +2055,7 @@ don't move to corresponding declaration."
   on the corresponding specification or body.
 
 If OTHER-WINDOW (set by interactive prefix) is non-nil, show the
-buffer in another window.
-
-If NO-SET-POINT is nil, set point in the other file on the
-corresponding declaration. If non-nil, preserve existing point in
-the other file."
+buffer in another window."
 
   ;; ff-get-file, ff-find-other file first process
   ;; ff-special-constructs, then run the following hooks:
@@ -2029,6 +2070,10 @@ the other file."
   (interactive "P")
   (ada-check-current-project (buffer-file-name))
 
+  ;; clear ff-function-name, so it either ff-special-constructs or
+  ;; ada-which-function will set it.
+  (setq ff-function-name nil)
+
   (cond
    (mark-active
     (setq ff-function-name (buffer-substring-no-properties (point) (mark)))
@@ -2078,9 +2123,9 @@ identifier.  May be an Ada identifier or operator."
     (cond
 
      ((and (= (char-before) ?\")
-           (progn
-             (forward-char -1)
-             (looking-at (concat "\"\\(" ada-operator-re "\\)\""))))
+          (progn
+            (forward-char -1)
+            (looking-at (concat "\"\\(" ada-operator-re "\\)\""))))
       (concat "\"" (match-string-no-properties 1) "\""))
 
      (t
@@ -2088,7 +2133,7 @@ identifier.  May be an Ada identifier or operator."
      ))
 
    ((and (= (char-after) ?\")
-         (looking-at (concat "\"\\(" ada-operator-re "\\)\"")))
+        (looking-at (concat "\"\\(" ada-operator-re "\\)\"")))
     (concat "\"" (match-string-no-properties 1) "\""))
 
    ((looking-at "[a-zA-Z0-9_]+\\|[+\\-*/&=<>]")
@@ -2098,7 +2143,7 @@ identifier.  May be an Ada identifier or operator."
     (error "No identifier around"))
    ))
 
-;; FIXME: use find-tag-marker-ring, ring-insert, pop-tag-mark (see xref.el)
+;; FIXME (for emacs 25): use find-tag-marker-ring, ring-insert, pop-tag-mark 
(see xref.el)
 (defvar ada-goto-pos-ring '()
   "List of positions selected by navigation functions. Used
 to go back to these positions.")
@@ -2123,6 +2168,7 @@ to go back to these positions.")
 (defun ada-goto-source (file line column other-window)
   "Find and select FILE, at LINE and COLUMN.
 FILE may be absolute, or on `compilation-search-path'.
+LINE, COLUMN are Emacs origin.
 
 If OTHER-WINDOW is non-nil, show the buffer in another window."
   (let ((file-1
@@ -2440,10 +2486,10 @@ is currently in.  Called with no parameters.")
   ;; Supplied by indentation engine
   "Function called with no parameters; it should move forward to
 the next keyword in the statement following the one point is
-in (ie from 'if' to 'then').  If not in a keyword, move forward
-to the next keyword in the current statement. If at the last keyword,
-move forward to the first keyword in the next statement or next
-keyword in the containing statement.")
+in (ie from 'if' to 'then'). If not in a keyword, move forward to
+the next keyword in the current statement. If at the last
+keyword, move forward to the first keyword in the next statement
+or next keyword in the containing statement.")
 
 (defvar ada-goto-end nil
   ;; Supplied by indentation engine
@@ -2457,12 +2503,18 @@ Called with no parameters.")
 
 (defun ada-next-statement-keyword ()
   ;; Supplied by indentation engine
-  "See `ada-next-statement-keyword' variable."
+  "See `ada-next-statement-keyword' variable. In addition,
+if on open parenthesis move to matching closing parenthesis."
   (interactive)
-  (when ada-next-statement-keyword
-    (unless (region-active-p)
-      (push-mark))
-    (funcall ada-next-statement-keyword)))
+  (if (= (syntax-class (syntax-after (point))) 4)
+      ;; on open paren
+      (forward-sexp)
+
+    ;; else move by keyword
+    (when ada-next-statement-keyword
+      (unless (region-active-p)
+       (push-mark))
+      (funcall ada-next-statement-keyword))))
 
 (defvar ada-prev-statement-keyword nil
   ;; Supplied by indentation engine
@@ -2472,12 +2524,18 @@ keyword in the statement following the one point is in 
(ie from
 keyword in the previous statement or containing statement.")
 
 (defun ada-prev-statement-keyword ()
-  "See `ada-prev-statement-keyword' variable."
+  "See `ada-prev-statement-keyword' variable. In addition,
+if on close parenthesis move to matching open parenthesis."
   (interactive)
-  (when ada-prev-statement-keyword
-    (unless (region-active-p)
-      (push-mark))
-    (funcall ada-prev-statement-keyword)))
+  (if (= (syntax-class (syntax-after (1- (point)))) 5)
+      ;; on close paren
+      (backward-sexp)
+
+    ;; else move by keyword
+    (when ada-prev-statement-keyword
+      (unless (region-active-p)
+       (push-mark))
+      (funcall ada-prev-statement-keyword))))
 
 ;;;; code creation
 
@@ -2511,17 +2569,22 @@ package body file, containing skeleton code that will 
compile.")
 (defun ada-ff-create-body ()
   ;; no error if not set; let ada-skel do its thing.
   (when ada-make-package-body
-    ;; ff-find-other-file calls us with point in an empty buffer for the
-    ;; body file; ada-make-package-body expects to be in the spec. So go
-    ;; back.
-    (let ((body-file-name (buffer-file-name)))
-      (ff-find-the-other-file)
+    ;; ff-find-other-file calls us with point in an empty buffer for
+    ;; the body file; ada-make-package-body expects to be in the
+    ;; spec. So go back to the spec, and delete the body buffer so it
+    ;; does not get written to disk.
+    (let ((body-buffer (current-buffer))
+         (body-file-name (buffer-file-name)))
+
+      (set-buffer-modified-p nil);; may have a skeleton; allow silent delete
+
+      (ff-find-the-other-file);; back to spec
+
+      (kill-buffer body-buffer)
 
       (ada-make-package-body body-file-name)
-      ;; FIXME (later): if 'ada-make-package-body' fails, delete the body 
buffer
-      ;; so it doesn't get written to disk, and we can try again.
 
-      ;; back to the body, read in from the disk.
+      ;; back to the new body file, read in from the disk.
       (ff-find-the-other-file)
       (revert-buffer t t))
     ))
@@ -2539,7 +2602,17 @@ The paragraph is indented on the first line."
           (not (looking-at "[ \t]*--")))
       (error "Not inside comment"))
 
-  (let* ((inhibit-modification-hooks t) ;; don't run parser for font-lock; 
comment text is exposed
+  ;; fill-region-as-paragraph leaves comment text exposed (without
+  ;; comment prefix) when inserting a newline; don't trigger a parse
+  ;; because of that (in particular, jit-lock requires a parse; other
+  ;; hooks may as well). In general, we don't need to trigger a parse
+  ;; for comment changes.
+  ;;
+  ;; FIXME: add ada-inibit-parse instead; let other change hooks run.
+  ;; FIXME: wisi-after-change still needs to adjust wisi-cache-max
+  ;; FIXME: even better, consider patch suggested by Stefan Monnier to
+  ;; move almost all code out of the change hooks (see email).
+  (let* ((inhibit-modification-hooks t)
         indent from to
         (opos (point-marker))
         ;; we bind `fill-prefix' here rather than in ada-mode because
@@ -2548,6 +2621,8 @@ The paragraph is indented on the first line."
         (fill-prefix ada-fill-comment-prefix)
         (fill-column (current-fill-column)))
 
+    ;; We should run before-change-functions here, but we don't know from/to 
yet.
+
     ;;  Find end of comment paragraph
     (back-to-indentation)
     (while (and (not (eobp)) (looking-at ".*--[ \t]*[^ \t\n]"))
@@ -2610,13 +2685,11 @@ The paragraph is indented on the first line."
 
     ;; we disabled modification hooks, so font-lock will not run to
     ;; re-fontify the comment prefix; do that here.
-    (when (memq 'jit-lock-after-change after-change-functions)
-      (jit-lock-after-change from to 0))
-    ))
+    ;; FIXME: Use actual original size instead of 0!
+    (run-hook-with-args 'after-change-functions from to 0)))
 
 ;;;; support for font-lock.el
 
-;; casing keywords defined here to keep the two lists together
 (defconst ada-83-keywords
   '("abort" "abs" "accept" "access" "all" "and" "array" "at" "begin"
     "body" "case" "constant" "declare" "delay" "delta" "digits" "do"
@@ -2670,7 +2743,9 @@ The paragraph is indented on the first line."
   (setq local-abbrev-table ada-mode-abbrev-table)
 
   (set (make-local-variable 'syntax-propertize-function) 
'ada-syntax-propertize)
-  (set (make-local-variable 'syntax-begin-function) nil)
+  (when (boundp 'syntax-begin-function)
+    ;; obsolete in emacs-25.1
+    (set (make-local-variable 'syntax-begin-function) nil))
   (set (make-local-variable 'parse-sexp-ignore-comments) t)
   (set (make-local-variable 'parse-sexp-lookup-properties) t)
   (set 'case-fold-search t); Ada is case insensitive; the syntax parsing 
requires this setting
diff --git a/ada-mode.info b/ada-mode.info
index 485adad..a3f0aaa 100644
--- a/ada-mode.info
+++ b/ada-mode.info
@@ -1,4 +1,4 @@
-This is ada-mode.info, produced by makeinfo version 5.2 from
+This is ada-mode.info, produced by makeinfo version 6.0 from
 ada-mode.texi.
 
 Copyright (C) 1999 - 2015 Free Software Foundation, Inc.
@@ -22,7 +22,9 @@ END-INFO-DIR-ENTRY
 
 File: ada-mode.info,  Node: Top,  Next: Overview,  Prev: (dir),  Up: (dir)
 
-Copyright (C) 1999 - 2015 Free Software Foundation, Inc.
+Ada Mode Version 5.1.9
+
+   Copyright (C) 1999 - 2015 Free Software Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
      document under the terms of the GNU Free Documentation License,
@@ -145,15 +147,17 @@ distributed with GNAT GPL 2014.
 
    To build 'gpr_query', assuming GNAT GPL 2014 is installed in
 '/usr/gnat-gpl-2014', and '/usr/gnat-gpl-2014/bin' is in PATH (if you
-are running Windows, use Cygwin bash to run these commands):
+are running Windows, use Cygwin bash to run these commands, with GNAT
+GPL bin first in PATH) (note that gnatcoll-gpl-2014-src.tar.gz unzips to
+gnatcoll-1.7w-src):
 
      tar xf ~/Downloads/gnatcoll-gpl-2014-src.tar.gz
-     cd gnatcoll-gpl-2014-src
-     ./configure --enable-projects --prefix=/usr/gnat-gpl-2014
+     cd gnatcoll-1.7w-src
+     ./configure --prefix=/usr/gnat-gpl-2014
      make
      sudo make install
      cd ~/.emacs.d/elpa/ada-mode-5.xx/build
-     make install-gpr_query
+     make install
 
    To build an sqlite3 executable that is compatible with the database
 created by 'gpr_query':
@@ -332,6 +336,15 @@ the syntax to set a variable is the following:
      Navigate to subprograms and types by name, from a list in a
      dedicated window.
 'which-func'
+'jit-lock-defer-time'
+     In large files, parsing is slow, so it gets in the way of
+     interactive typing due to immediate font-lock triggering a parse.
+     Delay the font-lock by setting an Emacs file-local variable in an
+     Ada comment:
+
+          --  Local Variables:
+          --  jit-lock-defer-time: 0.5
+          --  End:
 
    The above can all be set by the following code in your '~/.emacs'.
 Note that some are functions are added to 'before-save-hook'; they run
@@ -1020,7 +1033,7 @@ line specifies a project variable name and its value, 
separated by "="
 concatenated.
 
    There must be no space between the variable name and "=", and no
-trailing spaces.
+trailing spaces after the value.
 
    The current project file is given by the lisp variable
 'ada-prj-default-project-file', and shown by the menu command <Ada |
@@ -1050,10 +1063,14 @@ File: ada-mode.info,  Node: Project file variables,  
Prev: Project file overview
 ==========================
 
 To set a project variable that is a list, specify each element of the
-list on a separate line in the project file.
+list on a separate line in the project file.  The value on the last line
+is the last element in the list.
 
-   Process environment variables can be referenced using the normal
-'$var' syntax.
+   A variable name that starts with '$' is set as a process environment
+variable, for processes launched from Emacs for the project.
+
+   In variable values, process environment variables can be referenced
+using the normal '$var' syntax.
 
    Most project variables have defaults that can be changed by setting
 elisp variables; the table below identifies the elisp variable for each
@@ -1259,6 +1276,15 @@ can also configure the indentation, via the following 
variables:
      column 0.  Otherwise, they are indented with previous comments or
      code.
 
+'ada-indent-comment-gnat' (default value: nil)
+     If non-nil, comments are indented to meet the GNAT style check; one
+     of:
+        * multiple of 'ada-indent'
+        * next non-blank line
+        * previous non-blank line
+
+     Otherwise, they are indented with previous comments or code.
+
 'ada-indent-label' (default value: -3)
      Number of columns to indent a label.
 
@@ -2437,47 +2463,47 @@ Index
 
 Tag Table:
 Node: Top945
-Node: Overview2576
-Node: Installation3787
-Node: Ada Reference Manual4679
-Node: gpr_query4955
-Node: Upgrading6058
-Node: Customization6630
-Node: Non-standard file names7112
-Node: Other compiler8953
-Node: Other cross-reference9532
-Node: Other customization10557
-Node: Compiling Executing13194
-Node: Compile commands13929
-Node: Compiling Examples16667
-Node: No project files17499
-Node: Set compiler options22865
-Node: Set source search path24827
-Node: Use GNAT project file27280
-Node: Use multiple GNAT project files30054
-Node: Use a Makefile32774
-Node: Compiler errors34089
-Node: Project files34906
-Node: Project file overview35933
-Node: Project file variables37461
-Node: Moving Through Ada Code41091
-Node: Identifier completion43790
-Node: Indentation44752
-Node: Statement skeletons48804
-Node: Aligning code50589
-Node: Automatic casing51534
-Node: Comment Handling54238
-Node: Key summary54757
-Node: Developer overview57384
-Node: Directory structure57724
-Node: Package organization61210
-Node: Ada mode61445
-Node: gpr mode63641
-Node: GNAT core63924
-Node: Wisi64758
-Node: OpenToken65725
-Node: ELPA66327
-Node: GNU Free Documentation License66937
-Node: Index92098
+Node: Overview2603
+Node: Installation3814
+Node: Ada Reference Manual4706
+Node: gpr_query4982
+Node: Upgrading6155
+Node: Customization6727
+Node: Non-standard file names7209
+Node: Other compiler9050
+Node: Other cross-reference9629
+Node: Other customization10654
+Node: Compiling Executing13626
+Node: Compile commands14361
+Node: Compiling Examples17099
+Node: No project files17931
+Node: Set compiler options23297
+Node: Set source search path25259
+Node: Use GNAT project file27712
+Node: Use multiple GNAT project files30486
+Node: Use a Makefile33206
+Node: Compiler errors34521
+Node: Project files35338
+Node: Project file overview36365
+Node: Project file variables37909
+Node: Moving Through Ada Code41754
+Node: Identifier completion44453
+Node: Indentation45415
+Node: Statement skeletons49763
+Node: Aligning code51548
+Node: Automatic casing52493
+Node: Comment Handling55197
+Node: Key summary55716
+Node: Developer overview58343
+Node: Directory structure58683
+Node: Package organization62169
+Node: Ada mode62404
+Node: gpr mode64600
+Node: GNAT core64883
+Node: Wisi65717
+Node: OpenToken66684
+Node: ELPA67286
+Node: GNU Free Documentation License67896
+Node: Index93057
 
 End Tag Table
diff --git a/ada-mode.texi b/ada-mode.texi
index 563ae6f..71b612f 100644
--- a/ada-mode.texi
+++ b/ada-mode.texi
@@ -26,7 +26,7 @@ developing GNU and promoting software freedom.''
 
 @titlepage
 @sp 10
-@title Ada Mode Version 5.1.8
+@title Ada Mode Version 5.1.9
 @page
 @vskip 0pt plus 1filll
 @insertcopying
@@ -36,6 +36,8 @@ developing GNU and promoting software freedom.''
 
 @node Top, Overview, (dir), (dir)
 
+Ada Mode Version 5.1.9
+
 @ifnottex
 @insertcopying
 @end ifnottex
@@ -136,24 +138,32 @@ tool @code{gpr_query}, which supports Ada, C, C++, and 
any other
 language for which AdaCore gcc provides the @code{-fdump-xref}
 (@code{-fdump-xref} is an AdaCore extension).
 
+@c FIXME: list xref features supported by gpr_query but not gnatfind
+@c at least:
+@c C and C++ source code
+@c ada-xref-overriding-function
+@c ada-xref-overridden-function
+
 @code{gpr_query} requires the @code{gnatcoll} library provided by
 AdaCore, distributed with GNAT GPL 2014.
 
 To build @code{gpr_query}, assuming GNAT GPL 2014 is installed in
 @file{/usr/gnat-gpl-2014}, and @file{/usr/gnat-gpl-2014/bin} is in
 PATH (if you are running Windows, use Cygwin bash to run these
-commands):
+commands, with GNAT GPL bin first in PATH) (note that
+gnatcoll-gpl-2014-src.tar.gz unzips to gnatcoll-1.7w-src):
 
 @example
 tar xf ~/Downloads/gnatcoll-gpl-2014-src.tar.gz
-cd gnatcoll-gpl-2014-src
-./configure --enable-projects --prefix=/usr/gnat-gpl-2014
+cd gnatcoll-1.7w-src
+./configure --prefix=/usr/gnat-gpl-2014
+@c on cygwin, finds cygwin as build type; not a problem
 @c make Gnatcoll_Build=Debug
 @c sudo make Gnatcoll_Build=Debug install
 make
 sudo make install
 cd ~/.emacs.d/elpa/ada-mode-5.xx/build
-make install-gpr_query
+make install
 @end example
 
 To build an sqlite3 executable that is compatible with the database
@@ -329,6 +339,18 @@ Navigate to subprograms and types by name, from a 
minibuffer menu.
 @item speedbar
 Navigate to subprograms and types by name, from a list in a dedicated window.
 @item which-func
+@item jit-lock-defer-time
+In large files, parsing is slow, so it gets in the way of
+interactive typing due to immediate font-lock triggering a
+parse. Delay the font-lock by setting an Emacs file-local variable
+in an Ada comment:
+
+@example
+--  Local Variables:
+--  jit-lock-defer-time: 0.5
+--  End:
+@end example
+
 @end table
 
 The above can all be set by the following code in your
@@ -1061,7 +1083,7 @@ Some variables (like @code{src_dir}) are lists; multiple 
occurrences
 are concatenated.
 
 There must be no space between the variable name and ``='', and no
-trailing spaces.
+trailing spaces after the value.
 
 The current project file is given by the lisp variable
 @code{ada-prj-default-project-file}, and shown by the menu command
@@ -1091,10 +1113,15 @@ just @code{ada-select-prj-file}, or by selecting it 
from the menu.
 @section Project file variables
 
 To set a project variable that is a list, specify each element of the
-list on a separate line in the project file.
+list on a separate line in the project file. The value on the last
+line is the last element in the list.
 
-Process environment variables can be referenced using the
-normal @code{$var} syntax.
+A variable name that starts with @code{$} is set as a process
+environment variable, for processes launched from Emacs for the
+project.
+
+In variable values, process environment variables can be referenced
+using the normal @code{$var} syntax.
 
 Most project variables have defaults that can be changed by setting
 elisp variables; the table below identifies the elisp variable for each
@@ -1188,6 +1215,7 @@ project file.
 @item @code{gpr_project_path}   [default: @code{""}]
 Same as @code{ada_project_path}.
 
+@c FIXME: add ada-build project vars
 @end table
 
 @node Moving Through Ada Code, Identifier completion, Project files, Top
@@ -1323,6 +1351,20 @@ Number of columns to indent the continuation of a broken 
line.
 If non-nil, comments currently starting in column 0 are left in column
 0.  Otherwise, they are indented with previous comments or code.
 
+@item @code{ada-indent-comment-gnat}  (default value: nil)
+If non-nil, comments are indented to meet the GNAT style check; one
+of:
+   @itemize
+   @item
+   multiple of @code{ada-indent}
+   @item
+   next non-blank line
+   @item
+   previous non-blank line
+   @end itemize
+
+Otherwise, they are indented with previous comments or code.
+
 @item @code{ada-indent-label}            (default value: -3)
 Number of columns to indent a label.
 
diff --git a/ada-ref-man.el b/ada-ref-man.el
index d481411..53f60c7 100755
--- a/ada-ref-man.el
+++ b/ada-ref-man.el
@@ -1,6 +1,6 @@
-;;; ada-ref-man.el --- Ada Reference Manual 2012  -*- lexical-binding:t -*-
+;;; ada-ref-man.el --- Ada Reference Manual 2012
 ;;
-;; Copyright (C) 2014-2015  Free Software Foundation, Inc.
+;;; Copyright (C) 2014  Free Software Foundation, Inc.
 ;;
 ;; Author: Stephen Leake <stephen_leake@member.fsf.org>
 ;; Maintainer: Stephen Leake <stephen_leake@member.fsf.org>
diff --git a/ada-wisi-opentoken.el b/ada-wisi-opentoken.el
index cd86981..fbc4daf 100644
--- a/ada-wisi-opentoken.el
+++ b/ada-wisi-opentoken.el
@@ -1,5 +1,5 @@
-;;; ada-wisi-opentoken.el --- An indentation function for ada-wisi that 
indents OpenToken  -*- lexical-binding:t -*-
-;; grammar statements nicely.
+;; ada-wisi-opentoken.el --- An indentation function for ada-wisi that indents 
 -*- lexical-binding:t -*-
+;; OpenTokengrammar statements nicely.
 
 ;; Copyright (C) 2013-2015  Free Software Foundation, Inc.
 
diff --git a/ada-wisi.el b/ada-wisi.el
index 6d53739..e076bc0 100644
--- a/ada-wisi.el
+++ b/ada-wisi.el
@@ -2,7 +2,7 @@
 ;;
 ;; [1] ISO/IEC 8652:2012(E); Ada 2012 reference manual
 ;;
-;; Copyright (C) 2012 - 2015  Free Software Foundation, Inc.
+;; Copyright (C) 2012 - 2016  Free Software Foundation, Inc.
 ;;
 ;; Author: Stephen Leake <stephen_leake@member.fsf.org>
 ;;
@@ -135,7 +135,11 @@ if in paren, pos following paren."
        ;; test/ada_mode-opentoken.ads
        ;; private package GDS.Commands.Add_Statement is
        ;;    type Instance is new Nonterminal.Instance with null record;
-       offset)
+       ;;
+       ;; test/ada_mode-nominal.adb
+       ;;     return B : Integer :=
+       ;;       (Local_Function);
+       (+ indent offset))
 
        ((eq 'label_opt (wisi-cache-token cache))
        (+ indent (- ada-indent-label) offset))
@@ -302,6 +306,17 @@ point must be on CACHE. PREV-TOKEN is the token before the 
one being indented."
         ;; defer to after-cache)
         nil)
 
+       (list-break
+       ;; test/ada_mode-parens.adb
+        ;; Foo (X
+        ;;        ,    --  used to get an error here; don't care about the 
actual indentation
+        ;; indenting ','
+        ;;
+        ;; We don't actually care what the indentation is, since this
+        ;; should only occur while editing; defer to after-cache
+        ;; avoids an error and does something reasonable.
+        nil)
+
        (name
         (cond
          ((let ((temp (save-excursion (wisi-goto-containing cache))))
@@ -564,6 +579,7 @@ point must be on CACHE. PREV-TOKEN is the token before the 
one being indented."
                     (+ (current-column) ada-indent-broken))
 
                    ((full_type_declaration
+                      protected_type_declaration
                      single_protected_declaration
                      single_task_declaration
                      subtype_declaration
@@ -669,10 +685,21 @@ point must be on CACHE. PREV-TOKEN is the token before 
the one being indented."
                       ))
 
                    (private_extension_declaration
-                    ;; test/ada_mode-nominal.ads
-                    ;; type Limited_Derived_Type_3 is abstract limited
-                    ;;   new Private_Type_1 with private;
-                    (+ (current-indentation) ada-indent-broken))
+                    (cl-ecase (wisi-cache-token cache)
+                      (WITH
+                       ;; test/aspects.ads
+                       ;; type Date_Set is tagged private
+                       ;; with
+                       ;; indenting 'with'
+                       (current-indentation))
+
+                      (t
+                       ;; test/ada_mode-nominal.ads
+                       ;; type Limited_Derived_Type_3 is abstract limited
+                       ;;   new Private_Type_1 with private;
+                       ;; indenting 'new'
+                       (+ (current-indentation) ada-indent-broken))
+                      ))
 
                    (private_type_declaration
                     ;; test/aspects.ads
@@ -703,7 +730,12 @@ point must be on CACHE. PREV-TOKEN is the token before the 
one being indented."
                        (ada-wisi-indent-cache ada-indent-broken cache))
                       ))
 
-                   ((subprogram_body subprogram_declaration 
subprogram_specification null_procedure_declaration)
+                   ((abstract_subprogram_declaration
+                     expression_function_declaration
+                     subprogram_body
+                     subprogram_declaration
+                     subprogram_specification
+                     null_procedure_declaration)
                     (cl-ecase (wisi-cache-token cache)
                       (IS
                        ;; test/ada_mode-nominal.ads
@@ -761,9 +793,6 @@ point must be on CACHE. PREV-TOKEN is the token before the 
one being indented."
                 (list-break
                  (ada-wisi-indent-list-break cache prev-token))
 
-                (statement-other
-                 ;; defer to ada-wisi-after-cache
-                 nil)
                 ))))
             ))
        ))
@@ -1104,11 +1133,15 @@ cached token, return new indentation for point."
                  ;; type Synchronized_Formal_Derived_Type is abstract 
synchronized new Formal_Private_Type and Interface_Type
                  ;;   with private;
 
-                 subtype_declaration)
-                ;; test/ada_mode-nominal.ads
-                ;;    subtype Subtype_2 is Signed_Integer_Type range 10 ..
-                ;;      20;
+                 subtype_declaration
+                 ;; test/ada_mode-nominal.ads
+                 ;;    subtype Subtype_2 is Signed_Integer_Type range 10 ..
+                 ;;      20;
 
+                 private_type_declaration
+                 ;; type Private_Type_2 is abstract tagged limited
+                 ;;  private;
+                 )
                 (+ (current-column) ada-indent-broken))
 
                (null_procedure_declaration
@@ -1228,8 +1261,47 @@ cached token, return new indentation for point."
       ;; would align the comment with the block-middle, which is wrong. So
       ;; we only call ada-wisi-after-cache.
 
-      ;; FIXME: need option to match gnat style check; change indentation to 
match (ie mod 3)
-      (ada-wisi-after-cache))
+      (let ((indent (ada-wisi-after-cache))
+           prev-indent next-indent)
+       (if ada-indent-comment-gnat
+         ;; match the gnat comment indent style check; comments must
+         ;; be aligned to one of:
+         ;;
+         ;; - multiple of ada-indent
+         ;; - next non-blank line
+         ;; - previous non-blank line
+         ;;
+         ;; Note that we must indent the prev and next lines, in case
+         ;; they are not currently correct.
+         (cond
+          ((= 0 (% indent ada-indent))
+           ;; this will handle comments at bob and eob, so we don't
+           ;; need to worry about those positions in the next checks.
+           indent)
+
+          ((and (setq prev-indent
+                      (save-excursion (forward-line 
-1)(indent-according-to-mode)(current-indentation)))
+                (= indent prev-indent))
+           indent)
+
+          ((and (setq next-indent
+                      ;; we use forward-comment here, instead of
+                      ;; forward-line, because consecutive comment
+                      ;; lines are indented to the current one, which
+                      ;; we don't know yet.
+                      (save-excursion (forward-comment 
(point-max))(indent-according-to-mode)(current-indentation)))
+                (= indent next-indent))
+           indent)
+
+          (t
+           (or
+            prev-indent
+            next-indent
+            (floor indent ada-indent)))
+          )
+
+         ;; not forcing gnat style
+         indent)))
 
       (t
        ;; comment is after a comment
@@ -1295,6 +1367,17 @@ cached token, return new indentation for point."
           (memq (wisi-cache-nonterm cache) '(use_clause with_clause))
           ))))
 
+(defun ada-wisi-in-case-expression ()
+  "For `ada-in-case-expression'."
+  (save-excursion
+    ;; Used by ada-align, which does indent, which will require parse
+    ;; We know we are in a paren.
+    (ada-goto-open-paren 1)
+    (let ((cache (wisi-get-cache (point))))
+      (and cache
+          (eq (wisi-cache-nonterm cache) 'case_expression)))
+    ))
+
 (defun ada-wisi-goto-subunit-name ()
   "For `ada-goto-subunit-name'."
   (wisi-validate-cache (point-max))
@@ -1356,7 +1439,10 @@ Also return cache at start."
                    ((protected_body protected_type_declaration 
single_protected_declaration)
                     (eq (wisi-cache-token cache) 'PROTECTED))
 
-                   ((subprogram_body subprogram_declaration 
null_procedure_declaration)
+                   ((abstract_subprogram_declaration
+                     subprogram_body
+                     subprogram_declaration
+                     null_procedure_declaration)
                     (memq (wisi-cache-token cache) '(NOT OVERRIDING FUNCTION 
PROCEDURE)))
 
                    (task_type_declaration
@@ -1439,11 +1525,11 @@ Also return cache at start."
       (when first (setq first nil)))
     ))
 
-(defun ada-wisi-in-paramlist-p ()
+(defun ada-wisi-in-paramlist-p (&optional parse-result)
   "For `ada-in-paramlist-p'."
   (wisi-validate-cache (point))
   ;; (info "(elisp)Parser State" "*syntax-ppss*")
-  (let* ((parse-result (syntax-ppss))
+  (let ((parse-result (or parse-result (syntax-ppss)))
         cache)
     (and (> (nth 0 parse-result) 0)
         ;; cache is nil if the parse failed
@@ -1534,6 +1620,10 @@ Also return cache at start."
        (setq default-begin (point))
        (wisi-forward-find-token 'SEMICOLON end t))
 
+       ((equal token 'LEFT_PAREN)
+       ;; anonymous access procedure type
+       (goto-char (scan-sexps (1- (point)) 1)))
+
        ((member token '(SEMICOLON RIGHT_PAREN))
        (when (not type-end)
          (setq type-end (save-excursion (backward-char 1) 
(skip-syntax-backward " ") (point))))
@@ -1575,6 +1665,7 @@ Also return cache at start."
   (let* ((cache (wisi-forward-find-class 'name (point-max)))
          (result (wisi-cache-text cache)))
 
+    ;; See comment at ada-mode.el on why we don't overwrite ff-function-name.
     (when (not ff-function-name)
       (setq ff-function-name
            (concat
@@ -1595,12 +1686,11 @@ Also return cache at start."
          ;; bob or failed parse
          (setq result "")
 
-       (cl-case (wisi-cache-nonterm cache)
-         ((generic_package_declaration generic_subprogram_declaration)
-          ;; name is after next statement keyword
-          (wisi-next-statement-cache cache)
-          (setq cache (wisi-get-cache (point))))
-         )
+       (when (memq (wisi-cache-nonterm cache)
+                   '(generic_package_declaration 
generic_subprogram_declaration))
+         ;; name is after next statement keyword
+         (wisi-next-statement-cache cache)
+         (setq cache (wisi-get-cache (point))))
 
        ;; add or delete 'body' as needed
        (cl-ecase (wisi-cache-nonterm cache)
@@ -1617,7 +1707,8 @@ Also return cache at start."
          ((protected_type_declaration single_protected_declaration)
           (setq result (ada-wisi-which-function-1 "protected" t)))
 
-         ((subprogram_declaration
+         ((abstract_subprogram_declaration
+           subprogram_declaration
            generic_subprogram_declaration ;; after 'generic'
            null_procedure_declaration)
           (setq result (ada-wisi-which-function-1
@@ -1761,6 +1852,7 @@ TOKEN-TEXT; move point to just past token."
 (setq ada-make-subprogram-body 'ada-wisi-make-subprogram-body)
 (setq ada-next-statement-keyword 'wisi-forward-statement-keyword)
 (setq ada-on-context-clause 'ada-wisi-on-context-clause)
+(setq ada-in-case-expression 'ada-wisi-in-case-expression)
 (setq ada-prev-statement-keyword 'wisi-backward-statement-keyword)
 (setq ada-reset-parser 'wisi-invalidate-cache)
 (setq ada-scan-paramlist 'ada-wisi-scan-paramlist)
diff --git a/ada-xref.el b/ada-xref.el
index e58cba8..6816d8a 100644
--- a/ada-xref.el
+++ b/ada-xref.el
@@ -1,4 +1,5 @@
 ;;; ada-xref.el --- Dummy file to hide obsolete bundled version  -*- 
lexical-binding:t -*-
+;;; see xref-ada.el for Emacs 25 xref minor mode for ada-mode
 (require 'ada-mode)
 (provide 'ada-xref)
 (message "'ada-xref' is obsolete; use 'ada-mode' instead")
diff --git a/gnat-core.el b/gnat-core.el
index ff62610..f8d4f31 100644
--- a/gnat-core.el
+++ b/gnat-core.el
@@ -56,16 +56,16 @@
 
     project))
 
-(defun gnat-prj-show-path ()
-  "For `ada-prj-show-path'."
+(defun gnat-prj-show-prj-path ()
+  "For `ada-prj-show-prj-path'."
     (interactive)
   (if (ada-prj-get 'prj_dir)
       (progn
-       (pop-to-buffer (get-buffer-create "*GNAT project search path*"))
+       (pop-to-buffer (get-buffer-create "*GNAT project file search path*"))
        (erase-buffer)
        (dolist (file (ada-prj-get 'prj_dir))
          (insert (format "%s\n" file))))
-    (message "no GNAT project search path files")
+    (message "no project file search path set")
     ))
 
 (defun gnat-prj-parse-emacs-one (name value project)
@@ -147,7 +147,7 @@ Uses 'gnat list'.  Returns new (SRC-DIRS PRJ-DIRS)."
          (while (not (looking-at "^$"))
            (back-to-indentation)
            (if (looking-at "<Current_Directory>")
-                (cl-pushnew "." prj-dirs :test #'equal)
+                (cl-pushnew (directory-file-name default-directory) prj-dirs 
:test #'equal)
               (let ((f (expand-file-name
                         (buffer-substring-no-properties (point) 
(point-at-eol)))))
                 (cl-pushnew f prj-dirs :test #'equal)
@@ -162,15 +162,16 @@ Uses 'gnat list'.  Returns new (SRC-DIRS PRJ-DIRS)."
        ))
     (list src-dirs prj-dirs)))
 
+;; FIXME: use a dispatching function instead, with autoload, to
+;; avoid "require" here, and this declare
+;; Using 'require' at top level gives the wrong default ada-xref-tool
+(declare-function gpr-query-get-src-dirs "gpr-query.el" (src-dirs))
+(declare-function gpr-query-get-prj-dirs "gpr-query.el" (prj-dirs))
 (defun gnat-get-paths (project)
   "Add project and/or compiler source, project paths to PROJECT src_dir and/or 
prj_dir."
   (let ((src-dirs (ada-prj-get 'src_dir project))
        (prj-dirs (ada-prj-get 'prj_dir project)))
 
-    ;; FIXME: use a dispatching function instead, with autoload, to
-    ;; avoid "require" here, which gives "warning: function not
-    ;; known".
-    ;; Using 'require' at top level gives the wrong default ada-xref-tool
     (cl-ecase (ada-prj-get 'xref_tool project)
       (gnat
        (let ((res (gnat-get-paths-1 src-dirs prj-dirs)))
@@ -378,6 +379,7 @@ list."
   '(("a-textio" . "Ada.Text_IO")
     ("a-chahan" . "Ada.Characters.Handling")
     ("a-comlin" . "Ada.Command_Line")
+    ("a-contai" . "Ada.Containers")
     ("a-except" . "Ada.Exceptions")
     ("a-numeri" . "Ada.Numerics")
     ("a-string" . "Ada.Strings")
@@ -397,7 +399,7 @@ list."
 (defun ada-gnat-ada-name-from-file-name (file-name)
   "For `ada-ada-name-from-file-name'."
   (let* ((ada-name (file-name-sans-extension (file-name-nondirectory 
file-name)))
-         (predefined (cdr (assoc ada-name ada-gnat-predefined-package-alist))))
+        (predefined (cdr (assoc ada-name ada-gnat-predefined-package-alist))))
 
     (if predefined
         predefined
@@ -419,19 +421,15 @@ list."
   ;; contain path info. So we pass a directory to gnat-run-no-prj.
   (let ((start-buffer (current-buffer))
        (start-file (buffer-file-name))
-       ;; can also specify gnat stub options/switches in .gpr file, in package 
'gnatstub'.
        (opts (when (ada-prj-get 'gnat_stub_opts)
                (split-string (ada-prj-get 'gnat_stub_opts))))
        (switches (when (ada-prj-get 'gnat_stub_switches)
                    (split-string (ada-prj-get 'gnat_stub_switches))))
+       (process-environment (ada-prj-get 'proc_env)) ;; for GPR_PROJECT_PATH
        )
 
-    ;; Make sure all relevant files are saved to disk. This also saves
-    ;; the bogus body buffer created by ff-find-the-other-file, so we
-    ;; need -f gnat stub option. We won't get here if there is an
-    ;; existing body file.
+    ;; Make sure all relevant files are saved to disk.
     (save-some-buffers t)
-    (cl-pushnew "-f" opts :test #'equal)
     (with-current-buffer (gnat-run-buffer)
       (gnat-run-no-prj
        (append (list "stub") opts (list start-file "-cargs") switches)
diff --git a/gnat-inspect.el b/gnat-inspect.el
deleted file mode 100644
index b7b839b..0000000
--- a/gnat-inspect.el
+++ /dev/null
@@ -1,571 +0,0 @@
-;;; gnat-inspect.el --- Minor-mode for navigating sources using gnatinspect  
-*- lexical-binding:t -*-
-
-;; gnatinspect supports Ada and any gcc language that supports the
-;; -fdump-xref switch (which includes C, C++).
-;;
-;; Copyright (C) 2013-2015  Free Software Foundation, Inc.
-
-;; Author: Stephen Leake <stephen_leake@member.fsf.org>
-;; Maintainer: Stephen Leake <stephen_leake@member.fsf.org>
-;; Version: 1.0
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software: you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
-
-;;; Usage:
-;;
-;; M-x gnat-inspect
-
-(require 'ada-mode) ;; for ada-prj-*, some other things
-(require 'cl-lib)
-(require 'compile)
-
-;;;;; sessions
-
-;; gnatinspect reads the project files and the database at startup,
-;; which is noticeably slow for a reasonably sized project. But
-;; running queries after startup is fast. So we leave gnatinspect
-;; running, and send it new queries via stdin, getting responses via
-;; stdout.
-;;
-;; We maintain a cache of active sessions, one per gnat project.
-
-(cl-defstruct (gnat-inspect--session)
-  (process nil) ;; running gnatinspect
-  (buffer nil)  ;; receives output of gnatinspect
-  (sent-kill-p nil)
-  (closed-p nil))
-
-(defconst gnat-inspect-buffer-name-prefix " *gnatinspect-")
-
-(defun gnat-inspect--start-process (session)
-  "Start the session process running gnatinspect."
-  (unless (buffer-live-p (gnat-inspect--session-buffer session))
-    ;; user may have killed buffer
-    (setf (gnat-inspect--session-buffer session) (gnat-run-buffer 
gnat-inspect-buffer-name-prefix)))
-
-  (with-current-buffer (gnat-inspect--session-buffer session)
-    (let ((process-environment (ada-prj-get 'proc_env)) ;; for GPR_PROJECT_PATH
-
-         ;; WORKAROUND: gnatinspect from gnatcoll-1.6w-20130902 can't handle 
aggregate projects; M910-032
-         (project-file (file-name-nondirectory
-                        (ada-prj-get 'gpr_file))))
-      (erase-buffer); delete any previous messages, prompt
-      (setf (gnat-inspect--session-process session)
-           ;; FIXME: need good error message on bad project file:
-           ;;          "can't handle aggregate projects?")
-           (start-process (concat "gnatinspect " (buffer-name))
-                          (gnat-inspect--session-buffer session)
-                          "gnatinspect"
-                          (concat "--project=" project-file)))
-      (set-process-query-on-exit-flag (gnat-inspect--session-process session) 
nil)
-      (gnat-inspect-session-wait session)
-      )))
-
-(defun gnat-inspect--make-session ()
-  "Create and return a session for the current project file."
-  (let ((session
-        (make-gnat-inspect--session
-         :buffer (gnat-run-buffer gnat-inspect-buffer-name-prefix))))
-    (gnat-inspect--start-process session)
-    session))
-
-(defvar gnat-inspect--sessions '()
-  "Assoc list of sessions, indexed by absolute GNAT project file name.")
-
-(defun gnat-inspect-cached-session ()
-  "Return a session for the current project file, creating it if necessary."
-  (gnat-inspect-ensure-gpr)
-
-  (let* ((session (cdr (assoc ada-prj-current-file gnat-inspect--sessions))))
-    (if session
-       (progn
-         (unless (process-live-p (gnat-inspect--session-process session))
-           (gnat-inspect--start-process session))
-         session)
-      ;; else
-      (prog1
-          (setq session (gnat-inspect--make-session))
-       (setq gnat-inspect--sessions
-             (cl-acons ada-prj-current-file session gnat-inspect--sessions))))
-    ))
-
-(defun gnat-inspect-show-session-buffer ()
-  (interactive)
-  (pop-to-buffer (gnat-inspect-cached-session)))
-
-(defconst gnat-inspect-prompt "^>>> $"
-  ;; gnatinspect output ends with this
-  "Regexp matching gnatinspect prompt; indicates previous command is 
complete.")
-
-(defun gnat-inspect-session-wait (session)
-  "Wait for the current command to complete."
-  (unless (process-live-p (gnat-inspect--session-process session))
-    (error "gnatinspect process failed"))
-
-  (with-current-buffer (gnat-inspect--session-buffer session)
-    (let ((process (gnat-inspect--session-process session))
-         (search-start (point-min))
-         (wait-count 0))
-      (while (progn
-              ;; process output is inserted before point, so move back over it 
to search it
-              (goto-char search-start)
-              (not (re-search-forward gnat-inspect-prompt (point-max) 1)));; 
don't search same text again
-       (setq search-start (point))
-       (message (concat "running gnatinspect ..." (make-string wait-count ?.)))
-       (accept-process-output process 1.0)
-       (setq wait-count (1+ wait-count)))
-      (message (concat "running gnatinspect ... done"))
-      )))
-
-(defun gnat-inspect-session-send (cmd wait)
-  "Send CMD to gnatinspect session for current project.
-If WAIT is non-nil, wait for command to complete.
-Return buffer that holds output."
-  (let ((session (gnat-inspect-cached-session)))
-    (with-current-buffer (gnat-inspect--session-buffer session)
-      (erase-buffer)
-      (process-send-string (gnat-inspect--session-process session)
-                          (concat cmd "\n"))
-      (when wait
-       (gnat-inspect-session-wait session))
-      (current-buffer)
-      )))
-
-(defun gnat-inspect-kill-all-sessions ()
-  (interactive)
-  (let ((count 0))
-    (mapc (lambda (assoc)
-           (let ((session (cdr assoc)))
-             (when (process-live-p (gnat-inspect--session-process session))
-               (setq count (1+ count))
-               (process-send-string (gnat-inspect--session-process session) 
"exit\n")
-               )))
-           gnat-inspect--sessions)
-    (message "Killed %d sessions" count)
-    ))
-
-;;;;; utils
-
-(defun gnat-inspect-ensure-gpr ()
-  (unless (ada-prj-get 'gpr_file)
-    (error "no gpr file specified")))
-
-(defconst gnat-inspect-ident-file-regexp
-  ;; 
Write_Message:C:\Projects\GDS\work_dscovr_release\common\1553\gds-mil_std_1553-utf.ads:252:25
-  ;; 
Write_Message:/Projects/GDS/work_dscovr_release/common/1553/gds-mil_std_1553-utf.ads:252:25
-  
"\\([^:]*\\):\\(\\(?:.:\\\|/\\)[^:]*\\):\\([0123456789]+\\):\\([0123456789]+\\)"
-  "Regexp matching <identifier>:<file>:<line>:<column>")
-
-(defconst gnat-inspect-ident-file-regexp-alist
-  (list (concat "^" gnat-inspect-ident-file-regexp) 2 3 4)
-  "For compilation-error-regexp-alist, matching `gnatinspect 
overriding_recursive' output")
-
-(defconst gnat-inspect-ident-file-type-regexp
-  (concat gnat-inspect-ident-file-regexp " (\\(.*\\))")
-  "Regexp matching <identifier>:<file>:<line>:<column> (<type>)")
-
-(defconst gnat-inspect-ident-file-scope-regexp-alist
-  ;; RX_Enable:C:\common\1553\gds-hardware-bus_1553-raw_read_write.adb:163:13 
(write reference) 
scope=New_Packet_TX:C:\common\1553\gds-hardware-bus_1553-raw_read_write.adb:97:14
-
-  (list (concat
-        gnat-inspect-ident-file-regexp
-        " (.*) "
-        "scope="
-        gnat-inspect-ident-file-regexp
-        )
-       2 3 4;; file line column
-       ;; 2 ;; type = error
-       ;; nil ;; hyperlink
-       ;; (list 4 'gnat-inspect-scope-secondary-error)
-       )
-  "For compilation-error-regexp-alist, matching `gnatinspect refs' output")
-
-;; debugging:
-;; in *compilation-gnatinspect-refs*, run
-;;  (progn (set-text-properties (point-min)(point-max) 
nil)(compilation-parse-errors (point-min)(point-max) 
gnat-inspect-ident-file-scope-regexp-alist))
-
-(defun gnat-inspect-compilation (identifier file line col cmd comp-err)
-  "Run gnatinspect IDENTIFIER:FILE:LINE:COL CMD,
-set compilation-mode with compilation-error-regexp-alist set to COMP-ERR."
-  (gnat-inspect-ensure-gpr)
-
-  (let ((cmd-1 (format "%s %s:%s:%d:%d" cmd identifier file line col))
-       (result-count 0)
-       file line column)
-    (with-current-buffer (gnat-inspect--session-buffer 
(gnat-inspect-cached-session))
-      (compilation-mode)
-      (setq buffer-read-only nil)
-      (set (make-local-variable 'compilation-error-regexp-alist) (list 
comp-err))
-      (gnat-inspect-session-send cmd-1 t)
-      ;; at EOB. gnatinspect returns one line per result
-      (setq result-count (- (line-number-at-pos) 1))
-      (if (fboundp 'font-lock-ensure)
-          (font-lock-ensure)
-        (with-no-warnings (font-lock-fontify-buffer)))
-      ;; font-lock-fontify-buffer applies compilation-message text properties
-      ;; NOTE: Won't be needed in 24.5 any more, since compilation-next-error
-      ;; will apply compilation-message text properties on the fly.
-      ;; IMPROVEME: for some reason, next-error works, but the font
-      ;; colors are not right (no koolaid!)
-      (goto-char (point-min))
-
-      (cl-case result-count
-       (0
-        (error "gnatinspect returned no results"))
-       (1
-        ;; just go there, don't display session-buffer. We have to
-        ;; fetch the compilation-message while in the session-buffer.
-        (let* ((msg (compilation-next-error 0 nil (point-min)))
-                ;; FIXME: Woah!  This is messing with very internal details!
-               (loc (compilation--message->loc msg)))
-          (setq file (caar (compilation--loc->file-struct loc))
-                line (caar (cddr (compilation--loc->file-struct loc)))
-                column (1- (compilation--loc->col loc)))
-          ))
-
-       ));; case, with-currrent-buffer
-
-    ;; compilation-next-error-function assumes there is not at error
-    ;; at point-min; work around that by moving forward 0 errors for
-    ;; the first one.
-    (if (> result-count 1)
-       ;; more than one result; display session buffer
-       (next-error 0 t)
-      ;; else don't display
-      (ada-goto-source file line column nil))
-    ))
-
-(defun gnat-inspect-dist (found-line line found-col col)
-  "Return non-nil if found-line, -col is closer to line, col than 
min-distance."
-  (+ (abs (- found-line line))
-     (* (abs (- found-col col)) 250)))
-
-;;;;; user interface functions
-
-(defun gnat-inspect-refresh ()
-  "For `ada-xref-refresh-function', using gnatinspect."
-  (interactive)
-  (gnat-inspect-session-send "refresh" t))
-
-(defun gnat-inspect-other (identifier file line col)
-  "For `ada-xref-other-function', using gnatinspect."
-  (when (eq ?\" (aref identifier 0))
-    ;; gnatinspect wants the quotes stripped
-    (setq col (+ 1 col))
-    (setq identifier (substring identifier 1 (1- (length identifier))))
-    )
-
-  (let ((cmd (format "refs %s:%s:%d:%d" identifier (file-name-nondirectory 
file) line col))
-       (decl-loc nil)
-       (body-loc nil)
-       (search-type nil)
-       (min-distance (1- (expt 2 29)))
-       (result nil))
-
-    (with-current-buffer (gnat-inspect-session-send cmd t)
-      ;; 'gnatinspect refs' returns a list containing the declaration,
-      ;; the body, and all the references, in no particular order.
-      ;;
-      ;; We search the list, looking for the input location,
-      ;; declaration and body, then return the declaration or body as
-      ;; appropriate.
-      ;;
-      ;; the format of each line is name:file:line:column (type) 
scope=name:file:line:column
-      ;;                            1    2    3    4       5
-      ;;
-      ;; 'type' can be:
-      ;;   body
-      ;;   declaration
-      ;;   full declaration  (for a private type)
-      ;;   implicit reference
-      ;;   reference
-      ;;   static call
-      ;;
-      ;; 
Module_Type:/home/Projects/GDS/work_stephe_2/common/1553/gds-hardware-bus_1553-wrapper.ads:171:9
 (full declaration) 
scope=Wrapper:/home/Projects/GDS/work_stephe_2/common/1553/gds-hardware-bus_1553-wrapper.ads:49:31
-      ;;
-      ;; 
itc_assert:/home/Projects/GDS/work_stephe_2/common/itc/opsim/itc_dscovr_gdsi/Gds1553/src/Gds1553.cpp:830:9
 (reference) 
scope=Gds1553WriteSubaddress:/home/Projects/GDS/work_stephe_2/common/itc/opsim/itc_dscovr_gdsi/Gds1553/inc/Gds1553.hpp:173:24
-
-      (message "parsing result ...")
-
-      (goto-char (point-min))
-
-      (while (not (eobp))
-       (cond
-        ((looking-at gnat-inspect-ident-file-type-regexp)
-         ;; process line
-         (let* ((found-file (expand-file-name (match-string 2)));; converts 
Windows to normal
-                (found-line (string-to-number (match-string 3)))
-                (found-col  (string-to-number (match-string 4)))
-                (found-type (match-string 5))
-                (dist       (gnat-inspect-dist found-line line found-col col))
-                )
-
-           (when (string-equal found-type "declaration")
-             (setq decl-loc (list found-file found-line (1- found-col))))
-
-           (when (or
-                  (string-equal found-type "body")
-                  (string-equal found-type "full declaration"))
-             (setq body-loc (list found-file found-line (1- found-col))))
-
-           (when
-               ;; In general, we don't know where in the gnatinspect
-               ;; output the search item occurs, so we search for it.
-               ;;
-               ;; We use the same distance algorithm as gnatinspect
-               ;; to allow a fuzzy match on edited code.
-               (and (equal found-file file)
-                    (< dist min-distance))
-             (setq min-distance dist)
-             (setq search-type found-type))
-           ))
-
-        (t ;; ignore line
-         ;;
-         ;; This skips GPR_PROJECT_PATH and echoed command at start of buffer.
-         ;;
-         ;; It also skips warning lines. For example,
-         ;; gnatcoll-1.6w-20130902 can't handle the Auto_Text_IO
-         ;; language, because it doesn't use the gprconfig
-         ;; configuration project. That gives lines like:
-         ;;
-         ;; common_text_io.gpr:15:07: language unknown for 
"gds-hardware-bus_1553-time_tone.ads"
-         ;;
-         ;; There are probably other warnings that might be reported as well.
-         )
-        )
-       (forward-line 1)
-       )
-
-      (cond
-       ((null search-type)
-       (error "gnatinspect did not return other item; refresh?"))
-
-       ((and
-        (string-equal search-type "declaration")
-        body-loc)
-       (setq result body-loc))
-
-       (decl-loc
-       (setq result decl-loc))
-       )
-
-      (when (null result)
-       (error "gnatinspect did not return other item; refresh?"))
-
-      (message "parsing result ... done")
-      result)))
-
-(defun gnat-inspect-all (identifier file line col)
-  "For `ada-xref-all-function', using gnatinspect."
-  ;; This will in general return a list of references, so we use
-  ;; `compilation-start' to run gnatinspect, so the user can navigate
-  ;; to each result in turn via `next-error'.
-  (gnat-inspect-compilation identifier file line col "refs" 
'gnat-inspect-ident-file))
-
-(defun gnat-inspect-parents (identifier file line col)
-  "For `ada-xref-parent-function', using gnatinspect."
-  (gnat-inspect-compilation identifier file line col "parent_types" 
'gnat-inspect-ident-file))
-
-(defun gnat-inspect-overriding (identifier file line col)
-  "For `ada-xref-overriding-function', using gnatinspect."
-  (gnat-inspect-compilation identifier file line col "overridden_recursive" 
'gnat-inspect-ident-file))
-
-(defun gnat-inspect-overridden-1 (identifier file line col)
-  "For `ada-xref-overridden-function', using gnatinspect."
-  (unless (ada-prj-get 'gpr_file)
-    (error "no gnat project file defined."))
-
-  (when (eq ?\" (aref identifier 0))
-    ;; gnatinspect wants the quotes stripped
-    (setq col (+ 1 col))
-    (setq identifier (substring identifier 1 (1- (length identifier))))
-    )
-
-  (let ((cmd (format "overrides %s:%s:%d:%d" identifier 
(file-name-nondirectory file) line col))
-       result)
-    (with-current-buffer (gnat-inspect-session-send cmd t)
-
-      (goto-char (point-min))
-      (when (looking-at gnat-inspect-ident-file-regexp)
-       (setq result
-             (list
-              (match-string 2)
-              (string-to-number (match-string 3))
-              (string-to-number (match-string 4)))))
-
-      (when (null result)
-       (error "gnatinspect did not return other item; refresh?"))
-
-      (message "parsing result ... done")
-      result)))
-
-(defun gnat-inspect-overridden (other-window)
-  "Move to the overridden declaration of the identifier around point.
-If OTHER-WINDOW (set by interactive prefix) is non-nil, show the
-buffer in another window."
-  (interactive "P")
-
-  (let ((target
-        (gnat-inspect-overridden-1
-         (thing-at-point 'symbol)
-         (buffer-file-name)
-         (line-number-at-pos)
-         (save-excursion
-           (goto-char (car (bounds-of-thing-at-point 'symbol)))
-           (1+ (current-column)))
-         )))
-
-    (ada-goto-source (nth 0 target)
-                    (nth 1 target)
-                    (nth 2 target)
-                    other-window)
-    ))
-
-(defun gnat-inspect-goto-declaration (other-window)
-  "Move to the declaration or body of the identifier around point.
-If at the declaration, go to the body, and vice versa. If at a
-reference, goto the declaration.
-
-If OTHER-WINDOW (set by interactive prefix) is non-nil, show the
-buffer in another window."
-  (interactive "P")
-
-  (let ((target
-        (gnat-inspect-other
-         (thing-at-point 'symbol)
-         (buffer-file-name)
-         (line-number-at-pos)
-         (save-excursion
-           (goto-char (car (bounds-of-thing-at-point 'symbol)))
-           (1+ (current-column)))
-         )))
-
-    (ada-goto-source (nth 0 target)
-                    (nth 1 target)
-                    (nth 2 target)
-                    other-window)
-    ))
-
-(defvar gnat-inspect-map
-  (let ((map (make-sparse-keymap)))
-    ;; C-c C-i prefix for gnat-inspect minor mode
-
-    (define-key map "\C-c\C-i\C-d" 'gnat-inspect-goto-declaration)
-    (define-key map "\C-c\C-i\C-p" 'ada-build-prompt-select-prj-file)
-    (define-key map "\C-c\C-i\C-q" 'gnat-inspect-refresh)
-    (define-key map "\C-c\C-i\C-r" 'gnat-inspect-all)
-    map
-  )  "Local keymap used for GNAT inspect minor mode.")
-
-(defvar gnat-inspect-menu (make-sparse-keymap "gnat-inspect"))
-(easy-menu-define gnat-inspect-menu gnat-inspect-map "Menu keymap for 
gnat-inspect minor mode"
-  '("gnat-inspect"
-    ["Find and select project ..."   ada-build-prompt-select-prj-file t]
-    ["Select project ..."            ada-prj-select                   t]
-    ["Show current project"          ada-prj-show                     t]
-    ["Next compilation error"        next-error                       t]
-    ["Show secondary error"          ada-show-secondary-error         t]
-    ["Refresh cross reference cache" gnat-inspect-refresh        t]
-    ))
-
-(define-minor-mode gnat-inspect
-  "Minor mode for navigating sources using GNAT cross reference tool.
-Enable mode if ARG is positive"
-  :initial-value t
-  :lighter       " gnat-inspect"   ;; mode line
-
-  ;; just enable the menu and keymap
-  )
-
-;;;;; support for Ada mode
-
-(defun ada-gnat-inspect-select-prj ()
-  (setq ada-file-name-from-ada-name 'ada-gnat-file-name-from-ada-name)
-  (setq ada-ada-name-from-file-name 'ada-gnat-ada-name-from-file-name)
-  (setq ada-make-package-body       'ada-gnat-make-package-body)
-
-  (add-hook 'ada-syntax-propertize-hook 'gnatprep-syntax-propertize)
-
-  ;; must be after indentation engine setup, because that resets the
-  ;; indent function list.
-  (add-hook 'ada-mode-hook 'ada-gnat-inspect-setup t)
-
-  (setq ada-xref-refresh-function    'gnat-inspect-refresh)
-  (setq ada-xref-all-function        'gnat-inspect-all)
-  (setq ada-xref-other-function      'gnat-inspect-other)
-  (setq ada-xref-parent-function     'gnat-inspect-parents)
-  (setq ada-xref-all-function        'gnat-inspect-all)
-  (setq ada-xref-overriding-function 'gnat-inspect-overriding)
-  (setq ada-xref-overridden-function 'gnat-inspect-overridden-1)
-  (setq ada-show-xref-tool-buffer    'gnat-inspect-show-session-buffer)
-
-  (add-to-list 'completion-ignored-extensions ".ali") ;; gnat library files, 
used for cross reference
-  )
-
-(defun ada-gnat-inspect-deselect-prj ()
-  (setq ada-file-name-from-ada-name nil)
-  (setq ada-ada-name-from-file-name nil)
-  (setq ada-make-package-body       nil)
-
-  (setq ada-syntax-propertize-hook (delq 'gnatprep-syntax-propertize 
ada-syntax-propertize-hook))
-  (setq ada-mode-hook (delq 'ada-gnat-inspect-setup ada-mode-hook))
-
-  (setq ada-xref-other-function      nil)
-  (setq ada-xref-parent-function     nil)
-  (setq ada-xref-all-function        nil)
-  (setq ada-xref-overriding-function nil)
-  (setq ada-xref-overridden-function nil)
-  (setq ada-show-xref-tool-buffer    nil)
-
-  (setq completion-ignored-extensions (delete ".ali" 
completion-ignored-extensions))
-  )
-
-(defun ada-gnat-inspect-setup ()
-  (when (boundp 'wisi-indent-calculate-functions)
-    (add-to-list 'wisi-indent-calculate-functions 'gnatprep-indent))
-  )
-
-(defun ada-gnat-inspect ()
-  "Set Ada mode global vars to use gnatinspect."
-  (add-to-list 'ada-prj-parser-alist       '("gpr" . gnat-parse-gpr))
-  (add-to-list 'ada-select-prj-xref-tool   '(gnat_inspect  . 
ada-gnat-inspect-select-prj))
-  (add-to-list 'ada-deselect-prj-xref-tool '(gnat_inspect  . 
ada-gnat-inspect-deselect-prj))
-
-  ;; no parse-*-xref
-
-  (font-lock-add-keywords 'ada-mode
-   ;; gnatprep preprocessor line
-   (list (list "^[ \t]*\\(#.*\n\\)"  '(1 font-lock-type-face t))))
-
-  (add-hook 'ada-gnat-fix-error-hook 'ada-gnat-fix-error)
-  )
-
-(provide 'gnat-inspect)
-(provide 'ada-xref-tool)
-
-(add-to-list 'compilation-error-regexp-alist-alist
-            (cons 'gnat-inspect-ident-file       
gnat-inspect-ident-file-regexp-alist))
-(add-to-list 'compilation-error-regexp-alist-alist
-            (cons 'gnat-inspect-ident-file-scope 
gnat-inspect-ident-file-scope-regexp-alist))
-
-(unless (and (boundp 'ada-xref-tool)
-            (default-value 'ada-xref-tool))
-  (setq ada-xref-tool 'gnat_inspect))
-
-(ada-gnat-inspect)
-
-;;; end of file
diff --git a/gpr-grammar-wy.el b/gpr-grammar-wy.el
index 34c3553..1c1381e 100644
--- a/gpr-grammar-wy.el
+++ b/gpr-grammar-wy.el
@@ -1,6 +1,6 @@
-;;; gpr-grammar-wy.el --- Generated parser support file  -*- lexical-binding:t 
-*-
+;;; gpr-grammar-wy.el --- Generated parser support file
 
-;; Copyright (C) 2013, 2015  Free Software Foundation, Inc.
+;; Copyright (C) 2013 - 2015 Free Software Foundation, Inc.
 
 ;; This program is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU General Public License as
@@ -27,6 +27,7 @@
     ("case" . CASE)
     ("configuration" . CONFIGURATION)
     ("end" . END)
+    ("extends" . EXTENDS)
     ("external" . EXTERNAL)
     ("external_as_list" . EXTERNAL_AS_LIST)
     ("for" . FOR)
@@ -37,6 +38,7 @@
     ("others" . OTHERS)
     ("package" . PACKAGE)
     ("project" . PROJECT)
+    ("renames" . RENAMES)
     (")" . RIGHT_PAREN)
     ("standard" . STANDARD)
     ("type" . TYPE)
@@ -73,7 +75,7 @@
 
 (defconst gpr-grammar-wy--parse-table
    (wisi-compile-grammar
-   '((AMPERSAND COLON COLON_EQUALS COMMA DOT EQUAL_GREATER QUOTE SEMICOLON 
VERTICAL_BAR IDENTIFIER STRING_LITERAL ABSTRACT AGGREGATE CASE CONFIGURATION 
END EXTERNAL EXTERNAL_AS_LIST FOR IS LEFT_PAREN LIBRARY NULL OTHERS PACKAGE 
PROJECT RIGHT_PAREN STANDARD TYPE USE WHEN WITH )
+   '((AMPERSAND COLON COLON_EQUALS COMMA DOT EQUAL_GREATER QUOTE SEMICOLON 
VERTICAL_BAR IDENTIFIER STRING_LITERAL ABSTRACT AGGREGATE CASE CONFIGURATION 
END EXTENDS EXTERNAL EXTERNAL_AS_LIST FOR IS LEFT_PAREN LIBRARY NULL OTHERS 
PACKAGE PROJECT RENAMES RIGHT_PAREN STANDARD TYPE USE WHEN WITH )
      ((aggregate
        ((LEFT_PAREN string_list RIGHT_PAREN )
         (progn
@@ -87,6 +89,10 @@
        ((FOR IDENTIFIER LEFT_PAREN STRING_LITERAL RIGHT_PAREN USE expression 
SEMICOLON )
         (progn
         (wisi-statement-action [1 statement-start 3 open-paren 5 close-paren 6 
statement-other 8 statement-end])
+        (wisi-containing-action 6 7)))
+       ((FOR EXTERNAL LEFT_PAREN STRING_LITERAL RIGHT_PAREN USE expression 
SEMICOLON )
+        (progn
+        (wisi-statement-action [1 statement-start 3 open-paren 5 close-paren 6 
statement-other 8 statement-end])
         (wisi-containing-action 6 7))))
       (attribute_prefix
        ((PROJECT ))
@@ -101,9 +107,10 @@
         (wisi-statement-action [1 statement-start 3 block-start 5 block-end 7 
statement-end])
         (wisi-containing-action 3 4))))
       (case_item
-       ((WHEN discrete_choice_list EQUAL_GREATER declarative_items )
+       ((WHEN discrete_choice_list EQUAL_GREATER declarative_items_opt )
         (progn
         (wisi-statement-action [1 block-middle 3 block-start])
+        (wisi-containing-action 1 3)
         (wisi-containing-action 3 4))))
       (case_items
        (())
@@ -122,9 +129,11 @@
        ((typed_string_declaration ))
        ((package_declaration )))
       (declarative_items
-       (())
        ((declarative_item ))
        ((declarative_items declarative_item )))
+      (declarative_items_opt
+       (())
+       ((declarative_items )))
       (discrete_choice
        (())
        ((STRING_LITERAL ))
@@ -146,14 +155,32 @@
        ((name DOT IDENTIFIER )))
       (project_declaration_opt
        (())
-       ((simple_project_declaration )))
+       ((simple_project_declaration ))
+       ((project_extension )))
       (package_declaration
-       ((package_spec )))
+       ((package_spec ))
+       ((package_extension ))
+       ((package_renaming )))
       (package_spec
-       ((PACKAGE identifier_opt IS simple_declarative_items END identifier_opt 
SEMICOLON )
+       ((PACKAGE identifier_opt IS declarative_items_opt END identifier_opt 
SEMICOLON )
         (progn
         (wisi-statement-action [1 statement-start 3 block-start 5 block-end 7 
statement-end])
         (wisi-containing-action 3 4))))
+      (package_extension
+       ((PACKAGE identifier_opt EXTENDS name IS declarative_items_opt END 
identifier_opt SEMICOLON )
+        (progn
+        (wisi-statement-action [1 statement-start 5 block-start 7 block-end 9 
statement-end])
+        (wisi-containing-action 5 6))))
+      (package_renaming
+       ((PACKAGE identifier_opt RENAMES name SEMICOLON )
+        (progn
+        (wisi-statement-action [1 statement-start 3 statement-other 5 
statement-end])
+        (wisi-containing-action 3 4))))
+      (project_extension
+       ((PROJECT identifier_opt EXTENDS STRING_LITERAL IS 
declarative_items_opt END identifier_opt SEMICOLON )
+        (progn
+        (wisi-statement-action [1 statement-start 5 block-start 7 block-end 9 
statement-end])
+        (wisi-containing-action 5 6))))
       (project_qualifier_opt
        (())
        ((ABSTRACT ))
@@ -175,12 +202,8 @@
        ((case_statement ))
        ((NULL SEMICOLON )
         (wisi-statement-action [1 statement-start 2 statement-end])))
-      (simple_declarative_items
-       (())
-       ((simple_declarative_item ))
-       ((simple_declarative_items simple_declarative_item )))
       (simple_project_declaration
-       ((PROJECT identifier_opt IS declarative_items END identifier_opt 
SEMICOLON )
+       ((PROJECT identifier_opt IS declarative_items_opt END identifier_opt 
SEMICOLON )
         (progn
         (wisi-statement-action [1 statement-start 3 block-start 5 block-end 7 
statement-end])
         (wisi-containing-action 3 4))))
@@ -210,146 +233,197 @@
        ((WITH string_list SEMICOLON ))))
      [((default . error) (ABSTRACT . (context_clause_opt . 0)) (AGGREGATE . 
(context_clause_opt . 0)) (CONFIGURATION . (context_clause_opt . 0)) (LIBRARY . 
(context_clause_opt . 0)) (STANDARD . (context_clause_opt . 0)) (PROJECT . 
(context_clause_opt . 0)) ($EOI . (context_clause_opt . 0)) (WITH .  7))
       ((default . error) ($EOI . (project_qualifier_opt . 1)) (PROJECT . 
(project_qualifier_opt . 1)))
-      ((default . error) (LIBRARY .  34) ($EOI . (project_qualifier_opt . 3)) 
(PROJECT . (project_qualifier_opt . 3)))
+      ((default . error) (LIBRARY .  35) ($EOI . (project_qualifier_opt . 3)) 
(PROJECT . (project_qualifier_opt . 3)))
       ((default . error) ($EOI . (project_qualifier_opt . 6)) (PROJECT . 
(project_qualifier_opt . 6)))
       ((default . error) ($EOI . (project_qualifier_opt . 5)) (PROJECT . 
(project_qualifier_opt . 5)))
-      ((default . error) (IS . (identifier_opt . 0)) (IDENTIFIER .  20))
+      ((default . error) (EXTENDS . (identifier_opt . 0)) (IS . 
(identifier_opt . 0)) (IDENTIFIER .  21))
       ((default . error) ($EOI . (project_qualifier_opt . 2)) (PROJECT . 
(project_qualifier_opt . 2)))
-      ((default . error) (LEFT_PAREN .  18) (STRING_LITERAL .  21) (EXTERNAL . 
 16) (EXTERNAL_AS_LIST .  17) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (SEMICOLON . (identifier_opt . 0)) (COMMA . 
(identifier_opt . 0)) (QUOTE . (identifier_opt . 0)) (IDENTIFIER .  20) 
(PROJECT .  19))
-      ((default . error) ($EOI .  15))
+      ((default . error) (LEFT_PAREN .  19) (STRING_LITERAL .  22) (EXTERNAL . 
 17) (EXTERNAL_AS_LIST .  18) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (SEMICOLON . (identifier_opt . 0)) (COMMA . 
(identifier_opt . 0)) (QUOTE . (identifier_opt . 0)) (IDENTIFIER .  21) 
(PROJECT .  20))
+      ((default . error) ($EOI .  16))
       ((default . error) (ABSTRACT . (context_clause_opt . 1)) (AGGREGATE . 
(context_clause_opt . 1)) (CONFIGURATION . (context_clause_opt . 1)) (LIBRARY . 
(context_clause_opt . 1)) (STANDARD . (context_clause_opt . 1)) (PROJECT . 
(context_clause_opt . 1)) ($EOI . (context_clause_opt . 1)) (WITH .  7))
       ((default . error) (PROJECT . (project_qualifier_opt . 0)) ($EOI . 
(project_qualifier_opt . 0)) (ABSTRACT .  1) (STANDARD .  6) (AGGREGATE .  2) 
(LIBRARY .  4) (CONFIGURATION .  3))
+      ((default . error) ($EOI . (project_declaration_opt . 2)))
       ((default . error) ($EOI . (project_declaration_opt . 1)))
       ((default . error) ($EOI . (context_clause . 0)) (PROJECT . 
(context_clause . 0)) (STANDARD . (context_clause . 0)) (LIBRARY . 
(context_clause . 0)) (CONFIGURATION . (context_clause . 0)) (AGGREGATE . 
(context_clause . 0)) (ABSTRACT . (context_clause . 0)) (WITH . (context_clause 
. 0)))
       ((default . error) ($EOI . (project_declaration_opt . 0)) (PROJECT .  5))
       ((default . error) (WITH . (context_clause . 1)) (ABSTRACT . 
(context_clause . 1)) (AGGREGATE . (context_clause . 1)) (CONFIGURATION . 
(context_clause . 1)) (LIBRARY . (context_clause . 1)) (STANDARD . 
(context_clause . 1)) (PROJECT . (context_clause . 1)) ($EOI . (context_clause 
. 1)))
-      ((default . error) ($EOI . accept) (STRING_LITERAL . accept) (IDENTIFIER 
. accept) (VERTICAL_BAR . accept) (SEMICOLON . accept) (QUOTE . accept) 
(EQUAL_GREATER . accept) (DOT . accept) (COMMA . accept) (COLON_EQUALS . 
accept) (COLON . accept) (AMPERSAND . accept) (WITH . accept) (WHEN . accept) 
(USE . accept) (TYPE . accept) (STANDARD . accept) (RIGHT_PAREN . accept) 
(PROJECT . accept) (PACKAGE . accept) (OTHERS . accept) (NULL . accept) 
(LIBRARY . accept) (LEFT_PAREN . accept) (IS [...]
-      ((default . error) (LEFT_PAREN .  43))
-      ((default . error) (LEFT_PAREN .  43))
-      ((default . error) (LEFT_PAREN .  18) (STRING_LITERAL .  21) (EXTERNAL . 
 16) (EXTERNAL_AS_LIST .  17) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (RIGHT_PAREN . ( 41 (identifier_opt . 0))) (COMMA . 
(identifier_opt . 0)) (QUOTE . (identifier_opt . 0)) (IDENTIFIER .  20) 
(PROJECT .  19))
+      ((default . error) ($EOI . accept) (STRING_LITERAL . accept) (IDENTIFIER 
. accept) (VERTICAL_BAR . accept) (SEMICOLON . accept) (QUOTE . accept) 
(EQUAL_GREATER . accept) (DOT . accept) (COMMA . accept) (COLON_EQUALS . 
accept) (COLON . accept) (AMPERSAND . accept) (WITH . accept) (WHEN . accept) 
(USE . accept) (TYPE . accept) (STANDARD . accept) (RIGHT_PAREN . accept) 
(RENAMES . accept) (PROJECT . accept) (PACKAGE . accept) (OTHERS . accept) 
(NULL . accept) (LIBRARY . accept) (LEFT_ [...]
+      ((default . error) (LEFT_PAREN .  45))
+      ((default . error) (LEFT_PAREN .  45))
+      ((default . error) (LEFT_PAREN .  19) (STRING_LITERAL .  22) (EXTERNAL . 
 17) (EXTERNAL_AS_LIST .  18) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (RIGHT_PAREN . ( 43 (identifier_opt . 0))) (COMMA . 
(identifier_opt . 0)) (QUOTE . (identifier_opt . 0)) (IDENTIFIER .  21) 
(PROJECT .  20))
       ((default . error) (QUOTE . (attribute_prefix . 0)))
-      ((default . error) (RIGHT_PAREN . (identifier_opt . 1)) (COMMA . 
(identifier_opt . 1)) (IS . (identifier_opt . 1)) (DOT . (identifier_opt . 1)) 
(AMPERSAND . (identifier_opt . 1)) (SEMICOLON . (identifier_opt . 1)) (QUOTE . 
(identifier_opt . 1)))
+      ((default . error) (RIGHT_PAREN . (identifier_opt . 1)) (COMMA . 
(identifier_opt . 1)) (EXTENDS . (identifier_opt . 1)) (RENAMES . 
(identifier_opt . 1)) (IS . (identifier_opt . 1)) (DOT . (identifier_opt . 1)) 
(AMPERSAND . (identifier_opt . 1)) (QUOTE . (identifier_opt . 1)) (SEMICOLON . 
(identifier_opt . 1)))
       ((default . error) (RIGHT_PAREN . (string_primary . 0)) (COMMA . 
(string_primary . 0)) (AMPERSAND . (string_primary . 0)) (SEMICOLON . 
(string_primary . 0)))
       ((default . error) (RIGHT_PAREN . (term . 2)) (COMMA . (term . 2)) 
(AMPERSAND . (term . 2)) (SEMICOLON . (term . 2)))
-      ((default . error) (QUOTE .  40))
+      ((default . error) (QUOTE .  42))
       ((default . error) (RIGHT_PAREN . (string_primary . 3)) (COMMA . 
(string_primary . 3)) (AMPERSAND . (string_primary . 3)) (SEMICOLON . 
(string_primary . 3)))
-      ((default . error) (SEMICOLON . (string_list . 0)) (RIGHT_PAREN . 
(string_list . 0)) (COMMA . (string_list . 0)) (AMPERSAND .  39))
+      ((default . error) (SEMICOLON . (string_list . 0)) (RIGHT_PAREN . 
(string_list . 0)) (COMMA . (string_list . 0)) (AMPERSAND .  41))
       ((default . error) (RIGHT_PAREN . (string_primary . 2)) (COMMA . 
(string_primary . 2)) (AMPERSAND . (string_primary . 2)) (SEMICOLON . 
(string_primary . 2)))
       ((default . error) (COMMA . (name . 0)) (RIGHT_PAREN . (name . 0)) (IS . 
(name . 0)) (SEMICOLON . (name . 0)) (AMPERSAND . (name . 0)) (DOT . (name . 
0)) (QUOTE . (name . 0)))
-      ((default . error) (RIGHT_PAREN . (string_primary . 1)) (COMMA . 
(string_primary . 1)) (AMPERSAND . (string_primary . 1)) (SEMICOLON . 
(string_primary . 1)) (DOT .  38) (QUOTE . (attribute_prefix . 1)))
+      ((default . error) (RIGHT_PAREN . (string_primary . 1)) (COMMA . 
(string_primary . 1)) (AMPERSAND . (string_primary . 1)) (SEMICOLON . 
(string_primary . 1)) (DOT .  40) (QUOTE . (attribute_prefix . 1)))
       ((default . error) (RIGHT_PAREN . (term . 0)) (COMMA . (term . 0)) 
(AMPERSAND . (term . 0)) (SEMICOLON . (term . 0)))
       ((default . error) (COMMA . (string_expression . 0)) (RIGHT_PAREN . 
(string_expression . 0)) (SEMICOLON . (string_expression . 0)) (AMPERSAND . 
(string_expression . 0)))
-      ((default . error) (COMMA .  36) (SEMICOLON .  37))
+      ((default . error) (COMMA .  38) (SEMICOLON .  39))
       ((default . error) (COMMA . (expression . 0)) (RIGHT_PAREN . (expression 
. 0)) (SEMICOLON . (expression . 0)) (AMPERSAND . (expression . 0)))
-      ((default . error) (IS .  35))
+      ((default . error) (EXTENDS .  36) (IS .  37))
       ((default . error) ($EOI . (project_qualifier_opt . 4)) (PROJECT . 
(project_qualifier_opt . 4)))
-      ((default . error) (END . (declarative_items . 0)) (TYPE . ( 56 
(declarative_items . 0))) (IDENTIFIER . ( 57 (declarative_items . 0))) (NULL . 
( 54 (declarative_items . 0))) (CASE . ( 52 (declarative_items . 0))) (FOR . ( 
53 (declarative_items . 0))) (PACKAGE . ( 55 (declarative_items . 0))))
-      ((default . error) (LEFT_PAREN .  18) (STRING_LITERAL .  21) (EXTERNAL . 
 16) (EXTERNAL_AS_LIST .  17) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (RIGHT_PAREN . (identifier_opt . 0)) (COMMA . 
(identifier_opt . 0)) (SEMICOLON . (identifier_opt . 0)) (QUOTE . 
(identifier_opt . 0)) (IDENTIFIER .  20) (PROJECT .  19))
+      ((default . error) (STRING_LITERAL .  71))
+      ((default . error) (END . (declarative_items_opt . 0)) (TYPE .  58) 
(IDENTIFIER .  59) (NULL .  56) (CASE .  54) (FOR .  55) (PACKAGE .  57))
+      ((default . error) (LEFT_PAREN .  19) (STRING_LITERAL .  22) (EXTERNAL . 
 17) (EXTERNAL_AS_LIST .  18) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (RIGHT_PAREN . (identifier_opt . 0)) (COMMA . 
(identifier_opt . 0)) (SEMICOLON . (identifier_opt . 0)) (QUOTE . 
(identifier_opt . 0)) (IDENTIFIER .  21) (PROJECT .  20))
       ((default . error) (WITH . (with_clause . 0)) (ABSTRACT . (with_clause . 
0)) (AGGREGATE . (with_clause . 0)) (CONFIGURATION . (with_clause . 0)) 
(LIBRARY . (with_clause . 0)) (STANDARD . (with_clause . 0)) (PROJECT . 
(with_clause . 0)) ($EOI . (with_clause . 0)))
+      ((default . error) (IDENTIFIER .  52))
+      ((default . error) (LEFT_PAREN .  19) (STRING_LITERAL .  22) (EXTERNAL . 
 17) (EXTERNAL_AS_LIST .  18) (DOT . (identifier_opt . 0)) (SEMICOLON . 
(identifier_opt . 0)) (COMMA . (identifier_opt . 0)) (RIGHT_PAREN . 
(identifier_opt . 0)) (AMPERSAND . (identifier_opt . 0)) (QUOTE . 
(identifier_opt . 0)) (IDENTIFIER .  21) (PROJECT .  20))
       ((default . error) (IDENTIFIER .  50))
-      ((default . error) (LEFT_PAREN .  18) (STRING_LITERAL .  21) (EXTERNAL . 
 16) (EXTERNAL_AS_LIST .  17) (DOT . (identifier_opt . 0)) (SEMICOLON . 
(identifier_opt . 0)) (COMMA . (identifier_opt . 0)) (RIGHT_PAREN . 
(identifier_opt . 0)) (AMPERSAND . (identifier_opt . 0)) (QUOTE . 
(identifier_opt . 0)) (IDENTIFIER .  20) (PROJECT .  19))
-      ((default . error) (IDENTIFIER .  48))
       ((default . error) (SEMICOLON . (term . 1)) (AMPERSAND . (term . 1)) 
(COMMA . (term . 1)) (RIGHT_PAREN . (term . 1)))
-      ((default . error) (COMMA .  36) (RIGHT_PAREN .  47))
-      ((default . error) (LEFT_PAREN .  18) (STRING_LITERAL .  21) (EXTERNAL . 
 16) (EXTERNAL_AS_LIST .  17) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (RIGHT_PAREN . (identifier_opt . 0)) (COMMA . 
(identifier_opt . 0)) (QUOTE . (identifier_opt . 0)) (IDENTIFIER .  20) 
(PROJECT .  19))
+      ((default . error) (COMMA .  38) (RIGHT_PAREN .  49))
+      ((default . error) (LEFT_PAREN .  19) (STRING_LITERAL .  22) (EXTERNAL . 
 17) (EXTERNAL_AS_LIST .  18) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (RIGHT_PAREN . (identifier_opt . 0)) (COMMA . 
(identifier_opt . 0)) (QUOTE . (identifier_opt . 0)) (IDENTIFIER .  21) 
(PROJECT .  20))
       ((default . error) (AMPERSAND . (external_value . 1)) (SEMICOLON . 
(external_value . 1)) (RIGHT_PAREN . (external_value . 1)) (COMMA . 
(external_value . 1)))
       ((default . error) (AMPERSAND . (external_value . 0)) (SEMICOLON . 
(external_value . 0)) (RIGHT_PAREN . (external_value . 0)) (COMMA . 
(external_value . 0)))
       ((default . error) ($EOI . (compilation_unit . 0)))
       ((default . error) (COMMA . (aggregate . 0)) (RIGHT_PAREN . (aggregate . 
0)) (SEMICOLON . (aggregate . 0)) (AMPERSAND . (aggregate . 0)))
-      ((default . error) (LEFT_PAREN .  75) (COMMA . (attribute_reference . 
0)) (RIGHT_PAREN . (attribute_reference . 0)) (SEMICOLON . (attribute_reference 
. 0)) (AMPERSAND . (attribute_reference . 0)))
+      ((default . error) (LEFT_PAREN .  83) (COMMA . (attribute_reference . 
0)) (RIGHT_PAREN . (attribute_reference . 0)) (SEMICOLON . (attribute_reference 
. 0)) (AMPERSAND . (attribute_reference . 0)))
       ((default . error) (SEMICOLON . (expression . 1)) (COMMA . (expression . 
1)) (RIGHT_PAREN . (expression . 1)) (AMPERSAND . (expression . 1)))
       ((default . error) (IS . (name . 1)) (COMMA . (name . 1)) (RIGHT_PAREN . 
(name . 1)) (SEMICOLON . (name . 1)) (AMPERSAND . (name . 1)) (DOT . (name . 
1)) (QUOTE . (name . 1)))
-      ((default . error) (AMPERSAND .  39) (RIGHT_PAREN . (string_list . 1)) 
(SEMICOLON . (string_list . 1)) (COMMA . (string_list . 1)))
-      ((default . error) (DOT . (identifier_opt . 0)) (IS . (identifier_opt . 
0)) (IDENTIFIER .  20))
-      ((default . error) (IDENTIFIER .  73))
-      ((default . error) (SEMICOLON .  72))
-      ((default . error) (IS . (identifier_opt . 0)) (IDENTIFIER .  20))
-      ((default . error) (IDENTIFIER .  70))
-      ((default . error) (COLON .  68) (COLON_EQUALS .  69))
+      ((default . error) (AMPERSAND .  41) (RIGHT_PAREN . (string_list . 1)) 
(SEMICOLON . (string_list . 1)) (COMMA . (string_list . 1)))
+      ((default . error) (DOT . (identifier_opt . 0)) (IS . (identifier_opt . 
0)) (IDENTIFIER .  21))
+      ((default . error) (EXTERNAL .  80) (IDENTIFIER .  81))
+      ((default . error) (SEMICOLON .  79))
+      ((default . error) (IS . (identifier_opt . 0)) (EXTENDS . 
(identifier_opt . 0)) (RENAMES . (identifier_opt . 0)) (IDENTIFIER .  21))
+      ((default . error) (IDENTIFIER .  77))
+      ((default . error) (COLON .  75) (COLON_EQUALS .  76))
       ((default . error) (WHEN . (simple_declarative_item . 2)) (END . 
(simple_declarative_item . 2)) (CASE . (simple_declarative_item . 2)) (FOR . 
(simple_declarative_item . 2)) (NULL . (simple_declarative_item . 2)) (PACKAGE 
. (simple_declarative_item . 2)) (TYPE . (simple_declarative_item . 2)) 
(IDENTIFIER . (simple_declarative_item . 2)))
       ((default . error) (WHEN . (simple_declarative_item . 3)) (END . 
(simple_declarative_item . 3)) (CASE . (simple_declarative_item . 3)) (FOR . 
(simple_declarative_item . 3)) (NULL . (simple_declarative_item . 3)) (PACKAGE 
. (simple_declarative_item . 3)) (TYPE . (simple_declarative_item . 3)) 
(IDENTIFIER . (simple_declarative_item . 3)))
-      ((default . error) (WHEN . (declarative_items . 1)) (END . 
(declarative_items . 1)) (CASE . (declarative_items . 1)) (FOR . 
(declarative_items . 1)) (NULL . (declarative_items . 1)) (PACKAGE . 
(declarative_items . 1)) (TYPE . (declarative_items . 1)) (IDENTIFIER . 
(declarative_items . 1)))
-      ((default . error) (END .  66) (TYPE .  56) (IDENTIFIER .  57) (NULL .  
54) (CASE .  52) (FOR .  53) (PACKAGE .  55))
+      ((default . error) (WHEN . (declarative_items . 0)) (END . 
(declarative_items . 0)) (CASE . (declarative_items . 0)) (FOR . 
(declarative_items . 0)) (NULL . (declarative_items . 0)) (PACKAGE . 
(declarative_items . 0)) (TYPE . (declarative_items . 0)) (IDENTIFIER . 
(declarative_items . 0)))
+      ((default . error) (WHEN . (declarative_items_opt . 1)) (END . 
(declarative_items_opt . 1)) (TYPE .  58) (IDENTIFIER .  59) (NULL .  56) (CASE 
.  54) (FOR .  55) (PACKAGE .  57))
+      ((default . error) (END .  73))
       ((default . error) (WHEN . (declarative_item . 2)) (END . 
(declarative_item . 2)) (IDENTIFIER . (declarative_item . 2)) (TYPE . 
(declarative_item . 2)) (PACKAGE . (declarative_item . 2)) (NULL . 
(declarative_item . 2)) (FOR . (declarative_item . 2)) (CASE . 
(declarative_item . 2)))
       ((default . error) (WHEN . (package_declaration . 0)) (END . 
(package_declaration . 0)) (CASE . (package_declaration . 0)) (FOR . 
(package_declaration . 0)) (NULL . (package_declaration . 0)) (PACKAGE . 
(package_declaration . 0)) (TYPE . (package_declaration . 0)) (IDENTIFIER . 
(package_declaration . 0)))
+      ((default . error) (WHEN . (package_declaration . 1)) (END . 
(package_declaration . 1)) (CASE . (package_declaration . 1)) (FOR . 
(package_declaration . 1)) (NULL . (package_declaration . 1)) (PACKAGE . 
(package_declaration . 1)) (TYPE . (package_declaration . 1)) (IDENTIFIER . 
(package_declaration . 1)))
+      ((default . error) (WHEN . (package_declaration . 2)) (END . 
(package_declaration . 2)) (CASE . (package_declaration . 2)) (FOR . 
(package_declaration . 2)) (NULL . (package_declaration . 2)) (PACKAGE . 
(package_declaration . 2)) (TYPE . (package_declaration . 2)) (IDENTIFIER . 
(package_declaration . 2)))
       ((default . error) (WHEN . (declarative_item . 0)) (END . 
(declarative_item . 0)) (IDENTIFIER . (declarative_item . 0)) (TYPE . 
(declarative_item . 0)) (PACKAGE . (declarative_item . 0)) (NULL . 
(declarative_item . 0)) (FOR . (declarative_item . 0)) (CASE . 
(declarative_item . 0)))
       ((default . error) (WHEN . (declarative_item . 1)) (END . 
(declarative_item . 1)) (IDENTIFIER . (declarative_item . 1)) (TYPE . 
(declarative_item . 1)) (PACKAGE . (declarative_item . 1)) (NULL . 
(declarative_item . 1)) (FOR . (declarative_item . 1)) (CASE . 
(declarative_item . 1)))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  20))
-      ((default . error) (WHEN . (declarative_items . 2)) (IDENTIFIER . 
(declarative_items . 2)) (TYPE . (declarative_items . 2)) (PACKAGE . 
(declarative_items . 2)) (NULL . (declarative_items . 2)) (FOR . 
(declarative_items . 2)) (CASE . (declarative_items . 2)) (END . 
(declarative_items . 2)))
-      ((default . error) (IDENTIFIER .  83))
-      ((default . error) (LEFT_PAREN .  18) (STRING_LITERAL .  21) (EXTERNAL . 
 16) (EXTERNAL_AS_LIST .  17) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (SEMICOLON . (identifier_opt . 0)) (QUOTE . 
(identifier_opt . 0)) (IDENTIFIER .  20) (PROJECT .  19))
-      ((default . error) (IS .  81))
-      ((default . error) (IS .  80))
+      ((default . error) (IS .  72))
+      ((default . error) (END . (declarative_items_opt . 0)) (TYPE .  58) 
(IDENTIFIER .  59) (NULL .  56) (CASE .  54) (FOR .  55) (PACKAGE .  57))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  21))
+      ((default . error) (WHEN . (declarative_items . 1)) (IDENTIFIER . 
(declarative_items . 1)) (TYPE . (declarative_items . 1)) (PACKAGE . 
(declarative_items . 1)) (NULL . (declarative_items . 1)) (FOR . 
(declarative_items . 1)) (CASE . (declarative_items . 1)) (END . 
(declarative_items . 1)))
+      ((default . error) (IDENTIFIER .  94))
+      ((default . error) (LEFT_PAREN .  19) (STRING_LITERAL .  22) (EXTERNAL . 
 17) (EXTERNAL_AS_LIST .  18) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (SEMICOLON . (identifier_opt . 0)) (QUOTE . 
(identifier_opt . 0)) (IDENTIFIER .  21) (PROJECT .  20))
+      ((default . error) (IS .  92))
+      ((default . error) (IS .  90) (EXTENDS .  89) (RENAMES .  91))
       ((default . error) (WHEN . (simple_declarative_item . 4)) (IDENTIFIER . 
(simple_declarative_item . 4)) (TYPE . (simple_declarative_item . 4)) (PACKAGE 
. (simple_declarative_item . 4)) (NULL . (simple_declarative_item . 4)) (FOR . 
(simple_declarative_item . 4)) (CASE . (simple_declarative_item . 4)) (END . 
(simple_declarative_item . 4)))
-      ((default . error) (USE .  79) (LEFT_PAREN .  78))
-      ((default . error) (DOT .  38) (IS .  77))
-      ((default . error) (STRING_LITERAL .  76))
-      ((default . error) (RIGHT_PAREN .  96))
-      ((default . error) (END . (case_items . 0)) (WHEN . ( 93 (case_items . 
0))))
-      ((default . error) (STRING_LITERAL .  92))
-      ((default . error) (LEFT_PAREN .  18) (STRING_LITERAL .  21) (EXTERNAL . 
 16) (EXTERNAL_AS_LIST .  17) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (SEMICOLON . (identifier_opt . 0)) (QUOTE . 
(identifier_opt . 0)) (IDENTIFIER .  20) (PROJECT .  19))
-      ((default . error) (END . (simple_declarative_items . 0)) (IDENTIFIER . 
( 57 (simple_declarative_items . 0))) (NULL . ( 54 (simple_declarative_items . 
0))) (CASE . ( 52 (simple_declarative_items . 0))) (FOR . ( 53 
(simple_declarative_items . 0))))
-      ((default . error) (LEFT_PAREN .  43))
-      ((default . error) (AMPERSAND .  39) (SEMICOLON .  87))
-      ((default . error) (COLON_EQUALS .  86))
-      ((default . error) (SEMICOLON .  85))
+      ((default . error) (LEFT_PAREN .  88))
+      ((default . error) (USE .  87) (LEFT_PAREN .  86))
+      ((default . error) (DOT .  40) (IS .  85))
+      ((default . error) (STRING_LITERAL .  84))
+      ((default . error) (RIGHT_PAREN .  111))
+      ((default . error) (END . (case_items . 0)) (WHEN . ( 108 (case_items . 
0))))
+      ((default . error) (STRING_LITERAL .  107))
+      ((default . error) (LEFT_PAREN .  19) (STRING_LITERAL .  22) (EXTERNAL . 
 17) (EXTERNAL_AS_LIST .  18) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (SEMICOLON . (identifier_opt . 0)) (QUOTE . 
(identifier_opt . 0)) (IDENTIFIER .  21) (PROJECT .  20))
+      ((default . error) (STRING_LITERAL .  105))
+      ((default . error) (DOT . (identifier_opt . 0)) (IS . (identifier_opt . 
0)) (IDENTIFIER .  21))
+      ((default . error) (END . (declarative_items_opt . 0)) (TYPE .  58) 
(IDENTIFIER .  59) (NULL .  56) (CASE .  54) (FOR .  55) (PACKAGE .  57))
+      ((default . error) (DOT . (identifier_opt . 0)) (SEMICOLON . 
(identifier_opt . 0)) (IDENTIFIER .  21))
+      ((default . error) (LEFT_PAREN .  45))
+      ((default . error) (AMPERSAND .  41) (SEMICOLON .  100))
+      ((default . error) (COLON_EQUALS .  99))
+      ((default . error) (SEMICOLON .  98))
+      ((default . error) (END .  97))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  21))
       ((default . error) ($EOI . (simple_project_declaration . 0)))
-      ((default . error) (LEFT_PAREN .  18) (STRING_LITERAL .  21) (EXTERNAL . 
 16) (EXTERNAL_AS_LIST .  17) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (SEMICOLON . (identifier_opt . 0)) (QUOTE . 
(identifier_opt . 0)) (IDENTIFIER .  20) (PROJECT .  19))
+      ((default . error) (LEFT_PAREN .  19) (STRING_LITERAL .  22) (EXTERNAL . 
 17) (EXTERNAL_AS_LIST .  18) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (SEMICOLON . (identifier_opt . 0)) (QUOTE . 
(identifier_opt . 0)) (IDENTIFIER .  21) (PROJECT .  20))
       ((default . error) (WHEN . (simple_declarative_item . 0)) (IDENTIFIER . 
(simple_declarative_item . 0)) (TYPE . (simple_declarative_item . 0)) (PACKAGE 
. (simple_declarative_item . 0)) (NULL . (simple_declarative_item . 0)) (FOR . 
(simple_declarative_item . 0)) (CASE . (simple_declarative_item . 0)) (END . 
(simple_declarative_item . 0)))
-      ((default . error) (SEMICOLON .  107))
-      ((default . error) (END . (simple_declarative_items . 1)) (CASE . 
(simple_declarative_items . 1)) (FOR . (simple_declarative_items . 1)) (NULL . 
(simple_declarative_items . 1)) (IDENTIFIER . (simple_declarative_items . 1)))
-      ((default . error) (END .  105) (IDENTIFIER .  57) (NULL .  54) (CASE .  
52) (FOR .  53))
-      ((default . error) (AMPERSAND .  39) (SEMICOLON .  104))
-      ((default . error) (RIGHT_PAREN .  103))
-      ((default . error) (VERTICAL_BAR . (discrete_choice . 0)) (EQUAL_GREATER 
. (discrete_choice . 0)) (STRING_LITERAL .  100) (OTHERS .  99))
+      ((default . error) (SEMICOLON .  124))
+      ((default . error) (DOT .  40) (SEMICOLON .  123))
+      ((default . error) (END .  122))
+      ((default . error) (DOT .  40) (IS .  121))
+      ((default . error) (RIGHT_PAREN .  120))
+      ((default . error) (AMPERSAND .  41) (SEMICOLON .  119))
+      ((default . error) (RIGHT_PAREN .  118))
+      ((default . error) (VERTICAL_BAR . (discrete_choice . 0)) (EQUAL_GREATER 
. (discrete_choice . 0)) (STRING_LITERAL .  115) (OTHERS .  114))
       ((default . error) (END . (case_items . 1)) (WHEN . (case_items . 1)))
-      ((default . error) (END .  97) (WHEN .  93))
+      ((default . error) (END .  112) (WHEN .  108))
       ((default . error) (AMPERSAND . (attribute_reference . 1)) (SEMICOLON . 
(attribute_reference . 1)) (RIGHT_PAREN . (attribute_reference . 1)) (COMMA . 
(attribute_reference . 1)))
-      ((default . error) (CASE .  114))
+      ((default . error) (CASE .  135))
       ((default . error) (WHEN . (case_items . 2)) (END . (case_items . 2)))
       ((default . error) (VERTICAL_BAR . (discrete_choice . 2)) (EQUAL_GREATER 
. (discrete_choice . 2)))
       ((default . error) (VERTICAL_BAR . (discrete_choice . 1)) (EQUAL_GREATER 
. (discrete_choice . 1)))
       ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) 
(VERTICAL_BAR . (discrete_choice_list . 0)))
-      ((default . error) (VERTICAL_BAR .  113) (EQUAL_GREATER .  112))
-      ((default . error) (USE .  111))
+      ((default . error) (VERTICAL_BAR .  134) (EQUAL_GREATER .  133))
+      ((default . error) (USE .  132))
       ((default . error) (WHEN . (attribute_declaration . 0)) (END . 
(attribute_declaration . 0)) (IDENTIFIER . (attribute_declaration . 0)) (TYPE . 
(attribute_declaration . 0)) (PACKAGE . (attribute_declaration . 0)) (NULL . 
(attribute_declaration . 0)) (FOR . (attribute_declaration . 0)) (CASE . 
(attribute_declaration . 0)))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  20))
-      ((default . error) (IDENTIFIER . (simple_declarative_items . 2)) (NULL . 
(simple_declarative_items . 2)) (FOR . (simple_declarative_items . 2)) (CASE . 
(simple_declarative_items . 2)) (END . (simple_declarative_items . 2)))
+      ((default . error) (USE .  131))
+      ((default . error) (END . (declarative_items_opt . 0)) (TYPE .  58) 
(IDENTIFIER .  59) (NULL .  56) (CASE .  54) (FOR .  55) (PACKAGE .  57))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  21))
+      ((default . error) (WHEN . (package_renaming . 0)) (END . 
(package_renaming . 0)) (IDENTIFIER . (package_renaming . 0)) (TYPE . 
(package_renaming . 0)) (PACKAGE . (package_renaming . 0)) (NULL . 
(package_renaming . 0)) (FOR . (package_renaming . 0)) (CASE . 
(package_renaming . 0)))
       ((default . error) (WHEN . (typed_string_declaration . 0)) (END . 
(typed_string_declaration . 0)) (CASE . (typed_string_declaration . 0)) (FOR . 
(typed_string_declaration . 0)) (NULL . (typed_string_declaration . 0)) 
(PACKAGE . (typed_string_declaration . 0)) (TYPE . (typed_string_declaration . 
0)) (IDENTIFIER . (typed_string_declaration . 0)))
-      ((default . error) (AMPERSAND .  39) (SEMICOLON .  109))
+      ((default . error) (AMPERSAND .  41) (SEMICOLON .  128))
+      ((default . error) (SEMICOLON .  127))
+      ((default . error) ($EOI . (project_extension . 0)))
       ((default . error) (WHEN . (simple_declarative_item . 1)) (IDENTIFIER . 
(simple_declarative_item . 1)) (TYPE . (simple_declarative_item . 1)) (PACKAGE 
. (simple_declarative_item . 1)) (NULL . (simple_declarative_item . 1)) (FOR . 
(simple_declarative_item . 1)) (CASE . (simple_declarative_item . 1)) (END . 
(simple_declarative_item . 1)))
-      ((default . error) (SEMICOLON .  119))
-      ((default . error) (LEFT_PAREN .  18) (STRING_LITERAL .  21) (EXTERNAL . 
 16) (EXTERNAL_AS_LIST .  17) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (SEMICOLON . (identifier_opt . 0)) (QUOTE . 
(identifier_opt . 0)) (IDENTIFIER .  20) (PROJECT .  19))
-      ((default . error) (END . (declarative_items . 0)) (WHEN . 
(declarative_items . 0)) (TYPE . ( 56 (declarative_items . 0))) (IDENTIFIER . ( 
57 (declarative_items . 0))) (NULL . ( 54 (declarative_items . 0))) (CASE . ( 
52 (declarative_items . 0))) (FOR . ( 53 (declarative_items . 0))) (PACKAGE . ( 
55 (declarative_items . 0))))
-      ((default . error) (EQUAL_GREATER . (discrete_choice . 0)) (VERTICAL_BAR 
. (discrete_choice . 0)) (STRING_LITERAL .  100) (OTHERS .  99))
-      ((default . error) (SEMICOLON .  115))
+      ((default . error) (SEMICOLON .  142))
+      ((default . error) (END .  141))
+      ((default . error) (LEFT_PAREN .  19) (STRING_LITERAL .  22) (EXTERNAL . 
 17) (EXTERNAL_AS_LIST .  18) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (SEMICOLON . (identifier_opt . 0)) (QUOTE . 
(identifier_opt . 0)) (IDENTIFIER .  21) (PROJECT .  20))
+      ((default . error) (LEFT_PAREN .  19) (STRING_LITERAL .  22) (EXTERNAL . 
 17) (EXTERNAL_AS_LIST .  18) (DOT . (identifier_opt . 0)) (AMPERSAND . 
(identifier_opt . 0)) (SEMICOLON . (identifier_opt . 0)) (QUOTE . 
(identifier_opt . 0)) (IDENTIFIER .  21) (PROJECT .  20))
+      ((default . error) (END . (declarative_items_opt . 0)) (WHEN . 
(declarative_items_opt . 0)) (TYPE .  58) (IDENTIFIER .  59) (NULL .  56) (CASE 
.  54) (FOR .  55) (PACKAGE .  57))
+      ((default . error) (EQUAL_GREATER . (discrete_choice . 0)) (VERTICAL_BAR 
. (discrete_choice . 0)) (STRING_LITERAL .  115) (OTHERS .  114))
+      ((default . error) (SEMICOLON .  136))
       ((default . error) (WHEN . (case_statement . 0)) (END . (case_statement 
. 0)) (IDENTIFIER . (case_statement . 0)) (TYPE . (case_statement . 0)) 
(PACKAGE . (case_statement . 0)) (NULL . (case_statement . 0)) (FOR . 
(case_statement . 0)) (CASE . (case_statement . 0)))
       ((default . error) (EQUAL_GREATER . (discrete_choice_list . 1)) 
(VERTICAL_BAR . (discrete_choice_list . 1)))
-      ((default . error) (END . (case_item . 0)) (WHEN . (case_item . 0)) 
(TYPE .  56) (IDENTIFIER .  57) (NULL .  54) (CASE .  52) (FOR .  53) (PACKAGE 
.  55))
-      ((default . error) (AMPERSAND .  39) (SEMICOLON .  120))
+      ((default . error) (END . (case_item . 0)) (WHEN . (case_item . 0)))
+      ((default . error) (AMPERSAND .  41) (SEMICOLON .  145))
+      ((default . error) (AMPERSAND .  41) (SEMICOLON .  144))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  21))
       ((default . error) (WHEN . (package_spec . 0)) (END . (package_spec . 
0)) (IDENTIFIER . (package_spec . 0)) (TYPE . (package_spec . 0)) (PACKAGE . 
(package_spec . 0)) (NULL . (package_spec . 0)) (FOR . (package_spec . 0)) 
(CASE . (package_spec . 0)))
-      ((default . error) (WHEN . (attribute_declaration . 1)) (CASE . 
(attribute_declaration . 1)) (FOR . (attribute_declaration . 1)) (NULL . 
(attribute_declaration . 1)) (PACKAGE . (attribute_declaration . 1)) (TYPE . 
(attribute_declaration . 1)) (IDENTIFIER . (attribute_declaration . 1)) (END . 
(attribute_declaration . 1)))]
-     [((compilation_unit . 8)(context_clause . 9)(context_clause_opt . 
10)(simple_project_declaration . 11)(with_clause . 12))
+      ((default . error) (SEMICOLON .  146))
+      ((default . error) (WHEN . (attribute_declaration . 2)) (CASE . 
(attribute_declaration . 2)) (FOR . (attribute_declaration . 2)) (NULL . 
(attribute_declaration . 2)) (PACKAGE . (attribute_declaration . 2)) (TYPE . 
(attribute_declaration . 2)) (IDENTIFIER . (attribute_declaration . 2)) (END . 
(attribute_declaration . 2)))
+      ((default . error) (WHEN . (attribute_declaration . 1)) (CASE . 
(attribute_declaration . 1)) (FOR . (attribute_declaration . 1)) (NULL . 
(attribute_declaration . 1)) (PACKAGE . (attribute_declaration . 1)) (TYPE . 
(attribute_declaration . 1)) (IDENTIFIER . (attribute_declaration . 1)) (END . 
(attribute_declaration . 1)))
+      ((default . error) (WHEN . (package_extension . 0)) (END . 
(package_extension . 0)) (IDENTIFIER . (package_extension . 0)) (TYPE . 
(package_extension . 0)) (PACKAGE . (package_extension . 0)) (NULL . 
(package_extension . 0)) (FOR . (package_extension . 0)) (CASE . 
(package_extension . 0)))]
+     [((compilation_unit . 8)(context_clause . 9)(context_clause_opt . 
10)(project_extension . 11)(simple_project_declaration . 12)(with_clause . 13))
+      nil
+      nil
+      nil
+      nil
+      ((identifier_opt . 34))
+      nil
+      ((aggregate . 23)(attribute_prefix . 24)(attribute_reference . 
25)(expression . 26)(external_value . 27)(identifier_opt . 28)(name . 
29)(string_expression . 30)(string_primary . 31)(string_list . 32)(term . 33))
+      nil
+      ((with_clause . 15))
+      ((project_qualifier_opt . 14))
+      nil
+      nil
+      nil
+      ((project_declaration_opt . 48)(project_extension . 
11)(simple_project_declaration . 12))
+      nil
+      nil
+      ((aggregate . 47))
+      ((aggregate . 46))
+      ((aggregate . 23)(attribute_prefix . 24)(attribute_reference . 
25)(expression . 26)(external_value . 27)(identifier_opt . 28)(name . 
29)(string_expression . 30)(string_primary . 31)(string_list . 44)(term . 33))
+      nil
+      nil
+      nil
+      nil
+      nil
+      nil
+      nil
+      nil
+      nil
+      nil
       nil
       nil
       nil
       nil
-      ((identifier_opt . 33))
       nil
-      ((aggregate . 22)(attribute_prefix . 23)(attribute_reference . 
24)(expression . 25)(external_value . 26)(identifier_opt . 27)(name . 
28)(string_expression . 29)(string_primary . 30)(string_list . 31)(term . 32))
       nil
-      ((with_clause . 14))
-      ((project_qualifier_opt . 13))
       nil
+      ((attribute_declaration . 60)(case_statement . 61)(declarative_item . 
62)(declarative_items . 63)(declarative_items_opt . 64)(package_declaration . 
65)(package_spec . 66)(package_extension . 67)(package_renaming . 
68)(simple_declarative_item . 69)(typed_string_declaration . 70))
+      ((aggregate . 23)(attribute_prefix . 24)(attribute_reference . 
25)(expression . 53)(external_value . 27)(identifier_opt . 28)(name . 
29)(string_expression . 30)(string_primary . 31)(term . 33))
       nil
-      ((project_declaration_opt . 46)(simple_project_declaration . 11))
       nil
+      ((aggregate . 23)(attribute_prefix . 24)(attribute_reference . 
25)(external_value . 27)(identifier_opt . 28)(name . 29)(string_expression . 
30)(string_primary . 31)(term . 51))
       nil
-      ((aggregate . 45))
-      ((aggregate . 44))
-      ((aggregate . 22)(attribute_prefix . 23)(attribute_reference . 
24)(expression . 25)(external_value . 26)(identifier_opt . 27)(name . 
28)(string_expression . 29)(string_primary . 30)(string_list . 42)(term . 32))
       nil
       nil
+      ((aggregate . 23)(attribute_prefix . 24)(attribute_reference . 
25)(expression . 26)(external_value . 27)(identifier_opt . 28)(name . 
29)(string_expression . 30)(string_primary . 31)(string_list . 44)(term . 33))
       nil
       nil
       nil
@@ -358,47 +432,52 @@
       nil
       nil
       nil
+      ((identifier_opt . 28)(name . 82))
       nil
       nil
+      ((identifier_opt . 78))
       nil
       nil
       nil
       nil
-      ((attribute_declaration . 58)(case_statement . 59)(declarative_item . 
60)(declarative_items . 61)(package_declaration . 62)(package_spec . 
63)(simple_declarative_item . 64)(typed_string_declaration . 65))
-      ((aggregate . 22)(attribute_prefix . 23)(attribute_reference . 
24)(expression . 51)(external_value . 26)(identifier_opt . 27)(name . 
28)(string_expression . 29)(string_primary . 30)(term . 32))
       nil
+      ((attribute_declaration . 60)(case_statement . 61)(declarative_item . 
74)(package_declaration . 65)(package_spec . 66)(package_extension . 
67)(package_renaming . 68)(simple_declarative_item . 
69)(typed_string_declaration . 70))
       nil
-      ((aggregate . 22)(attribute_prefix . 23)(attribute_reference . 
24)(external_value . 26)(identifier_opt . 27)(name . 28)(string_expression . 
29)(string_primary . 30)(term . 49))
       nil
       nil
       nil
-      ((aggregate . 22)(attribute_prefix . 23)(attribute_reference . 
24)(expression . 25)(external_value . 26)(identifier_opt . 27)(name . 
28)(string_expression . 29)(string_primary . 30)(string_list . 42)(term . 32))
       nil
       nil
       nil
       nil
+      ((attribute_declaration . 60)(case_statement . 61)(declarative_item . 
62)(declarative_items . 63)(declarative_items_opt . 96)(package_declaration . 
65)(package_spec . 66)(package_extension . 67)(package_renaming . 
68)(simple_declarative_item . 69)(typed_string_declaration . 70))
+      ((identifier_opt . 95))
       nil
       nil
+      ((aggregate . 23)(attribute_prefix . 24)(attribute_reference . 
25)(expression . 93)(external_value . 27)(identifier_opt . 28)(name . 
29)(string_expression . 30)(string_primary . 31)(term . 33))
       nil
       nil
-      ((identifier_opt . 27)(name . 74))
       nil
       nil
-      ((identifier_opt . 71))
       nil
       nil
       nil
       nil
+      ((case_item . 109)(case_items . 110))
       nil
-      ((attribute_declaration . 58)(case_statement . 59)(declarative_item . 
67)(package_declaration . 62)(package_spec . 63)(simple_declarative_item . 
64)(typed_string_declaration . 65))
+      ((aggregate . 23)(attribute_prefix . 24)(attribute_reference . 
25)(expression . 106)(external_value . 27)(identifier_opt . 28)(name . 
29)(string_expression . 30)(string_primary . 31)(term . 33))
       nil
+      ((identifier_opt . 28)(name . 104))
+      ((attribute_declaration . 60)(case_statement . 61)(declarative_item . 
62)(declarative_items . 63)(declarative_items_opt . 103)(package_declaration . 
65)(package_spec . 66)(package_extension . 67)(package_renaming . 
68)(simple_declarative_item . 69)(typed_string_declaration . 70))
+      ((identifier_opt . 28)(name . 102))
+      ((aggregate . 101))
       nil
       nil
       nil
-      ((identifier_opt . 84))
       nil
+      ((identifier_opt . 126))
       nil
-      ((aggregate . 22)(attribute_prefix . 23)(attribute_reference . 
24)(expression . 82)(external_value . 26)(identifier_opt . 27)(name . 
28)(string_expression . 29)(string_primary . 30)(term . 32))
+      ((aggregate . 23)(attribute_prefix . 24)(attribute_reference . 
25)(expression . 125)(external_value . 27)(identifier_opt . 28)(name . 
29)(string_expression . 30)(string_primary . 31)(term . 33))
       nil
       nil
       nil
@@ -406,26 +485,22 @@
       nil
       nil
       nil
-      ((case_item . 94)(case_items . 95))
       nil
-      ((aggregate . 22)(attribute_prefix . 23)(attribute_reference . 
24)(expression . 91)(external_value . 26)(identifier_opt . 27)(name . 
28)(string_expression . 29)(string_primary . 30)(term . 32))
-      ((attribute_declaration . 58)(case_statement . 
59)(simple_declarative_item . 89)(simple_declarative_items . 90))
-      ((aggregate . 88))
+      ((discrete_choice . 116)(discrete_choice_list . 117))
       nil
+      ((case_item . 113))
       nil
       nil
       nil
-      ((aggregate . 22)(attribute_prefix . 23)(attribute_reference . 
24)(expression . 108)(external_value . 26)(identifier_opt . 27)(name . 
28)(string_expression . 29)(string_primary . 30)(term . 32))
       nil
       nil
       nil
-      ((attribute_declaration . 58)(case_statement . 
59)(simple_declarative_item . 106))
       nil
       nil
-      ((discrete_choice . 101)(discrete_choice_list . 102))
       nil
-      ((case_item . 98))
       nil
+      ((attribute_declaration . 60)(case_statement . 61)(declarative_item . 
62)(declarative_items . 63)(declarative_items_opt . 130)(package_declaration . 
65)(package_spec . 66)(package_extension . 67)(package_renaming . 
68)(simple_declarative_item . 69)(typed_string_declaration . 70))
+      ((identifier_opt . 129))
       nil
       nil
       nil
@@ -434,19 +509,19 @@
       nil
       nil
       nil
-      ((identifier_opt . 110))
+      ((aggregate . 23)(attribute_prefix . 24)(attribute_reference . 
25)(expression . 140)(external_value . 27)(identifier_opt . 28)(name . 
29)(string_expression . 30)(string_primary . 31)(term . 33))
+      ((aggregate . 23)(attribute_prefix . 24)(attribute_reference . 
25)(expression . 139)(external_value . 27)(identifier_opt . 28)(name . 
29)(string_expression . 30)(string_primary . 31)(term . 33))
+      ((attribute_declaration . 60)(case_statement . 61)(declarative_item . 
62)(declarative_items . 63)(declarative_items_opt . 138)(package_declaration . 
65)(package_spec . 66)(package_extension . 67)(package_renaming . 
68)(simple_declarative_item . 69)(typed_string_declaration . 70))
+      ((discrete_choice . 137))
       nil
       nil
       nil
       nil
       nil
-      ((aggregate . 22)(attribute_prefix . 23)(attribute_reference . 
24)(expression . 118)(external_value . 26)(identifier_opt . 27)(name . 
28)(string_expression . 29)(string_primary . 30)(term . 32))
-      ((attribute_declaration . 58)(case_statement . 59)(declarative_item . 
60)(declarative_items . 117)(package_declaration . 62)(package_spec . 
63)(simple_declarative_item . 64)(typed_string_declaration . 65))
-      ((discrete_choice . 116))
       nil
+      ((identifier_opt . 143))
       nil
       nil
-      ((attribute_declaration . 58)(case_statement . 59)(declarative_item . 
67)(package_declaration . 62)(package_spec . 63)(simple_declarative_item . 
64)(typed_string_declaration . 65))
       nil
       nil
       nil]))
diff --git a/gpr-mode.el b/gpr-mode.el
index 8e64eb7..4bdf5b3 100644
--- a/gpr-mode.el
+++ b/gpr-mode.el
@@ -1,4 +1,4 @@
-;;; gpr-mode.el --- Major-mode for editing GNAT project files  -*- 
lexical-binding:t -*-
+;; gpr-mode --- Major mode for editing GNAT project files  -*- 
lexical-binding:t -*-
 
 ;; Copyright (C) 2004, 2007, 2008, 2012-2015  Free Software Foundation, Inc.
 
@@ -46,19 +46,16 @@
     (define-key map [return]   'ada-indent-newline-indent)
     (define-key map "\C-c`"    'ada-show-secondary-error)
     ;; comment-dwim is in global map on M-;
-    (define-key map "\C-c\C-c" 'compile)
+    (define-key map "\C-c\C-c" 'ada-build-make)
     (define-key map "\C-c\C-e" 'gpr-expand)
     (define-key map "\C-c\C-f" 'gpr-show-parse-error)
     (define-key map "\C-c\C-i" 'gpr-indent-statement)
-            ;; FIXME (later): implement?
-    ;; (define-key map "\C-c\C-n" 'ada-next-statement-keyword)
-    ;; (define-key map "\C-c\C-p" 'ada-prev-statement-keyword)
     (define-key map "\C-c\C-o"          'ff-find-other-file)
     (define-key map "\C-c\C-P" 'gpr-set-as-project)
     (define-key map "\C-c\C-t" 'ada-case-read-all-exceptions)
     (define-key map "\C-c\C-w" 'ada-case-adjust-at-point)
     (define-key map "\C-c\C-y" 'ada-case-create-exception)
-    (define-key map "\C-c\C-\M-y" (lambda () (ada-case-create-exception nil 
nil t)))
+    (define-key map "\C-c\C-\M-y" 'ada-case-create-partial-exception)
     (define-key map "\M-n" 'skeleton-next-placeholder)
     (define-key map "\M-p" 'skeleton-prev-placeholder)
     map
@@ -76,6 +73,7 @@
 
     ["Customize"     (customize-group 'ada)];; we reuse the Ada indentation 
options
     ["------"        nil nil]
+    ["Build current project"       ada-build-make                   t]
     ["Find and select project ..." ada-build-prompt-select-prj-file t]
     ["Select project ..."          ada-prj-select                   t]
     ["Parse and select current file" gpr-set-as-project             t]
@@ -131,11 +129,38 @@ Function is called with no arguments.")
   (when gpr-indent-statement
     (funcall gpr-indent-statement)))
 
+(defconst gpr-casing-keywords
+  '(
+    "abstract"
+    "aggregate"
+    "case"
+    "configuration"
+    "end"
+    "extends"
+    "external"
+    "external_as_list"
+    "for"
+    "is"
+    "library"
+    "limited"
+    "null"
+    "others"
+    "package"
+    "project"
+    "renames"
+    "standard"
+    "type"
+    "use"
+    "when"
+    "with"
+    )
+  "List of gpr mode keywords for auto-casing.")
+
 (defvar gpr-font-lock-keywords
   (progn
     (list
      ;;
-     ;; keyword plus name.
+     ;; keyword plus name. FIXME: move to grammar action, use gpr-keywords 
here (see ada-font-lock-keywords).
      (list (concat
            "\\<\\("
            "package\\|"
@@ -148,8 +173,10 @@ Function is called with no arguments.")
      ;; Main keywords
      (list (concat "\\<"
                   (regexp-opt
-                   '("abstract" "aggregate" "case" "configuration" "external" 
"is" "library" "null" "others"
-                     "renames" "standard" "type" "use" "when" "with") t)
+                   '("abstract" "aggregate" "case" "configuration" "extends"
+                      "external" "external_as_list" "is" "library" "null"
+                      "others" "renames" "standard" "type" "use" "when" "with")
+                   t)
                   "\\>")
           '(1 font-lock-keyword-face))
      ;;
@@ -207,6 +234,7 @@ of the package or project point is in or just after, or 
nil.")
     (end-of-line 1)
     (gpr-which-function)))
 
+(declare-function gpr-query-kill-all-sessions "gpr-query.el" nil)
 (defun gpr-set-as-project (&optional file)
   "Set FILE (default current buffer file) as Emacs project file."
   (interactive)
@@ -231,7 +259,9 @@ of the package or project point is in or just after, or 
nil.")
   (setq mode-name "GNAT Project")
   (use-local-map gpr-mode-map)
   (set-syntax-table ada-mode-syntax-table)
-  (set (make-local-variable 'syntax-begin-function) nil)
+  (when (boundp 'syntax-begin-function)
+    ;; obsolete in emacs-25.1
+    (set (make-local-variable 'syntax-begin-function) nil))
   (set 'case-fold-search t); gpr is case insensitive; the syntax parsing 
requires this setting
   (set (make-local-variable 'comment-start) "--")
   (set (make-local-variable 'comment-end) "")
@@ -240,6 +270,9 @@ of the package or project point is in or just after, or 
nil.")
 
   (set (make-local-variable 'require-final-newline) t)
 
+  (ada-case-activate-keys gpr-mode-map)
+  (set (make-local-variable 'ada-keywords) gpr-casing-keywords)
+
   (set (make-local-variable 'font-lock-defaults)
        '(gpr-font-lock-keywords
         nil t
diff --git a/gpr-mode.info b/gpr-mode.info
index a001029..48bcae5 100644
--- a/gpr-mode.info
+++ b/gpr-mode.info
@@ -1,4 +1,4 @@
-This is gpr-mode.info, produced by makeinfo version 5.2 from
+This is gpr-mode.info, produced by makeinfo version 6.0 from
 gpr-mode.texi.
 
 Copyright (C) 2013 Free Software Foundation, Inc.
diff --git a/gpr-query.el b/gpr-query.el
index 014d3c6..ccb980e 100644
--- a/gpr-query.el
+++ b/gpr-query.el
@@ -1,4 +1,4 @@
-;;; gpr-query.el --- Minor-mode for navigating sources using gpr_query  -*- 
lexical-binding:t -*-
+;; gpr-query.el --- Minor mode for navigating sources using gpr_query  -*- 
lexical-binding:t -*-
 ;;
 ;; gpr-query supports Ada and any gcc language that supports the
 ;; AdaCore -fdump-xref switch (which includes C, C++).
@@ -28,6 +28,8 @@
 ;;
 ;; M-x gpr-query
 
+(require 'ada-mode-compat-24.2)
+
 (require 'ada-mode) ;; for ada-prj-*, some other things
 (require 'gnat-core)
 (require 'cl-lib)
@@ -63,8 +65,6 @@
       (setf (gpr-query--session-process session)
            ;; gnatcoll-1.6 can't handle aggregate projects; M910-032
            ;; gpr_query can handle some aggregate projects, but not all
-           ;; FIXME: need good error message on bad project file:
-           ;;          "can't handle aggregate projects?")
            (start-process (concat "gpr_query " (buffer-name))
                           (gpr-query--session-buffer session)
                           "gpr_query"
@@ -72,10 +72,17 @@
       (set-process-query-on-exit-flag (gpr-query--session-process session) nil)
       (gpr-query-session-wait session)
 
-      ;; check for warnings about invalid directories etc
-      (goto-char (point-min))
-      (when (search-forward "warning:" nil t)
-       (error "gpr_query warnings"))
+      ;; Check for warnings about invalid directories etc. But some
+      ;; warnings are tolerable, so only abort if process actually
+      ;; died.
+      (if (process-live-p (gpr-query--session-process session))
+         (progn
+           (goto-char (point-min))
+           (when (search-forward "warning:" nil t)
+             (beep)
+             (message "gpr_query warnings")))
+
+       (error "gpr-query process failed to start"))
       )))
 
 (defun gpr-query--make-session ()
@@ -125,7 +132,7 @@
                    (not (re-search-forward gpr-query-prompt (point-max) 1))))
        (setq search-start (point));; don't search same text again
        (message (concat "running gpr_query ..." (make-string wait-count ?.)))
-       ;; FIXME: use --display-progress
+       ;; IMPROVEME: use --display-progress
        (accept-process-output process 1.0)
        (setq wait-count (1+ wait-count)))
       (if (process-live-p process)
@@ -202,16 +209,20 @@ Uses 'gpr_query'. Returns new list."
   src-dirs)
 
 (defun gpr-query-get-prj-dirs (prj-dirs)
-  "Append list of source dirs in current gpr project to PRJ-DIRS.
+  "Append list of project dirs in current gpr project to PRJ-DIRS.
 Uses 'gpr_query'. Returns new list."
 
   (with-current-buffer (gpr-query--session-buffer (gpr-query-cached-session))
     (gpr-query-session-send "project_path" t)
     (goto-char (point-min))
     (while (not (looking-at gpr-query-prompt))
-      (cl-pushnew (directory-file-name
-                   (buffer-substring-no-properties (point) (point-at-eol)))
-                  prj-dirs :test #'equal)
+      (cl-pushnew
+       (let ((dir (buffer-substring-no-properties (point) (point-at-eol))))
+        (if (string= dir ".")
+            (directory-file-name default-directory)
+            dir))
+       prj-dirs
+       :test #'equal)
       (forward-line 1))
     )
   prj-dirs)
@@ -219,7 +230,7 @@ Uses 'gpr_query'. Returns new list."
 (defconst gpr-query-ident-file-regexp
   ;; 
C:\Projects\GDS\work_dscovr_release\common\1553\gds-mil_std_1553-utf.ads:252:25
   ;; 
/Projects/GDS/work_dscovr_release/common/1553/gds-mil_std_1553-utf.ads:252:25
-  "\\(\\(?:.:\\\|/\\)[^:]*\\):\\([0123456789]+\\):\\([0123456789]+\\)"
+  "\\(\\(?:.:\\\\\\|/\\)[^:]*\\):\\([0123456789]+\\):\\([0123456789]+\\)"
   ;; 1                          2                   3
   "Regexp matching <file>:<line>:<column>")
 
@@ -231,10 +242,6 @@ Uses 'gpr_query'. Returns new list."
   (concat gpr-query-ident-file-regexp " (\\(.*\\))")
   "Regexp matching <file>:<line>:<column> (<type>)")
 
-;; debugging:
-;; in *compilation-gpr_query-refs*, run
-;;  (progn (set-text-properties (point-min)(point-max) 
nil)(compilation-parse-errors (point-min)(point-max) 
gpr-query-ident-file-regexp-alist))
-
 (defun gpr-query-compilation (identifier file line col cmd comp-err)
   "Run gpr_query IDENTIFIER:FILE:LINE:COL CMD,
 set compilation-mode with compilation-error-regexp-alist set to COMP-ERR."
@@ -243,42 +250,55 @@ set compilation-mode with compilation-error-regexp-alist 
set to COMP-ERR."
   ;; to each result in turn via `next-error'.
   (let ((cmd-1 (format "%s %s:%s:%d:%d" cmd identifier file line col))
        (result-count 0)
-       file line column)
+       target-file target-line target-col)
     (with-current-buffer (gpr-query--session-buffer (gpr-query-cached-session))
       (compilation-mode)
       (setq buffer-read-only nil)
       (set (make-local-variable 'compilation-error-regexp-alist) (list 
comp-err))
       (gpr-query-session-send cmd-1 t)
 
-      ;; point is at EOB. gpr_query returns one line per result plus prompt
+      ;; point is at EOB. gpr_query returns one line per result plus prompt, 
warnings
       (setq result-count (- (line-number-at-pos) 1))
 
-      (if (fboundp 'font-lock-ensure)
-          (font-lock-ensure)
-        (with-no-warnings (font-lock-fontify-buffer)))
-      ;; font-lock-fontify-buffer applies compilation-message text properties
-      ;; FIXME: Won't be needed in 24.5 any more, since compilation-next-error
-      ;; will apply compilation-message text properties on the fly.
-      ;; IMPROVEME: for some reason, next-error works, but the font
-      ;; colors are not right (no koolaid!) (fixed in 24.5?)
+      (font-lock-ensure)
+      ;; pre Emacs 25, font-lock-ensure applies compilation-message
+      ;; text properties
+      ;;
+      ;; post Emacs 25, compilation-next-error applies
+      ;; compilation-message text properties on the fly via
+      ;; compilation--ensure-parse. But that doesn't apply face text
+      ;; properties.
+      ;;
+      ;; IMPROVEME: next-error works, but the font colors are not
+      ;; right (bad regexp?)
 
       (goto-char (point-min))
+      (cond
+       ((looking-at "^warning: ")
+       (setq result-count (1- result-count))
+       (forward-line 1))
+       ((looking-at "^Error: entity not found")
+       (error (buffer-substring-no-properties (line-beginning-position) 
(line-end-position))))
+       )
 
       (cl-case result-count
        (0
         (error "gpr_query returned no results"))
        (1
-        (when (looking-at "^Error: entity not found")
-          (error (buffer-substring-no-properties (line-beginning-position) 
(line-end-position))))
-
         ;; just go there, don't display session-buffer. We have to
-        ;; fetch the compilation-message while in the session-buffer.
-        (let* ((msg (compilation-next-error 0 nil (point-min)))
-                ;; FIXME: '--' indicates internal-only; use compile-goto-error
-               (loc (compilation--message->loc msg)))
-          (setq file (caar (compilation--loc->file-struct loc))
-                line (caar (cddr (compilation--loc->file-struct loc)))
-                column (1- (compilation--loc->col loc)))
+        ;; fetch the compilation-message while in the
+        ;; session-buffer. and call ada-goot-source outside the
+        ;; with-current-buffer above.
+        (compilation--ensure-parse (point-max))
+        (let* ((msg (compilation-next-error 0))
+                ;; IMPROVEME: '--' indicates internal-only. But we can't
+                ;; use compile-goto-error, because that displays the
+                ;; session-buffer.
+               (loc (compilation--message->loc msg)))
+          (setq target-file (caar (compilation--loc->file-struct loc))
+                target-line (caar (cddr (compilation--loc->file-struct loc)))
+                target-col  (1- (compilation--loc->col loc))
+                )
           ))
 
        (t
@@ -287,18 +307,20 @@ set compilation-mode with compilation-error-regexp-alist 
set to COMP-ERR."
 
        ));; case, with-currrent-buffer
 
-    (if (> result-count 1)
-       ;; more than one result; display session buffer, goto first ref
-       ;;
-       ;; compilation-next-error-function assumes there is not an error
-       ;; at point-min; work around that by moving forward 0 errors for
-       ;; the first one. Unless the first line contains "warning: ".
-       (if (looking-at "^warning: ")
-           (next-error)
-         (next-error 0 t))
-
-      ;; just one result; go there
-      (ada-goto-source file line column nil))
+    (if (= result-count 1)
+       (ada-goto-source target-file target-line target-col nil)
+
+      ;; more than one result; display session buffer, goto first ref
+      ;;
+      ;; compilation-next-error-function assumes there is not an error
+      ;; at point-min; work around that by moving forward 0 errors for
+      ;; the first one. Unless the first line contains "warning: ".
+      (set-buffer next-error-last-buffer)
+      (goto-char (point-min))
+      (if (looking-at "^warning: ")
+         (next-error)
+       (next-error 0 t))
+      )
     ))
 
 (defun gpr-query-dist (found-line line found-col col)
@@ -373,8 +395,8 @@ buffer in another window."
     (define-key map "\C-c\C-i\C-p" 'ada-build-prompt-select-prj-file)
     (define-key map "\C-c\C-i\C-q" 'gpr-query-refresh)
     (define-key map "\C-c\C-i\C-r" 'gpr-query-show-references)
-    ;; FIXME: (define-key map "\C-c\M-d" 'gpr-query-parents)
-    ;; FIXME: overriding
+    ;; IMPROVEME: (define-key map "\C-c\M-d" 'gpr-query-parents)
+    ;; IMPROVEME: overriding
     map
   )  "Local keymap used for gpr query minor mode.")
 
@@ -397,7 +419,7 @@ buffer in another window."
 
 (define-minor-mode gpr-query
   "Minor mode for navigating sources using GNAT cross reference tool.
-Enable mode if ARG is positive"
+Enable mode if ARG is positive."
   :initial-value t
   :lighter       " gpr-query"   ;; mode line
 
diff --git a/gpr-skel.el b/gpr-skel.el
index 08a8d6d..6947845 100644
--- a/gpr-skel.el
+++ b/gpr-skel.el
@@ -1,4 +1,4 @@
-;;; gpr-skel.el --- an extension to Gpr mode for inserting statement skeletons 
 -*- lexical-binding:t -*-
+;; gpr-skel.el --- Extension to gpr-mode for inserting statement skeletons  
-*- lexical-binding:t -*-
 
 ;; Copyright (C) 2013-2015 Free Software Foundation, Inc.
 
@@ -41,11 +41,14 @@
 
 ;;;;; user variables, example skeletons intended to be overwritten
 
+(defgroup gpr nil
+  "Major mode for editing GNAT project files in Emacs."
+  :group 'languages)
+
 (defcustom gpr-skel-initial-string "{header}\n{project}"
   "String to insert in empty buffer.
 This could end in a token recognized by `gpr-skel-expand'."
   :type 'string
-  :group 'gpr                           ;FIXME: Unknown!
   :safe #'stringp)
 
 (define-skeleton gpr-skel-user-restricted
diff --git a/gpr-wisi.el b/gpr-wisi.el
index 67c625f..13c8dcd 100644
--- a/gpr-wisi.el
+++ b/gpr-wisi.el
@@ -1,8 +1,6 @@
-;;; gpr-wisi.el --- An indentation engine for gpr mode, using the wisent LALR 
parser  -*- lexical-binding:t -*-
+;; gpr-wisi.el --- Indentation engine for gpr mode, using the wisi parser  -*- 
lexical-binding:t -*-
 ;;
-;; [1] GNAT user guide (info "gnat_ugn")
-;;
-;; Copyright (C) 2013-2015 Free Software Foundation, Inc.
+;; Copyright (C) 2013 - 2015 Free Software Foundation, Inc.
 ;;
 ;; Author: Stephen Leake <stephen_leake@member.fsf.org>
 ;;
@@ -77,7 +75,6 @@ or containing ancestor of CACHE that is at a line beginning."
        (block-middle
         (wisi-indent-start
          (if (eq (wisi-cache-token cache) 'WHEN) ada-indent-when 0)
-         ;; FIXME (later): need test of ada-indent-when in gpr
          cache))
        (close-paren (wisi-indent-paren 0))
        (open-paren nil); let after-keyword handle it



reply via email to

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