]> code.delx.au - gnu-emacs-elpa/commitdiff
ada-mode 5.1.3, wisi 1.0.4
authorStephen Leake <stephen_leake@stephe-leake.org>
Sat, 19 Apr 2014 13:54:29 +0000 (08:54 -0500)
committerStephen Leake <stephen_leake@stephe-leake.org>
Sat, 19 Apr 2014 13:54:29 +0000 (08:54 -0500)
18 files changed:
packages/ada-mode/NEWS
packages/ada-mode/README
packages/ada-mode/ada-build.el
packages/ada-mode/ada-fix-error.el
packages/ada-mode/ada-gnat-compile.el
packages/ada-mode/ada-gnat-xref.el
packages/ada-mode/ada-grammar-wy.el
packages/ada-mode/ada-mode.el
packages/ada-mode/ada-mode.info
packages/ada-mode/ada-skel.el
packages/ada-mode/ada-wisi.el
packages/ada-mode/gnat-core.el
packages/ada-mode/gnat-inspect.el
packages/ada-mode/gpr-mode.el
packages/ada-mode/gpr-query.el [new file with mode: 0755]
packages/ada-mode/gpr-skel.el
packages/wisi/NEWS
packages/wisi/wisi.el

index 786c58c76ae9eade3eaaaa23811d8144e709342d..8f6f7b05b6a23a2a167430ec71c531ac95ed5fec 100755 (executable)
@@ -7,6 +7,21 @@ 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.
 
 \f
+* Ada mode 5.1.3
+19 Apr 2014
+
+** more GNAT error message auto-fixes
+
+** support aspects on subprogram declarations; format same as SPARK examples.
+
+** fix bug in ada-syntax-propertize that caused query-replace to screw up
+
+** inhibit reparse due to case adjust; case adjust entire buffer is
+   now _much_ faster.
+
+** Non-ASCII characters supported in Ada mode buffers, including GNAT
+   bracket notation.
+
 * Ada mode 5.1.2
 16 Mar 2014
 
index 7a6e7cfdddc5aa5ce6bfd88dbdb09642b4775494..121282188dc316856cf6ac69169bba0652bc9b70 100755 (executable)
@@ -1,4 +1,4 @@
-Emacs Ada mode version 5.1.2
+Emacs Ada mode version 5.1.3
 
 Ada mode requires Emacs 24.2 or greater
 
@@ -57,8 +57,8 @@ to build gnatinspect:
 
 
 gnatinspect references:
-    gnatcoll-1.6w-src/docs/xref.rst
-    gnatcoll-1.6w-src/src/tools/gnatinspect.adb
+    gnatcoll-1.6-src/docs/xref.rst
+    gnatcoll-1.6-src/src/tools/gnatinspect.adb
 
 debugging gnatinspect:
     verbosity in .gnatdebug:
index 5ed84fed51532231bb0266a7e82d8f1b51d05c82..5a5af5fbcc3a4ca6fae85d4821efed64445bd384 100755 (executable)
@@ -141,7 +141,7 @@ including the directory and extension."
     )))
 
 (defun ada-build-select-default-prj ()
-  "Create and select a new default project, with current buffer as main program."
+  "Create and select a new default project."
   (let ((prj-file (expand-file-name "default.adp"))
        project)
 
index 24c4e124a27c62698cc05cf607a44895410c6e0e..e8115fa38f5579e14414df44914a4d54ab7de326 100755 (executable)
@@ -144,8 +144,8 @@ point and return nil.")
   "Get compilation message at point.
 Compatible with Emacs 23.4 and 24.x."
   (cl-case emacs-major-version
-    (23 (get-text-property (point) 'message))
-    (24 (get-text-property (point) 'compilation-message))))
+    (23 (get-text-property (line-beginning-position) 'message))
+    (24 (get-text-property (line-beginning-position) 'compilation-message))))
 
 (defun ada-fix-compiler-error ()
   "Attempt to fix the current compiler error. Leave point at fixed code."
index cf1fe8c20f01f7b84b708949af62a50f40ad0830..8036f80a4a64373c36ea8d091d0f706d12a38d73 100755 (executable)
@@ -6,7 +6,7 @@
 ;;
 ;; GNAT is provided by AdaCore; see http://libre.adacore.com/
 ;;
-;;; Copyright (C) 2012, 2013  Free Software Foundation, Inc.
+;;; Copyright (C) 2012 - 2014  Free Software Foundation, Inc.
 ;;
 ;; Author: Stephen Leake <stephen_leake@member.fsf.org>
 ;; Maintainer: Stephen Leake <stephen_leake@member.fsf.org>
@@ -51,63 +51,63 @@ For `compilation-filter-hook'."
     ;; `compilation-mode-font-lock-keywords'.
     ;;
     ;; compilation-filter might insert partial lines, or it might insert multiple lines
-    (when (bolp)
-      (while (not (eobp))
-       ;; We don't want 'next-error' to always go to secondary
-       ;; references, so we _don't_ set 'compilation-message text
-       ;; property. Instead, we set 'ada-secondary-error, so
-       ;; `ada-goto-secondary-error' will handle it. We also set
-       ;; fonts, so the user can see the reference.
-
-       ;; typical secondary references look like:
-       ;;
-       ;; trivial_productions_test.adb:57:77:   ==> in call to "Get" at \
-       ;;    opentoken-token-enumerated-analyzer.ads:88, instance at line 41
-       ;;
-       ;; c:/foo/bar/lookahead_test.adb:379:14: found type access to "Standard.String" defined at line 379
-       ;;
-       ;; lookahead_test.ads:23:09: "Name" has been inherited from subprogram at aunit-simple_test_cases.ads:47
-       ;;
-       ;; lalr.adb:668:37: non-visible declaration at analyzer.ads:60, instance at parser.ads:38
-       ;;
-       ;; save the file from the primary reference, look for "*.ad?:nn", "at line nnn"
-
-       (let (file)
-         (when (looking-at "^\\(\\(.:\\)?[^ :\n]+\\):")
-           (setq file (match-string-no-properties 1)))
-
-         (skip-syntax-forward "^-"); space following primary reference
-
-         (while (search-forward-regexp "\\s-\\(\\([^[:blank:]]+\\.[[:alpha:]]+\\):\\([0-9]+\\)\\)"
-                                       (line-end-position) t)
-
-           (goto-char (match-end 0))
-           (with-silent-modifications
-             (compilation--put-prop 2 'font-lock-face compilation-info-face); file
-             (compilation--put-prop 3 'font-lock-face compilation-line-face); line
-             (put-text-property
-              (match-beginning 0) (match-end 0)
-              'ada-secondary-error
-              (list
-               (match-string-no-properties 2); file
-               (string-to-number (match-string-no-properties 3)); line
-               1)); column
-             ))
-
-         (when (search-forward-regexp "\\(at line \\)\\([0-9]+\\)" (line-end-position) t)
-           (with-silent-modifications
-             (compilation--put-prop 1 'font-lock-face compilation-info-face); "at line" instead of file
-             (compilation--put-prop 2 'font-lock-face compilation-line-face); line
-             (put-text-property
-              (match-beginning 1) (match-end 1)
-              'ada-secondary-error
-              (list
-               file
-               (string-to-number (match-string-no-properties 2)); line
-               1)); column
-             ))
-         (forward-line 1))
-       ))
+    (goto-char (line-beginning-position))
+    (while (not (eobp))
+      ;; We don't want 'next-error' to always go to secondary
+      ;; references, so we _don't_ set 'compilation-message text
+      ;; property. Instead, we set 'ada-secondary-error, so
+      ;; `ada-goto-secondary-error' will handle it. We also set
+      ;; fonts, so the user can see the reference.
+
+      ;; typical secondary references look like:
+      ;;
+      ;; trivial_productions_test.adb:57:77:   ==> in call to "Get" at \
+      ;;    opentoken-token-enumerated-analyzer.ads:88, instance at line 41
+      ;;
+      ;; c:/foo/bar/lookahead_test.adb:379:14: found type access to "Standard.String" defined at line 379
+      ;;
+      ;; lookahead_test.ads:23:09: "Name" has been inherited from subprogram at aunit-simple_test_cases.ads:47
+      ;;
+      ;; lalr.adb:668:37: non-visible declaration at analyzer.ads:60, instance at parser.ads:38
+      ;;
+      ;; save the file from the primary reference, look for "*.ad?:nn", "at line nnn"
+
+      (let (file)
+       (when (looking-at "^\\(\\(.:\\)?[^ :\n]+\\):")
+         (setq file (match-string-no-properties 1)))
+
+       (skip-syntax-forward "^-"); space following primary reference
+
+       (while (search-forward-regexp "\\s-\\(\\([^[:blank:]]+\\.[[:alpha:]]+\\):\\([0-9]+\\)\\)"
+                                     (line-end-position) t)
+
+         (goto-char (match-end 0))
+         (with-silent-modifications
+           (compilation--put-prop 2 'font-lock-face compilation-info-face); file
+           (compilation--put-prop 3 'font-lock-face compilation-line-face); line
+           (put-text-property
+            (match-beginning 0) (match-end 0)
+            'ada-secondary-error
+            (list
+             (match-string-no-properties 2); file
+             (string-to-number (match-string-no-properties 3)); line
+             1)); column
+           ))
+
+       (when (search-forward-regexp "\\(at line \\)\\([0-9]+\\)" (line-end-position) t)
+         (with-silent-modifications
+           (compilation--put-prop 1 'font-lock-face compilation-info-face); "at line" instead of file
+           (compilation--put-prop 2 'font-lock-face compilation-line-face); line
+           (put-text-property
+            (match-beginning 1) (match-end 1)
+            'ada-secondary-error
+            (list
+             file
+             (string-to-number (match-string-no-properties 2)); line
+             1)); column
+           ))
+       (forward-line 1))
+      )
     ))
 
 (defun ada-gnat-debug-filter ()
@@ -198,27 +198,37 @@ Prompt user if more than one."
                 pos choices unit-name)
             ;; next line may contain a reference to where ident is
             ;; defined; if present, it will have been marked by
-            ;; ada-gnat-compilation-filter
+            ;; ada-gnat-compilation-filter:
+            ;;
+            ;; gnatquery.adb:255:13: "Has_Element" is not visible
+            ;; gnatquery.adb:255:13: non-visible declaration at a-convec.ads:68, instance at gnatcoll-arg_lists.ads:157
+            ;; gnatquery.adb:255:13: non-visible declaration at a-coorse.ads:62, instance at gnatcoll-xref.ads:912
+            ;; gnatquery.adb:255:13: non-visible declaration at a-coorse.ads:62, instance at gnatcoll-xref.ads:799
+            ;; gnatquery.adb:255:13: non-visible declaration at gnatcoll-xref.ads:314
             ;;
             ;; or the next line may contain "multiple use clauses cause hiding"
             ;;
             ;; the lines after that may contain alternate matches;
             ;; collect all, let user choose.
-            (while (not done)
-              (forward-line 1)
-              (unless (looking-at ".* multiple use clauses cause hiding")
-                (setq done (not
-                            (and
-                             (equal file-line-struct (ada-get-compilation-message))
-                             (let ((limit (1- (line-end-position))))
-                               ;; 1- because next compilation error is at next line beginning
+            (forward-line 1)
+            (unless (looking-at ".* multiple use clauses cause hiding")
+              (while (not done)
+                (let ((limit (1- (line-end-position))))
+                  ;; 1- because next compilation error is at next line beginning
+                  (setq done (not
+                              (and
+                               (equal file-line-struct (ada-get-compilation-message))
                                (setq pos (next-single-property-change (point) 'ada-secondary-error nil limit))
-                               (< pos limit)))))
-                (when (not done)
-                  (let* ((item (get-text-property pos 'ada-secondary-error))
-                         (unit-file (nth 0 item)))
-                    (add-to-list 'choices (ada-ada-name-from-file-name unit-file)))))
-              );; while
+                               (< pos limit))))
+                  (when (not done)
+                    (let* ((item (get-text-property pos 'ada-secondary-error))
+                           (unit-file (nth 0 item)))
+                      (add-to-list 'choices (ada-ada-name-from-file-name unit-file))
+                      (goto-char (1+ pos))
+                      (goto-char (1+ (next-single-property-change (point) 'ada-secondary-error nil limit)))
+                      (when (eolp) (forward-line 1))
+                      ))
+                  )));; unless while let
 
             (cond
              ((= 0 (length choices))
@@ -332,13 +342,21 @@ Prompt user if more than one."
           (let ((type (match-string 2)))
             (forward-line 1)
             (move-to-column message-column)
-            (when (or (looking-at "found type access")
-                      (looking-at "found type .*_Access_Type"))
+            (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-word 1)
               (insert ".all")
-              t)))
+              t)
+            )))
 
          ((looking-at "extra \".\" ignored")
           (set-buffer source-buffer)
@@ -486,17 +504,15 @@ Prompt user if more than one."
 
 ;;;; style errors
          ((looking-at "(style) \".*\" in wrong column")
-          (progn
-            (set-buffer source-buffer)
-            (funcall indent-line-function))
+          (set-buffer source-buffer)
+          (funcall indent-line-function)
           t)
 
          ((looking-at "(style) bad capitalization, mixed case required")
-          (progn
-            (set-buffer source-buffer)
-            (forward-word)
-            (ada-case-adjust-identifier)
-            t))
+          (set-buffer source-buffer)
+          (forward-word)
+          (ada-case-adjust-identifier)
+          t)
 
          ((looking-at (concat "(style) bad casing of " ada-gnat-quoted-name-regexp))
           (let ((correct (match-string-no-properties 1))
@@ -518,6 +534,11 @@ Prompt user if more than one."
           (funcall indent-line-function)
           t)
 
+         ((looking-at "(style) misplaced \"then\"")
+          (set-buffer source-buffer)
+          (delete-indentation)
+          t)
+
          ((looking-at "(style) missing \"overriding\" indicator")
           (set-buffer source-buffer)
           (cond
index 7144540ce962e10edfd4029eca00e200f35277a8..a1f5684d542d2b5bbdd4f7025636c6e973d71d70 100755 (executable)
@@ -1,7 +1,7 @@
 ;; Ada mode cross-reference functionality provided by the 'gnat xref'
 ;; tool. Includes related functions, such as gnatprep support.
 ;;
-;; These tools are all Ada-specific; see gnat-inspect for
+;; These tools are all Ada-specific; see gpr-query or gnat-inspect for
 ;; multi-language GNAT cross-reference tools.
 ;;
 ;; GNAT is provided by AdaCore; see http://libre.adacore.com/
@@ -52,7 +52,8 @@
     (setq col (+ 1 col))
     )
 
-  (let* ((arg (format "%s:%s:%d:%d" identifier file line col))
+  (let* ((file-non-dir (file-name-nondirectory file))
+        (arg (format "%s:%s:%d:%d" identifier file-non-dir line col))
         (switches (concat
                     "-a"
                     (when (ada-prj-get 'gpr_ext) (concat "--ext=" (ada-prj-get 'gpr_ext)))))
@@ -80,7 +81,7 @@
                (found-col  (string-to-number (match-string 3))))
            (if (not
                 (and
-                 (equal file found-file)
+                 (equal file-non-dir found-file)
                  (= line found-line)
                  (= col found-col)))
                ;; found other item
   (setq ada-make-package-body       'ada-gnat-make-package-body)
 
   (add-hook 'ada-syntax-propertize-hook 'gnatprep-syntax-propertize)
+  (add-hook 'ada-syntax-propertize-hook 'ada-gnat-syntax-propertize)
 
   ;; must be after indentation engine setup, because that resets the
   ;; indent function list.
index 09fab77d6bb46f6b33eb70d622c1584f6b6835eb..926862541d12a2a7b5e0e3d05866eb7080d72901 100755 (executable)
         (wisi-motion-action 1 5 '(6 EXCEPTION))))
        ((ACCEPT IDENTIFIER actual_parameter_part_opt parameter_profile_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'name-paren 7 'statement-end)
+        (wisi-statement-action 1 'statement-start 2 'name-paren 5 'statement-end)
         (wisi-containing-action 2 3)
         (wisi-containing-action 2 4))))
       (access_definition
         (wisi-statement-action 2 'open-paren 4 'close-paren 5 'statement-other)
         (wisi-containing-action 2 3)
         (wisi-containing-action 5 6))))
+      (aspect_clause
+       ((FOR attribute_reference USE expression SEMICOLON )
+        (progn
+        (wisi-statement-action 1 'statement-start 3 'statement-other 5 'statement-end)
+        (wisi-containing-action 3 4)))
+       ((enumeration_representation_clause ))
+       ((record_representation_clause ))
+       ((at_clause )))
+      (aspect_specification_opt
+       (())
+       ((WITH association_list )
+        (progn
+        (wisi-statement-action 1 'statement-other)
+        (wisi-containing-action 1 2))))
       (assignment_statement
        ((name COLON_EQUAL expression SEMICOLON )
         (progn
         (progn
         (wisi-statement-action 2 'list-break)
         (wisi-containing-action 2 3))))
-      (aspect_clause
-       ((FOR attribute_reference USE expression SEMICOLON )
-        (progn
-        (wisi-statement-action 1 'statement-start 3 'statement-other 5 'statement-end)
-        (wisi-containing-action 3 4)))
-       ((enumeration_representation_clause ))
-       ((record_representation_clause ))
-       ((at_clause )))
-      (aspect_specification_opt
-       (())
-       ((WITH association_list )
-        (progn
-        (wisi-statement-action 1 'statement-other)
-        (wisi-containing-action 1 2))))
       (asynchronous_select
        ((SELECT triggering_alternative THEN ABORT sequence_of_statements_opt END SELECT SEMICOLON )
         (progn
       (component_clause
        ((IDENTIFIER AT simple_expression RANGE simple_expression DOT_DOT simple_expression SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 8 'statement-end)
+        (wisi-statement-action 1 'statement-start 2 'statement-other 4 'statement-other 6 'statement-other 8 'statement-end)
         (wisi-containing-action 2 3)
         (wisi-containing-action 4 5)
         (wisi-containing-action 6 7))))
       (component_declaration
        ((identifier_list COLON component_definition COLON_EQUAL expression aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'statement-other 7 'statement-end)
+        (wisi-statement-action 1 'statement-start 2 'statement-other 4 'statement-other 7 'statement-end)
         (wisi-containing-action 2 3)
         (wisi-containing-action 4 5)
         (wisi-containing-action 4 6)))
        ((overriding_indicator_opt ENTRY IDENTIFIER LEFT_PAREN discrete_subtype_definition RIGHT_PAREN parameter_profile_opt aspect_specification_opt SEMICOLON )
         (progn
         (wisi-statement-action 1 'statement-start 2 'block-middle 4 'open-paren 6 'close-paren 8 'statement-end)
-        (wisi-containing-action 1 2)
         (wisi-containing-action 2 4)
         (wisi-containing-action 4 5)
         (wisi-containing-action 2 6)
        ((overriding_indicator_opt ENTRY IDENTIFIER parameter_profile_opt aspect_specification_opt SEMICOLON )
         (progn
         (wisi-statement-action 1 'statement-start 2 'block-middle 6 'statement-end)
-        (wisi-containing-action 1 2)
         (wisi-containing-action 2 4)
         (wisi-containing-action 2 5))))
       (enumeration_literal
        ((overriding_indicator_opt procedure_specification IS NULL aspect_specification_opt SEMICOLON )
         (progn
         (wisi-statement-action 1 'statement-start 2 'statement-other 3 'name 6 'statement-end)
-        (wisi-containing-action 1 2)
         (wisi-containing-action 2 5))))
       (object_declaration
        ((identifier_list COLON aliased_opt constant_opt subtype_indication COLON_EQUAL expression aspect_specification_opt SEMICOLON )
         (wisi-containing-action 1 6)))
        ((identifier_list COLON aliased_opt constant_opt access_definition COLON_EQUAL expression aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'statement-other 9 'statement-end)
+        (wisi-statement-action 1 'statement-start 2 'statement-other 6 'statement-other 9 'statement-end)
         (wisi-containing-action 2 5)
         (wisi-containing-action 6 7)
         (wisi-containing-action 1 8)))
         (wisi-containing-action 1 6)))
        ((identifier_list COLON aliased_opt constant_opt array_type_definition COLON_EQUAL expression aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'statement-other 9 'statement-end)
+        (wisi-statement-action 1 'statement-start 2 'statement-other 6 'statement-other 9 'statement-end)
         (wisi-containing-action 2 5)
         (wisi-containing-action 6 7)
         (wisi-containing-action 1 8)))
         (wisi-containing-action 4 5)
         (wisi-motion-action 1 4 6))))
       (parameter_and_result_profile
-       ((formal_part RETURN null_exclusion_opt name )
+       ((formal_part RETURN null_exclusion_opt name_opt )
         (progn
         (wisi-statement-action
         2 'return-1
         4 'type)
         (wisi-containing-action 2 4)))
-       ((RETURN name )
+       ((RETURN name_opt )
         (wisi-statement-action 1 'return-2 2 'type))
        ((formal_part RETURN access_definition )
         (progn
        ((PROTECTED BODY IDENTIFIER aspect_specification_opt IS protected_operation_item_list_opt END identifier_opt SEMICOLON )
         (progn
         (wisi-statement-action 1 'block-start 3 'name 5 'block-middle 7 'block-end 9 'statement-end)
-        (wisi-containing-action 2 3)
-        (wisi-containing-action 3 4)
+        (wisi-containing-action 1 3)
+        (wisi-containing-action 1 4)
         (wisi-containing-action 5 6)
         (wisi-motion-action 1 5 7))))
       (protected_body_stub
        ((PROTECTED BODY IDENTIFIER IS SEPARATE aspect_specification_opt SEMICOLON )
         (progn
         (wisi-statement-action 1 'statement-start 7 'statement-end)
-        (wisi-containing-action 2 3)
+        (wisi-containing-action 1 3)
         (wisi-containing-action 3 6))))
       (protected_definition
        ((declarative_part_opt PRIVATE declarative_part_opt END identifier_opt )
        ((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 11 'statement-end)
-        (wisi-containing-action 2 3)
+        (wisi-containing-action 1 3)
         (wisi-containing-action 3 5)
         (wisi-containing-action 9 10)))
        ((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 2 3)
+        (wisi-containing-action 1 3)
         (wisi-containing-action 3 5)
         (wisi-containing-action 6 7))))
       (qualified_expression
         (wisi-statement-action 1 'statement-start 2 'block-middle 6 'statement-end)
         (wisi-containing-action 2 5))))
       (subprogram_declaration
-       ((overriding_indicator_opt subprogram_specification SEMICOLON )
-        (wisi-statement-action 1 'statement-start 2 'block-middle 3 'statement-end)))
+       ((overriding_indicator_opt subprogram_specification aspect_specification_opt SEMICOLON )
+        (progn
+        (wisi-statement-action 1 'statement-start 2 'block-middle 4 'statement-end)
+        (wisi-containing-action 2 3))))
       (subprogram_default
        ((name ))
        ((BOX ))
       ((default . error) (WITH . (library_unit_renaming_declaration . 0)) (USE . (library_unit_renaming_declaration . 0)) (SEPARATE . (library_unit_renaming_declaration . 0)) (PROCEDURE . (library_unit_renaming_declaration . 0)) (PRIVATE . (library_unit_renaming_declaration . 0)) (PRAGMA . (library_unit_renaming_declaration . 0)) (PACKAGE . (library_unit_renaming_declaration . 0)) (OVERRIDING . (library_unit_renaming_declaration . 0)) (NOT . (library_unit_renaming_declaration . 0)) (LIMITED . (library_unit_renaming_declaration . 0)) (GENERIC . (library_unit_renaming_declaration . 0)) (FUNCTION . (library_unit_renaming_declaration . 0)) ($EOI . (library_unit_renaming_declaration . 0)))
       ((default . error) (SEMICOLON .  38))
       ((default . error) ($EOI . (context_item . 0)) (FUNCTION . (context_item . 0)) (GENERIC . (context_item . 0)) (LIMITED . (context_item . 0)) (NOT . (context_item . 0)) (OVERRIDING . (context_item . 0)) (PACKAGE . (context_item . 0)) (PRAGMA . (context_item . 0)) (PRIVATE . (context_item . 0)) (PROCEDURE . (context_item . 0)) (SEPARATE . (context_item . 0)) (USE . (context_item . 0)) (WITH . (context_item . 0)))
-      ((default . error) (RENAMES . (subprogram_specification . 0)) (WITH . (subprogram_specification . 0)) (IS . (subprogram_specification . 0)) (SEMICOLON . (subprogram_specification . 0)))
+      ((default . error) (RENAMES . (subprogram_specification . 0)) (IS . (subprogram_specification . 0)) (WITH . (subprogram_specification . 0)) (SEMICOLON . (subprogram_specification . 0)))
       ((default . error) ($EOI . (library_item . 2)) (FUNCTION . (library_item . 2)) (GENERIC . (library_item . 2)) (LIMITED . (library_item . 2)) (NOT . (library_item . 2)) (OVERRIDING . (library_item . 2)) (PACKAGE . (library_item . 2)) (PRAGMA . (library_item . 2)) (PRIVATE . (library_item . 2)) (PROCEDURE . (library_item . 2)) (SEPARATE . (library_item . 2)) (USE . (library_item . 2)) (WITH . (library_item . 2)))
       ((default . error) (WITH . (library_unit_declaration . 0)) (USE . (library_unit_declaration . 0)) (SEPARATE . (library_unit_declaration . 0)) (PROCEDURE . (library_unit_declaration . 0)) (PRIVATE . (library_unit_declaration . 0)) (PRAGMA . (library_unit_declaration . 0)) (PACKAGE . (library_unit_declaration . 0)) (OVERRIDING . (library_unit_declaration . 0)) (NOT . (library_unit_declaration . 0)) (LIMITED . (library_unit_declaration . 0)) (GENERIC . (library_unit_declaration . 0)) (FUNCTION . (library_unit_declaration . 0)) ($EOI . (library_unit_declaration . 0)))
       ((default . error) (WITH . (library_unit_renaming_declaration . 2)) (USE . (library_unit_renaming_declaration . 2)) (SEPARATE . (library_unit_renaming_declaration . 2)) (PROCEDURE . (library_unit_renaming_declaration . 2)) (PRIVATE . (library_unit_renaming_declaration . 2)) (PRAGMA . (library_unit_renaming_declaration . 2)) (PACKAGE . (library_unit_renaming_declaration . 2)) (OVERRIDING . (library_unit_renaming_declaration . 2)) (NOT . (library_unit_renaming_declaration . 2)) (LIMITED . (library_unit_renaming_declaration . 2)) (GENERIC . (library_unit_renaming_declaration . 2)) (FUNCTION . (library_unit_renaming_declaration . 2)) ($EOI . (library_unit_renaming_declaration . 2)))
       ((default . error) (USE . (package_declaration . 0)) (TYPE . (package_declaration . 0)) (TASK . (package_declaration . 0)) (SUBTYPE . (package_declaration . 0)) (PROTECTED . (package_declaration . 0)) (PROCEDURE . (package_declaration . 0)) (PRAGMA . (package_declaration . 0)) (PACKAGE . (package_declaration . 0)) (OVERRIDING . (package_declaration . 0)) (NOT . (package_declaration . 0)) (GENERIC . (package_declaration . 0)) (FUNCTION . (package_declaration . 0)) (FOR . (package_declaration . 0)) (ENTRY . (package_declaration . 0)) (IDENTIFIER . (package_declaration . 0)) (BEGIN . (package_declaration . 0)) (END . (package_declaration . 0)) (PRIVATE . (package_declaration . 0)) (WITH . (package_declaration . 0)) (SEPARATE . (package_declaration . 0)) (LIMITED . (package_declaration . 0)) ($EOI . (package_declaration . 0)))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (SEMICOLON .  126) (RENAMES .  127) (IS . (aspect_specification_opt . 0)) (WITH .  107))
+      ((default . error) (RENAMES .  126) (SEMICOLON . (aspect_specification_opt . 0)) (IS . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (SEMICOLON .  124))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (COMMA .  118) (SEMICOLON .  119))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (DOT .  86) (TICK .  87) (IS . (parameter_profile_opt . 0)) (WITH . (parameter_profile_opt . 0)) (SEMICOLON . (parameter_profile_opt . 0)) (LEFT_PAREN .  88))
+      ((default . error) (DOT .  86) (TICK .  87) (IS . (parameter_profile_opt . 0)) (SEMICOLON . (parameter_profile_opt . 0)) (WITH . (parameter_profile_opt . 0)) (LEFT_PAREN .  88))
       ((default . error) (FUNCTION . (generic_formal_part . 1)) (PROCEDURE . (generic_formal_part . 1)) (PACKAGE . (generic_formal_part . 1)) (PRAGMA .  7) (WITH .  76) (TYPE .  75) (IDENTIFIER .  71))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (COMMA .  94) (COLON .  93))
       ((default . error) (PACKAGE . (generic_formal_parameter_declaration . 4)) (PROCEDURE . (generic_formal_parameter_declaration . 4)) (FUNCTION . (generic_formal_parameter_declaration . 4)) (WITH . (generic_formal_parameter_declaration . 4)) (TYPE . (generic_formal_parameter_declaration . 4)) (PRAGMA . (generic_formal_parameter_declaration . 4)) (IDENTIFIER . (generic_formal_parameter_declaration . 4)))
       ((default . error) (DOT .  86) (TICK .  87) (RETURN .  89) (LEFT_PAREN .  88))
-      ((default . error) (IDENTIFIER .  222) (CHARACTER_LITERAL .  224) (STRING_LITERAL .  223) (ALL .  225))
-      ((default . error) (LEFT_PAREN .  217) (ACCESS .  214) (DELTA .  215) (DIGITS .  216) (MOD .  218) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (STRING_LITERAL .  48) (CHARACTER_LITERAL .  168) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (PLUS .  142) (MINUS .  141) (IDENTIFIER .  210) (OTHERS .  170) (ABS .  144) (NOT .  169) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ACCESS . (null_exclusion_opt . 0)) (NOT .  206))
+      ((default . error) (IDENTIFIER .  224) (CHARACTER_LITERAL .  226) (STRING_LITERAL .  225) (ALL .  227))
+      ((default . error) (LEFT_PAREN .  219) (ACCESS .  216) (DELTA .  217) (DIGITS .  218) (MOD .  220) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (STRING_LITERAL .  48) (CHARACTER_LITERAL .  169) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (PLUS .  143) (MINUS .  142) (IDENTIFIER .  212) (OTHERS .  171) (ABS .  145) (NOT .  170) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
+      ((default . error) (SEMICOLON . (name_opt . 0)) (WITH . (name_opt . 0)) (IS . (name_opt . 0)) (RENAMES . (name_opt . 0)) (COLON_EQUAL . (name_opt . 0)) (RIGHT_PAREN . (name_opt . 0)) (DO . (name_opt . 0)) (ACCESS . (null_exclusion_opt . 0)) (NOT .  207) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (DO . (name . 5)) (OF . (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 . (name . 5)) (ACCEPT . (name . 5)) (CHARACTER_LITERAL . (name . 5)) (STRING_LITERAL . (name . 5)) (IDENTIFIER . (name . 5)) (LESS_LESS . (name . 5)) (COLON_EQUAL . (name . 5)) (USE . (name . 5)) (PLUS . (name . 5)) (MINUS . (name . 5)) (AMPERSAND . (name . 5)) (SLASH . (name . 5)) (STAR . (name . 5)) (MOD . (name . 5)) (REM . (name . 5)) (STAR_STAR . (name . 5)) (XOR . (name . 5)) (OR . (name . 5)) (AND . (name . 5)) (IN . (name . 5)) (NOT . (name . 5)) (EQUAL . (name . 5)) (GREATER . (name . 5)) (GREATER_EQUAL . (name . 5)) (LESS . (name . 5)) (LESS_EQUAL . (name . 5)) (SLASH_EQUAL . (name . 5)) (DOT_DOT . (name . 5)) (THEN . (name . 5)) (RANGE . (name . 5)) (DIGITS . (name . 5)) (EQUAL_GREATER . (name . 5)) (ELSE . (name . 5)) (ELSIF . (name . 5)) (BAR . (name . 5)) (RIGHT_PAREN . (name . 5)) (RETURN . (name . 5)) (RENAMES . (name . 5)) (IS . (name . 5)) (WITH . (name . 5)) (TICK . (name . 5)) (DOT . (name . 5)) (LEFT_PAREN . (name . 5)) (SEMICOLON . (name . 5)) (COMMA . (name . 5)))
-      ((default . error) (RETURN .  205))
-      ((default . error) (RENAMES . (subprogram_specification . 1)) (WITH . (subprogram_specification . 1)) (IS . (subprogram_specification . 1)) (SEMICOLON . (subprogram_specification . 1)))
-      ((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 .  202) (OUT .  203))
-      ((default . error) (IDENTIFIER .  201))
+      ((default . error) (RETURN .  206))
+      ((default . error) (RENAMES . (subprogram_specification . 1)) (IS . (subprogram_specification . 1)) (WITH . (subprogram_specification . 1)) (SEMICOLON . (subprogram_specification . 1)))
+      ((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 .  203) (OUT .  204))
+      ((default . error) (IDENTIFIER .  202))
       ((default . error) (WITH . (generic_formal_parameter_declarations . 1)) (TYPE . (generic_formal_parameter_declarations . 1)) (PRAGMA . (generic_formal_parameter_declarations . 1)) (IDENTIFIER . (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 .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (IS .  198) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (WITH . (discriminant_part_opt . 0)) (SEMICOLON . (discriminant_part_opt . 0)) (IS . (discriminant_part_opt . 0)) (LEFT_PAREN .  196))
+      ((default . error) (IS .  199) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
+      ((default . error) (WITH . (discriminant_part_opt . 0)) (SEMICOLON . (discriminant_part_opt . 0)) (IS . (discriminant_part_opt . 0)) (LEFT_PAREN .  197))
+      ((default . error) (DOT .  86) (TICK .  87) (RENAMES .  196) (LEFT_PAREN .  105))
       ((default . error) (DOT .  86) (TICK .  87) (RENAMES .  195) (LEFT_PAREN .  105))
       ((default . error) (DOT .  86) (TICK .  87) (RENAMES .  194) (LEFT_PAREN .  105))
-      ((default . error) (DOT .  86) (TICK .  87) (RENAMES .  193) (LEFT_PAREN .  105))
-      ((default . error) (COMMA .  118) (SEMICOLON .  192))
+      ((default . error) (COMMA .  118) (SEMICOLON .  193))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (NEW .  190))
-      ((default . error) (IDENTIFIER .  47) (STRING_LITERAL .  48) (CHARACTER_LITERAL .  168) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (PLUS .  142) (MINUS .  141) (OTHERS .  170) (ABS .  144) (NOT .  169) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (NEW .  191))
+      ((default . error) (IDENTIFIER .  47) (STRING_LITERAL .  48) (CHARACTER_LITERAL .  169) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (PLUS .  143) (MINUS .  142) (OTHERS .  171) (ABS .  145) (NOT .  170) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (SEMICOLON . ((association_opt . 0) (expression_opt . 0))) (IS . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  170) (IDENTIFIER .  47) (CHARACTER_LITERAL .  168) (STRING_LITERAL .  48) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  169) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (IS .  167))
+      ((default . error) (SEMICOLON . ((association_opt . 0) (expression_opt . 0))) (IS . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  171) (IDENTIFIER .  47) (CHARACTER_LITERAL .  169) (STRING_LITERAL .  48) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  170) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
+      ((default . error) (IS .  168))
       ((default . error) (DOT .  86) (TICK .  87) (IS . (aspect_specification_opt . 0)) (WITH .  107) (LEFT_PAREN .  105))
       ((default . error) (OR . (pragma . 1)) (THEN . (pragma . 1)) (WHEN . (pragma . 1)) (EXCEPTION . (pragma . 1)) (LESS_LESS . (pragma . 1)) (STRING_LITERAL . (pragma . 1)) (CHARACTER_LITERAL . (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)) (ELSE . (pragma . 1)) (ELSIF . (pragma . 1)) (SEPARATE . (pragma . 1)) (LIMITED . (pragma . 1)) ($EOI . (pragma . 1)) (WITH . (pragma . 1)) (PRIVATE . (pragma . 1)) (END . (pragma . 1)) (BEGIN . (pragma . 1)) (IDENTIFIER . (pragma . 1)) (ENTRY . (pragma . 1)) (FOR . (pragma . 1)) (FUNCTION . (pragma . 1)) (GENERIC . (pragma . 1)) (NOT . (pragma . 1)) (OVERRIDING . (pragma . 1)) (PACKAGE . (pragma . 1)) (PRAGMA . (pragma . 1)) (PROCEDURE . (pragma . 1)) (PROTECTED . (pragma . 1)) (SUBTYPE . (pragma . 1)) (TASK . (pragma . 1)) (TYPE . (pragma . 1)) (USE . (pragma . 1)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  143) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (SEMICOLON .  126))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  144) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (COMMA .  118) (SEMICOLON .  140))
       ((default . error) (DOT .  86) (TICK .  87) (IS . ( 104 (aspect_specification_opt . 0))) (WITH .  107) (LEFT_PAREN .  105))
       ((default . error) (RIGHT_PAREN . (parameter_profile_opt . 1)) (COLON_EQUAL . (parameter_profile_opt . 1)) (RENAMES . (parameter_profile_opt . 1)) (IS . (parameter_profile_opt . 1)) (DO . (parameter_profile_opt . 1)) (WITH . (parameter_profile_opt . 1)) (SEMICOLON . (parameter_profile_opt . 1)) (WHEN . (parameter_profile_opt . 1)))
-      ((default . error) (RENAMES . (procedure_specification . 0)) (IS . (procedure_specification . 0)) (WITH . (procedure_specification . 0)) (SEMICOLON . (procedure_specification . 0)))
+      ((default . error) (RENAMES . (procedure_specification . 0)) (IS . (procedure_specification . 0)) (SEMICOLON . (procedure_specification . 0)) (WITH . (procedure_specification . 0)))
       ((default . error) (DOT .  86) (TICK .  87) (RIGHT_PAREN .  139) (LEFT_PAREN .  105))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (WITH . (use_clause . 0)) (SEPARATE . (use_clause . 0)) (LIMITED . (use_clause . 0)) ($EOI . (use_clause . 0)) (PRIVATE . (use_clause . 0)) (END . (use_clause . 0)) (BEGIN . (use_clause . 0)) (IDENTIFIER . (use_clause . 0)) (ENTRY . (use_clause . 0)) (FOR . (use_clause . 0)) (FUNCTION . (use_clause . 0)) (GENERIC . (use_clause . 0)) (NOT . (use_clause . 0)) (OVERRIDING . (use_clause . 0)) (PACKAGE . (use_clause . 0)) (PRAGMA . (use_clause . 0)) (PROCEDURE . (use_clause . 0)) (PROTECTED . (use_clause . 0)) (SUBTYPE . (use_clause . 0)) (TASK . (use_clause . 0)) (TYPE . (use_clause . 0)) (USE . (use_clause . 0)))
       ((default . error) (SEMICOLON .  135))
       ((default . error) (WITH . (generic_package_declaration . 0)) (SEPARATE . (generic_package_declaration . 0)) (LIMITED . (generic_package_declaration . 0)) ($EOI . (generic_package_declaration . 0)) (END . (generic_package_declaration . 0)) (PRIVATE . (generic_package_declaration . 0)) (USE . (generic_package_declaration . 0)) (TYPE . (generic_package_declaration . 0)) (TASK . (generic_package_declaration . 0)) (SUBTYPE . (generic_package_declaration . 0)) (PROTECTED . (generic_package_declaration . 0)) (PROCEDURE . (generic_package_declaration . 0)) (PRAGMA . (generic_package_declaration . 0)) (PACKAGE . (generic_package_declaration . 0)) (OVERRIDING . (generic_package_declaration . 0)) (NOT . (generic_package_declaration . 0)) (GENERIC . (generic_package_declaration . 0)) (FUNCTION . (generic_package_declaration . 0)) (FOR . (generic_package_declaration . 0)) (ENTRY . (generic_package_declaration . 0)) (IDENTIFIER . (generic_package_declaration . 0)) (BEGIN . (generic_package_declaration . 0)))
       ((default . error) (DOT .  86) (TICK .  87) (IS . (aspect_specification_opt . 0)) (WITH .  107) (LEFT_PAREN .  105))
-      ((default . error) (END . (subprogram_declaration . 0)) (BEGIN . (subprogram_declaration . 0)) (IDENTIFIER . (subprogram_declaration . 0)) (ENTRY . (subprogram_declaration . 0)) (FOR . (subprogram_declaration . 0)) (PROTECTED . (subprogram_declaration . 0)) (SUBTYPE . (subprogram_declaration . 0)) (TASK . (subprogram_declaration . 0)) (TYPE . (subprogram_declaration . 0)) ($EOI . (subprogram_declaration . 0)) (FUNCTION . (subprogram_declaration . 0)) (GENERIC . (subprogram_declaration . 0)) (LIMITED . (subprogram_declaration . 0)) (NOT . (subprogram_declaration . 0)) (OVERRIDING . (subprogram_declaration . 0)) (PACKAGE . (subprogram_declaration . 0)) (PRAGMA . (subprogram_declaration . 0)) (PRIVATE . (subprogram_declaration . 0)) (PROCEDURE . (subprogram_declaration . 0)) (SEPARATE . (subprogram_declaration . 0)) (USE . (subprogram_declaration . 0)) (WITH . (subprogram_declaration . 0)))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (IS .  133))
-      ((default . error) (DOT .  86) (TICK .  87) (WITH . (parameter_profile_opt . 0)) (IS . ( 132 (parameter_profile_opt . 0))) (SEMICOLON . (parameter_profile_opt . 0)) (RENAMES . (parameter_profile_opt . 0)) (LEFT_PAREN .  88))
-      ((default . error) (DOT .  86) (TICK .  87) (IS .  131) (RETURN .  89) (LEFT_PAREN .  88))
-      ((default . error) (NEW .  380))
-      ((default . error) (NEW .  379))
-      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
+      ((default . error) (SEMICOLON .  132) (IS .  133))
+      ((default . error) (DOT .  86) (TICK .  87) (IS . ( 131 (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 .  86) (TICK .  87) (IS .  130) (RETURN .  89) (LEFT_PAREN .  88))
+      ((default . error) (NEW .  382))
+      ((default . error) (NEW .  381))
+      ((default . error) (TYPE . (subprogram_declaration . 0)) (TASK . (subprogram_declaration . 0)) (SUBTYPE . (subprogram_declaration . 0)) (PROTECTED . (subprogram_declaration . 0)) (FOR . (subprogram_declaration . 0)) (ENTRY . (subprogram_declaration . 0)) (IDENTIFIER . (subprogram_declaration . 0)) (BEGIN . (subprogram_declaration . 0)) (END . (subprogram_declaration . 0)) (WITH . (subprogram_declaration . 0)) (USE . (subprogram_declaration . 0)) (SEPARATE . (subprogram_declaration . 0)) (PROCEDURE . (subprogram_declaration . 0)) (PRIVATE . (subprogram_declaration . 0)) (PRAGMA . (subprogram_declaration . 0)) (PACKAGE . (subprogram_declaration . 0)) (OVERRIDING . (subprogram_declaration . 0)) (NOT . (subprogram_declaration . 0)) (LIMITED . (subprogram_declaration . 0)) (GENERIC . (subprogram_declaration . 0)) (FUNCTION . (subprogram_declaration . 0)) ($EOI . (subprogram_declaration . 0)))
+      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
       ((default . error) (DOT .  86) (TICK .  87) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107) (LEFT_PAREN .  105))
       ((default . error) (BEGIN . (generic_subprogram_declaration . 0)) (IDENTIFIER . (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_declaration . 0)) (PROTECTED . (generic_subprogram_declaration . 0)) (SUBTYPE . (generic_subprogram_declaration . 0)) (TASK . (generic_subprogram_declaration . 0)) (TYPE . (generic_subprogram_declaration . 0)) (USE . (generic_subprogram_declaration . 0)) (PRIVATE . (generic_subprogram_declaration . 0)) (END . (generic_subprogram_declaration . 0)) ($EOI . (generic_subprogram_declaration . 0)) (LIMITED . (generic_subprogram_declaration . 0)) (SEPARATE . (generic_subprogram_declaration . 0)) (WITH . (generic_subprogram_declaration . 0)))
-      ((default . error) (COMMA .  118) (SEMICOLON .  376))
+      ((default . error) (COMMA .  118) (SEMICOLON .  378))
       ((default . error) (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)) (IDENTIFIER . (use_clause . 2)) (BEGIN . (use_clause . 2)) (END . (use_clause . 2)) (PRIVATE . (use_clause . 2)) ($EOI . (use_clause . 2)) (LIMITED . (use_clause . 2)) (SEPARATE . (use_clause . 2)) (WITH . (use_clause . 2)))
       ((default . error) (DOT .  86) (TICK .  87) (SEMICOLON . (name_list . 1)) (COMMA . (name_list . 1)) (LEFT_PAREN .  105))
-      ((default . error) (PROTECTED .  372) (TASK .  373) (PACKAGE .  371) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)))
+      ((default . error) (PROTECTED .  374) (TASK .  375) (PACKAGE .  373) (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 .  132))
       ((default . error) (IDENTIFIER . (unary_adding_operator . 1)) (STRING_LITERAL . (unary_adding_operator . 1)) (CHARACTER_LITERAL . (unary_adding_operator . 1)) (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)))
       ((default . error) (IDENTIFIER . (unary_adding_operator . 0)) (STRING_LITERAL . (unary_adding_operator . 0)) (CHARACTER_LITERAL . (unary_adding_operator . 0)) (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)))
-      ((default . error) (EQUAL_GREATER .  369) (RIGHT_PAREN . (name . 0)) (COMMA . (name . 0)) (STAR_STAR . (name . 0)) (REM . (name . 0)) (MOD . (name . 0)) (STAR . (name . 0)) (SLASH . (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 . (name . 0)) (DOT . (name . 0)) (TICK . ( 370 (name . 0))))
-      ((default . error) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (IF .  364) (CASE .  362) (FOR .  363) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (PLUS .  142) (MINUS .  141) (OTHERS .  170) (ABS .  144) (NOT .  169) (IDENTIFIER .  47) (CHARACTER_LITERAL .  168) (STRING_LITERAL .  48) (NULL .  226) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (EQUAL_GREATER .  371) (RIGHT_PAREN . (name . 0)) (COMMA . (name . 0)) (STAR_STAR . (name . 0)) (REM . (name . 0)) (MOD . (name . 0)) (STAR . (name . 0)) (SLASH . (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 . (name . 0)) (DOT . (name . 0)) (TICK . ( 372 (name . 0))))
+      ((default . error) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (IF .  366) (CASE .  364) (FOR .  365) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (PLUS .  143) (MINUS .  142) (OTHERS .  171) (ABS .  145) (NOT .  170) (IDENTIFIER .  47) (CHARACTER_LITERAL .  169) (STRING_LITERAL .  48) (NULL .  228) (NEW .  147) (LEFT_PAREN .  146))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((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_EQUAL . (primary . 0)) (LESS . (primary . 0)) (LESS_EQUAL . (primary . 0)) (SLASH_EQUAL . (primary . 0)) (AND . (primary . 0)) (OR . (primary . 0)) (XOR . (primary . 0)) (SEMICOLON . (primary . 0)) (PLUS . (primary . 0)) (MINUS . (primary . 0)) (AMPERSAND . (primary . 0)) (DOT_DOT . (primary . 0)) (SLASH . (primary . 0)) (STAR . (primary . 0)) (MOD . (primary . 0)) (REM . (primary . 0)) (STAR_STAR . (primary . 0)))
       ((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_EQUAL . (primary . 1)) (LESS . (primary . 1)) (LESS_EQUAL . (primary . 1)) (SLASH_EQUAL . (primary . 1)) (AND . (primary . 1)) (OR . (primary . 1)) (XOR . (primary . 1)) (SEMICOLON . (primary . 1)) (PLUS . (primary . 1)) (MINUS . (primary . 1)) (AMPERSAND . (primary . 1)) (DOT_DOT . (primary . 1)) (SLASH . (primary . 1)) (STAR . (primary . 1)) (MOD . (primary . 1)) (REM . (primary . 1)) (STAR_STAR . (primary . 1)))
       ((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 . (term . 0)) (SLASH_EQUAL . (term . 0)) (AND . (term . 0)) (OR . (term . 0)) (XOR . (term . 0)) (SEMICOLON . (term . 0)) (PLUS . (term . 0)) (MINUS . (term . 0)) (AMPERSAND . (term . 0)) (DOT_DOT . (term . 0)) (SLASH . (term . 0)) (STAR . (term . 0)) (MOD . (term . 0)) (REM . (term . 0)))
       ((default . error) (DOT .  86) (OF . (primary . 2)) (COLON_EQUAL . (primary . 2)) (DO . (primary . 2)) (LOOP . (primary . 2)) (BAR . (primary . 2)) (COMMA . (primary . 2)) (RIGHT_PAREN . (primary . 2)) (ELSIF . (primary . 2)) (ELSE . (primary . 2)) (EQUAL_GREATER . (primary . 2)) (DIGITS . (primary . 2)) (RANGE . (primary . 2)) (THEN . (primary . 2)) (DOT_DOT . (primary . 2)) (WITH . (primary . 2)) (IS . (primary . 2)) (IN . (primary . 2)) (NOT . (primary . 2)) (EQUAL . (primary . 2)) (GREATER . (primary . 2)) (GREATER_EQUAL . (primary . 2)) (LESS . (primary . 2)) (LESS_EQUAL . (primary . 2)) (SLASH_EQUAL . (primary . 2)) (AND . (primary . 2)) (OR . (primary . 2)) (XOR . (primary . 2)) (PLUS . (primary . 2)) (MINUS . (primary . 2)) (AMPERSAND . (primary . 2)) (SEMICOLON . (primary . 2)) (SLASH . (primary . 2)) (STAR . (primary . 2)) (MOD . (primary . 2)) (REM . (primary . 2)) (STAR_STAR . (primary . 2)) (TICK .  87) (LEFT_PAREN .  105))
       ((default . error) (RIGHT_PAREN . (pragma_argument_association_list . 0)) (COMMA . (pragma_argument_association_list . 0)))
-      ((default . error) (COMMA .  359) (RIGHT_PAREN .  360))
-      ((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)) (GREATER . (factor . 1)) (EQUAL . (factor . 1)) (NOT . (factor . 1)) (IN . (factor . 1)) (AND . (factor . 1)) (OR . (factor . 1)) (XOR . (factor . 1)) (SEMICOLON . (factor . 1)) (REM . (factor . 1)) (MOD . (factor . 1)) (STAR . (factor . 1)) (SLASH . (factor . 1)) (DOT_DOT . (factor . 1)) (AMPERSAND . (factor . 1)) (MINUS . (factor . 1)) (PLUS . (factor . 1)) (STAR_STAR .  358))
-      ((default . error) (AND .  357) (DO . (expression . 1)) (LOOP . (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) (AND .  356) (DO . (expression . 2)) (LOOP . (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) (OR .  355) (DO . (expression . 3)) (LOOP . (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) (OR .  354) (DO . (expression . 4)) (LOOP . (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) (XOR .  353) (DO . (expression . 5)) (LOOP . (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) (XOR .  352) (OR .  351) (AND .  350) (DO . (expression . 0)) (LOOP . (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 .  268) (NOT .  269) (DO . (relation . 0)) (LOOP . (relation . 0)) (COMMA . (relation . 0)) (RIGHT_PAREN . (relation . 0)) (ELSIF . (relation . 0)) (ELSE . (relation . 0)) (EQUAL_GREATER . (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 .  262) (SLASH_EQUAL .  267) (LESS .  265) (LESS_EQUAL .  266) (GREATER .  263) (GREATER_EQUAL .  264))
-      ((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 . (term_list . 0)) (GREATER_EQUAL . (term_list . 0)) (GREATER . (term_list . 0)) (EQUAL . (term_list . 0)) (NOT . (term_list . 0)) (IN . (term_list . 0)) (AND . (term_list . 0)) (OR . (term_list . 0)) (XOR . (term_list . 0)) (SEMICOLON . (term_list . 0)) (DOT_DOT . (term_list . 0)) (AMPERSAND . (term_list . 0)) (MINUS . (term_list . 0)) (PLUS . (term_list . 0)) (STAR .  345) (SLASH .  344) (MOD .  346) (REM .  347))
-      ((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_expression . 1)) (IS . (simple_expression . 1)) (IN . (simple_expression . 1)) (NOT . (simple_expression . 1)) (EQUAL . (simple_expression . 1)) (GREATER . (simple_expression . 1)) (GREATER_EQUAL . (simple_expression . 1)) (LESS . (simple_expression . 1)) (LESS_EQUAL . (simple_expression . 1)) (SLASH_EQUAL . (simple_expression . 1)) (AND . (simple_expression . 1)) (OR . (simple_expression . 1)) (XOR . (simple_expression . 1)) (SEMICOLON . (simple_expression . 1)) (DOT_DOT . (simple_expression . 1)) (PLUS .  342) (MINUS .  341) (AMPERSAND .  340))
-      ((default . error) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (IS .  338))
-      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
-      ((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)) (SLASH . (name . 1)) (STAR . (name . 1)) (MOD . (name . 1)) (REM . (name . 1)) (STAR_STAR . (name . 1)) (BAR . (name . 1)) (AND . (name . 1)) (OR . (name . 1)) (XOR . (name . 1)) (EQUAL_GREATER . ((name . 1)  284)))
-      ((default . error) (NULL .  282) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (COMMA .  361) (RIGHT_PAREN .  362))
+      ((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)) (GREATER . (factor . 1)) (EQUAL . (factor . 1)) (NOT . (factor . 1)) (IN . (factor . 1)) (AND . (factor . 1)) (OR . (factor . 1)) (XOR . (factor . 1)) (SEMICOLON . (factor . 1)) (REM . (factor . 1)) (MOD . (factor . 1)) (STAR . (factor . 1)) (SLASH . (factor . 1)) (DOT_DOT . (factor . 1)) (AMPERSAND . (factor . 1)) (MINUS . (factor . 1)) (PLUS . (factor . 1)) (STAR_STAR .  360))
+      ((default . error) (AND .  359) (DO . (expression . 1)) (LOOP . (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) (AND .  358) (DO . (expression . 2)) (LOOP . (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) (OR .  357) (DO . (expression . 3)) (LOOP . (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) (OR .  356) (DO . (expression . 4)) (LOOP . (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) (XOR .  355) (DO . (expression . 5)) (LOOP . (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) (XOR .  354) (OR .  353) (AND .  352) (DO . (expression . 0)) (LOOP . (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 .  270) (NOT .  271) (DO . (relation . 0)) (LOOP . (relation . 0)) (COMMA . (relation . 0)) (RIGHT_PAREN . (relation . 0)) (ELSIF . (relation . 0)) (ELSE . (relation . 0)) (EQUAL_GREATER . (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 .  264) (SLASH_EQUAL .  269) (LESS .  267) (LESS_EQUAL .  268) (GREATER .  265) (GREATER_EQUAL .  266))
+      ((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 . (term_list . 0)) (GREATER_EQUAL . (term_list . 0)) (GREATER . (term_list . 0)) (EQUAL . (term_list . 0)) (NOT . (term_list . 0)) (IN . (term_list . 0)) (AND . (term_list . 0)) (OR . (term_list . 0)) (XOR . (term_list . 0)) (SEMICOLON . (term_list . 0)) (DOT_DOT . (term_list . 0)) (AMPERSAND . (term_list . 0)) (MINUS . (term_list . 0)) (PLUS . (term_list . 0)) (STAR .  347) (SLASH .  346) (MOD .  348) (REM .  349))
+      ((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_expression . 1)) (IS . (simple_expression . 1)) (IN . (simple_expression . 1)) (NOT . (simple_expression . 1)) (EQUAL . (simple_expression . 1)) (GREATER . (simple_expression . 1)) (GREATER_EQUAL . (simple_expression . 1)) (LESS . (simple_expression . 1)) (LESS_EQUAL . (simple_expression . 1)) (SLASH_EQUAL . (simple_expression . 1)) (AND . (simple_expression . 1)) (OR . (simple_expression . 1)) (XOR . (simple_expression . 1)) (SEMICOLON . (simple_expression . 1)) (DOT_DOT . (simple_expression . 1)) (PLUS .  344) (MINUS .  343) (AMPERSAND .  342))
+      ((default . error) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (IS .  340))
+      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
+      ((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)) (SLASH . (name . 1)) (STAR . (name . 1)) (MOD . (name . 1)) (REM . (name . 1)) (STAR_STAR . (name . 1)) (BAR . (name . 1)) (AND . (name . 1)) (OR . (name . 1)) (XOR . (name . 1)) (EQUAL_GREATER . ((name . 1)  286)))
+      ((default . error) (NULL .  284) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (BAR . (discrete_choice . 3)) (EQUAL_GREATER . (discrete_choice . 3)))
       ((default . error) (SEMICOLON . (association_list . 0)) (IS . (association_list . 0)) (RIGHT_PAREN . (association_list . 0)) (COMMA . (association_list . 0)))
-      ((default . error) (COMMA .  258) (SEMICOLON . (aspect_specification_opt . 1)) (IS . (aspect_specification_opt . 1)))
+      ((default . error) (COMMA .  260) (SEMICOLON . (aspect_specification_opt . 1)) (IS . (aspect_specification_opt . 1)))
       ((default . error) (BAR . (discrete_choice . 0)) (EQUAL_GREATER . (discrete_choice . 0)))
-      ((default . error) (AND .  281) (EQUAL_GREATER . (choice_expression . 1)) (BAR . (choice_expression . 1)))
-      ((default . error) (OR .  280) (EQUAL_GREATER . (choice_expression . 2)) (BAR . (choice_expression . 2)))
-      ((default . error) (XOR .  279) (EQUAL_GREATER . (choice_expression . 3)) (BAR . (choice_expression . 3)))
-      ((default . error) (AND .  278) (EQUAL_GREATER . (choice_expression . 4)) (BAR . (choice_expression . 4)))
-      ((default . error) (OR .  277) (EQUAL_GREATER . (choice_expression . 5)) (BAR . (choice_expression . 5)))
-      ((default . error) (XOR .  276) (OR .  275) (AND .  274) (EQUAL_GREATER . (choice_expression . 0)) (BAR . (choice_expression . 0)))
+      ((default . error) (AND .  283) (EQUAL_GREATER . (choice_expression . 1)) (BAR . (choice_expression . 1)))
+      ((default . error) (OR .  282) (EQUAL_GREATER . (choice_expression . 2)) (BAR . (choice_expression . 2)))
+      ((default . error) (XOR .  281) (EQUAL_GREATER . (choice_expression . 3)) (BAR . (choice_expression . 3)))
+      ((default . error) (AND .  280) (EQUAL_GREATER . (choice_expression . 4)) (BAR . (choice_expression . 4)))
+      ((default . error) (OR .  279) (EQUAL_GREATER . (choice_expression . 5)) (BAR . (choice_expression . 5)))
+      ((default . error) (XOR .  278) (OR .  277) (AND .  276) (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 .  272) (EQUAL_GREATER .  273))
+      ((default . error) (BAR .  274) (EQUAL_GREATER .  275))
       ((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 .  86) (DO . (primary . 2)) (LOOP . (primary . 2)) (ELSIF . (primary . 2)) (ELSE . (primary . 2)) (DIGITS . (primary . 2)) (RANGE . (primary . 2)) (THEN . (primary . 2)) (SEMICOLON . (primary . 2)) (IS . (primary . 2)) (WITH . (primary . 2)) (IN . (primary . 2)) (NOT . (primary . 2)) (RIGHT_PAREN . (primary . 2)) (COMMA . (primary . 2)) (PLUS . (primary . 2)) (MINUS . (primary . 2)) (AMPERSAND . (primary . 2)) (DOT_DOT . (primary . 2)) (SLASH . (primary . 2)) (STAR . (primary . 2)) (MOD . (primary . 2)) (REM . (primary . 2)) (STAR_STAR . (primary . 2)) (BAR . (primary . 2)) (EQUAL_GREATER . (primary . 2)) (EQUAL . (primary . 2)) (GREATER . (primary . 2)) (GREATER_EQUAL . (primary . 2)) (LESS . (primary . 2)) (LESS_EQUAL . (primary . 2)) (SLASH_EQUAL . (primary . 2)) (AND . (primary . 2)) (OR . (primary . 2)) (XOR . (primary . 2)) (TICK .  271) (LEFT_PAREN .  105))
+      ((default . error) (DOT .  86) (DO . (primary . 2)) (LOOP . (primary . 2)) (ELSIF . (primary . 2)) (ELSE . (primary . 2)) (DIGITS . (primary . 2)) (RANGE . (primary . 2)) (THEN . (primary . 2)) (SEMICOLON . (primary . 2)) (IS . (primary . 2)) (WITH . (primary . 2)) (IN . (primary . 2)) (NOT . (primary . 2)) (RIGHT_PAREN . (primary . 2)) (COMMA . (primary . 2)) (PLUS . (primary . 2)) (MINUS . (primary . 2)) (AMPERSAND . (primary . 2)) (DOT_DOT . (primary . 2)) (SLASH . (primary . 2)) (STAR . (primary . 2)) (MOD . (primary . 2)) (REM . (primary . 2)) (STAR_STAR . (primary . 2)) (BAR . (primary . 2)) (EQUAL_GREATER . (primary . 2)) (EQUAL . (primary . 2)) (GREATER . (primary . 2)) (GREATER_EQUAL . (primary . 2)) (LESS . (primary . 2)) (LESS_EQUAL . (primary . 2)) (SLASH_EQUAL . (primary . 2)) (AND . (primary . 2)) (OR . (primary . 2)) (XOR . (primary . 2)) (TICK .  273) (LEFT_PAREN .  105))
       ((default . error) (BAR . (discrete_choice . 2)) (EQUAL_GREATER . (discrete_choice . 2)))
-      ((default . error) (IN .  268) (NOT .  269) (SEMICOLON . (relation . 0)) (IS . (relation . 0)) (WITH . (relation . 0)) (RIGHT_PAREN . (relation . 0)) (COMMA . (relation . 0)) (DOT_DOT .  261) (BAR . (choice_relation . 1)) (EQUAL_GREATER . (choice_relation . 1)) (AND . ((relation . 0) (choice_relation . 1))) (OR . ((relation . 0) (choice_relation . 1))) (XOR . ((relation . 0) (choice_relation . 1))) (EQUAL .  262) (SLASH_EQUAL .  267) (LESS .  265) (LESS_EQUAL .  266) (GREATER .  263) (GREATER_EQUAL .  264))
+      ((default . error) (IN .  270) (NOT .  271) (SEMICOLON . (relation . 0)) (IS . (relation . 0)) (WITH . (relation . 0)) (RIGHT_PAREN . (relation . 0)) (COMMA . (relation . 0)) (DOT_DOT .  263) (BAR . (choice_relation . 1)) (EQUAL_GREATER . (choice_relation . 1)) (AND . ((relation . 0) (choice_relation . 1))) (OR . ((relation . 0) (choice_relation . 1))) (XOR . ((relation . 0) (choice_relation . 1))) (EQUAL .  264) (SLASH_EQUAL .  269) (LESS .  267) (LESS_EQUAL .  268) (GREATER .  265) (GREATER_EQUAL .  266))
       ((default . error) (DOT .  86) (TICK .  87) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107) (LEFT_PAREN .  105))
-      ((default . error) (COMMA .  258) (RIGHT_PAREN .  259))
-      ((default . error) (BAR . (discrete_choice . 2)) (EQUAL_GREATER . (discrete_choice . 2)) (RIGHT_PAREN .  257))
+      ((default . error) (COMMA .  260) (RIGHT_PAREN .  261))
+      ((default . error) (BAR . (discrete_choice . 2)) (EQUAL_GREATER . (discrete_choice . 2)) (RIGHT_PAREN .  259))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (COMMA .  118) (SEMICOLON .  255))
+      ((default . error) (COMMA .  118) (SEMICOLON .  257))
       ((default . error) ($EOI . (with_clause . 1)) (FUNCTION . (with_clause . 1)) (GENERIC . (with_clause . 1)) (LIMITED . (with_clause . 1)) (NOT . (with_clause . 1)) (OVERRIDING . (with_clause . 1)) (PACKAGE . (with_clause . 1)) (PRAGMA . (with_clause . 1)) (PRIVATE . (with_clause . 1)) (PROCEDURE . (with_clause . 1)) (SEPARATE . (with_clause . 1)) (USE . (with_clause . 1)) (WITH . (with_clause . 1)))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (BOX .  248) (SEMICOLON . (discriminant_specification_opt . 0)) (RIGHT_PAREN . (discriminant_specification_opt . 0)) (IDENTIFIER .  71))
-      ((default . error) (IS .  246) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (ABSTRACT .  242) (BOX .  241) (NULL .  243) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (SEMICOLON .  240))
-      ((default . error) (DOT .  86) (TICK .  87) (IS .  239) (LEFT_PAREN .  105))
+      ((default . error) (BOX .  250) (SEMICOLON . (discriminant_specification_opt . 0)) (RIGHT_PAREN . (discriminant_specification_opt . 0)) (IDENTIFIER .  71))
+      ((default . error) (IS .  248) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
+      ((default . error) (ABSTRACT .  244) (BOX .  243) (NULL .  245) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (SEMICOLON .  242))
+      ((default . error) (DOT .  86) (TICK .  87) (IS .  241) (LEFT_PAREN .  105))
       ((default . error) (COLON . (identifier_list . 1)) (COMMA . (identifier_list . 1)))
-      ((default . error) (OUT .  238) (ACCESS . (mode_opt . 1)) (NOT . (mode_opt . 1)) (IDENTIFIER . (mode_opt . 1)) (STRING_LITERAL . (mode_opt . 1)) (CHARACTER_LITERAL . (mode_opt . 1)))
+      ((default . error) (OUT .  240) (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 .  206))
-      ((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 .  206))
-      ((default . error) (NULL .  233))
-      ((default . error) (RIGHT_PAREN . (parameter_and_result_profile . 3)) (DO . (parameter_and_result_profile . 3)) (RENAMES . (parameter_and_result_profile . 3)) (COLON_EQUAL . (parameter_and_result_profile . 3)) (SEMICOLON . (parameter_and_result_profile . 3)) (IS . (parameter_and_result_profile . 3)) (WITH . (parameter_and_result_profile . 3)))
-      ((default . error) (DOT .  86) (TICK .  87) (RIGHT_PAREN . (parameter_and_result_profile . 1)) (DO . (parameter_and_result_profile . 1)) (RENAMES . (parameter_and_result_profile . 1)) (COLON_EQUAL . (parameter_and_result_profile . 1)) (SEMICOLON . (parameter_and_result_profile . 1)) (IS . (parameter_and_result_profile . 1)) (WITH . (parameter_and_result_profile . 1)) (LEFT_PAREN .  105))
-      ((default . error) (ACCESS .  232))
+      ((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 .  207))
+      ((default . error) (IDENTIFIER . (null_exclusion_opt . 0)) (STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . (null_exclusion_opt . 0)) (RIGHT_PAREN . (null_exclusion_opt . 0)) (DO . (null_exclusion_opt . 0)) (RENAMES . (null_exclusion_opt . 0)) (COLON_EQUAL . (null_exclusion_opt . 0)) (SEMICOLON . (null_exclusion_opt . 0)) (WITH . (null_exclusion_opt . 0)) (IS . (null_exclusion_opt . 0)) (ACCESS . (null_exclusion_opt . 0)) (NOT .  207))
+      ((default . error) (NULL .  235))
+      ((default . error) (RIGHT_PAREN . (parameter_and_result_profile . 3)) (DO . (parameter_and_result_profile . 3)) (RENAMES . (parameter_and_result_profile . 3)) (COLON_EQUAL . (parameter_and_result_profile . 3)) (SEMICOLON . (parameter_and_result_profile . 3)) (WITH . (parameter_and_result_profile . 3)) (IS . (parameter_and_result_profile . 3)))
+      ((default . error) (DOT .  86) (RIGHT_PAREN . (name_opt . 1)) (DO . (name_opt . 1)) (RENAMES . (name_opt . 1)) (COLON_EQUAL . (name_opt . 1)) (WITH . (name_opt . 1)) (IS . (name_opt . 1)) (SEMICOLON . (name_opt . 1)) (TICK .  87) (LEFT_PAREN .  105))
+      ((default . error) (RIGHT_PAREN . (parameter_and_result_profile . 1)) (DO . (parameter_and_result_profile . 1)) (RENAMES . (parameter_and_result_profile . 1)) (COLON_EQUAL . (parameter_and_result_profile . 1)) (SEMICOLON . (parameter_and_result_profile . 1)) (WITH . (parameter_and_result_profile . 1)) (IS . (parameter_and_result_profile . 1)))
+      ((default . error) (ACCESS .  234))
       ((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)) (DOT_DOT . (name . 0)) (SLASH . (name . 0)) (STAR . (name . 0)) (MOD . (name . 0)) (REM . (name . 0)) (STAR_STAR . (name . 0)) (COLON . (identifier_list . 0)) (COMMA . ((name . 0) (identifier_list . 0))))
-      ((default . error) (COLON .  231) (COMMA .  94))
+      ((default . error) (COLON .  233) (COMMA .  94))
       ((default . error) (RIGHT_PAREN . (parameter_specification_list . 0)) (SEMICOLON . (parameter_specification_list . 0)))
-      ((default . error) (SEMICOLON .  229) (RIGHT_PAREN .  230))
+      ((default . error) (SEMICOLON .  231) (RIGHT_PAREN .  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)) (WHILE . (attribute_designator . 1)) (SELECT . (attribute_designator . 1)) (REQUEUE . (attribute_designator . 1)) (RAISE . (attribute_designator . 1)) (PRAGMA . (attribute_designator . 1)) (NULL . (attribute_designator . 1)) (LOOP . (attribute_designator . 1)) (IF . (attribute_designator . 1)) (GOTO . (attribute_designator . 1)) (FOR . (attribute_designator . 1)) (EXIT . (attribute_designator . 1)) (DELAY . (attribute_designator . 1)) (DECLARE . (attribute_designator . 1)) (CASE . (attribute_designator . 1)) (BEGIN . (attribute_designator . 1)) (ABORT . (attribute_designator . 1)) (ACCEPT . (attribute_designator . 1)) (CHARACTER_LITERAL . (attribute_designator . 1)) (STRING_LITERAL . (attribute_designator . 1)) (IDENTIFIER . (attribute_designator . 1)) (LESS_LESS . (attribute_designator . 1)) (OF . (attribute_designator . 1)) (IN . (attribute_designator . 1)) (NOT . (attribute_designator . 1)) (RIGHT_PAREN . (attribute_designator . 1)) (PLUS . (attribute_designator . 1)) (MINUS . (attribute_designator . 1)) (AMPERSAND . (attribute_designator . 1)) (DOT_DOT . (attribute_designator . 1)) (SLASH . (attribute_designator . 1)) (STAR . (attribute_designator . 1)) (MOD . (attribute_designator . 1)) (REM . (attribute_designator . 1)) (STAR_STAR . (attribute_designator . 1)) (BAR . (attribute_designator . 1)) (EQUAL_GREATER . (attribute_designator . 1)) (EQUAL . (attribute_designator . 1)) (GREATER . (attribute_designator . 1)) (GREATER_EQUAL . (attribute_designator . 1)) (LESS . (attribute_designator . 1)) (LESS_EQUAL . (attribute_designator . 1)) (SLASH_EQUAL . (attribute_designator . 1)) (AND . (attribute_designator . 1)) (OR . (attribute_designator . 1)) (XOR . (attribute_designator . 1)) (LEFT_PAREN . (attribute_designator . 1)) (SEMICOLON . (attribute_designator . 1)) (COMMA . (attribute_designator . 1)) (DOT . (attribute_designator . 1)) (TICK . (attribute_designator . 1)) (WITH . (attribute_designator . 1)) (IS . (attribute_designator . 1)) (RENAMES . (attribute_designator . 1)) (RETURN . (attribute_designator . 1)))
       ((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)) (WHILE . (attribute_designator . 2)) (SELECT . (attribute_designator . 2)) (REQUEUE . (attribute_designator . 2)) (RAISE . (attribute_designator . 2)) (PRAGMA . (attribute_designator . 2)) (NULL . (attribute_designator . 2)) (LOOP . (attribute_designator . 2)) (IF . (attribute_designator . 2)) (GOTO . (attribute_designator . 2)) (FOR . (attribute_designator . 2)) (EXIT . (attribute_designator . 2)) (DELAY . (attribute_designator . 2)) (DECLARE . (attribute_designator . 2)) (CASE . (attribute_designator . 2)) (BEGIN . (attribute_designator . 2)) (ABORT . (attribute_designator . 2)) (ACCEPT . (attribute_designator . 2)) (CHARACTER_LITERAL . (attribute_designator . 2)) (STRING_LITERAL . (attribute_designator . 2)) (IDENTIFIER . (attribute_designator . 2)) (LESS_LESS . (attribute_designator . 2)) (OF . (attribute_designator . 2)) (IN . (attribute_designator . 2)) (NOT . (attribute_designator . 2)) (RIGHT_PAREN . (attribute_designator . 2)) (PLUS . (attribute_designator . 2)) (MINUS . (attribute_designator . 2)) (AMPERSAND . (attribute_designator . 2)) (DOT_DOT . (attribute_designator . 2)) (SLASH . (attribute_designator . 2)) (STAR . (attribute_designator . 2)) (MOD . (attribute_designator . 2)) (REM . (attribute_designator . 2)) (STAR_STAR . (attribute_designator . 2)) (BAR . (attribute_designator . 2)) (EQUAL_GREATER . (attribute_designator . 2)) (EQUAL . (attribute_designator . 2)) (GREATER . (attribute_designator . 2)) (GREATER_EQUAL . (attribute_designator . 2)) (LESS . (attribute_designator . 2)) (LESS_EQUAL . (attribute_designator . 2)) (SLASH_EQUAL . (attribute_designator . 2)) (AND . (attribute_designator . 2)) (OR . (attribute_designator . 2)) (XOR . (attribute_designator . 2)) (LEFT_PAREN . (attribute_designator . 2)) (SEMICOLON . (attribute_designator . 2)) (COMMA . (attribute_designator . 2)) (DOT . (attribute_designator . 2)) (TICK . (attribute_designator . 2)) (WITH . (attribute_designator . 2)) (IS . (attribute_designator . 2)) (RENAMES . (attribute_designator . 2)) (RETURN . (attribute_designator . 2)))
       ((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)) (WHILE . (attribute_designator . 3)) (SELECT . (attribute_designator . 3)) (REQUEUE . (attribute_designator . 3)) (RAISE . (attribute_designator . 3)) (PRAGMA . (attribute_designator . 3)) (NULL . (attribute_designator . 3)) (LOOP . (attribute_designator . 3)) (IF . (attribute_designator . 3)) (GOTO . (attribute_designator . 3)) (FOR . (attribute_designator . 3)) (EXIT . (attribute_designator . 3)) (DELAY . (attribute_designator . 3)) (DECLARE . (attribute_designator . 3)) (CASE . (attribute_designator . 3)) (BEGIN . (attribute_designator . 3)) (ABORT . (attribute_designator . 3)) (ACCEPT . (attribute_designator . 3)) (CHARACTER_LITERAL . (attribute_designator . 3)) (STRING_LITERAL . (attribute_designator . 3)) (IDENTIFIER . (attribute_designator . 3)) (LESS_LESS . (attribute_designator . 3)) (OF . (attribute_designator . 3)) (IN . (attribute_designator . 3)) (NOT . (attribute_designator . 3)) (RIGHT_PAREN . (attribute_designator . 3)) (PLUS . (attribute_designator . 3)) (MINUS . (attribute_designator . 3)) (AMPERSAND . (attribute_designator . 3)) (DOT_DOT . (attribute_designator . 3)) (SLASH . (attribute_designator . 3)) (STAR . (attribute_designator . 3)) (MOD . (attribute_designator . 3)) (REM . (attribute_designator . 3)) (STAR_STAR . (attribute_designator . 3)) (BAR . (attribute_designator . 3)) (EQUAL_GREATER . (attribute_designator . 3)) (EQUAL . (attribute_designator . 3)) (GREATER . (attribute_designator . 3)) (GREATER_EQUAL . (attribute_designator . 3)) (LESS . (attribute_designator . 3)) (LESS_EQUAL . (attribute_designator . 3)) (SLASH_EQUAL . (attribute_designator . 3)) (AND . (attribute_designator . 3)) (OR . (attribute_designator . 3)) (XOR . (attribute_designator . 3)) (LEFT_PAREN . (attribute_designator . 3)) (SEMICOLON . (attribute_designator . 3)) (COMMA . (attribute_designator . 3)) (DOT . (attribute_designator . 3)) (TICK . (attribute_designator . 3)) (WITH . (attribute_designator . 3)) (IS . (attribute_designator . 3)) (RENAMES . (attribute_designator . 3)) (RETURN . (attribute_designator . 3)))
-      ((default . error) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (PLUS .  142) (MINUS .  141) (OTHERS .  170) (ABS .  144) (NOT .  169) (IDENTIFIER .  47) (CHARACTER_LITERAL .  168) (STRING_LITERAL .  48) (NULL .  226) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (PLUS .  143) (MINUS .  142) (OTHERS .  171) (ABS .  145) (NOT .  170) (IDENTIFIER .  47) (CHARACTER_LITERAL .  169) (STRING_LITERAL .  48) (NULL .  228) (NEW .  147) (LEFT_PAREN .  146))
       ((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)) (WHILE . (attribute_designator . 4)) (SELECT . (attribute_designator . 4)) (REQUEUE . (attribute_designator . 4)) (RAISE . (attribute_designator . 4)) (PRAGMA . (attribute_designator . 4)) (NULL . (attribute_designator . 4)) (LOOP . (attribute_designator . 4)) (IF . (attribute_designator . 4)) (GOTO . (attribute_designator . 4)) (FOR . (attribute_designator . 4)) (EXIT . (attribute_designator . 4)) (DELAY . (attribute_designator . 4)) (DECLARE . (attribute_designator . 4)) (CASE . (attribute_designator . 4)) (BEGIN . (attribute_designator . 4)) (ABORT . (attribute_designator . 4)) (ACCEPT . (attribute_designator . 4)) (CHARACTER_LITERAL . (attribute_designator . 4)) (STRING_LITERAL . (attribute_designator . 4)) (IDENTIFIER . (attribute_designator . 4)) (LESS_LESS . (attribute_designator . 4)) (OF . (attribute_designator . 4)) (IN . (attribute_designator . 4)) (NOT . (attribute_designator . 4)) (RIGHT_PAREN . (attribute_designator . 4)) (PLUS . (attribute_designator . 4)) (MINUS . (attribute_designator . 4)) (AMPERSAND . (attribute_designator . 4)) (DOT_DOT . (attribute_designator . 4)) (SLASH . (attribute_designator . 4)) (STAR . (attribute_designator . 4)) (MOD . (attribute_designator . 4)) (REM . (attribute_designator . 4)) (STAR_STAR . (attribute_designator . 4)) (BAR . (attribute_designator . 4)) (EQUAL_GREATER . (attribute_designator . 4)) (EQUAL . (attribute_designator . 4)) (GREATER . (attribute_designator . 4)) (GREATER_EQUAL . (attribute_designator . 4)) (LESS . (attribute_designator . 4)) (LESS_EQUAL . (attribute_designator . 4)) (SLASH_EQUAL . (attribute_designator . 4)) (AND . (attribute_designator . 4)) (OR . (attribute_designator . 4)) (XOR . (attribute_designator . 4)) (LEFT_PAREN . (attribute_designator . 4)) (SEMICOLON . (attribute_designator . 4)) (COMMA . (attribute_designator . 4)) (DOT . (attribute_designator . 4)) (TICK . (attribute_designator . 4)) (WITH . (attribute_designator . 4)) (IS . (attribute_designator . 4)) (RENAMES . (attribute_designator . 4)) (RETURN . (attribute_designator . 4)))
       ((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)) (WHILE . (qualified_expression . 0)) (SELECT . (qualified_expression . 0)) (REQUEUE . (qualified_expression . 0)) (RAISE . (qualified_expression . 0)) (PRAGMA . (qualified_expression . 0)) (NULL . (qualified_expression . 0)) (LOOP . (qualified_expression . 0)) (IF . (qualified_expression . 0)) (GOTO . (qualified_expression . 0)) (FOR . (qualified_expression . 0)) (EXIT . (qualified_expression . 0)) (DELAY . (qualified_expression . 0)) (DECLARE . (qualified_expression . 0)) (CASE . (qualified_expression . 0)) (BEGIN . (qualified_expression . 0)) (ABORT . (qualified_expression . 0)) (ACCEPT . (qualified_expression . 0)) (CHARACTER_LITERAL . (qualified_expression . 0)) (STRING_LITERAL . (qualified_expression . 0)) (IDENTIFIER . (qualified_expression . 0)) (LESS_LESS . (qualified_expression . 0)) (OF . (qualified_expression . 0)) (IN . (qualified_expression . 0)) (NOT . (qualified_expression . 0)) (RIGHT_PAREN . (qualified_expression . 0)) (PLUS . (qualified_expression . 0)) (MINUS . (qualified_expression . 0)) (AMPERSAND . (qualified_expression . 0)) (DOT_DOT . (qualified_expression . 0)) (SLASH . (qualified_expression . 0)) (STAR . (qualified_expression . 0)) (MOD . (qualified_expression . 0)) (REM . (qualified_expression . 0)) (STAR_STAR . (qualified_expression . 0)) (BAR . (qualified_expression . 0)) (EQUAL_GREATER . (qualified_expression . 0)) (EQUAL . (qualified_expression . 0)) (GREATER . (qualified_expression . 0)) (GREATER_EQUAL . (qualified_expression . 0)) (LESS . (qualified_expression . 0)) (LESS_EQUAL . (qualified_expression . 0)) (SLASH_EQUAL . (qualified_expression . 0)) (AND . (qualified_expression . 0)) (OR . (qualified_expression . 0)) (XOR . (qualified_expression . 0)) (SEMICOLON . (qualified_expression . 0)) (COMMA . (qualified_expression . 0)) (LEFT_PAREN . (qualified_expression . 0)) (DOT . (qualified_expression . 0)) (TICK . (qualified_expression . 0)) (WITH . (qualified_expression . 0)) (IS . (qualified_expression . 0)) (RENAMES . (qualified_expression . 0)) (RETURN . (qualified_expression . 0)))
       ((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)) (WHILE . (attribute_reference . 0)) (SELECT . (attribute_reference . 0)) (REQUEUE . (attribute_reference . 0)) (RAISE . (attribute_reference . 0)) (PRAGMA . (attribute_reference . 0)) (NULL . (attribute_reference . 0)) (LOOP . (attribute_reference . 0)) (IF . (attribute_reference . 0)) (GOTO . (attribute_reference . 0)) (FOR . (attribute_reference . 0)) (EXIT . (attribute_reference . 0)) (DELAY . (attribute_reference . 0)) (DECLARE . (attribute_reference . 0)) (CASE . (attribute_reference . 0)) (BEGIN . (attribute_reference . 0)) (ABORT . (attribute_reference . 0)) (ACCEPT . (attribute_reference . 0)) (CHARACTER_LITERAL . (attribute_reference . 0)) (STRING_LITERAL . (attribute_reference . 0)) (IDENTIFIER . (attribute_reference . 0)) (LESS_LESS . (attribute_reference . 0)) (OF . (attribute_reference . 0)) (IN . (attribute_reference . 0)) (NOT . (attribute_reference . 0)) (RIGHT_PAREN . (attribute_reference . 0)) (PLUS . (attribute_reference . 0)) (MINUS . (attribute_reference . 0)) (AMPERSAND . (attribute_reference . 0)) (DOT_DOT . (attribute_reference . 0)) (SLASH . (attribute_reference . 0)) (STAR . (attribute_reference . 0)) (MOD . (attribute_reference . 0)) (REM . (attribute_reference . 0)) (STAR_STAR . (attribute_reference . 0)) (BAR . (attribute_reference . 0)) (EQUAL_GREATER . (attribute_reference . 0)) (EQUAL . (attribute_reference . 0)) (GREATER . (attribute_reference . 0)) (GREATER_EQUAL . (attribute_reference . 0)) (LESS . (attribute_reference . 0)) (LESS_EQUAL . (attribute_reference . 0)) (SLASH_EQUAL . (attribute_reference . 0)) (AND . (attribute_reference . 0)) (OR . (attribute_reference . 0)) (XOR . (attribute_reference . 0)) (LEFT_PAREN . (attribute_reference . 0)) (SEMICOLON . (attribute_reference . 0)) (COMMA . (attribute_reference . 0)) (DOT . (attribute_reference . 0)) (TICK . (attribute_reference . 0)) (WITH . (attribute_reference . 0)) (IS . (attribute_reference . 0)) (RENAMES . (attribute_reference . 0)) (RETURN . (attribute_reference . 0)))
       ((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)) (GREATER . (selected_component . 2)) (GREATER_EQUAL . (selected_component . 2)) (LESS . (selected_component . 2)) (LESS_EQUAL . (selected_component . 2)) (SLASH_EQUAL . (selected_component . 2)) (AND . (selected_component . 2)) (OR . (selected_component . 2)) (XOR . (selected_component . 2)) (PLUS . (selected_component . 2)) (MINUS . (selected_component . 2)) (AMPERSAND . (selected_component . 2)) (SLASH . (selected_component . 2)) (STAR . (selected_component . 2)) (MOD . (selected_component . 2)) (REM . (selected_component . 2)) (STAR_STAR . (selected_component . 2)) (USE . (selected_component . 2)) (COLON_EQUAL . (selected_component . 2)) (WHILE . (selected_component . 2)) (SELECT . (selected_component . 2)) (REQUEUE . (selected_component . 2)) (RAISE . (selected_component . 2)) (PRAGMA . (selected_component . 2)) (NULL . (selected_component . 2)) (LOOP . (selected_component . 2)) (IF . (selected_component . 2)) (GOTO . (selected_component . 2)) (FOR . (selected_component . 2)) (EXIT . (selected_component . 2)) (DELAY . (selected_component . 2)) (DECLARE . (selected_component . 2)) (CASE . (selected_component . 2)) (BEGIN . (selected_component . 2)) (ABORT . (selected_component . 2)) (ACCEPT . (selected_component . 2)) (CHARACTER_LITERAL . (selected_component . 2)) (STRING_LITERAL . (selected_component . 2)) (IDENTIFIER . (selected_component . 2)) (LESS_LESS . (selected_component . 2)) (OF . (selected_component . 2)) (LEFT_PAREN . (selected_component . 2)) (SEMICOLON . (selected_component . 2)) (COMMA . (selected_component . 2)) (DOT . (selected_component . 2)) (TICK . (selected_component . 2)) (WITH . (selected_component . 2)) (IS . (selected_component . 2)) (RENAMES . (selected_component . 2)) (RETURN . (selected_component . 2)))
       ((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)) (GREATER . (selected_component . 1)) (GREATER_EQUAL . (selected_component . 1)) (LESS . (selected_component . 1)) (LESS_EQUAL . (selected_component . 1)) (SLASH_EQUAL . (selected_component . 1)) (AND . (selected_component . 1)) (OR . (selected_component . 1)) (XOR . (selected_component . 1)) (PLUS . (selected_component . 1)) (MINUS . (selected_component . 1)) (AMPERSAND . (selected_component . 1)) (SLASH . (selected_component . 1)) (STAR . (selected_component . 1)) (MOD . (selected_component . 1)) (REM . (selected_component . 1)) (STAR_STAR . (selected_component . 1)) (USE . (selected_component . 1)) (COLON_EQUAL . (selected_component . 1)) (WHILE . (selected_component . 1)) (SELECT . (selected_component . 1)) (REQUEUE . (selected_component . 1)) (RAISE . (selected_component . 1)) (PRAGMA . (selected_component . 1)) (NULL . (selected_component . 1)) (LOOP . (selected_component . 1)) (IF . (selected_component . 1)) (GOTO . (selected_component . 1)) (FOR . (selected_component . 1)) (EXIT . (selected_component . 1)) (DELAY . (selected_component . 1)) (DECLARE . (selected_component . 1)) (CASE . (selected_component . 1)) (BEGIN . (selected_component . 1)) (ABORT . (selected_component . 1)) (ACCEPT . (selected_component . 1)) (CHARACTER_LITERAL . (selected_component . 1)) (STRING_LITERAL . (selected_component . 1)) (IDENTIFIER . (selected_component . 1)) (LESS_LESS . (selected_component . 1)) (OF . (selected_component . 1)) (LEFT_PAREN . (selected_component . 1)) (SEMICOLON . (selected_component . 1)) (COMMA . (selected_component . 1)) (DOT . (selected_component . 1)) (TICK . (selected_component . 1)) (WITH . (selected_component . 1)) (IS . (selected_component . 1)) (RENAMES . (selected_component . 1)) (RETURN . (selected_component . 1)))
       ((default . error) (DO . (selected_component . 3)) (RIGHT_PAREN . (selected_component . 3)) (BAR . (selected_component . 3)) (ELSIF . (selected_component . 3)) (ELSE . (selected_component . 3)) (EQUAL_GREATER . (selected_component . 3)) (DIGITS . (selected_component . 3)) (RANGE . (selected_component . 3)) (THEN . (selected_component . 3)) (DOT_DOT . (selected_component . 3)) (IN . (selected_component . 3)) (NOT . (selected_component . 3)) (EQUAL . (selected_component . 3)) (GREATER . (selected_component . 3)) (GREATER_EQUAL . (selected_component . 3)) (LESS . (selected_component . 3)) (LESS_EQUAL . (selected_component . 3)) (SLASH_EQUAL . (selected_component . 3)) (AND . (selected_component . 3)) (OR . (selected_component . 3)) (XOR . (selected_component . 3)) (PLUS . (selected_component . 3)) (MINUS . (selected_component . 3)) (AMPERSAND . (selected_component . 3)) (SLASH . (selected_component . 3)) (STAR . (selected_component . 3)) (MOD . (selected_component . 3)) (REM . (selected_component . 3)) (STAR_STAR . (selected_component . 3)) (USE . (selected_component . 3)) (COLON_EQUAL . (selected_component . 3)) (WHILE . (selected_component . 3)) (SELECT . (selected_component . 3)) (REQUEUE . (selected_component . 3)) (RAISE . (selected_component . 3)) (PRAGMA . (selected_component . 3)) (NULL . (selected_component . 3)) (LOOP . (selected_component . 3)) (IF . (selected_component . 3)) (GOTO . (selected_component . 3)) (FOR . (selected_component . 3)) (EXIT . (selected_component . 3)) (DELAY . (selected_component . 3)) (DECLARE . (selected_component . 3)) (CASE . (selected_component . 3)) (BEGIN . (selected_component . 3)) (ABORT . (selected_component . 3)) (ACCEPT . (selected_component . 3)) (CHARACTER_LITERAL . (selected_component . 3)) (STRING_LITERAL . (selected_component . 3)) (IDENTIFIER . (selected_component . 3)) (LESS_LESS . (selected_component . 3)) (OF . (selected_component . 3)) (LEFT_PAREN . (selected_component . 3)) (SEMICOLON . (selected_component . 3)) (COMMA . (selected_component . 3)) (DOT . (selected_component . 3)) (TICK . (selected_component . 3)) (WITH . (selected_component . 3)) (IS . (selected_component . 3)) (RENAMES . (selected_component . 3)) (RETURN . (selected_component . 3)))
-      ((default . error) (DOT_DOT . (primary . 0)) (RIGHT_PAREN . (primary . 0)) (COMMA . (primary . 0)) (BAR . (primary . 0)) (EQUAL_GREATER . (primary . 0)) (PLUS . (primary . 0)) (MINUS . (primary . 0)) (AMPERSAND . (primary . 0)) (IN . (primary . 0)) (NOT . (primary . 0)) (EQUAL . (primary . 0)) (GREATER . (primary . 0)) (GREATER_EQUAL . (primary . 0)) (LESS . (primary . 0)) (LESS_EQUAL . (primary . 0)) (SLASH_EQUAL . (primary . 0)) (WITH . (primary . 0)) (SLASH . (primary . 0)) (STAR . (primary . 0)) (MOD . (primary . 0)) (REM . (primary . 0)) (STAR_STAR . (primary . 0)) (AND . (primary . 0)) (OR . (primary . 0)) (XOR . (primary . 0)) (RECORD .  513))
-      ((default . error) (COMMA .  258) (RIGHT_PAREN .  512))
-      ((default . error) (RIGHT_PAREN . (expression_opt . 1)) (COMMA . (expression_opt . 1)) (WITH .  511))
+      ((default . error) (DOT_DOT . (primary . 0)) (RIGHT_PAREN . (primary . 0)) (COMMA . (primary . 0)) (BAR . (primary . 0)) (EQUAL_GREATER . (primary . 0)) (PLUS . (primary . 0)) (MINUS . (primary . 0)) (AMPERSAND . (primary . 0)) (IN . (primary . 0)) (NOT . (primary . 0)) (EQUAL . (primary . 0)) (GREATER . (primary . 0)) (GREATER_EQUAL . (primary . 0)) (LESS . (primary . 0)) (LESS_EQUAL . (primary . 0)) (SLASH_EQUAL . (primary . 0)) (WITH . (primary . 0)) (SLASH . (primary . 0)) (STAR . (primary . 0)) (MOD . (primary . 0)) (REM . (primary . 0)) (STAR_STAR . (primary . 0)) (AND . (primary . 0)) (OR . (primary . 0)) (XOR . (primary . 0)) (RECORD .  515))
+      ((default . error) (COMMA .  260) (RIGHT_PAREN .  514))
+      ((default . error) (RIGHT_PAREN . (expression_opt . 1)) (COMMA . (expression_opt . 1)) (WITH .  513))
       ((default . error) (IDENTIFIER .  71))
-      ((default . error) (RIGHT_PAREN . (formal_part . 0)) (COLON_EQUAL . (formal_part . 0)) (DO . (formal_part . 0)) (WHEN . (formal_part . 0)) (RENAMES . (formal_part . 0)) (IS . (formal_part . 0)) (WITH . (formal_part . 0)) (SEMICOLON . (formal_part . 0)) (RETURN . (formal_part . 0)))
-      ((default . error) (IN . (aliased_opt . 0)) (OUT . (aliased_opt . 0)) (IDENTIFIER . (aliased_opt . 0)) (STRING_LITERAL . (aliased_opt . 0)) (CHARACTER_LITERAL . (aliased_opt . 0)) (ALIASED .  507) (ACCESS . (null_exclusion_opt . 0)) (NOT . ((aliased_opt . 0)  206)))
-      ((default . error) (FUNCTION . (protected_opt . 0)) (PROCEDURE . (protected_opt . 0)) (PROTECTED .  504) (IDENTIFIER . (general_access_modifier_opt . 0)) (STRING_LITERAL . (general_access_modifier_opt . 0)) (CHARACTER_LITERAL . (general_access_modifier_opt . 0)) (ALL .  502) (CONSTANT .  503))
-      ((default . error) (ACCESS . (null_exclusion_opt . 1)) (CHARACTER_LITERAL . (null_exclusion_opt . 1)) (STRING_LITERAL . (null_exclusion_opt . 1)) (IDENTIFIER . (null_exclusion_opt . 1)))
-      ((default . error) (DO . (parameter_and_result_profile . 2)) (RIGHT_PAREN . (parameter_and_result_profile . 2)) (COLON_EQUAL . (parameter_and_result_profile . 2)) (RENAMES . (parameter_and_result_profile . 2)) (WITH . (parameter_and_result_profile . 2)) (IS . (parameter_and_result_profile . 2)) (SEMICOLON . (parameter_and_result_profile . 2)))
-      ((default . error) (ACCESS .  232) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (COLON_EQUAL .  499) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (ACCESS .  232) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (RIGHT_PAREN . (formal_part . 0)) (COLON_EQUAL . (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) (IN . (aliased_opt . 0)) (OUT . (aliased_opt . 0)) (IDENTIFIER . (aliased_opt . 0)) (STRING_LITERAL . (aliased_opt . 0)) (CHARACTER_LITERAL . (aliased_opt . 0)) (ALIASED .  509) (ACCESS . (null_exclusion_opt . 0)) (NOT . ((aliased_opt . 0)  207)))
+      ((default . error) (FUNCTION . (protected_opt . 0)) (PROCEDURE . (protected_opt . 0)) (PROTECTED .  506) (IDENTIFIER . (general_access_modifier_opt . 0)) (STRING_LITERAL . (general_access_modifier_opt . 0)) (CHARACTER_LITERAL . (general_access_modifier_opt . 0)) (ALL .  504) (CONSTANT .  505))
+      ((default . error) (RIGHT_PAREN . (null_exclusion_opt . 1)) (DO . (null_exclusion_opt . 1)) (RENAMES . (null_exclusion_opt . 1)) (COLON_EQUAL . (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)) (SEMICOLON . (null_exclusion_opt . 1)) (WITH . (null_exclusion_opt . 1)) (IS . (null_exclusion_opt . 1)))
+      ((default . error) (DO . (parameter_and_result_profile . 2)) (RIGHT_PAREN . (parameter_and_result_profile . 2)) (COLON_EQUAL . (parameter_and_result_profile . 2)) (RENAMES . (parameter_and_result_profile . 2)) (IS . (parameter_and_result_profile . 2)) (WITH . (parameter_and_result_profile . 2)) (SEMICOLON . (parameter_and_result_profile . 2)))
+      ((default . error) (ACCESS .  234) (SEMICOLON . (name_opt . 0)) (WITH . (name_opt . 0)) (IS . (name_opt . 0)) (RENAMES . (name_opt . 0)) (COLON_EQUAL . (name_opt . 0)) (RIGHT_PAREN . (name_opt . 0)) (DO . (name_opt . 0)) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (COLON_EQUAL .  501) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
+      ((default . error) (ACCESS .  234) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((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 .  497))
+      ((default . error) (NEW .  499))
       ((default . error) (WITH . (formal_subprogram_declaration . 1)) (TYPE . (formal_subprogram_declaration . 1)) (PRAGMA . (formal_subprogram_declaration . 1)) (IDENTIFIER . (formal_subprogram_declaration . 1)) (FUNCTION . (formal_subprogram_declaration . 1)) (PROCEDURE . (formal_subprogram_declaration . 1)) (PACKAGE . (formal_subprogram_declaration . 1)))
       ((default . error) (WITH . (subprogram_default . 1)) (SEMICOLON . (subprogram_default . 1)))
-      ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107) (BOX .  241) (NULL .  243) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107) (BOX .  243) (NULL .  245) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (WITH . (subprogram_default . 2)) (SEMICOLON . (subprogram_default . 2)))
       ((default . error) (WITH . (subprogram_default . 0)) (SEMICOLON . (subprogram_default . 0)) (DOT .  86) (TICK .  87) (LEFT_PAREN .  105))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (LEFT_PAREN .  479) (RANGE .  483) (MOD .  481) (DIGITS .  477) (DELTA .  476) (TASK .  486) (PROTECTED .  482) (INTERFACE .  478) (ARRAY .  475) (PRIVATE . (abstract_tagged_limited_opt . 0)) (TAGGED .  485) (NEW . (abstract_limited_synchronized_opt . 0)) (ABSTRACT .  474) (LIMITED .  480) (SYNCHRONIZED .  484) (ACCESS . (null_exclusion_opt . 0)) (NOT .  206))
-      ((default . error) (SEMICOLON .  473))
-      ((default . error) (RIGHT_PAREN .  472))
+      ((default . error) (LEFT_PAREN .  481) (RANGE .  485) (MOD .  483) (DIGITS .  479) (DELTA .  478) (TASK .  488) (PROTECTED .  484) (INTERFACE .  480) (ARRAY .  477) (PRIVATE . (abstract_tagged_limited_opt . 0)) (TAGGED .  487) (NEW . (abstract_limited_synchronized_opt . 0)) (ABSTRACT .  476) (LIMITED .  482) (SYNCHRONIZED .  486) (ACCESS . (null_exclusion_opt . 0)) (NOT .  207))
+      ((default . error) (SEMICOLON .  475))
+      ((default . error) (RIGHT_PAREN .  474))
       ((default . error) (RIGHT_PAREN . (discriminant_specification_list . 0)) (SEMICOLON . (discriminant_specification_list . 0)))
-      ((default . error) (SEMICOLON .  470) (RIGHT_PAREN .  471))
-      ((default . error) (COMMA .  94) (COLON .  469))
+      ((default . error) (SEMICOLON .  472) (RIGHT_PAREN .  473))
+      ((default . error) (COMMA .  94) (COLON .  471))
       ((default . error) (DOT .  86) (TICK .  87) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107) (LEFT_PAREN .  105))
       ((default . error) (DOT .  86) (TICK .  87) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107) (LEFT_PAREN .  105))
       ((default . error) (DOT .  86) (TICK .  87) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107) (LEFT_PAREN .  105))
       ((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 .  86) (TICK .  87) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107) (LEFT_PAREN .  105))
-      ((default . error) (DO . (name . 2)) (WHILE . (name . 2)) (SELECT . (name . 2)) (REQUEUE . (name . 2)) (RAISE . (name . 2)) (PRAGMA . (name . 2)) (NULL . (name . 2)) (LOOP . (name . 2)) (IF . (name . 2)) (GOTO . (name . 2)) (FOR . (name . 2)) (EXIT . (name . 2)) (DELAY . (name . 2)) (DECLARE . (name . 2)) (CASE . (name . 2)) (BEGIN . (name . 2)) (ABORT . (name . 2)) (ACCEPT . (name . 2)) (CHARACTER_LITERAL . (name . 2)) (STRING_LITERAL . (name . 2)) (IDENTIFIER . (name . 2)) (LESS_LESS . (name . 2)) (USE . (name . 2)) (XOR . (name . 2)) (OR . (name . 2)) (IN . (name . 2)) (NOT . (name . 2)) (EQUAL . (name . 2)) (GREATER . (name . 2)) (GREATER_EQUAL . (name . 2)) (LESS . (name . 2)) (LESS_EQUAL . (name . 2)) (SLASH_EQUAL . (name . 2)) (THEN . (name . 2)) (DIGITS . (name . 2)) (EQUAL_GREATER . (name . 2)) (ELSE . (name . 2)) (ELSIF . (name . 2)) (BAR . (name . 2)) (STAR_STAR . (name . 2)) (REM . (name . 2)) (MOD . (name . 2)) (STAR . (name . 2)) (SLASH . (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)) (RETURN . (name . 2)) (TICK . (name . 2)) (DOT . (name . 2)) (LEFT_PAREN . (name . 2)) (IS . (name . 2)) (WITH . (name . 2)) (SEMICOLON . (name . 2)) (RENAMES . (name . 2)) (COMMA . (name . 2)))
-      ((default . error) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (IS . ((association_opt . 0) (expression_opt . 0))) (SEMICOLON . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  170) (IDENTIFIER .  47) (CHARACTER_LITERAL .  168) (STRING_LITERAL .  48) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  169) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (STAR_STAR . (actual_parameter_part . 0)) (REM . (actual_parameter_part . 0)) (MOD . (actual_parameter_part . 0)) (STAR . (actual_parameter_part . 0)) (SLASH . (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 . 0)) (AND . (actual_parameter_part . 0)) (OF . (actual_parameter_part . 0)) (DO . (actual_parameter_part . 0)) (WHILE . (actual_parameter_part . 0)) (SELECT . (actual_parameter_part . 0)) (REQUEUE . (actual_parameter_part . 0)) (RAISE . (actual_parameter_part . 0)) (PRAGMA . (actual_parameter_part . 0)) (NULL . (actual_parameter_part . 0)) (LOOP . (actual_parameter_part . 0)) (IF . (actual_parameter_part . 0)) (GOTO . (actual_parameter_part . 0)) (FOR . (actual_parameter_part . 0)) (EXIT . (actual_parameter_part . 0)) (DELAY . (actual_parameter_part . 0)) (DECLARE . (actual_parameter_part . 0)) (CASE . (actual_parameter_part . 0)) (BEGIN . (actual_parameter_part . 0)) (ABORT . (actual_parameter_part . 0)) (ACCEPT . (actual_parameter_part . 0)) (CHARACTER_LITERAL . (actual_parameter_part . 0)) (STRING_LITERAL . (actual_parameter_part . 0)) (IDENTIFIER . (actual_parameter_part . 0)) (LESS_LESS . (actual_parameter_part . 0)) (USE . (actual_parameter_part . 0)) (XOR . (actual_parameter_part . 0)) (OR . (actual_parameter_part . 0)) (IN . (actual_parameter_part . 0)) (NOT . (actual_parameter_part . 0)) (EQUAL . (actual_parameter_part . 0)) (GREATER . (actual_parameter_part . 0)) (GREATER_EQUAL . (actual_parameter_part . 0)) (LESS . (actual_parameter_part . 0)) (LESS_EQUAL . (actual_parameter_part . 0)) (SLASH_EQUAL . (actual_parameter_part . 0)) (THEN . (actual_parameter_part . 0)) (DIGITS . (actual_parameter_part . 0)) (EQUAL_GREATER . (actual_parameter_part . 0)) (ELSE . (actual_parameter_part . 0)) (ELSIF . (actual_parameter_part . 0)) (BAR . (actual_parameter_part . 0)) (RETURN . (actual_parameter_part . 0)) (TICK . (actual_parameter_part . 0)) (DOT . (actual_parameter_part . 0)) (LEFT_PAREN . (actual_parameter_part . 0)) (IS . (actual_parameter_part . 0)) (WITH . (actual_parameter_part . 0)) (SEMICOLON . (actual_parameter_part . 0)) (RENAMES . (actual_parameter_part . 0)) (COMMA . (actual_parameter_part . 0)))
-      ((default . error) (SEMICOLON .  463))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (DO . (name . 2)) (WHILE . (name . 2)) (SELECT . (name . 2)) (REQUEUE . (name . 2)) (RAISE . (name . 2)) (PRAGMA . (name . 2)) (NULL . (name . 2)) (LOOP . (name . 2)) (IF . (name . 2)) (GOTO . (name . 2)) (FOR . (name . 2)) (EXIT . (name . 2)) (DELAY . (name . 2)) (DECLARE . (name . 2)) (CASE . (name . 2)) (BEGIN . (name . 2)) (ABORT . (name . 2)) (ACCEPT . (name . 2)) (CHARACTER_LITERAL . (name . 2)) (STRING_LITERAL . (name . 2)) (IDENTIFIER . (name . 2)) (LESS_LESS . (name . 2)) (USE . (name . 2)) (XOR . (name . 2)) (OR . (name . 2)) (IN . (name . 2)) (NOT . (name . 2)) (EQUAL . (name . 2)) (GREATER . (name . 2)) (GREATER_EQUAL . (name . 2)) (LESS . (name . 2)) (LESS_EQUAL . (name . 2)) (SLASH_EQUAL . (name . 2)) (THEN . (name . 2)) (DIGITS . (name . 2)) (EQUAL_GREATER . (name . 2)) (ELSE . (name . 2)) (ELSIF . (name . 2)) (BAR . (name . 2)) (STAR_STAR . (name . 2)) (REM . (name . 2)) (MOD . (name . 2)) (STAR . (name . 2)) (SLASH . (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)) (RETURN . (name . 2)) (TICK . (name . 2)) (DOT . (name . 2)) (LEFT_PAREN . (name . 2)) (IS . (name . 2)) (SEMICOLON . (name . 2)) (WITH . (name . 2)) (RENAMES . (name . 2)) (COMMA . (name . 2)))
+      ((default . error) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (IS . ((association_opt . 0) (expression_opt . 0))) (SEMICOLON . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  171) (IDENTIFIER .  47) (CHARACTER_LITERAL .  169) (STRING_LITERAL .  48) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  170) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
+      ((default . error) (STAR_STAR . (actual_parameter_part . 0)) (REM . (actual_parameter_part . 0)) (MOD . (actual_parameter_part . 0)) (STAR . (actual_parameter_part . 0)) (SLASH . (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 . 0)) (AND . (actual_parameter_part . 0)) (OF . (actual_parameter_part . 0)) (DO . (actual_parameter_part . 0)) (WHILE . (actual_parameter_part . 0)) (SELECT . (actual_parameter_part . 0)) (REQUEUE . (actual_parameter_part . 0)) (RAISE . (actual_parameter_part . 0)) (PRAGMA . (actual_parameter_part . 0)) (NULL . (actual_parameter_part . 0)) (LOOP . (actual_parameter_part . 0)) (IF . (actual_parameter_part . 0)) (GOTO . (actual_parameter_part . 0)) (FOR . (actual_parameter_part . 0)) (EXIT . (actual_parameter_part . 0)) (DELAY . (actual_parameter_part . 0)) (DECLARE . (actual_parameter_part . 0)) (CASE . (actual_parameter_part . 0)) (BEGIN . (actual_parameter_part . 0)) (ABORT . (actual_parameter_part . 0)) (ACCEPT . (actual_parameter_part . 0)) (CHARACTER_LITERAL . (actual_parameter_part . 0)) (STRING_LITERAL . (actual_parameter_part . 0)) (IDENTIFIER . (actual_parameter_part . 0)) (LESS_LESS . (actual_parameter_part . 0)) (USE . (actual_parameter_part . 0)) (XOR . (actual_parameter_part . 0)) (OR . (actual_parameter_part . 0)) (IN . (actual_parameter_part . 0)) (NOT . (actual_parameter_part . 0)) (EQUAL . (actual_parameter_part . 0)) (GREATER . (actual_parameter_part . 0)) (GREATER_EQUAL . (actual_parameter_part . 0)) (LESS . (actual_parameter_part . 0)) (LESS_EQUAL . (actual_parameter_part . 0)) (SLASH_EQUAL . (actual_parameter_part . 0)) (THEN . (actual_parameter_part . 0)) (DIGITS . (actual_parameter_part . 0)) (EQUAL_GREATER . (actual_parameter_part . 0)) (ELSE . (actual_parameter_part . 0)) (ELSIF . (actual_parameter_part . 0)) (BAR . (actual_parameter_part . 0)) (RETURN . (actual_parameter_part . 0)) (TICK . (actual_parameter_part . 0)) (DOT . (actual_parameter_part . 0)) (LEFT_PAREN . (actual_parameter_part . 0)) (IS . (actual_parameter_part . 0)) (SEMICOLON . (actual_parameter_part . 0)) (WITH . (actual_parameter_part . 0)) (RENAMES . (actual_parameter_part . 0)) (COMMA . (actual_parameter_part . 0)))
+      ((default . error) (SEMICOLON .  465))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (MINUS . (relational_operator . 0)) (PLUS . (relational_operator . 0)) (IDENTIFIER . (relational_operator . 0)) (STRING_LITERAL . (relational_operator . 0)) (CHARACTER_LITERAL . (relational_operator . 0)) (ABS . (relational_operator . 0)) (LEFT_PAREN . (relational_operator . 0)) (NEW . (relational_operator . 0)) (NOT . (relational_operator . 0)) (NULL . (relational_operator . 0)))
       ((default . error) (MINUS . (relational_operator . 4)) (PLUS . (relational_operator . 4)) (IDENTIFIER . (relational_operator . 4)) (STRING_LITERAL . (relational_operator . 4)) (CHARACTER_LITERAL . (relational_operator . 4)) (ABS . (relational_operator . 4)) (LEFT_PAREN . (relational_operator . 4)) (NEW . (relational_operator . 4)) (NOT . (relational_operator . 4)) (NULL . (relational_operator . 4)))
       ((default . error) (MINUS . (relational_operator . 5)) (PLUS . (relational_operator . 5)) (IDENTIFIER . (relational_operator . 5)) (STRING_LITERAL . (relational_operator . 5)) (CHARACTER_LITERAL . (relational_operator . 5)) (ABS . (relational_operator . 5)) (LEFT_PAREN . (relational_operator . 5)) (NEW . (relational_operator . 5)) (NOT . (relational_operator . 5)) (NULL . (relational_operator . 5)))
       ((default . error) (MINUS . (relational_operator . 2)) (PLUS . (relational_operator . 2)) (IDENTIFIER . (relational_operator . 2)) (STRING_LITERAL . (relational_operator . 2)) (CHARACTER_LITERAL . (relational_operator . 2)) (ABS . (relational_operator . 2)) (LEFT_PAREN . (relational_operator . 2)) (NEW . (relational_operator . 2)) (NOT . (relational_operator . 2)) (NULL . (relational_operator . 2)))
       ((default . error) (MINUS . (relational_operator . 3)) (PLUS . (relational_operator . 3)) (IDENTIFIER . (relational_operator . 3)) (STRING_LITERAL . (relational_operator . 3)) (CHARACTER_LITERAL . (relational_operator . 3)) (ABS . (relational_operator . 3)) (LEFT_PAREN . (relational_operator . 3)) (NEW . (relational_operator . 3)) (NOT . (relational_operator . 3)) (NULL . (relational_operator . 3)))
       ((default . error) (MINUS . (relational_operator . 1)) (PLUS . (relational_operator . 1)) (IDENTIFIER . (relational_operator . 1)) (STRING_LITERAL . (relational_operator . 1)) (CHARACTER_LITERAL . (relational_operator . 1)) (ABS . (relational_operator . 1)) (LEFT_PAREN . (relational_operator . 1)) (NEW . (relational_operator . 1)) (NOT . (relational_operator . 1)) (NULL . (relational_operator . 1)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (IN .  457))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (RANGE .  455) (LEFT_PAREN .  217) (ACCESS .  214) (DELTA .  215) (DIGITS .  216) (MOD .  218) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (OTHERS .  170) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  169) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (BOX .  451) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (THEN .  449) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (ELSE .  447) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (ELSE .  445))
-      ((default . error) (THEN .  444))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
+      ((default . error) (IN .  459))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (RANGE .  457) (LEFT_PAREN .  219) (ACCESS .  216) (DELTA .  217) (DIGITS .  218) (MOD .  220) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (OTHERS .  171) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  170) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
+      ((default . error) (BOX .  453) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (THEN .  451) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (ELSE .  449) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (ELSE .  447))
+      ((default . error) (THEN .  446))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (XOR . (primary . 0)) (OR . (primary . 0)) (AND . (primary . 0)) (SLASH_EQUAL . (primary . 0)) (LESS_EQUAL . (primary . 0)) (LESS . (primary . 0)) (GREATER_EQUAL . (primary . 0)) (GREATER . (primary . 0)) (EQUAL . (primary . 0)) (EQUAL_GREATER . (primary . 0)) (BAR . (primary . 0)) (PLUS . (primary . 0)) (MINUS . (primary . 0)) (AMPERSAND . (primary . 0)) (DOT_DOT . (primary . 0)) (SLASH . (primary . 0)) (STAR . (primary . 0)) (MOD . (primary . 0)) (REM . (primary . 0)) (IN . (primary . 0)) (NOT . (primary . 0)) (RIGHT_PAREN . (primary . 0)) (COMMA . (primary . 0)) (WITH . (primary . 0)) (IS . (primary . 0)) (SEMICOLON . (primary . 0)) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((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)) (SLASH . (factor . 3)) (STAR . (factor . 3)) (MOD . (factor . 3)) (REM . (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 . (factor . 3)) (LESS_EQUAL . (factor . 3)) (SLASH_EQUAL . (factor . 3)) (IS . (factor . 3)) (WITH . (factor . 3)) (DOT_DOT . (factor . 3)) (THEN . (factor . 3)) (RANGE . (factor . 3)) (DIGITS . (factor . 3)) (EQUAL_GREATER . (factor . 3)) (ELSE . (factor . 3)) (ELSIF . (factor . 3)) (RIGHT_PAREN . (factor . 3)) (BAR . (factor . 3)) (COMMA . (factor . 3)))
-      ((default . error) (BOX .  437) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (COLON . ( 436 (identifier_list . 0))) (COMMA . (identifier_list . 0)))
-      ((default . error) (IDENTIFIER .  431) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  432))
-      ((default . error) (BODY .  430) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (IDENTIFIER .  427) (TYPE .  429) (BODY .  428))
-      ((default . error) (IDENTIFIER .  426))
-      ((default . error) (TYPE .  425) (BODY .  424) (IDENTIFIER .  423))
-      ((default . error) (IDENTIFIER .  422))
+      ((default . error) (BOX .  439) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (COLON . ( 438 (identifier_list . 0))) (COMMA . (identifier_list . 0)))
+      ((default . error) (IDENTIFIER .  433) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  434))
+      ((default . error) (BODY .  432) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (IDENTIFIER .  429) (TYPE .  431) (BODY .  430))
+      ((default . error) (IDENTIFIER .  428))
+      ((default . error) (TYPE .  427) (BODY .  426) (IDENTIFIER .  425))
+      ((default . error) (IDENTIFIER .  424))
       ((default . error) (END . (declaration . 0)) (PRIVATE . (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)) (ENTRY . (declaration . 0)) (IDENTIFIER . (declaration . 0)) (BEGIN . (declaration . 0)))
       ((default . error) (END . (declaration . 1)) (PRIVATE . (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)) (ENTRY . (declaration . 1)) (IDENTIFIER . (declaration . 1)) (BEGIN . (declaration . 1)))
       ((default . error) (WHEN . (aspect_clause . 3)) (PRIVATE . (aspect_clause . 3)) (END . (aspect_clause . 3)) (CASE . (aspect_clause . 3)) (BEGIN . (aspect_clause . 3)) (IDENTIFIER . (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)) (SUBTYPE . (aspect_clause . 3)) (TASK . (aspect_clause . 3)) (TYPE . (aspect_clause . 3)) (USE . (aspect_clause . 3)))
       ((default . error) (END . (declaration . 2)) (PRIVATE . (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)) (ENTRY . (declaration . 2)) (IDENTIFIER . (declaration . 2)) (BEGIN . (declaration . 2)))
       ((default . error) (PRIVATE . (body . 1)) (END . (body . 1)) (BEGIN . (body . 1)) (IDENTIFIER . (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)))
       ((default . error) (PRIVATE . (declarations . 0)) (END . (declarations . 0)) (BEGIN . (declarations . 0)) (IDENTIFIER . (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 . (declarations . 0)) (USE . (declarations . 0)))
-      ((default . error) (END . (declarative_part_opt . 1)) (PRIVATE . (declarative_part_opt . 1)) (BEGIN . (declarative_part_opt . 1)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
-      ((default . error) (END .  419) (PRIVATE .  420))
+      ((default . error) (END . (declarative_part_opt . 1)) (PRIVATE . (declarative_part_opt . 1)) (BEGIN . (declarative_part_opt . 1)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
+      ((default . error) (END .  421) (PRIVATE .  422))
       ((default . error) (END . (declaration . 3)) (PRIVATE . (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)) (ENTRY . (declaration . 3)) (IDENTIFIER . (declaration . 3)) (BEGIN . (declaration . 3)))
       ((default . error) (WHEN . (aspect_clause . 1)) (PRIVATE . (aspect_clause . 1)) (END . (aspect_clause . 1)) (CASE . (aspect_clause . 1)) (BEGIN . (aspect_clause . 1)) (IDENTIFIER . (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)) (SUBTYPE . (aspect_clause . 1)) (TASK . (aspect_clause . 1)) (TYPE . (aspect_clause . 1)) (USE . (aspect_clause . 1)))
       ((default . error) (END . (declaration . 4)) (PRIVATE . (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)) (ENTRY . (declaration . 4)) (IDENTIFIER . (declaration . 4)) (BEGIN . (declaration . 4)))
       ((default . error) (END . (declaration . 5)) (PRIVATE . (declaration . 5)) (USE . (declaration . 5)) (TYPE . (declaration . 5)) (TASK . (declaration . 5)) (SUBTYPE . (declaration . 5)) (PROTECTED . (declaration . 5)) (PROCEDURE . (declaration . 5)) (PRAGMA . (declaration . 5)) (PACKAGE . (declaration . 5)) (OVERRIDING . (declaration . 5)) (NOT . (declaration . 5)) (GENERIC . (declaration . 5)) (FUNCTION . (declaration . 5)) (FOR . (declaration . 5)) (ENTRY . (declaration . 5)) (IDENTIFIER . (declaration . 5)) (BEGIN . (declaration . 5)))
       ((default . error) (END . (declaration . 6)) (PRIVATE . (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)) (ENTRY . (declaration . 6)) (IDENTIFIER . (declaration . 6)) (BEGIN . (declaration . 6)))
       ((default . error) (PRIVATE . (renaming_declaration . 3)) (END . (renaming_declaration . 3)) (BEGIN . (renaming_declaration . 3)) (IDENTIFIER . (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 . (renaming_declaration . 3)) (SUBTYPE . (renaming_declaration . 3)) (TASK . (renaming_declaration . 3)) (TYPE . (renaming_declaration . 3)) (USE . (renaming_declaration . 3)))
-      ((default . error) (COMMA .  94) (COLON .  418))
+      ((default . error) (COMMA .  94) (COLON .  420))
       ((default . error) (PRIVATE . (type_declaration . 1)) (END . (type_declaration . 1)) (BEGIN . (type_declaration . 1)) (IDENTIFIER . (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_declaration . 1)) (TASK . (type_declaration . 1)) (TYPE . (type_declaration . 1)) (USE . (type_declaration . 1)))
       ((default . error) (END . (declaration . 7)) (PRIVATE . (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)) (ENTRY . (declaration . 7)) (IDENTIFIER . (declaration . 7)) (BEGIN . (declaration . 7)))
       ((default . error) (END . (declaration . 9)) (PRIVATE . (declaration . 9)) (USE . (declaration . 9)) (TYPE . (declaration . 9)) (TASK . (declaration . 9)) (SUBTYPE . (declaration . 9)) (PROTECTED . (declaration . 9)) (PROCEDURE . (declaration . 9)) (PRAGMA . (declaration . 9)) (PACKAGE . (declaration . 9)) (OVERRIDING . (declaration . 9)) (NOT . (declaration . 9)) (GENERIC . (declaration . 9)) (FUNCTION . (declaration . 9)) (FOR . (declaration . 9)) (ENTRY . (declaration . 9)) (IDENTIFIER . (declaration . 9)) (BEGIN . (declaration . 9)))
       ((default . error) (PRIVATE . (renaming_declaration . 0)) (END . (renaming_declaration . 0)) (BEGIN . (renaming_declaration . 0)) (IDENTIFIER . (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 . (renaming_declaration . 0)) (SUBTYPE . (renaming_declaration . 0)) (TASK . (renaming_declaration . 0)) (TYPE . (renaming_declaration . 0)) (USE . (renaming_declaration . 0)))
-      ((default . error) (ENTRY .  415) (FUNCTION .  39) (PROCEDURE .  40))
+      ((default . error) (ENTRY .  417) (FUNCTION .  39) (PROCEDURE .  40))
       ((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)) (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)) (NOT . (proper_body . 1)) (GENERIC . (proper_body . 1)) (FUNCTION . (proper_body . 1)) (FOR . (proper_body . 1)) (ENTRY . (proper_body . 1)) (IDENTIFIER . (proper_body . 1)) (BEGIN . (proper_body . 1)))
       ((default . error) (END . (body_stub . 1)) (PRIVATE . (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)) (IDENTIFIER . (body_stub . 1)) (BEGIN . (body_stub . 1)))
       ((default . error) (END . (declaration . 10)) (PRIVATE . (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 . (declaration . 10)) (ENTRY . (declaration . 10)) (IDENTIFIER . (declaration . 10)) (BEGIN . (declaration . 10)))
       ((default . error) (END . (full_type_declaration . 1)) (PRIVATE . (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_declaration . 1)) (NOT . (full_type_declaration . 1)) (GENERIC . (full_type_declaration . 1)) (FUNCTION . (full_type_declaration . 1)) (FOR . (full_type_declaration . 1)) (ENTRY . (full_type_declaration . 1)) (IDENTIFIER . (full_type_declaration . 1)) (BEGIN . (full_type_declaration . 1)))
       ((default . error) (END . (declaration . 15)) (PRIVATE . (declaration . 15)) (USE . (declaration . 15)) (TYPE . (declaration . 15)) (TASK . (declaration . 15)) (SUBTYPE . (declaration . 15)) (PROTECTED . (declaration . 15)) (PROCEDURE . (declaration . 15)) (PRAGMA . (declaration . 15)) (PACKAGE . (declaration . 15)) (OVERRIDING . (declaration . 15)) (NOT . (declaration . 15)) (GENERIC . (declaration . 15)) (FUNCTION . (declaration . 15)) (FOR . (declaration . 15)) (ENTRY . (declaration . 15)) (IDENTIFIER . (declaration . 15)) (BEGIN . (declaration . 15)))
       ((default . error) (END . (declaration . 16)) (PRIVATE . (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 . (declaration . 16)) (ENTRY . (declaration . 16)) (IDENTIFIER . (declaration . 16)) (BEGIN . (declaration . 16)))
-      ((default . error) (BEGIN . (declarative_part_opt . 0)) (END . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
-      ((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 . (simple_expression . 0)) (EQUAL . (simple_expression . 0)) (NOT . (simple_expression . 0)) (IN . (simple_expression . 0)) (IS . (simple_expression . 0)) (EQUAL_GREATER . (simple_expression . 0)) (BAR . (simple_expression . 0)) (WITH . (simple_expression . 0)) (THEN . (simple_expression . 0)) (RANGE . (simple_expression . 0)) (COMMA . (simple_expression . 0)) (RIGHT_PAREN . (simple_expression . 0)) (DIGITS . (simple_expression . 0)) (ELSE . (simple_expression . 0)) (ELSIF . (simple_expression . 0)) (PLUS .  342) (MINUS .  341) (AMPERSAND .  340))
+      ((default . error) (BEGIN . (declarative_part_opt . 0)) (END . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
+      ((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 . (simple_expression . 0)) (EQUAL . (simple_expression . 0)) (NOT . (simple_expression . 0)) (IN . (simple_expression . 0)) (IS . (simple_expression . 0)) (EQUAL_GREATER . (simple_expression . 0)) (BAR . (simple_expression . 0)) (WITH . (simple_expression . 0)) (THEN . (simple_expression . 0)) (RANGE . (simple_expression . 0)) (COMMA . (simple_expression . 0)) (RIGHT_PAREN . (simple_expression . 0)) (DIGITS . (simple_expression . 0)) (ELSE . (simple_expression . 0)) (ELSIF . (simple_expression . 0)) (PLUS .  344) (MINUS .  343) (AMPERSAND .  342))
       ((default . error) (IDENTIFIER . (binary_adding_operator . 2)) (STRING_LITERAL . (binary_adding_operator . 2)) (CHARACTER_LITERAL . (binary_adding_operator . 2)) (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)))
       ((default . error) (IDENTIFIER . (binary_adding_operator . 1)) (STRING_LITERAL . (binary_adding_operator . 1)) (CHARACTER_LITERAL . (binary_adding_operator . 1)) (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)))
       ((default . error) (IDENTIFIER . (binary_adding_operator . 0)) (STRING_LITERAL . (binary_adding_operator . 0)) (CHARACTER_LITERAL . (binary_adding_operator . 0)) (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)))
-      ((default . error) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (IDENTIFIER . (multiplying_operator . 1)) (STRING_LITERAL . (multiplying_operator . 1)) (CHARACTER_LITERAL . (multiplying_operator . 1)) (ABS . (multiplying_operator . 1)) (LEFT_PAREN . (multiplying_operator . 1)) (NEW . (multiplying_operator . 1)) (NOT . (multiplying_operator . 1)) (NULL . (multiplying_operator . 1)))
       ((default . error) (IDENTIFIER . (multiplying_operator . 0)) (STRING_LITERAL . (multiplying_operator . 0)) (CHARACTER_LITERAL . (multiplying_operator . 0)) (ABS . (multiplying_operator . 0)) (LEFT_PAREN . (multiplying_operator . 0)) (NEW . (multiplying_operator . 0)) (NOT . (multiplying_operator . 0)) (NULL . (multiplying_operator . 0)))
       ((default . error) (IDENTIFIER . (multiplying_operator . 2)) (STRING_LITERAL . (multiplying_operator . 2)) (CHARACTER_LITERAL . (multiplying_operator . 2)) (ABS . (multiplying_operator . 2)) (LEFT_PAREN . (multiplying_operator . 2)) (NEW . (multiplying_operator . 2)) (NOT . (multiplying_operator . 2)) (NULL . (multiplying_operator . 2)))
       ((default . error) (IDENTIFIER . (multiplying_operator . 3)) (STRING_LITERAL . (multiplying_operator . 3)) (CHARACTER_LITERAL . (multiplying_operator . 3)) (ABS . (multiplying_operator . 3)) (LEFT_PAREN . (multiplying_operator . 3)) (NEW . (multiplying_operator . 3)) (NOT . (multiplying_operator . 3)) (NULL . (multiplying_operator . 3)))
-      ((default . error) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (THEN .  409) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (ELSE .  407) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (ELSE .  404))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (THEN .  402))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  143) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (SEMICOLON .  398))
+      ((default . error) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (THEN .  411) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (ELSE .  409) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (ELSE .  406))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (THEN .  404))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  144) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (SEMICOLON .  400))
       ((default . error) (DOT .  86) (TICK .  87) (COLON_EQUAL . (primary . 3)) (OF . (primary . 3)) (LOOP . (primary . 3)) (DO . (primary . 3)) (STAR_STAR . (primary . 3)) (REM . (primary . 3)) (MOD . (primary . 3)) (STAR . (primary . 3)) (SLASH . (primary . 3)) (DOT_DOT . (primary . 3)) (AMPERSAND . (primary . 3)) (MINUS . (primary . 3)) (PLUS . (primary . 3)) (SEMICOLON . (primary . 3)) (XOR . (primary . 3)) (OR . (primary . 3)) (AND . (primary . 3)) (SLASH_EQUAL . (primary . 3)) (LESS_EQUAL . (primary . 3)) (LESS . (primary . 3)) (GREATER_EQUAL . (primary . 3)) (GREATER . (primary . 3)) (EQUAL . (primary . 3)) (NOT . (primary . 3)) (IN . (primary . 3)) (IS . (primary . 3)) (EQUAL_GREATER . (primary . 3)) (BAR . (primary . 3)) (WITH . (primary . 3)) (THEN . (primary . 3)) (RANGE . (primary . 3)) (COMMA . (primary . 3)) (RIGHT_PAREN . (primary . 3)) (DIGITS . (primary . 3)) (ELSE . (primary . 3)) (ELSIF . (primary . 3)) (LEFT_PAREN .  105))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (ALL .  394) (SOME .  395))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (ALL .  396) (SOME .  397))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (RIGHT_PAREN .  394))
+      ((default . error) (RIGHT_PAREN .  393))
       ((default . error) (RIGHT_PAREN .  392))
-      ((default . error) (RIGHT_PAREN .  391))
-      ((default . error) (RIGHT_PAREN .  390))
       ((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)) (SLASH . (factor . 2)) (STAR . (factor . 2)) (MOD . (factor . 2)) (REM . (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 . (factor . 2)) (LESS . (factor . 2)) (LESS_EQUAL . (factor . 2)) (SLASH_EQUAL . (factor . 2)) (IS . (factor . 2)) (EQUAL_GREATER . (factor . 2)) (BAR . (factor . 2)) (WITH . (factor . 2)) (THEN . (factor . 2)) (RANGE . (factor . 2)) (RIGHT_PAREN . (factor . 2)) (COMMA . (factor . 2)) (DIGITS . (factor . 2)) (ELSE . (factor . 2)) (ELSIF . (factor . 2)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (IDENTIFIER .  388))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (IDENTIFIER .  390))
       ((default . error) (BODY .  66))
-      ((default . error) (BODY .  387))
-      ((default . error) (BODY .  386))
+      ((default . error) (BODY .  389))
+      ((default . error) (BODY .  388))
       ((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) (WITH . (use_clause . 1)) (SEPARATE . (use_clause . 1)) (LIMITED . (use_clause . 1)) ($EOI . (use_clause . 1)) (PRIVATE . (use_clause . 1)) (END . (use_clause . 1)) (BEGIN . (use_clause . 1)) (IDENTIFIER . (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_clause . 1)) (SUBTYPE . (use_clause . 1)) (TASK . (use_clause . 1)) (TYPE . (use_clause . 1)) (USE . (use_clause . 1)))
-      ((default . error) (SEMICOLON .  384))
-      ((default . error) (BEGIN .  383))
+      ((default . error) (SEMICOLON .  386))
+      ((default . error) (BEGIN .  385))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (DOT .  86) (TICK .  87) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107) (LEFT_PAREN .  105))
       ((default . error) (DOT .  86) (TICK .  87) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107) (LEFT_PAREN .  105))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
       ((default . error) (BEGIN . (subprogram_renaming_declaration . 0)) (IDENTIFIER . (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)) (END . (subprogram_renaming_declaration . 0)) (WITH . (subprogram_renaming_declaration . 0)) (USE . (subprogram_renaming_declaration . 0)) (SEPARATE . (subprogram_renaming_declaration . 0)) (PROCEDURE . (subprogram_renaming_declaration . 0)) (PRIVATE . (subprogram_renaming_declaration . 0)) (PRAGMA . (subprogram_renaming_declaration . 0)) (PACKAGE . (subprogram_renaming_declaration . 0)) (OVERRIDING . (subprogram_renaming_declaration . 0)) (NOT . (subprogram_renaming_declaration . 0)) (LIMITED . (subprogram_renaming_declaration . 0)) (GENERIC . (subprogram_renaming_declaration . 0)) (FUNCTION . (subprogram_renaming_declaration . 0)) ($EOI . (subprogram_renaming_declaration . 0)))
       ((default . error) (IS . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (IDENTIFIER .  603))
-      ((default . error) (IDENTIFIER .  602))
-      ((default . error) (EQUAL_GREATER .  601))
+      ((default . error) (IDENTIFIER .  605))
+      ((default . error) (IDENTIFIER .  604))
+      ((default . error) (EQUAL_GREATER .  603))
       ((default . error) (COMMA . (pragma_argument_association . 0)) (RIGHT_PAREN . (pragma_argument_association . 0)))
       ((default . error) (OF . (primary . 6)) (COLON_EQUAL . (primary . 6)) (DO . (primary . 6)) (LOOP . (primary . 6)) (ELSIF . (primary . 6)) (ELSE . (primary . 6)) (DIGITS . (primary . 6)) (RIGHT_PAREN . (primary . 6)) (COMMA . (primary . 6)) (RANGE . (primary . 6)) (THEN . (primary . 6)) (WITH . (primary . 6)) (BAR . (primary . 6)) (EQUAL_GREATER . (primary . 6)) (IS . (primary . 6)) (IN . (primary . 6)) (NOT . (primary . 6)) (EQUAL . (primary . 6)) (GREATER . (primary . 6)) (GREATER_EQUAL . (primary . 6)) (LESS . (primary . 6)) (LESS_EQUAL . (primary . 6)) (SLASH_EQUAL . (primary . 6)) (AND . (primary . 6)) (OR . (primary . 6)) (XOR . (primary . 6)) (SEMICOLON . (primary . 6)) (PLUS . (primary . 6)) (MINUS . (primary . 6)) (AMPERSAND . (primary . 6)) (DOT_DOT . (primary . 6)) (SLASH . (primary . 6)) (STAR . (primary . 6)) (MOD . (primary . 6)) (REM . (primary . 6)) (STAR_STAR . (primary . 6)))
       ((default . error) (OF . (primary . 4)) (COLON_EQUAL . (primary . 4)) (DO . (primary . 4)) (LOOP . (primary . 4)) (ELSIF . (primary . 4)) (ELSE . (primary . 4)) (DIGITS . (primary . 4)) (RIGHT_PAREN . (primary . 4)) (COMMA . (primary . 4)) (RANGE . (primary . 4)) (THEN . (primary . 4)) (WITH . (primary . 4)) (BAR . (primary . 4)) (EQUAL_GREATER . (primary . 4)) (IS . (primary . 4)) (IN . (primary . 4)) (NOT . (primary . 4)) (EQUAL . (primary . 4)) (GREATER . (primary . 4)) (GREATER_EQUAL . (primary . 4)) (LESS . (primary . 4)) (LESS_EQUAL . (primary . 4)) (SLASH_EQUAL . (primary . 4)) (AND . (primary . 4)) (OR . (primary . 4)) (XOR . (primary . 4)) (SEMICOLON . (primary . 4)) (PLUS . (primary . 4)) (MINUS . (primary . 4)) (AMPERSAND . (primary . 4)) (DOT_DOT . (primary . 4)) (SLASH . (primary . 4)) (STAR . (primary . 4)) (MOD . (primary . 4)) (REM . (primary . 4)) (STAR_STAR . (primary . 4)))
       ((default . error) (OF . (primary . 5)) (COLON_EQUAL . (primary . 5)) (DO . (primary . 5)) (LOOP . (primary . 5)) (ELSIF . (primary . 5)) (ELSE . (primary . 5)) (DIGITS . (primary . 5)) (RIGHT_PAREN . (primary . 5)) (COMMA . (primary . 5)) (RANGE . (primary . 5)) (THEN . (primary . 5)) (WITH . (primary . 5)) (BAR . (primary . 5)) (EQUAL_GREATER . (primary . 5)) (IS . (primary . 5)) (IN . (primary . 5)) (NOT . (primary . 5)) (EQUAL . (primary . 5)) (GREATER . (primary . 5)) (GREATER_EQUAL . (primary . 5)) (LESS . (primary . 5)) (LESS_EQUAL . (primary . 5)) (SLASH_EQUAL . (primary . 5)) (AND . (primary . 5)) (OR . (primary . 5)) (XOR . (primary . 5)) (SEMICOLON . (primary . 5)) (PLUS . (primary . 5)) (MINUS . (primary . 5)) (AMPERSAND . (primary . 5)) (DOT_DOT . (primary . 5)) (SLASH . (primary . 5)) (STAR . (primary . 5)) (MOD . (primary . 5)) (REM . (primary . 5)) (STAR_STAR . (primary . 5)))
-      ((default . error) (THEN .  600))
+      ((default . error) (THEN .  602))
       ((default . error) (IDENTIFIER . (quantifier . 0)))
       ((default . error) (IDENTIFIER . (quantifier . 1)))
-      ((default . error) (IDENTIFIER .  598))
-      ((default . error) (IS .  597))
+      ((default . error) (IDENTIFIER .  600))
+      ((default . error) (IS .  599))
       ((default . error) (WHEN . (pragma . 0)) (THEN . (pragma . 0)) (OR . (pragma . 0)) (ELSIF . (pragma . 0)) (ELSE . (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 . (pragma . 0)) (CASE . (pragma . 0)) (ABORT . (pragma . 0)) (ACCEPT . (pragma . 0)) (CHARACTER_LITERAL . (pragma . 0)) (STRING_LITERAL . (pragma . 0)) (LESS_LESS . (pragma . 0)) (EXCEPTION . (pragma . 0)) (USE . (pragma . 0)) (TYPE . (pragma . 0)) (TASK . (pragma . 0)) (SUBTYPE . (pragma . 0)) (PROTECTED . (pragma . 0)) (PROCEDURE . (pragma . 0)) (PRAGMA . (pragma . 0)) (PACKAGE . (pragma . 0)) (OVERRIDING . (pragma . 0)) (NOT . (pragma . 0)) (GENERIC . (pragma . 0)) (FUNCTION . (pragma . 0)) (FOR . (pragma . 0)) (ENTRY . (pragma . 0)) (IDENTIFIER . (pragma . 0)) (BEGIN . (pragma . 0)) (END . (pragma . 0)) (PRIVATE . (pragma . 0)) (WITH . (pragma . 0)) ($EOI . (pragma . 0)) (LIMITED . (pragma . 0)) (SEPARATE . (pragma . 0)))
       ((default . error) (RIGHT_PAREN . (pragma_argument_association_list . 1)) (COMMA . (pragma_argument_association_list . 1)))
       ((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)) (GREATER . (factor . 0)) (EQUAL . (factor . 0)) (NOT . (factor . 0)) (IN . (factor . 0)) (AND . (factor . 0)) (OR . (factor . 0)) (XOR . (factor . 0)) (SEMICOLON . (factor . 0)) (REM . (factor . 0)) (MOD . (factor . 0)) (STAR . (factor . 0)) (SLASH . (factor . 0)) (DOT_DOT . (factor . 0)) (AMPERSAND . (factor . 0)) (MINUS . (factor . 0)) (PLUS . (factor . 0)))
       ((default . error) (DO . (relation_and_list . 1)) (LOOP . (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_and_list . 1)) (IS . (relation_and_list . 1)) (AND . (relation_and_list . 1)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (DO . (relation_or_list . 1)) (LOOP . (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)) (IS . (relation_or_list . 1)) (OR . (relation_or_list . 1)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (DO . (relation_xor_list . 1)) (LOOP . (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_xor_list . 1)) (IS . (relation_xor_list . 1)) (XOR . (relation_xor_list . 1)))
       ((default . error) (DO . (relation_xor_list . 0)) (LOOP . (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_xor_list . 0)) (IS . (relation_xor_list . 0)) (XOR . (relation_xor_list . 0)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (DO . (relation_or_list . 0)) (LOOP . (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)) (IS . (relation_or_list . 0)) (OR . (relation_or_list . 0)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (DO . (relation_and_list . 0)) (LOOP . (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_and_list . 0)) (IS . (relation_and_list . 0)) (AND . (relation_and_list . 0)))
       ((default . error) (DO . (relation . 1)) (LOOP . (relation . 1)) (COMMA . (relation . 1)) (RIGHT_PAREN . (relation . 1)) (ELSIF . (relation . 1)) (ELSE . (relation . 1)) (EQUAL_GREATER . (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 . (term . 1)) (SLASH_EQUAL . (term . 1)) (AND . (term . 1)) (OR . (term . 1)) (XOR . (term . 1)) (SEMICOLON . (term . 1)) (PLUS . (term . 1)) (MINUS . (term . 1)) (AMPERSAND . (term . 1)) (DOT_DOT . (term . 1)) (SLASH . (term . 1)) (STAR . (term . 1)) (MOD . (term . 1)) (REM . (term . 1)))
-      ((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 . (term_list . 1)) (GREATER_EQUAL . (term_list . 1)) (GREATER . (term_list . 1)) (EQUAL . (term_list . 1)) (NOT . (term_list . 1)) (IN . (term_list . 1)) (AND . (term_list . 1)) (OR . (term_list . 1)) (XOR . (term_list . 1)) (SEMICOLON . (term_list . 1)) (DOT_DOT . (term_list . 1)) (AMPERSAND . (term_list . 1)) (MINUS . (term_list . 1)) (PLUS . (term_list . 1)) (STAR .  345) (SLASH .  344) (MOD .  346) (REM .  347))
-      ((default . error) (BEGIN .  591) (END .  592))
-      ((default . error) (IDENTIFIER .  590))
-      ((default . error) (WITH . (subprogram_specification . 0)) (IS . ( 589 (subprogram_specification . 0))) (SEMICOLON . (subprogram_specification . 0)) (RENAMES . (subprogram_specification . 0)))
-      ((default . error) (SEMICOLON .  126) (RENAMES .  127) (IS . ( 588 (aspect_specification_opt . 0))) (WITH .  107))
-      ((default . error) (EXCEPTION .  586) (CONSTANT . ( 585 (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 .  507))
+      ((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 . (term_list . 1)) (GREATER_EQUAL . (term_list . 1)) (GREATER . (term_list . 1)) (EQUAL . (term_list . 1)) (NOT . (term_list . 1)) (IN . (term_list . 1)) (AND . (term_list . 1)) (OR . (term_list . 1)) (XOR . (term_list . 1)) (SEMICOLON . (term_list . 1)) (DOT_DOT . (term_list . 1)) (AMPERSAND . (term_list . 1)) (MINUS . (term_list . 1)) (PLUS . (term_list . 1)) (STAR .  347) (SLASH .  346) (MOD .  348) (REM .  349))
+      ((default . error) (BEGIN .  593) (END .  594))
+      ((default . error) (IDENTIFIER .  592))
+      ((default . error) (IS . ( 591 (subprogram_specification . 0))) (WITH . (subprogram_specification . 0)) (SEMICOLON . (subprogram_specification . 0)) (RENAMES . (subprogram_specification . 0)))
+      ((default . error) (RENAMES .  126) (SEMICOLON . (aspect_specification_opt . 0)) (IS . ( 590 (aspect_specification_opt . 0))) (WITH .  107))
+      ((default . error) (EXCEPTION .  588) (CONSTANT . ( 587 (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 .  509))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
+      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
       ((default . error) (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)) (IDENTIFIER . (declarations . 1)) (BEGIN . (declarations . 1)) (END . (declarations . 1)) (PRIVATE . (declarations . 1)))
-      ((default . error) (SEMICOLON .  581) (IS . (discriminant_part_opt . 0)) (LEFT_PAREN .  196))
+      ((default . error) (SEMICOLON .  583) (IS . (discriminant_part_opt . 0)) (LEFT_PAREN .  197))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (IS . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (IDENTIFIER .  579))
-      ((default . error) (IDENTIFIER .  578))
-      ((default . error) (IS .  577))
+      ((default . error) (IDENTIFIER .  581))
+      ((default . error) (IDENTIFIER .  580))
+      ((default . error) (IS .  579))
       ((default . error) (IS . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (IDENTIFIER .  575))
-      ((default . error) (IDENTIFIER .  574))
+      ((default . error) (IDENTIFIER .  577))
+      ((default . error) (IDENTIFIER .  576))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (USE . ((direct_name . 0) (name . 0))) (LEFT_PAREN . (name . 0)) (DOT . (name . 0)) (TICK . (name . 0)))
       ((default . error) (USE . ((direct_name . 1) (name . 7))) (LEFT_PAREN . (name . 7)) (DOT . (name . 7)) (TICK . (name . 7)))
-      ((default . error) (USE . ( 572 (name . 4))) (LEFT_PAREN . (name . 4)) (DOT . (name . 4)) (TICK . (name . 4)))
-      ((default . error) (USE .  571))
-      ((default . error) (DOT .  86) (TICK .  87) (USE .  570) (LEFT_PAREN .  105))
-      ((default . error) (EXCEPTION .  567) (IDENTIFIER . (null_exclusion_opt . 0)) (STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . (null_exclusion_opt . 0)) (ACCESS . (null_exclusion_opt . 0)) (NOT .  206))
+      ((default . error) (USE . ( 574 (name . 4))) (LEFT_PAREN . (name . 4)) (DOT . (name . 4)) (TICK . (name . 4)))
+      ((default . error) (USE .  573))
+      ((default . error) (DOT .  86) (TICK .  87) (USE .  572) (LEFT_PAREN .  105))
+      ((default . error) (EXCEPTION .  569) (IDENTIFIER . (null_exclusion_opt . 0)) (STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . (null_exclusion_opt . 0)) (ACCESS . (null_exclusion_opt . 0)) (NOT .  207))
       ((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) (DOT .  86) (TICK .  87) (BAR . (discrete_choice . 1)) (EQUAL_GREATER . (discrete_choice . 1)) (LEFT_PAREN .  105))
       ((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 .  262) (SLASH_EQUAL .  267) (LESS .  265) (LESS_EQUAL .  266) (GREATER .  263) (GREATER_EQUAL .  264))
+      ((default . error) (XOR . (choice_relation . 1)) (OR . (choice_relation . 1)) (BAR . (choice_relation . 1)) (EQUAL_GREATER . (choice_relation . 1)) (AND . (choice_relation . 1)) (EQUAL .  264) (SLASH_EQUAL .  269) (LESS .  267) (LESS_EQUAL .  268) (GREATER .  265) (GREATER_EQUAL .  266))
       ((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 .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (BAR . (choice_relation_xor_list . 0)) (EQUAL_GREATER . (choice_relation_xor_list . 0)) (XOR . (choice_relation_xor_list . 0)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (BAR . (choice_relation_or_list . 0)) (EQUAL_GREATER . (choice_relation_or_list . 0)) (OR . (choice_relation_or_list . 0)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((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 .  261) (BAR . (choice_relation . 1)) (EQUAL_GREATER . (choice_relation . 1)) (AND . (choice_relation . 1)) (OR . (choice_relation . 1)) (XOR . (choice_relation . 1)) (EQUAL .  262) (SLASH_EQUAL .  267) (LESS .  265) (LESS_EQUAL .  266) (GREATER .  263) (GREATER_EQUAL .  264))
-      ((default . error) (LOOP . (range . 1)) (DO . (range . 1)) (COMMA . (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)) (RIGHT_PAREN . (range . 1)) (EQUAL_GREATER . (range . 1)) (BAR . (range . 1)) (LEFT_PAREN .  561))
+      ((default . error) (DOT_DOT .  263) (BAR . (choice_relation . 1)) (EQUAL_GREATER . (choice_relation . 1)) (AND . (choice_relation . 1)) (OR . (choice_relation . 1)) (XOR . (choice_relation . 1)) (EQUAL .  264) (SLASH_EQUAL .  269) (LESS .  267) (LESS_EQUAL .  268) (GREATER .  265) (GREATER_EQUAL .  266))
+      ((default . error) (LOOP . (range . 1)) (DO . (range . 1)) (COMMA . (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)) (RIGHT_PAREN . (range . 1)) (EQUAL_GREATER . (range . 1)) (BAR . (range . 1)) (LEFT_PAREN .  563))
       ((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 . ((relation . 1) (choice_relation . 0))) (OR . ((relation . 1) (choice_relation . 0))) (XOR . ((relation . 1) (choice_relation . 0))))
-      ((default . error) (PLUS .  142) (MINUS .  141) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (BAR .  559) (DO . (relation . 3)) (LOOP . (relation . 3)) (COMMA . (relation . 3)) (RIGHT_PAREN . (relation . 3)) (ELSIF . (relation . 3)) (ELSE . (relation . 3)) (EQUAL_GREATER . (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 .  143) (MINUS .  142) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
+      ((default . error) (BAR .  561) (DO . (relation . 3)) (LOOP . (relation . 3)) (COMMA . (relation . 3)) (RIGHT_PAREN . (relation . 3)) (ELSIF . (relation . 3)) (ELSE . (relation . 3)) (EQUAL_GREATER . (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)) (RIGHT_PAREN . (membership_choice_list . 0)) (ELSIF . (membership_choice_list . 0)) (ELSE . (membership_choice_list . 0)) (EQUAL_GREATER . (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_choice_list . 0)) (IS . (membership_choice_list . 0)) (AND . (membership_choice_list . 0)) (OR . (membership_choice_list . 0)) (XOR . (membership_choice_list . 0)) (BAR . (membership_choice_list . 0)))
       ((default . error) (DO . (membership_choice . 1)) (LOOP . (membership_choice . 1)) (COMMA . (membership_choice . 1)) (RIGHT_PAREN . (membership_choice . 1)) (ELSIF . (membership_choice . 1)) (ELSE . (membership_choice . 1)) (EQUAL_GREATER . (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 . (membership_choice . 1)) (OR . (membership_choice . 1)) (XOR . (membership_choice . 1)) (BAR . (membership_choice . 1)))
-      ((default . error) (DOT_DOT .  261) (DO . (membership_choice . 0)) (LOOP . (membership_choice . 0)) (COMMA . (membership_choice . 0)) (RIGHT_PAREN . (membership_choice . 0)) (ELSIF . (membership_choice . 0)) (ELSE . (membership_choice . 0)) (EQUAL_GREATER . (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)) (AND . (membership_choice . 0)) (OR . (membership_choice . 0)) (XOR . (membership_choice . 0)) (BAR . (membership_choice . 0)))
+      ((default . error) (DOT_DOT .  263) (DO . (membership_choice . 0)) (LOOP . (membership_choice . 0)) (COMMA . (membership_choice . 0)) (RIGHT_PAREN . (membership_choice . 0)) (ELSIF . (membership_choice . 0)) (ELSE . (membership_choice . 0)) (EQUAL_GREATER . (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)) (AND . (membership_choice . 0)) (OR . (membership_choice . 0)) (XOR . (membership_choice . 0)) (BAR . (membership_choice . 0)))
       ((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) (BEGIN . (package_renaming_declaration . 0)) (IDENTIFIER . (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)) (END . (package_renaming_declaration . 0)) (WITH . (package_renaming_declaration . 0)) (USE . (package_renaming_declaration . 0)) (SEPARATE . (package_renaming_declaration . 0)) (PROCEDURE . (package_renaming_declaration . 0)) (PRIVATE . (package_renaming_declaration . 0)) (PRAGMA . (package_renaming_declaration . 0)) (PACKAGE . (package_renaming_declaration . 0)) (OVERRIDING . (package_renaming_declaration . 0)) (NOT . (package_renaming_declaration . 0)) (LIMITED . (package_renaming_declaration . 0)) (GENERIC . (package_renaming_declaration . 0)) (FUNCTION . (package_renaming_declaration . 0)) ($EOI . (package_renaming_declaration . 0)))
       ((default . error) (SEMICOLON . (association_list . 1)) (IS . (association_list . 1)) (COMMA . (association_list . 1)) (RIGHT_PAREN . (association_list . 1)))
+      ((default . error) (SEMICOLON .  560))
+      ((default . error) (SEMICOLON .  559))
       ((default . error) (SEMICOLON .  558))
       ((default . error) (SEMICOLON .  557))
-      ((default . error) (SEMICOLON .  556))
-      ((default . error) (SEMICOLON .  555))
-      ((default . error) (ACCESS . (null_exclusion_opt . 0)) (NOT .  550) (IDENTIFIER .  549) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (ACCESS . (null_exclusion_opt . 0)) (NOT .  552) (IDENTIFIER .  551) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (RIGHT_PAREN . (discriminant_specification_opt . 0)) (SEMICOLON . (discriminant_specification_opt . 0)) (IDENTIFIER .  71))
       ((default . error) (IS . (discriminant_part_opt . 2)) (WITH . (discriminant_part_opt . 2)) (SEMICOLON . (discriminant_part_opt . 2)))
       ((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)) (IDENTIFIER . (formal_type_declaration . 2)) (PRAGMA . (formal_type_declaration . 2)) (TYPE . (formal_type_declaration . 2)) (WITH . (formal_type_declaration . 2)))
-      ((default . error) (TAGGED .  547) (NEW . (abstract_limited_synchronized_opt . 3)) (SYNCHRONIZED .  546) (LIMITED .  545))
-      ((default . error) (LEFT_PAREN .  544))
-      ((default . error) (BOX .  543))
-      ((default . error) (BOX .  542))
+      ((default . error) (TAGGED .  549) (NEW . (abstract_limited_synchronized_opt . 3)) (SYNCHRONIZED .  548) (LIMITED .  547))
+      ((default . error) (LEFT_PAREN .  546))
+      ((default . error) (BOX .  545))
+      ((default . error) (BOX .  544))
       ((default . error) (SEMICOLON . (interface_type_definition . 8)) (WITH . (interface_type_definition . 8)))
+      ((default . error) (BOX .  543))
+      ((default . error) (INTERFACE .  542) (PRIVATE . (abstract_tagged_limited_opt . 5)) (NEW . (abstract_limited_synchronized_opt . 4)))
       ((default . error) (BOX .  541))
-      ((default . error) (INTERFACE .  540) (PRIVATE . (abstract_tagged_limited_opt . 5)) (NEW . (abstract_limited_synchronized_opt . 4)))
+      ((default . error) (INTERFACE .  540))
       ((default . error) (BOX .  539))
-      ((default . error) (INTERFACE .  538))
-      ((default . error) (BOX .  537))
-      ((default . error) (INTERFACE .  536) (NEW . (abstract_limited_synchronized_opt . 5)))
-      ((default . error) (PRIVATE . (abstract_tagged_limited_opt . 4)) (LIMITED .  534) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (INTERFACE .  533))
-      ((default . error) (NEW .  532))
-      ((default . error) (PRIVATE .  531))
+      ((default . error) (INTERFACE .  538) (NEW . (abstract_limited_synchronized_opt . 5)))
+      ((default . error) (PRIVATE . (abstract_tagged_limited_opt . 4)) (LIMITED .  536) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
+      ((default . error) (INTERFACE .  535))
+      ((default . error) (NEW .  534))
+      ((default . error) (PRIVATE .  533))
       ((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 .  107))
       ((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) (SEMICOLON .  529))
-      ((default . error) (SEMICOLON .  528))
+      ((default . error) (SEMICOLON .  531))
+      ((default . error) (SEMICOLON .  530))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (DOT .  86) (TICK .  87) (COLON_EQUAL .  524) (LEFT_PAREN .  105) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (SEMICOLON .  522))
-      ((default . error) (DOT .  86) (TICK .  87) (RIGHT_PAREN . (parameter_and_result_profile . 0)) (DO . (parameter_and_result_profile . 0)) (RENAMES . (parameter_and_result_profile . 0)) (COLON_EQUAL . (parameter_and_result_profile . 0)) (SEMICOLON . (parameter_and_result_profile . 0)) (IS . (parameter_and_result_profile . 0)) (WITH . (parameter_and_result_profile . 0)) (LEFT_PAREN .  105))
+      ((default . error) (DOT .  86) (TICK .  87) (COLON_EQUAL .  526) (LEFT_PAREN .  105) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (SEMICOLON .  524))
+      ((default . error) (RIGHT_PAREN . (parameter_and_result_profile . 0)) (DO . (parameter_and_result_profile . 0)) (RENAMES . (parameter_and_result_profile . 0)) (COLON_EQUAL . (parameter_and_result_profile . 0)) (SEMICOLON . (parameter_and_result_profile . 0)) (WITH . (parameter_and_result_profile . 0)) (IS . (parameter_and_result_profile . 0)))
       ((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 .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (FUNCTION .  519) (PROCEDURE .  520))
+      ((default . error) (FUNCTION .  521) (PROCEDURE .  522))
       ((default . error) (IN . (aliased_opt . 1)) (OUT . (aliased_opt . 1)) (ARRAY . (aliased_opt . 1)) (CONSTANT . (aliased_opt . 1)) (IDENTIFIER . (aliased_opt . 1)) (STRING_LITERAL . (aliased_opt . 1)) (CHARACTER_LITERAL . (aliased_opt . 1)) (ACCESS . (aliased_opt . 1)) (NOT . (aliased_opt . 1)))
-      ((default . error) (SEMICOLON . (parameter_specification . 3)) (RIGHT_PAREN . (parameter_specification . 3)) (COLON_EQUAL .  518))
-      ((default . error) (NOT . (mode_opt . 0)) (IDENTIFIER . (mode_opt . 0)) (STRING_LITERAL . (mode_opt . 0)) (CHARACTER_LITERAL . (mode_opt . 0)) (IN .  202) (OUT .  203))
+      ((default . error) (SEMICOLON . (parameter_specification . 3)) (RIGHT_PAREN . (parameter_specification . 3)) (COLON_EQUAL .  520))
+      ((default . error) (NOT . (mode_opt . 0)) (IDENTIFIER . (mode_opt . 0)) (STRING_LITERAL . (mode_opt . 0)) (CHARACTER_LITERAL . (mode_opt . 0)) (IN .  203) (OUT .  204))
       ((default . error) (RIGHT_PAREN . (parameter_specification_list . 1)) (SEMICOLON . (parameter_specification_list . 1)))
-      ((default . error) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  170) (IDENTIFIER .  47) (CHARACTER_LITERAL .  168) (STRING_LITERAL .  48) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  169) (NULL .  515) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  171) (IDENTIFIER .  47) (CHARACTER_LITERAL .  169) (STRING_LITERAL .  48) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  170) (NULL .  517) (NEW .  147) (LEFT_PAREN .  146))
       ((default . error) (DO . (aggregate . 0)) (LOOP . (aggregate . 0)) (USE . (aggregate . 0)) (COLON_EQUAL . (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 . 0)) (DECLARE . (aggregate . 0)) (CASE . (aggregate . 0)) (BEGIN . (aggregate . 0)) (ABORT . (aggregate . 0)) (ACCEPT . (aggregate . 0)) (CHARACTER_LITERAL . (aggregate . 0)) (STRING_LITERAL . (aggregate . 0)) (IDENTIFIER . (aggregate . 0)) (LESS_LESS . (aggregate . 0)) (OF . (aggregate . 0)) (ELSIF . (aggregate . 0)) (ELSE . (aggregate . 0)) (DIGITS . (aggregate . 0)) (COMMA . (aggregate . 0)) (RIGHT_PAREN . (aggregate . 0)) (RANGE . (aggregate . 0)) (THEN . (aggregate . 0)) (WITH . (aggregate . 0)) (BAR . (aggregate . 0)) (EQUAL_GREATER . (aggregate . 0)) (IS . (aggregate . 0)) (SLASH_EQUAL . (aggregate . 0)) (LESS_EQUAL . (aggregate . 0)) (LESS . (aggregate . 0)) (GREATER_EQUAL . (aggregate . 0)) (GREATER . (aggregate . 0)) (EQUAL . (aggregate . 0)) (NOT . (aggregate . 0)) (IN . (aggregate . 0)) (AND . (aggregate . 0)) (OR . (aggregate . 0)) (XOR . (aggregate . 0)) (SEMICOLON . (aggregate . 0)) (STAR_STAR . (aggregate . 0)) (REM . (aggregate . 0)) (MOD . (aggregate . 0)) (STAR . (aggregate . 0)) (SLASH . (aggregate . 0)) (DOT_DOT . (aggregate . 0)) (AMPERSAND . (aggregate . 0)) (MINUS . (aggregate . 0)) (PLUS . (aggregate . 0)) (LEFT_PAREN . (aggregate . 0)) (DOT . (aggregate . 0)) (TICK . (aggregate . 0)) (RENAMES . (aggregate . 0)) (RETURN . (aggregate . 0)))
-      ((default . error) (RIGHT_PAREN .  514))
+      ((default . error) (RIGHT_PAREN .  516))
       ((default . error) (OF . (aggregate . 3)) (LESS_LESS . (aggregate . 3)) (IDENTIFIER . (aggregate . 3)) (STRING_LITERAL . (aggregate . 3)) (CHARACTER_LITERAL . (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 . (aggregate . 3)) (COLON_EQUAL . (aggregate . 3)) (USE . (aggregate . 3)) (LOOP . (aggregate . 3)) (DO . (aggregate . 3)) (RETURN . (aggregate . 3)) (RENAMES . (aggregate . 3)) (TICK . (aggregate . 3)) (DOT . (aggregate . 3)) (LEFT_PAREN . (aggregate . 3)) (PLUS . (aggregate . 3)) (MINUS . (aggregate . 3)) (AMPERSAND . (aggregate . 3)) (DOT_DOT . (aggregate . 3)) (SLASH . (aggregate . 3)) (STAR . (aggregate . 3)) (MOD . (aggregate . 3)) (REM . (aggregate . 3)) (STAR_STAR . (aggregate . 3)) (SEMICOLON . (aggregate . 3)) (XOR . (aggregate . 3)) (OR . (aggregate . 3)) (AND . (aggregate . 3)) (IN . (aggregate . 3)) (NOT . (aggregate . 3)) (EQUAL . (aggregate . 3)) (GREATER . (aggregate . 3)) (GREATER_EQUAL . (aggregate . 3)) (LESS . (aggregate . 3)) (LESS_EQUAL . (aggregate . 3)) (SLASH_EQUAL . (aggregate . 3)) (IS . (aggregate . 3)) (EQUAL_GREATER . (aggregate . 3)) (BAR . (aggregate . 3)) (WITH . (aggregate . 3)) (THEN . (aggregate . 3)) (RANGE . (aggregate . 3)) (RIGHT_PAREN . (aggregate . 3)) (COMMA . (aggregate . 3)) (DIGITS . (aggregate . 3)) (ELSE . (aggregate . 3)) (ELSIF . (aggregate . 3)))
-      ((default . error) (PLUS . (primary . 0)) (MINUS . (primary . 0)) (AMPERSAND . (primary . 0)) (DOT_DOT . (primary . 0)) (IN . (primary . 0)) (NOT . (primary . 0)) (EQUAL . (primary . 0)) (GREATER . (primary . 0)) (GREATER_EQUAL . (primary . 0)) (LESS . (primary . 0)) (LESS_EQUAL . (primary . 0)) (SLASH_EQUAL . (primary . 0)) (RIGHT_PAREN . (primary . 0)) (COMMA . (primary . 0)) (SLASH . (primary . 0)) (STAR . (primary . 0)) (MOD . (primary . 0)) (REM . (primary . 0)) (STAR_STAR . (primary . 0)) (BAR . (primary . 0)) (EQUAL_GREATER . (primary . 0)) (AND . (primary . 0)) (OR . (primary . 0)) (XOR . (primary . 0)) (RECORD .  780))
-      ((default . error) (COMMA .  258) (RIGHT_PAREN .  779))
-      ((default . error) (IDENTIFIER . (null_exclusion_opt . 0)) (STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . (null_exclusion_opt . 0)) (NOT .  206))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (RETURN .  89) (LEFT_PAREN .  774))
-      ((default . error) (IS . (parameter_profile_opt . 0)) (SEMICOLON . (parameter_profile_opt . 0)) (WITH . (parameter_profile_opt . 0)) (COLON_EQUAL . (parameter_profile_opt . 0)) (RENAMES . (parameter_profile_opt . 0)) (DO . (parameter_profile_opt . 0)) (RIGHT_PAREN . (parameter_profile_opt . 0)) (LEFT_PAREN .  774))
+      ((default . error) (PLUS . (primary . 0)) (MINUS . (primary . 0)) (AMPERSAND . (primary . 0)) (DOT_DOT . (primary . 0)) (IN . (primary . 0)) (NOT . (primary . 0)) (EQUAL . (primary . 0)) (GREATER . (primary . 0)) (GREATER_EQUAL . (primary . 0)) (LESS . (primary . 0)) (LESS_EQUAL . (primary . 0)) (SLASH_EQUAL . (primary . 0)) (RIGHT_PAREN . (primary . 0)) (COMMA . (primary . 0)) (SLASH . (primary . 0)) (STAR . (primary . 0)) (MOD . (primary . 0)) (REM . (primary . 0)) (STAR_STAR . (primary . 0)) (BAR . (primary . 0)) (EQUAL_GREATER . (primary . 0)) (AND . (primary . 0)) (OR . (primary . 0)) (XOR . (primary . 0)) (RECORD .  782))
+      ((default . error) (COMMA .  260) (RIGHT_PAREN .  781))
+      ((default . error) (IDENTIFIER . (null_exclusion_opt . 0)) (STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . (null_exclusion_opt . 0)) (NOT .  207))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (RETURN .  89) (LEFT_PAREN .  776))
+      ((default . error) (IS . (parameter_profile_opt . 0)) (SEMICOLON . (parameter_profile_opt . 0)) (WITH . (parameter_profile_opt . 0)) (COLON_EQUAL . (parameter_profile_opt . 0)) (RENAMES . (parameter_profile_opt . 0)) (DO . (parameter_profile_opt . 0)) (RIGHT_PAREN . (parameter_profile_opt . 0)) (LEFT_PAREN .  776))
       ((default . error) (DOT .  86) (TICK .  87) (RIGHT_PAREN . (access_definition . 0)) (DO . (access_definition . 0)) (RENAMES . (access_definition . 0)) (COLON_EQUAL . (access_definition . 0)) (WITH . (access_definition . 0)) (SEMICOLON . (access_definition . 0)) (IS . (access_definition . 0)) (LEFT_PAREN .  105))
       ((default . error) (WITH . (formal_object_declaration . 3)) (TYPE . (formal_object_declaration . 3)) (PRAGMA . (formal_object_declaration . 3)) (IDENTIFIER . (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 .  107))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (SEMICOLON .  771))
-      ((default . error) (DOT .  86) (TICK .  87) (WITH . (formal_package_actual_part . 1)) (SEMICOLON . (formal_package_actual_part . 1)) (LEFT_PAREN .  769))
-      ((default . error) (SEMICOLON .  768))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (SEMICOLON .  773))
+      ((default . error) (DOT .  86) (TICK .  87) (WITH . (formal_package_actual_part . 1)) (SEMICOLON . (formal_package_actual_part . 1)) (LEFT_PAREN .  771))
+      ((default . error) (SEMICOLON .  770))
       ((default . error) (WITH . (formal_subprogram_declaration . 3)) (TYPE . (formal_subprogram_declaration . 3)) (PRAGMA . (formal_subprogram_declaration . 3)) (IDENTIFIER . (formal_subprogram_declaration . 3)) (FUNCTION . (formal_subprogram_declaration . 3)) (PROCEDURE . (formal_subprogram_declaration . 3)) (PACKAGE . (formal_subprogram_declaration . 3)))
       ((default . error) (WITH . (formal_subprogram_declaration . 0)) (TYPE . (formal_subprogram_declaration . 0)) (PRAGMA . (formal_subprogram_declaration . 0)) (IDENTIFIER . (formal_subprogram_declaration . 0)) (FUNCTION . (formal_subprogram_declaration . 0)) (PROCEDURE . (formal_subprogram_declaration . 0)) (PACKAGE . (formal_subprogram_declaration . 0)))
-      ((default . error) (SEMICOLON .  767))
+      ((default . error) (SEMICOLON .  769))
       ((default . error) (SEMICOLON . (formal_type_definition . 0)) (WITH . (formal_type_definition . 0)))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (AND .  765) (WITH . (interface_type_definition . 5)) (SEMICOLON . (interface_type_definition . 5)))
+      ((default . error) (AND .  767) (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 .  764))
-      ((default . error) (AND .  763) (WITH . (interface_type_definition . 7)) (SEMICOLON . (interface_type_definition . 7)))
+      ((default . error) (SEMICOLON .  766))
+      ((default . error) (AND .  765) (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 .  762) (WITH . (interface_type_definition . 6)) (SEMICOLON . (interface_type_definition . 6)))
+      ((default . error) (AND .  764) (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 .  761) (WITH . (interface_type_definition . 4)) (SEMICOLON . (interface_type_definition . 4)))
-      ((default . error) (RIGHT_PAREN .  760))
+      ((default . error) (AND .  763) (WITH . (interface_type_definition . 4)) (SEMICOLON . (interface_type_definition . 4)))
+      ((default . error) (RIGHT_PAREN .  762))
       ((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 .  759))
-      ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  750) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (SEMICOLON . (formal_type_definition . 6)) (WITH . (formal_type_definition . 6)) (DIGITS .  761))
+      ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  752) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
       ((default . error) (NEW . (abstract_limited_synchronized_opt . 1)))
       ((default . error) (NEW . (abstract_limited_synchronized_opt . 2)))
-      ((default . error) (LIMITED .  749) (RECORD . (abstract_tagged_limited_opt . 2)) (NULL . (abstract_tagged_limited_opt . 2)) (PRIVATE . (abstract_tagged_limited_opt . 2)))
+      ((default . error) (LIMITED .  751) (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) (SEMICOLON . (null_exclusion_opt_name . 0)) (RIGHT_PAREN . (null_exclusion_opt_name . 0)) (COLON_EQUAL . (null_exclusion_opt_name . 0)) (DOT . (name . 0)) (LEFT_PAREN . (name . 0)) (TICK . (name . 0)))
-      ((default . error) (NULL .  748))
-      ((default . error) (SEMICOLON . (discriminant_specification_opt . 4)) (RIGHT_PAREN . (discriminant_specification_opt . 4)) (COLON_EQUAL .  747))
+      ((default . error) (NULL .  750))
+      ((default . error) (SEMICOLON . (discriminant_specification_opt . 4)) (RIGHT_PAREN . (discriminant_specification_opt . 4)) (COLON_EQUAL .  749))
       ((default . error) (DOT .  86) (TICK .  87) (LEFT_PAREN .  105))
-      ((default . error) (SEMICOLON . (discriminant_specification_opt . 2)) (RIGHT_PAREN . (discriminant_specification_opt . 2)) (COLON_EQUAL .  746))
+      ((default . error) (SEMICOLON . (discriminant_specification_opt . 2)) (RIGHT_PAREN . (discriminant_specification_opt . 2)) (COLON_EQUAL .  748))
       ((default . error) (SEMICOLON . (null_exclusion_opt_name . 1)) (RIGHT_PAREN . (null_exclusion_opt_name . 1)) (COLON_EQUAL . (null_exclusion_opt_name . 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)) (USE . (generic_renaming_declaration . 1)) (TYPE . (generic_renaming_declaration . 1)) (TASK . (generic_renaming_declaration . 1)) (SUBTYPE . (generic_renaming_declaration . 1)) (PROTECTED . (generic_renaming_declaration . 1)) (PROCEDURE . (generic_renaming_declaration . 1)) (PRAGMA . (generic_renaming_declaration . 1)) (PACKAGE . (generic_renaming_declaration . 1)) (OVERRIDING . (generic_renaming_declaration . 1)) (NOT . (generic_renaming_declaration . 1)) (GENERIC . (generic_renaming_declaration . 1)) (FUNCTION . (generic_renaming_declaration . 1)) (FOR . (generic_renaming_declaration . 1)) (ENTRY . (generic_renaming_declaration . 1)) (IDENTIFIER . (generic_renaming_declaration . 1)) (BEGIN . (generic_renaming_declaration . 1)))
       ((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)) (USE . (generic_renaming_declaration . 0)) (TYPE . (generic_renaming_declaration . 0)) (TASK . (generic_renaming_declaration . 0)) (SUBTYPE . (generic_renaming_declaration . 0)) (PROTECTED . (generic_renaming_declaration . 0)) (PROCEDURE . (generic_renaming_declaration . 0)) (PRAGMA . (generic_renaming_declaration . 0)) (PACKAGE . (generic_renaming_declaration . 0)) (OVERRIDING . (generic_renaming_declaration . 0)) (NOT . (generic_renaming_declaration . 0)) (GENERIC . (generic_renaming_declaration . 0)) (FUNCTION . (generic_renaming_declaration . 0)) (FOR . (generic_renaming_declaration . 0)) (ENTRY . (generic_renaming_declaration . 0)) (IDENTIFIER . (generic_renaming_declaration . 0)) (BEGIN . (generic_renaming_declaration . 0)))
       ((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)) (USE . (generic_renaming_declaration . 2)) (TYPE . (generic_renaming_declaration . 2)) (TASK . (generic_renaming_declaration . 2)) (SUBTYPE . (generic_renaming_declaration . 2)) (PROTECTED . (generic_renaming_declaration . 2)) (PROCEDURE . (generic_renaming_declaration . 2)) (PRAGMA . (generic_renaming_declaration . 2)) (PACKAGE . (generic_renaming_declaration . 2)) (OVERRIDING . (generic_renaming_declaration . 2)) (NOT . (generic_renaming_declaration . 2)) (GENERIC . (generic_renaming_declaration . 2)) (FUNCTION . (generic_renaming_declaration . 2)) (FOR . (generic_renaming_declaration . 2)) (ENTRY . (generic_renaming_declaration . 2)) (IDENTIFIER . (generic_renaming_declaration . 2)) (BEGIN . (generic_renaming_declaration . 2)))
       ((default . error) (END . (generic_instantiation . 0)) (BEGIN . (generic_instantiation . 0)) (IDENTIFIER . (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)) ($EOI . (generic_instantiation . 0)) (FUNCTION . (generic_instantiation . 0)) (GENERIC . (generic_instantiation . 0)) (LIMITED . (generic_instantiation . 0)) (NOT . (generic_instantiation . 0)) (OVERRIDING . (generic_instantiation . 0)) (PACKAGE . (generic_instantiation . 0)) (PRAGMA . (generic_instantiation . 0)) (PRIVATE . (generic_instantiation . 0)) (PROCEDURE . (generic_instantiation . 0)) (SEPARATE . (generic_instantiation . 0)) (USE . (generic_instantiation . 0)) (WITH . (generic_instantiation . 0)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (BAR .  559) (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)) (EQUAL_GREATER . (relation . 2)) (ELSE . (relation . 2)) (ELSIF . (relation . 2)) (RIGHT_PAREN . (relation . 2)) (COMMA . (relation . 2)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
+      ((default . error) (BAR .  561) (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)) (EQUAL_GREATER . (relation . 2)) (ELSE . (relation . 2)) (ELSIF . (relation . 2)) (RIGHT_PAREN . (relation . 2)) (COMMA . (relation . 2)))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((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) (RENAMES .  742))
-      ((default . error) (RENAMES .  741))
-      ((default . error) (ACCESS .  232) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (LEFT_PAREN .  217) (RECORD .  737))
-      ((default . error) (AT .  736))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (DOT .  86) (TICK .  87) (IS . ( 734 (aspect_specification_opt . 0))) (WITH .  107) (LEFT_PAREN .  105))
-      ((default . error) (WITH . (discriminant_part_opt . 0)) (IS . (discriminant_part_opt . 0)) (LEFT_PAREN .  196))
-      ((default . error) (IS . ( 732 (aspect_specification_opt . 0))) (WITH .  107))
-      ((default . error) (IS .  731))
-      ((default . error) (NOT .  728) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (WITH . (discriminant_part_opt . 0)) (IS . (discriminant_part_opt . 0)) (SEMICOLON . (discriminant_part_opt . 0)) (LEFT_PAREN .  196))
-      ((default . error) (IS . ( 726 (aspect_specification_opt . 0))) (WITH .  107))
-      ((default . error) (SEMICOLON .  724) (IS .  725))
+      ((default . error) (RENAMES .  744))
+      ((default . error) (RENAMES .  743))
+      ((default . error) (ACCESS .  234) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (LEFT_PAREN .  219) (RECORD .  739))
+      ((default . error) (AT .  738))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (DOT .  86) (TICK .  87) (IS . ( 736 (aspect_specification_opt . 0))) (WITH .  107) (LEFT_PAREN .  105))
+      ((default . error) (WITH . (discriminant_part_opt . 0)) (IS . (discriminant_part_opt . 0)) (LEFT_PAREN .  197))
+      ((default . error) (IS . ( 734 (aspect_specification_opt . 0))) (WITH .  107))
+      ((default . error) (IS .  733))
+      ((default . error) (NOT .  730) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (WITH . (discriminant_part_opt . 0)) (IS . (discriminant_part_opt . 0)) (SEMICOLON . (discriminant_part_opt . 0)) (LEFT_PAREN .  197))
+      ((default . error) (IS . ( 728 (aspect_specification_opt . 0))) (WITH .  107))
+      ((default . error) (SEMICOLON .  726) (IS .  727))
       ((default . error) (END . (incomplete_type_declaration . 1)) (PRIVATE . (incomplete_type_declaration . 1)) (USE . (incomplete_type_declaration . 1)) (TYPE . (incomplete_type_declaration . 1)) (TASK . (incomplete_type_declaration . 1)) (SUBTYPE . (incomplete_type_declaration . 1)) (PROTECTED . (incomplete_type_declaration . 1)) (PROCEDURE . (incomplete_type_declaration . 1)) (PRAGMA . (incomplete_type_declaration . 1)) (PACKAGE . (incomplete_type_declaration . 1)) (OVERRIDING . (incomplete_type_declaration . 1)) (NOT . (incomplete_type_declaration . 1)) (GENERIC . (incomplete_type_declaration . 1)) (FUNCTION . (incomplete_type_declaration . 1)) (FOR . (incomplete_type_declaration . 1)) (ENTRY . (incomplete_type_declaration . 1)) (IDENTIFIER . (incomplete_type_declaration . 1)) (BEGIN . (incomplete_type_declaration . 1)))
-      ((default . error) (IS .  723))
-      ((default . error) (END .  722))
+      ((default . error) (IS .  725))
+      ((default . error) (END .  724))
       ((default . error) (DOT .  86) (TICK .  87) (SEMICOLON . (package_specification . 1)) (LEFT_PAREN .  105))
-      ((default . error) (COLON_EQUAL .  721))
-      ((default . error) (SEMICOLON .  720))
-      ((default . error) (IDENTIFIER . (constant_opt . 0)) (STRING_LITERAL . (constant_opt . 0)) (CHARACTER_LITERAL . (constant_opt . 0)) (NOT . (constant_opt . 0)) (ACCESS . (constant_opt . 0)) (ARRAY . (constant_opt . 0)) (CONSTANT .  718))
-      ((default . error) (SEPARATE .  717) (ABSTRACT .  716))
-      ((default . error) (NULL .  715))
-      ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON . (parameter_profile_opt . 0)) (LEFT_PAREN .  713))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
+      ((default . error) (COLON_EQUAL .  723))
+      ((default . error) (SEMICOLON .  722))
+      ((default . error) (IDENTIFIER . (constant_opt . 0)) (STRING_LITERAL . (constant_opt . 0)) (CHARACTER_LITERAL . (constant_opt . 0)) (NOT . (constant_opt . 0)) (ACCESS . (constant_opt . 0)) (ARRAY . (constant_opt . 0)) (CONSTANT .  720))
+      ((default . error) (SEPARATE .  719) (ABSTRACT .  718))
+      ((default . error) (NULL .  717))
+      ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON . (parameter_profile_opt . 0)) (LEFT_PAREN .  715))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
       ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (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)) (DIGITS . (relation_and_then_list . 0)) (EQUAL_GREATER . (relation_and_then_list . 0)) (ELSE . (relation_and_then_list . 0)) (ELSIF . (relation_and_then_list . 0)))
       ((default . error) (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 . (relation_or_else_list . 0)) (EQUAL_GREATER . (relation_or_else_list . 0)) (ELSE . (relation_or_else_list . 0)) (ELSIF . (relation_or_else_list . 0)))
       ((default . error) (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 . (relation_or_else_list . 1)) (EQUAL_GREATER . (relation_or_else_list . 1)) (ELSE . (relation_or_else_list . 1)) (ELSIF . (relation_or_else_list . 1)))
       ((default . error) (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)) (DIGITS . (relation_and_then_list . 1)) (EQUAL_GREATER . (relation_and_then_list . 1)) (ELSE . (relation_and_then_list . 1)) (ELSIF . (relation_and_then_list . 1)))
-      ((default . error) (WHEN .  707))
-      ((default . error) (OF .  706) (COLON .  704) (IN .  705))
-      ((default . error) (EQUAL_GREATER .  703))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (WHEN .  710))
+      ((default . error) (OF .  709) (COLON .  707) (IN .  708))
+      ((default . error) (EQUAL_GREATER .  706))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (IS . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (IS . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (IDENTIFIER .  698))
-      ((default . error) (COLON .  697))
-      ((default . error) (IDENTIFIER .  696))
+      ((default . error) (IS .  133))
+      ((default . error) (IDENTIFIER .  701))
+      ((default . error) (COLON .  700))
+      ((default . error) (IDENTIFIER .  699))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
-      ((default . error) (UNTIL .  690) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (WHEN . (identifier_opt . 0)) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  688))
-      ((default . error) (LOOP . (iterator_specification_opt . 0)) (IDENTIFIER .  598))
-      ((default . error) (IDENTIFIER .  685))
-      ((default . error) (THEN . (expression_opt . 0)) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
-      ((default . error) (SEMICOLON .  682))
-      ((default . error) (SEMICOLON .  680) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
+      ((default . error) (UNTIL .  693) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (WHEN . (identifier_opt . 0)) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  691))
+      ((default . error) (LOOP . (iterator_specification_opt . 0)) (IDENTIFIER .  600))
+      ((default . error) (IDENTIFIER .  688))
+      ((default . error) (THEN . (expression_opt . 0)) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
+      ((default . error) (SEMICOLON .  685))
+      ((default . error) (SEMICOLON .  683) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (SEMICOLON .  674) (DO . (extended_return_object_declaration_opt . 0)) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  675) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (ELSE . (select_alternative_list_opt . 0)) (END . (select_alternative_list_opt . 0)) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (DELAY .  611) (WHEN .  663) (TERMINATE .  662) (ACCEPT .  606))
-      ((default . error) (LOOP . (expression_opt . 0)) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (SEMICOLON .  677) (DO . (extended_return_object_declaration_opt . 0)) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  678) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (ELSE . (select_alternative_list_opt . 0)) (END . (select_alternative_list_opt . 0)) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (DELAY .  614) (WHEN .  666) (TERMINATE .  665) (ACCEPT .  609))
+      ((default . error) (LOOP . (expression_opt . 0)) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (OR . (compound_statement . 5)) (THEN . (compound_statement . 5)) (WHEN . (compound_statement . 5)) (EXCEPTION . (compound_statement . 5)) (END . (compound_statement . 5)) (LESS_LESS . (compound_statement . 5)) (IDENTIFIER . (compound_statement . 5)) (STRING_LITERAL . (compound_statement . 5)) (CHARACTER_LITERAL . (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 . (compound_statement . 5)) (IF . (compound_statement . 5)) (LOOP . (compound_statement . 5)) (NULL . (compound_statement . 5)) (PRAGMA . (compound_statement . 5)) (RAISE . (compound_statement . 5)) (REQUEUE . (compound_statement . 5)) (RETURN . (compound_statement . 5)) (SELECT . (compound_statement . 5)) (WHILE . (compound_statement . 5)) (ELSE . (compound_statement . 5)) (ELSIF . (compound_statement . 5)))
       ((default . error) (OR . (simple_statement . 1)) (THEN . (simple_statement . 1)) (WHEN . (simple_statement . 1)) (EXCEPTION . (simple_statement . 1)) (END . (simple_statement . 1)) (LESS_LESS . (simple_statement . 1)) (IDENTIFIER . (simple_statement . 1)) (STRING_LITERAL . (simple_statement . 1)) (CHARACTER_LITERAL . (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 . (simple_statement . 1)) (LOOP . (simple_statement . 1)) (NULL . (simple_statement . 1)) (PRAGMA . (simple_statement . 1)) (RAISE . (simple_statement . 1)) (REQUEUE . (simple_statement . 1)) (RETURN . (simple_statement . 1)) (SELECT . (simple_statement . 1)) (WHILE . (simple_statement . 1)) (ELSE . (simple_statement . 1)) (ELSIF . (simple_statement . 1)))
       ((default . error) (OR . (select_statement . 3)) (THEN . (select_statement . 3)) (WHEN . (select_statement . 3)) (EXCEPTION . (select_statement . 3)) (END . (select_statement . 3)) (LESS_LESS . (select_statement . 3)) (IDENTIFIER . (select_statement . 3)) (STRING_LITERAL . (select_statement . 3)) (CHARACTER_LITERAL . (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 . (select_statement . 3)) (LOOP . (select_statement . 3)) (NULL . (select_statement . 3)) (PRAGMA . (select_statement . 3)) (RAISE . (select_statement . 3)) (REQUEUE . (select_statement . 3)) (RETURN . (select_statement . 3)) (SELECT . (select_statement . 3)) (WHILE . (select_statement . 3)) (ELSE . (select_statement . 3)) (ELSIF . (select_statement . 3)))
       ((default . error) (OR . (simple_statement . 7)) (THEN . (simple_statement . 7)) (WHEN . (simple_statement . 7)) (EXCEPTION . (simple_statement . 7)) (END . (simple_statement . 7)) (LESS_LESS . (simple_statement . 7)) (IDENTIFIER . (simple_statement . 7)) (STRING_LITERAL . (simple_statement . 7)) (CHARACTER_LITERAL . (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 . (simple_statement . 7)) (LOOP . (simple_statement . 7)) (NULL . (simple_statement . 7)) (PRAGMA . (simple_statement . 7)) (RAISE . (simple_statement . 7)) (REQUEUE . (simple_statement . 7)) (RETURN . (simple_statement . 7)) (SELECT . (simple_statement . 7)) (WHILE . (simple_statement . 7)) (ELSE . (simple_statement . 7)) (ELSIF . (simple_statement . 7)))
       ((default . error) (OR . (simple_statement . 2)) (THEN . (simple_statement . 2)) (WHEN . (simple_statement . 2)) (EXCEPTION . (simple_statement . 2)) (END . (simple_statement . 2)) (LESS_LESS . (simple_statement . 2)) (IDENTIFIER . (simple_statement . 2)) (STRING_LITERAL . (simple_statement . 2)) (CHARACTER_LITERAL . (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 . (simple_statement . 2)) (LOOP . (simple_statement . 2)) (NULL . (simple_statement . 2)) (PRAGMA . (simple_statement . 2)) (RAISE . (simple_statement . 2)) (REQUEUE . (simple_statement . 2)) (RETURN . (simple_statement . 2)) (SELECT . (simple_statement . 2)) (WHILE . (simple_statement . 2)) (ELSE . (simple_statement . 2)) (ELSIF . (simple_statement . 2)))
       ((default . error) (OR . (compound_statement . 4)) (THEN . (compound_statement . 4)) (WHEN . (compound_statement . 4)) (EXCEPTION . (compound_statement . 4)) (END . (compound_statement . 4)) (LESS_LESS . (compound_statement . 4)) (IDENTIFIER . (compound_statement . 4)) (STRING_LITERAL . (compound_statement . 4)) (CHARACTER_LITERAL . (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 . (compound_statement . 4)) (IF . (compound_statement . 4)) (LOOP . (compound_statement . 4)) (NULL . (compound_statement . 4)) (PRAGMA . (compound_statement . 4)) (RAISE . (compound_statement . 4)) (REQUEUE . (compound_statement . 4)) (RETURN . (compound_statement . 4)) (SELECT . (compound_statement . 4)) (WHILE . (compound_statement . 4)) (ELSE . (compound_statement . 4)) (ELSIF . (compound_statement . 4)))
-      ((default . error) (END .  660))
+      ((default . error) (END .  663))
       ((default . error) (OR . (compound_statement . 0)) (THEN . (compound_statement . 0)) (WHEN . (compound_statement . 0)) (EXCEPTION . (compound_statement . 0)) (END . (compound_statement . 0)) (LESS_LESS . (compound_statement . 0)) (IDENTIFIER . (compound_statement . 0)) (STRING_LITERAL . (compound_statement . 0)) (CHARACTER_LITERAL . (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 . (compound_statement . 0)) (IF . (compound_statement . 0)) (LOOP . (compound_statement . 0)) (NULL . (compound_statement . 0)) (PRAGMA . (compound_statement . 0)) (RAISE . (compound_statement . 0)) (REQUEUE . (compound_statement . 0)) (RETURN . (compound_statement . 0)) (SELECT . (compound_statement . 0)) (WHILE . (compound_statement . 0)) (ELSE . (compound_statement . 0)) (ELSIF . (compound_statement . 0)))
-      ((default . error) (LOOP .  659))
-      ((default . error) (NULL .  617) (GOTO .  614) (ABORT .  607) (ACCEPT .  606) (DECLARE .  610) (BEGIN .  608) (LOOP .  616) (CASE .  609) (IF .  615) (PRAGMA .  7) (RAISE .  618) (DELAY .  611) (REQUEUE .  619) (RETURN .  620) (EXIT .  612) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (WHILE .  622) (FOR .  613) (SELECT .  621))
+      ((default . error) (LOOP .  662))
+      ((default . error) (NULL .  620) (GOTO .  617) (ABORT .  610) (ACCEPT .  609) (DECLARE .  613) (BEGIN .  611) (LOOP .  619) (CASE .  612) (IF .  618) (PRAGMA .  7) (RAISE .  621) (DELAY .  614) (REQUEUE .  622) (RETURN .  623) (EXIT .  615) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (WHILE .  625) (FOR .  616) (SELECT .  624))
       ((default . error) (OR . (compound_statement . 2)) (THEN . (compound_statement . 2)) (WHEN . (compound_statement . 2)) (EXCEPTION . (compound_statement . 2)) (END . (compound_statement . 2)) (LESS_LESS . (compound_statement . 2)) (IDENTIFIER . (compound_statement . 2)) (STRING_LITERAL . (compound_statement . 2)) (CHARACTER_LITERAL . (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 . (compound_statement . 2)) (IF . (compound_statement . 2)) (LOOP . (compound_statement . 2)) (NULL . (compound_statement . 2)) (PRAGMA . (compound_statement . 2)) (RAISE . (compound_statement . 2)) (REQUEUE . (compound_statement . 2)) (RETURN . (compound_statement . 2)) (SELECT . (compound_statement . 2)) (WHILE . (compound_statement . 2)) (ELSE . (compound_statement . 2)) (ELSIF . (compound_statement . 2)))
-      ((default . error) (DOT .  86) (SEMICOLON .  656) (TICK .  87) (COLON_EQUAL .  655) (LEFT_PAREN .  105))
+      ((default . error) (DOT .  86) (SEMICOLON .  659) (TICK .  87) (COLON_EQUAL .  658) (LEFT_PAREN .  105))
       ((default . error) (OR . (simple_statement . 10)) (THEN . (simple_statement . 10)) (WHEN . (simple_statement . 10)) (EXCEPTION . (simple_statement . 10)) (END . (simple_statement . 10)) (LESS_LESS . (simple_statement . 10)) (IDENTIFIER . (simple_statement . 10)) (STRING_LITERAL . (simple_statement . 10)) (CHARACTER_LITERAL . (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 . 10)) (IF . (simple_statement . 10)) (LOOP . (simple_statement . 10)) (NULL . (simple_statement . 10)) (PRAGMA . (simple_statement . 10)) (RAISE . (simple_statement . 10)) (REQUEUE . (simple_statement . 10)) (RETURN . (simple_statement . 10)) (SELECT . (simple_statement . 10)) (WHILE . (simple_statement . 10)) (ELSE . (simple_statement . 10)) (ELSIF . (simple_statement . 10)))
       ((default . error) (OR . (simple_statement . 4)) (THEN . (simple_statement . 4)) (WHEN . (simple_statement . 4)) (EXCEPTION . (simple_statement . 4)) (END . (simple_statement . 4)) (LESS_LESS . (simple_statement . 4)) (IDENTIFIER . (simple_statement . 4)) (STRING_LITERAL . (simple_statement . 4)) (CHARACTER_LITERAL . (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 . (simple_statement . 4)) (LOOP . (simple_statement . 4)) (NULL . (simple_statement . 4)) (PRAGMA . (simple_statement . 4)) (RAISE . (simple_statement . 4)) (REQUEUE . (simple_statement . 4)) (RETURN . (simple_statement . 4)) (SELECT . (simple_statement . 4)) (WHILE . (simple_statement . 4)) (ELSE . (simple_statement . 4)) (ELSIF . (simple_statement . 4)))
       ((default . error) (OR . (simple_statement . 9)) (THEN . (simple_statement . 9)) (WHEN . (simple_statement . 9)) (EXCEPTION . (simple_statement . 9)) (END . (simple_statement . 9)) (LESS_LESS . (simple_statement . 9)) (IDENTIFIER . (simple_statement . 9)) (STRING_LITERAL . (simple_statement . 9)) (CHARACTER_LITERAL . (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 . (simple_statement . 9)) (LOOP . (simple_statement . 9)) (NULL . (simple_statement . 9)) (PRAGMA . (simple_statement . 9)) (RAISE . (simple_statement . 9)) (REQUEUE . (simple_statement . 9)) (RETURN . (simple_statement . 9)) (SELECT . (simple_statement . 9)) (WHILE . (simple_statement . 9)) (ELSE . (simple_statement . 9)) (ELSIF . (simple_statement . 9)))
       ((default . error) (OR . (simple_statement . 6)) (THEN . (simple_statement . 6)) (WHEN . (simple_statement . 6)) (EXCEPTION . (simple_statement . 6)) (END . (simple_statement . 6)) (LESS_LESS . (simple_statement . 6)) (IDENTIFIER . (simple_statement . 6)) (STRING_LITERAL . (simple_statement . 6)) (CHARACTER_LITERAL . (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 . (simple_statement . 6)) (LOOP . (simple_statement . 6)) (NULL . (simple_statement . 6)) (PRAGMA . (simple_statement . 6)) (RAISE . (simple_statement . 6)) (REQUEUE . (simple_statement . 6)) (RETURN . (simple_statement . 6)) (SELECT . (simple_statement . 6)) (WHILE . (simple_statement . 6)) (ELSE . (simple_statement . 6)) (ELSIF . (simple_statement . 6)))
       ((default . error) (OR . (select_statement . 0)) (THEN . (select_statement . 0)) (WHEN . (select_statement . 0)) (EXCEPTION . (select_statement . 0)) (END . (select_statement . 0)) (LESS_LESS . (select_statement . 0)) (IDENTIFIER . (select_statement . 0)) (STRING_LITERAL . (select_statement . 0)) (CHARACTER_LITERAL . (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 . (select_statement . 0)) (LOOP . (select_statement . 0)) (NULL . (select_statement . 0)) (PRAGMA . (select_statement . 0)) (RAISE . (select_statement . 0)) (REQUEUE . (select_statement . 0)) (RETURN . (select_statement . 0)) (SELECT . (select_statement . 0)) (WHILE . (select_statement . 0)) (ELSE . (select_statement . 0)) (ELSIF . (select_statement . 0)))
       ((default . error) (OR . (compound_statement . 6)) (THEN . (compound_statement . 6)) (WHEN . (compound_statement . 6)) (EXCEPTION . (compound_statement . 6)) (END . (compound_statement . 6)) (LESS_LESS . (compound_statement . 6)) (IDENTIFIER . (compound_statement . 6)) (STRING_LITERAL . (compound_statement . 6)) (CHARACTER_LITERAL . (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 . (compound_statement . 6)) (IF . (compound_statement . 6)) (LOOP . (compound_statement . 6)) (NULL . (compound_statement . 6)) (PRAGMA . (compound_statement . 6)) (RAISE . (compound_statement . 6)) (REQUEUE . (compound_statement . 6)) (RETURN . (compound_statement . 6)) (SELECT . (compound_statement . 6)) (WHILE . (compound_statement . 6)) (ELSE . (compound_statement . 6)) (ELSIF . (compound_statement . 6)))
-      ((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_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
-      ((default . error) (END . (handled_sequence_of_statements . 1)) (EXCEPTION .  653))
+      ((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_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
+      ((default . error) (END . (handled_sequence_of_statements . 1)) (EXCEPTION .  656))
       ((default . error) (OR . (simple_statement . 5)) (THEN . (simple_statement . 5)) (WHEN . (simple_statement . 5)) (EXCEPTION . (simple_statement . 5)) (END . (simple_statement . 5)) (LESS_LESS . (simple_statement . 5)) (IDENTIFIER . (simple_statement . 5)) (STRING_LITERAL . (simple_statement . 5)) (CHARACTER_LITERAL . (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 . (simple_statement . 5)) (LOOP . (simple_statement . 5)) (NULL . (simple_statement . 5)) (PRAGMA . (simple_statement . 5)) (RAISE . (simple_statement . 5)) (REQUEUE . (simple_statement . 5)) (RETURN . (simple_statement . 5)) (SELECT . (simple_statement . 5)) (WHILE . (simple_statement . 5)) (ELSE . (simple_statement . 5)) (ELSIF . (simple_statement . 5)))
       ((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)) (LESS_LESS . (sequence_of_statements . 0)) (IDENTIFIER . (sequence_of_statements . 0)) (STRING_LITERAL . (sequence_of_statements . 0)) (CHARACTER_LITERAL . (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)) (DELAY . (sequence_of_statements . 0)) (EXIT . (sequence_of_statements . 0)) (FOR . (sequence_of_statements . 0)) (GOTO . (sequence_of_statements . 0)) (IF . (sequence_of_statements . 0)) (LOOP . (sequence_of_statements . 0)) (NULL . (sequence_of_statements . 0)) (PRAGMA . (sequence_of_statements . 0)) (RAISE . (sequence_of_statements . 0)) (REQUEUE . (sequence_of_statements . 0)) (RETURN . (sequence_of_statements . 0)) (SELECT . (sequence_of_statements . 0)) (WHILE . (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)) (LESS_LESS . (select_statement . 1)) (IDENTIFIER . (select_statement . 1)) (STRING_LITERAL . (select_statement . 1)) (CHARACTER_LITERAL . (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 . (select_statement . 1)) (LOOP . (select_statement . 1)) (NULL . (select_statement . 1)) (PRAGMA . (select_statement . 1)) (RAISE . (select_statement . 1)) (REQUEUE . (select_statement . 1)) (RETURN . (select_statement . 1)) (SELECT . (select_statement . 1)) (WHILE . (select_statement . 1)) (ELSE . (select_statement . 1)) (ELSIF . (select_statement . 1)))
-      ((default . error) (SEMICOLON .  652))
-      ((default . error) (SEMICOLON .  651))
+      ((default . error) (SEMICOLON .  655))
+      ((default . error) (SEMICOLON .  654))
       ((default . error) (TYPE . (generic_instantiation . 2)) (TASK . (generic_instantiation . 2)) (SUBTYPE . (generic_instantiation . 2)) (PROTECTED . (generic_instantiation . 2)) (FOR . (generic_instantiation . 2)) (ENTRY . (generic_instantiation . 2)) (IDENTIFIER . (generic_instantiation . 2)) (BEGIN . (generic_instantiation . 2)) (END . (generic_instantiation . 2)) (WITH . (generic_instantiation . 2)) (USE . (generic_instantiation . 2)) (SEPARATE . (generic_instantiation . 2)) (PROCEDURE . (generic_instantiation . 2)) (PRIVATE . (generic_instantiation . 2)) (PRAGMA . (generic_instantiation . 2)) (PACKAGE . (generic_instantiation . 2)) (OVERRIDING . (generic_instantiation . 2)) (NOT . (generic_instantiation . 2)) (LIMITED . (generic_instantiation . 2)) (GENERIC . (generic_instantiation . 2)) (FUNCTION . (generic_instantiation . 2)) ($EOI . (generic_instantiation . 2)))
       ((default . error) (TYPE . (generic_instantiation . 1)) (TASK . (generic_instantiation . 1)) (SUBTYPE . (generic_instantiation . 1)) (PROTECTED . (generic_instantiation . 1)) (FOR . (generic_instantiation . 1)) (ENTRY . (generic_instantiation . 1)) (IDENTIFIER . (generic_instantiation . 1)) (BEGIN . (generic_instantiation . 1)) (END . (generic_instantiation . 1)) (WITH . (generic_instantiation . 1)) (USE . (generic_instantiation . 1)) (SEPARATE . (generic_instantiation . 1)) (PROCEDURE . (generic_instantiation . 1)) (PRIVATE . (generic_instantiation . 1)) (PRAGMA . (generic_instantiation . 1)) (PACKAGE . (generic_instantiation . 1)) (OVERRIDING . (generic_instantiation . 1)) (NOT . (generic_instantiation . 1)) (LIMITED . (generic_instantiation . 1)) (GENERIC . (generic_instantiation . 1)) (FUNCTION . (generic_instantiation . 1)) ($EOI . (generic_instantiation . 1)))
-      ((default . error) (END . (exception_handler_list_opt . 0)) (WHEN .  918))
+      ((default . error) (END . (exception_handler_list_opt . 0)) (WHEN .  920))
       ((default . error) (OR . (sequence_of_statements . 1)) (THEN . (sequence_of_statements . 1)) (WHEN . (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 . (sequence_of_statements . 1)) (PRAGMA . (sequence_of_statements . 1)) (NULL . (sequence_of_statements . 1)) (LOOP . (sequence_of_statements . 1)) (IF . (sequence_of_statements . 1)) (GOTO . (sequence_of_statements . 1)) (FOR . (sequence_of_statements . 1)) (EXIT . (sequence_of_statements . 1)) (DELAY . (sequence_of_statements . 1)) (DECLARE . (sequence_of_statements . 1)) (CASE . (sequence_of_statements . 1)) (BEGIN . (sequence_of_statements . 1)) (ABORT . (sequence_of_statements . 1)) (ACCEPT . (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)) (END . (sequence_of_statements . 1)) (EXCEPTION . (sequence_of_statements . 1)) (ELSE . (sequence_of_statements . 1)) (ELSIF . (sequence_of_statements . 1)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((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)) (WHILE . (procedure_call_statement . 0)) (SELECT . (procedure_call_statement . 0)) (RETURN . (procedure_call_statement . 0)) (REQUEUE . (procedure_call_statement . 0)) (RAISE . (procedure_call_statement . 0)) (PRAGMA . (procedure_call_statement . 0)) (NULL . (procedure_call_statement . 0)) (LOOP . (procedure_call_statement . 0)) (IF . (procedure_call_statement . 0)) (GOTO . (procedure_call_statement . 0)) (FOR . (procedure_call_statement . 0)) (EXIT . (procedure_call_statement . 0)) (DELAY . (procedure_call_statement . 0)) (DECLARE . (procedure_call_statement . 0)) (CASE . (procedure_call_statement . 0)) (BEGIN . (procedure_call_statement . 0)) (ABORT . (procedure_call_statement . 0)) (ACCEPT . (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)) (END . (procedure_call_statement . 0)) (EXCEPTION . (procedure_call_statement . 0)))
       ((default . error) (OR . (statement . 1)) (THEN . (statement . 1)) (WHEN . (statement . 1)) (EXCEPTION . (statement . 1)) (END . (statement . 1)) (LESS_LESS . (statement . 1)) (IDENTIFIER . (statement . 1)) (STRING_LITERAL . (statement . 1)) (CHARACTER_LITERAL . (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 . (statement . 1)) (REQUEUE . (statement . 1)) (RETURN . (statement . 1)) (SELECT . (statement . 1)) (WHILE . (statement . 1)) (ELSE . (statement . 1)) (ELSIF . (statement . 1)))
       ((default . error) (OR . (statement . 0)) (THEN . (statement . 0)) (WHEN . (statement . 0)) (EXCEPTION . (statement . 0)) (END . (statement . 0)) (LESS_LESS . (statement . 0)) (IDENTIFIER . (statement . 0)) (STRING_LITERAL . (statement . 0)) (CHARACTER_LITERAL . (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 . (statement . 0)) (REQUEUE . (statement . 0)) (RETURN . (statement . 0)) (SELECT . (statement . 0)) (WHILE . (statement . 0)) (ELSE . (statement . 0)) (ELSIF . (statement . 0)))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
       ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (LOOP . (iteration_scheme . 0)))
-      ((default . error) (SEMICOLON .  914))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
+      ((default . error) (SEMICOLON .  916))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
       ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
-      ((default . error) (ELSE .  909) (OR .  910))
-      ((default . error) (DOT .  86) (SEMICOLON .  656) (TICK .  87) (OR . (sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0)) (THEN . (sequence_of_statements_opt . 0)) (LEFT_PAREN .  105) (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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
+      ((default . error) (ELSE .  911) (OR .  912))
+      ((default . error) (DOT .  86) (SEMICOLON .  659) (TICK .  87) (OR . (sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0)) (THEN . (sequence_of_statements_opt . 0)) (LEFT_PAREN .  105) (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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
       ((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 .  906))
-      ((default . error) (ELSE .  904) (END .  905))
-      ((default . error) (THEN .  903))
+      ((default . error) (ELSE . (select_alternative_list_opt . 1)) (END . (select_alternative_list_opt . 1)) (OR .  908))
+      ((default . error) (ELSE .  906) (END .  907))
+      ((default . error) (THEN .  905))
       ((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)) (WHILE . (simple_return_statement . 0)) (SELECT . (simple_return_statement . 0)) (RETURN . (simple_return_statement . 0)) (REQUEUE . (simple_return_statement . 0)) (RAISE . (simple_return_statement . 0)) (PRAGMA . (simple_return_statement . 0)) (NULL . (simple_return_statement . 0)) (LOOP . (simple_return_statement . 0)) (IF . (simple_return_statement . 0)) (GOTO . (simple_return_statement . 0)) (FOR . (simple_return_statement . 0)) (EXIT . (simple_return_statement . 0)) (DELAY . (simple_return_statement . 0)) (DECLARE . (simple_return_statement . 0)) (CASE . (simple_return_statement . 0)) (BEGIN . (simple_return_statement . 0)) (ABORT . (simple_return_statement . 0)) (ACCEPT . (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)) (END . (simple_return_statement . 0)) (EXCEPTION . (simple_return_statement . 0)))
-      ((default . error) (COLON .  902) (STAR_STAR . (name . 0)) (REM . (name . 0)) (MOD . (name . 0)) (STAR . (name . 0)) (SLASH . (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 . (name . 0)) (DOT . (name . 0)) (TICK . (name . 0)))
-      ((default . error) (SEMICOLON .  901))
-      ((default . error) (DO . (extended_return_object_declaration_opt . 1)) (SEMICOLON .  900))
-      ((default . error) (DO .  899))
-      ((default . error) (WITH .  898) (DOT .  86) (TICK .  87) (SEMICOLON .  897) (LEFT_PAREN .  105))
+      ((default . error) (COLON .  904) (STAR_STAR . (name . 0)) (REM . (name . 0)) (MOD . (name . 0)) (STAR . (name . 0)) (SLASH . (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 . (name . 0)) (DOT . (name . 0)) (TICK . (name . 0)))
+      ((default . error) (SEMICOLON .  903))
+      ((default . error) (DO . (extended_return_object_declaration_opt . 1)) (SEMICOLON .  902))
+      ((default . error) (DO .  901))
+      ((default . error) (WITH .  900) (DOT .  86) (TICK .  87) (SEMICOLON .  899) (LEFT_PAREN .  105))
       ((default . error) (WHEN . (raise_statement . 0)) (THEN . (raise_statement . 0)) (OR . (raise_statement . 0)) (ELSIF . (raise_statement . 0)) (ELSE . (raise_statement . 0)) (WHILE . (raise_statement . 0)) (SELECT . (raise_statement . 0)) (RETURN . (raise_statement . 0)) (REQUEUE . (raise_statement . 0)) (RAISE . (raise_statement . 0)) (PRAGMA . (raise_statement . 0)) (NULL . (raise_statement . 0)) (LOOP . (raise_statement . 0)) (IF . (raise_statement . 0)) (GOTO . (raise_statement . 0)) (FOR . (raise_statement . 0)) (EXIT . (raise_statement . 0)) (DELAY . (raise_statement . 0)) (DECLARE . (raise_statement . 0)) (CASE . (raise_statement . 0)) (BEGIN . (raise_statement . 0)) (ABORT . (raise_statement . 0)) (ACCEPT . (raise_statement . 0)) (CHARACTER_LITERAL . (raise_statement . 0)) (STRING_LITERAL . (raise_statement . 0)) (IDENTIFIER . (raise_statement . 0)) (LESS_LESS . (raise_statement . 0)) (END . (raise_statement . 0)) (EXCEPTION . (raise_statement . 0)))
-      ((default . error) (WITH .  896) (DOT .  86) (TICK .  87) (SEMICOLON .  895) (LEFT_PAREN .  105))
+      ((default . error) (WITH .  898) (DOT .  86) (TICK .  87) (SEMICOLON .  897) (LEFT_PAREN .  105))
       ((default . error) (WHEN . (simple_statement . 0)) (THEN . (simple_statement . 0)) (OR . (simple_statement . 0)) (ELSIF . (simple_statement . 0)) (ELSE . (simple_statement . 0)) (WHILE . (simple_statement . 0)) (SELECT . (simple_statement . 0)) (RETURN . (simple_statement . 0)) (REQUEUE . (simple_statement . 0)) (RAISE . (simple_statement . 0)) (PRAGMA . (simple_statement . 0)) (NULL . (simple_statement . 0)) (LOOP . (simple_statement . 0)) (IF . (simple_statement . 0)) (GOTO . (simple_statement . 0)) (FOR . (simple_statement . 0)) (EXIT . (simple_statement . 0)) (DELAY . (simple_statement . 0)) (DECLARE . (simple_statement . 0)) (CASE . (simple_statement . 0)) (BEGIN . (simple_statement . 0)) (ABORT . (simple_statement . 0)) (ACCEPT . (simple_statement . 0)) (CHARACTER_LITERAL . (simple_statement . 0)) (STRING_LITERAL . (simple_statement . 0)) (IDENTIFIER . (simple_statement . 0)) (LESS_LESS . (simple_statement . 0)) (END . (simple_statement . 0)) (EXCEPTION . (simple_statement . 0)))
-      ((default . error) (END .  894))
-      ((default . error) (THEN .  893))
-      ((default . error) (SEMICOLON .  892))
+      ((default . error) (END .  896))
+      ((default . error) (THEN .  895))
+      ((default . error) (SEMICOLON .  894))
       ((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 .  891) (SEMICOLON .  890))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (SEMICOLON .  888))
-      ((default . error) (BEGIN .  887))
-      ((default . error) (IS .  886))
-      ((default . error) (END .  885))
-      ((default . error) (DOT .  86) (TICK .  87) (SEMICOLON .  884) (LEFT_PAREN .  105))
-      ((default . error) (SEMICOLON . (actual_parameter_part_opt . 0)) (DO . (actual_parameter_part_opt . 0)) (LEFT_PAREN . ((actual_parameter_part_opt . 0)  881)))
+      ((default . error) (WHEN .  893) (SEMICOLON .  892))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (SEMICOLON .  890))
+      ((default . error) (BEGIN .  889))
+      ((default . error) (IS .  888))
+      ((default . error) (END .  887))
+      ((default . error) (DOT .  86) (TICK .  87) (SEMICOLON .  886) (LEFT_PAREN .  105))
+      ((default . error) (SEMICOLON . (actual_parameter_part_opt . 0)) (DO . (actual_parameter_part_opt . 0)) (LEFT_PAREN . ((actual_parameter_part_opt . 0)  883)))
       ((default . error) (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)) (CHARACTER_LITERAL . (label_opt . 2)) (STRING_LITERAL . (label_opt . 2)) (IDENTIFIER . (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)) (DECLARE . (label_opt . 2)) (CASE . (label_opt . 2)) (BEGIN . (label_opt . 2)) (ACCEPT . (label_opt . 2)))
-      ((default . error) (GREATER_GREATER .  880))
-      ((default . error) (IS .  879))
-      ((default . error) (IS .  878))
+      ((default . error) (GREATER_GREATER .  882))
+      ((default . error) (IS .  881))
+      ((default . error) (IS .  880))
       ((default . error) (COMMA . (pragma_argument_association . 2)) (RIGHT_PAREN . (pragma_argument_association . 2)))
-      ((default . error) (ELSE .  874) (RIGHT_PAREN . (if_expression . 3)) (ELSIF .  875))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (NOT .  728) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (REVERSE .  870) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  750) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (REVERSE .  868) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  170) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  169) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (ELSE .  876) (RIGHT_PAREN . (if_expression . 3)) (ELSIF .  877))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (NOT .  730) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (REVERSE .  872) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  752) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
+      ((default . error) (REVERSE .  870) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  171) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  170) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
       ((default . error) (RIGHT_PAREN . (case_expression_alternative_list . 0)) (COMMA . (case_expression_alternative_list . 0)))
-      ((default . error) (COMMA .  866) (RIGHT_PAREN . (case_expression . 0)))
-      ((default . error) (DOT .  86) (SEMICOLON . (name_opt . 1)) (TICK .  87) (LEFT_PAREN .  105))
-      ((default . error) (SEMICOLON .  865))
-      ((default . error) (END .  864))
-      ((default . error) (IDENTIFIER .  210) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  750) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (COMMA .  868) (RIGHT_PAREN . (case_expression . 0)))
+      ((default . error) (SEMICOLON .  867))
+      ((default . error) (END .  866))
+      ((default . error) (IDENTIFIER .  212) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  752) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (ARRAY . (constant_opt . 1)) (IDENTIFIER . (constant_opt . 1)) (STRING_LITERAL . (constant_opt . 1)) (CHARACTER_LITERAL . (constant_opt . 1)) (ACCESS . (constant_opt . 1)) (NOT . (constant_opt . 1)))
-      ((default . error) (ARRAY .  475) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ACCESS . (null_exclusion_opt . 0)) (NOT .  854))
+      ((default . error) (ARRAY .  477) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ACCESS . (null_exclusion_opt . 0)) (NOT .  856))
       ((default . error) (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_declaration . 0)) (FUNCTION . (exception_declaration . 0)) (FOR . (exception_declaration . 0)) (ENTRY . (exception_declaration . 0)) (IDENTIFIER . (exception_declaration . 0)) (BEGIN . (exception_declaration . 0)) (END . (exception_declaration . 0)) (PRIVATE . (exception_declaration . 0)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (PRIVATE . (abstract_tagged_limited_opt . 0)) (NULL . (abstract_tagged_limited_opt . 0)) (RECORD . (abstract_tagged_limited_opt . 0)) (TAGGED .  841) (RANGE .  839) (MOD .  837) (DIGITS .  834) (DELTA .  833) (TASK .  486) (PROTECTED .  482) (SYNCHRONIZED .  484) (INTERFACE .  478) (ARRAY .  475) (LEFT_PAREN .  835) (ACCESS . (null_exclusion_opt . 0)) (NOT .  206) (NEW . ((abstract_limited_synchronized_opt . 0) (abstract_limited_opt . 0))) (LIMITED .  836) (ABSTRACT .  832))
+      ((default . error) (PRIVATE . (abstract_tagged_limited_opt . 0)) (NULL . (abstract_tagged_limited_opt . 0)) (RECORD . (abstract_tagged_limited_opt . 0)) (TAGGED .  843) (RANGE .  841) (MOD .  839) (DIGITS .  836) (DELTA .  835) (TASK .  488) (PROTECTED .  484) (SYNCHRONIZED .  486) (INTERFACE .  480) (ARRAY .  477) (LEFT_PAREN .  837) (ACCESS . (null_exclusion_opt . 0)) (NOT .  207) (NEW . ((abstract_limited_synchronized_opt . 0) (abstract_limited_opt . 0))) (LIMITED .  838) (ABSTRACT .  834))
       ((default . error) (BEGIN . (single_task_declaration . 2)) (IDENTIFIER . (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 . (single_task_declaration . 2)) (TASK . (single_task_declaration . 2)) (TYPE . (single_task_declaration . 2)) (USE . (single_task_declaration . 2)) (PRIVATE . (single_task_declaration . 2)) (END . (single_task_declaration . 2)))
-      ((default . error) (NEW .  829) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
-      ((default . error) (SEPARATE .  828))
+      ((default . error) (NEW .  831) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
+      ((default . error) (SEPARATE .  830))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (IS . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (NULL .  826))
-      ((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 .  86) (TICK .  87) (RANGE .  825) (LEFT_PAREN .  795))
+      ((default . error) (NULL .  828))
+      ((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 .  86) (TICK .  87) (RANGE .  827) (LEFT_PAREN .  797))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (NEW .  821) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
-      ((default . error) (SEPARATE .  820))
+      ((default . error) (NEW .  823) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
+      ((default . error) (SEPARATE .  822))
       ((default . error) (IS . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (SEPARATE .  818))
-      ((default . error) (SEMICOLON .  817))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (IDENTIFIER . (mod_clause_opt . 0)) (AT .  814))
-      ((default . error) (SEMICOLON .  813))
-      ((default . error) (SEMICOLON .  812))
-      ((default . error) (DOT .  86) (TICK .  87) (RENAMES .  811) (LEFT_PAREN .  105))
+      ((default . error) (SEPARATE .  820))
+      ((default . error) (SEMICOLON .  819))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (IDENTIFIER . (mod_clause_opt . 0)) (AT .  816))
+      ((default . error) (SEMICOLON .  815))
+      ((default . error) (SEMICOLON .  814))
+      ((default . error) (DOT .  86) (TICK .  87) (RENAMES .  813) (LEFT_PAREN .  105))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((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 .  808))
+      ((default . error) (RIGHT_PAREN .  810))
       ((default . error) (DO . (membership_choice_list . 1)) (LOOP . (membership_choice_list . 1)) (COMMA . (membership_choice_list . 1)) (RIGHT_PAREN . (membership_choice_list . 1)) (ELSIF . (membership_choice_list . 1)) (ELSE . (membership_choice_list . 1)) (EQUAL_GREATER . (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_choice_list . 1)) (IS . (membership_choice_list . 1)) (AND . (membership_choice_list . 1)) (OR . (membership_choice_list . 1)) (XOR . (membership_choice_list . 1)) (BAR . (membership_choice_list . 1)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (ACCESS . (null_exclusion_opt . 1)) (IDENTIFIER .  804) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (ACCESS . (null_exclusion_opt . 1)) (IDENTIFIER .  806) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (NULL . (abstract_tagged_limited_opt . 1)) (RECORD . (abstract_tagged_limited_opt . 1)) (PRIVATE . (abstract_tagged_limited_opt . 1)))
-      ((default . error) (NULL .  803) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (NULL .  805) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (RIGHT_PAREN . (discrete_subtype_definition_list . 0)) (COMMA . (discrete_subtype_definition_list . 0)))
-      ((default . error) (COMMA .  801) (RIGHT_PAREN .  802))
+      ((default . error) (COMMA .  803) (RIGHT_PAREN .  804))
       ((default . error) (RIGHT_PAREN . (index_subtype_definition_list . 0)) (COMMA . (index_subtype_definition_list . 0)))
-      ((default . error) (COMMA .  799) (RIGHT_PAREN .  800))
-      ((default . error) (RIGHT_PAREN . (subtype_indication . 3)) (COMMA . (subtype_indication . 3)) (PLUS . (primary . 2)) (MINUS . (primary . 2)) (AMPERSAND . (primary . 2)) (DOT_DOT . (primary . 2)) (SLASH . (primary . 2)) (STAR . (primary . 2)) (MOD . (primary . 2)) (REM . (primary . 2)) (STAR_STAR . (primary . 2)) (DOT .  86) (TICK .  271) (RANGE .  796) (LEFT_PAREN .  795))
+      ((default . error) (COMMA .  801) (RIGHT_PAREN .  802))
+      ((default . error) (RIGHT_PAREN . (subtype_indication . 3)) (COMMA . (subtype_indication . 3)) (PLUS . (primary . 2)) (MINUS . (primary . 2)) (AMPERSAND . (primary . 2)) (DOT_DOT . (primary . 2)) (SLASH . (primary . 2)) (STAR . (primary . 2)) (MOD . (primary . 2)) (REM . (primary . 2)) (STAR_STAR . (primary . 2)) (DOT .  86) (TICK .  273) (RANGE .  798) (LEFT_PAREN .  797))
       ((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) (DOT_DOT .  261))
+      ((default . error) (DOT_DOT .  263))
       ((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 .  794))
+      ((default . error) (BOX .  796))
       ((default . error) (WITH . (formal_type_definition . 2)) (SEMICOLON . (formal_type_definition . 2)))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (PACKAGE . (formal_type_declaration . 1)) (PROCEDURE . (formal_type_declaration . 1)) (FUNCTION . (formal_type_declaration . 1)) (IDENTIFIER . (formal_type_declaration . 1)) (PRAGMA . (formal_type_declaration . 1)) (TYPE . (formal_type_declaration . 1)) (WITH . (formal_type_declaration . 1)))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (SEMICOLON . (formal_derived_type_definition . 3)) (WITH . ((formal_derived_type_definition . 3)  788)) (DOT .  86) (TICK .  87) (AND .  787) (LEFT_PAREN .  105))
+      ((default . error) (SEMICOLON . (formal_derived_type_definition . 3)) (WITH . ((formal_derived_type_definition . 3)  790)) (DOT .  86) (TICK .  87) (AND .  789) (LEFT_PAREN .  105))
       ((default . error) (PACKAGE . (formal_type_declaration . 0)) (PROCEDURE . (formal_type_declaration . 0)) (FUNCTION . (formal_type_declaration . 0)) (IDENTIFIER . (formal_type_declaration . 0)) (PRAGMA . (formal_type_declaration . 0)) (TYPE . (formal_type_declaration . 0)) (WITH . (formal_type_declaration . 0)))
       ((default . error) (PACKAGE . (formal_subprogram_declaration . 2)) (PROCEDURE . (formal_subprogram_declaration . 2)) (FUNCTION . (formal_subprogram_declaration . 2)) (IDENTIFIER . (formal_subprogram_declaration . 2)) (PRAGMA . (formal_subprogram_declaration . 2)) (TYPE . (formal_subprogram_declaration . 2)) (WITH . (formal_subprogram_declaration . 2)))
-      ((default . error) (BOX .  786) (IDENTIFIER .  47) (STRING_LITERAL .  48) (CHARACTER_LITERAL .  168) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (PLUS .  142) (MINUS .  141) (OTHERS .  170) (ABS .  144) (NOT .  169) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (BOX .  788) (IDENTIFIER .  47) (STRING_LITERAL .  48) (CHARACTER_LITERAL .  169) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (PLUS .  143) (MINUS .  142) (OTHERS .  171) (ABS .  145) (NOT .  170) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (PACKAGE . (formal_object_declaration . 1)) (PROCEDURE . (formal_object_declaration . 1)) (FUNCTION . (formal_object_declaration . 1)) (IDENTIFIER . (formal_object_declaration . 1)) (PRAGMA . (formal_object_declaration . 1)) (TYPE . (formal_object_declaration . 1)) (WITH . (formal_object_declaration . 1)))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (SEMICOLON .  783))
+      ((default . error) (SEMICOLON .  785))
       ((default . error) (IDENTIFIER .  71))
       ((default . error) (RENAMES . (access_definition . 1)) (DO . (access_definition . 1)) (RIGHT_PAREN . (access_definition . 1)) (IS . (access_definition . 1)) (SEMICOLON . (access_definition . 1)) (WITH . (access_definition . 1)) (COLON_EQUAL . (access_definition . 1)))
       ((default . error) (RENAMES . (access_definition . 2)) (DO . (access_definition . 2)) (RIGHT_PAREN . (access_definition . 2)) (IS . (access_definition . 2)) (SEMICOLON . (access_definition . 2)) (WITH . (access_definition . 2)) (COLON_EQUAL . (access_definition . 2)))
       ((default . error) (SEMICOLON . (parameter_specification . 2)) (RIGHT_PAREN . (parameter_specification . 2)))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (DO . (aggregate . 1)) (LOOP . (aggregate . 1)) (USE . (aggregate . 1)) (COLON_EQUAL . (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 . 1)) (DECLARE . (aggregate . 1)) (CASE . (aggregate . 1)) (BEGIN . (aggregate . 1)) (ABORT . (aggregate . 1)) (ACCEPT . (aggregate . 1)) (CHARACTER_LITERAL . (aggregate . 1)) (STRING_LITERAL . (aggregate . 1)) (IDENTIFIER . (aggregate . 1)) (LESS_LESS . (aggregate . 1)) (OF . (aggregate . 1)) (ELSIF . (aggregate . 1)) (ELSE . (aggregate . 1)) (DIGITS . (aggregate . 1)) (COMMA . (aggregate . 1)) (RIGHT_PAREN . (aggregate . 1)) (RANGE . (aggregate . 1)) (THEN . (aggregate . 1)) (WITH . (aggregate . 1)) (BAR . (aggregate . 1)) (EQUAL_GREATER . (aggregate . 1)) (IS . (aggregate . 1)) (SLASH_EQUAL . (aggregate . 1)) (LESS_EQUAL . (aggregate . 1)) (LESS . (aggregate . 1)) (GREATER_EQUAL . (aggregate . 1)) (GREATER . (aggregate . 1)) (EQUAL . (aggregate . 1)) (NOT . (aggregate . 1)) (IN . (aggregate . 1)) (AND . (aggregate . 1)) (OR . (aggregate . 1)) (XOR . (aggregate . 1)) (SEMICOLON . (aggregate . 1)) (STAR_STAR . (aggregate . 1)) (REM . (aggregate . 1)) (MOD . (aggregate . 1)) (STAR . (aggregate . 1)) (SLASH . (aggregate . 1)) (DOT_DOT . (aggregate . 1)) (AMPERSAND . (aggregate . 1)) (MINUS . (aggregate . 1)) (PLUS . (aggregate . 1)) (LEFT_PAREN . (aggregate . 1)) (DOT . (aggregate . 1)) (TICK . (aggregate . 1)) (RENAMES . (aggregate . 1)) (RETURN . (aggregate . 1)))
-      ((default . error) (RIGHT_PAREN .  781))
+      ((default . error) (RIGHT_PAREN .  783))
       ((default . error) (OF . (aggregate . 2)) (LESS_LESS . (aggregate . 2)) (IDENTIFIER . (aggregate . 2)) (STRING_LITERAL . (aggregate . 2)) (CHARACTER_LITERAL . (aggregate . 2)) (ACCEPT . (aggregate . 2)) (ABORT . (aggregate . 2)) (BEGIN . (aggregate . 2)) (CASE . (aggregate . 2)) (DECLARE . (aggregate . 2)) (DELAY . (aggregate . 2)) (EXIT . (aggregate . 2)) (FOR . (aggregate . 2)) (GOTO . (aggregate . 2)) (IF . (aggregate . 2)) (NULL . (aggregate . 2)) (PRAGMA . (aggregate . 2)) (RAISE . (aggregate . 2)) (REQUEUE . (aggregate . 2)) (SELECT . (aggregate . 2)) (WHILE . (aggregate . 2)) (COLON_EQUAL . (aggregate . 2)) (USE . (aggregate . 2)) (LOOP . (aggregate . 2)) (DO . (aggregate . 2)) (RETURN . (aggregate . 2)) (RENAMES . (aggregate . 2)) (TICK . (aggregate . 2)) (DOT . (aggregate . 2)) (LEFT_PAREN . (aggregate . 2)) (PLUS . (aggregate . 2)) (MINUS . (aggregate . 2)) (AMPERSAND . (aggregate . 2)) (DOT_DOT . (aggregate . 2)) (SLASH . (aggregate . 2)) (STAR . (aggregate . 2)) (MOD . (aggregate . 2)) (REM . (aggregate . 2)) (STAR_STAR . (aggregate . 2)) (SEMICOLON . (aggregate . 2)) (XOR . (aggregate . 2)) (OR . (aggregate . 2)) (AND . (aggregate . 2)) (IN . (aggregate . 2)) (NOT . (aggregate . 2)) (EQUAL . (aggregate . 2)) (GREATER . (aggregate . 2)) (GREATER_EQUAL . (aggregate . 2)) (LESS . (aggregate . 2)) (LESS_EQUAL . (aggregate . 2)) (SLASH_EQUAL . (aggregate . 2)) (IS . (aggregate . 2)) (EQUAL_GREATER . (aggregate . 2)) (BAR . (aggregate . 2)) (WITH . (aggregate . 2)) (THEN . (aggregate . 2)) (RANGE . (aggregate . 2)) (RIGHT_PAREN . (aggregate . 2)) (COMMA . (aggregate . 2)) (DIGITS . (aggregate . 2)) (ELSE . (aggregate . 2)) (ELSIF . (aggregate . 2)))
-      ((default . error) (COLON_EQUAL .  1051) (DOT .  86) (TICK .  87) (RIGHT_PAREN . (parameter_specification . 1)) (SEMICOLON . (parameter_specification . 1)) (LEFT_PAREN .  105))
+      ((default . error) (COLON_EQUAL .  1053) (DOT .  86) (TICK .  87) (RIGHT_PAREN . (parameter_specification . 1)) (SEMICOLON . (parameter_specification . 1)) (LEFT_PAREN .  105))
       ((default . error) (WITH . (formal_object_declaration . 2)) (TYPE . (formal_object_declaration . 2)) (PRAGMA . (formal_object_declaration . 2)) (IDENTIFIER . (formal_object_declaration . 2)) (FUNCTION . (formal_object_declaration . 2)) (PROCEDURE . (formal_object_declaration . 2)) (PACKAGE . (formal_object_declaration . 2)))
-      ((default . error) (SEMICOLON .  1050))
-      ((default . error) (SEMICOLON .  1049))
-      ((default . error) (RIGHT_PAREN .  1048))
+      ((default . error) (SEMICOLON .  1052))
+      ((default . error) (SEMICOLON .  1051))
+      ((default . error) (RIGHT_PAREN .  1050))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (PRIVATE .  1046))
-      ((default . error) (AND .  1045) (WITH . (interface_type_definition . 1)) (SEMICOLON . (interface_type_definition . 1)))
+      ((default . error) (PRIVATE .  1048))
+      ((default . error) (AND .  1047) (WITH . (interface_type_definition . 1)) (SEMICOLON . (interface_type_definition . 1)))
       ((default . error) (DOT .  86) (SEMICOLON . (interface_list . 0)) (WITH . (interface_list . 0)) (AND . (interface_list . 0)) (TICK .  87) (LEFT_PAREN .  105))
-      ((default . error) (AND .  1045) (WITH . (interface_type_definition . 3)) (SEMICOLON . (interface_type_definition . 3)))
-      ((default . error) (AND .  1045) (WITH . (interface_type_definition . 2)) (SEMICOLON . (interface_type_definition . 2)))
-      ((default . error) (AND .  1045) (WITH . (interface_type_definition . 0)) (SEMICOLON . (interface_type_definition . 0)))
+      ((default . error) (AND .  1047) (WITH . (interface_type_definition . 3)) (SEMICOLON . (interface_type_definition . 3)))
+      ((default . error) (AND .  1047) (WITH . (interface_type_definition . 2)) (SEMICOLON . (interface_type_definition . 2)))
+      ((default . error) (AND .  1047) (WITH . (interface_type_definition . 0)) (SEMICOLON . (interface_type_definition . 0)))
       ((default . error) (SEMICOLON . (formal_type_definition . 7)) (WITH . (formal_type_definition . 7)))
-      ((default . error) (IDENTIFIER .  47) (STRING_LITERAL .  48) (CHARACTER_LITERAL .  168) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (PLUS .  142) (MINUS .  141) (OTHERS .  170) (ABS .  144) (NOT .  1042) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (BOX .  1041) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (IDENTIFIER .  47) (STRING_LITERAL .  48) (CHARACTER_LITERAL .  169) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (PLUS .  143) (MINUS .  142) (OTHERS .  171) (ABS .  145) (NOT .  1044) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
+      ((default . error) (BOX .  1043) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
       ((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) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (OF .  1040))
+      ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  752) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
       ((default . error) (OF .  1038))
-      ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  750) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (OF .  1036))
       ((default . error) (PLUS . (primary . 0)) (MINUS . (primary . 0)) (AMPERSAND . (primary . 0)) (DOT_DOT . (primary . 0)) (SLASH . (primary . 0)) (STAR . (primary . 0)) (MOD . (primary . 0)) (REM . (primary . 0)) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (DOT . (name . 0)) (LEFT_PAREN . (name . 0)) (TICK . (name . 0)) (SEMICOLON . (null_exclusion_opt_name . 2)) (RIGHT_PAREN . (null_exclusion_opt_name . 2)) (COLON_EQUAL . (null_exclusion_opt_name . 2)))
       ((default . error) (DOT . (name . 3)) (LEFT_PAREN . (name . 3)) (TICK . (name . 3)) (SEMICOLON . (null_exclusion_opt_name . 3)) (RIGHT_PAREN . (null_exclusion_opt_name . 3)) (COLON_EQUAL . (null_exclusion_opt_name . 3)))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (WHEN . (record_representation_clause . 0)) (END . (record_representation_clause . 0)) (PRIVATE . (record_representation_clause . 0)) (CASE . (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 . (record_representation_clause . 0)) (PRAGMA . (record_representation_clause . 0)) (PACKAGE . (record_representation_clause . 0)) (OVERRIDING . (record_representation_clause . 0)) (NOT . (record_representation_clause . 0)) (GENERIC . (record_representation_clause . 0)) (FUNCTION . (record_representation_clause . 0)) (FOR . (record_representation_clause . 0)) (ENTRY . (record_representation_clause . 0)) (IDENTIFIER . (record_representation_clause . 0)) (BEGIN . (record_representation_clause . 0)))
       ((default . error) (WHEN . (enumeration_representation_clause . 0)) (END . (enumeration_representation_clause . 0)) (PRIVATE . (enumeration_representation_clause . 0)) (CASE . (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 . (enumeration_representation_clause . 0)) (PROCEDURE . (enumeration_representation_clause . 0)) (PRAGMA . (enumeration_representation_clause . 0)) (PACKAGE . (enumeration_representation_clause . 0)) (OVERRIDING . (enumeration_representation_clause . 0)) (NOT . (enumeration_representation_clause . 0)) (GENERIC . (enumeration_representation_clause . 0)) (FUNCTION . (enumeration_representation_clause . 0)) (FOR . (enumeration_representation_clause . 0)) (ENTRY . (enumeration_representation_clause . 0)) (IDENTIFIER . (enumeration_representation_clause . 0)) (BEGIN . (enumeration_representation_clause . 0)))
-      ((default . error) (MOD .  1032))
-      ((default . error) (IDENTIFIER .  1029))
-      ((default . error) (SEMICOLON .  1028))
+      ((default . error) (MOD .  1034))
+      ((default . error) (IDENTIFIER .  1031))
+      ((default . error) (SEMICOLON .  1030))
       ((default . error) (WHEN . (aspect_clause . 0)) (PRIVATE . (aspect_clause . 0)) (END . (aspect_clause . 0)) (CASE . (aspect_clause . 0)) (BEGIN . (aspect_clause . 0)) (IDENTIFIER . (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)) (SUBTYPE . (aspect_clause . 0)) (TASK . (aspect_clause . 0)) (TYPE . (aspect_clause . 0)) (USE . (aspect_clause . 0)))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (IS .  1026))
+      ((default . error) (IS .  1028))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (END .  1022) (PRIVATE .  1023))
-      ((default . error) (SEMICOLON .  1021))
-      ((default . error) (SEMICOLON .  1020))
-      ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (END .  1024) (PRIVATE .  1025))
+      ((default . error) (SEMICOLON .  1023))
+      ((default . error) (SEMICOLON .  1022))
+      ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (SEMICOLON .  1016) (IS .  1017))
+      ((default . error) (SEMICOLON .  1018) (IS .  1019))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (END .  1012) (PRIVATE .  1013))
-      ((default . error) (SEMICOLON .  1011))
-      ((default . error) (SYNCHRONIZED .  546) (TAGGED .  547) (NEW . ((abstract_limited_synchronized_opt . 3) (abstract_limited_opt . 3))) (LIMITED .  1010))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (IDENTIFIER .  1004) (CHARACTER_LITERAL .  1005))
-      ((default . error) (INTERFACE .  540) (PRIVATE . (abstract_tagged_limited_opt . 5)) (NULL . (abstract_tagged_limited_opt . 5)) (RECORD . (abstract_tagged_limited_opt . 5)) (NEW . ((abstract_limited_synchronized_opt . 4) (abstract_limited_opt . 2))))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (RECORD .  1002))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (END . (component_list_opt . 0)) (NULL .  993) (CASE .  992) (IDENTIFIER .  71) (FOR .  286))
-      ((default . error) (SEMICOLON .  991) (PRIVATE . (abstract_tagged_limited_opt . 4)) (NULL . (abstract_tagged_limited_opt . 4)) (RECORD . (abstract_tagged_limited_opt . 4)) (LIMITED .  534))
-      ((default . error) (NEW .  990))
-      ((default . error) (NEW .  989))
-      ((default . error) (PRIVATE .  987) (RECORD .  840) (NULL .  838))
+      ((default . error) (END .  1014) (PRIVATE .  1015))
+      ((default . error) (SEMICOLON .  1013))
+      ((default . error) (SYNCHRONIZED .  548) (TAGGED .  549) (NEW . ((abstract_limited_synchronized_opt . 3) (abstract_limited_opt . 3))) (LIMITED .  1012))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (IDENTIFIER .  1006) (CHARACTER_LITERAL .  1007))
+      ((default . error) (INTERFACE .  542) (PRIVATE . (abstract_tagged_limited_opt . 5)) (NULL . (abstract_tagged_limited_opt . 5)) (RECORD . (abstract_tagged_limited_opt . 5)) (NEW . ((abstract_limited_synchronized_opt . 4) (abstract_limited_opt . 2))))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (RECORD .  1004))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (END . (component_list_opt . 0)) (NULL .  995) (CASE .  994) (IDENTIFIER .  71) (FOR .  288))
+      ((default . error) (SEMICOLON .  993) (PRIVATE . (abstract_tagged_limited_opt . 4)) (NULL . (abstract_tagged_limited_opt . 4)) (RECORD . (abstract_tagged_limited_opt . 4)) (LIMITED .  536))
+      ((default . error) (NEW .  992))
+      ((default . error) (NEW .  991))
+      ((default . error) (PRIVATE .  989) (RECORD .  842) (NULL .  840))
       ((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)))
       ((default . error) (WITH . (type_definition . 7)) (SEMICOLON . (type_definition . 7)))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (SEMICOLON . (package_specification . 0)))
-      ((default . error) (SEMICOLON .  985))
-      ((default . error) (NULL .  984))
+      ((default . error) (SEMICOLON .  987))
+      ((default . error) (NULL .  986))
+      ((default . error) (COLON_EQUAL .  984) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (COLON_EQUAL .  982) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (COLON_EQUAL .  980) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (COLON_EQUAL .  978) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
+      ((default . error) (SEMICOLON .  979))
+      ((default . error) (SEMICOLON .  978))
       ((default . error) (SEMICOLON .  977))
       ((default . error) (SEMICOLON .  976))
-      ((default . error) (SEMICOLON .  975))
-      ((default . error) (SEMICOLON .  974))
-      ((default . error) (RIGHT_PAREN .  973))
-      ((default . error) (LOOP . (subtype_indication . 3)) (DOT .  86) (IN . (primary . 2)) (NOT . (primary . 2)) (EQUAL . (primary . 2)) (GREATER . (primary . 2)) (GREATER_EQUAL . (primary . 2)) (LESS . (primary . 2)) (LESS_EQUAL . (primary . 2)) (SLASH_EQUAL . (primary . 2)) (RIGHT_PAREN . ((subtype_indication . 3) (primary . 2))) (COMMA . ((subtype_indication . 3) (primary . 2))) (BAR . (primary . 2)) (EQUAL_GREATER . ((subtype_indication . 3) (primary . 2))) (AND . (primary . 2)) (OR . (primary . 2)) (XOR . (primary . 2)) (PLUS . (primary . 2)) (MINUS . (primary . 2)) (AMPERSAND . (primary . 2)) (DOT_DOT . (primary . 2)) (SLASH . (primary . 2)) (STAR . (primary . 2)) (MOD . (primary . 2)) (REM . (primary . 2)) (STAR_STAR . (primary . 2)) (TICK .  271) (RANGE .  825) (LEFT_PAREN .  795))
+      ((default . error) (RIGHT_PAREN .  975))
+      ((default . error) (LOOP . (subtype_indication . 3)) (DOT .  86) (IN . (primary . 2)) (NOT . (primary . 2)) (EQUAL . (primary . 2)) (GREATER . (primary . 2)) (GREATER_EQUAL . (primary . 2)) (LESS . (primary . 2)) (LESS_EQUAL . (primary . 2)) (SLASH_EQUAL . (primary . 2)) (RIGHT_PAREN . ((subtype_indication . 3) (primary . 2))) (COMMA . ((subtype_indication . 3) (primary . 2))) (BAR . (primary . 2)) (EQUAL_GREATER . ((subtype_indication . 3) (primary . 2))) (AND . (primary . 2)) (OR . (primary . 2)) (XOR . (primary . 2)) (PLUS . (primary . 2)) (MINUS . (primary . 2)) (AMPERSAND . (primary . 2)) (DOT_DOT . (primary . 2)) (SLASH . (primary . 2)) (STAR . (primary . 2)) (MOD . (primary . 2)) (REM . (primary . 2)) (STAR_STAR . (primary . 2)) (TICK .  273) (RANGE .  827) (LEFT_PAREN .  797))
       ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (END . (package_body . 1)) (BEGIN . (package_body . 1)) (IDENTIFIER . (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)) (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_body . 1)) (OVERRIDING . (package_body . 1)) (NOT . (package_body . 1)) (LIMITED . (package_body . 1)) (GENERIC . (package_body . 1)) (FUNCTION . (package_body . 1)) ($EOI . (package_body . 1)))
-      ((default . error) (WHEN .  707))
-      ((default . error) (BAR .  272) (EQUAL_GREATER .  970))
+      ((default . error) (WHEN .  710))
+      ((default . error) (BAR .  274) (EQUAL_GREATER .  972))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (DOT .  86) (TICK .  87) (LOOP . (iterator_specification . 5)) (EQUAL_GREATER . (iterator_specification . 5)) (LEFT_PAREN .  105))
-      ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  750) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  752) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
       ((default . error) (LOOP . (iterator_specification . 1)) (EQUAL_GREATER . (iterator_specification . 1)))
-      ((default . error) (OF .  967))
+      ((default . error) (OF .  969))
       ((default . error) (RIGHT_PAREN . (quantified_expression . 0)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((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 .  963) (ELSIF .  875))
-      ((default . error) (END . (protected_operation_item_list_opt . 0)) (ENTRY .  954) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (FOR .  286))
-      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
+      ((default . error) (RIGHT_PAREN . (if_expression . 1)) (ELSE .  965) (ELSIF .  877))
+      ((default . error) (END . (protected_operation_item_list_opt . 0)) (ENTRY .  956) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (FOR .  288))
+      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
       ((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)) (IDENTIFIER . (label_opt . 1)) (STRING_LITERAL . (label_opt . 1)) (CHARACTER_LITERAL . (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) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  170) (IDENTIFIER .  47) (CHARACTER_LITERAL .  168) (STRING_LITERAL .  48) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  169) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (COMMA . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  171) (IDENTIFIER .  47) (CHARACTER_LITERAL .  169) (STRING_LITERAL .  48) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  170) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
       ((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 .  774))
+      ((default . error) (DO . (parameter_profile_opt . 0)) (SEMICOLON . (parameter_profile_opt . 0)) (LEFT_PAREN .  776))
       ((default . error) (OR . (simple_statement . 8)) (THEN . (simple_statement . 8)) (WHEN . (simple_statement . 8)) (EXCEPTION . (simple_statement . 8)) (END . (simple_statement . 8)) (LESS_LESS . (simple_statement . 8)) (IDENTIFIER . (simple_statement . 8)) (STRING_LITERAL . (simple_statement . 8)) (CHARACTER_LITERAL . (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 . (simple_statement . 8)) (LOOP . (simple_statement . 8)) (NULL . (simple_statement . 8)) (PRAGMA . (simple_statement . 8)) (RAISE . (simple_statement . 8)) (REQUEUE . (simple_statement . 8)) (RETURN . (simple_statement . 8)) (SELECT . (simple_statement . 8)) (WHILE . (simple_statement . 8)) (ELSE . (simple_statement . 8)) (ELSIF . (simple_statement . 8)))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  688))
-      ((default . error) (END . (case_statement_alternative_list . 0)) (WHEN . ((case_statement_alternative_list . 0)  948)))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  691))
+      ((default . error) (END . (case_statement_alternative_list . 0)) (WHEN . ((case_statement_alternative_list . 0)  950)))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
       ((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)) (LESS_LESS . (delay_statement . 1)) (IDENTIFIER . (delay_statement . 1)) (STRING_LITERAL . (delay_statement . 1)) (CHARACTER_LITERAL . (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_statement . 1)) (GOTO . (delay_statement . 1)) (IF . (delay_statement . 1)) (LOOP . (delay_statement . 1)) (NULL . (delay_statement . 1)) (PRAGMA . (delay_statement . 1)) (RAISE . (delay_statement . 1)) (REQUEUE . (delay_statement . 1)) (RETURN . (delay_statement . 1)) (SELECT . (delay_statement . 1)) (WHILE . (delay_statement . 1)))
-      ((default . error) (SEMICOLON .  946))
+      ((default . error) (SEMICOLON .  948))
       ((default . error) (OR . (exit_statement . 1)) (THEN . (exit_statement . 1)) (WHEN . (exit_statement . 1)) (EXCEPTION . (exit_statement . 1)) (END . (exit_statement . 1)) (LESS_LESS . (exit_statement . 1)) (IDENTIFIER . (exit_statement . 1)) (STRING_LITERAL . (exit_statement . 1)) (CHARACTER_LITERAL . (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 . (exit_statement . 1)) (NULL . (exit_statement . 1)) (PRAGMA . (exit_statement . 1)) (RAISE . (exit_statement . 1)) (REQUEUE . (exit_statement . 1)) (RETURN . (exit_statement . 1)) (SELECT . (exit_statement . 1)) (WHILE . (exit_statement . 1)) (ELSE . (exit_statement . 1)) (ELSIF . (exit_statement . 1)))
-      ((default . error) (SEMICOLON . (expression_opt . 0)) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (SEMICOLON . (expression_opt . 0)) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (OR . (simple_statement . 3)) (THEN . (simple_statement . 3)) (WHEN . (simple_statement . 3)) (EXCEPTION . (simple_statement . 3)) (END . (simple_statement . 3)) (LESS_LESS . (simple_statement . 3)) (IDENTIFIER . (simple_statement . 3)) (STRING_LITERAL . (simple_statement . 3)) (CHARACTER_LITERAL . (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 . (simple_statement . 3)) (LOOP . (simple_statement . 3)) (NULL . (simple_statement . 3)) (PRAGMA . (simple_statement . 3)) (RAISE . (simple_statement . 3)) (REQUEUE . (simple_statement . 3)) (RETURN . (simple_statement . 3)) (SELECT . (simple_statement . 3)) (WHILE . (simple_statement . 3)) (ELSE . (simple_statement . 3)) (ELSIF . (simple_statement . 3)))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
-      ((default . error) (LOOP .  943))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
+      ((default . error) (LOOP .  945))
       ((default . error) (OR . (raise_statement . 2)) (THEN . (raise_statement . 2)) (WHEN . (raise_statement . 2)) (EXCEPTION . (raise_statement . 2)) (END . (raise_statement . 2)) (LESS_LESS . (raise_statement . 2)) (IDENTIFIER . (raise_statement . 2)) (STRING_LITERAL . (raise_statement . 2)) (CHARACTER_LITERAL . (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 . 2)) (LOOP . (raise_statement . 2)) (NULL . (raise_statement . 2)) (PRAGMA . (raise_statement . 2)) (RAISE . (raise_statement . 2)) (REQUEUE . (raise_statement . 2)) (RETURN . (raise_statement . 2)) (SELECT . (raise_statement . 2)) (WHILE . (raise_statement . 2)) (ELSE . (raise_statement . 2)) (ELSIF . (raise_statement . 2)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (OR . (requeue_statement . 1)) (THEN . (requeue_statement . 1)) (WHEN . (requeue_statement . 1)) (EXCEPTION . (requeue_statement . 1)) (END . (requeue_statement . 1)) (LESS_LESS . (requeue_statement . 1)) (IDENTIFIER . (requeue_statement . 1)) (STRING_LITERAL . (requeue_statement . 1)) (CHARACTER_LITERAL . (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 . 1)) (IF . (requeue_statement . 1)) (LOOP . (requeue_statement . 1)) (NULL . (requeue_statement . 1)) (PRAGMA . (requeue_statement . 1)) (RAISE . (requeue_statement . 1)) (REQUEUE . (requeue_statement . 1)) (RETURN . (requeue_statement . 1)) (SELECT . (requeue_statement . 1)) (WHILE . (requeue_statement . 1)) (ELSE . (requeue_statement . 1)) (ELSIF . (requeue_statement . 1)))
-      ((default . error) (ABORT .  941))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
+      ((default . error) (ABORT .  943))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
       ((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)) (LESS_LESS . (extended_return_statement . 1)) (IDENTIFIER . (extended_return_statement . 1)) (STRING_LITERAL . (extended_return_statement . 1)) (CHARACTER_LITERAL . (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 . (extended_return_statement . 1)) (FOR . (extended_return_statement . 1)) (GOTO . (extended_return_statement . 1)) (IF . (extended_return_statement . 1)) (LOOP . (extended_return_statement . 1)) (NULL . (extended_return_statement . 1)) (PRAGMA . (extended_return_statement . 1)) (RAISE . (extended_return_statement . 1)) (REQUEUE . (extended_return_statement . 1)) (RETURN . (extended_return_statement . 1)) (SELECT . (extended_return_statement . 1)) (WHILE . (extended_return_statement . 1)) (ELSE . (extended_return_statement . 1)) (ELSIF . (extended_return_statement . 1)))
       ((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)) (LESS_LESS . (simple_return_statement . 1)) (IDENTIFIER . (simple_return_statement . 1)) (STRING_LITERAL . (simple_return_statement . 1)) (CHARACTER_LITERAL . (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_statement . 1)) (FOR . (simple_return_statement . 1)) (GOTO . (simple_return_statement . 1)) (IF . (simple_return_statement . 1)) (LOOP . (simple_return_statement . 1)) (NULL . (simple_return_statement . 1)) (PRAGMA . (simple_return_statement . 1)) (RAISE . (simple_return_statement . 1)) (REQUEUE . (simple_return_statement . 1)) (RETURN . (simple_return_statement . 1)) (SELECT . (simple_return_statement . 1)) (WHILE . (simple_return_statement . 1)) (ELSE . (simple_return_statement . 1)) (ELSIF . (simple_return_statement . 1)))
-      ((default . error) (CONSTANT . (aliased_opt . 0)) (IDENTIFIER . (aliased_opt . 0)) (STRING_LITERAL . (aliased_opt . 0)) (CHARACTER_LITERAL . (aliased_opt . 0)) (ACCESS . (aliased_opt . 0)) (NOT . (aliased_opt . 0)) (ALIASED .  507))
-      ((default . error) (ABORT .  938))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
-      ((default . error) (SELECT .  936))
-      ((default . error) (WHEN .  663) (TERMINATE .  662) (ACCEPT .  606) (DELAY .  611))
+      ((default . error) (CONSTANT . (aliased_opt . 0)) (IDENTIFIER . (aliased_opt . 0)) (STRING_LITERAL . (aliased_opt . 0)) (CHARACTER_LITERAL . (aliased_opt . 0)) (ACCESS . (aliased_opt . 0)) (NOT . (aliased_opt . 0)) (ALIASED .  509))
+      ((default . error) (ABORT .  940))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
+      ((default . error) (SELECT .  938))
+      ((default . error) (WHEN .  666) (TERMINATE .  665) (ACCEPT .  609) (DELAY .  614))
       ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
-      ((default . error) (DELAY .  611))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
+      ((default . error) (DELAY .  614))
       ((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 .  931))
+      ((default . error) (EQUAL_GREATER .  933))
       ((default . error) (END . (select_alternative . 5)) (OR . (select_alternative . 5)) (ELSE . (select_alternative . 5)))
+      ((default . error) (SEMICOLON .  932))
+      ((default . error) (END .  931))
       ((default . error) (SEMICOLON .  930))
-      ((default . error) (END .  929))
-      ((default . error) (SEMICOLON .  928))
-      ((default . error) (OTHERS .  924) (IDENTIFIER .  923) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (OTHERS .  926) (IDENTIFIER .  925) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (END . (exception_handler_list . 0)) (WHEN . (exception_handler_list . 0)))
-      ((default . error) (END . (exception_handler_list_opt . 1)) (WHEN .  918))
+      ((default . error) (END . (exception_handler_list_opt . 1)) (WHEN .  920))
       ((default . error) (END . (handled_sequence_of_statements . 0)))
       ((default . error) (WHEN . (exception_handler_list . 1)) (END . (exception_handler_list . 1)))
-      ((default . error) (COLON .  1151) (EQUAL_GREATER . (name . 0)) (BAR . (name . 0)) (LEFT_PAREN . (name . 0)) (DOT . (name . 0)) (TICK . (name . 0)))
+      ((default . error) (COLON .  1153) (EQUAL_GREATER . (name . 0)) (BAR . (name . 0)) (LEFT_PAREN . (name . 0)) (DOT . (name . 0)) (TICK . (name . 0)))
       ((default . error) (BAR . (exception_choice . 1)) (EQUAL_GREATER . (exception_choice . 1)))
       ((default . error) (EQUAL_GREATER . (exception_choice_list . 0)) (BAR . (exception_choice_list . 0)))
-      ((default . error) (BAR .  1149) (EQUAL_GREATER .  1150))
+      ((default . error) (BAR .  1151) (EQUAL_GREATER .  1152))
       ((default . error) (DOT .  86) (BAR . (exception_choice . 0)) (EQUAL_GREATER . (exception_choice . 0)) (TICK .  87) (LEFT_PAREN .  105))
       ((default . error) (WHEN . (assignment_statement . 0)) (THEN . (assignment_statement . 0)) (OR . (assignment_statement . 0)) (ELSIF . (assignment_statement . 0)) (ELSE . (assignment_statement . 0)) (WHILE . (assignment_statement . 0)) (SELECT . (assignment_statement . 0)) (RETURN . (assignment_statement . 0)) (REQUEUE . (assignment_statement . 0)) (RAISE . (assignment_statement . 0)) (PRAGMA . (assignment_statement . 0)) (NULL . (assignment_statement . 0)) (LOOP . (assignment_statement . 0)) (IF . (assignment_statement . 0)) (GOTO . (assignment_statement . 0)) (FOR . (assignment_statement . 0)) (EXIT . (assignment_statement . 0)) (DELAY . (assignment_statement . 0)) (DECLARE . (assignment_statement . 0)) (CASE . (assignment_statement . 0)) (BEGIN . (assignment_statement . 0)) (ABORT . (assignment_statement . 0)) (ACCEPT . (assignment_statement . 0)) (CHARACTER_LITERAL . (assignment_statement . 0)) (STRING_LITERAL . (assignment_statement . 0)) (IDENTIFIER . (assignment_statement . 0)) (LESS_LESS . (assignment_statement . 0)) (END . (assignment_statement . 0)) (EXCEPTION . (assignment_statement . 0)))
-      ((default . error) (LOOP .  1148))
+      ((default . error) (LOOP .  1150))
       ((default . error) (TYPE . (subprogram_body . 0)) (TASK . (subprogram_body . 0)) (SUBTYPE . (subprogram_body . 0)) (PROTECTED . (subprogram_body . 0)) (FOR . (subprogram_body . 0)) (ENTRY . (subprogram_body . 0)) (IDENTIFIER . (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)) (OVERRIDING . (subprogram_body . 0)) (PACKAGE . (subprogram_body . 0)) (PRAGMA . (subprogram_body . 0)) (PRIVATE . (subprogram_body . 0)) (PROCEDURE . (subprogram_body . 0)) (SEPARATE . (subprogram_body . 0)) (USE . (subprogram_body . 0)) (WITH . (subprogram_body . 0)))
-      ((default . error) (TERMINATE .  1145) (ACCEPT .  606) (DELAY .  611))
+      ((default . error) (TERMINATE .  1147) (ACCEPT .  609) (DELAY .  614))
+      ((default . error) (END .  1146))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
       ((default . error) (END .  1144))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
-      ((default . error) (END .  1142))
       ((default . error) (ELSE . (select_alternative_list . 1)) (END . (select_alternative_list . 1)) (OR . (select_alternative_list . 1)))
-      ((default . error) (SEMICOLON .  1141))
-      ((default . error) (END .  1140))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
-      ((default . error) (IDENTIFIER . (constant_opt . 0)) (STRING_LITERAL . (constant_opt . 0)) (CHARACTER_LITERAL . (constant_opt . 0)) (ACCESS . (constant_opt . 0)) (NOT . (constant_opt . 0)) (CONSTANT .  718))
-      ((default . error) (END .  1137))
-      ((default . error) (SEMICOLON .  1136))
-      ((default . error) (SEMICOLON .  1135))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  688))
-      ((default . error) (ELSE .  1129) (END .  1131) (ELSIF .  1130))
-      ((default . error) (SEMICOLON .  1128))
+      ((default . error) (SEMICOLON .  1143))
+      ((default . error) (END .  1142))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
+      ((default . error) (IDENTIFIER . (constant_opt . 0)) (STRING_LITERAL . (constant_opt . 0)) (CHARACTER_LITERAL . (constant_opt . 0)) (ACCESS . (constant_opt . 0)) (NOT . (constant_opt . 0)) (CONSTANT .  720))
+      ((default . error) (END .  1139))
+      ((default . error) (SEMICOLON .  1138))
+      ((default . error) (SEMICOLON .  1137))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  691))
+      ((default . error) (ELSE .  1131) (END .  1133) (ELSIF .  1132))
+      ((default . error) (SEMICOLON .  1130))
       ((default . error) (WHEN . (delay_statement . 0)) (ELSIF . (delay_statement . 0)) (EXCEPTION . (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 . (delay_statement . 0)) (LOOP . (delay_statement . 0)) (IF . (delay_statement . 0)) (GOTO . (delay_statement . 0)) (FOR . (delay_statement . 0)) (EXIT . (delay_statement . 0)) (DELAY . (delay_statement . 0)) (DECLARE . (delay_statement . 0)) (CASE . (delay_statement . 0)) (BEGIN . (delay_statement . 0)) (ABORT . (delay_statement . 0)) (ACCEPT . (delay_statement . 0)) (CHARACTER_LITERAL . (delay_statement . 0)) (STRING_LITERAL . (delay_statement . 0)) (IDENTIFIER . (delay_statement . 0)) (LESS_LESS . (delay_statement . 0)) (END . (delay_statement . 0)) (OR . (delay_statement . 0)) (ELSE . (delay_statement . 0)) (THEN . (delay_statement . 0)))
-      ((default . error) (END .  1127))
-      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  170) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  169) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (END .  1129))
+      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  171) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  170) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
       ((default . error) (END . (case_statement_alternative_list . 1)) (WHEN . (case_statement_alternative_list . 1)))
-      ((default . error) (END .  1124) (WHEN .  948))
-      ((default . error) (SEMICOLON .  1123))
-      ((default . error) (DO .  1122) (SEMICOLON .  1121))
-      ((default . error) (BEGIN .  1120))
-      ((default . error) (IDENTIFIER .  1119))
+      ((default . error) (END .  1126) (WHEN .  950))
+      ((default . error) (SEMICOLON .  1125))
+      ((default . error) (DO .  1124) (SEMICOLON .  1123))
+      ((default . error) (BEGIN .  1122))
+      ((default . error) (IDENTIFIER .  1121))
       ((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 . 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) (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 .  954) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (FOR .  286))
-      ((default . error) (END .  1116))
+      ((default . error) (END . (protected_operation_item_list_opt . 1)) (ENTRY .  956) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (FOR .  288))
+      ((default . error) (END .  1118))
       ((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) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (ELSIF . (elsif_expression_list . 1)) (ELSE . (elsif_expression_list . 1)) (RIGHT_PAREN . (elsif_expression_list . 1)))
-      ((default . error) (THEN .  1114))
+      ((default . error) (THEN .  1116))
       ((default . error) (RIGHT_PAREN . (if_expression . 2)))
-      ((default . error) (REVERSE .  1112) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (REVERSE .  1114) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (LOOP . (iterator_specification . 0)) (EQUAL_GREATER . (iterator_specification . 0)))
       ((default . error) (DOT .  86) (TICK .  87) (LOOP . (iterator_specification . 4)) (EQUAL_GREATER . (iterator_specification . 4)) (LEFT_PAREN .  105))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (RIGHT_PAREN . (case_expression_alternative_list . 1)) (COMMA . (case_expression_alternative_list . 1)))
-      ((default . error) (SEMICOLON .  1110))
-      ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON . (parameter_profile_opt . 0)) (LEFT_PAREN .  774))
+      ((default . error) (SEMICOLON .  1112))
+      ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON . (parameter_profile_opt . 0)) (LEFT_PAREN .  776))
       ((default . error) (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)) (FOR . (entry_declaration . 1)) (ENTRY . (entry_declaration . 1)) (IDENTIFIER . (entry_declaration . 1)) (BEGIN . (entry_declaration . 1)) (END . (entry_declaration . 1)) (PRIVATE . (entry_declaration . 1)))
       ((default . error) (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_procedure_declaration . 0)) (GENERIC . (null_procedure_declaration . 0)) (FUNCTION . (null_procedure_declaration . 0)) (FOR . (null_procedure_declaration . 0)) (ENTRY . (null_procedure_declaration . 0)) (IDENTIFIER . (null_procedure_declaration . 0)) (BEGIN . (null_procedure_declaration . 0)) (END . (null_procedure_declaration . 0)) (PRIVATE . (null_procedure_declaration . 0)))
       ((default . error) (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 . (abstract_subprogram_declaration . 0)) (NOT . (abstract_subprogram_declaration . 0)) (GENERIC . (abstract_subprogram_declaration . 0)) (FUNCTION . (abstract_subprogram_declaration . 0)) (FOR . (abstract_subprogram_declaration . 0)) (ENTRY . (abstract_subprogram_declaration . 0)) (IDENTIFIER . (abstract_subprogram_declaration . 0)) (BEGIN . (abstract_subprogram_declaration . 0)) (END . (abstract_subprogram_declaration . 0)) (PRIVATE . (abstract_subprogram_declaration . 0)))
       ((default . error) (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)) (FUNCTION . (subprogram_body_stub . 0)) (FOR . (subprogram_body_stub . 0)) (ENTRY . (subprogram_body_stub . 0)) (IDENTIFIER . (subprogram_body_stub . 0)) (BEGIN . (subprogram_body_stub . 0)) (END . (subprogram_body_stub . 0)) (PRIVATE . (subprogram_body_stub . 0)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (SEMICOLON .  1109))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (SEMICOLON .  1107))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (SEMICOLON .  1105))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (SEMICOLON .  1103))
       ((default . error) (ACCESS . (null_exclusion_opt . 1)) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (BEGIN . (declaration . 8)) (IDENTIFIER . (declaration . 8)) (ENTRY . (declaration . 8)) (FOR . (declaration . 8)) (FUNCTION . (declaration . 8)) (GENERIC . (declaration . 8)) (NOT . (declaration . 8)) (OVERRIDING . (declaration . 8)) (PACKAGE . (declaration . 8)) (PRAGMA . (declaration . 8)) (PROCEDURE . (declaration . 8)) (PROTECTED . (declaration . 8)) (SUBTYPE . (declaration . 8)) (TASK . (declaration . 8)) (TYPE . (declaration . 8)) (USE . (declaration . 8)) (PRIVATE . (declaration . 8)) (END . (declaration . 8)))
-      ((default . error) (SEMICOLON .  1102))
+      ((default . error) (SEMICOLON .  1104))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (WITH . (record_type_definition . 0)) (SEMICOLON . (record_type_definition . 0)))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (NOT .  728) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (NOT .  730) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (BEGIN . (incomplete_type_declaration . 0)) (IDENTIFIER . (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 . (incomplete_type_declaration . 0)) (SUBTYPE . (incomplete_type_declaration . 0)) (TASK . (incomplete_type_declaration . 0)) (TYPE . (incomplete_type_declaration . 0)) (USE . (incomplete_type_declaration . 0)) (PRIVATE . (incomplete_type_declaration . 0)) (END . (incomplete_type_declaration . 0)))
-      ((default . error) (IDENTIFIER .  1096) (STRING_LITERAL .  1097))
-      ((default . error) (SEMICOLON .  1095))
+      ((default . error) (IDENTIFIER .  1098) (STRING_LITERAL .  1099))
+      ((default . error) (SEMICOLON .  1097))
       ((default . error) (WHEN . (component_item . 1)) (END . (component_item . 1)) (FOR . (component_item . 1)) (IDENTIFIER . (component_item . 1)) (CASE . (component_item . 1)))
       ((default . error) (WHEN . (component_item . 0)) (END . (component_item . 0)) (FOR . (component_item . 0)) (IDENTIFIER . (component_item . 0)) (CASE . (component_item . 0)))
       ((default . error) (WHEN . (component_list . 0)) (END . (component_list . 0)) (CASE . (component_list . 0)) (IDENTIFIER . (component_list . 0)) (FOR . (component_list . 0)))
-      ((default . error) (END . (component_list_opt . 1)) (CASE .  992) (IDENTIFIER .  71) (FOR .  286))
-      ((default . error) (END .  1092))
-      ((default . error) (COMMA .  94) (COLON .  1091))
+      ((default . error) (END . (component_list_opt . 1)) (CASE .  994) (IDENTIFIER .  71) (FOR .  288))
+      ((default . error) (END .  1094))
+      ((default . error) (COMMA .  94) (COLON .  1093))
       ((default . error) (WHEN . (component_list . 3)) (END . (component_list . 3)) (CASE . (component_list . 3)) (IDENTIFIER . (component_list . 3)) (FOR . (component_list . 3)))
-      ((default . error) (DOT_DOT .  1090))
+      ((default . error) (DOT_DOT .  1092))
       ((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 .  1088) (RIGHT_PAREN .  1089))
-      ((default . error) (WITH . (real_range_specification_opt . 0)) (SEMICOLON . (real_range_specification_opt . 0)) (RANGE .  1085))
-      ((default . error) (DIGITS .  1084) (WITH . (real_range_specification_opt . 0)) (SEMICOLON . (real_range_specification_opt . 0)) (RANGE .  1085))
+      ((default . error) (COMMA .  1090) (RIGHT_PAREN .  1091))
+      ((default . error) (WITH . (real_range_specification_opt . 0)) (SEMICOLON . (real_range_specification_opt . 0)) (RANGE .  1087))
+      ((default . error) (DIGITS .  1086) (WITH . (real_range_specification_opt . 0)) (SEMICOLON . (real_range_specification_opt . 0)) (RANGE .  1087))
       ((default . error) (NEW . ((abstract_limited_opt . 1) (abstract_limited_synchronized_opt . 1))))
       ((default . error) (BEGIN . (single_task_declaration . 1)) (IDENTIFIER . (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 . (single_task_declaration . 1)) (TASK . (single_task_declaration . 1)) (TYPE . (single_task_declaration . 1)) (USE . (single_task_declaration . 1)) (PRIVATE . (single_task_declaration . 1)) (END . (single_task_declaration . 1)))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  688))
-      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
-      ((default . error) (AND .  1045) (WITH .  1081))
-      ((default . error) (SEMICOLON .  1080))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  691))
+      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
+      ((default . error) (AND .  1047) (WITH .  1083))
+      ((default . error) (SEMICOLON .  1082))
       ((default . error) (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_declaration . 2)) (FUNCTION . (task_type_declaration . 2)) (FOR . (task_type_declaration . 2)) (ENTRY . (task_type_declaration . 2)) (IDENTIFIER . (task_type_declaration . 2)) (BEGIN . (task_type_declaration . 2)) (END . (task_type_declaration . 2)) (PRIVATE . (task_type_declaration . 2)))
-      ((default . error) (NEW .  1078) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
-      ((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 .  86) (TICK .  87) (RANGE .  825) (LEFT_PAREN .  795))
+      ((default . error) (NEW .  1080) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
+      ((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 .  86) (TICK .  87) (RANGE .  827) (LEFT_PAREN .  797))
       ((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) (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 . (subtype_declaration . 0)) (FOR . (subtype_declaration . 0)) (ENTRY . (subtype_declaration . 0)) (IDENTIFIER . (subtype_declaration . 0)) (BEGIN . (subtype_declaration . 0)) (END . (subtype_declaration . 0)) (PRIVATE . (subtype_declaration . 0)))
       ((default . error) (BEGIN . (single_protected_declaration . 1)) (IDENTIFIER . (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)) (PROTECTED . (single_protected_declaration . 1)) (SUBTYPE . (single_protected_declaration . 1)) (TASK . (single_protected_declaration . 1)) (TYPE . (single_protected_declaration . 1)) (USE . (single_protected_declaration . 1)) (PRIVATE . (single_protected_declaration . 1)) (END . (single_protected_declaration . 1)))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  688))
-      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
-      ((default . error) (AND .  1045) (WITH .  1074))
-      ((default . error) (SEMICOLON .  1073))
-      ((default . error) (NEW .  1071) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
-      ((default . error) (SEMICOLON .  1070))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  691))
+      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
+      ((default . error) (AND .  1047) (WITH .  1076))
+      ((default . error) (SEMICOLON .  1075))
+      ((default . error) (NEW .  1073) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
+      ((default . error) (SEMICOLON .  1072))
       ((default . error) (WHEN . (at_clause . 0)) (BEGIN . (at_clause . 0)) (IDENTIFIER . (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)) (CASE . (at_clause . 0)) (PRIVATE . (at_clause . 0)) (END . (at_clause . 0)))
-      ((default . error) (AT .  1069))
+      ((default . error) (AT .  1071))
       ((default . error) (END . (component_clause_list . 0)) (IDENTIFIER . (component_clause_list . 0)))
-      ((default . error) (END .  1067) (IDENTIFIER .  1029))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (END .  1069) (IDENTIFIER .  1031))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (DOT .  86) (TICK .  87) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107) (LEFT_PAREN .  105))
-      ((default . error) (SEMICOLON .  1064))
-      ((default . error) (SEMICOLON .  1063))
-      ((default . error) (ALIASED .  1058) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ACCESS . (null_exclusion_opt . 0)) (NOT .  854))
+      ((default . error) (SEMICOLON .  1066))
+      ((default . error) (SEMICOLON .  1065))
+      ((default . error) (ALIASED .  1060) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ACCESS . (null_exclusion_opt . 0)) (NOT .  856))
       ((default . error) (RIGHT_PAREN . (discrete_subtype_definition_list . 1)) (COMMA . (discrete_subtype_definition_list . 1)))
-      ((default . error) (ALIASED .  1058) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ACCESS . (null_exclusion_opt . 0)) (NOT .  854))
+      ((default . error) (ALIASED .  1060) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ACCESS . (null_exclusion_opt . 0)) (NOT .  856))
       ((default . error) (RIGHT_PAREN . (index_subtype_definition_list . 1)) (COMMA . (index_subtype_definition_list . 1)))
-      ((default . error) (DOT .  86) (RANGE .  1057) (TICK .  87) (LEFT_PAREN .  105))
+      ((default . error) (DOT .  86) (RANGE .  1059) (TICK .  87) (LEFT_PAREN .  105))
       ((default . error) (COMMA . (index_subtype_definition . 0)) (RIGHT_PAREN . (index_subtype_definition . 0)))
-      ((default . error) (NULL .  1056) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (COMMA .  801) (RIGHT_PAREN .  1055))
-      ((default . error) (COMMA . (discrete_subtype_definition . 1)) (BAR . (discrete_choice . 2)) (EQUAL_GREATER . (discrete_choice . 2)) (RIGHT_PAREN . ((discrete_subtype_definition . 1)  257)))
+      ((default . error) (NULL .  1058) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (COMMA .  803) (RIGHT_PAREN .  1057))
+      ((default . error) (COMMA . (discrete_subtype_definition . 1)) (BAR . (discrete_choice . 2)) (EQUAL_GREATER . (discrete_choice . 2)) (RIGHT_PAREN . ((discrete_subtype_definition . 1)  259)))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (SEMICOLON . (formal_derived_type_definition . 1)) (WITH . (formal_derived_type_definition . 1)))
-      ((default . error) (SEMICOLON . (formal_derived_type_definition . 2)) (AND .  1045) (WITH . ((formal_derived_type_definition . 2)  1053)))
+      ((default . error) (SEMICOLON . (formal_derived_type_definition . 2)) (AND .  1047) (WITH . ((formal_derived_type_definition . 2)  1055)))
       ((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)) (IDENTIFIER . (formal_package_declaration . 0)) (PRAGMA . (formal_package_declaration . 0)) (TYPE . (formal_package_declaration . 0)) (WITH . (formal_package_declaration . 0)))
       ((default . error) (PACKAGE . (formal_object_declaration . 0)) (PROCEDURE . (formal_object_declaration . 0)) (FUNCTION . (formal_object_declaration . 0)) (IDENTIFIER . (formal_object_declaration . 0)) (PRAGMA . (formal_object_declaration . 0)) (TYPE . (formal_object_declaration . 0)) (WITH . (formal_object_declaration . 0)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (RIGHT_PAREN . (parameter_specification . 0)) (SEMICOLON . (parameter_specification . 0)))
-      ((default . error) (PRIVATE .  1216))
+      ((default . error) (PRIVATE .  1218))
       ((default . error) (DOT .  86) (TICK .  87) (WITH . (interface_list . 1)) (SEMICOLON . (interface_list . 1)) (AND . (interface_list . 1)) (LEFT_PAREN .  105))
       ((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) (PLUS . (primary . 0)) (MINUS . (primary . 0)) (AMPERSAND . (primary . 0)) (DOT_DOT . (primary . 0)) (SLASH . (primary . 0)) (STAR . (primary . 0)) (MOD . (primary . 0)) (REM . (primary . 0)) (XOR . (primary . 0)) (OR . (primary . 0)) (AND . (primary . 0)) (EQUAL_GREATER . (primary . 0)) (BAR . (primary . 0)) (IN . (primary . 0)) (NOT . (primary . 0)) (EQUAL . (primary . 0)) (GREATER . (primary . 0)) (GREATER_EQUAL . (primary . 0)) (LESS . (primary . 0)) (LESS_EQUAL . (primary . 0)) (SLASH_EQUAL . (primary . 0)) (RIGHT_PAREN . (primary . 0)) (COMMA . (primary . 0)) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (BOX .  1041))
-      ((default . error) (ACCESS . (null_exclusion_opt . 0)) (NOT .  854) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (BOX .  1043))
+      ((default . error) (ACCESS . (null_exclusion_opt . 0)) (NOT .  856) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((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) (WITH . (array_type_definition . 1)) (SEMICOLON . (array_type_definition . 1)) (COLON_EQUAL . (array_type_definition . 1)))
       ((default . error) (END . (object_renaming_declaration . 2)) (PRIVATE . (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 . (object_renaming_declaration . 2)) (OVERRIDING . (object_renaming_declaration . 2)) (NOT . (object_renaming_declaration . 2)) (GENERIC . (object_renaming_declaration . 2)) (FUNCTION . (object_renaming_declaration . 2)) (FOR . (object_renaming_declaration . 2)) (ENTRY . (object_renaming_declaration . 2)) (IDENTIFIER . (object_renaming_declaration . 2)) (BEGIN . (object_renaming_declaration . 2)))
       ((default . error) (END . (object_renaming_declaration . 1)) (PRIVATE . (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 . (object_renaming_declaration . 1)) (OVERRIDING . (object_renaming_declaration . 1)) (NOT . (object_renaming_declaration . 1)) (GENERIC . (object_renaming_declaration . 1)) (FUNCTION . (object_renaming_declaration . 1)) (FOR . (object_renaming_declaration . 1)) (ENTRY . (object_renaming_declaration . 1)) (IDENTIFIER . (object_renaming_declaration . 1)) (BEGIN . (object_renaming_declaration . 1)))
-      ((default . error) (SEMICOLON .  1212))
-      ((default . error) (SEMICOLON .  1211))
-      ((default . error) (RECORD .  1210))
+      ((default . error) (SEMICOLON .  1214))
+      ((default . error) (SEMICOLON .  1213))
+      ((default . error) (RECORD .  1212))
       ((default . error) (IDENTIFIER . (component_clause_list . 1)) (END . (component_clause_list . 1)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (PRIVATE . (package_body_stub . 0)) (END . (package_body_stub . 0)) (BEGIN . (package_body_stub . 0)) (IDENTIFIER . (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 . (package_body_stub . 0)) (TASK . (package_body_stub . 0)) (TYPE . (package_body_stub . 0)) (USE . (package_body_stub . 0)))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (SEMICOLON .  1207))
+      ((default . error) (SEMICOLON .  1209))
       ((default . error) (PRIVATE . (protected_body_stub . 0)) (END . (protected_body_stub . 0)) (BEGIN . (protected_body_stub . 0)) (IDENTIFIER . (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 . (protected_body_stub . 0)) (SUBTYPE . (protected_body_stub . 0)) (TASK . (protected_body_stub . 0)) (TYPE . (protected_body_stub . 0)) (USE . (protected_body_stub . 0)))
-      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
-      ((default . error) (END .  1205))
+      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
+      ((default . error) (END .  1207))
       ((default . error) (SEMICOLON . (protected_definition . 1)))
       ((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) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (SEMICOLON .  1203))
+      ((default . error) (SEMICOLON .  1205))
       ((default . error) (PRIVATE . (task_body_stub . 0)) (END . (task_body_stub . 0)) (BEGIN . (task_body_stub . 0)) (IDENTIFIER . (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_body_stub . 0)) (TYPE . (task_body_stub . 0)) (USE . (task_body_stub . 0)))
-      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
-      ((default . error) (END .  1201))
+      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
+      ((default . error) (END .  1203))
       ((default . error) (SEMICOLON . (task_definition . 1)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (WITH . (type_definition . 4)) (SEMICOLON . (type_definition . 4)))
       ((default . error) (WITH . (type_definition . 3)) (SEMICOLON . (type_definition . 3)))
-      ((default . error) (IDENTIFIER .  1004) (CHARACTER_LITERAL .  1005))
+      ((default . error) (IDENTIFIER .  1006) (CHARACTER_LITERAL .  1007))
       ((default . error) (SEMICOLON . (enumeration_type_definition . 0)) (WITH . (enumeration_type_definition . 0)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (ALIASED .  1058) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ACCESS . (null_exclusion_opt . 0)) (NOT .  854))
-      ((default . error) (RECORD .  1195))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (ALIASED .  1060) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ACCESS . (null_exclusion_opt . 0)) (NOT .  856))
+      ((default . error) (RECORD .  1197))
       ((default . error) (WHEN . (component_list . 1)) (FOR . (component_list . 1)) (IDENTIFIER . (component_list . 1)) (CASE . (component_list . 1)) (END . (component_list . 1)))
       ((default . error) (WHEN . (component_list . 2)) (FOR . (component_list . 2)) (IDENTIFIER . (component_list . 2)) (CASE . (component_list . 2)) (END . (component_list . 2)))
       ((default . error) (WHEN . (component_list . 4)) (FOR . (component_list . 4)) (IDENTIFIER . (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 .  1194))
-      ((default . error) (WITH . (and_interface_list_opt . 0)) (AND .  1189))
-      ((default . error) (DOT .  86) (TICK .  87) (AND .  1189) (WITH . ((and_interface_list_opt . 0) (constraint_opt . 0))) (SEMICOLON . (constraint_opt . 0)) (RANGE .  825) (LEFT_PAREN .  795))
-      ((default . error) (SEMICOLON .  1188))
+      ((default . error) (IS .  1196))
+      ((default . error) (WITH . (and_interface_list_opt . 0)) (AND .  1191))
+      ((default . error) (DOT .  86) (TICK .  87) (AND .  1191) (WITH . ((and_interface_list_opt . 0) (constraint_opt . 0))) (SEMICOLON . (constraint_opt . 0)) (RANGE .  827) (LEFT_PAREN .  797))
+      ((default . error) (SEMICOLON .  1190))
       ((default . error) (END . (full_type_declaration . 0)) (PRIVATE . (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_declaration . 0)) (NOT . (full_type_declaration . 0)) (GENERIC . (full_type_declaration . 0)) (FUNCTION . (full_type_declaration . 0)) (FOR . (full_type_declaration . 0)) (ENTRY . (full_type_declaration . 0)) (IDENTIFIER . (full_type_declaration . 0)) (BEGIN . (full_type_declaration . 0)))
       ((default . error) (PRIVATE . (object_declaration . 3)) (END . (object_declaration . 3)) (BEGIN . (object_declaration . 3)) (IDENTIFIER . (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 . 3)) (SUBTYPE . (object_declaration . 3)) (TASK . (object_declaration . 3)) (TYPE . (object_declaration . 3)) (USE . (object_declaration . 3)))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (COMMA . (case_expression_alternative . 0)) (RIGHT_PAREN . (case_expression_alternative . 0)))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
       ((default . error) (DOT .  86) (TICK .  87) (LOOP . (iterator_specification . 3)) (EQUAL_GREATER . (iterator_specification . 3)) (LEFT_PAREN .  105))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (RIGHT_PAREN . (if_expression . 0)))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  688))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  691))
       ((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 .  126) (IS . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (WHEN . (parameter_profile_opt . 0)) (LEFT_PAREN .  1178))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
+      ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (IS . (aspect_specification_opt . 0)) (WITH .  107))
+      ((default . error) (WHEN . (parameter_profile_opt . 0)) (LEFT_PAREN .  1180))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
       ((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)) (LESS_LESS . (accept_statement . 1)) (IDENTIFIER . (accept_statement . 1)) (STRING_LITERAL . (accept_statement . 1)) (CHARACTER_LITERAL . (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 . (accept_statement . 1)) (GOTO . (accept_statement . 1)) (IF . (accept_statement . 1)) (LOOP . (accept_statement . 1)) (NULL . (accept_statement . 1)) (PRAGMA . (accept_statement . 1)) (RAISE . (accept_statement . 1)) (REQUEUE . (accept_statement . 1)) (RETURN . (accept_statement . 1)) (SELECT . (accept_statement . 1)) (WHILE . (accept_statement . 1)))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
       ((default . error) (OR . (block_statement . 1)) (THEN . (block_statement . 1)) (WHEN . (block_statement . 1)) (EXCEPTION . (block_statement . 1)) (END . (block_statement . 1)) (LESS_LESS . (block_statement . 1)) (IDENTIFIER . (block_statement . 1)) (STRING_LITERAL . (block_statement . 1)) (CHARACTER_LITERAL . (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 . 1)) (LOOP . (block_statement . 1)) (NULL . (block_statement . 1)) (PRAGMA . (block_statement . 1)) (RAISE . (block_statement . 1)) (REQUEUE . (block_statement . 1)) (RETURN . (block_statement . 1)) (SELECT . (block_statement . 1)) (WHILE . (block_statement . 1)) (ELSE . (block_statement . 1)) (ELSIF . (block_statement . 1)))
-      ((default . error) (CASE .  1175))
+      ((default . error) (CASE .  1177))
       ((default . error) (WHEN . (case_statement_alternative_list . 2)) (END . (case_statement_alternative_list . 2)))
-      ((default . error) (BAR .  272) (EQUAL_GREATER .  1174))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  688))
+      ((default . error) (BAR .  274) (EQUAL_GREATER .  1176))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  691))
       ((default . error) (OR . (exit_statement . 0)) (THEN . (exit_statement . 0)) (WHEN . (exit_statement . 0)) (EXCEPTION . (exit_statement . 0)) (END . (exit_statement . 0)) (LESS_LESS . (exit_statement . 0)) (IDENTIFIER . (exit_statement . 0)) (STRING_LITERAL . (exit_statement . 0)) (CHARACTER_LITERAL . (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 . (exit_statement . 0)) (NULL . (exit_statement . 0)) (PRAGMA . (exit_statement . 0)) (RAISE . (exit_statement . 0)) (REQUEUE . (exit_statement . 0)) (RETURN . (exit_statement . 0)) (SELECT . (exit_statement . 0)) (WHILE . (exit_statement . 0)) (ELSE . (exit_statement . 0)) (ELSIF . (exit_statement . 0)))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
-      ((default . error) (THEN . (expression_opt . 0)) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (IF .  1170))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
+      ((default . error) (THEN . (expression_opt . 0)) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (IF .  1172))
       ((default . error) (END . (elsif_statement_list . 0)) (ELSE . (elsif_statement_list . 0)) (ELSIF . (elsif_statement_list . 0)))
-      ((default . error) (END .  1168) (ELSE .  1167) (ELSIF .  1130))
-      ((default . error) (SEMICOLON .  1166))
+      ((default . error) (END .  1170) (ELSE .  1169) (ELSIF .  1132))
+      ((default . error) (SEMICOLON .  1168))
       ((default . error) (OR . (raise_statement . 1)) (THEN . (raise_statement . 1)) (WHEN . (raise_statement . 1)) (EXCEPTION . (raise_statement . 1)) (END . (raise_statement . 1)) (LESS_LESS . (raise_statement . 1)) (IDENTIFIER . (raise_statement . 1)) (STRING_LITERAL . (raise_statement . 1)) (CHARACTER_LITERAL . (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 . 1)) (LOOP . (raise_statement . 1)) (NULL . (raise_statement . 1)) (PRAGMA . (raise_statement . 1)) (RAISE . (raise_statement . 1)) (REQUEUE . (raise_statement . 1)) (RETURN . (raise_statement . 1)) (SELECT . (raise_statement . 1)) (WHILE . (raise_statement . 1)) (ELSE . (raise_statement . 1)) (ELSIF . (raise_statement . 1)))
       ((default . error) (OR . (requeue_statement . 0)) (THEN . (requeue_statement . 0)) (WHEN . (requeue_statement . 0)) (EXCEPTION . (requeue_statement . 0)) (END . (requeue_statement . 0)) (LESS_LESS . (requeue_statement . 0)) (IDENTIFIER . (requeue_statement . 0)) (STRING_LITERAL . (requeue_statement . 0)) (CHARACTER_LITERAL . (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 . 0)) (IF . (requeue_statement . 0)) (LOOP . (requeue_statement . 0)) (NULL . (requeue_statement . 0)) (PRAGMA . (requeue_statement . 0)) (RAISE . (requeue_statement . 0)) (REQUEUE . (requeue_statement . 0)) (RETURN . (requeue_statement . 0)) (SELECT . (requeue_statement . 0)) (WHILE . (requeue_statement . 0)) (ELSE . (requeue_statement . 0)) (ELSIF . (requeue_statement . 0)))
-      ((default . error) (RETURN .  1165))
-      ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ACCESS . (null_exclusion_opt . 0)) (NOT .  854))
-      ((default . error) (END .  1161))
-      ((default . error) (SELECT .  1160))
+      ((default . error) (RETURN .  1167))
+      ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (ACCESS . (null_exclusion_opt . 0)) (NOT .  856))
+      ((default . error) (END .  1163))
+      ((default . error) (SELECT .  1162))
       ((default . error) (OR . (selective_accept . 1)) (THEN . (selective_accept . 1)) (WHEN . (selective_accept . 1)) (EXCEPTION . (selective_accept . 1)) (END . (selective_accept . 1)) (LESS_LESS . (selective_accept . 1)) (IDENTIFIER . (selective_accept . 1)) (STRING_LITERAL . (selective_accept . 1)) (CHARACTER_LITERAL . (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 . (selective_accept . 1)) (LOOP . (selective_accept . 1)) (NULL . (selective_accept . 1)) (PRAGMA . (selective_accept . 1)) (RAISE . (selective_accept . 1)) (REQUEUE . (selective_accept . 1)) (RETURN . (selective_accept . 1)) (SELECT . (selective_accept . 1)) (WHILE . (selective_accept . 1)) (ELSE . (selective_accept . 1)) (ELSIF . (selective_accept . 1)))
-      ((default . error) (SELECT .  1159))
+      ((default . error) (SELECT .  1161))
       ((default . error) (END . (delay_alternative . 0)) (OR . (delay_alternative . 0)) (ELSE . (delay_alternative . 0)))
-      ((default . error) (SELECT .  1158))
-      ((default . error) (SEMICOLON .  1157))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
+      ((default . error) (SELECT .  1160))
+      ((default . error) (SEMICOLON .  1159))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
       ((default . error) (END . (select_alternative . 2)) (OR . (select_alternative . 2)) (ELSE . (select_alternative . 2)))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  688))
-      ((default . error) (OTHERS .  924) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
-      ((default . error) (OTHERS .  924) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (BAR .  1149) (EQUAL_GREATER .  1258))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  691))
+      ((default . error) (OTHERS .  926) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
+      ((default . error) (OTHERS .  926) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
+      ((default . error) (BAR .  1151) (EQUAL_GREATER .  1260))
       ((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 .  1257))
+      ((default . error) (SEMICOLON .  1259))
       ((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 .  1258))
+      ((default . error) (SEMICOLON .  1257))
       ((default . error) (SEMICOLON .  1256))
-      ((default . error) (SEMICOLON .  1255))
-      ((default . error) (SEMICOLON .  1254))
-      ((default . error) (SELECT .  1253))
+      ((default . error) (SELECT .  1255))
       ((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 .  1252))
+      ((default . error) (DO . (extended_return_object_declaration . 1)) (SEMICOLON . (extended_return_object_declaration . 1)) (COLON_EQUAL .  1254))
       ((default . error) (DO . (return_subtype_indication . 0)) (SEMICOLON . (return_subtype_indication . 0)) (COLON_EQUAL . (return_subtype_indication . 0)))
-      ((default . error) (SEMICOLON .  1251))
+      ((default . error) (SEMICOLON .  1253))
       ((default . error) (WHEN . (loop_statement . 1)) (THEN . (loop_statement . 1)) (OR . (loop_statement . 1)) (ELSIF . (loop_statement . 1)) (ELSE . (loop_statement . 1)) (WHILE . (loop_statement . 1)) (SELECT . (loop_statement . 1)) (RETURN . (loop_statement . 1)) (REQUEUE . (loop_statement . 1)) (RAISE . (loop_statement . 1)) (PRAGMA . (loop_statement . 1)) (NULL . (loop_statement . 1)) (LOOP . (loop_statement . 1)) (IF . (loop_statement . 1)) (GOTO . (loop_statement . 1)) (FOR . (loop_statement . 1)) (EXIT . (loop_statement . 1)) (DELAY . (loop_statement . 1)) (DECLARE . (loop_statement . 1)) (CASE . (loop_statement . 1)) (BEGIN . (loop_statement . 1)) (ABORT . (loop_statement . 1)) (ACCEPT . (loop_statement . 1)) (CHARACTER_LITERAL . (loop_statement . 1)) (STRING_LITERAL . (loop_statement . 1)) (IDENTIFIER . (loop_statement . 1)) (LESS_LESS . (loop_statement . 1)) (END . (loop_statement . 1)) (EXCEPTION . (loop_statement . 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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
-      ((default . error) (IF .  1249))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
+      ((default . error) (IF .  1251))
       ((default . error) (ELSIF . (elsif_statement_list . 1)) (ELSE . (elsif_statement_list . 1)) (END . (elsif_statement_list . 1)))
-      ((default . error) (SEMICOLON .  1248))
-      ((default . error) (THEN .  1247))
-      ((default . error) (END .  1246))
+      ((default . error) (SEMICOLON .  1250))
+      ((default . error) (THEN .  1249))
+      ((default . error) (END .  1248))
+      ((default . error) (SEMICOLON .  1247))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
       ((default . error) (SEMICOLON .  1245))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
-      ((default . error) (SEMICOLON .  1243))
-      ((default . error) (END .  1242))
-      ((default . error) (END .  1241))
-      ((default . error) (FOR .  1240) (IDENTIFIER .  71))
-      ((default . error) (WHEN .  1239))
+      ((default . error) (END .  1244))
+      ((default . error) (END .  1243))
+      ((default . error) (FOR .  1242) (IDENTIFIER .  71))
+      ((default . error) (WHEN .  1241))
       ((default . error) (WHEN . (entry_body_formal_part . 1)))
-      ((default . error) (SEMICOLON .  1238))
+      ((default . error) (SEMICOLON .  1240))
       ((default . error) (ELSE . (elsif_expression_item . 0)) (ELSIF . (elsif_expression_item . 0)) (RIGHT_PAREN . (elsif_expression_item . 0)))
       ((default . error) (DOT .  86) (TICK .  87) (LOOP . (iterator_specification . 2)) (EQUAL_GREATER . (iterator_specification . 2)) (LEFT_PAREN .  105))
+      ((default . error) (SEMICOLON .  1239))
+      ((default . error) (SEMICOLON .  1238))
       ((default . error) (SEMICOLON .  1237))
       ((default . error) (SEMICOLON .  1236))
-      ((default . error) (SEMICOLON .  1235))
-      ((default . error) (SEMICOLON .  1234))
       ((default . error) (BEGIN . (private_type_declaration . 0)) (IDENTIFIER . (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)) (SUBTYPE . (private_type_declaration . 0)) (TASK . (private_type_declaration . 0)) (TYPE . (private_type_declaration . 0)) (USE . (private_type_declaration . 0)) (PRIVATE . (private_type_declaration . 0)) (END . (private_type_declaration . 0)))
       ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48))
-      ((default . error) (WITH .  1232))
+      ((default . error) (WITH .  1234))
       ((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 .  1231))
-      ((default . error) (WHEN .  1228))
+      ((default . error) (WITH .  1233))
+      ((default . error) (WHEN .  1230))
       ((default . error) (SEMICOLON . (record_definition . 0)) (WITH . (record_definition . 0)))
-      ((default . error) (COLON_EQUAL .  1226) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
+      ((default . error) (COLON_EQUAL .  1228) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((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 .  1225))
-      ((default . error) (WITH . (real_range_specification_opt . 0)) (SEMICOLON . (real_range_specification_opt . 0)) (RANGE .  1085))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  688))
-      ((default . error) (SEMICOLON .  1222))
+      ((default . error) (DOT_DOT .  1227))
+      ((default . error) (WITH . (real_range_specification_opt . 0)) (SEMICOLON . (real_range_specification_opt . 0)) (RANGE .  1087))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  691))
+      ((default . error) (SEMICOLON .  1224))
       ((default . error) (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_declaration . 1)) (FUNCTION . (task_type_declaration . 1)) (FOR . (task_type_declaration . 1)) (ENTRY . (task_type_declaration . 1)) (IDENTIFIER . (task_type_declaration . 1)) (BEGIN . (task_type_declaration . 1)) (END . (task_type_declaration . 1)) (PRIVATE . (task_type_declaration . 1)))
-      ((default . error) (AND .  1045) (WITH .  1221))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  688))
-      ((default . error) (SEMICOLON .  1219))
+      ((default . error) (AND .  1047) (WITH .  1223))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  691))
+      ((default . error) (SEMICOLON .  1221))
       ((default . error) (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_type_declaration . 1)) (GENERIC . (protected_type_declaration . 1)) (FUNCTION . (protected_type_declaration . 1)) (FOR . (protected_type_declaration . 1)) (ENTRY . (protected_type_declaration . 1)) (IDENTIFIER . (protected_type_declaration . 1)) (BEGIN . (protected_type_declaration . 1)) (END . (protected_type_declaration . 1)) (PRIVATE . (protected_type_declaration . 1)))
-      ((default . error) (AND .  1045) (WITH .  1218))
-      ((default . error) (RANGE .  1217))
+      ((default . error) (AND .  1047) (WITH .  1220))
+      ((default . error) (RANGE .  1219))
       ((default . error) (SEMICOLON . (record_rep . 0)))
       ((default . error) (IDENTIFIER . (mod_clause_opt . 1)))
       ((default . error) (BEGIN . (object_renaming_declaration . 0)) (IDENTIFIER . (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 . (object_renaming_declaration . 0)) (SUBTYPE . (object_renaming_declaration . 0)) (TASK . (object_renaming_declaration . 0)) (TYPE . (object_renaming_declaration . 0)) (USE . (object_renaming_declaration . 0)) (PRIVATE . (object_renaming_declaration . 0)) (END . (object_renaming_declaration . 0)))
       ((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 .  86) (TICK .  87) (BAR . (discrete_choice . 1)) (EQUAL_GREATER . (discrete_choice . 1)) (RANGE .  825) (LEFT_PAREN .  795))
+      ((default . error) (RIGHT_PAREN . (subtype_indication . 1)) (COMMA . (subtype_indication . 1)) (DOT .  86) (TICK .  87) (BAR . (discrete_choice . 1)) (EQUAL_GREATER . (discrete_choice . 1)) (RANGE .  827) (LEFT_PAREN .  797))
       ((default . error) (SEMICOLON . (formal_derived_type_definition . 0)) (WITH . (formal_derived_type_definition . 0)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
       ((default . error) (END . (single_protected_declaration . 0)) (PRIVATE . (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)) (PACKAGE . (single_protected_declaration . 0)) (OVERRIDING . (single_protected_declaration . 0)) (NOT . (single_protected_declaration . 0)) (GENERIC . (single_protected_declaration . 0)) (FUNCTION . (single_protected_declaration . 0)) (FOR . (single_protected_declaration . 0)) (ENTRY . (single_protected_declaration . 0)) (IDENTIFIER . (single_protected_declaration . 0)) (BEGIN . (single_protected_declaration . 0)))
       ((default . error) (SEMICOLON . (protected_definition . 0)))
-      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
+      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
       ((default . error) (END . (single_task_declaration . 0)) (PRIVATE . (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 . (single_task_declaration . 0)) (NOT . (single_task_declaration . 0)) (GENERIC . (single_task_declaration . 0)) (FUNCTION . (single_task_declaration . 0)) (FOR . (single_task_declaration . 0)) (ENTRY . (single_task_declaration . 0)) (IDENTIFIER . (single_task_declaration . 0)) (BEGIN . (single_task_declaration . 0)))
       ((default . error) (SEMICOLON . (task_definition . 0)))
       ((default . error) (WITH . (type_definition . 5)) (SEMICOLON . (type_definition . 5)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (SEMICOLON .  1275))
-      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  170) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  169) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
-      ((default . error) (END .  1272) (WHEN .  1228))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (SEMICOLON .  1277))
+      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS .  171) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  170) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
+      ((default . error) (END .  1274) (WHEN .  1230))
       ((default . error) (END . (variant_list . 0)) (WHEN . (variant_list . 0)))
-      ((default . error) (PRIVATE .  1271))
-      ((default . error) (RECORD .  840) (NULL .  838))
-      ((default . error) (AND .  1045) (WITH . (and_interface_list_opt . 1)))
+      ((default . error) (PRIVATE .  1273))
+      ((default . error) (RECORD .  842) (NULL .  840))
+      ((default . error) (AND .  1047) (WITH . (and_interface_list_opt . 1)))
       ((default . error) (PRIVATE . (object_declaration . 2)) (END . (object_declaration . 2)) (BEGIN . (object_declaration . 2)) (IDENTIFIER . (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 . 2)) (SUBTYPE . (object_declaration . 2)) (TASK . (object_declaration . 2)) (TYPE . (object_declaration . 2)) (USE . (object_declaration . 2)))
       ((default . error) (PRIVATE . (object_declaration . 4)) (END . (object_declaration . 4)) (BEGIN . (object_declaration . 4)) (IDENTIFIER . (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 . 4)) (SUBTYPE . (object_declaration . 4)) (TASK . (object_declaration . 4)) (TYPE . (object_declaration . 4)) (USE . (object_declaration . 4)))
       ((default . error) (PRIVATE . (object_declaration . 0)) (END . (object_declaration . 0)) (BEGIN . (object_declaration . 0)) (IDENTIFIER . (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 . 0)) (SUBTYPE . (object_declaration . 0)) (TASK . (object_declaration . 0)) (TYPE . (object_declaration . 0)) (USE . (object_declaration . 0)))
       ((default . error) (PRIVATE . (entry_declaration . 0)) (END . (entry_declaration . 0)) (BEGIN . (entry_declaration . 0)) (IDENTIFIER . (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 . (entry_declaration . 0)) (TASK . (entry_declaration . 0)) (TYPE . (entry_declaration . 0)) (USE . (entry_declaration . 0)))
       ((default . error) (PRIVATE . (protected_body . 0)) (END . (protected_body . 0)) (BEGIN . (protected_body . 0)) (IDENTIFIER . (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 . (protected_body . 0)) (TYPE . (protected_body . 0)) (USE . (protected_body . 0)) ($EOI . (protected_body . 0)) (LIMITED . (protected_body . 0)) (SEPARATE . (protected_body . 0)) (WITH . (protected_body . 0)))
-      ((default . error) (IS . (expression_opt . 0)) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (IDENTIFIER .  1268))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  688))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  688))
+      ((default . error) (IS . (expression_opt . 0)) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (IDENTIFIER .  1270))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  691))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  691))
       ((default . error) (OR . (case_statement . 0)) (THEN . (case_statement . 0)) (WHEN . (case_statement . 0)) (EXCEPTION . (case_statement . 0)) (END . (case_statement . 0)) (LESS_LESS . (case_statement . 0)) (IDENTIFIER . (case_statement . 0)) (STRING_LITERAL . (case_statement . 0)) (CHARACTER_LITERAL . (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 . (case_statement . 0)) (NULL . (case_statement . 0)) (PRAGMA . (case_statement . 0)) (RAISE . (case_statement . 0)) (REQUEUE . (case_statement . 0)) (RETURN . (case_statement . 0)) (SELECT . (case_statement . 0)) (WHILE . (case_statement . 0)) (ELSE . (case_statement . 0)) (ELSIF . (case_statement . 0)))
       ((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)) (LESS_LESS . (block_statement . 0)) (IDENTIFIER . (block_statement . 0)) (STRING_LITERAL . (block_statement . 0)) (CHARACTER_LITERAL . (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 . 0)) (LOOP . (block_statement . 0)) (NULL . (block_statement . 0)) (PRAGMA . (block_statement . 0)) (RAISE . (block_statement . 0)) (REQUEUE . (block_statement . 0)) (RETURN . (block_statement . 0)) (SELECT . (block_statement . 0)) (WHILE . (block_statement . 0)) (ELSE . (block_statement . 0)) (ELSIF . (block_statement . 0)))
-      ((default . error) (IF .  1265))
-      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
+      ((default . error) (IF .  1267))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
       ((default . error) (OR . (if_statement . 3)) (THEN . (if_statement . 3)) (WHEN . (if_statement . 3)) (EXCEPTION . (if_statement . 3)) (END . (if_statement . 3)) (LESS_LESS . (if_statement . 3)) (IDENTIFIER . (if_statement . 3)) (STRING_LITERAL . (if_statement . 3)) (CHARACTER_LITERAL . (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_statement . 3)) (PRAGMA . (if_statement . 3)) (RAISE . (if_statement . 3)) (REQUEUE . (if_statement . 3)) (RETURN . (if_statement . 3)) (SELECT . (if_statement . 3)) (WHILE . (if_statement . 3)) (ELSE . (if_statement . 3)) (ELSIF . (if_statement . 3)))
-      ((default . error) (SEMICOLON .  1263))
-      ((default . error) (END .  1262))
+      ((default . error) (SEMICOLON .  1265))
+      ((default . error) (END .  1264))
       ((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)) (LESS_LESS . (extended_return_statement . 0)) (IDENTIFIER . (extended_return_statement . 0)) (STRING_LITERAL . (extended_return_statement . 0)) (CHARACTER_LITERAL . (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 . (extended_return_statement . 0)) (FOR . (extended_return_statement . 0)) (GOTO . (extended_return_statement . 0)) (IF . (extended_return_statement . 0)) (LOOP . (extended_return_statement . 0)) (NULL . (extended_return_statement . 0)) (PRAGMA . (extended_return_statement . 0)) (RAISE . (extended_return_statement . 0)) (REQUEUE . (extended_return_statement . 0)) (RETURN . (extended_return_statement . 0)) (SELECT . (extended_return_statement . 0)) (WHILE . (extended_return_statement . 0)) (ELSE . (extended_return_statement . 0)) (ELSIF . (extended_return_statement . 0)))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
-      ((default . error) (SEMICOLON .  1260))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
+      ((default . error) (SEMICOLON .  1262))
       ((default . error) (OR . (selective_accept . 0)) (THEN . (selective_accept . 0)) (WHEN . (selective_accept . 0)) (EXCEPTION . (selective_accept . 0)) (END . (selective_accept . 0)) (LESS_LESS . (selective_accept . 0)) (IDENTIFIER . (selective_accept . 0)) (STRING_LITERAL . (selective_accept . 0)) (CHARACTER_LITERAL . (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 . (selective_accept . 0)) (LOOP . (selective_accept . 0)) (NULL . (selective_accept . 0)) (PRAGMA . (selective_accept . 0)) (RAISE . (selective_accept . 0)) (REQUEUE . (selective_accept . 0)) (RETURN . (selective_accept . 0)) (SELECT . (selective_accept . 0)) (WHILE . (selective_accept . 0)) (ELSE . (selective_accept . 0)) (ELSIF . (selective_accept . 0)))
       ((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)) (LESS_LESS . (conditional_entry_call . 0)) (IDENTIFIER . (conditional_entry_call . 0)) (STRING_LITERAL . (conditional_entry_call . 0)) (CHARACTER_LITERAL . (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)) (FOR . (conditional_entry_call . 0)) (GOTO . (conditional_entry_call . 0)) (IF . (conditional_entry_call . 0)) (LOOP . (conditional_entry_call . 0)) (NULL . (conditional_entry_call . 0)) (PRAGMA . (conditional_entry_call . 0)) (RAISE . (conditional_entry_call . 0)) (REQUEUE . (conditional_entry_call . 0)) (RETURN . (conditional_entry_call . 0)) (SELECT . (conditional_entry_call . 0)) (WHILE . (conditional_entry_call . 0)) (ELSE . (conditional_entry_call . 0)) (ELSIF . (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)) (LESS_LESS . (timed_entry_call . 0)) (IDENTIFIER . (timed_entry_call . 0)) (STRING_LITERAL . (timed_entry_call . 0)) (CHARACTER_LITERAL . (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 . (timed_entry_call . 0)) (LOOP . (timed_entry_call . 0)) (NULL . (timed_entry_call . 0)) (PRAGMA . (timed_entry_call . 0)) (RAISE . (timed_entry_call . 0)) (REQUEUE . (timed_entry_call . 0)) (RETURN . (timed_entry_call . 0)) (SELECT . (timed_entry_call . 0)) (WHILE . (timed_entry_call . 0)) (ELSE . (timed_entry_call . 0)) (ELSIF . (timed_entry_call . 0)))
       ((default . error) (OR . (loop_statement . 0)) (THEN . (loop_statement . 0)) (WHEN . (loop_statement . 0)) (EXCEPTION . (loop_statement . 0)) (END . (loop_statement . 0)) (LESS_LESS . (loop_statement . 0)) (IDENTIFIER . (loop_statement . 0)) (STRING_LITERAL . (loop_statement . 0)) (CHARACTER_LITERAL . (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 . (loop_statement . 0)) (NULL . (loop_statement . 0)) (PRAGMA . (loop_statement . 0)) (RAISE . (loop_statement . 0)) (REQUEUE . (loop_statement . 0)) (RETURN . (loop_statement . 0)) (SELECT . (loop_statement . 0)) (WHILE . (loop_statement . 0)) (ELSE . (loop_statement . 0)) (ELSIF . (loop_statement . 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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
       ((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)) (WHILE . (asynchronous_select . 0)) (SELECT . (asynchronous_select . 0)) (RETURN . (asynchronous_select . 0)) (REQUEUE . (asynchronous_select . 0)) (RAISE . (asynchronous_select . 0)) (PRAGMA . (asynchronous_select . 0)) (NULL . (asynchronous_select . 0)) (LOOP . (asynchronous_select . 0)) (IF . (asynchronous_select . 0)) (GOTO . (asynchronous_select . 0)) (FOR . (asynchronous_select . 0)) (EXIT . (asynchronous_select . 0)) (DELAY . (asynchronous_select . 0)) (DECLARE . (asynchronous_select . 0)) (CASE . (asynchronous_select . 0)) (BEGIN . (asynchronous_select . 0)) (ABORT . (asynchronous_select . 0)) (ACCEPT . (asynchronous_select . 0)) (CHARACTER_LITERAL . (asynchronous_select . 0)) (STRING_LITERAL . (asynchronous_select . 0)) (IDENTIFIER . (asynchronous_select . 0)) (LESS_LESS . (asynchronous_select . 0)) (END . (asynchronous_select . 0)) (EXCEPTION . (asynchronous_select . 0)))
       ((default . error) (DO . (extended_return_object_declaration . 0)) (SEMICOLON . (extended_return_object_declaration . 0)))
-      ((default . error) (IF .  1293))
+      ((default . error) (IF .  1295))
       ((default . error) (WHEN . (if_statement . 1)) (THEN . (if_statement . 1)) (OR . (if_statement . 1)) (ELSIF . (if_statement . 1)) (ELSE . (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)) (NULL . (if_statement . 1)) (LOOP . (if_statement . 1)) (IF . (if_statement . 1)) (GOTO . (if_statement . 1)) (FOR . (if_statement . 1)) (EXIT . (if_statement . 1)) (DELAY . (if_statement . 1)) (DECLARE . (if_statement . 1)) (CASE . (if_statement . 1)) (BEGIN . (if_statement . 1)) (ABORT . (if_statement . 1)) (ACCEPT . (if_statement . 1)) (CHARACTER_LITERAL . (if_statement . 1)) (STRING_LITERAL . (if_statement . 1)) (IDENTIFIER . (if_statement . 1)) (LESS_LESS . (if_statement . 1)) (END . (if_statement . 1)) (EXCEPTION . (if_statement . 1)))
       ((default . error) (ELSE . (elsif_statement_item . 0)) (ELSIF . (elsif_statement_item . 0)) (END . (elsif_statement_item . 0)))
+      ((default . error) (SEMICOLON .  1294))
+      ((default . error) (SEMICOLON .  1293))
       ((default . error) (SEMICOLON .  1292))
-      ((default . error) (SEMICOLON .  1291))
-      ((default . error) (SEMICOLON .  1290))
-      ((default . error) (IN .  1289))
-      ((default . error) (IS .  1288))
+      ((default . error) (IN .  1291))
+      ((default . error) (IS .  1290))
       ((default . error) (WITH . (derived_type_definition . 0)) (SEMICOLON . (derived_type_definition . 0)))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
-      ((default . error) (CASE .  1286))
+      ((default . error) (CASE .  1288))
       ((default . error) (WHEN . (variant_list . 1)) (END . (variant_list . 1)))
-      ((default . error) (BAR .  272) (EQUAL_GREATER .  1285))
+      ((default . error) (BAR .  274) (EQUAL_GREATER .  1287))
       ((default . error) (WHEN . (component_declaration . 1)) (END . (component_declaration . 1)) (CASE . (component_declaration . 1)) (IDENTIFIER . (component_declaration . 1)) (FOR . (component_declaration . 1)))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  107))
       ((default . error) (SEMICOLON . (real_range_specification_opt . 1)) (WITH . (real_range_specification_opt . 1)))
-      ((default . error) (SEMICOLON .  1283))
-      ((default . error) (SEMICOLON .  1282))
-      ((default . error) (DOT_DOT .  1281))
-      ((default . error) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  147) (NULL .  148) (NEW .  146) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  145))
+      ((default . error) (SEMICOLON .  1285))
+      ((default . error) (SEMICOLON .  1284))
+      ((default . error) (DOT_DOT .  1283))
+      ((default . error) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  148) (NULL .  149) (NEW .  147) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (LEFT_PAREN .  146))
       ((default . error) (PRIVATE . (protected_type_declaration . 0)) (END . (protected_type_declaration . 0)) (BEGIN . (protected_type_declaration . 0)) (IDENTIFIER . (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_declaration . 0)) (PROCEDURE . (protected_type_declaration . 0)) (PROTECTED . (protected_type_declaration . 0)) (SUBTYPE . (protected_type_declaration . 0)) (TASK . (protected_type_declaration . 0)) (TYPE . (protected_type_declaration . 0)) (USE . (protected_type_declaration . 0)))
       ((default . error) (PRIVATE . (task_type_declaration . 0)) (END . (task_type_declaration . 0)) (BEGIN . (task_type_declaration . 0)) (IDENTIFIER . (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)) (PROTECTED . (task_type_declaration . 0)) (SUBTYPE . (task_type_declaration . 0)) (TASK . (task_type_declaration . 0)) (TYPE . (task_type_declaration . 0)) (USE . (task_type_declaration . 0)))
+      ((default . error) (SEMICOLON .  1302))
+      ((default . error) (NULL .  995) (CASE .  994) (IDENTIFIER .  71) (FOR .  288))
       ((default . error) (SEMICOLON .  1300))
-      ((default . error) (NULL .  993) (CASE .  992) (IDENTIFIER .  71) (FOR .  286))
-      ((default . error) (SEMICOLON .  1298))
-      ((default . error) (SEMICOLON .  1297))
-      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  289) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  286) (IDENTIFIER .  285) (TYPE .  291) (GENERIC .  2) (PROTECTED .  288) (TASK .  290) (PACKAGE .  287))
-      ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  142) (MINUS .  141) (ABS .  144) (NOT .  750) (NULL .  148) (NEW .  146) (LEFT_PAREN .  145))
+      ((default . error) (SEMICOLON .  1299))
+      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  291) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .  288) (IDENTIFIER .  287) (TYPE .  293) (GENERIC .  2) (PROTECTED .  290) (TASK .  292) (PACKAGE .  289))
+      ((default . error) (IDENTIFIER .  47) (CHARACTER_LITERAL .  49) (STRING_LITERAL .  48) (PLUS .  143) (MINUS .  142) (ABS .  145) (NOT .  752) (NULL .  149) (NEW .  147) (LEFT_PAREN .  146))
       ((default . error) (PRIVATE . (task_body . 0)) (END . (task_body . 0)) (BEGIN . (task_body . 0)) (IDENTIFIER . (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)) ($EOI . (task_body . 0)) (LIMITED . (task_body . 0)) (SEPARATE . (task_body . 0)) (WITH . (task_body . 0)))
       ((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)) (LESS_LESS . (accept_statement . 0)) (IDENTIFIER . (accept_statement . 0)) (STRING_LITERAL . (accept_statement . 0)) (CHARACTER_LITERAL . (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 . (accept_statement . 0)) (GOTO . (accept_statement . 0)) (IF . (accept_statement . 0)) (LOOP . (accept_statement . 0)) (NULL . (accept_statement . 0)) (PRAGMA . (accept_statement . 0)) (RAISE . (accept_statement . 0)) (REQUEUE . (accept_statement . 0)) (RETURN . (accept_statement . 0)) (SELECT . (accept_statement . 0)) (WHILE . (accept_statement . 0)))
       ((default . error) (OR . (if_statement . 2)) (THEN . (if_statement . 2)) (WHEN . (if_statement . 2)) (EXCEPTION . (if_statement . 2)) (END . (if_statement . 2)) (LESS_LESS . (if_statement . 2)) (IDENTIFIER . (if_statement . 2)) (STRING_LITERAL . (if_statement . 2)) (CHARACTER_LITERAL . (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_statement . 2)) (PRAGMA . (if_statement . 2)) (RAISE . (if_statement . 2)) (REQUEUE . (if_statement . 2)) (RETURN . (if_statement . 2)) (SELECT . (if_statement . 2)) (WHILE . (if_statement . 2)) (ELSE . (if_statement . 2)) (ELSIF . (if_statement . 2)))
-      ((default . error) (SEMICOLON .  1294))
+      ((default . error) (SEMICOLON .  1296))
       ((default . error) (WHEN . (if_statement . 0)) (THEN . (if_statement . 0)) (OR . (if_statement . 0)) (ELSIF . (if_statement . 0)) (ELSE . (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)) (NULL . (if_statement . 0)) (LOOP . (if_statement . 0)) (IF . (if_statement . 0)) (GOTO . (if_statement . 0)) (FOR . (if_statement . 0)) (EXIT . (if_statement . 0)) (DELAY . (if_statement . 0)) (DECLARE . (if_statement . 0)) (CASE . (if_statement . 0)) (BEGIN . (if_statement . 0)) (ABORT . (if_statement . 0)) (ACCEPT . (if_statement . 0)) (CHARACTER_LITERAL . (if_statement . 0)) (STRING_LITERAL . (if_statement . 0)) (IDENTIFIER . (if_statement . 0)) (LESS_LESS . (if_statement . 0)) (END . (if_statement . 0)) (EXCEPTION . (if_statement . 0)))
-      ((default . error) (RIGHT_PAREN .  1304))
-      ((default . error) (BEGIN .  1303))
+      ((default . error) (RIGHT_PAREN .  1306))
+      ((default . error) (BEGIN .  1305))
       ((default . error) (BEGIN . (private_extension_declaration . 0)) (IDENTIFIER . (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 . 0)) (PROTECTED . (private_extension_declaration . 0)) (SUBTYPE . (private_extension_declaration . 0)) (TASK . (private_extension_declaration . 0)) (TYPE . (private_extension_declaration . 0)) (USE . (private_extension_declaration . 0)) (PRIVATE . (private_extension_declaration . 0)) (END . (private_extension_declaration . 0)))
       ((default . error) (WHEN . (variant_part . 0)) (END . (variant_part . 0)) (CASE . (variant_part . 0)) (IDENTIFIER . (variant_part . 0)) (FOR . (variant_part . 0)))
-      ((default . error) (END . (variant . 0)) (WHEN . (variant . 0)) (CASE .  992) (IDENTIFIER .  71) (FOR .  286))
+      ((default . error) (END . (variant . 0)) (WHEN . (variant . 0)) (CASE .  994) (IDENTIFIER .  71) (FOR .  288))
       ((default . error) (WHEN . (component_declaration . 0)) (END . (component_declaration . 0)) (CASE . (component_declaration . 0)) (IDENTIFIER . (component_declaration . 0)) (FOR . (component_declaration . 0)))
-      ((default . error) (SEMICOLON .  1302))
+      ((default . error) (SEMICOLON .  1304))
       ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  604) (IDENTIFIER . ((label_opt . 0)  605)))
-      ((default . error) (WHEN . (parameter_profile_opt . 0)) (LEFT_PAREN .  774))
+      ((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)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (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 . (label_opt . 0)) (REQUEUE . (label_opt . 0)) (LESS_LESS .  607) (IDENTIFIER . ((label_opt . 0)  608)))
+      ((default . error) (WHEN . (parameter_profile_opt . 0)) (LEFT_PAREN .  776))
       ((default . error) (WHEN . (entry_body_formal_part . 0)))
-      ((default . error) (END .  1307))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  688))
-      ((default . error) (SEMICOLON .  1309))
+      ((default . error) (END .  1309))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  691))
+      ((default . error) (SEMICOLON .  1311))
       ((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)(generic_declaration . 16)(generic_formal_part . 17)(generic_instantiation . 18)(generic_package_declaration . 19)(generic_renaming_declaration . 20)(generic_subprogram_declaration . 21)(library_item . 22)(library_unit_declaration . 23)(library_unit_renaming_declaration . 24)(overriding_indicator_opt . 25)(package_body . 26)(package_declaration . 27)(package_renaming_declaration . 28)(package_specification . 29)(pragma . 30)(procedure_specification . 31)(subprogram_body . 32)(subprogram_declaration . 33)(subprogram_renaming_declaration . 34)(subunit . 35)(use_clause . 36)(with_clause . 37))
       ((attribute_reference . 50)(name . 85)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
-      ((attribute_reference . 50)(name . 130)(qualified_expression . 53)(selected_component . 54))
       ((attribute_reference . 50)(name . 129)(qualified_expression . 53)(selected_component . 54))
-      ((aspect_specification_opt . 128))
+      ((attribute_reference . 50)(name . 128)(qualified_expression . 53)(selected_component . 54))
+      ((aspect_specification_opt . 127))
       ((attribute_reference . 50)(name . 125)(qualified_expression . 53)(selected_component . 54))
       nil
       ((aspect_specification_opt . 123))
       nil
       ((actual_parameter_part . 90)(formal_part . 91)(parameter_and_result_profile . 92))
       nil
-      ((aggregate . 219)(attribute_reference . 50)(attribute_designator . 220)(name . 221)(qualified_expression . 53)(selected_component . 54))
-      ((aggregate . 149)(association_opt . 171)(association_list . 188)(attribute_reference . 50)(choice_expression . 173)(choice_relation_and_list . 174)(choice_relation_or_list . 175)(choice_relation_xor_list . 176)(choice_relation_and_then_list . 177)(choice_relation_or_else_list . 178)(choice_relation . 179)(discrete_choice . 180)(discrete_choice_list . 181)(expression . 182)(expression_opt . 183)(factor . 151)(identifier_list . 211)(name . 184)(parameter_specification . 212)(parameter_specification_list . 213)(primary . 155)(qualified_expression . 53)(range . 189)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 186)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((access_definition . 207)(attribute_reference . 50)(name . 208)(null_exclusion_opt . 209)(qualified_expression . 53)(selected_component . 54))
+      ((aggregate . 221)(attribute_reference . 50)(attribute_designator . 222)(name . 223)(qualified_expression . 53)(selected_component . 54))
+      ((aggregate . 150)(association_opt . 172)(association_list . 189)(attribute_reference . 50)(choice_expression . 174)(choice_relation_and_list . 175)(choice_relation_or_list . 176)(choice_relation_xor_list . 177)(choice_relation_and_then_list . 178)(choice_relation_or_else_list . 179)(choice_relation . 180)(discrete_choice . 181)(discrete_choice_list . 182)(expression . 183)(expression_opt . 184)(factor . 152)(identifier_list . 213)(name . 185)(parameter_specification . 214)(parameter_specification_list . 215)(primary . 156)(qualified_expression . 53)(range . 190)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 187)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((access_definition . 208)(attribute_reference . 50)(name . 209)(name_opt . 210)(null_exclusion_opt . 211)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
-      ((mode_opt . 204))
+      ((mode_opt . 205))
       nil
       nil
-      ((attribute_reference . 50)(name . 200)(qualified_expression . 53)(selected_component . 54))
-      ((aspect_specification_opt . 199))
-      ((discriminant_part_opt . 197))
+      ((attribute_reference . 50)(name . 201)(qualified_expression . 53)(selected_component . 54))
+      ((aspect_specification_opt . 200))
+      ((discriminant_part_opt . 198))
       ((actual_parameter_part . 90))
       ((actual_parameter_part . 90))
       ((actual_parameter_part . 90))
       nil
-      ((attribute_reference . 50)(name_list . 191)(name . 52)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name_list . 192)(name . 52)(qualified_expression . 53)(selected_component . 54))
       nil
-      ((aggregate . 149)(association_opt . 171)(association_list . 188)(attribute_reference . 50)(choice_expression . 173)(choice_relation_and_list . 174)(choice_relation_or_list . 175)(choice_relation_xor_list . 176)(choice_relation_and_then_list . 177)(choice_relation_or_else_list . 178)(choice_relation . 179)(discrete_choice . 180)(discrete_choice_list . 181)(expression . 182)(expression_opt . 183)(factor . 151)(name . 184)(primary . 155)(qualified_expression . 53)(range . 189)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 186)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((attribute_reference . 50)(name . 187)(qualified_expression . 53)(selected_component . 54))
-      ((aggregate . 149)(association_opt . 171)(association_list . 172)(attribute_reference . 50)(choice_expression . 173)(choice_relation_and_list . 174)(choice_relation_or_list . 175)(choice_relation_xor_list . 176)(choice_relation_and_then_list . 177)(choice_relation_or_else_list . 178)(choice_relation . 179)(discrete_choice . 180)(discrete_choice_list . 181)(expression . 182)(expression_opt . 183)(factor . 151)(name . 184)(primary . 155)(qualified_expression . 53)(range . 185)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 186)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(association_opt . 172)(association_list . 189)(attribute_reference . 50)(choice_expression . 174)(choice_relation_and_list . 175)(choice_relation_or_list . 176)(choice_relation_xor_list . 177)(choice_relation_and_then_list . 178)(choice_relation_or_else_list . 179)(choice_relation . 180)(discrete_choice . 181)(discrete_choice_list . 182)(expression . 183)(expression_opt . 184)(factor . 152)(name . 185)(primary . 156)(qualified_expression . 53)(range . 190)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 187)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((attribute_reference . 50)(name . 188)(qualified_expression . 53)(selected_component . 54))
+      ((aggregate . 150)(association_opt . 172)(association_list . 173)(attribute_reference . 50)(choice_expression . 174)(choice_relation_and_list . 175)(choice_relation_or_list . 176)(choice_relation_xor_list . 177)(choice_relation_and_then_list . 178)(choice_relation_or_else_list . 179)(choice_relation . 180)(discrete_choice . 181)(discrete_choice_list . 182)(expression . 183)(expression_opt . 184)(factor . 152)(name . 185)(primary . 156)(qualified_expression . 53)(range . 186)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 187)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((actual_parameter_part . 90)(aspect_specification_opt . 166))
-      nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 150)(factor . 151)(name . 152)(pragma_argument_association . 153)(pragma_argument_association_list . 154)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((actual_parameter_part . 90)(aspect_specification_opt . 167))
       nil
+      ((aggregate . 150)(attribute_reference . 50)(expression . 151)(factor . 152)(name . 153)(pragma_argument_association . 154)(pragma_argument_association_list . 155)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aspect_specification_opt . 141))
       nil
       ((actual_parameter_part . 90)(aspect_specification_opt . 108))
       nil
       nil
       nil
       ((actual_parameter_part . 90)(aspect_specification_opt . 108))
-      nil
       ((attribute_reference . 50)(name . 134)(qualified_expression . 53)(selected_component . 54))
       nil
       ((actual_parameter_part . 90)(formal_part . 115)(parameter_profile_opt . 116))
       ((actual_parameter_part . 90)(formal_part . 91)(parameter_and_result_profile . 92))
       nil
       nil
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 378)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
-      ((actual_parameter_part . 90)(aspect_specification_opt . 377))
+      nil
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 380)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
+      ((actual_parameter_part . 90)(aspect_specification_opt . 379))
       nil
       nil
       nil
       ((actual_parameter_part . 90))
-      ((overriding_indicator_opt . 374)(package_body . 313)(procedure_specification . 31)(proper_body . 375)(protected_body . 321)(subprogram_body . 328)(task_body . 333))
+      ((overriding_indicator_opt . 376)(package_body . 315)(procedure_specification . 31)(proper_body . 377)(protected_body . 323)(subprogram_body . 330)(task_body . 335))
       nil
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(name . 152)(primary . 368)(qualified_expression . 53)(selected_component . 54))
-      ((aggregate . 149)(association_opt . 171)(association_list . 227)(attribute_reference . 50)(case_expression . 365)(choice_expression . 173)(choice_relation_and_list . 174)(choice_relation_or_list . 175)(choice_relation_xor_list . 176)(choice_relation_and_then_list . 177)(choice_relation_or_else_list . 178)(choice_relation . 179)(discrete_choice . 180)(discrete_choice_list . 181)(expression . 228)(expression_opt . 183)(factor . 151)(if_expression . 366)(name . 184)(primary . 155)(qualified_expression . 53)(quantified_expression . 367)(range . 185)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 186)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((attribute_reference . 50)(name . 361)(qualified_expression . 53)(selected_component . 54))
-      ((aggregate . 149)(attribute_reference . 50)(name . 152)(primary . 283)(qualified_expression . 53)(selected_component . 54))
+      nil
+      ((aggregate . 150)(attribute_reference . 50)(name . 153)(primary . 370)(qualified_expression . 53)(selected_component . 54))
+      ((aggregate . 150)(association_opt . 172)(association_list . 229)(attribute_reference . 50)(case_expression . 367)(choice_expression . 174)(choice_relation_and_list . 175)(choice_relation_or_list . 176)(choice_relation_xor_list . 177)(choice_relation_and_then_list . 178)(choice_relation_or_else_list . 179)(choice_relation . 180)(discrete_choice . 181)(discrete_choice_list . 182)(expression . 230)(expression_opt . 184)(factor . 152)(if_expression . 368)(name . 185)(primary . 156)(qualified_expression . 53)(quantified_expression . 369)(range . 186)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 187)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((attribute_reference . 50)(name . 363)(qualified_expression . 53)(selected_component . 54))
+      ((aggregate . 150)(attribute_reference . 50)(name . 153)(primary . 285)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((relational_operator . 349))
-      ((multiplying_operator . 348))
-      ((binary_adding_operator . 343))
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(term . 163)(term_list . 339))
+      ((relational_operator . 351))
+      ((multiplying_operator . 350))
+      ((binary_adding_operator . 345))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(term . 164)(term_list . 341))
       nil
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 299)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 301)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(name . 152)(primary . 283)(qualified_expression . 53)(selected_component . 54))
+      ((aggregate . 150)(attribute_reference . 50)(name . 153)(primary . 285)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
       nil
       ((actual_parameter_part . 90))
       nil
-      ((relational_operator . 270))
-      ((actual_parameter_part . 90)(aspect_specification_opt . 260))
+      ((relational_operator . 272))
+      ((actual_parameter_part . 90)(aspect_specification_opt . 262))
       nil
       nil
-      ((attribute_reference . 50)(name . 256)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 258)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
+      ((attribute_reference . 50)(name . 256)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 255)(qualified_expression . 53)(selected_component . 54))
       ((attribute_reference . 50)(name . 254)(qualified_expression . 53)(selected_component . 54))
-      ((attribute_reference . 50)(name . 253)(qualified_expression . 53)(selected_component . 54))
-      ((attribute_reference . 50)(name . 252)(qualified_expression . 53)(selected_component . 54))
-      ((discriminant_specification_opt . 249)(discriminant_specification_list . 250)(identifier_list . 251))
-      ((aspect_specification_opt . 247))
-      ((attribute_reference . 50)(name . 244)(qualified_expression . 53)(selected_component . 54)(subprogram_default . 245))
+      ((discriminant_specification_opt . 251)(discriminant_specification_list . 252)(identifier_list . 253))
+      ((aspect_specification_opt . 249))
+      ((attribute_reference . 50)(name . 246)(qualified_expression . 53)(selected_component . 54)(subprogram_default . 247))
       nil
       ((actual_parameter_part . 90))
       nil
       nil
       nil
+      ((access_definition . 238)(null_exclusion_opt . 239))
       ((access_definition . 236)(null_exclusion_opt . 237))
-      ((access_definition . 234)(null_exclusion_opt . 235))
       nil
       nil
       ((actual_parameter_part . 90))
       nil
       nil
       nil
-      ((aggregate . 149)(association_opt . 171)(association_list . 227)(attribute_reference . 50)(choice_expression . 173)(choice_relation_and_list . 174)(choice_relation_or_list . 175)(choice_relation_xor_list . 176)(choice_relation_and_then_list . 177)(choice_relation_or_else_list . 178)(choice_relation . 179)(discrete_choice . 180)(discrete_choice_list . 181)(expression . 228)(expression_opt . 183)(factor . 151)(name . 184)(primary . 155)(qualified_expression . 53)(range . 185)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 186)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      nil
+      ((aggregate . 150)(association_opt . 172)(association_list . 229)(attribute_reference . 50)(choice_expression . 174)(choice_relation_and_list . 175)(choice_relation_or_list . 176)(choice_relation_xor_list . 177)(choice_relation_and_then_list . 178)(choice_relation_or_else_list . 179)(choice_relation . 180)(discrete_choice . 181)(discrete_choice_list . 182)(expression . 230)(expression_opt . 184)(factor . 152)(name . 185)(primary . 156)(qualified_expression . 53)(range . 186)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 187)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((identifier_list . 211)(parameter_specification . 510))
+      ((identifier_list . 213)(parameter_specification . 512))
       nil
-      ((access_definition . 508)(aliased_opt . 509)(null_exclusion_opt . 209))
-      ((general_access_modifier_opt . 505)(protected_opt . 506))
+      ((access_definition . 510)(aliased_opt . 511)(null_exclusion_opt . 211))
+      ((general_access_modifier_opt . 507)(protected_opt . 508))
       nil
       nil
-      ((attribute_reference . 50)(name . 501)(qualified_expression . 53)(selected_component . 54))
-      ((aspect_specification_opt . 500))
-      ((attribute_reference . 50)(name . 498)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 209)(name_opt . 503)(qualified_expression . 53)(selected_component . 54))
+      ((aspect_specification_opt . 502))
+      ((attribute_reference . 50)(name . 500)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
       nil
-      ((aspect_specification_opt . 495)(attribute_reference . 50)(name . 244)(qualified_expression . 53)(selected_component . 54)(subprogram_default . 496))
+      ((aspect_specification_opt . 497)(attribute_reference . 50)(name . 246)(qualified_expression . 53)(selected_component . 54)(subprogram_default . 498))
       nil
       ((actual_parameter_part . 90))
-      ((aspect_specification_opt . 494))
-      ((abstract_limited_synchronized_opt . 487)(abstract_tagged_limited_opt . 488)(access_definition . 489)(array_type_definition . 490)(formal_type_definition . 491)(formal_derived_type_definition . 492)(interface_type_definition . 493)(null_exclusion_opt . 209))
+      ((aspect_specification_opt . 496))
+      ((abstract_limited_synchronized_opt . 489)(abstract_tagged_limited_opt . 490)(access_definition . 491)(array_type_definition . 492)(formal_type_definition . 493)(formal_derived_type_definition . 494)(interface_type_definition . 495)(null_exclusion_opt . 211))
       nil
       nil
       nil
       nil
       nil
+      ((actual_parameter_part . 90)(aspect_specification_opt . 470))
+      ((actual_parameter_part . 90)(aspect_specification_opt . 469))
       ((actual_parameter_part . 90)(aspect_specification_opt . 468))
-      ((actual_parameter_part . 90)(aspect_specification_opt . 467))
-      ((actual_parameter_part . 90)(aspect_specification_opt . 466))
       nil
-      ((actual_parameter_part . 90)(aspect_specification_opt . 465))
+      ((actual_parameter_part . 90)(aspect_specification_opt . 467))
       nil
-      ((aggregate . 149)(association_opt . 464)(attribute_reference . 50)(choice_expression . 173)(choice_relation_and_list . 174)(choice_relation_or_list . 175)(choice_relation_xor_list . 176)(choice_relation_and_then_list . 177)(choice_relation_or_else_list . 178)(choice_relation . 179)(discrete_choice . 180)(discrete_choice_list . 181)(expression . 182)(expression_opt . 183)(factor . 151)(name . 184)(primary . 155)(qualified_expression . 53)(range . 185)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 186)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(association_opt . 466)(attribute_reference . 50)(choice_expression . 174)(choice_relation_and_list . 175)(choice_relation_or_list . 176)(choice_relation_xor_list . 177)(choice_relation_and_then_list . 178)(choice_relation_or_else_list . 179)(choice_relation . 180)(discrete_choice . 181)(discrete_choice_list . 182)(expression . 183)(expression_opt . 184)(factor . 152)(name . 185)(primary . 156)(qualified_expression . 53)(range . 186)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 187)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 462)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 464)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(membership_choice_list . 458)(membership_choice . 459)(name . 184)(primary . 155)(qualified_expression . 53)(range . 460)(selected_component . 54)(simple_expression . 461)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(membership_choice_list . 460)(membership_choice . 461)(name . 185)(primary . 156)(qualified_expression . 53)(range . 462)(selected_component . 54)(simple_expression . 463)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 456)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 219)(attribute_reference . 50)(attribute_designator . 220)(name . 221)(qualified_expression . 53)(selected_component . 54))
-      ((aggregate . 149)(attribute_reference . 50)(choice_expression . 173)(choice_relation_and_list . 174)(choice_relation_or_list . 175)(choice_relation_xor_list . 176)(choice_relation_and_then_list . 177)(choice_relation_or_else_list . 178)(choice_relation . 179)(discrete_choice . 453)(factor . 151)(name . 184)(primary . 155)(qualified_expression . 53)(range . 185)(selected_component . 54)(simple_expression . 454)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 452)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(choice_relation . 450)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 441)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(choice_relation . 448)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 441)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(choice_relation . 446)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 441)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 458)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 221)(attribute_reference . 50)(attribute_designator . 222)(name . 223)(qualified_expression . 53)(selected_component . 54))
+      ((aggregate . 150)(attribute_reference . 50)(choice_expression . 174)(choice_relation_and_list . 175)(choice_relation_or_list . 176)(choice_relation_xor_list . 177)(choice_relation_and_then_list . 178)(choice_relation_or_else_list . 179)(choice_relation . 180)(discrete_choice . 455)(factor . 152)(name . 185)(primary . 156)(qualified_expression . 53)(range . 186)(selected_component . 54)(simple_expression . 456)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 454)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(choice_relation . 452)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 443)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(choice_relation . 450)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 443)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(choice_relation . 448)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 443)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(choice_relation . 443)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 441)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(choice_relation . 442)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 441)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(choice_relation . 440)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 441)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((attribute_reference . 50)(name . 439)(qualified_expression . 53)(selected_component . 54))
+      ((aggregate . 150)(attribute_reference . 50)(choice_relation . 445)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 443)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(choice_relation . 444)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 443)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(choice_relation . 442)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 443)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((attribute_reference . 50)(name . 441)(qualified_expression . 53)(selected_component . 54))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 438)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 440)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((attribute_reference . 433)(direct_name . 434)(name . 435)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 435)(direct_name . 436)(name . 437)(qualified_expression . 53)(selected_component . 54))
       ((attribute_reference . 50)(name . 67)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
       nil
       nil
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 421)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 423)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((procedure_specification . 416)(subprogram_specification . 417))
+      ((procedure_specification . 418)(subprogram_specification . 419))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 414)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
-      ((binary_adding_operator . 343))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 416)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
+      ((binary_adding_operator . 345))
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(term . 413))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(term . 415))
       nil
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 412)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54))
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 411)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation . 410)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation . 408)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation . 406)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation . 405)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 414)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 413)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation . 412)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation . 410)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation . 408)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation . 407)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation . 403)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation . 405)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation . 401)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(name . 152)(primary . 400)(qualified_expression . 53)(selected_component . 54))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 150)(factor . 151)(name . 152)(pragma_argument_association . 399)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation . 403)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(name . 153)(primary . 402)(qualified_expression . 53)(selected_component . 54))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 151)(factor . 152)(name . 153)(pragma_argument_association . 401)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       ((actual_parameter_part . 90))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 397)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((quantifier . 396))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 393)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 399)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((quantifier . 398))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 395)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 389)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 391)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
       nil
-      ((procedure_specification . 31)(subprogram_specification . 385))
+      ((procedure_specification . 31)(subprogram_specification . 387))
       nil
       nil
       nil
       nil
-      ((attribute_reference . 50)(name . 382)(qualified_expression . 53)(selected_component . 54))
-      ((attribute_reference . 50)(name . 381)(qualified_expression . 53)(selected_component . 54))
-      ((actual_parameter_part . 90)(aspect_specification_opt . 650))
-      ((actual_parameter_part . 90)(aspect_specification_opt . 649))
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(handled_sequence_of_statements . 632)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 645)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((attribute_reference . 50)(name . 384)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 383)(qualified_expression . 53)(selected_component . 54))
+      ((actual_parameter_part . 90)(aspect_specification_opt . 653))
+      ((actual_parameter_part . 90)(aspect_specification_opt . 652))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(handled_sequence_of_statements . 635)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 648)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
-      ((aspect_specification_opt . 128))
+      ((aspect_specification_opt . 606))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((iterator_specification . 599))
+      ((iterator_specification . 601))
       nil
       nil
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation . 596)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation . 598)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation . 595)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation . 597)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation . 594)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation . 596)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation . 593)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation . 595)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
-      ((multiplying_operator . 348))
+      ((multiplying_operator . 350))
       nil
       nil
       nil
-      ((aspect_specification_opt . 128))
-      ((aliased_opt . 587))
-      ((attribute_reference . 50)(name . 584)(qualified_expression . 53)(selected_component . 54))
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 583)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
+      ((aspect_specification_opt . 127))
+      ((aliased_opt . 589))
+      ((attribute_reference . 50)(name . 586)(qualified_expression . 53)(selected_component . 54))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 585)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
       nil
-      ((discriminant_part_opt . 582))
-      ((aspect_specification_opt . 580))
+      ((discriminant_part_opt . 584))
+      ((aspect_specification_opt . 582))
       nil
       nil
       nil
-      ((aspect_specification_opt . 576))
+      ((aspect_specification_opt . 578))
       nil
       nil
-      ((attribute_reference . 50)(name . 573)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 575)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
       nil
       ((actual_parameter_part . 90))
-      ((access_definition . 568)(null_exclusion_opt . 569))
+      ((access_definition . 570)(null_exclusion_opt . 571))
       nil
       nil
       ((actual_parameter_part . 90))
       nil
-      ((relational_operator . 562))
+      ((relational_operator . 564))
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(choice_relation . 566)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 441)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(choice_relation . 565)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 441)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(choice_relation . 568)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 443)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(choice_relation . 567)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 443)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(choice_relation . 564)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 441)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(choice_relation . 566)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 443)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(choice_relation . 563)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 441)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(choice_relation . 565)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 443)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
       nil
-      ((relational_operator . 562))
+      ((relational_operator . 564))
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(membership_choice_list . 560)(membership_choice . 459)(name . 184)(primary . 155)(qualified_expression . 53)(range . 460)(selected_component . 54)(simple_expression . 461)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(membership_choice_list . 562)(membership_choice . 461)(name . 185)(primary . 156)(qualified_expression . 53)(range . 462)(selected_component . 54)(simple_expression . 463)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((access_definition . 551)(attribute_reference . 50)(name . 552)(null_exclusion_opt . 209)(null_exclusion_opt_name . 553)(qualified_expression . 53)(selected_component . 554))
-      ((discriminant_specification_opt . 548)(identifier_list . 251))
+      ((access_definition . 553)(attribute_reference . 50)(name . 554)(null_exclusion_opt . 211)(null_exclusion_opt_name . 555)(qualified_expression . 53)(selected_component . 556))
+      ((discriminant_specification_opt . 550)(identifier_list . 253))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((aspect_specification_opt . 535))
+      ((aspect_specification_opt . 537))
       nil
       nil
       nil
       nil
       nil
-      ((aspect_specification_opt . 530))
+      ((aspect_specification_opt . 532))
       nil
       nil
       nil
       nil
-      ((aspect_specification_opt . 527))
-      ((attribute_reference . 50)(name . 526)(qualified_expression . 53)(selected_component . 54))
-      ((actual_parameter_part . 90)(aspect_specification_opt . 525))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 523)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aspect_specification_opt . 529))
+      ((attribute_reference . 50)(name . 528)(qualified_expression . 53)(selected_component . 54))
+      ((actual_parameter_part . 90)(aspect_specification_opt . 527))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 525)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      nil
       nil
-      ((actual_parameter_part . 90))
       nil
       nil
       nil
-      ((attribute_reference . 50)(name . 521)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 523)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
-      ((mode_opt . 517))
+      ((mode_opt . 519))
       nil
-      ((aggregate . 149)(association_opt . 171)(association_list . 516)(attribute_reference . 50)(choice_expression . 173)(choice_relation_and_list . 174)(choice_relation_or_list . 175)(choice_relation_xor_list . 176)(choice_relation_and_then_list . 177)(choice_relation_or_else_list . 178)(choice_relation . 179)(discrete_choice . 180)(discrete_choice_list . 181)(expression . 182)(expression_opt . 183)(factor . 151)(name . 184)(primary . 155)(qualified_expression . 53)(range . 185)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 186)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(association_opt . 172)(association_list . 518)(attribute_reference . 50)(choice_expression . 174)(choice_relation_and_list . 175)(choice_relation_or_list . 176)(choice_relation_xor_list . 177)(choice_relation_and_then_list . 178)(choice_relation_or_else_list . 179)(choice_relation . 180)(discrete_choice . 181)(discrete_choice_list . 182)(expression . 183)(expression_opt . 184)(factor . 152)(name . 185)(primary . 156)(qualified_expression . 53)(range . 186)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 187)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
       nil
       nil
-      ((null_exclusion_opt . 778))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 777)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((formal_part . 91)(parameter_and_result_profile . 776))
-      ((formal_part . 115)(parameter_profile_opt . 775))
+      ((null_exclusion_opt . 780))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 779)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((formal_part . 91)(parameter_and_result_profile . 778))
+      ((formal_part . 115)(parameter_profile_opt . 777))
       ((actual_parameter_part . 90))
       nil
-      ((aspect_specification_opt . 773))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 772)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aspect_specification_opt . 775))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 774)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((actual_parameter_part . 90)(formal_package_actual_part . 770))
+      ((actual_parameter_part . 90)(formal_package_actual_part . 772))
       nil
       nil
       nil
       nil
       nil
-      ((attribute_reference . 50)(name . 766)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 768)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(discrete_subtype_definition . 751)(discrete_subtype_definition_list . 752)(factor . 151)(index_subtype_definition . 753)(index_subtype_definition_list . 754)(name . 755)(primary . 155)(qualified_expression . 53)(range . 756)(selected_component . 54)(simple_expression . 757)(subtype_indication . 758)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(discrete_subtype_definition . 753)(discrete_subtype_definition_list . 754)(factor . 152)(index_subtype_definition . 755)(index_subtype_definition_list . 756)(name . 757)(primary . 156)(qualified_expression . 53)(range . 758)(selected_component . 54)(simple_expression . 759)(subtype_indication . 760)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(membership_choice . 745)(name . 184)(primary . 155)(qualified_expression . 53)(range . 460)(selected_component . 54)(simple_expression . 461)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(membership_choice . 747)(name . 185)(primary . 156)(qualified_expression . 53)(range . 462)(selected_component . 54)(simple_expression . 463)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 744)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 743)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 746)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 745)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((attribute_reference . 50)(name . 740)(qualified_expression . 53)(selected_component . 54))
-      ((aggregate . 738)(record_rep . 739))
+      ((attribute_reference . 50)(name . 742)(qualified_expression . 53)(selected_component . 54))
+      ((aggregate . 740)(record_rep . 741))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 735)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((actual_parameter_part . 90)(aspect_specification_opt . 166))
-      ((discriminant_part_opt . 733))
-      ((aspect_specification_opt . 700))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 737)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((actual_parameter_part . 90)(aspect_specification_opt . 167))
+      ((discriminant_part_opt . 735))
+      ((aspect_specification_opt . 703))
       nil
-      ((attribute_reference . 50)(name . 729)(qualified_expression . 53)(selected_component . 54)(subtype_indication . 730))
-      ((discriminant_part_opt . 727))
-      ((aspect_specification_opt . 699))
+      ((attribute_reference . 50)(name . 731)(qualified_expression . 53)(selected_component . 54)(subtype_indication . 732))
+      ((discriminant_part_opt . 729))
+      ((aspect_specification_opt . 702))
       nil
       nil
       nil
       ((actual_parameter_part . 90))
       nil
       nil
-      ((constant_opt . 719))
+      ((constant_opt . 721))
       nil
       nil
-      ((formal_part . 115)(parameter_profile_opt . 714))
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(handled_sequence_of_statements . 712)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 645)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
-      ((attribute_reference . 50)(name . 710)(name_opt . 711)(qualified_expression . 53)(selected_component . 54))
+      ((formal_part . 115)(parameter_profile_opt . 716))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(handled_sequence_of_statements . 714)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 648)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
+      ((attribute_reference . 50)(name . 209)(name_opt . 713)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
       nil
-      ((case_expression_alternative . 708)(case_expression_alternative_list . 709))
+      ((case_expression_alternative . 711)(case_expression_alternative_list . 712))
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 702)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 701)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aspect_specification_opt . 700))
-      ((aspect_specification_opt . 699))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 705)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 704)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aspect_specification_opt . 703))
+      ((aspect_specification_opt . 702))
       nil
       nil
       nil
-      ((attribute_reference . 50)(name . 695)(qualified_expression . 53)(selected_component . 54))
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(handled_sequence_of_statements . 694)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 645)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 693)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 692)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 691)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((identifier_opt . 689))
-      ((iterator_specification . 686)(iterator_specification_opt . 687))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 182)(expression_opt . 684)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 683)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((attribute_reference . 50)(name . 698)(qualified_expression . 53)(selected_component . 54))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(handled_sequence_of_statements . 697)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 648)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 696)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 695)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 694)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((identifier_opt . 692))
+      ((iterator_specification . 689)(iterator_specification_opt . 690))
       nil
-      ((attribute_reference . 50)(name . 681)(qualified_expression . 53)(selected_component . 54))
-      ((attribute_reference . 50)(name . 679)(qualified_expression . 53)(selected_component . 54))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 676)(extended_return_object_declaration . 677)(extended_return_object_declaration_opt . 678)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((accept_statement . 664)(attribute_reference . 50)(delay_alternative . 665)(delay_statement . 666)(entry_call_alternative . 667)(name . 668)(procedure_call_statement . 669)(qualified_expression . 53)(selected_component . 54)(select_alternative . 670)(select_alternative_list . 671)(select_alternative_list_opt . 672)(triggering_alternative . 673))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 182)(expression_opt . 661)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 183)(expression_opt . 687)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 686)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
+      ((attribute_reference . 50)(name . 684)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 682)(qualified_expression . 53)(selected_component . 54))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 679)(extended_return_object_declaration . 680)(extended_return_object_declaration_opt . 681)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((accept_statement . 667)(attribute_reference . 50)(delay_alternative . 668)(delay_statement . 669)(entry_call_alternative . 670)(name . 671)(procedure_call_statement . 672)(qualified_expression . 53)(selected_component . 54)(select_alternative . 673)(select_alternative_list . 674)(select_alternative_list_opt . 675)(triggering_alternative . 676))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 183)(expression_opt . 664)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(compound_statement . 657)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(simple_return_statement . 646)(simple_statement . 658)(timed_entry_call . 648))
+      nil
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(compound_statement . 660)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(simple_return_statement . 649)(simple_statement . 661)(timed_entry_call . 651))
       nil
       ((actual_parameter_part . 90))
       nil
       nil
       nil
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(simple_return_statement . 646)(statement . 654)(timed_entry_call . 648))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(simple_return_statement . 649)(statement . 657)(timed_entry_call . 651))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((exception_handler . 919)(exception_handler_list . 920)(exception_handler_list_opt . 921))
+      ((exception_handler . 921)(exception_handler_list . 922)(exception_handler_list_opt . 923))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 917)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 919)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 916)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
-      ((attribute_reference . 50)(name . 710)(name_opt . 915)(qualified_expression . 53)(selected_component . 54))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 918)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
+      ((attribute_reference . 50)(name . 209)(name_opt . 917)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 913)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 912)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 915)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 914)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 911)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 913)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
-      ((accept_statement . 623)(actual_parameter_part . 90)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 908)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 907)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((accept_statement . 626)(actual_parameter_part . 90)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 910)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 909)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 889)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 891)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
       nil
       ((actual_parameter_part . 90))
-      ((actual_parameter_part . 882)(actual_parameter_part_opt . 883))
+      ((actual_parameter_part . 884)(actual_parameter_part_opt . 885))
       nil
       nil
       nil
       nil
       nil
-      ((elsif_expression_item . 876)(elsif_expression_list . 877))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 873)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((attribute_reference . 50)(name . 729)(qualified_expression . 53)(selected_component . 54)(subtype_indication . 872))
-      ((aggregate . 149)(attribute_reference . 50)(discrete_subtype_definition . 871)(factor . 151)(name . 863)(primary . 155)(qualified_expression . 53)(range . 756)(selected_component . 54)(simple_expression . 757)(subtype_indication . 758)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((attribute_reference . 50)(name . 869)(qualified_expression . 53)(selected_component . 54))
-      ((aggregate . 149)(attribute_reference . 50)(choice_expression . 173)(choice_relation_and_list . 174)(choice_relation_or_list . 175)(choice_relation_xor_list . 176)(choice_relation_and_then_list . 177)(choice_relation_or_else_list . 178)(choice_relation . 179)(discrete_choice . 180)(discrete_choice_list . 867)(factor . 151)(name . 184)(primary . 155)(qualified_expression . 53)(range . 185)(selected_component . 54)(simple_expression . 454)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((elsif_expression_item . 878)(elsif_expression_list . 879))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 875)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((attribute_reference . 50)(name . 731)(qualified_expression . 53)(selected_component . 54)(subtype_indication . 874))
+      ((aggregate . 150)(attribute_reference . 50)(discrete_subtype_definition . 873)(factor . 152)(name . 865)(primary . 156)(qualified_expression . 53)(range . 758)(selected_component . 54)(simple_expression . 759)(subtype_indication . 760)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((attribute_reference . 50)(name . 871)(qualified_expression . 53)(selected_component . 54))
+      ((aggregate . 150)(attribute_reference . 50)(choice_expression . 174)(choice_relation_and_list . 175)(choice_relation_or_list . 176)(choice_relation_xor_list . 177)(choice_relation_and_then_list . 178)(choice_relation_or_else_list . 179)(choice_relation . 180)(discrete_choice . 181)(discrete_choice_list . 869)(factor . 152)(name . 185)(primary . 156)(qualified_expression . 53)(range . 186)(selected_component . 54)(simple_expression . 456)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
-      ((actual_parameter_part . 90))
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(discrete_subtype_definition . 862)(factor . 151)(identifier_list . 211)(name . 863)(parameter_specification . 212)(parameter_specification_list . 213)(primary . 155)(qualified_expression . 53)(range . 756)(selected_component . 54)(simple_expression . 757)(subtype_indication . 758)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(discrete_subtype_definition . 864)(factor . 152)(identifier_list . 213)(name . 865)(parameter_specification . 214)(parameter_specification_list . 215)(primary . 156)(qualified_expression . 53)(range . 758)(selected_component . 54)(simple_expression . 759)(subtype_indication . 760)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aspect_specification_opt . 863))
+      ((aspect_specification_opt . 862))
       ((aspect_specification_opt . 861))
       ((aspect_specification_opt . 860))
-      ((aspect_specification_opt . 859))
-      ((aspect_specification_opt . 858))
       nil
-      ((access_definition . 855)(array_type_definition . 856)(attribute_reference . 50)(name . 729)(null_exclusion_opt . 209)(qualified_expression . 53)(selected_component . 54)(subtype_indication . 857))
+      ((access_definition . 857)(array_type_definition . 858)(attribute_reference . 50)(name . 731)(null_exclusion_opt . 211)(qualified_expression . 53)(selected_component . 54)(subtype_indication . 859))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 853)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((attribute_reference . 50)(name . 710)(name_opt . 852)(qualified_expression . 53)(selected_component . 54))
-      ((abstract_limited_synchronized_opt . 842)(abstract_limited_opt . 843)(abstract_tagged_limited_opt . 844)(access_definition . 845)(array_type_definition . 846)(derived_type_definition . 847)(enumeration_type_definition . 848)(interface_type_definition . 849)(null_exclusion_opt . 209)(record_type_definition . 850)(type_definition . 851))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 855)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((attribute_reference . 50)(name . 209)(name_opt . 854)(qualified_expression . 53)(selected_component . 54))
+      ((abstract_limited_synchronized_opt . 844)(abstract_limited_opt . 845)(abstract_tagged_limited_opt . 846)(access_definition . 847)(array_type_definition . 848)(derived_type_definition . 849)(enumeration_type_definition . 850)(interface_type_definition . 851)(null_exclusion_opt . 211)(record_type_definition . 852)(type_definition . 853))
       nil
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 830)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_definition . 831)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 832)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_definition . 833)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
       nil
-      ((aspect_specification_opt . 827))
+      ((aspect_specification_opt . 829))
       nil
-      ((actual_parameter_part . 90)(constraint . 797)(index_constraint . 798))
-      ((aspect_specification_opt . 824))
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 822)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_definition . 823)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
+      ((actual_parameter_part . 90)(constraint . 799)(index_constraint . 800))
+      ((aspect_specification_opt . 826))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 824)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_definition . 825)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
       nil
-      ((aspect_specification_opt . 819))
+      ((aspect_specification_opt . 821))
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 816)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((mod_clause_opt . 815))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 818)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((mod_clause_opt . 817))
       nil
       nil
       ((actual_parameter_part . 90))
-      ((attribute_reference . 50)(name . 810)(qualified_expression . 53)(selected_component . 54))
-      ((attribute_reference . 50)(name . 809)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 812)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 811)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 807)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 806)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((attribute_reference . 50)(name . 552)(qualified_expression . 53)(selected_component . 805))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 809)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 808)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((attribute_reference . 50)(name . 554)(qualified_expression . 53)(selected_component . 807))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(name . 152)(primary . 283)(qualified_expression . 53)(selected_component . 54))
+      ((aggregate . 150)(attribute_reference . 50)(name . 153)(primary . 285)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
       nil
-      ((actual_parameter_part . 90)(constraint . 797)(index_constraint . 798))
+      ((actual_parameter_part . 90)(constraint . 799)(index_constraint . 800))
       nil
       nil
       nil
       nil
       nil
-      ((attribute_reference . 50)(interface_list . 793)(name . 790)(qualified_expression . 53)(selected_component . 54))
-      ((attribute_reference . 50)(interface_list . 792)(name . 790)(qualified_expression . 53)(selected_component . 54))
-      ((attribute_reference . 50)(interface_list . 791)(name . 790)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(interface_list . 795)(name . 792)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(interface_list . 794)(name . 792)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(interface_list . 793)(name . 792)(qualified_expression . 53)(selected_component . 54))
       nil
-      ((attribute_reference . 50)(interface_list . 789)(name . 790)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(interface_list . 791)(name . 792)(qualified_expression . 53)(selected_component . 54))
       ((actual_parameter_part . 90))
       nil
       nil
-      ((aggregate . 149)(association_opt . 171)(association_list . 188)(attribute_reference . 50)(choice_expression . 173)(choice_relation_and_list . 174)(choice_relation_or_list . 175)(choice_relation_xor_list . 176)(choice_relation_and_then_list . 177)(choice_relation_or_else_list . 178)(choice_relation . 179)(discrete_choice . 180)(discrete_choice_list . 181)(expression . 182)(expression_opt . 183)(factor . 151)(name . 184)(primary . 155)(qualified_expression . 53)(range . 189)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 186)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aspect_specification_opt . 785))
+      ((aggregate . 150)(association_opt . 172)(association_list . 189)(attribute_reference . 50)(choice_expression . 174)(choice_relation_and_list . 175)(choice_relation_or_list . 176)(choice_relation_xor_list . 177)(choice_relation_and_then_list . 178)(choice_relation_or_else_list . 179)(choice_relation . 180)(discrete_choice . 181)(discrete_choice_list . 182)(expression . 183)(expression_opt . 184)(factor . 152)(name . 185)(primary . 156)(qualified_expression . 53)(range . 190)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 187)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aspect_specification_opt . 787))
       nil
-      ((aspect_specification_opt . 784))
+      ((aspect_specification_opt . 786))
       nil
-      ((identifier_list . 211)(parameter_specification . 212)(parameter_specification_list . 213))
+      ((identifier_list . 213)(parameter_specification . 214)(parameter_specification_list . 215))
       nil
       nil
       nil
-      ((attribute_reference . 50)(name . 782)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 784)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((attribute_reference . 50)(interface_list . 1047)(name . 790)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(interface_list . 1049)(name . 792)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       ((actual_parameter_part . 90))
       nil
       nil
       nil
-      ((aggregate . 149)(association_opt . 171)(association_list . 188)(attribute_reference . 50)(choice_expression . 173)(choice_relation_and_list . 174)(choice_relation_or_list . 175)(choice_relation_xor_list . 176)(choice_relation_and_then_list . 177)(choice_relation_or_else_list . 178)(choice_relation . 179)(discrete_choice . 180)(discrete_choice_list . 181)(discrete_subtype_definition . 751)(discrete_subtype_definition_list . 1043)(expression . 182)(expression_opt . 183)(factor . 151)(name . 863)(primary . 155)(qualified_expression . 53)(range . 1044)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 186)(subtype_indication . 758)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 184)(primary . 155)(qualified_expression . 53)(range . 1019)(selected_component . 54)(simple_expression . 757)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(association_opt . 172)(association_list . 189)(attribute_reference . 50)(choice_expression . 174)(choice_relation_and_list . 175)(choice_relation_or_list . 176)(choice_relation_xor_list . 177)(choice_relation_and_then_list . 178)(choice_relation_or_else_list . 179)(choice_relation . 180)(discrete_choice . 181)(discrete_choice_list . 182)(discrete_subtype_definition . 753)(discrete_subtype_definition_list . 1045)(expression . 183)(expression_opt . 184)(factor . 152)(name . 865)(primary . 156)(qualified_expression . 53)(range . 1046)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 187)(subtype_indication . 760)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 185)(primary . 156)(qualified_expression . 53)(range . 1021)(selected_component . 54)(simple_expression . 759)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
-      ((attribute_reference . 50)(index_subtype_definition . 1039)(name . 1040)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(index_subtype_definition . 1041)(name . 1042)(qualified_expression . 53)(selected_component . 54))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(discrete_subtype_definition . 1037)(factor . 151)(name . 863)(primary . 155)(qualified_expression . 53)(range . 756)(selected_component . 54)(simple_expression . 757)(subtype_indication . 758)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(discrete_subtype_definition . 1039)(factor . 152)(name . 865)(primary . 156)(qualified_expression . 53)(range . 758)(selected_component . 54)(simple_expression . 759)(subtype_indication . 760)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((attribute_reference . 50)(name . 1018)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 1020)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
       nil
       nil
-      ((actual_parameter_part . 90)(aspect_specification_opt . 1035))
-      ((actual_parameter_part . 90)(aspect_specification_opt . 1034))
-      ((attribute_reference . 50)(name . 1033)(qualified_expression . 53)(selected_component . 54))
+      ((actual_parameter_part . 90)(aspect_specification_opt . 1037))
+      ((actual_parameter_part . 90)(aspect_specification_opt . 1036))
+      ((attribute_reference . 50)(name . 1035)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
-      ((component_clause . 1030)(component_clause_list . 1031))
+      ((component_clause . 1032)(component_clause_list . 1033))
       nil
       nil
-      ((aspect_specification_opt . 1027))
+      ((aspect_specification_opt . 1029))
       nil
-      ((aspect_specification_opt . 1025))
-      ((attribute_reference . 50)(interface_list . 1024)(name . 790)(qualified_expression . 53)(selected_component . 54))
+      ((aspect_specification_opt . 1027))
+      ((attribute_reference . 50)(interface_list . 1026)(name . 792)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 184)(primary . 155)(qualified_expression . 53)(range . 1019)(selected_component . 54)(simple_expression . 757)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((attribute_reference . 50)(name . 1018)(qualified_expression . 53)(selected_component . 54))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 185)(primary . 156)(qualified_expression . 53)(range . 1021)(selected_component . 54)(simple_expression . 759)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((attribute_reference . 50)(name . 1020)(qualified_expression . 53)(selected_component . 54))
       nil
-      ((aspect_specification_opt . 1015))
-      ((attribute_reference . 50)(interface_list . 1014)(name . 790)(qualified_expression . 53)(selected_component . 54))
+      ((aspect_specification_opt . 1017))
+      ((attribute_reference . 50)(interface_list . 1016)(name . 792)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 1009)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 1008)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((enumeration_literal . 1006)(enumeration_literal_list . 1007))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 1011)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 1010)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((enumeration_literal . 1008)(enumeration_literal_list . 1009))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 1003)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 1005)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 1001)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aspect_clause . 994)(at_clause . 294)(component_declaration . 995)(component_item . 996)(component_list . 997)(component_list_opt . 998)(enumeration_representation_clause . 301)(identifier_list . 999)(record_representation_clause . 324)(variant_part . 1000))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 1003)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aspect_clause . 996)(at_clause . 296)(component_declaration . 997)(component_item . 998)(component_list . 999)(component_list_opt . 1000)(enumeration_representation_clause . 303)(identifier_list . 1001)(record_representation_clause . 326)(variant_part . 1002))
       nil
       nil
       nil
-      ((record_definition . 988))
+      ((record_definition . 990))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((aspect_specification_opt . 986))
+      ((aspect_specification_opt . 988))
       nil
       nil
       nil
+      ((aspect_specification_opt . 985))
       ((aspect_specification_opt . 983))
       ((aspect_specification_opt . 981))
-      ((aspect_specification_opt . 979))
       nil
       nil
       nil
       nil
       nil
-      ((actual_parameter_part . 90)(constraint . 797)(index_constraint . 798))
-      ((attribute_reference . 50)(name . 710)(name_opt . 972)(qualified_expression . 53)(selected_component . 54))
+      ((actual_parameter_part . 90)(constraint . 799)(index_constraint . 800))
+      ((attribute_reference . 50)(name . 209)(name_opt . 974)(qualified_expression . 53)(selected_component . 54))
       nil
-      ((case_expression_alternative . 971))
+      ((case_expression_alternative . 973))
       nil
-      ((attribute_reference . 50)(name . 969)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 971)(qualified_expression . 53)(selected_component . 54))
       ((actual_parameter_part . 90))
-      ((aggregate . 149)(attribute_reference . 50)(discrete_subtype_definition . 968)(factor . 151)(name . 863)(primary . 155)(qualified_expression . 53)(range . 756)(selected_component . 54)(simple_expression . 757)(subtype_indication . 758)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(discrete_subtype_definition . 970)(factor . 152)(name . 865)(primary . 156)(qualified_expression . 53)(range . 758)(selected_component . 54)(simple_expression . 759)(subtype_indication . 760)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 966)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 965)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 968)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 967)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((elsif_expression_item . 964))
-      ((aspect_clause . 955)(at_clause . 294)(entry_body . 956)(enumeration_representation_clause . 301)(overriding_indicator_opt . 957)(procedure_specification . 31)(protected_operation_item . 958)(protected_operation_item_list . 959)(protected_operation_item_list_opt . 960)(record_representation_clause . 324)(subprogram_body . 961)(subprogram_declaration . 962))
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 953)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
+      ((elsif_expression_item . 966))
+      ((aspect_clause . 957)(at_clause . 296)(entry_body . 958)(enumeration_representation_clause . 303)(overriding_indicator_opt . 959)(procedure_specification . 31)(protected_operation_item . 960)(protected_operation_item_list . 961)(protected_operation_item_list_opt . 962)(record_representation_clause . 326)(subprogram_body . 963)(subprogram_declaration . 964))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 955)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
       nil
-      ((aggregate . 149)(association_opt . 171)(association_list . 188)(attribute_reference . 50)(choice_expression . 173)(choice_relation_and_list . 174)(choice_relation_or_list . 175)(choice_relation_xor_list . 176)(choice_relation_and_then_list . 177)(choice_relation_or_else_list . 178)(choice_relation . 179)(discrete_choice . 180)(discrete_choice_list . 181)(expression . 182)(expression_opt . 183)(factor . 151)(name . 184)(primary . 155)(qualified_expression . 53)(range . 185)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 186)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(association_opt . 172)(association_list . 189)(attribute_reference . 50)(choice_expression . 174)(choice_relation_and_list . 175)(choice_relation_or_list . 176)(choice_relation_xor_list . 177)(choice_relation_and_then_list . 178)(choice_relation_or_else_list . 179)(choice_relation . 180)(discrete_choice . 181)(discrete_choice_list . 182)(expression . 183)(expression_opt . 184)(factor . 152)(name . 185)(primary . 156)(qualified_expression . 53)(range . 186)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 187)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((formal_part . 115)(parameter_profile_opt . 952))
+      ((formal_part . 115)(parameter_profile_opt . 954))
       nil
-      ((identifier_opt . 951))
-      ((case_statement_alternative . 949)(case_statement_alternative_list . 950))
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(handled_sequence_of_statements . 947)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 645)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((identifier_opt . 953))
+      ((case_statement_alternative . 951)(case_statement_alternative_list . 952))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(handled_sequence_of_statements . 949)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 648)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 182)(expression_opt . 945)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 183)(expression_opt . 947)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 944)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 946)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 942)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 944)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(handled_sequence_of_statements . 940)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 645)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(handled_sequence_of_statements . 942)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 648)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
       nil
-      ((aliased_opt . 939))
+      ((aliased_opt . 941))
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 937)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 939)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
-      ((accept_statement . 664)(delay_alternative . 665)(delay_statement . 933)(select_alternative . 935))
+      ((accept_statement . 667)(delay_alternative . 668)(delay_statement . 935)(select_alternative . 937))
       nil
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 934)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
-      ((delay_alternative . 932)(delay_statement . 933))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 936)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
+      ((delay_alternative . 934)(delay_statement . 935))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((attribute_reference . 50)(exception_choice . 925)(exception_choice_list . 926)(name . 927)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(exception_choice . 927)(exception_choice_list . 928)(name . 929)(qualified_expression . 53)(selected_component . 54))
       nil
-      ((exception_handler . 922))
+      ((exception_handler . 924))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((accept_statement . 1146)(delay_alternative . 1147)(delay_statement . 933))
+      ((accept_statement . 1148)(delay_alternative . 1149)(delay_statement . 935))
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 1143)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 1145)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
       nil
       nil
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 1139)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
-      ((constant_opt . 1138))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 1141)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
+      ((constant_opt . 1140))
       nil
       nil
       nil
-      ((identifier_opt . 1134))
-      ((elsif_statement_item . 1132)(elsif_statement_list . 1133))
+      ((identifier_opt . 1136))
+      ((elsif_statement_item . 1134)(elsif_statement_list . 1135))
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(choice_expression . 173)(choice_relation_and_list . 174)(choice_relation_or_list . 175)(choice_relation_xor_list . 176)(choice_relation_and_then_list . 177)(choice_relation_or_else_list . 178)(choice_relation . 179)(discrete_choice . 180)(discrete_choice_list . 1126)(factor . 151)(name . 184)(primary . 155)(qualified_expression . 53)(range . 185)(selected_component . 54)(simple_expression . 454)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(choice_expression . 174)(choice_relation_and_list . 175)(choice_relation_or_list . 176)(choice_relation_xor_list . 177)(choice_relation_and_then_list . 178)(choice_relation_or_else_list . 179)(choice_relation . 180)(discrete_choice . 181)(discrete_choice_list . 1128)(factor . 152)(name . 185)(primary . 156)(qualified_expression . 53)(range . 186)(selected_component . 54)(simple_expression . 456)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((case_statement_alternative . 1125))
+      ((case_statement_alternative . 1127))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((procedure_specification . 31)(subprogram_specification . 1118))
+      ((procedure_specification . 31)(subprogram_specification . 1120))
       nil
-      ((aspect_clause . 955)(at_clause . 294)(entry_body . 956)(enumeration_representation_clause . 301)(overriding_indicator_opt . 957)(procedure_specification . 31)(protected_operation_item . 1117)(record_representation_clause . 324)(subprogram_body . 961)(subprogram_declaration . 962))
+      ((aspect_clause . 957)(at_clause . 296)(entry_body . 958)(enumeration_representation_clause . 303)(overriding_indicator_opt . 959)(procedure_specification . 31)(protected_operation_item . 1119)(record_representation_clause . 326)(subprogram_body . 963)(subprogram_declaration . 964))
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 1115)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 1117)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
-      ((attribute_reference . 50)(name . 1113)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 1115)(qualified_expression . 53)(selected_component . 54))
       nil
       ((actual_parameter_part . 90))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 1111)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 1113)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
-      ((formal_part . 115)(parameter_profile_opt . 1109))
+      ((formal_part . 115)(parameter_profile_opt . 1111))
       nil
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 1108)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 1110)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 1106)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 1108)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 1104)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 1106)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((attribute_reference . 50)(name . 1018)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 1020)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
-      ((aspect_specification_opt . 1101))
+      ((aspect_specification_opt . 1103))
       nil
-      ((attribute_reference . 50)(name . 1100)(qualified_expression . 53)(selected_component . 54))
-      ((attribute_reference . 50)(name . 729)(qualified_expression . 53)(selected_component . 54)(subtype_indication . 1099))
+      ((attribute_reference . 50)(name . 1102)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 731)(qualified_expression . 53)(selected_component . 54)(subtype_indication . 1101))
       nil
-      ((direct_name . 1098))
+      ((direct_name . 1100))
       nil
       nil
       nil
       nil
-      ((aspect_clause . 994)(at_clause . 294)(component_declaration . 995)(component_item . 1093)(enumeration_representation_clause . 301)(identifier_list . 999)(record_representation_clause . 324)(variant_part . 1094))
+      ((aspect_clause . 996)(at_clause . 296)(component_declaration . 997)(component_item . 1095)(enumeration_representation_clause . 303)(identifier_list . 1001)(record_representation_clause . 326)(variant_part . 1096))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((real_range_specification_opt . 1087))
-      ((real_range_specification_opt . 1086))
+      ((real_range_specification_opt . 1089))
+      ((real_range_specification_opt . 1088))
       nil
       nil
-      ((identifier_opt . 1083))
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 1082)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
+      ((identifier_opt . 1085))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 1084)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
       nil
       nil
       nil
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 830)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_definition . 1079)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
-      ((actual_parameter_part . 90)(constraint . 1077)(index_constraint . 798))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 832)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_definition . 1081)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
+      ((actual_parameter_part . 90)(constraint . 1079)(index_constraint . 800))
       nil
       nil
       nil
-      ((identifier_opt . 1076))
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 1075)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
+      ((identifier_opt . 1078))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 1077)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
       nil
       nil
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 822)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_definition . 1072)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 824)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_definition . 1074)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
       nil
       nil
       nil
       nil
-      ((component_clause . 1068))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 1066)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((actual_parameter_part . 90)(aspect_specification_opt . 1065))
+      ((component_clause . 1070))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 1068)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((actual_parameter_part . 90)(aspect_specification_opt . 1067))
       nil
       nil
-      ((access_definition . 1059)(attribute_reference . 50)(component_definition . 1062)(name . 729)(null_exclusion_opt . 209)(qualified_expression . 53)(selected_component . 54)(subtype_indication . 1061))
+      ((access_definition . 1061)(attribute_reference . 50)(component_definition . 1064)(name . 731)(null_exclusion_opt . 211)(qualified_expression . 53)(selected_component . 54)(subtype_indication . 1063))
       nil
-      ((access_definition . 1059)(attribute_reference . 50)(component_definition . 1060)(name . 729)(null_exclusion_opt . 209)(qualified_expression . 53)(selected_component . 54)(subtype_indication . 1061))
+      ((access_definition . 1061)(attribute_reference . 50)(component_definition . 1062)(name . 731)(null_exclusion_opt . 211)(qualified_expression . 53)(selected_component . 54)(subtype_indication . 1063))
       nil
       ((actual_parameter_part . 90))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(name . 152)(primary . 283)(qualified_expression . 53)(selected_component . 54))
+      ((aggregate . 150)(attribute_reference . 50)(name . 153)(primary . 285)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
-      ((attribute_reference . 50)(name . 1054)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 1056)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 1052)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 1054)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       ((actual_parameter_part . 90))
       nil
-      ((attribute_reference . 50)(name . 1215)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 1217)(qualified_expression . 53)(selected_component . 54))
       nil
-      ((access_definition . 1213)(attribute_reference . 50)(name . 729)(null_exclusion_opt . 209)(qualified_expression . 53)(selected_component . 54)(subtype_indication . 1214))
+      ((access_definition . 1215)(attribute_reference . 50)(name . 731)(null_exclusion_opt . 211)(qualified_expression . 53)(selected_component . 54)(subtype_indication . 1216))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 1209)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 1211)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((attribute_reference . 50)(interface_list . 1208)(name . 790)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(interface_list . 1210)(name . 792)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 822)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_definition . 1206)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 824)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_definition . 1208)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
       nil
       nil
       nil
-      ((attribute_reference . 50)(interface_list . 1204)(name . 790)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(interface_list . 1206)(name . 792)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 830)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_definition . 1202)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 832)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_definition . 1204)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 1200)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 1199)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 1202)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 1201)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
-      ((enumeration_literal . 1198))
+      ((enumeration_literal . 1200))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 1197)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((access_definition . 1059)(attribute_reference . 50)(component_definition . 1196)(name . 729)(null_exclusion_opt . 209)(qualified_expression . 53)(selected_component . 54)(subtype_indication . 1061))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 1199)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((access_definition . 1061)(attribute_reference . 50)(component_definition . 1198)(name . 731)(null_exclusion_opt . 211)(qualified_expression . 53)(selected_component . 54)(subtype_indication . 1063))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((and_interface_list_opt . 1193))
-      ((actual_parameter_part . 90)(and_interface_list_opt . 1190)(constraint . 1191)(constraint_opt . 1192)(index_constraint . 798))
+      ((and_interface_list_opt . 1195))
+      ((actual_parameter_part . 90)(and_interface_list_opt . 1192)(constraint . 1193)(constraint_opt . 1194)(index_constraint . 800))
       nil
       nil
       nil
-      ((aspect_specification_opt . 1187))
+      ((aspect_specification_opt . 1189))
       nil
-      ((aspect_specification_opt . 1186))
+      ((aspect_specification_opt . 1188))
       nil
-      ((aspect_specification_opt . 1185))
-      ((aspect_specification_opt . 1184))
+      ((aspect_specification_opt . 1187))
+      ((aspect_specification_opt . 1186))
       nil
       nil
-      ((attribute_reference . 50)(name . 1183)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(name . 1185)(qualified_expression . 53)(selected_component . 54))
       ((actual_parameter_part . 90))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 1182)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 1184)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((identifier_opt . 1181))
+      ((identifier_opt . 1183))
       nil
-      ((aspect_specification_opt . 128))
-      ((entry_body_formal_part . 1179)(formal_part . 115)(parameter_profile_opt . 1180))
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(handled_sequence_of_statements . 1177)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 645)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((aspect_specification_opt . 127))
+      ((entry_body_formal_part . 1181)(formal_part . 115)(parameter_profile_opt . 1182))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(handled_sequence_of_statements . 1179)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 648)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(handled_sequence_of_statements . 1176)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 645)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(handled_sequence_of_statements . 1178)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 648)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
       nil
       nil
       nil
-      ((identifier_opt . 1173))
+      ((identifier_opt . 1175))
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 1172)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 182)(expression_opt . 1171)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 1174)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 183)(expression_opt . 1173)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
-      ((elsif_statement_item . 1169))
+      ((elsif_statement_item . 1171))
       nil
       nil
       nil
       nil
-      ((access_definition . 1162)(attribute_reference . 50)(name . 729)(null_exclusion_opt . 209)(qualified_expression . 53)(return_subtype_indication . 1163)(selected_component . 54)(subtype_indication . 1164))
+      ((access_definition . 1164)(attribute_reference . 50)(name . 731)(null_exclusion_opt . 211)(qualified_expression . 53)(return_subtype_indication . 1165)(selected_component . 54)(subtype_indication . 1166))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 1156)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 1158)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
-      ((identifier_opt . 1155))
-      ((attribute_reference . 50)(exception_choice . 1154)(name . 927)(qualified_expression . 53)(selected_component . 54))
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 1153)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
-      ((attribute_reference . 50)(exception_choice . 925)(exception_choice_list . 1152)(name . 927)(qualified_expression . 53)(selected_component . 54))
+      ((identifier_opt . 1157))
+      ((attribute_reference . 50)(exception_choice . 1156)(name . 929)(qualified_expression . 53)(selected_component . 54))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 1155)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
+      ((attribute_reference . 50)(exception_choice . 927)(exception_choice_list . 1154)(name . 929)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 1250)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 1252)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 1244)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 1246)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
       nil
       nil
-      ((identifier_list . 211)(parameter_specification . 212)(parameter_specification_list . 213))
+      ((identifier_list . 213)(parameter_specification . 214)(parameter_specification_list . 215))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((attribute_reference . 50)(interface_list . 1233)(name . 790)(qualified_expression . 53)(selected_component . 54))
+      ((attribute_reference . 50)(interface_list . 1235)(name . 792)(qualified_expression . 53)(selected_component . 54))
       nil
       nil
       nil
       nil
-      ((variant_list . 1229)(variant . 1230))
+      ((variant_list . 1231)(variant . 1232))
       nil
-      ((aspect_specification_opt . 1227))
+      ((aspect_specification_opt . 1229))
       nil
       nil
       nil
-      ((real_range_specification_opt . 1224))
-      ((identifier_opt . 1223))
+      ((real_range_specification_opt . 1226))
+      ((identifier_opt . 1225))
       nil
       nil
       nil
-      ((identifier_opt . 1220))
+      ((identifier_opt . 1222))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((actual_parameter_part . 90)(constraint . 1077)(index_constraint . 798))
+      ((actual_parameter_part . 90)(constraint . 1079)(index_constraint . 800))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 1280)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 822)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_definition . 1279)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 1282)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 824)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_definition . 1281)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
       nil
       nil
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 830)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_definition . 1278)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 832)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_definition . 1280)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 1277)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((aggregate . 149)(attribute_reference . 50)(expression . 1276)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 1279)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 1278)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((aggregate . 149)(attribute_reference . 50)(choice_expression . 173)(choice_relation_and_list . 174)(choice_relation_or_list . 175)(choice_relation_xor_list . 176)(choice_relation_and_then_list . 177)(choice_relation_or_else_list . 178)(choice_relation . 179)(discrete_choice . 180)(discrete_choice_list . 1274)(factor . 151)(name . 184)(primary . 155)(qualified_expression . 53)(range . 185)(selected_component . 54)(simple_expression . 454)(term . 163)(term_list . 164)(unary_adding_operator . 165))
-      ((variant . 1273))
+      ((aggregate . 150)(attribute_reference . 50)(choice_expression . 174)(choice_relation_and_list . 175)(choice_relation_or_list . 176)(choice_relation_xor_list . 177)(choice_relation_and_then_list . 178)(choice_relation_or_else_list . 179)(choice_relation . 180)(discrete_choice . 181)(discrete_choice_list . 1276)(factor . 152)(name . 185)(primary . 156)(qualified_expression . 53)(range . 186)(selected_component . 54)(simple_expression . 456)(term . 164)(term_list . 165)(unary_adding_operator . 166))
+      ((variant . 1275))
       nil
       nil
-      ((record_definition . 1270))
+      ((record_definition . 1272))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 182)(expression_opt . 1269)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 183)(expression_opt . 1271)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
-      ((identifier_opt . 1267))
-      ((identifier_opt . 1266))
+      ((identifier_opt . 1269))
+      ((identifier_opt . 1268))
       nil
       nil
       nil
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 1264)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 1266)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(expression . 1261)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(relation_and_list . 156)(relation_and_then_list . 157)(relation_or_list . 158)(relation_or_else_list . 159)(relation_xor_list . 160)(relation . 161)(selected_component . 54)(simple_expression . 162)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(expression . 1263)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(relation_and_list . 157)(relation_and_then_list . 158)(relation_or_list . 159)(relation_or_else_list . 160)(relation_xor_list . 161)(relation . 162)(selected_component . 54)(simple_expression . 163)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
       nil
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 1259)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 1261)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((aspect_specification_opt . 1287))
+      ((aspect_specification_opt . 1289))
       nil
       nil
       nil
       nil
-      ((aspect_specification_opt . 1284))
+      ((aspect_specification_opt . 1286))
       nil
       nil
       nil
       nil
-      ((aggregate . 149)(attribute_reference . 50)(factor . 151)(name . 152)(primary . 155)(qualified_expression . 53)(selected_component . 54)(simple_expression . 1301)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((aggregate . 150)(attribute_reference . 50)(factor . 152)(name . 153)(primary . 156)(qualified_expression . 53)(selected_component . 54)(simple_expression . 1303)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
-      ((aspect_clause . 994)(at_clause . 294)(component_declaration . 995)(component_item . 996)(component_list . 1299)(enumeration_representation_clause . 301)(identifier_list . 999)(record_representation_clause . 324)(variant_part . 1000))
+      ((aspect_clause . 996)(at_clause . 296)(component_declaration . 997)(component_item . 998)(component_list . 1301)(enumeration_representation_clause . 303)(identifier_list . 1001)(record_representation_clause . 326)(variant_part . 1002))
       nil
       nil
-      ((abstract_subprogram_declaration . 292)(aspect_clause . 293)(at_clause . 294)(body . 295)(body_stub . 296)(declaration . 297)(declarations . 298)(declarative_part_opt . 1296)(entry_declaration . 300)(enumeration_representation_clause . 301)(exception_declaration . 302)(full_type_declaration . 303)(generic_declaration . 304)(generic_formal_part . 17)(generic_instantiation . 305)(generic_package_declaration . 19)(generic_renaming_declaration . 306)(generic_subprogram_declaration . 21)(identifier_list . 307)(incomplete_type_declaration . 308)(null_procedure_declaration . 309)(object_declaration . 310)(object_renaming_declaration . 311)(overriding_indicator_opt . 312)(package_body . 313)(package_body_stub . 314)(package_declaration . 315)(package_renaming_declaration . 316)(package_specification . 29)(pragma . 317)(private_extension_declaration . 318)(private_type_declaration . 319)(procedure_specification . 31)(proper_body . 320)(protected_body . 321)(protected_body_stub . 322)(protected_type_declaration . 323)(record_representation_clause . 324)(renaming_declaration . 325)(single_protected_declaration . 326)(single_task_declaration . 327)(subprogram_body . 328)(subprogram_body_stub . 329)(subprogram_declaration . 330)(subprogram_renaming_declaration . 331)(subtype_declaration . 332)(task_body . 333)(task_body_stub . 334)(task_type_declaration . 335)(type_declaration . 336)(use_clause . 337))
-      ((aggregate . 149)(attribute_reference . 50)(discrete_subtype_definition . 1295)(factor . 151)(name . 863)(primary . 155)(qualified_expression . 53)(range . 756)(selected_component . 54)(simple_expression . 757)(subtype_indication . 758)(term . 163)(term_list . 164)(unary_adding_operator . 165))
+      ((abstract_subprogram_declaration . 294)(aspect_clause . 295)(at_clause . 296)(body . 297)(body_stub . 298)(declaration . 299)(declarations . 300)(declarative_part_opt . 1298)(entry_declaration . 302)(enumeration_representation_clause . 303)(exception_declaration . 304)(full_type_declaration . 305)(generic_declaration . 306)(generic_formal_part . 17)(generic_instantiation . 307)(generic_package_declaration . 19)(generic_renaming_declaration . 308)(generic_subprogram_declaration . 21)(identifier_list . 309)(incomplete_type_declaration . 310)(null_procedure_declaration . 311)(object_declaration . 312)(object_renaming_declaration . 313)(overriding_indicator_opt . 314)(package_body . 315)(package_body_stub . 316)(package_declaration . 317)(package_renaming_declaration . 318)(package_specification . 29)(pragma . 319)(private_extension_declaration . 320)(private_type_declaration . 321)(procedure_specification . 31)(proper_body . 322)(protected_body . 323)(protected_body_stub . 324)(protected_type_declaration . 325)(record_representation_clause . 326)(renaming_declaration . 327)(single_protected_declaration . 328)(single_task_declaration . 329)(subprogram_body . 330)(subprogram_body_stub . 331)(subprogram_declaration . 332)(subprogram_renaming_declaration . 333)(subtype_declaration . 334)(task_body . 335)(task_body_stub . 336)(task_type_declaration . 337)(type_declaration . 338)(use_clause . 339))
+      ((aggregate . 150)(attribute_reference . 50)(discrete_subtype_definition . 1297)(factor . 152)(name . 865)(primary . 156)(qualified_expression . 53)(range . 758)(selected_component . 54)(simple_expression . 759)(subtype_indication . 760)(term . 164)(term_list . 165)(unary_adding_operator . 166))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((aspect_clause . 994)(at_clause . 294)(component_declaration . 995)(component_item . 1093)(enumeration_representation_clause . 301)(identifier_list . 999)(record_representation_clause . 324)(variant_part . 1094))
+      ((aspect_clause . 996)(at_clause . 296)(component_declaration . 997)(component_item . 1095)(enumeration_representation_clause . 303)(identifier_list . 1001)(record_representation_clause . 326)(variant_part . 1096))
       nil
       nil
       nil
-      ((accept_statement . 623)(assignment_statement . 624)(asynchronous_select . 625)(attribute_reference . 50)(block_statement . 626)(case_statement . 627)(conditional_entry_call . 628)(delay_statement . 629)(exit_statement . 630)(extended_return_statement . 631)(handled_sequence_of_statements . 1306)(if_statement . 633)(iteration_scheme . 634)(label_opt . 635)(loop_statement . 636)(name . 637)(pragma . 638)(procedure_call_statement . 639)(qualified_expression . 53)(raise_statement . 640)(requeue_statement . 641)(selected_component . 54)(selective_accept . 642)(select_statement . 643)(sequence_of_statements . 644)(sequence_of_statements_opt . 645)(simple_return_statement . 646)(statement . 647)(timed_entry_call . 648))
-      ((formal_part . 115)(parameter_profile_opt . 1305))
+      ((accept_statement . 626)(assignment_statement . 627)(asynchronous_select . 628)(attribute_reference . 50)(block_statement . 629)(case_statement . 630)(conditional_entry_call . 631)(delay_statement . 632)(exit_statement . 633)(extended_return_statement . 634)(handled_sequence_of_statements . 1308)(if_statement . 636)(iteration_scheme . 637)(label_opt . 638)(loop_statement . 639)(name . 640)(pragma . 641)(procedure_call_statement . 642)(qualified_expression . 53)(raise_statement . 643)(requeue_statement . 644)(selected_component . 54)(selective_accept . 645)(select_statement . 646)(sequence_of_statements . 647)(sequence_of_statements_opt . 648)(simple_return_statement . 649)(statement . 650)(timed_entry_call . 651))
+      ((formal_part . 115)(parameter_profile_opt . 1307))
       nil
       nil
-      ((identifier_opt . 1308))
+      ((identifier_opt . 1310))
       nil
       nil]))
   "Parser table.")
index 4d6a71b43fdf78841e500d9c7c5cda86d7867b21..52f0fa6595b29bc2324389afa5bda891d9b51d25 100755 (executable)
@@ -5,8 +5,8 @@
 ;; Author: Stephen Leake <stephen_leake@member.fsf.org>
 ;; Maintainer: Stephen Leake <stephen_leake@member.fsf.org>
 ;; Keywords FIXME: languages, ada ELPA broken for multiple keywords
-;; Version: 5.1.2
-;; package-requires: ((wisi "1.0.3") (cl-lib "0.4") (emacs "24.2"))
+;; Version: 5.1.3
+;; package-requires: ((wisi "1.0.4") (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)
 (defun ada-mode-version ()
   "Return Ada mode version."
   (interactive)
-  (let ((version-string "5.1.2"))
+  (let ((version-string "5.1.3"))
     ;; must match:
     ;; ada-mode.texi
     ;; README
@@ -233,8 +233,8 @@ Function to call to adjust the case of Ada keywords."
 Global value is default for project variable `case_keyword'.
 Function to call to adjust the case of Ada keywords."
   :type '(choice (const ada-mixed-case)
-                (const downcase-word)
-                (const upcase-word))
+                (const downcase-region)
+                (const upcase-region))
   :group 'ada
   :safe  'functionp)
 (make-variable-buffer-local 'ada-case-identifier)
@@ -952,9 +952,17 @@ list."
            (car casing))
 
           (t
-           (error
-            "No exception file specified. See variable `ada-case-exception-file'")))
-         ))
+           (if ada-prj-current-file
+               (error "No exception file specified; set `casing' in project file.")
+             ;; IMPROVEME: could prompt, but then need to write to actual project file
+             ;;        (let ((temp
+             ;;               (read-file-name
+             ;;                "No exception file specified; adding to project. file: ")))
+             ;;          (message "remember to add %s to project file" temp)
+             ;;          (ada-prj-put 'casing temp)
+             ;;          temp)
+             (error "No exception file specified, and no project active. See variable `ada-case-exception-file'.")))
+          )))
 
   (unless word
     (if (use-region-p)
@@ -1099,25 +1107,30 @@ If IN-COMMENT is non-nil, adjust case of words in comments."
                 (not (ada-in-numeric-literal-p))
                 ))
 
-      (cond
-       ;; Some attributes are also keywords, but captialized as
-       ;; attributes. So check for attribute first.
-       ((and
-        (not in-comment)
-        (save-excursion
-          (skip-syntax-backward "w_")
-          (eq (char-before) ?')))
-       (ada-case-adjust-identifier))
-
-       ((and
-        (not in-comment)
-        (not (eq typed-char ?_))
-        (ada-after-keyword-p))
-       (funcall ada-case-keyword -1))
-
-       (t (ada-case-adjust-identifier))
-       ))
-    ))
+      ;; The indentation engine may trigger a reparse on
+      ;; non-whitespace changes, but we know we don't need to reparse
+      ;; for this change (assuming the user has not abused case
+      ;; exceptions!).
+      (let ((inhibit-modification-hooks t))
+       (cond
+        ;; Some attributes are also keywords, but captialized as
+        ;; attributes. So check for attribute first.
+        ((and
+          (not in-comment)
+          (save-excursion
+            (skip-syntax-backward "w_")
+            (eq (char-before) ?')))
+         (ada-case-adjust-identifier))
+
+        ((and
+          (not in-comment)
+          (not (eq typed-char ?_))
+          (ada-after-keyword-p))
+         (funcall ada-case-keyword -1))
+
+        (t (ada-case-adjust-identifier))
+        ))
+      )))
 
 (defun ada-case-adjust-at-point (&optional in-comment)
   "Adjust case of word at point, move to end of word.
@@ -1125,7 +1138,10 @@ With prefix arg, adjust case even if in comment."
   (interactive "P")
   (when
       (and (not (eobp))
-          (memq (char-syntax (char-after)) '(?w ?_)))
+          ;; we use '(syntax-after (point))' here, not '(char-syntax
+          ;; (char-after))', because the latter does not respect
+          ;; ada-syntax-propertize.
+          (memq (syntax-class (syntax-after (point))) '(2 3)))
     (skip-syntax-forward "w_"))
   (ada-case-adjust nil in-comment))
 
@@ -1612,41 +1628,40 @@ race conditions with the grammar parser.")
   "Assign `syntax-table' properties in accessible part of buffer.
 In particular, character constants are set to have string syntax."
   ;; (info "(elisp)Syntax Properties")
-  (let ((modified (buffer-modified-p))
-       (buffer-undo-list t)
-       (inhibit-read-only t)
-       (inhibit-point-motion-hooks t)
-       (inhibit-modification-hooks t))
+  ;;
+  ;; called from `syntax-propertize', inside save-excursion with-silent-modifications
+  (let ((inhibit-read-only t)
+       (inhibit-point-motion-hooks t))
     (goto-char start)
-    (while (re-search-forward
-           (concat
-            "[^a-zA-Z0-9)]\\('\\)[^'\n]\\('\\)"; 1, 2: character constants, not attributes
-            "\\|[^a-zA-Z0-9)]\\('''\\)"; 3: character constant '''
-            "\\|\\(--\\)"; 4: comment start
-            )
-           end t)
-      ;; The help for syntax-propertize-extend-region-functions
-      ;; implies that 'start end' will always include whole lines, in
-      ;; which case we don't need
-      ;; syntax-propertize-extend-region-functions
-      (cond
-       ((match-beginning 1)
-       (put-text-property
-        (match-beginning 1) (match-end 1) 'syntax-table '(7 . ?'))
-       (put-text-property
-        (match-beginning 2) (match-end 2) 'syntax-table '(7 . ?')))
-       ((match-beginning 3)
-       (put-text-property
-        (match-beginning 3) (1+ (match-beginning 3)) 'syntax-table '(7 . ?'))
-       (put-text-property
-        (1- (match-end 3)) (match-end 3) 'syntax-table '(7 . ?')))
-       ((match-beginning 4)
-       (put-text-property
-        (match-beginning 4) (match-end 4) 'syntax-table '(11 . nil)))
-       ))
-    (run-hook-with-args 'ada-syntax-propertize-hook start end)
-    (unless modified
-      (restore-buffer-modified-p nil))))
+    (save-match-data
+      (while (re-search-forward
+             (concat
+              "[^a-zA-Z0-9)]\\('\\)[^'\n]\\('\\)"; 1, 2: character literal, not attribute
+              "\\|[^a-zA-Z0-9)]\\('''\\)"; 3: character literal '''
+              "\\|\\(--\\)"; 4: comment start
+              )
+             end t)
+       ;; The help for syntax-propertize-extend-region-functions
+       ;; implies that 'start end' will always include whole lines, in
+       ;; which case we don't need
+       ;; syntax-propertize-extend-region-functions
+       (cond
+        ((match-beginning 1)
+         (put-text-property
+          (match-beginning 1) (match-end 1) 'syntax-table '(7 . ?'))
+         (put-text-property
+          (match-beginning 2) (match-end 2) 'syntax-table '(7 . ?')))
+        ((match-beginning 3)
+         (put-text-property
+          (match-beginning 3) (1+ (match-beginning 3)) 'syntax-table '(7 . ?'))
+         (put-text-property
+          (1- (match-end 3)) (match-end 3) 'syntax-table '(7 . ?')))
+        ((match-beginning 4)
+         (put-text-property
+          (match-beginning 4) (match-end 4) 'syntax-table '(11 . nil)))
+        )))
+    (run-hook-with-args 'ada-syntax-propertize-hook start end))
+  )
 
 (defun ada-in-comment-p (&optional parse-result)
   "Return t if inside a comment.
@@ -1822,8 +1837,10 @@ previously set by a file navigation command."
       ;; This will still be confused by multiple references; we need
       ;; to use compiler cross reference info for more precision.
       (while (not done)
-       (when (search-forward-regexp ff-function-name nil t)
-         (setq found (match-beginning 0)))
+       (if (search-forward-regexp ff-function-name nil t)
+           (setq found (match-beginning 0))
+         ;; not in remainder of buffer
+         (setq done t))
        (if (ada-in-string-or-comment-p)
            (setq found nil)
          (setq done t)))
@@ -1938,8 +1955,14 @@ identifier.  May be an Ada identifier or operator function name."
 FILE may be absolute, or on `compilation-search-path'.
 
 If OTHER-WINDOW is non-nil, show the buffer in another window."
-  (or (file-name-absolute-p file)
-      (setq file (ff-get-file-name compilation-search-path file)))
+  (let ((file-1
+        (if (file-name-absolute-p file) file
+          (ff-get-file-name compilation-search-path file))))
+    (if file-1
+       (setq file file-1)
+      (error "File %s not found; installed library, or set project?" file))
+    )
+
   (let ((buffer (get-file-buffer file)))
     (cond
      ((bufferp buffer)
@@ -1989,7 +2012,7 @@ If OTHER-WINDOW is non-nil, show the buffer in another window."
   "Function that returns cross reference information.
 Function is called with four arguments:
 - an Ada identifier or operator_symbol
-- filename containing the identifier
+- filename containing the identifier (full path)
 - line number containing the identifier
 - column of the start of the identifier
 Returns a list '(file line column) giving the corresponding location.
@@ -2011,7 +2034,7 @@ buffer in another window."
     (let ((target
           (funcall ada-xref-other-function
                    (ada-identifier-at-point)
-                   (file-name-nondirectory (buffer-file-name))
+                   (buffer-file-name)
                    (line-number-at-pos)
                    (1+ (current-column))
                    )))
@@ -2067,9 +2090,7 @@ identifier is declared or referenced.")
           (ada-identifier-at-point)
           (file-name-nondirectory (buffer-file-name))
           (line-number-at-pos)
-          (cl-case (char-after)
-            (?\" (+ 2 (current-column))) ;; FIXME: work around bug in gnat find
-            (t (1+ (current-column)))))
+          (1+ (current-column)))
   )
 
 (defvar ada-xref-overriding-function nil
@@ -2281,30 +2302,33 @@ into a subprogram body stub, by calling `ada-make-subprogram-body'."
     (error "`ada-make-subprogram-body' not set")))
 
 (defvar ada-make-package-body nil
-  ;; Supplied by compiler
+  ;; Supplied by xref tool
   "Function to create a package body from a package spec.
 Called with one argument; the absolute path to the body
 file. Current buffer is the package spec.  Should create the
 package body file, containing skeleton code that will compile.")
 
 (defun ada-make-package-body (body-file-name)
-  (if ada-make-package-body
-      (funcall ada-make-package-body body-file-name)
-    (error "`ada-make-package-body' not set")))
+  ;; no error if not set; let ada-skel do its thing.
+  (when ada-make-package-body
+      (funcall ada-make-package-body body-file-name)))
 
 (defun ada-ff-create-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)
-    (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.
-    (ff-find-the-other-file)
-    (revert-buffer t t)
+  ;; 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)
+
+      (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.
+      (ff-find-the-other-file)
+      (revert-buffer t t))
     ))
 
 ;;;; fill-comment
@@ -2613,6 +2637,9 @@ The paragraph is indented on the first line."
        ff-file-created-hook 'ada-ff-create-body)
   (add-hook 'ff-pre-load-hook 'ada-which-function)
   (setq ff-search-directories 'compilation-search-path)
+  (when (null (car compilation-search-path))
+    ;; find-file doesn't handle nil in search path
+    (setq compilation-search-path (list (file-name-directory (buffer-file-name)))))
   (ada-set-ff-special-constructs)
 
   (set (make-local-variable 'add-log-current-defun-function)
@@ -2700,15 +2727,16 @@ The paragraph is indented on the first line."
 (unless (featurep 'ada-indent-engine)
   (require 'ada-wisi))
 
-(unless (featurep 'ada-compiler)
-  (require 'ada-gnat-compile))
-
 (unless (featurep 'ada-xref-tool)
   (cl-case ada-xref-tool
     ((nil 'gnat) (require 'ada-gnat-xref))
     ('gnat_inspect (require 'gnat-inspect))
+    ('gpr_query (require 'gpr-query))
     ))
 
+(unless (featurep 'ada-compiler)
+  (require 'ada-gnat-compile))
+
 (unless (featurep 'ada-skeletons)
   (require 'ada-skel))
 
index ec4d58e6a2c2920b83140076dae4e0e66ce4ca3a..91db9d0c5d224f3127c49c835236f8f2a6f0c54a 100644 (file)
@@ -46,8 +46,8 @@ Copyright (C) 1999 - 2014 Free Software Foundation, Inc.
 * Moving Through Ada Code::     Moving easily through Ada sources
 * Identifier completion::       Finishing words automatically
 * Indentation::                 Indenting your code automatically as you type
-* Statement skeletons::
-* Aligning code::
+* Statement skeletons::         Some code is written for you
+* Aligning code::               Making it pretty
 * Automatic casing::            Adjusting the case of words automatically
 * Comment Handling::            Reformatting comments easily
 * Key summary::
@@ -129,18 +129,23 @@ tool 'gnatinspect', which supports Ada, C, C++, and any other language
 for which gcc provices the '-fdump-xref'.
 
    'gnatinspect' is distributed as part of 'gnatcoll'.  Ada mode
-requires the very latest version, in 'gnatcoll 1.7w' distributed with
-GNATPro 7.2.
+requires the very latest version, in 'gnatcoll 1.6' distributed with
+GNATPro 7.2.  'gnatcoll 1.6' must be compiled with GNATPro 7.2.
 
    To build 'gnatinspect', assuming gnat-7.2 is installed in
-'/usr/gnat-7.2':
+'/usr/gnat-7.2', and gnat-7.2 is in PATH:
 
-     tar xf ~/Downloads/gnatcoll-1.7w-src.tgz
-     cd gnatcoll-1.7w-src
+     tar xf ~/Downloads/gnatcoll-1.6-src.tgz
+     cd gnatcoll-1.6-src
      ./configure --prefix=/usr/gnat-7.2
      make Gnatcoll_Build=Debug
      sudo make Gnatcoll_Build=Debug install
 
+   To build an sqlite3 executable that is compatible with the database
+created by gnatinspect:
+
+     gcc -O2 -o sqlite3 shell.c sqlite3.c -ldl -lpthread
+
 \1f
 File: ada-mode.info,  Node: Upgrading,  Prev: gnatinspect,  Up: Installation
 
@@ -1339,10 +1344,12 @@ this is a convenient way to insert statements with correct indentation.
 
    For named statements (packages, loops, etc), the name is taken from
 the word before point, and the name of the statement from the word
-before that.  Some expansions prompt for more information, such as
-whether a spec or body is desired.  For example, 'package A_Package C-c
-C-e' first prompts for "body" or "spec".  If "spec" is selected, the
-following code is inserted:
+before that.
+
+   Some expansions prompt for more information, such as whether a spec
+or body is desired.  For example, 'package A_Package C-c C-e' first
+prompts for "body" or "spec".  If "spec" is selected, the following code
+is inserted:
 
      package A_Package is
      private
@@ -1359,6 +1366,16 @@ following code is inserted:
 
    Note that the order of the keyword 'declare' and the name 'A_Block'
 are reversed in the expansion; this may take some getting used to.
+Alternately, if no name is present in the buffer, you are prompted for a
+name: 'declare C-c C-e' first prompts for a name, then expands to the
+above.
+
+   The variable 'ada-skel-initial-string' defines what to insert in a
+newly created empty buffer.  It defaults to '{header}', which is a
+placeholder defined by 'ada-skel-header', which inserts a typical header
+with a copyright license (choice of GPL or restricted).  Users will
+typically want to override the definition of 'ada-skel-initial-string'
+and/or 'ada-skel-header', or provide more choices of copyright license.
 
 \1f
 File: ada-mode.info,  Node: Aligning code,  Next: Automatic casing,  Prev: Statement skeletons,  Up: Top
@@ -2395,46 +2412,46 @@ Index
 \1f
 Tag Table:
 Node: Top\7f945
-Node: Overview\7f2508
-Node: Installation\7f3719
-Node: gnatinspect\7f4533
-Node: Upgrading\7f5267
-Node: Customization\7f5841
-Node: Non-standard file names\7f6323
-Node: Other compiler\7f8164
-Node: Other cross-reference\7f8743
-Node: Other customization\7f9462
-Node: Compiling Executing\7f11932
-Node: Compile commands\7f12667
-Node: Compiling Examples\7f15405
-Node: No project files\7f16237
-Node: Set compiler options\7f21603
-Node: Set source search path\7f23565
-Node: Use GNAT project file\7f26018
-Node: Use multiple GNAT project files\7f28792
-Node: Use a Makefile\7f31512
-Node: Compiler errors\7f32827
-Node: Project files\7f33644
-Node: Project file overview\7f34671
-Node: Project file variables\7f36199
-Node: Moving Through Ada Code\7f39829
-Node: Identifier completion\7f42528
-Node: Indentation\7f43490
-Node: Statement skeletons\7f47542
-Node: Aligning code\7f48752
-Node: Automatic casing\7f49697
-Node: Comment Handling\7f52401
-Node: Key summary\7f52920
-Node: Developer overview\7f55547
-Node: Directory structure\7f55887
-Node: Package organization\7f59373
-Node: Ada mode\7f59608
-Node: gpr mode\7f61804
-Node: GNAT core\7f62087
-Node: Wisi\7f63033
-Node: OpenToken\7f64000
-Node: ELPA\7f64602
-Node: GNU Free Documentation License\7f65212
-Node: Index\7f90373
+Node: Overview\7f2576
+Node: Installation\7f3787
+Node: gnatinspect\7f4601
+Node: Upgrading\7f5562
+Node: Customization\7f6136
+Node: Non-standard file names\7f6618
+Node: Other compiler\7f8459
+Node: Other cross-reference\7f9038
+Node: Other customization\7f9757
+Node: Compiling Executing\7f12227
+Node: Compile commands\7f12962
+Node: Compiling Examples\7f15700
+Node: No project files\7f16532
+Node: Set compiler options\7f21898
+Node: Set source search path\7f23860
+Node: Use GNAT project file\7f26313
+Node: Use multiple GNAT project files\7f29087
+Node: Use a Makefile\7f31807
+Node: Compiler errors\7f33122
+Node: Project files\7f33939
+Node: Project file overview\7f34966
+Node: Project file variables\7f36494
+Node: Moving Through Ada Code\7f40124
+Node: Identifier completion\7f42823
+Node: Indentation\7f43785
+Node: Statement skeletons\7f47837
+Node: Aligning code\7f49622
+Node: Automatic casing\7f50567
+Node: Comment Handling\7f53271
+Node: Key summary\7f53790
+Node: Developer overview\7f56417
+Node: Directory structure\7f56757
+Node: Package organization\7f60243
+Node: Ada mode\7f60478
+Node: gpr mode\7f62674
+Node: GNAT core\7f62957
+Node: Wisi\7f63903
+Node: OpenToken\7f64870
+Node: ELPA\7f65472
+Node: GNU Free Documentation License\7f66082
+Node: Index\7f91243
 \1f
 End Tag Table
index 82e6678962853b0b064b4742066a519cfade81db..a6216c174252e89df640191948eb30d2ec8c3ec6 100755 (executable)
 
 ;;;;; user variables, example skeletons intended to be overwritten
 
-(defcustom ada-skel-initial-string "{header}"
+(defcustom ada-skel-initial-string
+  "{header}
+--  Emacs note: Type C-c C-e with point after the above placeholder
+--
+--  This text was inserted by ada-skel-initial-string;
+--  M-x customize-variable <RET> ada-skel-initial-string <RET>
+--  (info \"(ada-mode)Statement skeletons\")"
   "*String to insert in empty buffer.
 This could end in a token recognized by `ada-skel-expand'."
   :type 'string
@@ -150,7 +156,7 @@ This could end in a token recognized by `ada-skel-expand'."
   "is\n"
   "begin\n"
   _
-  "end " str ";")
+  "end " str ";" >)
 
 (define-skeleton ada-skel-function-spec
   "Insert a function type specification with name from `str'."
@@ -404,20 +410,27 @@ it is a name, and use the word before that as the token."
   (if old
       ;; hippie is asking us to try the "next" completion; we don't have one
       nil
-    (let ((pos (point)))
+    (let ((pos (point))
+         (undo-len (if (eq 't pending-undo-list)
+                       0
+                     (length pending-undo-list))))
       (undo-boundary)
       (condition-case nil
          (progn
            (ada-skel-expand)
            t)
        ('error
-        ;; undo ada-case-adjust, motion
-        (undo)
+        ;; undo hook action if any
+        (unless (or (eq 't pending-undo-list)
+                    (= undo-len (length pending-undo-list)))
+          (undo))
+
+        ;; undo motion
         (goto-char pos)
         nil)))))
 
 (defun ada-skel-setup ()
-  "Setup a buffer ada-skel."
+  "Setup a buffer for ada-skel."
   (add-hook 'skeleton-end-hook 'ada-indent-statement nil t)
   (when (and ada-skel-initial-string
             (= (buffer-size) 0))
index 0a00cff2649a4c420db3e123fe0e60407f917305..bb574925ec33f6e3495f2a0f9061819cb973c747 100755 (executable)
@@ -229,9 +229,9 @@ point must be on CACHE. PREV-TOKEN is the token before the one being indented."
         (aspect_specification_opt
          ;; test/aspects.ads:
          ;; type Vector is tagged private
-         ;;   with
-         ;;     Constant_Indexing => Constant_Reference,
-         ;;     Variable_Indexing => Reference,
+         ;; with
+         ;;   Constant_Indexing => Constant_Reference,
+         ;;   Variable_Indexing => Reference,
          ;; indenting 'Variable_Indexing'
          (+ (current-indentation) ada-indent-broken))
         ))
@@ -296,42 +296,28 @@ point must be on CACHE. PREV-TOKEN is the token before the one being indented."
        (close-paren (wisi-indent-paren 0))
 
        (name
-        (ada-wisi-indent-containing ada-indent-broken cache t))
+        (cl-case (wisi-cache-nonterm cache)
+          ((procedure_specification subprogram_specification)
+           ;; test/ada_mode-nominal.ads
+           ;; not
+           ;; overriding
+           ;; procedure
+           ;;   Procedure_1c (Item  : in out Parent_Type_1);
+           ;; indenting 'Procedure_1c'
+           ;;
+           ;; not overriding function
+           ;;   Function_2e (Param : in Parent_Type_1) return Float;
+           ;; indenting 'Function_2e'
+           (ada-wisi-indent-containing ada-indent-broken cache t))
 
-       (name-paren
-        (let ((containing (wisi-goto-containing cache)))
-          (cl-case (wisi-cache-class containing)
-            (open-paren
-             ;; test/ada_mode-slices.adb
-             ;; Put_Line(Day'Image(D1) & " - " & Day'Image(D2) & " = " &
-             ;;            Integer'Image(N));
-             ;;
-             ;; test/ada_mode-parens.adb
-             ;; return Float (
-             ;;               Integer'Value
-             ;; indenting 'Integer'
-             ;;
-             ;; We distinguish the two cases by going to the first token,
-             ;; and comparing point to pos-0.
-             (let ((paren-column (current-column)))
-               (wisi-forward-token t); "("
-               (forward-comment (point-max))
-               (if (= (point) pos-0)
-                   ;; 2)
-                   (1+ paren-column)
-                 ;; 1)
-                 (+ paren-column 1 ada-indent-broken))))
-
-            (list-break
-             (ada-wisi-indent-list-break containing prev-token))
+          (t
+           ;; defer to ada-wisi-after-cache, for consistency
+           nil)
+          ))
 
-            (t
-             ;; test/ada_mode-generic_instantiation.ads
-             ;;   procedure Procedure_6 is new
-             ;;     Instance.Generic_Procedure (Integer, Function_1);
-             ;; indenting 'Instance'; containing is 'new'
-             (ada-wisi-indent-cache ada-indent-broken containing))
-            )))
+       (name-paren
+        ;; defer to ada-wisi-after-cache, for consistency
+        nil)
 
        (open-paren
         (let ((containing (wisi-goto-containing cache)))
@@ -617,7 +603,7 @@ point must be on CACHE. PREV-TOKEN is the token before the one being indented."
                 ;; type Vector is tagged private
                 ;; with
                 ;; indenting 'with'
-                (+ (current-indentation) ada-indent-broken))
+                (current-indentation))
 
                (qualified_expression
                 ;; test/ada_mode-nominal-child.ads
@@ -650,6 +636,15 @@ point must be on CACHE. PREV-TOKEN is the token before the one being indented."
                   ((PROCEDURE FUNCTION)
                    ;; indenting 'procedure' or 'function following 'overriding'
                    (current-column))
+
+                  (WITH
+                   ;; indenting aspect specification on subprogram declaration
+                   ;; test/aspects.ads
+                   ;; procedure Foo (X : Integer;
+                   ;;                Y : out Integer)
+                   ;; with Pre => X > 10 and
+                   ;; indenting 'with'
+                   (current-column))
                   ))
 
                (subtype_declaration
@@ -684,28 +679,8 @@ point must be on CACHE. PREV-TOKEN is the token before the one being indented."
                  (ada-wisi-indent-list-break cache prev-token))
 
                 (statement-other
-                 (cl-case (wisi-cache-token containing-cache)
-                   (LEFT_PAREN
-                    ;; test/ada_mode-parens.adb
-                    ;; return Float (
-                    ;;               Integer'Value
-                    ;;   indenting 'Integer'
-                    (wisi-indent-paren 1))
-
-                   (EQUAL_GREATER
-                    ;; test/ada_mode-nested_packages.adb
-                    ;; exception
-                    ;;    when Io.Name_Error =>
-                    ;;       null;
-                    (ada-wisi-indent-containing ada-indent containing-cache t))
-
-                   (t
-                    ;; test/ada_mode-generic_instantiation.ads
-                    ;; procedure Procedure_6 is new
-                    ;;   Instance.Generic_Procedure (Integer, Function_1);
-                    ;;   indenting 'Instance'
-                    (ada-wisi-indent-containing ada-indent-broken cache t))
-                   ))
+                 ;; defer to ada-wisi-after-cache
+                 nil)
                 ))))
             ))
 
@@ -792,6 +767,11 @@ cached token, return new indentation for point."
         ;; raise Constraint_Error with Count'Image (Line (File)) &
         ;;    "foo";
         ;; indenting '"foo"'; relative to raise
+        ;;
+        ;; test/ada_mode-slices.adb
+        ;; Put_Line(Day'Image(D1) & " - " & Day'Image(D2) & " = " &
+        ;;            Integer'Image(N));
+        ;; indenting 'Integer'
         (when (memq (wisi-cache-nonterm cache)
                     '(actual_parameter_part attribute_designator))
           (setq cache (wisi-goto-containing cache)))
@@ -828,6 +808,10 @@ cached token, return new indentation for point."
         ;;    -- a comment between paren and first association
         ;;    1 =>
         ;;
+        ;; test/ada_mode-parens.adb
+        ;; return Float (
+        ;;               Integer'Value
+        ;; indenting 'Integer'
         (let ((paren-column (current-column))
               (start-is-comment (save-excursion (goto-char start) (looking-at comment-start-skip))))
           (wisi-forward-token t); point is now after paren
@@ -893,43 +877,91 @@ cached token, return new indentation for point."
            (ada-wisi-indent-cache ada-indent-broken cache))
 
           (EQUAL_GREATER
-           (cl-ecase (wisi-cache-nonterm (wisi-goto-containing cache nil))
-             ((actual_parameter_part aggregate)
-              ;; ada_mode-generic_package.ads
-              ;; with package A_Package_2 is new Ada.Text_IO.Integer_IO (Num =>
-              ;;                                                           Formal_Signed_Integer_Type);
-              ;;  indenting 'Formal_Signed_...', point on '(Num'
-              ;;
-              ;; test/ada_mode-parens.adb
-              ;; (1      =>
-              ;;    1,
-              ;; indenting '1,'; point on '(1'
-              (+ (current-column) 1 ada-indent-broken))
-
-             (association_list
-              ;; test/ada_mode-parens.adb
-              ;; (1      =>
-              ;;    1,
-              ;;  2      =>
-              ;;    1 + 2 * 3,
-              ;; indending 1 +; point is on ',' after 1
-              (wisi-indent-paren (1+ ada-indent-broken)))
-
-             ((case_expression_alternative case_statement_alternative exception_handler)
-              ;; containing is 'when'
-              (+ (current-column) ada-indent))
-
-             (generic_renaming_declaration
-              ;; not indenting keyword following 'generic'
-              (+ (current-column) ada-indent-broken))
+           (let ((cache-col (current-column))
+                 (cache-pos (point))
+                 (line-end-pos (line-end-position))
+                 (containing (wisi-goto-containing cache nil)))
+             (while (eq (wisi-cache-nonterm containing) 'association_list)
+               (setq containing (wisi-goto-containing containing nil)))
 
-             (primary
-              ;; test/ada_mode-quantified_expressions.adb
-              ;; if (for some J in 1 .. 10 =>
-              ;;       J/2 = 0)
-              (ada-wisi-indent-containing ada-indent-broken cache))
+             (cl-ecase (wisi-cache-nonterm containing)
+               ((actual_parameter_part aggregate)
+                ;; ada_mode-generic_package.ads
+                ;; with package A_Package_2 is new Ada.Text_IO.Integer_IO (Num =>
+                ;;                                                           Formal_Signed_Integer_Type);
+                ;;  indenting 'Formal_Signed_...', point on '(Num'
+                ;;
+                ;; test/ada_mode-parens.adb
+                ;; (1      =>
+                ;;    1,
+                ;;  2      =>
+                ;;    1 + 2 * 3,
+                ;; indenting '1,' or '1 +'; point on '(1'
+                (+ (current-column) 1 ada-indent-broken))
+
+               (aspect_specification_opt
+                ;; test/aspects.ads
+                ;; with Pre => X > 10 and
+                ;;             X < 50 and
+                ;;             F (X),
+                ;;   Post =>
+                ;;     Y >= X and
+                ;; indenting 'X < 50' or 'Y >= X'; cache is '=>', point is on '=>'
+                ;; or indenting 'Post =>'; cache is ',', point is on 'with'
+                (cl-ecase (wisi-cache-token cache)
+                  (COMMA
+                   (+ (current-indentation) ada-indent-broken))
 
-             ))
+                  (EQUAL_GREATER
+                   (if (= (+ 2 cache-pos) line-end-pos)
+                       ;;   Post =>
+                       ;;     Y >= X and
+                       (progn
+                         (goto-char cache-pos)
+                         (+ (current-indentation) ada-indent-broken))
+                     ;; with Pre => X > 10 and
+                     ;;             X < 50 and
+                     (+ 3 cache-col)))
+                  ))
+
+               (association_list
+                (cl-ecase (save-excursion (wisi-cache-token (wisi-goto-containing cache nil)))
+                  (COMMA
+                   (ada-wisi-indent-containing (* 2 ada-indent-broken) cache))
+                  ))
+
+               ((case_expression_alternative case_statement_alternative exception_handler)
+                ;; containing is 'when'
+                (+ (current-column) ada-indent))
+
+               (generic_renaming_declaration
+                ;; not indenting keyword following 'generic'
+                (+ (current-column) ada-indent-broken))
+
+               (primary
+                ;; test/ada_mode-quantified_expressions.adb
+                ;; if (for some J in 1 .. 10 =>
+                ;;       J/2 = 0)
+                (ada-wisi-indent-containing ada-indent-broken cache))
+
+
+               (select_alternative
+                ;; test/ada_mode-nominal.adb
+                ;; or when Started
+                ;;      =>
+                ;;       accept Finish;
+                ;; indenting 'accept'; point is on 'when'
+                (+ (current-column) ada-indent))
+
+               (variant
+                ;; test/generic_param.adb
+                ;; case Item_Type is
+                ;;    when Fix | Airport =>
+                ;;       null;
+                ;; indenting 'null'
+                (+ (current-column) ada-indent))
+
+               )))
 
           (IS
            (setq cache (wisi-goto-containing cache))
@@ -980,6 +1012,11 @@ cached token, return new indentation for point."
            ;; ada_mode-nominal.ads
            ;; type Limited_Derived_Type_2 is abstract limited new Private_Type_1 with
            ;;   private;
+           ;;
+           ;; test/ada_mode-generic_instantiation.ads
+           ;;   procedure Procedure_6 is new
+           ;;     Instance.Generic_Procedure (Integer, Function_1);
+           ;; indenting 'Instance'; containing is 'new'
            (ada-wisi-indent-containing ada-indent-broken cache))
 
           (WHEN
@@ -989,26 +1026,26 @@ cached token, return new indentation for point."
            (ada-wisi-indent-containing ada-indent-broken cache))
 
           (WITH
-           ;; extension aggregate: test/ada_mode-nominal-child.ads
-           ;;      (Default_Parent with
-           ;;       10, 12.0, True);
-           ;;   indenting '10'; containing is '('
-           ;;
-           ;; raise_statement: test/ada_mode-nominal.adb
-           ;; raise Constraint_Error with
-            ;;    "help!";
            (cl-case (wisi-cache-nonterm cache)
              (aggregate
+              ;; test/ada_mode-nominal-child.ads
+              ;;   (Default_Parent with
+              ;;    10, 12.0, True);
+              ;; indenting '10'; containing is '('
               (ada-wisi-indent-containing 0 cache nil))
 
              (aspect_specification_opt
+              ;; test/aspects.ads
               ;; type Vector is tagged private
-              ;;   with
-              ;;     Constant_Indexing => Constant_Reference,
-              ;; indenting 'Constant_Indexing'
+              ;; with
+              ;;   Constant_Indexing => Constant_Reference,
+              ;; indenting 'Constant_Indexing'; point is on 'with'
               (+ (current-indentation) ada-indent-broken))
 
              (raise_statement
+              ;; raise_statement: test/ada_mode-nominal.adb
+              ;; raise Constraint_Error with
+              ;;    "help!";
               (ada-wisi-indent-containing ada-indent-broken cache nil))
              ))
 
@@ -1435,8 +1472,16 @@ Also return cache at start."
              ada-grammar-wy--keyword-table
              ada-grammar-wy--token-table
              ada-grammar-wy--parse-table)
+
+  ;; Handle escaped quotes in strings
   (setq wisi-string-quote-escape-doubled t)
 
+  ;; Handle bracket notation for non-ascii characters in strings. This
+  ;; is actually more forgiving than that; it will treat
+  ;; '"foo["bar"]baz" as a single string. But that will be caught by
+  ;; the compiler, so it's ok for us.
+  (setq wisi-string-quote-escape '(?\" . ?\[ ))
+
   (set (make-local-variable 'comment-indent-function) 'wisi-comment-indent)
 
   (add-hook 'hack-local-variables-hook 'ada-wisi-post-local-vars nil t)
index d7126e7d51240a881f10d41d1b934a9a8c3ac567..38dd80e101c538fb781f325a6211faea7b46851c 100755 (executable)
@@ -24,6 +24,7 @@
 ;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 (require 'cl-lib)
+(require 'ada-mode) ;; for ada-prj-* etc; will be refactored sometime
 
 ;;;;; code
 
@@ -94,61 +95,85 @@ See also `gnat-parse-emacs-final'."
 
   project)
 
-(defun gnat-get-paths (project)
-  "Add project and/or compiler source, object paths to PROJECT src_dir and/or prc_dir."
+(defun gnat-get-paths-1 (src-dirs prj-dirs)
+  "Append list of source and project dirs in current gpr project to SRC-DIRS, PRJ-DIRS.
+Uses 'gnat list'. Returns new '(src-dirs prj-dirs)."
   (with-current-buffer (gnat-run-buffer)
     ;; gnat list -v -P can return status 0 or 4; always lists compiler dirs
-    (let ((src-dirs (ada-prj-get 'src_dir project))
-         (prj-dirs (ada-prj-get 'prj_dir project)))
-
-      (gnat-run-gnat "list" (list "-v") '(0 4))
+    ;;
+    ;; WORKAROUND: GNAT 7.2.1 gnatls does not support C++ fully; it
+    ;; does not return src_dirs from C++ projects (see AdaCore ticket
+    ;; M724-045). The workaround is to include the src_dirs in an
+    ;; Emacs Ada mode project.
+    (gnat-run-gnat "list" (list "-v") '(0 4))
+
+    (goto-char (point-min))
+
+    (condition-case nil
+       (progn
+         ;; Source path
+         (search-forward "Source Search Path:")
+         (forward-line 1)
+         (while (not (looking-at "^$")) ; terminate on blank line
+           (back-to-indentation) ; skip whitespace forward
+           (if (looking-at "<Current_Directory>")
+               (add-to-list 'src-dirs  (directory-file-name default-directory))
+             (add-to-list 'src-dirs
+                          (expand-file-name ; canonicalize path part
+                           (directory-file-name
+                            (buffer-substring-no-properties (point) (point-at-eol))))))
+           (forward-line 1))
+
+         ;; Project path
+         ;;
+         ;; These are also added to src_dir, so compilation errors
+         ;; reported in project files are found.
+         (search-forward "Project Search Path:")
+         (forward-line 1)
+         (while (not (looking-at "^$"))
+           (back-to-indentation)
+           (if (looking-at "<Current_Directory>")
+               (add-to-list 'prj-dirs ".")
+             (add-to-list 'prj-dirs
+                          (expand-file-name
+                           (buffer-substring-no-properties (point) (point-at-eol))))
+             (add-to-list 'src-dirs
+                          (expand-file-name
+                           (buffer-substring-no-properties (point) (point-at-eol)))))
+           (forward-line 1))
+
+         )
+      ('error
+       (pop-to-buffer (current-buffer))
+       ;; search-forward failed
+       (error "parse gpr failed")
+       ))
+    (list src-dirs prj-dirs)))
 
-      (goto-char (point-min))
+(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, 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 gnat_inspect)
+       (let ((res (gnat-get-paths-1 src-dirs prj-dirs)))
+        (setq src-dirs (car res))
+        (setq prj-dirs (cadr res))))
+
+      (gpr_query
+       (require 'gpr-query)
+       (setq src-dirs (gpr-query-get-src-dirs src-dirs))
+       (setq prj-dirs (gpr-query-get-prj-dirs prj-dirs)))
+      )
 
-      (condition-case nil
-         (progn
-           ;; Source path
-           (search-forward "Source Search Path:")
-           (forward-line 1)
-           (while (not (looking-at "^$")) ; terminate on blank line
-             (back-to-indentation) ; skip whitespace forward
-             (if (looking-at "<Current_Directory>")
-                 (add-to-list 'src-dirs  (directory-file-name default-directory))
-               (add-to-list 'src-dirs
-                            (expand-file-name ; canonicalize path part
-                             (directory-file-name
-                              (buffer-substring-no-properties (point) (point-at-eol))))))
-             (forward-line 1))
-
-           ;; Project path
-           ;;
-           ;; These are also added to src_dir, so compilation errors
-           ;; reported in project files are found.
-           (search-forward "Project Search Path:")
-           (forward-line 1)
-           (while (not (looking-at "^$"))
-             (back-to-indentation)
-             (if (looking-at "<Current_Directory>")
-                 (add-to-list 'prj-dirs ".")
-               (add-to-list 'prj-dirs
-                            (expand-file-name
-                             (buffer-substring-no-properties (point) (point-at-eol))))
-               (add-to-list 'src-dirs
-                            (expand-file-name
-                             (buffer-substring-no-properties (point) (point-at-eol)))))
-             (forward-line 1))
-
-           )
-       ('error
-        (pop-to-buffer (current-buffer))
-        ;; search-forward failed
-        (error "parse gpr failed")
-        ))
-
-      (setq project (plist-put project 'src_dir (reverse src-dirs)))
-      (mapc (lambda (dir) (gnat-prj-add-prj-dir dir project))
-           (reverse prj-dirs))
-      ))
+    (setq project (plist-put project 'src_dir (reverse src-dirs)))
+    (mapc (lambda (dir) (gnat-prj-add-prj-dir dir project))
+         (reverse prj-dirs))
+    )
   project)
 
 (defun gnat-parse-gpr (gpr-file project)
@@ -201,9 +226,12 @@ src_dir will include compiler runtime."
 
 (defun gnat-run (exec command &optional err-msg expected-status)
   "Run a gnat command line tool, as \"EXEC COMMAND\".
-EXEC must be an executable found on `exec-path'. COMMAND must be a list of strings.
+EXEC must be an executable found on `exec-path'.
+COMMAND must be a list of strings.
 ERR-MSG must be nil or a string.
-EXPECTED-STATUS must be nil or a list of integers.
+EXPECTED-STATUS must be nil or a list of integers; throws an error if
+process status is not a member.
+
 Return process status.
 Assumes current buffer is (gnat-run-buffer)"
   (set 'buffer-read-only nil)
@@ -247,8 +275,8 @@ Assumes current buffer is (gnat-run-buffer)"
 
 (defun gnat-run-no-prj (command &optional dir)
   "Run the gnat command line tool, as \"gnat COMMAND\", with DIR as current directory.
-Return process status.  Assumes current buffer
-is (gnat-run-buffer)"
+Return process status.  Process output goes to current buffer,
+which is displayed on error."
   (set 'buffer-read-only nil)
   (erase-buffer)
 
@@ -288,17 +316,18 @@ list."
 
 (defun gnatprep-syntax-propertize (start end)
   (goto-char start)
-  (while (re-search-forward
-         "^[ \t]*\\(#\\(?:if\\|else\\|elsif\\|end\\)\\)"; gnatprep keywords.
-         end t)
-    (cond
-     ((match-beginning 1)
-      (put-text-property
-       (match-beginning 1) (match-end 1) 'syntax-table '(11 . ?\n)))
-     )
-    ))
-
-;;;; support for ada-gnat-xref and ada-gnatinspect
+  (save-match-data
+    (while (re-search-forward
+           "^[ \t]*\\(#\\(?:if\\|else\\|elsif\\|end\\)\\)"; gnatprep keywords.
+           end t)
+      (cond
+       ((match-beginning 1)
+       (put-text-property
+        (match-beginning 1) (match-end 1) 'syntax-table '(11 . ?\n)))
+       )
+      )))
+
+;;;; support for xref tools
 (defun ada-gnat-file-name-from-ada-name (ada-name)
   "For `ada-file-name-from-ada-name'."
   (let ((result nil))
@@ -331,6 +360,8 @@ list."
     ("a-string" . "Ada.Strings")
     ("a-strmap" . "Ada.Strings.Maps")
     ("a-strunb" . "Ada.Strings.Unbounded")
+    ("g-comlin" . "GNAT.Command_Line")
+    ("g-dirope" . "GNAT.Directory_Operations")
     ("g-socket" . "GNAT.Sockets")
     ("interfac" . "Interfaces")
     ("i-c"      . "Interfaces.C")
@@ -380,6 +411,9 @@ list."
     (save-some-buffers t)
     (add-to-list 'opts "-f")
     (with-current-buffer (gnat-run-buffer)
+      ;; FIXME: gnat-run-buffer requires a project, but we don't
+      ;; actually need one. Just use a temp buffer. Same for other
+      ;; uses of gnat-run-no-prj.
       (gnat-run-no-prj
        (append (list "stub") opts (list start-file "-cargs") switches)
        (file-name-directory body-file-name))
@@ -391,6 +425,28 @@ list."
       )
     nil))
 
+(defun ada-gnat-syntax-propertize (start end)
+  (goto-char start)
+  (save-match-data
+    (while (re-search-forward
+           (concat
+            "[^a-zA-Z0-9)]\\('\\)\\[[\"a-fA-F0-9]+\"\\]\\('\\)"; 1, 2: non-ascii character literal, not attributes
+            "\\|\\(\\[\"[a-fA-F0-9]+\"\\]\\)"; 3: non-ascii character in identifier
+            )
+           end t)
+      (cond
+       ((match-beginning 1)
+       (put-text-property
+        (match-beginning 1) (match-end 1) 'syntax-table '(7 . ?'))
+       (put-text-property
+        (match-beginning 2) (match-end 2) 'syntax-table '(7 . ?')))
+
+       ((match-beginning 3)
+       (put-text-property
+        (match-beginning 3) (match-end 3) 'syntax-table '(2 . nil)))
+       )
+      )))
+
 (provide 'gnat-core)
 
 ;; end of file
index cd13af9fe46fa2050a2a045e56dde24505c4b0a3..a5d2cda91b25f48d4d779bf7be779c99f2121e87 100755 (executable)
 
          ;; WORKAROUND: gnatinspect from gnatcoll-1.6w-20130902 can't handle aggregate projects; M910-032
          (project-file (file-name-nondirectory
-                        (or (ada-prj-get 'gnat_inspect_gpr_file)
-                            (ada-prj-get 'gpr_file)))))
+                        (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? - set gnat_inspect_gpr_file")
+           ;;          "can't handle aggregate projects?")
            (start-process (concat "gnatinspect " (buffer-name))
                           (gnat-inspect--session-buffer session)
                           "gnatinspect"
@@ -89,6 +88,8 @@
 
 (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
@@ -137,16 +138,25 @@ Return buffer that holds output."
       (current-buffer)
       )))
 
-(defun gnat-inspect-session-kill (session)
-  (when (process-live-p (gnat-inspect--session-process session))
-    (process-send-string (gnat-inspect--session-process session) "exit\n")))
-
 (defun gnat-inspect-kill-all-sessions ()
   (interactive)
-  (mapc (lambda (assoc) (gnat-inspect-session-kill (cdr assoc))) gnat-inspect--sessions))
+  (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
@@ -184,6 +194,8 @@ Return buffer that holds output."
 (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)
@@ -234,13 +246,11 @@ set compilation-mode with compilation-error-regexp-alist set to COMP-ERR."
 
 (defun gnat-inspect-refresh ()
   "For `ada-xref-refresh-function', using gnatinspect."
-  (with-current-buffer (gnat-inspect-session-send "refresh" t)))
+  (interactive)
+  (gnat-inspect-session-send "refresh" t))
 
 (defun gnat-inspect-other (identifier file line col)
   "For `ada-xref-other-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))
@@ -285,7 +295,7 @@ set compilation-mode with compilation-error-regexp-alist set to COMP-ERR."
        (cond
         ((looking-at gnat-inspect-ident-file-type-regexp)
          ;; process line
-         (let* ((found-file (file-name-nondirectory (match-string 2)))
+         (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))
@@ -367,8 +377,7 @@ set compilation-mode with compilation-error-regexp-alist set to COMP-ERR."
 
 (defun gnat-inspect-overridden-1 (identifier file line col)
   "For `ada-xref-overridden-function', using gnatinspect."
-  (unless (or (ada-prj-get 'gnat_inspect_gpr_file)
-                            (ada-prj-get 'gpr_file))
+  (unless (ada-prj-get 'gpr_file)
     (error "no gnat project file defined."))
 
   (when (eq ?\" (aref identifier 0))
@@ -445,16 +454,25 @@ buffer in another window."
 
 (defvar gnat-inspect-map
   (let ((map (make-sparse-keymap)))
-    ;; C-c <letter> are reserved for users
+    ;; C-c C-i prefix for gnat-inspect minor mode
 
-    (define-key map "\C-c\C-d" 'gnat-inspect-goto-declaration)
-    ;; FIXME: (define-key map "\C-c\M-d" 'gnat-inspect-parents)
-    ;; FIXME: overriding
-    (define-key map "\C-c\C-r" 'gnat-inspect-all)
+    (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.")
 
-;; FIXME: define menu
+(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.
@@ -473,6 +491,7 @@ Enable mode if ARG is positive"
   (setq ada-make-package-body       'ada-gnat-make-package-body)
 
   (add-hook 'ada-syntax-propertize-hook 'gnatprep-syntax-propertize)
+  (add-hook 'ada-syntax-propertize-hook 'ada-gnat-syntax-propertize)
 
   ;; must be after indentation engine setup, because that resets the
   ;; indent function list.
@@ -527,6 +546,7 @@ Enable mode if ARG is positive"
   )
 
 (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))
index b267014a8391658cb6988c472612cfb9babf06e7..f11e41784b3ba6f589f1e96eafb702f8c404fc50 100755 (executable)
     ;; (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-S-p" 'gpr-set-as-project)
+    (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 "\M-n" 'skeleton-next-placeholder)
+    (define-key map "\M-p" 'skeleton-prev-placeholder)
     map
   )  "Local keymap used for GPR mode.")
 
     ["Show last parse error"       gpr-show-parse-error             t]
     ["Other file"                  ff-find-other-file               t]
     ("Edit"
-     ["Indent Line or selection"    indent-for-tab-command         t]
-     ["Indent current statement"    gpr-indent-statement           t]
-     ["Indent Lines in File"        (indent-region (point-min) (point-max))  t]
-     ["Expand skeleton"             gpr-expand                     t]
-     ["Comment/uncomment selection" comment-dwim                   t]
-     ["Fill Comment Paragraph"      fill-paragraph                 t]
+     ["Indent Line or selection"      indent-for-tab-command         t]
+     ["Indent current statement"      gpr-indent-statement           t]
+     ["Indent Lines in File"          (indent-region (point-min) (point-max))  t]
+     ["Expand skeleton"               gpr-expand                     t]
+     ["Next skeleton placeholder"     skeleton-next-placeholder      t]
+     ["Previous skeleton placeholder" skeleton-prev-placeholder      t]
+     ["Comment/uncomment selection"   comment-dwim                   t]
+     ["Fill Comment Paragraph"        fill-paragraph                 t]
 
      ["Fill Comment Paragraph Justify" ada-fill-comment-paragraph-justify t]
      ["Fill Comment Paragraph Postfix" ada-fill-comment-paragraph-postfix t]
diff --git a/packages/ada-mode/gpr-query.el b/packages/ada-mode/gpr-query.el
new file mode 100755 (executable)
index 0000000..36cbd33
--- /dev/null
@@ -0,0 +1,607 @@
+;;; gpr-query.el --- minor-mode for navigating sources using the
+;;; custom gpr_query tool, based on AdaCore cross reference tool
+;;; gnatinspect.
+;;;
+;;; gpr-query supports Ada and any gcc language that supports the
+;;; AdaCore -fdump-xref switch (which includes C, C++).
+;;
+;;; Copyright (C) 2013, 2014  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 gpr-query
+
+(require 'ada-mode) ;; for ada-prj-*, some other things
+(require 'cl-lib)
+(require 'compile)
+
+;;;;; sessions
+
+;; gpr_query 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 gpr_query
+;; 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 (gpr-query--session)
+  (process nil) ;; running gpr_query
+  (buffer nil)  ;; receives output of gpr_query
+  (sent-kill-p nil)
+  (closed-p nil))
+
+(defconst gpr-query-buffer-name-prefix " *gpr_query-")
+
+(defun gpr-query--start-process (session)
+  "Start the session process running gpr_query."
+  (unless (buffer-live-p (gpr-query--session-buffer session))
+    ;; user may have killed buffer
+    (setf (gpr-query--session-buffer session) (gnat-run-buffer gpr-query-buffer-name-prefix)))
+
+  (with-current-buffer (gpr-query--session-buffer session)
+    (let ((process-environment (ada-prj-get 'proc_env)) ;; for GPR_PROJECT_PATH
+
+         ;; WORKAROUND: gnatcoll-1.6 can't handle aggregate projects; M910-032
+         ;; gpr_query can handle some aggregate projects, but not all
+         (project-file (file-name-nondirectory
+                        (or (ada-prj-get 'gpr_query_file)
+                            (ada-prj-get 'gpr_file)))))
+      (erase-buffer); delete any previous messages, prompt
+      (setf (gpr-query--session-process session)
+           ;; FIXME: need good error message on bad project file:
+           ;;          "can't handle aggregate projects? - set gpr_query_file")
+           (start-process (concat "gpr_query " (buffer-name))
+                          (gpr-query--session-buffer session)
+                          "gpr_query"
+                          (concat "--project=" project-file)))
+      (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)
+       (pop-to-buffer (current-buffer))
+       (error "gpr_query warnings"))
+      )))
+
+(defun gpr-query--make-session ()
+  "Create and return a session for the current project file."
+  (let ((session
+        (make-gpr-query--session
+         :buffer (gnat-run-buffer gpr-query-buffer-name-prefix))))
+    (gpr-query--start-process session)
+    session))
+
+(defvar gpr-query--sessions '()
+  "Assoc list of sessions, indexed by absolute GNAT project file name.")
+
+(defun gpr-query-cached-session ()
+  "Return a session for the current project file, creating it if necessary."
+  (let* ((session (cdr (assoc ada-prj-current-file gpr-query--sessions))))
+    (if session
+       (progn
+         (unless (process-live-p (gpr-query--session-process session))
+           (gpr-query--start-process session))
+         session)
+      ;; else
+      (prog1
+          (setq session (gpr-query--make-session))
+       (setq gpr-query--sessions
+             (cl-acons ada-prj-current-file session gpr-query--sessions))))
+    ))
+
+(defconst gpr-query-prompt "^>>> $"
+  ;; gpr_query output ends with this
+  "Regexp matching gpr_query prompt; indicates previous command is complete.")
+
+(defun gpr-query-session-wait (session)
+  "Wait for the current command to complete."
+  (with-current-buffer (gpr-query--session-buffer session)
+    (let ((process (gpr-query--session-process session))
+         (search-start (point-min))
+         (wait-count 0))
+      (while (and (process-live-p process)
+                 (progn
+                   ;; process output is inserted before point, so move back over it to search it
+                   (goto-char search-start)
+                   (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
+       (accept-process-output process 1.0)
+       (setq wait-count (1+ wait-count)))
+      (if (process-live-p process)
+         (message (concat "running gpr_query ... done"))
+       (pop-to-buffer (current-buffer))
+       (error "gpr_query process died"))
+      )))
+
+(defun gpr-require-prj ()
+  "Throw error if no project file defined."
+  (unless (or (ada-prj-get 'gpr_file)
+             (ada-prj-get 'gpr_query_file))
+    (error "no gpr project file defined.")))
+
+(defun gpr-query-session-send (cmd wait)
+  "Send CMD to gpr_query session for current project.
+If WAIT is non-nil, wait for command to complete.
+Return buffer that holds output."
+  (gpr-require-prj)
+  (let ((session (gpr-query-cached-session)))
+    (with-current-buffer (gpr-query--session-buffer session)
+      ;; FIXME: Check prev command complete (might not have waited); look for prompt at EOB
+      (erase-buffer)
+      (process-send-string (gpr-query--session-process session)
+                          (concat cmd "\n"))
+      (when wait
+       (gpr-query-session-wait session))
+      (current-buffer)
+      )))
+
+(defun gpr-query-kill-all-sessions ()
+  (interactive)
+  (let ((count 0))
+    (mapc (lambda (assoc)
+           (let ((session (cdr assoc)))
+             (when (process-live-p (gpr-query--session-process session))
+               (setq count (1+ count))
+               (process-send-string (gpr-query--session-process session) "exit\n")
+               )))
+           gpr-query--sessions)
+    (message "Killed %d sessions" count)
+    ))
+
+;;;;; utils
+
+(defun gpr-query-get-src-dirs (src-dirs)
+  "Append list of source dirs in current gpr project to SRC-DIRS.
+Uses 'gpr_query'. Returns new list."
+
+  (with-current-buffer (gpr-query--session-buffer (gpr-query-cached-session))
+    (gpr-query-session-send "source_dirs" t)
+    (goto-char (point-min))
+    (while (not (looking-at gpr-query-prompt))
+      (add-to-list 'src-dirs
+                  (directory-file-name
+                   (buffer-substring-no-properties (point) (point-at-eol))))
+      (forward-line 1))
+    )
+  src-dirs)
+
+(defun gpr-query-get-prj-dirs (prj-dirs)
+  "Append list of source 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))
+      (add-to-list 'prj-dirs
+                  (directory-file-name
+                   (buffer-substring-no-properties (point) (point-at-eol))))
+      (forward-line 1))
+    )
+  prj-dirs)
+
+(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]+\\)"
+  ;; 1                          2                   3
+  "Regexp matching <file>:<line>:<column>")
+
+(defconst gpr-query-ident-file-regexp-alist
+  (list (concat "^" gpr-query-ident-file-regexp) 1 2 3)
+  "For compilation-error-regexp-alist, matching gpr_query output")
+
+(defconst gpr-query-ident-file-type-regexp
+  (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."
+  ;; Useful when gpr_query will return a list of references; we use
+  ;; `compilation-start' to run gpr_query, so the user can navigate
+  ;; 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)
+    (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
+      (setq result-count (- (line-number-at-pos) 1))
+      (font-lock-fontify-buffer)
+      ;; font-lock-fontify-buffer applies compilation-message text properties
+      ;; 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 "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)))
+               (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)))
+          ))
+
+       (t
+        ;; for next-error, below
+        (setq next-error-last-buffer (current-buffer)))
+
+       ));; 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))
+    ))
+
+(defun gpr-query-dist (found-line line found-col col)
+  "Return distance between FOUND-LINE FOUND-COL and LINE COL."
+  (+ (abs (- found-col col))
+     (* (abs (- found-line line)) 250)))
+
+;;;;; user interface functions
+
+(defun gpr-query-show-references ()
+  "Show all references of identifier at point."
+  (interactive)
+  (gpr-query-all
+   (thing-at-point 'symbol)
+   (file-name-nondirectory (buffer-file-name))
+   (line-number-at-pos)
+   (1+ (current-column)))
+  )
+
+(defun gpr-query-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
+        (gpr-query-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 gpr-query-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
+        (gpr-query-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 gpr-query-map
+  (let ((map (make-sparse-keymap)))
+    ;; C-c C-i prefix for gpr-query minor mode
+
+    (define-key map "\C-c\C-i\C-d" 'gpr-query-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" '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
+    map
+  )  "Local keymap used for GNAT inspect minor mode.")
+
+(defvar gpr-query-menu (make-sparse-keymap "gpr-query"))
+(easy-menu-define gpr-query-menu gpr-query-map "Menu keymap for gpr-query minor mode"
+  '("gpr-query"
+    ["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]
+    ["Goto declaration/body"         gpr-query-goto-declaration       t]
+    ["Show parent declarations"      ada-show-declaration-parents     t]
+    ["Show references"               gpr-query-show-references        t]
+    ;; ["Show overriding"               gpr-query-show-overriding        t]
+    ;; ["Show overridden"               gpr-query-show-overridden        t]
+    ["Refresh cross reference cache" gpr-query-refresh        t]
+    ))
+
+(define-minor-mode gpr-query
+  "Minor mode for navigating sources using GNAT cross reference tool.
+Enable mode if ARG is positive"
+  :initial-value t
+  :lighter       " gpr-query"   ;; mode line
+
+  ;; just enable the menu and keymap
+  )
+
+;;;;; support for Ada mode
+
+(defun gpr-query-refresh ()
+  "For `ada-xref-refresh-function', using gpr_query."
+  (interactive)
+  (with-current-buffer (gpr-query-session-send "refresh" t)))
+
+(defun gpr-query-other (identifier file line col)
+  "For `ada-xref-other-function', using gpr_query."
+  (when (eq ?\" (aref identifier 0))
+    ;; gpr_query 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 (gpr-query-session-send cmd t)
+      ;; 'gpr_query 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 file:line:column (type)
+      ;;                            1    2    3       4
+      ;;
+      ;; '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)
+      ;;
+      ;; itc_assert:/home/Projects/GDS/work_stephe_2/common/itc/opsim/itc_dscovr_gdsi/Gds1553/src/Gds1553.cpp:830:9 (reference)
+
+      (message "parsing result ...")
+
+      (goto-char (point-min))
+
+      (while (not (eobp))
+       (cond
+        ((looking-at gpr-query-ident-file-type-regexp)
+         ;; process line
+         (let* ((found-file (match-string 1))
+                (found-line (string-to-number (match-string 2)))
+                (found-col  (string-to-number (match-string 3)))
+                (found-type (match-string 4))
+                (dist       (gpr-query-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
+               ;; The source may have changed since the xref database
+               ;; was computed, so allow for fuzzy matches.
+               (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)
+       nil)
+
+       ((and
+        (string-equal search-type "declaration")
+        body-loc)
+       (setq result body-loc))
+
+       (decl-loc
+       (setq result decl-loc))
+       )
+
+      (when (null result)
+       (pop-to-buffer (current-buffer))
+       (error "gpr_query did not return other item; refresh?"))
+
+      (message "parsing result ... done")
+      result)))
+
+(defun gpr-query-all (identifier file line col)
+  "For `ada-xref-all-function', using gpr_query."
+  (gpr-query-compilation identifier file line col "refs" 'gpr-query-ident-file))
+
+(defun gpr-query-parents (identifier file line col)
+  "For `ada-xref-parent-function', using gpr_query."
+  (gpr-query-compilation identifier file line col "parent_types" 'gpr-query-ident-file))
+
+(defun gpr-query-overriding (identifier file line col)
+  "For `ada-xref-overriding-function', using gpr_query."
+  (gpr-query-compilation identifier file line col "overriding" 'gpr-query-ident-file))
+
+(defun gpr-query-overridden-1 (identifier file line col)
+  "For `ada-xref-overridden-function', using gpr_query."
+  (when (eq ?\" (aref identifier 0))
+    ;; gpr_query wants the quotes stripped
+    (setq col (+ 1 col))
+    (setq identifier (substring identifier 1 (1- (length identifier))))
+    )
+
+  (let ((cmd (format "overridden %s:%s:%d:%d" identifier (file-name-nondirectory file) line col))
+       result)
+    (with-current-buffer (gpr-query-session-send cmd t)
+
+      (goto-char (point-min))
+      (when (looking-at gpr-query-ident-file-regexp)
+       (setq result
+             (list
+              (match-string 1)
+              (string-to-number (match-string 2))
+              (string-to-number (match-string 3)))))
+
+      (when (null result)
+       (pop-to-buffer (current-buffer))
+       (error "gpr_query did not return a result; refresh?"))
+
+      (message "parsing result ... done")
+      result)))
+
+(defun ada-gpr-query-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-gpr-query-setup t)
+
+  (setq ada-xref-refresh-function    'gpr-query-refresh)
+  (setq ada-xref-all-function        'gpr-query-all)
+  (setq ada-xref-other-function      'gpr-query-other)
+  (setq ada-xref-parent-function     'gpr-query-parents)
+  (setq ada-xref-all-function        'gpr-query-all)
+  (setq ada-xref-overriding-function 'gpr-query-overriding)
+  (setq ada-xref-overridden-function 'gpr-query-overridden-1)
+
+  (add-to-list 'completion-ignored-extensions ".ali") ;; gnat library files, used for cross reference
+  )
+
+(defun ada-gpr-query-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-gpr-query-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 completion-ignored-extensions (delete ".ali" completion-ignored-extensions))
+  )
+
+(defun ada-gpr-query-setup ()
+  (when (boundp 'wisi-indent-calculate-functions)
+    (add-to-list 'wisi-indent-calculate-functions 'gnatprep-indent))
+  )
+
+(defun ada-gpr-query ()
+  "Set Ada mode global vars to use gpr_query."
+  (add-to-list 'ada-prj-parser-alist       '("gpr" . gnat-parse-gpr))
+  (add-to-list 'ada-select-prj-xref-tool   '(gpr_query . ada-gpr-query-select-prj))
+  (add-to-list 'ada-deselect-prj-xref-tool '(gpr_query . ada-gpr-query-deselect-prj))
+
+  ;; no parse-*-xref
+
+  (font-lock-add-keywords 'ada-mode
+   ;; gnatprep preprocessor line
+   (list (list "^[ \t]*\\(#.*\n\\)"  '(1 font-lock-type-face t))))
+  )
+
+(provide 'gpr-query)
+(provide 'ada-xref-tool)
+
+(add-to-list 'compilation-error-regexp-alist-alist
+            (cons 'gpr-query-ident-file       gpr-query-ident-file-regexp-alist))
+
+(unless (and (boundp 'ada-xref-tool)
+            (default-value 'ada-xref-tool))
+  (setq ada-xref-tool 'gpr_query))
+
+(ada-gpr-query)
+
+;;; end of file
index 485a0975990fef79f7c6ff3e12657df59aa18a65..2ddc5d1340270b7b44e2abe43b33355113994a77 100755 (executable)
@@ -1,6 +1,6 @@
 ;;; gpr-skel.el --- an extension to Gpr mode for inserting statement skeletons
 
-;; Copyright (C) 2013 Free Software Foundation, Inc.
+;; Copyright (C) 2013, 2014 Free Software Foundation, Inc.
 
 ;; Authors: Stephen Leake <stephen_leake@stephe-leake.org>
 
@@ -94,14 +94,14 @@ Each user will probably want to override this."
 
 (define-skeleton gpr-skel-package
   "Insert a package with name from `str'."
-  ()
+  "Package name: "
   "package " str " is\n"
   _
   "end " str ";")
 
 (define-skeleton gpr-skel-project
   "Insert a project with name from `str'."
-  ()
+  "Project name: "
   "project " str " is\n"
   _
   "end " str ";")
@@ -148,7 +148,7 @@ trailing `...' if there are more keys."
   "Expand the token or placeholder before point to a skeleton, as defined by `skeleton-token-alist'.
 A token is a symbol in the current syntax.
 A placeholder is a symbol enclosed in generic comment delimiters.
-If the word before point is not in `gpr-skel-token-alist', assume
+If the word before point is not in `skeleton-token-alist', assume
 it is a name, and use the word before that as the token."
   (interactive "*")
 
@@ -212,17 +212,32 @@ it is a name, and use the word before that as the token."
   (if old
       ;; hippie is asking us to try the "next" completion; we don't have one
       nil
-    (let ((pos (point)))
+    (let ((pos (point))
+         (undo-len (length pending-undo-list)))
       (undo-boundary)
       (condition-case nil
          (progn
            (skeleton-expand)
            t)
        ('error
-        ;; undo hook action, motion
-        (undo)
+        ;; undo hook action if any
+        (unless (= undo-len (length pending-undo-list))
+          (undo))
+
+        ;; undo motion
         (goto-char pos)
         nil)))))
+
+(defun skeleton-next-placeholder ()
+  "Move point forward to start of next placeholder."
+  (interactive)
+  (skip-syntax-forward "^!"))
+
+(defun skeleton-prev-placeholder ()
+  "Move point forward to start of next placeholder."
+  (interactive)
+  (skip-syntax-backward "^!"))
+
 ;; end FIXME:
 
 ;;;;; token alist, setup
index 332caea973a062702be1cc4cdba99f339a584761..a1da0cf3746049dfef30fee7cc4af194d4461b12 100755 (executable)
@@ -7,6 +7,11 @@ Please send wisi bug reports to bug-gnu-emacs@gnu.org, with
 'wisi' in the subject. If possible, use M-x report-emacs-bug.
 
 \f
+* wisi 1.0.4
+19 Apr 2014
+
+** add support for GNAT Ada bracket hex character notation
+
 * wisi 1.0.3
 16 Mar 2014
 
index 877fee954cfabd3223222755ddea77722d5a724f..02a2b6ecdcd1fb2a5f9d00cf5e6e50d78add517d 100755 (executable)
@@ -1,9 +1,9 @@
 ;;; wisi.el --- Utilities for implementing an indentation/navigation engine using a generalized LALR parser
 ;;
-;; Copyright (C) 2012, 2013, 2014  Free Software Foundation, Inc.
+;; Copyright (C) 2012 - 2014  Free Software Foundation, Inc.
 ;;
 ;; Author: Stephen Leake <stephen_leake@member.fsf.org>
-;; Version: 1.0.3
+;; Version: 1.0.4
 ;; package-requires: ((cl-lib "0.4") (emacs "24.2"))
 ;; URL: http://stephe-leake.org/emacs/ada-mode/emacs-ada-mode.html
 ;;
 (defvar-local wisi-keyword-table nil)
 (defvar-local wisi-punctuation-table nil)
 (defvar-local wisi-punctuation-table-max-length 0)
-(defvar-local wisi-string-double-term nil) ;; string delimited by double quotes
-(defvar-local wisi-string-quote-escape-doubled nil)
+(defvar-local wisi-string-double-term nil);; string delimited by double quotes
+(defvar-local wisi-string-quote-escape-doubled nil
+  "Non-nil if a string delimiter is escaped by doubling it (as in Ada).")
+(defvar-local wisi-string-quote-escape nil
+  "Cons '(delim . character) where 'character' escapes quotes in strings delimited by 'delim'.")
 (defvar-local wisi-string-single-term nil) ;; string delimited by single quotes
 (defvar-local wisi-symbol-term nil)
 
@@ -219,9 +222,12 @@ If at end of buffer, returns `wisent-eoi-term'."
       (let ((delim (char-after (point)))
            (forward-sexp-function nil))
        (forward-sexp)
-       ;; point is now after the end quote; check for a doubled quote
-       (while (and wisi-string-quote-escape-doubled
-                   (eq (char-after (point)) delim))
+       ;; point is now after the end quote; check for an escaped quote
+       (while (or
+               (and wisi-string-quote-escape-doubled
+                    (eq (char-after (point)) delim))
+               (and (eq delim (car wisi-string-quote-escape))
+                    (eq (char-before (1- (point))) (cdr wisi-string-quote-escape))))
          (forward-sexp))
        (setq token-text (buffer-substring-no-properties start (point)))
        (setq token-id (if (= delim ?\") wisi-string-double-term wisi-string-single-term))))
@@ -376,9 +382,8 @@ Also invalidate the Emacs syntax cache."
 (defun wisi-after-change (begin end length)
   "For `after-change-functions'."
   ;; begin . end is range of text being inserted (may be empty)
-  ;; (syntax-ppss-flush-cache begin) is in before-change-functions
 
-  (syntax-ppss-flush-cache begin) ;; IMPROVEME: could check for whitespace
+  ;; (syntax-ppss-flush-cache begin) is in before-change-functions
 
   (cond
    (wisi-parse-failed
@@ -393,7 +398,7 @@ Also invalidate the Emacs syntax cache."
     )
 
    ((>= wisi-cache-max begin)
-    ;; The parse had succeeded paste the start of the inserted
+    ;; The parse had succeeded past the start of the inserted
     ;; text.
     (save-excursion
       (let ((need-invalidate t)
@@ -412,7 +417,9 @@ Also invalidate the Emacs syntax cache."
          ;; FIXME: insert newline in comment to create non-comment!?
          ;; or paste a chunk of code
          ;; => check that all of change region is comment or string
-         (setq need-invalidate nil))
+         (setq need-invalidate nil)
+         ;; no caches to remove
+         )
 
         ((progn
            (skip-syntax-forward " " end);; does not skip newlines
@@ -423,7 +430,8 @@ Also invalidate the Emacs syntax cache."
         )
 
        (if need-invalidate
-           ;; The inserted or deleted text could alter the parse
+           ;; The inserted or deleted text could alter the parse;
+           ;; wisi-invalidate-cache removes all 'wisi-cache.
            (wisi-invalidate-cache)
 
          ;; else move cache-max by the net change length. We don't
@@ -469,41 +477,42 @@ If accessing cache at a marker for a token as set by `wisi-cache-tokens', POS mu
 
 (defun wisi-validate-cache (pos)
   "Ensure cached data is valid at least up to POS in current buffer."
-  (when (and wisi-parse-try
-           (< wisi-cache-max pos))
-    (when (> wisi-debug 0)
-      (message "wisi: parsing %s ..." (buffer-name)))
+  (let ((msg (format "wisi: parsing %s:%d ..." (buffer-name) (line-number-at-pos))))
+    (when (and wisi-parse-try
+              (< wisi-cache-max pos))
+      (when (> wisi-debug 0)
+       (message msg))
 
-    (setq wisi-parse-try nil)
-    (setq wisi-parse-error-msg nil)
-    (save-excursion
-      (goto-char wisi-cache-max)
-      (if (> wisi-debug 1)
-         ;; let debugger stop in wisi-parse
-         (progn
-           (wisi-parse wisi-parse-table 'wisi-forward-token)
-           (setq wisi-cache-max (point))
-           (setq wisi-parse-failed nil))
-       ;; else capture errors from bad syntax, so higher level functions can try to continue
-       (condition-case err
+      (setq wisi-parse-try nil)
+      (setq wisi-parse-error-msg nil)
+      (save-excursion
+       (goto-char wisi-cache-max)
+       (if (> wisi-debug 1)
+           ;; let debugger stop in wisi-parse
            (progn
              (wisi-parse wisi-parse-table 'wisi-forward-token)
              (setq wisi-cache-max (point))
              (setq wisi-parse-failed nil))
-         (wisi-parse-error
-          (setq wisi-parse-failed t)
-          (setq wisi-parse-error-msg (cdr err)))
-         )))
-    (if wisi-parse-error-msg
-       ;; error
+         ;; else capture errors from bad syntax, so higher level functions can try to continue
+         (condition-case err
+             (progn
+               (wisi-parse wisi-parse-table 'wisi-forward-token)
+               (setq wisi-cache-max (point))
+               (setq wisi-parse-failed nil))
+           (wisi-parse-error
+            (setq wisi-parse-failed t)
+            (setq wisi-parse-error-msg (cdr err)))
+           )))
+      (if wisi-parse-error-msg
+         ;; error
+         (when (> wisi-debug 0)
+           (message "%s error" msg)
+           (wisi-goto-error)
+           (error wisi-parse-error-msg))
+       ;; no msg; success
        (when (> wisi-debug 0)
-         (message "wisi: parsing ... error")
-         (wisi-goto-error)
-         (error wisi-parse-error-msg))
-      ;; no msg; success
-      (when (> wisi-debug 0)
-       (message "wisi: parsing ... done")))
-    ))
+         (message "%s done" msg)))
+      )))
 
 (defun wisi-get-containing-cache (cache)
   "Return cache from (wisi-cache-containing CACHE)."
@@ -641,6 +650,20 @@ If CONTAINING-TOKEN is empty, the next token number is used."
   ;; wisi-tokens is is bound in action created by wisi-semantic-action
   (let* ((containing-region (cddr (nth (1- containing-token) wisi-tokens)))
         (contained-region (cddr (nth (1- contained-token) wisi-tokens))))
+
+    (unless containing-region ;;
+      (signal 'wisi-parse-error
+             (wisi-error-msg
+              "wisi-containing-action: containing-region '%s' is empty. grammar error; bad action"
+              (nth 1 (nth (1- containing-token) wisi-tokens)))))
+
+    (unless (or (not contained-region) ;; contained-token is empty
+               (wisi-get-cache (car containing-region)))
+      (signal 'wisi-parse-error
+             (wisi-error-msg
+              "wisi-containing-action: containing-token '%s' has no cache. grammar error; missing action"
+              (nth 1 (nth (1- containing-token) wisi-tokens)))))
+
     (while (not containing-region)
       ;; containing-token is empty; use next
       (setq containing-region (cddr (nth containing-token wisi-tokens))))