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

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

[elpa] 01/01: release ada-mode 5.1.7, wisi 1.1.0; minor format changes i


From: Stephen Leake
Subject: [elpa] 01/01: release ada-mode 5.1.7, wisi 1.1.0; minor format changes in ada-ref-man (take 2)
Date: Fri, 21 Nov 2014 15:03:08 +0000

stephen_leake pushed a commit to branch master
in repository elpa.

commit b2e9186ca29c6f9ffb5d2e511b25b65e00e30c7d
Author: Stephen Leake <address@hidden>
Date:   Fri Nov 21 09:02:55 2014 -0600

    release ada-mode 5.1.7, wisi 1.1.0; minor format changes in ada-ref-man 
(take 2)
---
 packages/ada-mode/NEWS                  |   28 +
 packages/ada-mode/README                |    6 +-
 packages/ada-mode/ada-build.el          |    2 +-
 packages/ada-mode/ada-gnat-compile.el   |   11 +-
 packages/ada-mode/ada-gnat-xref.el      |    6 +-
 packages/ada-mode/ada-grammar-wy.el     | 2964 ++++++++++++++++---------------
 packages/ada-mode/ada-mode.el           |  275 +--
 packages/ada-mode/ada-mode.info         |  156 +-
 packages/ada-mode/ada-mode.texi         |   75 +-
 packages/ada-mode/ada-ref-man.el        |    5 +-
 packages/ada-mode/ada-skel.el           |    4 +
 packages/ada-mode/ada-wisi-opentoken.el |    4 +-
 packages/ada-mode/ada-wisi.el           | 1497 +++++++++--------
 packages/ada-mode/gnat-core.el          |   21 +-
 packages/ada-mode/gpr-grammar-wy.el     |   26 +-
 packages/ada-mode/gpr-mode.el           |    1 -
 packages/ada-mode/gpr-query.el          |   12 +-
 packages/ada-mode/gpr-wisi.el           |    2 +-
 packages/ada-ref-man/ada-ref-man.el     |    5 +-
 packages/wisi/NEWS                      |   27 +
 packages/wisi/README                    |    2 +-
 packages/wisi/wisi-parse.el             |   83 +-
 packages/wisi/wisi.el                   |  629 +++++--
 23 files changed, 3117 insertions(+), 2724 deletions(-)

diff --git a/packages/ada-mode/NEWS b/packages/ada-mode/NEWS
index cc457d9..581677a 100755
--- a/packages/ada-mode/NEWS
+++ b/packages/ada-mode/NEWS
@@ -7,7 +7,35 @@ Please send Emacs Ada mode bug reports to address@hidden, with
 'ada-mode' in the subject. If possible, use M-x report-emacs-bug.
 
 
+* Ada mode 5.1.7
+18 Nov 2014
+
+** add ada-find-file that prompts for a file from the current project,
+   with completion.
+
+** fix bug that prevented
+    Y : Boolean := Boolean'(if True then False);
+
+** add ada-create-select-default-prj, to simplify working with small
+   projects
+
+** Handle deleting whitespace between words, inserting whitespace in
+   the middle of a word properly.
+
+** Change ada-case-adjust to capitalize words in comments and strings
+   by default; C-u adjusts case as if code.
+
+** allow 'raise' in expressions for GNAT GPL 2014 aspects
+
+** move all except keyword face highighting to grammar; much more
+   accurate, easier to maintain, simpler, faster.
+
+** delete gnatinspect support; gpr_query is better
+
+** misc bug fixes
+
 * Ada mode 5.1.6
+28 Sep 2014
 
 ** improve syntax highlighting of names after 'of', 'new', 'renames'
 
diff --git a/packages/ada-mode/README b/packages/ada-mode/README
index 66c4f34..af4f89e 100644
--- a/packages/ada-mode/README
+++ b/packages/ada-mode/README
@@ -1,4 +1,4 @@
-Emacs Ada mode version 5.1.6
+Emacs Ada mode version 5.1.7
 
 Ada mode requires Emacs 24.2 or greater
 
@@ -34,7 +34,7 @@ matching extension (default *.ads, *.adb).
 
 
 By default ada-mode uses gnat find for cross-reference functions.
-There is experimental support for two alternatives: gnat_inspect and
-gpr_query. See ada-mode.texi section Installation for more.
+There is support for an alternative: gpr_query. See ada-mode.texi
+section Installation for more.
 
 (end of file)
diff --git a/packages/ada-mode/ada-build.el b/packages/ada-mode/ada-build.el
index 1cc935f..6166836 100644
--- a/packages/ada-mode/ada-build.el
+++ b/packages/ada-mode/ada-build.el
@@ -199,7 +199,7 @@ Returns non-nil if a file is selected, nil otherwise."
                 ;; return a directory.
                 (or (file-accessible-directory-p name)
                     (member (file-name-extension name) ext)))))
-      (err                              ;FIXME: Shouldn't this be `error'?
+      (error
        (setq filename nil))
       )
 
diff --git a/packages/ada-mode/ada-gnat-compile.el 
b/packages/ada-mode/ada-gnat-compile.el
index 98f6580..510bef1 100644
--- a/packages/ada-mode/ada-gnat-compile.el
+++ b/packages/ada-mode/ada-gnat-compile.el
@@ -231,11 +231,12 @@ Prompt user if more than one."
                       ))
                   )));; unless while let
 
-            (setq unit-name (cond
-                              ((= 0 (length choices)) nil)
-                              ((= 1 (length choices)) (car choices))
-                              (t ;; multiple choices
-                               (completing-read "package name: " choices))))
+            (setq unit-name
+                  (cond
+                   ((= 0 (length choices)) nil)
+                   ((= 1 (length choices)) (car choices))
+                   (t ;; multiple choices
+                    (completing-read "package name: " choices))))
 
             (when unit-name
               (pop-to-buffer source-buffer)
diff --git a/packages/ada-mode/ada-gnat-xref.el 
b/packages/ada-mode/ada-gnat-xref.el
index 0aefe1e..76d7f19 100644
--- a/packages/ada-mode/ada-gnat-xref.el
+++ b/packages/ada-mode/ada-gnat-xref.el
@@ -1,8 +1,8 @@
 ;; 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 gpr-query or gnat-inspect for
-;; multi-language GNAT cross-reference tools.
+;; These tools are all Ada-specific; see gpr-query for multi-language
+;; GNAT cross-reference tools.
 ;;
 ;; GNAT is provided by AdaCore; see http://libre.adacore.com/
 ;;
@@ -227,7 +227,7 @@
 
   (font-lock-add-keywords 'ada-mode
    ;; gnatprep preprocessor line
-   (list (list "^[ \t]*\\(#.*\n\\)"  '(1 font-lock-type-face t))))
+   (list (list "^[ \t]*\\(#.*\n\\)"  '(1 font-lock-preprocessor-face t))))
 
   (add-hook 'ada-gnat-fix-error-hook 'ada-gnat-fix-error))
 
diff --git a/packages/ada-mode/ada-grammar-wy.el 
b/packages/ada-mode/ada-grammar-wy.el
index a349179..c3be4ce 100644
--- a/packages/ada-mode/ada-grammar-wy.el
+++ b/packages/ada-mode/ada-grammar-wy.el
@@ -130,6 +130,9 @@
       (STAR_STAR . "**")
       (TICK . "'")
      )
+     ("number"
+      (NUMERIC_LITERAL . ada-wisi-number-p)
+     )
      ("symbol"
       (IDENTIFIER)
      )
@@ -145,7 +148,7 @@
 
 (defconst ada-grammar-wy--parse-table
    (wisi-compile-grammar
-   '((AMPERSAND BAR BOX COLON COLON_EQUAL COMMA DOT DOT_DOT EQUAL 
EQUAL_GREATER GREATER GREATER_EQUAL GREATER_GREATER LESS LESS_EQUAL LESS_LESS 
MINUS PLUS SEMICOLON SLASH SLASH_EQUAL STAR STAR_STAR TICK IDENTIFIER 
STRING_LITERAL CHARACTER_LITERAL ABS ACCEPT ABORT ABSTRACT ACCESS ALIASED ALL 
AND ARRAY AT BEGIN BODY CASE CONSTANT DECLARE DELAY DELTA DIGITS DO ELSE ELSIF 
END ENTRY EXCEPTION EXIT FOR FUNCTION GENERIC GOTO IF IN INTERFACE IS 
LEFT_PAREN LIMITED LOOP MOD NEW NOT NULL OF OR OTHE [...]
+   '((AMPERSAND BAR BOX COLON COLON_EQUAL COMMA DOT DOT_DOT EQUAL 
EQUAL_GREATER GREATER GREATER_EQUAL GREATER_GREATER LESS LESS_EQUAL LESS_LESS 
MINUS PLUS SEMICOLON SLASH SLASH_EQUAL STAR STAR_STAR TICK NUMERIC_LITERAL 
IDENTIFIER STRING_LITERAL CHARACTER_LITERAL ABS ACCEPT ABORT ABSTRACT ACCESS 
ALIASED ALL AND ARRAY AT BEGIN BODY CASE CONSTANT DECLARE DELAY DELTA DIGITS DO 
ELSE ELSIF END ENTRY EXCEPTION EXIT FOR FUNCTION GENERIC GOTO IF IN INTERFACE 
IS LEFT_PAREN LIMITED LOOP MOD NEW NOT [...]
      ((abstract_limited_synchronized_opt
        (())
        ((ABSTRACT LIMITED ))
@@ -167,40 +170,38 @@
        ((LIMITED )))
       (abstract_subprogram_declaration
        ((overriding_indicator_opt subprogram_specification IS ABSTRACT 
aspect_specification_opt SEMICOLON )
-        (wisi-statement-action 1 'statement-start 2 'statement-other 6 
'statement-end)))
+        (wisi-statement-action [1 statement-start 2 statement-other 6 
statement-end])))
       (accept_statement
        ((ACCEPT IDENTIFIER actual_parameter_part_opt parameter_profile_opt DO 
handled_sequence_of_statements END identifier_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 2 'name-paren 5 'block-middle 7 
'block-end 9 'statement-end)
+        (wisi-statement-action [1 block-start 2 name-paren 5 block-middle 7 
block-end 9 statement-end])
         (wisi-containing-action 2 3)
         (wisi-containing-action 2 4)
         (wisi-containing-action 5 6)
-        (wisi-motion-action 1 5 '(6 block-middle EXCEPTION block-middle 
WHEN))))
+        (wisi-motion-action [1 5 [6 block-middle EXCEPTION block-middle WHEN]])
+        (wisi-face-action [2 font-lock-function-name-face 8 
font-lock-function-name-face])))
        ((ACCEPT IDENTIFIER actual_parameter_part_opt parameter_profile_opt 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'name-paren 5 
'statement-end)
+        (wisi-statement-action [1 statement-start 2 name-paren 5 
statement-end])
         (wisi-containing-action 2 3)
-        (wisi-containing-action 2 4))))
+        (wisi-containing-action 2 4)
+        (wisi-face-action [2 font-lock-function-name-face]))))
       (access_definition
        ((null_exclusion_opt ACCESS general_access_modifier_opt name )
-        (progn
-        (wisi-statement-action 2 'keyword)
-        (wisi-face-action 2 'font-lock-keyword-face 4 'font-lock-type-face)))
+        (wisi-face-action [4 font-lock-type-face]))
        ((null_exclusion_opt ACCESS protected_opt PROCEDURE 
parameter_profile_opt )
         (progn
-        (wisi-statement-action 2 'keyword 4 'name-paren)
-        (wisi-containing-action 4 5)
-        (wisi-face-action 2 'font-lock-keyword-face)))
+        (wisi-statement-action [4 name-paren])
+        (wisi-containing-action 4 5)))
        ((null_exclusion_opt ACCESS protected_opt FUNCTION 
parameter_and_result_profile )
         (progn
-        (wisi-statement-action 2 'keyword 4 'name-paren)
+        (wisi-statement-action [4 name-paren])
         (wisi-containing-action 4 5)
-        (wisi-motion-action 4 '(5 return-1 RETURN return-2 RETURN))
-        (wisi-face-action 2 'font-lock-keyword-face))))
+        (wisi-motion-action [4 [5 return-1 RETURN return-2 RETURN]]))))
       (actual_parameter_part
        ((LEFT_PAREN association_list RIGHT_PAREN )
         (progn
-        (wisi-statement-action 1 'open-paren 3 'close-paren)
+        (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2))))
       (actual_parameter_part_opt
        (())
@@ -208,21 +209,29 @@
       (aggregate
        ((LEFT_PAREN association_list RIGHT_PAREN )
         (progn
-        (wisi-statement-action 1 'open-paren 3 'close-paren)
+        (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2)))
        ((LEFT_PAREN expression WITH association_list RIGHT_PAREN )
         (progn
-        (wisi-statement-action 1 'open-paren 3 'statement-other 5 'close-paren)
+        (wisi-statement-action [1 open-paren 3 statement-other 5 close-paren])
         (wisi-containing-action 1 2)
         (wisi-containing-action 1 3)
         (wisi-containing-action 3 4)))
+       ((LEFT_PAREN case_expression RIGHT_PAREN )
+        (progn
+        (wisi-statement-action [1 open-paren 3 close-paren])
+        (wisi-containing-action 1 2)))
+       ((LEFT_PAREN if_expression RIGHT_PAREN )
+        (progn
+        (wisi-statement-action [1 open-paren 3 close-paren])
+        (wisi-containing-action 1 2)))
        ((LEFT_PAREN expression WITH NULL RECORD RIGHT_PAREN )
         (progn
-        (wisi-statement-action 1 'open-paren 3 'statement-other 6 'close-paren)
+        (wisi-statement-action [1 open-paren 3 statement-other 6 close-paren])
         (wisi-containing-action 1 2)
         (wisi-containing-action 1 3)))
        ((LEFT_PAREN NULL RECORD RIGHT_PAREN )
-        (wisi-statement-action 1 'open-paren 4 'close-paren)))
+        (wisi-statement-action [1 open-paren 4 close-paren])))
       (aliased_opt
        (())
        ((ALIASED )))
@@ -232,20 +241,18 @@
       (array_type_definition
        ((ARRAY LEFT_PAREN index_subtype_definition_list RIGHT_PAREN OF 
component_definition )
         (progn
-        (wisi-statement-action 1 'keyword 2 'open-paren 4 'close-paren 5 
'statement-other)
+        (wisi-statement-action [2 open-paren 4 close-paren 5 statement-other])
         (wisi-containing-action 2 3)
-        (wisi-containing-action 5 6)
-        (wisi-face-action 1 'font-lock-keyword-face)))
+        (wisi-containing-action 5 6)))
        ((ARRAY LEFT_PAREN discrete_subtype_definition_list RIGHT_PAREN OF 
component_definition )
         (progn
-        (wisi-statement-action 1 'keyword 2 'open-paren 4 'close-paren 5 
'statement-other)
+        (wisi-statement-action [2 open-paren 4 close-paren 5 statement-other])
         (wisi-containing-action 2 3)
-        (wisi-containing-action 5 6)
-        (wisi-face-action 1 'font-lock-keyword-face))))
+        (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-statement-action [1 statement-start 3 statement-other 5 
statement-end])
         (wisi-containing-action 3 4)))
        ((enumeration_representation_clause ))
        ((record_representation_clause ))
@@ -254,23 +261,23 @@
        (())
        ((WITH association_list )
         (progn
-        (wisi-statement-action 1 'statement-other)
+        (wisi-statement-action [1 statement-other])
         (wisi-containing-action 1 2))))
       (assignment_statement
        ((name COLON_EQUAL expression SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'statement-other 4 
'statement-end)
+        (wisi-statement-action [1 statement-start 2 statement-other 4 
statement-end])
         (wisi-containing-action 2 3))))
       (association_opt
        (())
        ((CHARACTER_LITERAL EQUAL_GREATER expression )
         (progn
-        (wisi-statement-action 2 'statement-other)
+        (wisi-statement-action [2 statement-other])
         (wisi-containing-action 2 3)))
        ((CHARACTER_LITERAL EQUAL_GREATER BOX ))
        ((discrete_choice_list EQUAL_GREATER expression )
         (progn
-        (wisi-statement-action 2 'statement-other)
+        (wisi-statement-action [2 statement-other])
         (wisi-containing-action 2 3)))
        ((discrete_choice_list EQUAL_GREATER BOX ))
        ((expression_opt )))
@@ -278,18 +285,18 @@
        ((association_opt ))
        ((association_list COMMA association_opt )
         (progn
-        (wisi-statement-action 2 'list-break)
+        (wisi-statement-action [2 list-break])
         (wisi-containing-action 2 3))))
       (asynchronous_select
        ((SELECT triggering_alternative THEN ABORT sequence_of_statements_opt 
END SELECT SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 3 'block-middle 4 
'statement-other 6 'block-end 8 'statement-end)
+        (wisi-statement-action [1 block-start 3 block-middle 4 statement-other 
6 block-end 8 statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 5))))
       (at_clause
        ((FOR direct_name USE AT expression SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 4 'statement-other 6 
'statement-end)
+        (wisi-statement-action [1 statement-start 4 statement-other 6 
statement-end])
         (wisi-containing-action 4 5))))
       (attribute_reference
        ((name TICK attribute_designator )))
@@ -306,15 +313,15 @@
       (block_statement
        ((DECLARE declarative_part_opt BEGIN handled_sequence_of_statements END 
identifier_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 3 'block-middle 5 'block-end 7 
'statement-end)
+        (wisi-statement-action [1 block-start 3 block-middle 5 block-end 7 
statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4)
-        (wisi-motion-action 1 3 '(4 block-middle EXCEPTION block-middle WHEN) 
5)))
+        (wisi-motion-action [1 3 [4 block-middle EXCEPTION block-middle WHEN] 
5])))
        ((BEGIN handled_sequence_of_statements END identifier_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 3 'block-end 5 'statement-end)
+        (wisi-statement-action [1 block-start 3 block-end 5 statement-end])
         (wisi-containing-action 1 2)
-        (wisi-motion-action 1 '(2 block-middle EXCEPTION block-middle WHEN) 
3))))
+        (wisi-motion-action [1 [2 block-middle EXCEPTION block-middle WHEN] 
3]))))
       (body
        ((proper_body ))
        ((body_stub )))
@@ -326,31 +333,31 @@
       (case_expression
        ((CASE expression IS case_expression_alternative_list )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'block-middle)
+        (wisi-statement-action [1 statement-start 3 block-middle])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4))))
       (case_expression_alternative
        ((WHEN discrete_choice_list EQUAL_GREATER expression )
         (progn
-        (wisi-statement-action 1 'block-middle 3 'statement-other)
+        (wisi-statement-action [1 block-middle 3 statement-other])
         (wisi-containing-action 3 4))))
       (case_expression_alternative_list
        ((case_expression_alternative ))
        ((case_expression_alternative_list COMMA case_expression_alternative )
         (progn
-        (wisi-statement-action 2 'list-break)
+        (wisi-statement-action [2 list-break])
         (wisi-containing-action 2 3))))
       (case_statement
        ((CASE expression_opt IS case_statement_alternative_list END CASE 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 3 'block-middle 5 'block-end 7 
'statement-end)
+        (wisi-statement-action [1 block-start 3 block-middle 5 block-end 7 
statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4)
-        (wisi-motion-action 1 '(4 block-middle WHEN) 5))))
+        (wisi-motion-action [1 [4 block-middle WHEN] 5]))))
       (case_statement_alternative
        ((WHEN discrete_choice_list EQUAL_GREATER sequence_of_statements_opt )
         (progn
-        (wisi-statement-action 1 'block-middle 3 'statement-other)
+        (wisi-statement-action [1 block-middle 3 statement-other])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4))))
       (case_statement_alternative_list
@@ -391,7 +398,7 @@
       (component_clause
        ((IDENTIFIER AT simple_expression RANGE simple_expression DOT_DOT 
simple_expression SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'statement-other 4 
'statement-other 6 'statement-other 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))))
@@ -401,13 +408,13 @@
       (component_declaration
        ((identifier_list COLON component_definition COLON_EQUAL expression 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'statement-other 4 
'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)))
        ((identifier_list COLON component_definition aspect_specification_opt 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'statement-other 5 
'statement-end)
+        (wisi-statement-action [1 statement-start 2 statement-other 5 
statement-end])
         (wisi-containing-action 2 3)
         (wisi-containing-action 2 4))))
       (component_definition
@@ -424,7 +431,7 @@
        ((component_list variant_part ))
        ((variant_part ))
        ((NULL SEMICOLON )
-        (wisi-statement-action 1 'statement-start 2 'statement-end)))
+        (wisi-statement-action [1 statement-start 2 statement-end])))
       (component_list_opt
        (())
        ((component_list )))
@@ -439,15 +446,12 @@
       (conditional_entry_call
        ((SELECT entry_call_alternative ELSE sequence_of_statements_opt END 
SELECT SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 3 'block-middle 5 'block-end 7 
'statement-end)
+        (wisi-statement-action [1 block-start 3 block-middle 5 block-end 7 
statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4))))
       (constant_opt
        (())
-       ((CONSTANT )
-        (progn
-        (wisi-statement-action 1 'keyword)
-        (wisi-face-action 1 'font-lock-keyword-face))))
+       ((CONSTANT )))
       (constraint
        ((RANGE range ))
        ((index_constraint )))
@@ -470,7 +474,7 @@
        ((null_procedure_declaration ))
        ((identifier_list COLON CONSTANT COLON_EQUAL expression SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 6 'statement-end)
+        (wisi-statement-action [1 statement-start 6 statement-end])
         (wisi-containing-action 1 5)))
        ((object_declaration ))
        ((package_declaration ))
@@ -491,19 +495,19 @@
       (delay_statement
        ((DELAY UNTIL expression SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 4 'statement-end)
+        (wisi-statement-action [1 statement-start 4 statement-end])
         (wisi-containing-action 1 3)))
        ((DELAY expression SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'statement-end)
+        (wisi-statement-action [1 statement-start 3 statement-end])
         (wisi-containing-action 1 2))))
       (derived_type_definition
        ((abstract_limited_opt NEW name and_interface_list_opt WITH 
record_definition )
         (progn
-        (wisi-statement-action 5 'statement-other)
-        (wisi-face-action 3 'font-lock-type-face)))
+        (wisi-statement-action [5 statement-other])
+        (wisi-face-action [3 font-lock-type-face])))
        ((abstract_limited_opt NEW name constraint_opt )
-        (wisi-face-action 3 'font-lock-type-face)))
+        (wisi-face-action [3 font-lock-type-face])))
       (direct_name
        ((IDENTIFIER ))
        ((STRING_LITERAL )))
@@ -526,31 +530,31 @@
        ((discrete_subtype_definition ))
        ((discrete_subtype_definition_list COMMA discrete_subtype_definition )
         (progn
-        (wisi-statement-action 2 'list-break)
+        (wisi-statement-action [2 list-break])
         (wisi-containing-action 2 3))))
       (discriminant_part_opt
        (())
        ((LEFT_PAREN BOX RIGHT_PAREN ))
        ((LEFT_PAREN discriminant_specification_list RIGHT_PAREN )
         (progn
-        (wisi-statement-action 1 'open-paren 3 'close-paren)
+        (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2))))
       (discriminant_specification_opt
        (())
-       ((identifier_list COLON null_exclusion_opt_name COLON_EQUAL expression 
))
-       ((identifier_list COLON null_exclusion_opt_name ))
+       ((identifier_list COLON null_exclusion_opt_name_type COLON_EQUAL 
expression ))
+       ((identifier_list COLON null_exclusion_opt_name_type ))
        ((identifier_list COLON access_definition COLON_EQUAL expression ))
        ((identifier_list COLON access_definition )))
       (discriminant_specification_list
        ((discriminant_specification_opt ))
        ((discriminant_specification_list SEMICOLON 
discriminant_specification_opt )
         (progn
-        (wisi-statement-action 2 'list-break)
+        (wisi-statement-action [2 list-break])
         (wisi-containing-action 2 3))))
       (elsif_expression_item
        ((ELSIF expression THEN expression )
         (progn
-        (wisi-statement-action 1 'statement-other 3 'block-middle)
+        (wisi-statement-action [1 statement-other 3 block-middle])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4))))
       (elsif_expression_list
@@ -559,7 +563,7 @@
       (elsif_statement_item
        ((ELSIF expression_opt THEN sequence_of_statements_opt )
         (progn
-        (wisi-statement-action 1 'statement-other 3 'block-middle)
+        (wisi-statement-action [1 statement-other 3 block-middle])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4))))
       (elsif_statement_list
@@ -568,17 +572,18 @@
       (entry_body
        ((ENTRY IDENTIFIER entry_body_formal_part WHEN expression_opt IS 
declarative_part_opt BEGIN handled_sequence_of_statements END identifier_opt 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 4' statement-other 6 
'block-middle 8 'block-middle 10 'block-end
-        12 'statement-end)
+        (wisi-statement-action [1 block-start 4 statement-other 6 block-middle 
8 block-middle 10 block-end
+        12 statement-end])
         (wisi-containing-action 1 3)
         (wisi-containing-action 4 5)
         (wisi-containing-action 6 7)
         (wisi-containing-action 8 9)
-        (wisi-motion-action 1 4 6 8 10))))
+        (wisi-motion-action [1 4 6 8 10])
+        (wisi-face-action [2 font-lock-function-name-face 11 
font-lock-function-name-face ]))))
       (entry_body_formal_part
        ((LEFT_PAREN FOR IDENTIFIER IN discrete_subtype_definition RIGHT_PAREN 
parameter_profile_opt )
         (progn
-        (wisi-statement-action 1 'open-paren 6 'close-paren)
+        (wisi-statement-action [1 open-paren 6 close-paren])
         (wisi-containing-action 1 4)))
        ((parameter_profile_opt )))
       (entry_call_alternative
@@ -587,16 +592,18 @@
       (entry_declaration
        ((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-statement-action [1 statement-start 2 block-middle 4 open-paren 
6 close-paren 8 statement-end])
         (wisi-containing-action 2 4)
         (wisi-containing-action 4 5)
         (wisi-containing-action 2 6)
-        (wisi-containing-action 2 7)))
+        (wisi-containing-action 2 7)
+        (wisi-face-action [3 font-lock-function-name-face])))
        ((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-statement-action [1 statement-start 2 block-middle 6 
statement-end])
         (wisi-containing-action 2 4)
-        (wisi-containing-action 2 5))))
+        (wisi-containing-action 2 5)
+        (wisi-face-action [3 font-lock-function-name-face]))))
       (enumeration_literal
        ((IDENTIFIER ))
        ((CHARACTER_LITERAL )))
@@ -604,17 +611,17 @@
        ((enumeration_literal ))
        ((enumeration_literal_list COMMA enumeration_literal )
         (progn
-        (wisi-statement-action 2 'list-break)
+        (wisi-statement-action [2 list-break])
         (wisi-containing-action 2 3))))
       (enumeration_representation_clause
        ((FOR name USE aggregate SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'statement-other 5 
'statement-end)
+        (wisi-statement-action [1 statement-start 3 statement-other 5 
statement-end])
         (wisi-containing-action 3 4))))
       (enumeration_type_definition
        ((LEFT_PAREN enumeration_literal_list RIGHT_PAREN )
         (progn
-        (wisi-statement-action 1 'open-paren 3 'close-paren)
+        (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2))))
       (exception_choice
        ((name ))
@@ -624,16 +631,16 @@
        ((exception_choice_list BAR exception_choice )))
       (exception_declaration
        ((identifier_list COLON EXCEPTION SEMICOLON )
-        (wisi-statement-action 1 'statement-start 4 'statement-end)))
+        (wisi-statement-action [1 statement-start 4 statement-end])))
       (exception_handler
        ((WHEN IDENTIFIER COLON exception_choice_list EQUAL_GREATER 
sequence_of_statements_opt )
         (progn
-        (wisi-statement-action 1 'block-middle 5 'statement-other)
+        (wisi-statement-action [1 block-middle 5 statement-other])
         (wisi-containing-action 1 4)
         (wisi-containing-action 5 6)))
        ((WHEN exception_choice_list EQUAL_GREATER sequence_of_statements_opt )
         (progn
-        (wisi-statement-action 1 'block-middle 3 'statement-other)
+        (wisi-statement-action [1 block-middle 3 statement-other])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4))))
       (exception_handler_list
@@ -645,10 +652,10 @@
       (exit_statement
        ((EXIT identifier_opt WHEN expression_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'statement-other 5 
'statement-end)
+        (wisi-statement-action [1 statement-start 3 statement-other 5 
statement-end])
         (wisi-containing-action 3 4)))
        ((EXIT identifier_opt SEMICOLON )
-        (wisi-statement-action 1 'statement-start 3 'statement-end)))
+        (wisi-statement-action [1 statement-start 3 statement-end])))
       (expression
        ((relation ))
        ((relation_and_list ))
@@ -662,7 +669,7 @@
       (expression_function_declaration
        ((overriding_indicator_opt function_specification IS paren_expression 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'statement-other 6 
'statement-end)
+        (wisi-statement-action [1 statement-start 2 statement-other 6 
statement-end])
         (wisi-containing-action 2 4)
         (wisi-containing-action 2 5))))
       (extended_return_object_declaration
@@ -674,11 +681,12 @@
       (extended_return_statement
        ((RETURN extended_return_object_declaration_opt DO 
handled_sequence_of_statements END RETURN SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 3 'block-middle 5 'block-end 7 
'statement-end)
+        (wisi-statement-action [1 block-start 3 block-middle 5 block-end 7 
statement-end])
         (wisi-containing-action 3 4)
-        (wisi-motion-action 1 3 5)))
+        (wisi-motion-action [1 3 5])))
        ((RETURN extended_return_object_declaration SEMICOLON )
-        (wisi-statement-action 1 'statement-start 3 'statement-end)))
+        (progn
+        (wisi-statement-action [1 statement-start 3 statement-end]))))
       (factor
        ((primary STAR_STAR primary ))
        ((primary ))
@@ -687,65 +695,70 @@
       (formal_object_declaration
        ((identifier_list COLON mode_opt null_exclusion_opt name COLON_EQUAL 
expression aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 6 'statement-other 9 
'statement-end)
+        (wisi-statement-action [1 statement-start 6 statement-other 9 
statement-end])
         (wisi-containing-action 6 7)
-        (wisi-containing-action 6 8)))
+        (wisi-containing-action 6 8)
+        (wisi-face-action [5 font-lock-type-face])))
        ((identifier_list COLON mode_opt null_exclusion_opt name 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 7 'statement-end)
-        (wisi-containing-action 5 6)))
+        (wisi-statement-action [1 statement-start 7 statement-end])
+        (wisi-containing-action 5 6)
+        (wisi-face-action [5 font-lock-type-face])))
        ((identifier_list COLON mode_opt access_definition COLON_EQUAL 
expression aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 5 'statement-other 8 
'statement-end)
+        (wisi-statement-action [1 statement-start 5 statement-other 8 
statement-end])
         (wisi-containing-action 5 6)
         (wisi-containing-action 5 7)))
        ((identifier_list COLON mode_opt access_definition 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 6 'statement-end)
+        (wisi-statement-action [1 statement-start 6 statement-end])
         (wisi-containing-action 4 5))))
       (formal_part
        ((LEFT_PAREN parameter_specification_list RIGHT_PAREN )
         (progn
-        (wisi-statement-action 1 'open-paren 3 'close-paren)
+        (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2))))
       (formal_subprogram_declaration
        ((WITH subprogram_specification IS subprogram_default 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 6 'statement-end)
+        (wisi-statement-action [1 statement-start 6 statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 5)))
        ((WITH subprogram_specification aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 4 'statement-end)
+        (wisi-statement-action [1 statement-start 4 statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 2 3)))
        ((WITH subprogram_specification IS ABSTRACT subprogram_default 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 7 'statement-end)
+        (wisi-statement-action [1 statement-start 7 statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 6)))
        ((WITH subprogram_specification IS ABSTRACT aspect_specification_opt 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 6 'statement-end)
+        (wisi-statement-action [1 statement-start 6 statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 5))))
       (formal_type_declaration
        ((TYPE IDENTIFIER discriminant_part_opt IS formal_type_definition 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 4 'statement-other 7 
'statement-end)
+        (wisi-statement-action [1 statement-start 4 statement-other 7 
statement-end])
         (wisi-containing-action 1 3)
         (wisi-containing-action 4 5)
-        (wisi-containing-action 4 6)))
+        (wisi-containing-action 4 6)
+        (wisi-face-action [2 font-lock-type-face])))
        ((TYPE IDENTIFIER discriminant_part_opt IS TAGGED 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 7 'statement-end)
+        (wisi-statement-action [1 statement-start 7 statement-end])
         (wisi-containing-action 1 3)
-        (wisi-containing-action 4 6)))
+        (wisi-containing-action 4 6)
+        (wisi-face-action [2 font-lock-type-face])))
        ((TYPE IDENTIFIER discriminant_part_opt aspect_specification_opt 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 5 'statement-end)
+        (wisi-statement-action [1 statement-start 5 statement-end])
         (wisi-containing-action 1 3)
-        (wisi-containing-action 2 6))))
+        (wisi-containing-action 2 4)
+        (wisi-face-action [2 font-lock-type-face]))))
       (formal_type_definition
        ((abstract_tagged_limited_opt PRIVATE ))
        ((formal_derived_type_definition ))
@@ -760,37 +773,39 @@
        ((interface_type_definition )))
       (formal_derived_type_definition
        ((abstract_limited_synchronized_opt NEW name and_interface_list_opt 
WITH PRIVATE )
-        (wisi-face-action 3 'font-lock-type-face))
+        (wisi-face-action [3 font-lock-type-face]))
        ((abstract_limited_synchronized_opt NEW name and_interface_list_opt )
-        (wisi-face-action 3 'font-lock-type-face)))
+        (wisi-face-action [3 font-lock-type-face])))
       (formal_package_declaration
        ((WITH PACKAGE name IS NEW name formal_package_actual_part 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 5 'statement-other 6 'name 7 
'statement-other 8 'statement-other 9 'statement-end)
+        (wisi-statement-action [1 statement-start 5 statement-other 6 name 7 
statement-other 8 statement-other 9 statement-end])
         (wisi-containing-action 1 3)
         (wisi-containing-action 5 6)
         (wisi-containing-action 6 7)
         (wisi-containing-action 6 8)
-        (wisi-face-action 6 'font-lock-function-name-face))))
+        (wisi-face-action [3 font-lock-function-name-face 6 
font-lock-function-name-face]))))
       (formal_package_actual_part
        ((LEFT_PAREN BOX RIGHT_PAREN ))
        (()))
       (full_type_declaration
        ((TYPE IDENTIFIER discriminant_part_opt IS type_definition 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'name 4 'statement-other 7 
'statement-end)
+        (wisi-statement-action [1 statement-start 2 name 4 statement-other 7 
statement-end])
         (wisi-containing-action 1 3)
         (wisi-containing-action 4 5)
-        (wisi-containing-action 4 6)))
+        (wisi-containing-action 4 6)
+        (wisi-face-action [2 font-lock-type-face])))
        ((task_type_declaration ))
        ((protected_type_declaration )))
       (function_specification
        ((FUNCTION name parameter_and_result_profile )
         (progn
-        (wisi-statement-action 1 'statement-other 2 'name)
+        (wisi-statement-action [1 statement-other 2 name])
         (wisi-containing-action 1 2)
         (wisi-containing-action 1 3)
-        (wisi-motion-action 1 '(3 return-1 RETURN return-2 RETURN)))))
+        (wisi-motion-action [1 [3 return-1 RETURN return-2 RETURN]])
+        (wisi-face-action [2 font-lock-function-name-face]))))
       (general_access_modifier_opt
        (())
        ((ALL ))
@@ -801,10 +816,10 @@
       (generic_formal_part
        ((GENERIC generic_formal_parameter_declarations )
         (progn
-        (wisi-statement-action 1 'block-start)
+        (wisi-statement-action [1 block-start])
         (wisi-containing-action 1 2)))
        ((GENERIC )
-        (wisi-statement-action 1 'block-start)))
+        (wisi-statement-action [1 block-start])))
       (generic_formal_parameter_declarations
        ((generic_formal_parameter_declaration ))
        ((generic_formal_parameter_declarations 
generic_formal_parameter_declaration )))
@@ -817,56 +832,56 @@
       (generic_instantiation
        ((PACKAGE name IS NEW name aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'name 4 'statement-other 7 
'statement-end)
+        (wisi-statement-action [1 statement-start 2 name 4 statement-other 7 
statement-end])
         (wisi-containing-action 4 5)
         (wisi-containing-action 5 6)
-        (wisi-face-action 5 'font-lock-function-name-face)))
+        (wisi-face-action [2 font-lock-function-name-face 5 
font-lock-function-name-face])))
        ((overriding_indicator_opt PROCEDURE name IS NEW name 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'block-middle 3 'name 5 
'statement-other 8 'statement-end)
+        (wisi-statement-action [1 statement-start 2 block-middle 3 name 5 
statement-other 8 statement-end])
         (wisi-containing-action 5 6)
         (wisi-containing-action 6 7)
-        (wisi-face-action 6 'font-lock-function-name-face)))
+        (wisi-face-action [3 font-lock-function-name-face 6 
font-lock-function-name-face])))
        ((overriding_indicator_opt FUNCTION name IS NEW name 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'block-middle 3 'name 5 
'statement-other 8 'statement-end)
+        (wisi-statement-action [1 statement-start 2 block-middle 3 name 5 
statement-other 8 statement-end])
         (wisi-containing-action 5 6)
         (wisi-containing-action 6 7)
-        (wisi-face-action 6 'font-lock-function-name-face))))
+        (wisi-face-action [3 font-lock-function-name-face 6 
font-lock-function-name-face]))))
       (generic_package_declaration
        ((generic_formal_part package_specification SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 2 'block-middle 3 'statement-end)
-        (wisi-motion-action 1 2 3))))
+        (wisi-statement-action [1 block-start 2 block-middle 3 statement-end])
+        (wisi-motion-action [1 2]))))
       (generic_renaming_declaration
        ((GENERIC PACKAGE name RENAMES name aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'statement-other 3 'name 4 
'statement-other 7 'statement-end)
+        (wisi-statement-action [1 statement-start 2 statement-other 3 name 4 
statement-other 7 statement-end])
         (wisi-containing-action 2 3)
         (wisi-containing-action 3 6)
-        (wisi-face-action 5 'font-lock-function-name-face)))
+        (wisi-face-action [3 font-lock-function-name-face 5 
font-lock-function-name-face])))
        ((GENERIC PROCEDURE name RENAMES name aspect_specification_opt 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'statement-other 3 'name 4 
'statement-other 7 'statement-end)
+        (wisi-statement-action [1 statement-start 2 statement-other 3 name 4 
statement-other 7 statement-end])
         (wisi-containing-action 2 3)
         (wisi-containing-action 3 6)
-        (wisi-face-action 5 'font-lock-function-name-face)))
+        (wisi-face-action [3 font-lock-function-name-face 5 
font-lock-function-name-face])))
        ((GENERIC FUNCTION name RENAMES name aspect_specification_opt SEMICOLON 
)
         (progn
-        (wisi-statement-action 1 'statement-start 2 'statement-other 3 'name 4 
'statement-other 7 'statement-end)
+        (wisi-statement-action [1 statement-start 2 statement-other 3 name 4 
statement-other 7 statement-end])
         (wisi-containing-action 2 3)
         (wisi-containing-action 3 6)
-        (wisi-face-action 5 'font-lock-function-name-face))))
+        (wisi-face-action [3 font-lock-function-name-face 5 
font-lock-function-name-face]))))
       (generic_subprogram_declaration
        ((generic_formal_part subprogram_specification aspect_specification_opt 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 2 'block-middle 4 'statement-end)
+        (wisi-statement-action [1 block-start 2 block-middle 4 statement-end])
         (wisi-containing-action 2 3)
-        (wisi-motion-action 1 2))))
+        (wisi-motion-action [1 2]))))
       (handled_sequence_of_statements
        ((sequence_of_statements_opt EXCEPTION exception_handler_list_opt )
         (progn
-        (wisi-statement-action 2 'block-middle)
+        (wisi-statement-action [2 block-middle])
         (wisi-containing-action 2 3)))
        ((sequence_of_statements_opt )))
       (identifier_list
@@ -878,72 +893,75 @@
       (if_expression
        ((IF expression THEN expression elsif_expression_list ELSE expression )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'block-middle 6 
'block-middle)
+        (wisi-statement-action [1 statement-start 3 block-middle 6 
block-middle])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4)
         (wisi-containing-action 3 5)
         (wisi-containing-action 6 7)
-        (wisi-motion-action 1 3 '(5 statement-other ELSIF block-middle THEN) 
6)))
+        (wisi-motion-action [1 3 [5 statement-other ELSIF block-middle THEN] 
6])))
        ((IF expression THEN expression elsif_expression_list )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'block-middle)
+        (wisi-statement-action [1 statement-start 3 block-middle])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4)
         (wisi-containing-action 3 5)
-        (wisi-motion-action 1 3 '(5 statement-other ELSIF block-middle THEN))))
+        (wisi-motion-action [1 3 [5 statement-other ELSIF block-middle 
THEN]])))
        ((IF expression THEN expression ELSE expression )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'block-middle 5 
'block-middle)
+        (wisi-statement-action [1 statement-start 3 block-middle 5 
block-middle])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4)
         (wisi-containing-action 5 6)
-        (wisi-motion-action 1 3 5)))
+        (wisi-motion-action [1 3 5])))
        ((IF expression THEN expression )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'block-middle)
+        (wisi-statement-action [1 statement-start 3 block-middle])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4)
-        (wisi-motion-action 1 3))))
+        (wisi-motion-action [1 3]))))
       (if_statement
        ((IF expression_opt THEN sequence_of_statements_opt 
elsif_statement_list ELSE sequence_of_statements_opt END IF SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'block-middle 6 
'block-middle 8 'block-end 10 'statement-end)
+        (wisi-statement-action [1 statement-start 3 block-middle 6 
block-middle 8 block-end 10 statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4)
         (wisi-containing-action 3 5)
         (wisi-containing-action 6 7)
-        (wisi-motion-action 1 3 '(5 statement-other ELSIF block-middle THEN) 6 
8)))
+        (wisi-motion-action [1 3 [5 statement-other ELSIF block-middle THEN] 6 
8])))
        ((IF expression_opt THEN sequence_of_statements_opt 
elsif_statement_list END IF SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'block-middle 6 'block-end 
9 'statement-end)
+        (wisi-statement-action [1 statement-start 3 block-middle 6 block-end 8 
statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4)
         (wisi-containing-action 3 5)
-        (wisi-motion-action 1 3 '(5 statement-other ELSIF block-middle THEN) 
6)))
+        (wisi-motion-action [1 3 [5 statement-other ELSIF block-middle THEN] 
6])))
        ((IF expression_opt THEN sequence_of_statements_opt ELSE 
sequence_of_statements_opt END IF SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'block-middle 5 
'block-middle 7 'block-end 9 'statement-end)
+        (wisi-statement-action [1 statement-start 3 block-middle 5 
block-middle 7 block-end 9 statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4)
         (wisi-containing-action 5 6)
-        (wisi-motion-action 1 3 5 7)))
+        (wisi-motion-action [1 3 5 7])))
        ((IF expression_opt THEN sequence_of_statements_opt END IF SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'block-middle 5 'block-end 
7 'statement-end)
+        (wisi-statement-action [1 statement-start 3 block-middle 5 block-end 7 
statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4)
-        (wisi-motion-action 1 3 5))))
+        (wisi-motion-action [1 3 5]))))
       (incomplete_type_declaration
        ((TYPE IDENTIFIER discriminant_part_opt IS TAGGED SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'name 6 'statement-end)
-        (wisi-containing-action 1 3)))
-       ((TYPE IDENTIFIER SEMICOLON )
-        (wisi-statement-action 1 'statement-start 2 'name 3 'statement-end)))
+        (wisi-statement-action [1 statement-start 2 name 6 statement-end])
+        (wisi-containing-action 1 3)
+        (wisi-face-action [2 font-lock-type-face])))
+       ((TYPE IDENTIFIER discriminant_part_opt SEMICOLON )
+        (progn
+        (wisi-statement-action [1 statement-start 2 name 3 statement-end])
+        (wisi-face-action [2 font-lock-type-face]))))
       (index_constraint
        ((LEFT_PAREN discrete_subtype_definition_list RIGHT_PAREN )
         (progn
-        (wisi-statement-action 1 'open-paren 3 'close-paren)
+        (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2))))
       (index_subtype_definition
        ((name RANGE BOX )))
@@ -951,13 +969,13 @@
        ((index_subtype_definition ))
        ((index_subtype_definition_list COMMA index_subtype_definition )
         (progn
-        (wisi-statement-action 2 'list-break)
+        (wisi-statement-action [2 list-break])
         (wisi-containing-action 2 3))))
       (interface_list
        ((name )
-        (wisi-face-action 1 'font-lock-type-face))
+        (wisi-face-action [1 font-lock-type-face]))
        ((interface_list AND name )
-        (wisi-face-action 3 'font-lock-type-face)))
+        (wisi-face-action [3 font-lock-type-face])))
       (interface_type_definition
        ((LIMITED INTERFACE AND interface_list ))
        ((TASK INTERFACE AND interface_list ))
@@ -971,11 +989,11 @@
       (iteration_scheme
        ((WHILE expression_opt )
         (progn
-        (wisi-statement-action 1 'statement-start)
+        (wisi-statement-action [1 statement-start])
         (wisi-containing-action 1 2)))
        ((FOR iterator_specification_opt )
         (progn
-        (wisi-statement-action 1 'statement-start)
+        (wisi-statement-action [1 statement-start])
         (wisi-containing-action 1 2))))
       (iterator_specification
        ((IDENTIFIER IN REVERSE discrete_subtype_definition ))
@@ -989,7 +1007,8 @@
        ((iterator_specification )))
       (label_opt
        (())
-       ((LESS_LESS IDENTIFIER GREATER_GREATER ))
+       ((LESS_LESS IDENTIFIER GREATER_GREATER )
+        (wisi-face-action [2 font-lock-constant-face]))
        ((IDENTIFIER COLON )))
       (library_item
        ((PRIVATE library_unit_declaration ))
@@ -1009,14 +1028,14 @@
       (loop_statement
        ((iteration_scheme LOOP sequence_of_statements_opt END LOOP 
identifier_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'block-middle 4 'block-end 
7 'statement-end)
+        (wisi-statement-action [1 statement-start 2 block-middle 4 block-end 7 
statement-end])
         (wisi-containing-action 2 3)
-        (wisi-motion-action 1 2 4)))
+        (wisi-motion-action [1 2 4])))
        ((LOOP sequence_of_statements_opt END LOOP identifier_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 3 'block-end 6 'statement-end)
+        (wisi-statement-action [1 block-start 3 block-end 6 statement-end])
         (wisi-containing-action 1 2)
-        (wisi-motion-action 1 3))))
+        (wisi-motion-action [1 3]))))
       (membership_choice_list
        ((membership_choice ))
        ((membership_choice_list BAR membership_choice )))
@@ -1028,18 +1047,9 @@
        ((AT MOD expression SEMICOLON )))
       (mode_opt
        (())
-       ((IN )
-        (progn
-        (wisi-statement-action 1 'keyword)
-        (wisi-face-action 1 'font-lock-keyword-face)))
-       ((IN OUT )
-        (progn
-        (wisi-statement-action 1 'keyword)
-        (wisi-face-action 1 'font-lock-keyword-face)))
-       ((OUT )
-        (progn
-        (wisi-statement-action 1 'keyword)
-        (wisi-face-action 1 'font-lock-keyword-face))))
+       ((IN ))
+       ((IN OUT ))
+       ((OUT )))
       (multiplying_operator
        ((STAR ))
        ((SLASH ))
@@ -1049,15 +1059,15 @@
        ((name ))
        ((name_list COMMA name )
         (progn
-        (wisi-statement-action 2 'statement-other)
+        (wisi-statement-action [2 statement-other])
         (wisi-containing-action 2 3))))
       (name
        ((IDENTIFIER )
-        (wisi-statement-action 1 'name))
+        (wisi-statement-action [1 name]))
        ((CHARACTER_LITERAL ))
        ((name LEFT_PAREN range RIGHT_PAREN )
         (progn
-        (wisi-statement-action 1 'name-paren 2 'open-paren 4 'close-paren)
+        (wisi-statement-action [1 name-paren 2 open-paren 4 close-paren])
         (wisi-containing-action 1 2)
         (wisi-containing-action 2 3)))
        ((selected_component )
@@ -1065,7 +1075,7 @@
        ((attribute_reference ))
        ((name actual_parameter_part )
         (progn
-        (wisi-statement-action 1 'name-paren)
+        (wisi-statement-action [1 name-paren])
         (wisi-containing-action 1 2)))
        ((qualified_expression ))
        ((STRING_LITERAL )))
@@ -1074,52 +1084,53 @@
        ((name )))
       (null_exclusion_opt
        (())
-       ((NOT NULL )
-        (progn
-        (wisi-statement-action 1 'keyword)
-        (wisi-face-action 1 'font-lock-keyword-face))))
-      (null_exclusion_opt_name
-       ((IDENTIFIER ))
-       ((selected_component ))
-       ((NOT NULL IDENTIFIER ))
-       ((NOT NULL selected_component )))
+       ((NOT NULL )))
+      (null_exclusion_opt_name_type
+       ((IDENTIFIER )
+        (wisi-face-action [1 font-lock-type-face]))
+       ((selected_component )
+        (wisi-face-action [1 font-lock-type-face]))
+       ((NOT NULL IDENTIFIER )
+        (wisi-face-action [3 font-lock-type-face]))
+       ((NOT NULL selected_component )
+        (wisi-face-action [3 font-lock-type-face])))
       (null_procedure_declaration
        ((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-statement-action [1 statement-start 2 statement-other 3 
statement-other 6 statement-end])
         (wisi-containing-action 2 5))))
       (object_declaration
        ((identifier_list COLON aliased_opt constant_opt subtype_indication 
COLON_EQUAL expression aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'statement-other 6 
'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)))
        ((identifier_list COLON aliased_opt constant_opt subtype_indication 
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 7 
statement-end])
         (wisi-containing-action 2 5)
         (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 6 
'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)))
        ((identifier_list COLON aliased_opt constant_opt access_definition 
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 7 
statement-end])
         (wisi-containing-action 2 5)
         (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 6 
'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)))
        ((identifier_list COLON aliased_opt constant_opt array_type_definition 
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 7 
statement-end])
         (wisi-containing-action 2 5)
         (wisi-containing-action 1 6)))
        ((single_task_declaration ))
@@ -1127,130 +1138,138 @@
       (object_renaming_declaration
        ((IDENTIFIER COLON null_exclusion_opt name RENAMES name 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 4 'name 5 'statement-other 6 
'name 8 'statement-end)
+        (wisi-statement-action [1 statement-start 5 statement-other 8 
statement-end])
         (wisi-containing-action 1 4)
         (wisi-containing-action 1 6)
-        (wisi-containing-action 1 7)))
+        (wisi-face-action [4 font-lock-type-face])))
        ((IDENTIFIER COLON access_definition RENAMES name 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 4 'statement-other 5 'name 7 
'statement-end)
+        (wisi-statement-action [1 statement-start 4 statement-other 7 
statement-end])
         (wisi-containing-action 1 3)
         (wisi-containing-action 1 5)
         (wisi-containing-action 1 6)))
        ((IDENTIFIER COLON EXCEPTION RENAMES name aspect_specification_opt 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 4 'statement-other 5 'name 7 
'statement-end)
+        (wisi-statement-action [1 statement-start 4 statement-other 7 
statement-end])
         (wisi-containing-action 1 5)
         (wisi-containing-action 1 6))))
       (overriding_indicator_opt
        ((NOT OVERRIDING )
-        (wisi-statement-action 1 'statement-start 2 'statement-other))
+        (wisi-statement-action [1 statement-start 2 statement-other]))
        ((OVERRIDING )
-        (wisi-statement-action 1 'statement-start))
+        (wisi-statement-action [1 statement-start]))
        (()))
       (package_body
        ((PACKAGE BODY name aspect_specification_opt IS declarative_part_opt 
BEGIN handled_sequence_of_statements END name_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 3 'name 5 'block-middle 7 
'block-middle
-        9 'block-end 11 'statement-end)
+        (wisi-statement-action [1 block-start 3 name 5 block-middle 7 
block-middle
+        9 block-end 11 statement-end])
         (wisi-containing-action 1 3)
         (wisi-containing-action 3 4)
         (wisi-containing-action 5 6)
         (wisi-containing-action 7 8)
-        (wisi-motion-action 1 5 7 '(8 block-middle EXCEPTION block-middle 
WHEN) 9)))
+        (wisi-motion-action [1 5 7 [8 block-middle EXCEPTION block-middle 
WHEN] 9])
+        (wisi-face-action [3 font-lock-function-name-face 10 
font-lock-function-name-face])))
        ((PACKAGE BODY name aspect_specification_opt IS declarative_part_opt 
END name_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 3 'name 5 'block-middle 7 
'block-end 9 'statement-end)
+        (wisi-statement-action [1 block-start 3 name 5 block-middle 7 
block-end 9 statement-end])
         (wisi-containing-action 1 3)
         (wisi-containing-action 3 4)
         (wisi-containing-action 5 6)
-        (wisi-motion-action 1 5 7))))
+        (wisi-motion-action [1 5 7])
+        (wisi-face-action [3 font-lock-function-name-face 8 
font-lock-function-name-face]))))
       (package_body_stub
        ((PACKAGE BODY name IS SEPARATE aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 7 'statement-end)
+        (wisi-statement-action [1 statement-start 7 statement-end])
         (wisi-containing-action 1 3)
-        (wisi-containing-action 3 6))))
+        (wisi-containing-action 3 6)
+        (wisi-face-action [3 font-lock-function-name-face]))))
       (package_declaration
        ((package_specification SEMICOLON )
-        (wisi-statement-action 1 'statement-start 2 'statement-end)))
+        (wisi-statement-action [1 statement-start 2 statement-end])))
       (package_renaming_declaration
        ((PACKAGE name RENAMES name aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'name 3 'statement-other 6 
'statement-end)
+        (wisi-statement-action [1 statement-start 2 name 3 statement-other 6 
statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 5)
-        (wisi-face-action 4 'font-lock-function-name-face))))
+        (wisi-face-action [2 font-lock-function-name-face 4 
font-lock-function-name-face]))))
       (package_specification
        ((PACKAGE name aspect_specification_opt IS declarative_part_opt PRIVATE 
declarative_part_opt END name_opt )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'name 4 'block-start 6 
'block-middle 8 'block-end)
+        (wisi-statement-action [1 statement-start 2 name 4 block-start 6 
block-middle 8 block-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 2 3)
         (wisi-containing-action 4 5)
         (wisi-containing-action 6 7)
-        (wisi-motion-action 1 4 6 8)))
+        (wisi-motion-action [1 4 6 8])
+        (wisi-face-action [2 font-lock-function-name-face 9 
font-lock-function-name-face])))
        ((PACKAGE name aspect_specification_opt IS declarative_part_opt END 
name )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'name 4 'block-start 6 
'block-end)
+        (wisi-statement-action [1 statement-start 2 name 4 block-start 6 
block-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 2 3)
         (wisi-containing-action 4 5)
-        (wisi-motion-action 1 4 6))))
+        (wisi-motion-action [1 4 6])
+        (wisi-face-action [2 font-lock-function-name-face 7 
font-lock-function-name-face]))))
       (parameter_and_result_profile
        ((formal_part RETURN null_exclusion_opt name_opt )
         (progn
-        (wisi-statement-action 2 'return-1)
+        (wisi-statement-action [2 return-1])
         (wisi-containing-action 2 4)
-        (wisi-face-action 4 'font-lock-type-face)))
+        (wisi-face-action [4 font-lock-type-face])))
        ((RETURN name_opt )
         (progn
-        (wisi-statement-action 1 'return-2)
-        (wisi-face-action 2 'font-lock-type-face)))
+        (wisi-statement-action [1 return-2])
+        (wisi-face-action [2 font-lock-type-face])))
        ((formal_part RETURN access_definition )
         (progn
-        (wisi-statement-action 2 'return-1)
+        (wisi-statement-action [2 return-1])
         (wisi-containing-action 2 3)))
        ((RETURN access_definition )
         (progn
-        (wisi-statement-action 1 'return-2)
+        (wisi-statement-action [1 return-2])
         (wisi-containing-action 1 2))))
       (parameter_profile_opt
        (())
        ((formal_part )))
       (parameter_specification
        ((identifier_list COLON aliased_opt mode_opt null_exclusion_opt name 
COLON_EQUAL expression )
-        (wisi-face-action 6 'font-lock-type-face))
+        (wisi-face-action [6 font-lock-type-face]))
        ((identifier_list COLON aliased_opt mode_opt null_exclusion_opt name )
-        (wisi-face-action 6 'font-lock-type-face))
+        (wisi-face-action [6 font-lock-type-face]))
        ((identifier_list COLON aliased_opt access_definition COLON_EQUAL 
expression ))
        ((identifier_list COLON aliased_opt access_definition )))
       (parameter_specification_list
        ((parameter_specification ))
        ((parameter_specification_list SEMICOLON parameter_specification )
         (progn
-        (wisi-statement-action 2 'list-break)
+        (wisi-statement-action [2 list-break])
         (wisi-containing-action 2 3))))
       (paren_expression
        ((LEFT_PAREN expression RIGHT_PAREN )
         (progn
-        (wisi-statement-action 1 'open-paren 3 'close-paren)
+        (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2)))
        ((LEFT_PAREN case_expression RIGHT_PAREN )
         (progn
-        (wisi-statement-action 1 'open-paren 3 'close-paren)
+        (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2)))
        ((LEFT_PAREN if_expression RIGHT_PAREN )
         (progn
-        (wisi-statement-action 1 'open-paren 3 'close-paren)
+        (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2))))
       (pragma
        ((PRAGMA IDENTIFIER LEFT_PAREN pragma_argument_association_list 
RIGHT_PAREN SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'open-paren 5 'close-paren 
6 'statement-end)
-        (wisi-containing-action 3 4)))
+        (wisi-statement-action [1 statement-start 3 open-paren 5 close-paren 6 
statement-end])
+        (wisi-containing-action 3 4)
+        (wisi-face-action [2 font-lock-function-name-face])))
        ((PRAGMA IDENTIFIER SEMICOLON )
-        (wisi-statement-action 1 'statement-start 3 'statement-end)))
+        (progn
+        (wisi-statement-action [1 statement-start 3 statement-end])
+        (wisi-face-action [2 font-lock-function-name-face]))))
       (pragma_argument_association
        ((IDENTIFIER EQUAL_GREATER expression ))
        ((expression ))
@@ -1259,46 +1278,50 @@
        ((pragma_argument_association ))
        ((pragma_argument_association_list COMMA pragma_argument_association )))
       (primary
+       ((NUMERIC_LITERAL )
+        (wisi-face-action [1 font-lock-constant-face]))
        ((NULL ))
        ((aggregate ))
        ((name ))
        ((NEW name )
-        (wisi-face-action 2 'font-lock-type-face))
+        (wisi-face-action [2 font-lock-type-face] t))
        ((LEFT_PAREN if_expression RIGHT_PAREN )
         (progn
-        (wisi-statement-action 1 'open-paren 3 'close-paren)
+        (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2)))
        ((LEFT_PAREN case_expression RIGHT_PAREN )
         (progn
-        (wisi-statement-action 1 'open-paren 3 'close-paren)
+        (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2)))
        ((LEFT_PAREN quantified_expression RIGHT_PAREN )
         (progn
-        (wisi-statement-action 1 'open-paren 3 'close-paren)
+        (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2))))
       (private_extension_declaration
        ((TYPE IDENTIFIER discriminant_part_opt IS 
abstract_limited_synchronized_opt NEW subtype_indication and_interface_list_opt 
WITH PRIVATE aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'name 6 'statement-other 
12 'statement-end)
+        (wisi-statement-action [1 statement-start 2 name 6 statement-other 12 
statement-end])
         (wisi-containing-action 1 3)
         (wisi-containing-action 6 7)
         (wisi-containing-action 6 8)
         (wisi-containing-action 2 11)
-        (wisi-face-action 7 'font-lock-type-face))))
+        (wisi-face-action [2 font-lock-type-face]))))
       (private_type_declaration
        ((TYPE IDENTIFIER discriminant_part_opt IS abstract_tagged_limited_opt 
PRIVATE aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'name 8 'statement-end)
-        (wisi-containing-action 1 7))))
+        (wisi-statement-action [1 statement-start 2 name 8 statement-end])
+        (wisi-containing-action 1 7)
+        (wisi-face-action [2 font-lock-type-face]))))
       (procedure_call_statement
        ((name SEMICOLON )
-        (wisi-statement-action 1 'statement-start 2 'statement-end)))
+        (wisi-statement-action [1 statement-start 2 statement-end])))
       (procedure_specification
        ((PROCEDURE name parameter_profile_opt )
         (progn
-        (wisi-statement-action 1 'statement-other 2 'name)
+        (wisi-statement-action [1 statement-other])
         (wisi-containing-action 1 2)
-        (wisi-containing-action 1 3))))
+        (wisi-containing-action 1 3)
+        (wisi-face-action [2 font-lock-function-name-face]))))
       (proper_body
        ((subprogram_body ))
        ((package_body ))
@@ -1307,24 +1330,29 @@
       (protected_body
        ((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-statement-action [1 block-start 3 name 5 block-middle 7 
block-end 9 statement-end])
         (wisi-containing-action 1 3)
         (wisi-containing-action 1 4)
         (wisi-containing-action 5 6)
-        (wisi-motion-action 1 5 7))))
+        (wisi-motion-action [1 5 7])
+        (wisi-face-action [3 font-lock-type-face 8 font-lock-type-face]))))
       (protected_body_stub
        ((PROTECTED BODY IDENTIFIER IS SEPARATE aspect_specification_opt 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 7 'statement-end)
+        (wisi-statement-action [1 statement-start 7 statement-end])
         (wisi-containing-action 1 3)
-        (wisi-containing-action 3 6))))
+        (wisi-containing-action 3 6)
+        (wisi-face-action [3 font-lock-type-face]))))
       (protected_definition
        ((declarative_part_opt PRIVATE declarative_part_opt END identifier_opt )
         (progn
-        (wisi-statement-action 2 'block-middle 4 'block-end)
-        (wisi-containing-action 2 3)))
+        (wisi-statement-action [2 block-middle 4 block-end])
+        (wisi-containing-action 2 3)
+        (wisi-face-action [5 font-lock-type-face])))
        ((declarative_part_opt END identifier_opt )
-        (wisi-statement-action 2 'block-end)))
+        (progn
+        (wisi-statement-action [2 block-end])
+        (wisi-face-action [3 font-lock-type-face]))))
       (protected_operation_item
        ((subprogram_declaration ))
        ((subprogram_body ))
@@ -1342,42 +1370,48 @@
       (protected_type_declaration
        ((PROTECTED TYPE IDENTIFIER discriminant_part_opt 
aspect_specification_opt IS NEW interface_list WITH protected_definition 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'name 6 'block-start 11 
'statement-end)
+        (wisi-statement-action [1 statement-start 3 name 6 block-start 11 
statement-end])
         (wisi-containing-action 1 3)
         (wisi-containing-action 3 5)
-        (wisi-containing-action 9 10)))
+        (wisi-containing-action 9 10)
+        (wisi-face-action [3 font-lock-type-face])))
        ((PROTECTED TYPE IDENTIFIER discriminant_part_opt 
aspect_specification_opt IS protected_definition SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'name 6 'block-start 8 
'statement-end)
+        (wisi-statement-action [1 statement-start 3 name 6 block-start 8 
statement-end])
         (wisi-containing-action 1 3)
         (wisi-containing-action 3 5)
-        (wisi-containing-action 6 7))))
+        (wisi-containing-action 6 7)
+        (wisi-face-action [3 font-lock-type-face]))))
       (qualified_expression
        ((name TICK aggregate )
         (progn
-        (wisi-statement-action 1 'statement-other)
-        (wisi-containing-action 1 3))))
+        (wisi-statement-action [1 statement-other])
+        (wisi-containing-action 1 3)
+        (wisi-face-action [1 font-lock-type-face]))))
       (quantified_expression
        ((FOR quantifier iterator_specification EQUAL_GREATER expression )
         (progn
-        (wisi-statement-action 4 'statement-other)
+        (wisi-statement-action [4 statement-other])
         (wisi-containing-action 4 5))))
       (quantifier
        ((ALL ))
        ((SOME )))
+      (raise_expression
+       ((RAISE name ))
+       ((RAISE name WITH expression )))
       (raise_statement
        ((RAISE SEMICOLON )
-        (wisi-statement-action 1 'statement-start 2 'statement-end))
+        (wisi-statement-action [1 statement-start 2 statement-end]))
        ((RAISE name WITH expression SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 5 'statement-end)
+        (wisi-statement-action [1 statement-start 5 statement-end])
         (wisi-containing-action 1 4)))
        ((RAISE name SEMICOLON )
-        (wisi-statement-action 1 'statement-start 3 'statement-end)))
+        (wisi-statement-action [1 statement-start 3 statement-end])))
       (range
        ((name TICK RANGE LEFT_PAREN expression RIGHT_PAREN )
         (progn
-        (wisi-statement-action 4 'open-paren 6 'close-paren)
+        (wisi-statement-action [4 open-paren 6 close-paren])
         (wisi-containing-action 4 5)))
        ((name TICK RANGE ))
        ((simple_expression DOT_DOT simple_expression )))
@@ -1387,18 +1421,18 @@
       (record_definition
        ((RECORD component_list_opt END RECORD )
         (progn
-        (wisi-statement-action 1 'block-start 3 'block-end)
+        (wisi-statement-action [1 block-start 3 block-end])
         (wisi-containing-action 1 2)))
        ((NULL RECORD )))
       (record_representation_clause
        ((FOR name USE record_rep SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'statement-other 5 
'statement-end)
+        (wisi-statement-action [1 statement-start 3 statement-other 5 
statement-end])
         (wisi-containing-action 3 4))))
       (record_rep
        ((RECORD mod_clause_opt component_clause_list END RECORD )
         (progn
-        (wisi-statement-action 1 'block-start 4 'block-end)
+        (wisi-statement-action [1 block-start 4 block-end])
         (wisi-containing-action 1 3))))
       (record_type_definition
        ((abstract_tagged_limited_opt record_definition )))
@@ -1421,7 +1455,8 @@
        ((simple_expression ))
        ((simple_expression relational_operator simple_expression ))
        ((simple_expression NOT IN membership_choice_list ))
-       ((simple_expression IN membership_choice_list )))
+       ((simple_expression IN membership_choice_list ))
+       ((raise_expression )))
       (relational_operator
        ((EQUAL ))
        ((SLASH_EQUAL ))
@@ -1437,11 +1472,11 @@
       (requeue_statement
        ((REQUEUE name WITH ABORT SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'name 5 'statement-end)
+        (wisi-statement-action [1 statement-start 2 name 5 statement-end])
         (wisi-containing-action 1 2)))
        ((REQUEUE name SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'name 5 'statement-end)
+        (wisi-statement-action [1 statement-start 2 name 3 statement-end])
         (wisi-containing-action 1 2))))
       (return_subtype_indication
        ((subtype_indication ))
@@ -1454,39 +1489,39 @@
       (selective_accept
        ((SELECT select_alternative_list_opt ELSE sequence_of_statements_opt 
END SELECT SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 3 'block-middle 5 'block-end 7 
'statement-end)
+        (wisi-statement-action [1 block-start 3 block-middle 5 block-end 7 
statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4)
-        (wisi-motion-action 1 '(2 block-middle OR) 3 5)))
+        (wisi-motion-action [1 [2 block-middle OR] 3 5])))
        ((SELECT select_alternative_list_opt END SELECT SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 3 'block-end 5 'statement-end)
+        (wisi-statement-action [1 block-start 3 block-end 5 statement-end])
         (wisi-containing-action 1 2)
-        (wisi-motion-action 1 '(2 block-middle OR) 3))))
+        (wisi-motion-action [1 [2 block-middle OR] 3]))))
       (select_alternative
        ((WHEN expression EQUAL_GREATER accept_statement 
sequence_of_statements_opt )
         (progn
-        (wisi-statement-action 1 'block-start 3 'statement-other)
+        (wisi-statement-action [1 block-start 3 statement-other])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4)
         (wisi-containing-action 3 5)))
        ((accept_statement sequence_of_statements_opt ))
        ((WHEN expression EQUAL_GREATER delay_alternative )
         (progn
-        (wisi-statement-action 1 'block-start 3 'statement-other)
+        (wisi-statement-action [1 block-start 3 statement-other])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4)))
        ((delay_alternative ))
        ((WHEN expression EQUAL_GREATER TERMINATE SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 3 'statement-other 4 
'statement-start 5 'statement-end)
+        (wisi-statement-action [1 block-start 3 statement-other 4 
statement-start 5 statement-end])
         (wisi-containing-action 1 2)))
        ((TERMINATE SEMICOLON )
-        (wisi-statement-action 1 'statement-start 2 'statement-end)))
+        (wisi-statement-action [1 statement-start 2 statement-end])))
       (select_alternative_list
        ((select_alternative ))
        ((select_alternative_list OR select_alternative )
-        (wisi-statement-action 2 'block-middle)))
+        (wisi-statement-action [2 block-middle])))
       (select_alternative_list_opt
        (())
        ((select_alternative_list )))
@@ -1506,157 +1541,173 @@
        ((term_list )))
       (simple_return_statement
        ((RETURN SEMICOLON )
-        (wisi-statement-action 1 'statement-start 2 'statement-end))
+        (wisi-statement-action [1 statement-start 2 statement-end]))
        ((RETURN expression SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'statement-end)
+        (wisi-statement-action [1 statement-start 3 statement-end])
         (wisi-containing-action 1 2))))
       (simple_statement
        ((NULL SEMICOLON )
-        (wisi-statement-action 1 'statement-start 2 'statement-end))
+        (wisi-statement-action [1 statement-start 2 statement-end]))
        ((assignment_statement ))
        ((exit_statement ))
        ((GOTO IDENTIFIER SEMICOLON )
-        (wisi-statement-action 1 'statement-start 3 'statement-end))
+        (progn
+        (wisi-statement-action [1 statement-start 3 statement-end])
+        (wisi-face-action [2 font-lock-constant-face])))
        ((procedure_call_statement ))
        ((simple_return_statement ))
        ((requeue_statement ))
        ((delay_statement ))
        ((ABORT name SEMICOLON )
-        (wisi-statement-action 1 'statement-start 3 'statement-end))
+        (wisi-statement-action [1 statement-start 3 statement-end]))
        ((raise_statement ))
        ((pragma )))
       (single_protected_declaration
        ((PROTECTED IDENTIFIER aspect_specification_opt IS NEW interface_list 
WITH protected_definition SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 2 'name 7 'block-middle 9 
'statement-end)
+        (wisi-statement-action [1 block-start 2 name 7 block-middle 9 
statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 2 3)
-        (wisi-containing-action 7 8)))
+        (wisi-containing-action 7 8)
+        (wisi-face-action [2 font-lock-type-face])))
        ((PROTECTED IDENTIFIER aspect_specification_opt IS protected_definition 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 2 'name 4 'block-middle 6 
'statement-end)
+        (wisi-statement-action [1 block-start 2 name 4 block-middle 6 
statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 2 3)
-        (wisi-containing-action 4 5))))
+        (wisi-containing-action 4 5)
+        (wisi-face-action [2 font-lock-type-face]))))
       (single_task_declaration
        ((TASK IDENTIFIER aspect_specification_opt IS NEW interface_list WITH 
task_definition SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 2 'name 7 'block-middle 9 
'statement-end)
+        (wisi-statement-action [1 block-start 2 name 7 block-middle 9 
statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 2 3)
-        (wisi-containing-action 7 8)))
+        (wisi-containing-action 7 8)
+        (wisi-face-action [2 font-lock-type-face])))
        ((TASK IDENTIFIER aspect_specification_opt IS task_definition SEMICOLON 
)
         (progn
-        (wisi-statement-action 1 'block-start 2 'name 4 'block-middle 6 
'statement-end)
+        (wisi-statement-action [1 block-start 2 name 4 block-middle 6 
statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 2 3)
-        (wisi-containing-action 4 5)))
+        (wisi-containing-action 4 5)
+        (wisi-face-action [2 font-lock-type-face])))
        ((TASK IDENTIFIER aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 4 'statement-end)
+        (wisi-statement-action [1 statement-start 4 statement-end])
         (wisi-containing-action 1 2)
-        (wisi-containing-action 2 3))))
+        (wisi-containing-action 2 3)
+        (wisi-face-action [2 font-lock-type-face]))))
       (statement
        ((label_opt simple_statement )
-        (wisi-statement-action 1 'statement-start 2 'statement-other))
+        (wisi-statement-action [1 statement-start 2 statement-other]))
        ((label_opt compound_statement )
-        (wisi-statement-action 1 'statement-start 2 'statement-other)))
+        (wisi-statement-action [1 statement-start 2 statement-other])))
       (subprogram_body
        ((overriding_indicator_opt subprogram_specification 
aspect_specification_opt IS declarative_part_opt BEGIN 
handled_sequence_of_statements END name_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'block-middle 4 
'block-middle 6 'block-middle 8 'block-end 10 'statement-end)
+        (wisi-statement-action [1 statement-start 2 block-middle 4 
block-middle 6 block-middle 8 block-end 10 statement-end])
         (wisi-containing-action 2 3)
         (wisi-containing-action 4 5)
         (wisi-containing-action 6 7)
-        (wisi-motion-action 1 2 4 6 8))))
+        (wisi-motion-action [1 2 4 6 8])
+        (wisi-face-action [9 font-lock-function-name-face]))))
       (subprogram_body_stub
        ((overriding_indicator_opt subprogram_specification IS SEPARATE 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'block-middle 6 
'statement-end)
+        (wisi-statement-action [1 statement-start 2 block-middle 6 
statement-end])
         (wisi-containing-action 2 5))))
       (subprogram_declaration
        ((overriding_indicator_opt subprogram_specification 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'block-middle 4 
'statement-end)
+        (wisi-statement-action [1 statement-start 2 block-middle 4 
statement-end])
         (wisi-containing-action 2 3))))
       (subprogram_default
-       ((name ))
+       ((name )
+        (wisi-face-action [1 font-lock-function-name-face]))
        ((BOX ))
        ((NULL )))
       (subprogram_renaming_declaration
        ((overriding_indicator_opt subprogram_specification RENAMES name 
aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'block-middle 3 
'statement-other 6 'statement-end)
+        (wisi-statement-action [1 statement-start 2 block-middle 3 
statement-other 6 statement-end])
         (wisi-containing-action 2 5)
-        (wisi-face-action 4 'font-lock-function-name-face))))
+        (wisi-face-action [4 font-lock-function-name-face]))))
       (subprogram_specification
        ((procedure_specification ))
        ((function_specification )))
       (subtype_declaration
        ((SUBTYPE IDENTIFIER IS subtype_indication aspect_specification_opt 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'name 3 'statement-other 6 
'statement-end)
+        (wisi-statement-action [1 statement-start 2 name 3 statement-other 6 
statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 2 3)
-        (wisi-containing-action 3 4))))
+        (wisi-containing-action 3 4)
+        (wisi-containing-action 3 5)
+        (wisi-face-action [2 font-lock-type-face]))))
       (subtype_indication
        ((NOT NULL name constraint )
         (progn
-        (wisi-statement-action 1 'keyword)
         (wisi-containing-action 3 4)
-        (wisi-face-action 1 'font-lock-keyword-face 3 'font-lock-type-face)))
+        (wisi-face-action [3 font-lock-type-face])))
        ((NOT NULL name )
-        (progn
-        (wisi-statement-action 1 'keyword)
-        (wisi-face-action 1 'font-lock-keyword-face 3 'font-lock-type-face)))
+        (wisi-face-action [3 font-lock-type-face]))
        ((name constraint )
         (progn
         (wisi-containing-action 1 2)
-        (wisi-face-action 1 'font-lock-type-face)))
+        (wisi-face-action [1 font-lock-type-face])))
        ((name )
-        (wisi-face-action 1 'font-lock-type-face)))
+        (wisi-face-action [1 font-lock-type-face])))
       (subunit
        ((SEPARATE LEFT_PAREN name RIGHT_PAREN proper_body )
         (progn
-        (wisi-statement-action 1 'block-start 2 'open-paren 4 'close-paren 5 
'block-middle)
+        (wisi-statement-action [1 block-start 2 open-paren 4 close-paren 5 
block-middle])
         (wisi-containing-action 1 5)
         (wisi-containing-action 2 3))))
       (task_body
        ((TASK BODY IDENTIFIER aspect_specification_opt IS declarative_part_opt 
BEGIN handled_sequence_of_statements END identifier_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'name 5 'block-start 7 
'block-middle 9 'block-end 11 'statement-end)
+        (wisi-statement-action [1 statement-start 3 name 5 block-start 7 
block-middle 9 block-end 11 statement-end])
         (wisi-containing-action 3 4)
         (wisi-containing-action 5 6)
         (wisi-containing-action 7 8)
-        (wisi-motion-action 1 5 7 9))))
+        (wisi-motion-action [1 5 7 9])
+        (wisi-face-action [3 font-lock-type-face 10 font-lock-type-face]))))
       (task_body_stub
        ((TASK BODY IDENTIFIER IS SEPARATE aspect_specification_opt SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 7 'statement-end)
-        (wisi-containing-action 3 6))))
+        (wisi-statement-action [1 statement-start 7 statement-end])
+        (wisi-containing-action 3 6)
+        (wisi-face-action [3 font-lock-type-face]))))
       (task_definition
        ((declarative_part_opt PRIVATE declarative_part_opt END identifier_opt )
         (progn
-        (wisi-statement-action 2 'block-middle 4 'block-end)
-        (wisi-containing-action 2 3)))
+        (wisi-statement-action [2 block-middle 4 block-end])
+        (wisi-containing-action 2 3)
+        (wisi-face-action [5 font-lock-type-face])))
        ((declarative_part_opt END identifier_opt )
-        (wisi-statement-action 2 'block-end)))
+        (progn
+        (wisi-statement-action [2 block-end])
+        (wisi-face-action [3 font-lock-type-face]))))
       (task_type_declaration
        ((TASK TYPE IDENTIFIER discriminant_part_opt aspect_specification_opt 
IS NEW interface_list WITH task_definition SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'name 10 'statement-other 
11 'statement-end)
+        (wisi-statement-action [1 statement-start 3 name 10 statement-other 11 
statement-end])
         (wisi-containing-action 3 5)
-        (wisi-containing-action 9 10)))
+        (wisi-containing-action 9 10)
+        (wisi-face-action [2 font-lock-type-face])))
        ((TASK TYPE IDENTIFIER discriminant_part_opt aspect_specification_opt 
IS task_definition SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'name 6 'block-start 8 
'statement-end)
+        (wisi-statement-action [1 statement-start 3 name 6 block-start 8 
statement-end])
         (wisi-containing-action 3 5)
-        (wisi-containing-action 6 7)))
+        (wisi-containing-action 6 7)
+        (wisi-face-action [3 font-lock-type-face])))
        ((TASK TYPE IDENTIFIER discriminant_part_opt aspect_specification_opt 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'name 6 'statement-end)
-        (wisi-containing-action 3 5))))
+        (wisi-statement-action [1 statement-start 3 name 6 statement-end])
+        (wisi-containing-action 3 5)
+        (wisi-face-action [3 font-lock-type-face]))))
       (term
        ((factor ))
        ((term multiplying_operator factor )))
@@ -1666,7 +1717,7 @@
       (timed_entry_call
        ((SELECT entry_call_alternative OR delay_alternative END SELECT 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'block-start 3 'block-middle 5 'block-end 6 
'statement-end)
+        (wisi-statement-action [1 block-start 3 block-middle 5 block-end 6 
statement-end])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4))))
       (triggering_alternative
@@ -1693,7 +1744,7 @@
       (variant_part
        ((CASE direct_name_opt IS variant_list END CASE SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'block-start 5 'block-end 
7 'statement-end)
+        (wisi-statement-action [1 statement-start 3 block-start 5 block-end 7 
statement-end])
         (wisi-containing-action 3 4))))
       (variant_list
        ((variant ))
@@ -1701,7 +1752,7 @@
       (variant
        ((WHEN discrete_choice_list EQUAL_GREATER component_list_opt )
         (progn
-        (wisi-statement-action 1 'block-middle 3 'statement-other)
+        (wisi-statement-action [1 block-middle 3 statement-other])
         (wisi-containing-action 1 2)
         (wisi-containing-action 3 4))))
       (unary_adding_operator
@@ -1710,33 +1761,40 @@
       (use_clause
        ((USE name_list SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'statement-end)
-        (wisi-containing-action 1 2)))
+        (wisi-statement-action [1 statement-start 3 statement-end])
+        (wisi-containing-action 1 2)
+        (wisi-face-list-action [2 font-lock-function-name-face])))
        ((USE ALL TYPE name_list SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 5 'statement-end)
-        (wisi-containing-action 1 4)))
+        (wisi-statement-action [1 statement-start 5 statement-end])
+        (wisi-containing-action 1 4)
+        (wisi-face-list-action [4 font-lock-type-face])))
        ((USE TYPE name_list SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 4 'statement-end)
-        (wisi-containing-action 1 3))))
+        (wisi-statement-action [1 statement-start 4 statement-end])
+        (wisi-containing-action 1 3)
+        (wisi-face-list-action [3 font-lock-type-face]))))
       (with_clause
        ((LIMITED PRIVATE WITH name_list SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'statement-other 5 
'statement-end)
-        (wisi-containing-action 3 4)))
+        (wisi-statement-action [1 statement-start 3 statement-other 5 
statement-end])
+        (wisi-containing-action 3 4)
+        (wisi-face-list-action [4 font-lock-function-name-face])))
        ((LIMITED WITH name_list SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'statement-other 4 
'statement-end)
-        (wisi-containing-action 2 3)))
+        (wisi-statement-action [1 statement-start 2 statement-other 4 
statement-end])
+        (wisi-containing-action 2 3)
+        (wisi-face-list-action [3 font-lock-function-name-face])))
        ((PRIVATE WITH name_list SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 2 'statement-other 4 
'statement-end)
-        (wisi-containing-action 2 3)))
+        (wisi-statement-action [1 statement-start 2 statement-other 4 
statement-end])
+        (wisi-containing-action 2 3)
+        (wisi-face-list-action [3 font-lock-function-name-face])))
        ((WITH name_list SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'statement-end)
-        (wisi-containing-action 1 2)))))
+        (wisi-statement-action [1 statement-start 3 statement-end])
+        (wisi-containing-action 1 2)
+        (wisi-face-list-action [2 font-lock-function-name-face])))))
      [((default . error) (SEPARATE .  10) (USE .  11) (LIMITED .  3) (PRIVATE 
.  8) (WITH .  12) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(PACKAGE .  6) (GENERIC .  2))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (FUNCTION . ( 73 (generic_formal_part . 1))) 
(PROCEDURE . ( 75 (generic_formal_part . 1))) (PACKAGE . ( 74 
(generic_formal_part . 1))) (PRAGMA .  7) (WITH .  77) (TYPE .  76) (IDENTIFIER 
.  72))
@@ -1783,16 +1841,16 @@
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (SEMICOLON .  125))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
-      ((default . error) ($EOI . accept) (XOR . accept) (WITH . accept) (WHILE 
. accept) (WHEN . accept) (USE . accept) (UNTIL . accept) (TYPE . accept) (THEN 
. accept) (TERMINATE . accept) (TASK . accept) (TAGGED . accept) (SYNCHRONIZED 
. accept) (SUBTYPE . accept) (SOME . accept) (SELECT . accept) (SEPARATE . 
accept) (RIGHT_PAREN . accept) (REVERSE . accept) (RETURN . accept) (REQUEUE . 
accept) (RENAMES . accept) (REM . accept) (RECORD . accept) (RANGE . accept) 
(RAISE . accept) (PROTE [...]
+      ((default . error) ($EOI . accept) (XOR . accept) (WITH . accept) (WHILE 
. accept) (WHEN . accept) (USE . accept) (UNTIL . accept) (TYPE . accept) (THEN 
. accept) (TERMINATE . accept) (TASK . accept) (TAGGED . accept) (SYNCHRONIZED 
. accept) (SUBTYPE . accept) (SOME . accept) (SELECT . accept) (SEPARATE . 
accept) (RIGHT_PAREN . accept) (REVERSE . accept) (RETURN . accept) (REQUEUE . 
accept) (RENAMES . accept) (REM . accept) (RECORD . accept) (RANGE . accept) 
(RAISE . accept) (PROTE [...]
       ((default . error) (WITH . (compilation_unit_list . 1)) (USE . 
(compilation_unit_list . 1)) (SEPARATE . (compilation_unit_list . 1)) 
(PROCEDURE . (compilation_unit_list . 1)) (PRIVATE . (compilation_unit_list . 
1)) (PRAGMA . (compilation_unit_list . 1)) (PACKAGE . (compilation_unit_list . 
1)) (OVERRIDING . (compilation_unit_list . 1)) (NOT . (compilation_unit_list . 
1)) (LIMITED . (compilation_unit_list . 1)) (GENERIC . (compilation_unit_list . 
1)) (FUNCTION . (compilation_unit_lis [...]
-      ((default . error) (USE . (name . 0)) (DO . (name . 0)) (RENAMES . (name 
. 0)) (ELSIF . (name . 0)) (ELSE . (name . 0)) (LESS_LESS . (name . 0)) 
(IDENTIFIER . (name . 0)) (STRING_LITERAL . (name . 0)) (CHARACTER_LITERAL . 
(name . 0)) (ACCEPT . (name . 0)) (ABORT . (name . 0)) (BEGIN . (name . 0)) 
(CASE . (name . 0)) (DECLARE . (name . 0)) (DELAY . (name . 0)) (EXIT . (name . 
0)) (FOR . (name . 0)) (GOTO . (name . 0)) (IF . (name . 0)) (LOOP . (name . 
0)) (NULL . (name . 0)) (PRAGMA [...]
-      ((default . error) (USE . (name . 7)) (DO . (name . 7)) (RENAMES . (name 
. 7)) (ELSIF . (name . 7)) (ELSE . (name . 7)) (LESS_LESS . (name . 7)) 
(IDENTIFIER . (name . 7)) (STRING_LITERAL . (name . 7)) (CHARACTER_LITERAL . 
(name . 7)) (ACCEPT . (name . 7)) (ABORT . (name . 7)) (BEGIN . (name . 7)) 
(CASE . (name . 7)) (DECLARE . (name . 7)) (DELAY . (name . 7)) (EXIT . (name . 
7)) (FOR . (name . 7)) (GOTO . (name . 7)) (IF . (name . 7)) (LOOP . (name . 
7)) (NULL . (name . 7)) (PRAGMA [...]
-      ((default . error) (DO . (name . 1)) (USE . (name . 1)) (COMMA . (name . 
1)) (RENAMES . (name . 1)) (ELSIF . (name . 1)) (ELSE . (name . 1)) (LESS_LESS 
. (name . 1)) (IDENTIFIER . (name . 1)) (STRING_LITERAL . (name . 1)) 
(CHARACTER_LITERAL . (name . 1)) (ACCEPT . (name . 1)) (ABORT . (name . 1)) 
(BEGIN . (name . 1)) (CASE . (name . 1)) (DECLARE . (name . 1)) (DELAY . (name 
. 1)) (EXIT . (name . 1)) (FOR . (name . 1)) (GOTO . (name . 1)) (IF . (name . 
1)) (LOOP . (name . 1)) (NULL  [...]
-      ((default . error) (USE . (name . 4)) (DO . (name . 4)) (RENAMES . (name 
. 4)) (ELSIF . (name . 4)) (ELSE . (name . 4)) (LESS_LESS . (name . 4)) 
(IDENTIFIER . (name . 4)) (STRING_LITERAL . (name . 4)) (CHARACTER_LITERAL . 
(name . 4)) (ACCEPT . (name . 4)) (ABORT . (name . 4)) (BEGIN . (name . 4)) 
(CASE . (name . 4)) (DECLARE . (name . 4)) (DELAY . (name . 4)) (EXIT . (name . 
4)) (FOR . (name . 4)) (GOTO . (name . 4)) (IF . (name . 4)) (LOOP . (name . 
4)) (NULL . (name . 4)) (PRAGMA [...]
+      ((default . error) (USE . (name . 0)) (DO . (name . 0)) (ELSIF . (name . 
0)) (RENAMES . (name . 0)) (ELSE . (name . 0)) (LESS_LESS . (name . 0)) 
(IDENTIFIER . (name . 0)) (STRING_LITERAL . (name . 0)) (CHARACTER_LITERAL . 
(name . 0)) (ACCEPT . (name . 0)) (ABORT . (name . 0)) (BEGIN . (name . 0)) 
(CASE . (name . 0)) (DECLARE . (name . 0)) (DELAY . (name . 0)) (EXIT . (name . 
0)) (FOR . (name . 0)) (GOTO . (name . 0)) (IF . (name . 0)) (LOOP . (name . 
0)) (NULL . (name . 0)) (PRAGMA [...]
+      ((default . error) (USE . (name . 7)) (DO . (name . 7)) (ELSIF . (name . 
7)) (RENAMES . (name . 7)) (ELSE . (name . 7)) (LESS_LESS . (name . 7)) 
(IDENTIFIER . (name . 7)) (STRING_LITERAL . (name . 7)) (CHARACTER_LITERAL . 
(name . 7)) (ACCEPT . (name . 7)) (ABORT . (name . 7)) (BEGIN . (name . 7)) 
(CASE . (name . 7)) (DECLARE . (name . 7)) (DELAY . (name . 7)) (EXIT . (name . 
7)) (FOR . (name . 7)) (GOTO . (name . 7)) (IF . (name . 7)) (LOOP . (name . 
7)) (NULL . (name . 7)) (PRAGMA [...]
+      ((default . error) (DO . (name . 1)) (USE . (name . 1)) (ELSIF . (name . 
1)) (COMMA . (name . 1)) (RENAMES . (name . 1)) (ELSE . (name . 1)) (LESS_LESS 
. (name . 1)) (IDENTIFIER . (name . 1)) (STRING_LITERAL . (name . 1)) 
(CHARACTER_LITERAL . (name . 1)) (ACCEPT . (name . 1)) (ABORT . (name . 1)) 
(BEGIN . (name . 1)) (CASE . (name . 1)) (DECLARE . (name . 1)) (DELAY . (name 
. 1)) (EXIT . (name . 1)) (FOR . (name . 1)) (GOTO . (name . 1)) (IF . (name . 
1)) (LOOP . (name . 1)) (NULL  [...]
+      ((default . error) (USE . (name . 4)) (DO . (name . 4)) (ELSIF . (name . 
4)) (RENAMES . (name . 4)) (ELSE . (name . 4)) (LESS_LESS . (name . 4)) 
(IDENTIFIER . (name . 4)) (STRING_LITERAL . (name . 4)) (CHARACTER_LITERAL . 
(name . 4)) (ACCEPT . (name . 4)) (ABORT . (name . 4)) (BEGIN . (name . 4)) 
(CASE . (name . 4)) (DECLARE . (name . 4)) (DELAY . (name . 4)) (EXIT . (name . 
4)) (FOR . (name . 4)) (GOTO . (name . 4)) (IF . (name . 4)) (LOOP . (name . 
4)) (NULL . (name . 4)) (PRAGMA [...]
       ((default . error) (COMMA .  119) (SEMICOLON .  123))
       ((default . error) (DOT .  87) (SEMICOLON . (name_list . 0)) (COMMA . 
(name_list . 0)) (TICK .  88) (LEFT_PAREN .  106))
-      ((default . error) (DO . (name . 6)) (USE . (name . 6)) (RENAMES . (name 
. 6)) (ELSIF . (name . 6)) (ELSE . (name . 6)) (LESS_LESS . (name . 6)) 
(IDENTIFIER . (name . 6)) (STRING_LITERAL . (name . 6)) (CHARACTER_LITERAL . 
(name . 6)) (ACCEPT . (name . 6)) (ABORT . (name . 6)) (BEGIN . (name . 6)) 
(CASE . (name . 6)) (DECLARE . (name . 6)) (DELAY . (name . 6)) (EXIT . (name . 
6)) (FOR . (name . 6)) (GOTO . (name . 6)) (IF . (name . 6)) (LOOP . (name . 
6)) (NULL . (name . 6)) (PRAGMA [...]
-      ((default . error) (DO . (name . 3)) (USE . (name . 3)) (RENAMES . (name 
. 3)) (ELSIF . (name . 3)) (ELSE . (name . 3)) (LESS_LESS . (name . 3)) 
(IDENTIFIER . (name . 3)) (STRING_LITERAL . (name . 3)) (CHARACTER_LITERAL . 
(name . 3)) (ACCEPT . (name . 3)) (ABORT . (name . 3)) (BEGIN . (name . 3)) 
(CASE . (name . 3)) (DECLARE . (name . 3)) (DELAY . (name . 3)) (EXIT . (name . 
3)) (FOR . (name . 3)) (GOTO . (name . 3)) (IF . (name . 3)) (LOOP . (name . 
3)) (NULL . (name . 3)) (PRAGMA [...]
+      ((default . error) (DO . (name . 6)) (USE . (name . 6)) (ELSIF . (name . 
6)) (RENAMES . (name . 6)) (ELSE . (name . 6)) (LESS_LESS . (name . 6)) 
(IDENTIFIER . (name . 6)) (STRING_LITERAL . (name . 6)) (CHARACTER_LITERAL . 
(name . 6)) (ACCEPT . (name . 6)) (ABORT . (name . 6)) (BEGIN . (name . 6)) 
(CASE . (name . 6)) (DECLARE . (name . 6)) (DELAY . (name . 6)) (EXIT . (name . 
6)) (FOR . (name . 6)) (GOTO . (name . 6)) (IF . (name . 6)) (LOOP . (name . 
6)) (NULL . (name . 6)) (PRAGMA [...]
+      ((default . error) (DO . (name . 3)) (USE . (name . 3)) (ELSIF . (name . 
3)) (RENAMES . (name . 3)) (ELSE . (name . 3)) (LESS_LESS . (name . 3)) 
(IDENTIFIER . (name . 3)) (STRING_LITERAL . (name . 3)) (CHARACTER_LITERAL . 
(name . 3)) (ACCEPT . (name . 3)) (ABORT . (name . 3)) (BEGIN . (name . 3)) 
(CASE . (name . 3)) (DECLARE . (name . 3)) (DELAY . (name . 3)) (EXIT . (name . 
3)) (FOR . (name . 3)) (GOTO . (name . 3)) (IF . (name . 3)) (LOOP . (name . 
3)) (NULL . (name . 3)) (PRAGMA [...]
       ((default . error) (TYPE .  122))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (COMMA .  119) (SEMICOLON .  120))
@@ -1824,32 +1882,32 @@
       ((default . error) (COMMA .  95) (COLON .  94))
       ((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 .  87) (TICK .  88) (RETURN .  90) (LEFT_PAREN . 
 89))
-      ((default . error) (IDENTIFIER .  225) (CHARACTER_LITERAL .  227) 
(STRING_LITERAL .  226) (ALL .  228))
-      ((default . error) (LEFT_PAREN .  220) (ACCESS .  217) (DELTA .  218) 
(DIGITS .  219) (MOD .  221) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (STRING_LITERAL .  49) (CHARACTER_LITERAL .  170) 
(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 .  144) 
(MINUS .  143) (IDENTIFIER .  213) (OTHERS .  172) (ABS .  146) (NOT .  171) 
(NULL .  150) (NEW .  148) (LEFT_PAREN .  147))
-      ((default . error) (WITH . (name_opt . 0)) (SEMICOLON . (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 .  208) (IDENTIFIER .  48) (CHARACTER_LITERAL .  
50) (STRING_LITERAL .  49))
+      ((default . error) (IDENTIFIER .  228) (CHARACTER_LITERAL .  230) 
(STRING_LITERAL .  229) (ALL .  231))
+      ((default . error) (LEFT_PAREN .  223) (ACCESS .  220) (DELTA .  221) 
(DIGITS .  222) (MOD .  224) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
+      ((default . error) (STRING_LITERAL .  49) (CHARACTER_LITERAL .  173) 
(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 .  144) 
(MINUS .  143) (IDENTIFIER .  216) (OTHERS .  175) (ABS .  147) (NOT .  174) 
(NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (RAISE .  152) (LEFT_PAREN 
.  148))
+      ((default . error) (WITH . (name_opt . 0)) (SEMICOLON . (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 .  211) (IDENTIFIER .  48) (CHARACTER_LITERAL .  
50) (STRING_LITERAL .  49))
       ((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 .  [...]
-      ((default . error) (RETURN .  207))
+      ((default . error) (RETURN .  210))
       ((default . error) (RENAMES . (function_specification . 0)) (IS . 
(function_specification . 0)) (SEMICOLON . (function_specification . 0)) (WITH 
. (function_specification . 0)))
-      ((default . error) (ACCESS . (mode_opt . 0)) (NOT . (mode_opt . 0)) 
(IDENTIFIER . (mode_opt . 0)) (STRING_LITERAL . (mode_opt . 0)) 
(CHARACTER_LITERAL . (mode_opt . 0)) (IN .  204) (OUT .  205))
-      ((default . error) (IDENTIFIER .  203))
+      ((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 .  207) (OUT .  208))
+      ((default . error) (IDENTIFIER .  206))
       ((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 .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (IS .  200) (SEMICOLON . (aspect_specification_opt . 
0)) (WITH .  108))
-      ((default . error) (WITH . (discriminant_part_opt . 0)) (SEMICOLON . 
(discriminant_part_opt . 0)) (IS . (discriminant_part_opt . 0)) (LEFT_PAREN .  
198))
-      ((default . error) (DOT .  87) (TICK .  88) (RENAMES .  197) (LEFT_PAREN 
.  106))
-      ((default . error) (DOT .  87) (TICK .  88) (RENAMES .  196) (LEFT_PAREN 
.  106))
-      ((default . error) (DOT .  87) (TICK .  88) (RENAMES .  195) (LEFT_PAREN 
.  106))
-      ((default . error) (COMMA .  119) (SEMICOLON .  194))
+      ((default . error) (IS .  203) (SEMICOLON . (aspect_specification_opt . 
0)) (WITH .  108))
+      ((default . error) (WITH . (discriminant_part_opt . 0)) (SEMICOLON . 
(discriminant_part_opt . 0)) (IS . (discriminant_part_opt . 0)) (LEFT_PAREN .  
201))
+      ((default . error) (DOT .  87) (TICK .  88) (RENAMES .  200) (LEFT_PAREN 
.  106))
+      ((default . error) (DOT .  87) (TICK .  88) (RENAMES .  199) (LEFT_PAREN 
.  106))
+      ((default . error) (DOT .  87) (TICK .  88) (RENAMES .  198) (LEFT_PAREN 
.  106))
+      ((default . error) (COMMA .  119) (SEMICOLON .  197))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (NEW .  192))
-      ((default . error) (IDENTIFIER .  48) (STRING_LITERAL .  49) 
(CHARACTER_LITERAL .  170) (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 .  144) (MINUS .  143) (OTHERS .  172) (ABS .  146) (NOT .  171) (NULL .  
150) (NEW .  148) (LEFT_PAREN .  147))
+      ((default . error) (NEW .  195))
+      ((default . error) (IDENTIFIER .  48) (STRING_LITERAL .  49) 
(CHARACTER_LITERAL .  173) (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 .  144) (MINUS .  143) (OTHERS .  175) (ABS .  147) (NOT .  174) 
(NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (RAISE .  152) (LEFT_PAREN 
.  148))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((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 .  172) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  170) (STRING_LITERAL .  49) (PLUS .  
144) (MINUS .  143) (ABS .  146) (NOT .  171) (NULL .  150) (NEW .  148) 
(LEFT_PAREN .  147))
-      ((default . error) (IS .  169))
+      ((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 .  175) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  173) (STRING_LITERAL .  49) (RAISE .  
152) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  174) (NUMERIC_LITERAL .  
145) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (IS .  172))
       ((default . error) (DOT .  87) (TICK .  88) (IS . 
(aspect_specification_opt . 0)) (WITH .  108) (LEFT_PAREN .  106))
       ((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 . [...]
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  145) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  146) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  148))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
       ((default . error) (COMMA .  119) (SEMICOLON .  141))
       ((default . error) (DOT .  87) (TICK .  88) (IS . ( 105 
(aspect_specification_opt . 0))) (WITH .  108) (LEFT_PAREN .  106))
@@ -1868,96 +1926,99 @@
       ((default . error) (SEMICOLON .  133) (IS .  134))
       ((default . error) (DOT .  87) (TICK .  88) (IS . ( 132 
(parameter_profile_opt . 0))) (SEMICOLON . (parameter_profile_opt . 0)) (WITH . 
(parameter_profile_opt . 0)) (RENAMES . (parameter_profile_opt . 0)) 
(LEFT_PAREN .  89))
       ((default . error) (DOT .  87) (TICK .  88) (IS .  131) (RETURN .  90) 
(LEFT_PAREN .  89))
-      ((default . error) (NEW .  384))
-      ((default . error) (NEW .  383))
+      ((default . error) (NEW .  390))
+      ((default . error) (NEW .  389))
       ((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  [...]
-      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  292) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  289) (IDENTIFIER .  288) (TYPE 
.  294) (GENERIC .  2) (PROTECTED .  291) (TASK .  293) (PACKAGE .  290))
+      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  299) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  296) (IDENTIFIER .  295) (TYPE 
.  301) (GENERIC .  2) (PROTECTED .  298) (TASK .  300) (PACKAGE .  297))
       ((default . error) (DOT .  87) (TICK .  88) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108) (LEFT_PAREN .  106))
       ((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_d [...]
-      ((default . error) (COMMA .  119) (SEMICOLON .  380))
+      ((default . error) (COMMA .  119) (SEMICOLON .  386))
       ((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_cla [...]
       ((default . error) (DOT .  87) (TICK .  88) (SEMICOLON . (name_list . 
1)) (COMMA . (name_list . 1)) (LEFT_PAREN .  106))
-      ((default . error) (PROTECTED .  376) (TASK .  377) (PACKAGE .  375) 
(NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)))
+      ((default . error) (PROTECTED .  382) (TASK .  383) (PACKAGE .  381) 
(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 .  133))
-      ((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 .  373) (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) [...]
-      ((default . error) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (IF .  368) (CASE .  366) (FOR .  367) (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 .  144) (MINUS .  143) (OTHERS .  172) (ABS . 
 146) (NOT .  171) (IDENTIFIER .  48) (CHARACTER_LITERAL .  170) 
(STRING_LITERAL .  49) (NULL .  229) (NEW .  148) (LEFT_PAREN .  147))
-      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (NUMERIC_LITERAL . (unary_adding_operator . 1)) 
(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) (NUMERIC_LITERAL . (unary_adding_operator . 0)) 
(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) (OF . (primary . 0)) (COLON_EQUAL . (primary . 0)) 
(DO . (primary . 0)) (LOOP . (primary . 0)) (ELSIF . (primary . 0)) (ELSE . 
(primary . 0)) (DIGITS . (primary . 0)) (RIGHT_PAREN . (primary . 0)) (COMMA . 
(primary . 0)) (RANGE . (primary . 0)) (THEN . (primary . 0)) (WITH . (primary 
. 0)) (BAR . (primary . 0)) (EQUAL_GREATER . (primary . 0)) (IS . (primary . 
0)) (IN . (primary . 0)) (NOT . (primary . 0)) (EQUAL . (primary . 0)) (GREATER 
. (primary . 0)) (GREATER [...]
+      ((default . error) (EQUAL_GREATER .  379) (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) [...]
+      ((default . error) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (CASE .  232) (IF .  233) (FOR .  374) (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)) (RAISE .  152) (PLUS .  144) (MINUS .  143) (OTHERS 
.  175) (ABS .  147) (NOT .  174) (IDENTIFIER .  48) (CHARACTER_LITERAL .  173) 
(STRING_LITERAL .  49) (NUMERIC_LITERAL .  145) (NULL .  234) (NEW .  149) 
(LEFT_PAREN .  148))
+      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
+      ((default . error) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (OF . (primary . 1)) (COLON_EQUAL . (primary . 1)) 
(DO . (primary . 1)) (LOOP . (primary . 1)) (ELSIF . (primary . 1)) (ELSE . 
(primary . 1)) (DIGITS . (primary . 1)) (RIGHT_PAREN . (primary . 1)) (COMMA . 
(primary . 1)) (RANGE . (primary . 1)) (THEN . (primary . 1)) (WITH . (primary 
. 1)) (BAR . (primary . 1)) (EQUAL_GREATER . (primary . 1)) (IS . (primary . 
1)) (IN . (primary . 1)) (NOT . (primary . 1)) (EQUAL . (primary . 1)) (GREATER 
. (primary . 1)) (GREATER [...]
+      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
+      ((default . error) (OF . (primary . 2)) (COLON_EQUAL . (primary . 2)) 
(DO . (primary . 2)) (LOOP . (primary . 2)) (ELSIF . (primary . 2)) (ELSE . 
(primary . 2)) (DIGITS . (primary . 2)) (RIGHT_PAREN . (primary . 2)) (COMMA . 
(primary . 2)) (RANGE . (primary . 2)) (THEN . (primary . 2)) (WITH . (primary 
. 2)) (BAR . (primary . 2)) (EQUAL_GREATER . (primary . 2)) (IS . (primary . 
2)) (IN . (primary . 2)) (NOT . (primary . 2)) (EQUAL . (primary . 2)) (GREATER 
. (primary . 2)) (GREATER [...]
       ((default . error) (COMMA . (pragma_argument_association . 1)) 
(RIGHT_PAREN . (pragma_argument_association . 1)))
       ((default . error) (OF . (term . 0)) (COLON_EQUAL . (term . 0)) (DO . 
(term . 0)) (LOOP . (term . 0)) (ELSIF . (term . 0)) (ELSE . (term . 0)) 
(DIGITS . (term . 0)) (RIGHT_PAREN . (term . 0)) (COMMA . (term . 0)) (RANGE . 
(term . 0)) (THEN . (term . 0)) (WITH . (term . 0)) (BAR . (term . 0)) 
(EQUAL_GREATER . (term . 0)) (IS . (term . 0)) (IN . (term . 0)) (NOT . (term . 
0)) (EQUAL . (term . 0)) (GREATER . (term . 0)) (GREATER_EQUAL . (term . 0)) 
(LESS . (term . 0)) (LESS_EQUAL . (t [...]
-      ((default . error) (DOT .  87) (OF . (primary . 2)) (COLON_EQUAL . 
(primary . 2)) (DO . (primary . 2)) (LOOP . (primary . 2)) (BAR . (primary . 
2)) (COMMA . (primary . 2)) (ELSIF . (primary . 2)) (ELSE . (primary . 2)) 
(EQUAL_GREATER . (primary . 2)) (RIGHT_PAREN . (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 .  [...]
+      ((default . error) (DOT .  87) (OF . (primary . 3)) (COLON_EQUAL . 
(primary . 3)) (DO . (primary . 3)) (LOOP . (primary . 3)) (BAR . (primary . 
3)) (COMMA . (primary . 3)) (ELSIF . (primary . 3)) (ELSE . (primary . 3)) 
(EQUAL_GREATER . (primary . 3)) (RIGHT_PAREN . (primary . 3)) (DIGITS . 
(primary . 3)) (RANGE . (primary . 3)) (THEN . (primary . 3)) (DOT_DOT . 
(primary . 3)) (WITH . (primary . 3)) (IS . (primary . 3)) (IN . (primary . 3)) 
(NOT . (primary . 3)) (EQUAL . (primary .  [...]
       ((default . error) (RIGHT_PAREN . (pragma_argument_association_list . 
0)) (COMMA . (pragma_argument_association_list . 0)))
-      ((default . error) (COMMA .  363) (RIGHT_PAREN .  364))
-      ((default . error) (OF . (factor . 1)) (COLON_EQUAL . (factor . 1)) (DO 
. (factor . 1)) (LOOP . (factor . 1)) (ELSIF . (factor . 1)) (ELSE . (factor . 
1)) (DIGITS . (factor . 1)) (COMMA . (factor . 1)) (RIGHT_PAREN . (factor . 1)) 
(RANGE . (factor . 1)) (THEN . (factor . 1)) (WITH . (factor . 1)) (BAR . 
(factor . 1)) (EQUAL_GREATER . (factor . 1)) (IS . (factor . 1)) (SLASH_EQUAL . 
(factor . 1)) (LESS_EQUAL . (factor . 1)) (LESS . (factor . 1)) (GREATER_EQUAL 
. (factor . 1)) (GREAT [...]
-      ((default . error) (AND .  361) (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 .  360) (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 .  359) (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 .  358) (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 .  357) (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 .  356) (OR .  355) (AND .  354) (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 .  271) (NOT .  272) (DO . (relation . 0)) (LOOP 
. (relation . 0)) (COMMA . (relation . 0)) (ELSIF . (relation . 0)) (ELSE . 
(relation . 0)) (EQUAL_GREATER . (relation . 0)) (RIGHT_PAREN . (relation . 0)) 
(DIGITS . (relation . 0)) (RANGE . (relation . 0)) (THEN . (relation . 0)) 
(SEMICOLON . (relation . 0)) (WITH . (relation . 0)) (IS . (relation . 0)) (AND 
. (relation . 0)) (OR . (relation . 0)) (XOR . (relation . 0)) (EQUAL .  265) 
(SLASH_EQUAL .  270) (LES [...]
-      ((default . error) (OF . (term_list . 0)) (COLON_EQUAL . (term_list . 
0)) (DO . (term_list . 0)) (LOOP . (term_list . 0)) (ELSIF . (term_list . 0)) 
(ELSE . (term_list . 0)) (DIGITS . (term_list . 0)) (COMMA . (term_list . 0)) 
(RIGHT_PAREN . (term_list . 0)) (RANGE . (term_list . 0)) (THEN . (term_list . 
0)) (WITH . (term_list . 0)) (BAR . (term_list . 0)) (EQUAL_GREATER . 
(term_list . 0)) (IS . (term_list . 0)) (SLASH_EQUAL . (term_list . 0)) 
(LESS_EQUAL . (term_list . 0)) (LESS .  [...]
-      ((default . error) (OF . (simple_expression . 1)) (COLON_EQUAL . 
(simple_expression . 1)) (DO . (simple_expression . 1)) (LOOP . 
(simple_expression . 1)) (ELSIF . (simple_expression . 1)) (ELSE . 
(simple_expression . 1)) (DIGITS . (simple_expression . 1)) (RIGHT_PAREN . 
(simple_expression . 1)) (COMMA . (simple_expression . 1)) (RANGE . 
(simple_expression . 1)) (THEN . (simple_expression . 1)) (WITH . 
(simple_expression . 1)) (BAR . (simple_expression . 1)) (EQUAL_GREATER . 
(simple [...]
-      ((default . error) (ABS .  146) (NOT .  149) (NULL .  150) (NEW .  148) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  147))
-      ((default . error) (IS .  342))
-      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  292) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 289) (IDENTIFIER .  288) (TYPE .  294) (GENERIC .  2) (PROTECTED .  291) (TASK 
.  293) (PACKAGE .  290))
-      ((default . error) (SEMICOLON . (name . 1)) (IS . (name . 1)) (WITH . 
(name . 1)) (RANGE . (name . 1)) (TICK . (name . 1)) (LEFT_PAREN . (name . 1)) 
(DOT . (name . 1)) (PLUS . (name . 1)) (MINUS . (name . 1)) (AMPERSAND . (name 
. 1)) (DOT_DOT . (name . 1)) (IN . (name . 1)) (NOT . (name . 1)) (EQUAL . 
(name . 1)) (GREATER . (name . 1)) (GREATER_EQUAL . (name . 1)) (LESS . (name . 
1)) (LESS_EQUAL . (name . 1)) (SLASH_EQUAL . (name . 1)) (RIGHT_PAREN . (name . 
1)) (COMMA . (name . 1) [...]
-      ((default . error) (NULL .  285) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (COMMA .  370) (RIGHT_PAREN .  371))
+      ((default . error) (OF . (factor . 1)) (COLON_EQUAL . (factor . 1)) (DO 
. (factor . 1)) (LOOP . (factor . 1)) (ELSIF . (factor . 1)) (ELSE . (factor . 
1)) (DIGITS . (factor . 1)) (COMMA . (factor . 1)) (RIGHT_PAREN . (factor . 1)) 
(RANGE . (factor . 1)) (THEN . (factor . 1)) (WITH . (factor . 1)) (BAR . 
(factor . 1)) (EQUAL_GREATER . (factor . 1)) (IS . (factor . 1)) (SLASH_EQUAL . 
(factor . 1)) (LESS_EQUAL . (factor . 1)) (LESS . (factor . 1)) (GREATER_EQUAL 
. (factor . 1)) (GREAT [...]
+      ((default . error) (DO . (relation . 4)) (LOOP . (relation . 4)) (ELSIF 
. (relation . 4)) (ELSE . (relation . 4)) (EQUAL_GREATER . (relation . 4)) 
(DIGITS . (relation . 4)) (RIGHT_PAREN . (relation . 4)) (COMMA . (relation . 
4)) (RANGE . (relation . 4)) (THEN . (relation . 4)) (SEMICOLON . (relation . 
4)) (WITH . (relation . 4)) (IS . (relation . 4)) (AND . (relation . 4)) (OR . 
(relation . 4)) (XOR . (relation . 4)))
+      ((default . error) (DO . (expression . 1)) (LOOP . (expression . 1)) 
(XOR . (expression . 1)) (OR . (expression . 1)) (AND . ( 368 (expression . 
1))) (ELSIF . (expression . 1)) (ELSE . (expression . 1)) (EQUAL_GREATER . 
(expression . 1)) (DIGITS . (expression . 1)) (COMMA . (expression . 1)) 
(RIGHT_PAREN . (expression . 1)) (RANGE . (expression . 1)) (THEN . (expression 
. 1)) (WITH . (expression . 1)) (SEMICOLON . (expression . 1)) (IS . 
(expression . 1)))
+      ((default . error) (DO . (expression . 2)) (LOOP . (expression . 2)) 
(XOR . (expression . 2)) (OR . (expression . 2)) (AND . ( 367 (expression . 
2))) (ELSIF . (expression . 2)) (ELSE . (expression . 2)) (EQUAL_GREATER . 
(expression . 2)) (DIGITS . (expression . 2)) (COMMA . (expression . 2)) 
(RIGHT_PAREN . (expression . 2)) (RANGE . (expression . 2)) (THEN . (expression 
. 2)) (WITH . (expression . 2)) (SEMICOLON . (expression . 2)) (IS . 
(expression . 2)))
+      ((default . error) (DO . (expression . 3)) (LOOP . (expression . 3)) 
(XOR . (expression . 3)) (OR . ( 366 (expression . 3))) (AND . (expression . 
3)) (ELSIF . (expression . 3)) (ELSE . (expression . 3)) (EQUAL_GREATER . 
(expression . 3)) (DIGITS . (expression . 3)) (COMMA . (expression . 3)) 
(RIGHT_PAREN . (expression . 3)) (RANGE . (expression . 3)) (THEN . (expression 
. 3)) (WITH . (expression . 3)) (SEMICOLON . (expression . 3)) (IS . 
(expression . 3)))
+      ((default . error) (DO . (expression . 4)) (LOOP . (expression . 4)) 
(XOR . (expression . 4)) (OR . ( 365 (expression . 4))) (AND . (expression . 
4)) (ELSIF . (expression . 4)) (ELSE . (expression . 4)) (EQUAL_GREATER . 
(expression . 4)) (DIGITS . (expression . 4)) (COMMA . (expression . 4)) 
(RIGHT_PAREN . (expression . 4)) (RANGE . (expression . 4)) (THEN . (expression 
. 4)) (WITH . (expression . 4)) (SEMICOLON . (expression . 4)) (IS . 
(expression . 4)))
+      ((default . error) (DO . (expression . 5)) (LOOP . (expression . 5)) 
(XOR . ( 364 (expression . 5))) (OR . (expression . 5)) (AND . (expression . 
5)) (ELSIF . (expression . 5)) (ELSE . (expression . 5)) (EQUAL_GREATER . 
(expression . 5)) (DIGITS . (expression . 5)) (COMMA . (expression . 5)) 
(RIGHT_PAREN . (expression . 5)) (RANGE . (expression . 5)) (THEN . (expression 
. 5)) (WITH . (expression . 5)) (SEMICOLON . (expression . 5)) (IS . 
(expression . 5)))
+      ((default . error) (DO . (expression . 0)) (LOOP . (expression . 0)) 
(XOR . ( 363 (expression . 0))) (OR . ( 362 (expression . 0))) (AND . ( 361 
(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 .  278) (NOT .  279) (DO . (relation . 0)) (LOOP 
. (relation . 0)) (COMMA . (relation . 0)) (ELSIF . (relation . 0)) (ELSE . 
(relation . 0)) (EQUAL_GREATER . (relation . 0)) (RIGHT_PAREN . (relation . 0)) 
(DIGITS . (relation . 0)) (RANGE . (relation . 0)) (THEN . (relation . 0)) 
(SEMICOLON . (relation . 0)) (WITH . (relation . 0)) (IS . (relation . 0)) (AND 
. (relation . 0)) (OR . (relation . 0)) (XOR . (relation . 0)) (EQUAL .  272) 
(SLASH_EQUAL .  277) (LES [...]
+      ((default . error) (OF . (term_list . 0)) (COLON_EQUAL . (term_list . 
0)) (DO . (term_list . 0)) (LOOP . (term_list . 0)) (ELSIF . (term_list . 0)) 
(ELSE . (term_list . 0)) (DIGITS . (term_list . 0)) (COMMA . (term_list . 0)) 
(RIGHT_PAREN . (term_list . 0)) (RANGE . (term_list . 0)) (THEN . (term_list . 
0)) (WITH . (term_list . 0)) (BAR . (term_list . 0)) (EQUAL_GREATER . 
(term_list . 0)) (IS . (term_list . 0)) (SLASH_EQUAL . (term_list . 0)) 
(LESS_EQUAL . (term_list . 0)) (LESS .  [...]
+      ((default . error) (OF . (simple_expression . 1)) (COLON_EQUAL . 
(simple_expression . 1)) (DO . (simple_expression . 1)) (LOOP . 
(simple_expression . 1)) (ELSIF . (simple_expression . 1)) (ELSE . 
(simple_expression . 1)) (DIGITS . (simple_expression . 1)) (RIGHT_PAREN . 
(simple_expression . 1)) (COMMA . (simple_expression . 1)) (RANGE . 
(simple_expression . 1)) (THEN . (simple_expression . 1)) (WITH . 
(simple_expression . 1)) (BAR . (simple_expression . 1)) (EQUAL_GREATER . 
(simple [...]
+      ((default . error) (ABS .  147) (NOT .  150) (NUMERIC_LITERAL .  145) 
(NULL .  151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (IS .  349))
+      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  299) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 296) (IDENTIFIER .  295) (TYPE .  301) (GENERIC .  2) (PROTECTED .  298) (TASK 
.  300) (PACKAGE .  297))
+      ((default . error) (SEMICOLON . (name . 1)) (IS . (name . 1)) (WITH . 
(name . 1)) (RANGE . (name . 1)) (TICK . (name . 1)) (LEFT_PAREN . (name . 1)) 
(DOT . (name . 1)) (PLUS . (name . 1)) (MINUS . (name . 1)) (AMPERSAND . (name 
. 1)) (DOT_DOT . (name . 1)) (IN . (name . 1)) (NOT . (name . 1)) (EQUAL . 
(name . 1)) (GREATER . (name . 1)) (GREATER_EQUAL . (name . 1)) (LESS . (name . 
1)) (LESS_EQUAL . (name . 1)) (SLASH_EQUAL . (name . 1)) (RIGHT_PAREN . (name . 
1)) (COMMA . (name . 1) [...]
+      ((default . error) (NUMERIC_LITERAL .  145) (NULL .  292) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (BAR . (discrete_choice . 3)) (EQUAL_GREATER . 
(discrete_choice . 3)))
       ((default . error) (SEMICOLON . (association_list . 0)) (IS . 
(association_list . 0)) (RIGHT_PAREN . (association_list . 0)) (COMMA . 
(association_list . 0)))
-      ((default . error) (COMMA .  261) (SEMICOLON . (aspect_specification_opt 
. 1)) (IS . (aspect_specification_opt . 1)))
+      ((default . error) (COMMA .  268) (SEMICOLON . (aspect_specification_opt 
. 1)) (IS . (aspect_specification_opt . 1)))
       ((default . error) (BAR . (discrete_choice . 0)) (EQUAL_GREATER . 
(discrete_choice . 0)))
-      ((default . error) (AND .  284) (EQUAL_GREATER . (choice_expression . 
1)) (BAR . (choice_expression . 1)))
-      ((default . error) (OR .  283) (EQUAL_GREATER . (choice_expression . 2)) 
(BAR . (choice_expression . 2)))
-      ((default . error) (XOR .  282) (EQUAL_GREATER . (choice_expression . 
3)) (BAR . (choice_expression . 3)))
-      ((default . error) (AND .  281) (EQUAL_GREATER . (choice_expression . 
4)) (BAR . (choice_expression . 4)))
-      ((default . error) (OR .  280) (EQUAL_GREATER . (choice_expression . 5)) 
(BAR . (choice_expression . 5)))
-      ((default . error) (XOR .  279) (OR .  278) (AND .  277) (EQUAL_GREATER 
. (choice_expression . 0)) (BAR . (choice_expression . 0)))
+      ((default . error) (AND .  291) (EQUAL_GREATER . (choice_expression . 
1)) (BAR . (choice_expression . 1)))
+      ((default . error) (OR .  290) (EQUAL_GREATER . (choice_expression . 2)) 
(BAR . (choice_expression . 2)))
+      ((default . error) (XOR .  289) (EQUAL_GREATER . (choice_expression . 
3)) (BAR . (choice_expression . 3)))
+      ((default . error) (AND .  288) (EQUAL_GREATER . (choice_expression . 
4)) (BAR . (choice_expression . 4)))
+      ((default . error) (OR .  287) (EQUAL_GREATER . (choice_expression . 5)) 
(BAR . (choice_expression . 5)))
+      ((default . error) (XOR .  286) (OR .  285) (AND .  284) (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 .  275) (EQUAL_GREATER .  276))
+      ((default . error) (BAR .  282) (EQUAL_GREATER .  283))
       ((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 .  87) (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) [...]
+      ((default . error) (DOT .  87) (DO . (primary . 3)) (LOOP . (primary . 
3)) (ELSIF . (primary . 3)) (ELSE . (primary . 3)) (DIGITS . (primary . 3)) 
(RANGE . (primary . 3)) (THEN . (primary . 3)) (SEMICOLON . (primary . 3)) (IS 
. (primary . 3)) (WITH . (primary . 3)) (IN . (primary . 3)) (NOT . (primary . 
3)) (RIGHT_PAREN . (primary . 3)) (COMMA . (primary . 3)) (PLUS . (primary . 
3)) (MINUS . (primary . 3)) (AMPERSAND . (primary . 3)) (DOT_DOT . (primary . 
3)) (SLASH . (primary . 3) [...]
       ((default . error) (BAR . (discrete_choice . 2)) (EQUAL_GREATER . 
(discrete_choice . 2)))
-      ((default . error) (IN .  271) (NOT .  272) (SEMICOLON . (relation . 0)) 
(IS . (relation . 0)) (WITH . (relation . 0)) (RIGHT_PAREN . (relation . 0)) 
(COMMA . (relation . 0)) (DOT_DOT .  264) (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 .  265) (SLASH_EQUAL .  270) (LESS .  268) 
(LESS_EQUAL .  269) (GREATER .  26 [...]
+      ((default . error) (IN .  278) (NOT .  279) (SEMICOLON . (relation . 0)) 
(IS . (relation . 0)) (WITH . (relation . 0)) (RIGHT_PAREN . (relation . 0)) 
(COMMA . (relation . 0)) (DOT_DOT .  271) (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 .  272) (SLASH_EQUAL .  277) (LESS .  275) 
(LESS_EQUAL .  276) (GREATER .  27 [...]
       ((default . error) (DOT .  87) (TICK .  88) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108) (LEFT_PAREN .  106))
-      ((default . error) (COMMA .  261) (RIGHT_PAREN .  262))
-      ((default . error) (BAR . (discrete_choice . 2)) (EQUAL_GREATER . 
(discrete_choice . 2)) (RIGHT_PAREN .  260))
+      ((default . error) (COMMA .  268) (RIGHT_PAREN .  269))
+      ((default . error) (BAR . (discrete_choice . 2)) (EQUAL_GREATER . 
(discrete_choice . 2)) (RIGHT_PAREN .  267))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (COMMA .  119) (SEMICOLON .  258))
+      ((default . error) (COMMA .  119) (SEMICOLON .  265))
       ((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 .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (BOX .  251) (SEMICOLON . 
(discriminant_specification_opt . 0)) (RIGHT_PAREN . 
(discriminant_specification_opt . 0)) (IDENTIFIER .  72))
-      ((default . error) (IS .  249) (SEMICOLON . (aspect_specification_opt . 
0)) (WITH .  108))
-      ((default . error) (ABSTRACT .  245) (BOX .  244) (NULL .  246) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
-      ((default . error) (SEMICOLON .  243))
-      ((default . error) (DOT .  87) (TICK .  88) (IS .  242) (LEFT_PAREN .  
106))
+      ((default . error) (BOX .  258) (SEMICOLON . 
(discriminant_specification_opt . 0)) (RIGHT_PAREN . 
(discriminant_specification_opt . 0)) (IDENTIFIER .  72))
+      ((default . error) (IS .  256) (SEMICOLON . (aspect_specification_opt . 
0)) (WITH .  108))
+      ((default . error) (ABSTRACT .  252) (BOX .  251) (NULL .  253) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (SEMICOLON .  250))
+      ((default . error) (DOT .  87) (TICK .  88) (IS .  249) (LEFT_PAREN .  
106))
       ((default . error) (COLON . (identifier_list . 1)) (COMMA . 
(identifier_list . 1)))
-      ((default . error) (OUT .  241) (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 .  248) (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 .  208))
-      ((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)) (WITH . (null_exclusion_opt . 0)) (SEMICOLON . 
(null_exclusion_opt . 0)) (IS . (null_exclusion_opt . 0)) (ACCESS . 
(null_exclusion_opt . 0)) (NOT .  208))
-      ((default . error) (NULL .  236))
+      ((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 .  211))
+      ((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)) (WITH . (null_exclusion_opt . 0)) (SEMICOLON . 
(null_exclusion_opt . 0)) (IS . (null_exclusion_opt . 0)) (ACCESS . 
(null_exclusion_opt . 0)) (NOT .  211))
+      ((default . error) (NULL .  243))
       ((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)) (WITH . (parameter_and_result_profile . 3)) 
(SEMICOLON . (parameter_and_result_profile . 3)) (IS . 
(parameter_and_result_profile . 3)))
       ((default . error) (DOT .  87) (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 .  
88) (LEFT_PAREN .  106))
       ((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)) (WITH . (parameter_and_result_profile . 1)) 
(SEMICOLON . (parameter_and_result_profile . 1)) (IS . 
(parameter_and_result_profile . 1)))
-      ((default . error) (ACCESS .  235))
+      ((default . error) (ACCESS .  242))
       ((default . error) (IN . (name . 0)) (NOT . (name . 0)) (EQUAL . (name . 
0)) (GREATER . (name . 0)) (GREATER_EQUAL . (name . 0)) (LESS . (name . 0)) 
(LESS_EQUAL . (name . 0)) (SLASH_EQUAL . (name . 0)) (BAR . (name . 0)) 
(EQUAL_GREATER . (name . 0)) (AND . (name . 0)) (OR . (name . 0)) (XOR . (name 
. 0)) (RIGHT_PAREN . (name . 0)) (LEFT_PAREN . (name . 0)) (RANGE . (name . 0)) 
(TICK . (name . 0)) (DOT . (name . 0)) (PLUS . (name . 0)) (MINUS . (name . 0)) 
(AMPERSAND . (name . 0)) ( [...]
-      ((default . error) (COLON .  234) (COMMA .  95))
+      ((default . error) (COLON .  241) (COMMA .  95))
       ((default . error) (RIGHT_PAREN . (parameter_specification_list . 0)) 
(SEMICOLON . (parameter_specification_list . 0)))
-      ((default . error) (SEMICOLON .  232) (RIGHT_PAREN .  233))
+      ((default . error) (SEMICOLON .  239) (RIGHT_PAREN .  240))
       ((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 [...]
       ((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 [...]
       ((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 [...]
-      ((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 .  144) 
(MINUS .  143) (OTHERS .  172) (ABS .  146) (NOT .  171) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  170) (STRING_LITERAL .  49) (NULL .  229) (NEW .  148) 
(LEFT_PAREN .  147))
+      ((default . error) (CASE .  232) (IF .  233) (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)) (RAISE .  152) (PLUS .  144) (MINUS .  143) (OTHERS 
.  175) (ABS .  147) (NOT .  174) (IDENTIFIER .  48) (CHARACTER_LITERAL .  173) 
(STRING_LITERAL .  49) (NUMERIC_LITERAL .  145) (NULL .  234) (NEW .  149) 
(LEFT_PAREN .  148))
       ((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 [...]
       ((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 [...]
       ((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 . [...]
@@ -1966,80 +2027,84 @@
       ((default . error) (DO . (selected_component . 2)) (RIGHT_PAREN . 
(selected_component . 2)) (BAR . (selected_component . 2)) (ELSIF . 
(selected_component . 2)) (ELSE . (selected_component . 2)) (EQUAL_GREATER . 
(selected_component . 2)) (DIGITS . (selected_component . 2)) (RANGE . 
(selected_component . 2)) (THEN . (selected_component . 2)) (DOT_DOT . 
(selected_component . 2)) (IN . (selected_component . 2)) (NOT . 
(selected_component . 2)) (EQUAL . (selected_component . 2)) (GREATE [...]
       ((default . error) (DO . (selected_component . 1)) (RIGHT_PAREN . 
(selected_component . 1)) (BAR . (selected_component . 1)) (ELSIF . 
(selected_component . 1)) (ELSE . (selected_component . 1)) (EQUAL_GREATER . 
(selected_component . 1)) (DIGITS . (selected_component . 1)) (RANGE . 
(selected_component . 1)) (THEN . (selected_component . 1)) (DOT_DOT . 
(selected_component . 1)) (IN . (selected_component . 1)) (NOT . 
(selected_component . 1)) (EQUAL . (selected_component . 1)) (GREATE [...]
       ((default . error) (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)) (GREATE [...]
-      ((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)) (STA [...]
-      ((default . error) (COMMA .  261) (RIGHT_PAREN .  516))
-      ((default . error) (RIGHT_PAREN . (expression_opt . 1)) (COMMA . 
(expression_opt . 1)) (WITH .  515))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (DOT_DOT . (primary . 1)) (RIGHT_PAREN . (primary . 
1)) (COMMA . (primary . 1)) (BAR . (primary . 1)) (EQUAL_GREATER . (primary . 
1)) (PLUS . (primary . 1)) (MINUS . (primary . 1)) (AMPERSAND . (primary . 1)) 
(IN . (primary . 1)) (NOT . (primary . 1)) (EQUAL . (primary . 1)) (GREATER . 
(primary . 1)) (GREATER_EQUAL . (primary . 1)) (LESS . (primary . 1)) 
(LESS_EQUAL . (primary . 1)) (SLASH_EQUAL . (primary . 1)) (WITH . (primary . 
1)) (SLASH . (primary . 1)) (STA [...]
+      ((default . error) (COMMA .  268) (RIGHT_PAREN .  523))
+      ((default . error) (RIGHT_PAREN .  522))
+      ((default . error) (RIGHT_PAREN . (expression_opt . 1)) (COMMA . 
(expression_opt . 1)) (WITH .  521))
+      ((default . error) (RIGHT_PAREN .  520))
       ((default . error) (IDENTIFIER .  72))
       ((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) (ACCESS . (aliased_opt . 0)) (NOT . (aliased_opt . 
0)) (IN . (aliased_opt . 0)) (OUT . (aliased_opt . 0)) (IDENTIFIER . 
(aliased_opt . 0)) (STRING_LITERAL . (aliased_opt . 0)) (CHARACTER_LITERAL . 
(aliased_opt . 0)) (ALIASED .  512))
-      ((default . error) (FUNCTION . (protected_opt . 0)) (PROCEDURE . 
(protected_opt . 0)) (PROTECTED .  509) (IDENTIFIER . 
(general_access_modifier_opt . 0)) (STRING_LITERAL . 
(general_access_modifier_opt . 0)) (CHARACTER_LITERAL . 
(general_access_modifier_opt . 0)) (ALL .  507) (CONSTANT .  508))
+      ((default . error) (ACCESS . (aliased_opt . 0)) (NOT . (aliased_opt . 
0)) (IN . (aliased_opt . 0)) (OUT . (aliased_opt . 0)) (IDENTIFIER . 
(aliased_opt . 0)) (STRING_LITERAL . (aliased_opt . 0)) (CHARACTER_LITERAL . 
(aliased_opt . 0)) (ALIASED .  517))
+      ((default . error) (FUNCTION . (protected_opt . 0)) (PROCEDURE . 
(protected_opt . 0)) (PROTECTED .  514) (IDENTIFIER . 
(general_access_modifier_opt . 0)) (STRING_LITERAL . 
(general_access_modifier_opt . 0)) (CHARACTER_LITERAL . 
(general_access_modifier_opt . 0)) (ALL .  512) (CONSTANT .  513))
       ((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)) (WITH . 
(null_exclusion_opt . 1)) (SEMICOLON . (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)) (SEMICOLON . 
(parameter_and_result_profile . 2)) (WITH . (parameter_and_result_profile . 2)))
-      ((default . error) (ACCESS .  235) (WITH . (name_opt . 0)) (SEMICOLON . 
(name_opt . 0)) (IS . (name_opt . 0)) (RENAMES . (name_opt . 0)) (COLON_EQUAL . 
(name_opt . 0)) (RIGHT_PAREN . (name_opt . 0)) (DO . (name_opt . 0)) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
-      ((default . error) (COLON_EQUAL .  504) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108))
-      ((default . error) (ACCESS .  235) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49))
+      ((default . error) (ACCESS .  242) (WITH . (name_opt . 0)) (SEMICOLON . 
(name_opt . 0)) (IS . (name_opt . 0)) (RENAMES . (name_opt . 0)) (COLON_EQUAL . 
(name_opt . 0)) (RIGHT_PAREN . (name_opt . 0)) (DO . (name_opt . 0)) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (COLON_EQUAL .  509) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108))
+      ((default . error) (ACCESS .  242) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49))
       ((default . error) (CHARACTER_LITERAL . (mode_opt . 2)) (STRING_LITERAL 
. (mode_opt . 2)) (IDENTIFIER . (mode_opt . 2)) (NOT . (mode_opt . 2)) (ACCESS 
. (mode_opt . 2)))
-      ((default . error) (NEW .  502))
+      ((default . error) (NEW .  507))
       ((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 .  
108) (BOX .  244) (NULL .  246) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
+      ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108) (BOX .  251) (NULL .  253) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (WITH . (subprogram_default . 2)) (SEMICOLON . 
(subprogram_default . 2)))
       ((default . error) (WITH . (subprogram_default . 0)) (SEMICOLON . 
(subprogram_default . 0)) (DOT .  87) (TICK .  88) (LEFT_PAREN .  106))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
-      ((default . error) (LEFT_PAREN .  484) (RANGE .  488) (MOD .  486) 
(DIGITS .  482) (DELTA .  481) (TASK .  491) (PROTECTED .  487) (INTERFACE .  
483) (ARRAY .  480) (PRIVATE . (abstract_tagged_limited_opt . 0)) (TAGGED .  
490) (NEW . (abstract_limited_synchronized_opt . 0)) (ABSTRACT .  479) (LIMITED 
.  485) (SYNCHRONIZED .  489) (ACCESS . (null_exclusion_opt . 0)) (NOT .  208))
-      ((default . error) (SEMICOLON .  478))
-      ((default . error) (RIGHT_PAREN .  477))
+      ((default . error) (LEFT_PAREN .  489) (RANGE .  493) (MOD .  491) 
(DIGITS .  487) (DELTA .  486) (TASK .  496) (PROTECTED .  492) (INTERFACE .  
488) (ARRAY .  485) (PRIVATE . (abstract_tagged_limited_opt . 0)) (TAGGED .  
495) (NEW . (abstract_limited_synchronized_opt . 0)) (ABSTRACT .  484) (LIMITED 
.  490) (SYNCHRONIZED .  494) (ACCESS . (null_exclusion_opt . 0)) (NOT .  211))
+      ((default . error) (SEMICOLON .  483))
+      ((default . error) (RIGHT_PAREN .  482))
       ((default . error) (RIGHT_PAREN . (discriminant_specification_list . 0)) 
(SEMICOLON . (discriminant_specification_list . 0)))
-      ((default . error) (SEMICOLON .  475) (RIGHT_PAREN .  476))
-      ((default . error) (COMMA .  95) (COLON .  474))
+      ((default . error) (SEMICOLON .  480) (RIGHT_PAREN .  481))
+      ((default . error) (COMMA .  95) (COLON .  479))
       ((default . error) (DOT .  87) (TICK .  88) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108) (LEFT_PAREN .  106))
       ((default . error) (DOT .  87) (TICK .  88) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108) (LEFT_PAREN .  106))
       ((default . error) (DOT .  87) (TICK .  88) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108) (LEFT_PAREN .  106))
       ((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 .  87) (TICK .  88) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108) (LEFT_PAREN .  106))
       ((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_ [...]
-      ((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 .  172) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  170) (STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) 
(ABS .  146) (NOT .  171) (NULL .  150) (NEW . [...]
+      ((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 .  175) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  173) (STRING_LITERAL .  49) (RAISE .  152) (PLUS .  144) 
(MINUS .  143) (ABS .  147) (NOT .  174) (NUME [...]
       ((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 . [...]
-      ((default . error) (SEMICOLON .  468))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((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 .  144) (MINUS .  143) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ABS .  146) (NOT .  149) 
(NULL .  150) (NEW .  148) (LEFT_PAREN .  147))
-      ((default . error) (IN .  462))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (RANGE .  460) (LEFT_PAREN .  220) (ACCESS .  217) 
(DELTA .  218) (DIGITS .  219) (MOD .  221) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
-      ((default . error) (OTHERS .  172) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
171) (NULL .  150) (NEW .  148) (LEFT_PAREN .  147))
-      ((default . error) (BOX .  456) (PLUS .  144) (MINUS .  143) (ABS .  
146) (NOT .  149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (THEN .  454) (PLUS .  144) (MINUS .  143) (ABS .  
146) (NOT .  149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (ELSE .  452) (PLUS .  144) (MINUS .  143) (ABS .  
146) (NOT .  149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (ELSE .  450))
-      ((default . error) (THEN .  449))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((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 . (primar [...]
+      ((default . error) (SEMICOLON .  473))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (MINUS . (relational_operator . 0)) (PLUS . 
(relational_operator . 0)) (NUMERIC_LITERAL . (relational_operator . 0)) 
(IDENTIFIER . (relational_operator . 0)) (STRING_LITERAL . (relational_operator 
. 0)) (CHARACTER_LITERAL . (relational_operator . 0)) (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)) (NUMERIC_LITERAL . (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)) (NUMERIC_LITERAL . (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)) (NUMERIC_LITERAL . (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)) (NUMERIC_LITERAL . (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)) (NUMERIC_LITERAL . (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 .  144) (MINUS .  143) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ABS .  147) (NOT .  150) 
(NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (IN .  467))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (RANGE .  465) (LEFT_PAREN .  223) (ACCESS .  220) 
(DELTA .  221) (DIGITS .  222) (MOD .  224) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (OTHERS .  175) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
174) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (BOX .  461) (RAISE .  152) (PLUS .  144) (MINUS .  
143) (ABS .  147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  
149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  148))
+      ((default . error) (THEN .  459) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (ELSE .  457) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (ELSE .  455))
+      ((default . error) (THEN .  454))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (XOR . (primary . 1)) (OR . (primary . 1)) (AND . 
(primary . 1)) (SLASH_EQUAL . (primary . 1)) (LESS_EQUAL . (primary . 1)) (LESS 
. (primary . 1)) (GREATER_EQUAL . (primary . 1)) (GREATER . (primary . 1)) 
(EQUAL . (primary . 1)) (EQUAL_GREATER . (primary . 1)) (BAR . (primary . 1)) 
(PLUS . (primary . 1)) (MINUS . (primary . 1)) (AMPERSAND . (primary . 1)) 
(DOT_DOT . (primary . 1)) (SLASH . (primary . 1)) (STAR . (primary . 1)) (MOD . 
(primary . 1)) (REM . (primar [...]
       ((default . error) (COLON_EQUAL . (factor . 3)) (OF . (factor . 3)) 
(LOOP . (factor . 3)) (DO . (factor . 3)) (PLUS . (factor . 3)) (MINUS . 
(factor . 3)) (AMPERSAND . (factor . 3)) (SEMICOLON . (factor . 3)) (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 .  [...]
-      ((default . error) (BOX .  442) (PLUS .  144) (MINUS .  143) (ABS .  
146) (NOT .  149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (COLON . ( 441 (identifier_list . 0))) (COMMA . 
(identifier_list . 0)))
-      ((default . error) (IDENTIFIER .  436) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  437))
-      ((default . error) (BODY .  435) (IDENTIFIER .  48) (CHARACTER_LITERAL . 
 50) (STRING_LITERAL .  49))
-      ((default . error) (IDENTIFIER .  432) (TYPE .  434) (BODY .  433))
-      ((default . error) (IDENTIFIER .  431))
-      ((default . error) (TYPE .  430) (BODY .  429) (IDENTIFIER .  428))
-      ((default . error) (IDENTIFIER .  427))
+      ((default . error) (BOX .  447) (RAISE .  152) (PLUS .  144) (MINUS .  
143) (ABS .  147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  
149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  148))
+      ((default . error) (COLON . ( 446 (identifier_list . 0))) (COMMA . 
(identifier_list . 0)))
+      ((default . error) (IDENTIFIER .  441) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  442))
+      ((default . error) (BODY .  440) (IDENTIFIER .  48) (CHARACTER_LITERAL . 
 50) (STRING_LITERAL .  49))
+      ((default . error) (IDENTIFIER .  437) (TYPE .  439) (BODY .  438))
+      ((default . error) (IDENTIFIER .  436))
+      ((default . error) (TYPE .  435) (BODY .  434) (IDENTIFIER .  433))
+      ((default . error) (IDENTIFIER .  432))
       ((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)) (IDE [...]
       ((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)) (IDE [...]
       ((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)) ( [...]
       ((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)) (IDE [...]
       ((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 .  [...]
-      ((default . error) (END . (declarative_part_opt . 1)) (PRIVATE . 
(declarative_part_opt . 1)) (BEGIN . (declarative_part_opt . 1)) (USE .  11) 
(SUBTYPE .  292) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  289) (IDENTIFIER .  288) (TYPE 
.  294) (GENERIC .  2) (PROTECTED .  291) (TASK .  293) (PACKAGE .  290))
-      ((default . error) (END .  424) (PRIVATE .  425))
+      ((default . error) (END . (declarative_part_opt . 1)) (PRIVATE . 
(declarative_part_opt . 1)) (BEGIN . (declarative_part_opt . 1)) (USE .  11) 
(SUBTYPE .  299) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  296) (IDENTIFIER .  295) (TYPE 
.  301) (GENERIC .  2) (PROTECTED .  298) (TASK .  300) (PACKAGE .  297))
+      ((default . error) (END .  429) (PRIVATE .  430))
       ((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)) (IDE [...]
       ((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)) ( [...]
       ((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)) (IDE [...]
@@ -2048,12 +2113,12 @@
       ((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)) (IDE [...]
       ((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)) (IDE [...]
       ((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)) (PROCEDUR [...]
-      ((default . error) (COMMA .  95) (COLON .  423))
+      ((default . error) (COMMA .  95) (COLON .  428))
       ((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_d [...]
       ((default . error) (END . (declaration . 8)) (PRIVATE . (declaration . 
8)) (USE . (declaration . 8)) (TYPE . (declaration . 8)) (TASK . (declaration . 
8)) (SUBTYPE . (declaration . 8)) (PROTECTED . (declaration . 8)) (PROCEDURE . 
(declaration . 8)) (PRAGMA . (declaration . 8)) (PACKAGE . (declaration . 8)) 
(OVERRIDING . (declaration . 8)) (NOT . (declaration . 8)) (GENERIC . 
(declaration . 8)) (FUNCTION . (declaration . 8)) (FOR . (declaration . 8)) 
(ENTRY . (declaration . 8)) (IDE [...]
       ((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 . (declara [...]
       ((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)) (PROCEDUR [...]
-      ((default . error) (ENTRY .  419) (FUNCTION .  40) (PROCEDURE .  41))
+      ((default . error) (ENTRY .  424) (FUNCTION .  40) (PROCEDURE .  41))
       ((default . error) ($EOI . (proper_body . 1)) (LIMITED . (proper_body . 
1)) (SEPARATE . (proper_body . 1)) (WITH . (proper_body . 1)) (END . 
(proper_body . 1)) (PRIVATE . (proper_body . 1)) (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)) (GEN [...]
       ((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)) (BEGI [...]
       ((default . error) (END . (declaration . 11)) (PRIVATE . (declaration . 
11)) (USE . (declaration . 11)) (TYPE . (declaration . 11)) (TASK . 
(declaration . 11)) (SUBTYPE . (declaration . 11)) (PROTECTED . (declaration . 
11)) (PROCEDURE . (declaration . 11)) (PRAGMA . (declaration . 11)) (PACKAGE . 
(declaration . 11)) (OVERRIDING . (declaration . 11)) (NOT . (declaration . 
11)) (GENERIC . (declaration . 11)) (FUNCTION . (declaration . 11)) (FOR . 
(declaration . 11)) (ENTRY . (declara [...]
@@ -2079,293 +2144,295 @@
       ((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)) [...]
       ((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 . (declara [...]
       ((default . error) (END . (declaration . 17)) (PRIVATE . (declaration . 
17)) (USE . (declaration . 17)) (TYPE . (declaration . 17)) (TASK . 
(declaration . 17)) (SUBTYPE . (declaration . 17)) (PROTECTED . (declaration . 
17)) (PROCEDURE . (declaration . 17)) (PRAGMA . (declaration . 17)) (PACKAGE . 
(declaration . 17)) (OVERRIDING . (declaration . 17)) (NOT . (declaration . 
17)) (GENERIC . (declaration . 17)) (FUNCTION . (declaration . 17)) (FOR . 
(declaration . 17)) (ENTRY . (declara [...]
-      ((default . error) (BEGIN . (declarative_part_opt . 0)) (END . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  292) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 289) (IDENTIFIER .  288) (TYPE .  294) (GENERIC .  2) (PROTECTED .  291) (TASK 
.  293) (PACKAGE .  290))
-      ((default . error) (COLON_EQUAL . (simple_expression . 0)) (OF . 
(simple_expression . 0)) (LOOP . (simple_expression . 0)) (DO . 
(simple_expression . 0)) (DOT_DOT . (simple_expression . 0)) (SEMICOLON . 
(simple_expression . 0)) (XOR . (simple_expression . 0)) (OR . 
(simple_expression . 0)) (AND . (simple_expression . 0)) (SLASH_EQUAL . 
(simple_expression . 0)) (LESS_EQUAL . (simple_expression . 0)) (LESS . 
(simple_expression . 0)) (GREATER_EQUAL . (simple_expression . 0)) (GREATER  
[...]
-      ((default . error) (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 .  146) (NOT .  149) (NULL .  150) (NEW .  148) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  147))
-      ((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 .  146) (NOT .  149) (NULL .  150) (NEW .  148) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  147))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (THEN .  413) (PLUS .  144) (MINUS .  143) (ABS .  
146) (NOT .  149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (ELSE .  411) (PLUS .  144) (MINUS .  143) (ABS .  
146) (NOT .  149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (ELSE .  408))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (THEN .  406))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  145) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (SEMICOLON .  402))
-      ((default . error) (DOT .  87) (TICK .  88) (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)) (LES [...]
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (ALL .  398) (SOME .  399))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (RIGHT_PAREN .  396))
-      ((default . error) (RIGHT_PAREN .  395))
-      ((default . error) (RIGHT_PAREN .  394))
+      ((default . error) (BEGIN . (declarative_part_opt . 0)) (END . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  299) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 296) (IDENTIFIER .  295) (TYPE .  301) (GENERIC .  2) (PROTECTED .  298) (TASK 
.  300) (PACKAGE .  297))
+      ((default . error) (COLON_EQUAL . (simple_expression . 0)) (OF . 
(simple_expression . 0)) (LOOP . (simple_expression . 0)) (DO . 
(simple_expression . 0)) (DOT_DOT . (simple_expression . 0)) (SEMICOLON . 
(simple_expression . 0)) (XOR . (simple_expression . 0)) (OR . 
(simple_expression . 0)) (AND . (simple_expression . 0)) (SLASH_EQUAL . 
(simple_expression . 0)) (LESS_EQUAL . (simple_expression . 0)) (LESS . 
(simple_expression . 0)) (GREATER_EQUAL . (simple_expression . 0)) (GREATER  
[...]
+      ((default . error) (NUMERIC_LITERAL . (binary_adding_operator . 2)) 
(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) (NUMERIC_LITERAL . (binary_adding_operator . 1)) 
(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) (NUMERIC_LITERAL . (binary_adding_operator . 0)) 
(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 .  147) (NOT .  150) (NUMERIC_LITERAL .  145) 
(NULL .  151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (NUMERIC_LITERAL . (multiplying_operator . 1)) 
(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) (NUMERIC_LITERAL . (multiplying_operator . 0)) 
(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) (NUMERIC_LITERAL . (multiplying_operator . 2)) 
(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) (NUMERIC_LITERAL . (multiplying_operator . 3)) 
(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 .  147) (NOT .  150) (NUMERIC_LITERAL .  145) 
(NULL .  151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (THEN .  418) (RAISE .  152) (PLUS .  144) (MINUS .  
143) (ABS .  147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  
149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  148))
+      ((default . error) (ELSE .  416) (RAISE .  152) (PLUS .  144) (MINUS .  
143) (ABS .  147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  
149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  148))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (ELSE .  413))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (THEN .  411))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  146) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  148))
+      ((default . error) (SEMICOLON .  407))
+      ((default . error) (LOOP . (raise_expression . 0)) (DO . 
(raise_expression . 0)) (XOR . (raise_expression . 0)) (OR . (raise_expression 
. 0)) (AND . (raise_expression . 0)) (IS . (raise_expression . 0)) (SEMICOLON . 
(raise_expression . 0)) (THEN . (raise_expression . 0)) (RANGE . 
(raise_expression . 0)) (RIGHT_PAREN . (raise_expression . 0)) (COMMA . 
(raise_expression . 0)) (DIGITS . (raise_expression . 0)) (EQUAL_GREATER . 
(raise_expression . 0)) (ELSE . (raise_expression . 0)) (E [...]
+      ((default . error) (DOT .  87) (TICK .  88) (COLON_EQUAL . (primary . 
4)) (OF . (primary . 4)) (LOOP . (primary . 4)) (DO . (primary . 4)) (STAR_STAR 
. (primary . 4)) (REM . (primary . 4)) (MOD . (primary . 4)) (STAR . (primary . 
4)) (SLASH . (primary . 4)) (DOT_DOT . (primary . 4)) (AMPERSAND . (primary . 
4)) (MINUS . (primary . 4)) (PLUS . (primary . 4)) (SEMICOLON . (primary . 4)) 
(XOR . (primary . 4)) (OR . (primary . 4)) (AND . (primary . 4)) (SLASH_EQUAL . 
(primary . 4)) (LES [...]
+      ((default . error) (ALL .  403) (SOME .  404))
+      ((default . error) (RIGHT_PAREN .  402))
+      ((default . error) (RIGHT_PAREN .  401))
+      ((default . error) (RIGHT_PAREN .  400))
       ((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 [...]
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (IDENTIFIER .  392))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (IDENTIFIER .  398))
       ((default . error) (BODY .  67))
-      ((default . error) (BODY .  391))
-      ((default . error) (BODY .  390))
+      ((default . error) (BODY .  397))
+      ((default . error) (BODY .  396))
       ((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_ [...]
-      ((default . error) (SEMICOLON .  388))
-      ((default . error) (BEGIN .  387))
+      ((default . error) (SEMICOLON .  394))
+      ((default . error) (BEGIN .  393))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (DOT .  87) (TICK .  88) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108) (LEFT_PAREN .  106))
       ((default . error) (DOT .  87) (TICK .  88) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108) (LEFT_PAREN .  106))
-      ((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 .  [...]
+      ((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 .  [...]
       ((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_d [...]
       ((default . error) (IS . (aspect_specification_opt . 0)) (WITH .  108))
-      ((default . error) (IDENTIFIER .  608))
-      ((default . error) (IDENTIFIER .  607))
-      ((default . error) (EQUAL_GREATER .  606))
+      ((default . error) (IDENTIFIER .  617))
+      ((default . error) (IDENTIFIER .  616))
+      ((default . error) (EQUAL_GREATER .  615))
       ((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 [...]
-      ((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 [...]
-      ((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 [...]
-      ((default . error) (THEN .  605))
+      ((default . error) (OF . (primary . 7)) (COLON_EQUAL . (primary . 7)) 
(DO . (primary . 7)) (LOOP . (primary . 7)) (ELSIF . (primary . 7)) (ELSE . 
(primary . 7)) (DIGITS . (primary . 7)) (RIGHT_PAREN . (primary . 7)) (COMMA . 
(primary . 7)) (RANGE . (primary . 7)) (THEN . (primary . 7)) (WITH . (primary 
. 7)) (BAR . (primary . 7)) (EQUAL_GREATER . (primary . 7)) (IS . (primary . 
7)) (IN . (primary . 7)) (NOT . (primary . 7)) (EQUAL . (primary . 7)) (GREATER 
. (primary . 7)) (GREATER [...]
+      ((default . error) (OF . ((primary . 5) (aggregate . 3))) (COLON_EQUAL . 
((primary . 5) (aggregate . 3))) (DO . ((primary . 5) (aggregate . 3))) (LOOP . 
((primary . 5) (aggregate . 3))) (ELSIF . ((primary . 5) (aggregate . 3))) 
(ELSE . ((primary . 5) (aggregate . 3))) (DIGITS . ((primary . 5) (aggregate . 
3))) (COMMA . ((primary . 5) (aggregate . 3))) (RIGHT_PAREN . ((primary . 5) 
(aggregate . 3))) (RANGE . ((primary . 5) (aggregate . 3))) (THEN . ((primary . 
5) (aggregate . 3))) ( [...]
+      ((default . error) (OF . ((primary . 6) (aggregate . 2))) (COLON_EQUAL . 
((primary . 6) (aggregate . 2))) (DO . ((primary . 6) (aggregate . 2))) (LOOP . 
((primary . 6) (aggregate . 2))) (ELSIF . ((primary . 6) (aggregate . 2))) 
(ELSE . ((primary . 6) (aggregate . 2))) (DIGITS . ((primary . 6) (aggregate . 
2))) (COMMA . ((primary . 6) (aggregate . 2))) (RIGHT_PAREN . ((primary . 6) 
(aggregate . 2))) (RANGE . ((primary . 6) (aggregate . 2))) (THEN . ((primary . 
6) (aggregate . 2))) ( [...]
       ((default . error) (IDENTIFIER . (quantifier . 0)))
       ((default . error) (IDENTIFIER . (quantifier . 1)))
-      ((default . error) (IDENTIFIER .  603))
-      ((default . error) (IS .  602))
+      ((default . error) (IDENTIFIER .  613))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((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_LIT [...]
       ((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)) (GREAT [...]
-      ((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 [...]
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((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 .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((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 [...]
-      ((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 [...]
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((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 .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((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 [...]
+      ((default . error) (DO . (relation_and_list . 1)) (LOOP . 
(relation_and_list . 1)) (XOR . (relation_and_list . 1)) (OR . 
(relation_and_list . 1)) (ELSIF . (relation_and_list . 1)) (ELSE . 
(relation_and_list . 1)) (EQUAL_GREATER . (relation_and_list . 1)) (DIGITS . 
(relation_and_list . 1)) (RIGHT_PAREN . (relation_and_list . 1)) (COMMA . 
(relation_and_list . 1)) (RANGE . (relation_and_list . 1)) (THEN . 
(relation_and_list . 1)) (SEMICOLON . (relation_and_list . 1)) (WITH . 
(relation [...]
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (DO . (relation_or_list . 1)) (LOOP . 
(relation_or_list . 1)) (XOR . (relation_or_list . 1)) (AND . (relation_or_list 
. 1)) (ELSIF . (relation_or_list . 1)) (ELSE . (relation_or_list . 1)) 
(EQUAL_GREATER . (relation_or_list . 1)) (DIGITS . (relation_or_list . 1)) 
(RIGHT_PAREN . (relation_or_list . 1)) (COMMA . (relation_or_list . 1)) (RANGE 
. (relation_or_list . 1)) (THEN . (relation_or_list . 1)) (SEMICOLON . 
(relation_or_list . 1)) (WITH . (relation_or_list . 1 [...]
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (DO . (relation_xor_list . 1)) (LOOP . 
(relation_xor_list . 1)) (OR . (relation_xor_list . 1)) (AND . 
(relation_xor_list . 1)) (ELSIF . (relation_xor_list . 1)) (ELSE . 
(relation_xor_list . 1)) (EQUAL_GREATER . (relation_xor_list . 1)) (DIGITS . 
(relation_xor_list . 1)) (RIGHT_PAREN . (relation_xor_list . 1)) (COMMA . 
(relation_xor_list . 1)) (RANGE . (relation_xor_list . 1)) (THEN . 
(relation_xor_list . 1)) (SEMICOLON . (relation_xor_list . 1)) (WITH . 
(relation [...]
+      ((default . error) (DO . (relation_xor_list . 0)) (LOOP . 
(relation_xor_list . 0)) (OR . (relation_xor_list . 0)) (AND . 
(relation_xor_list . 0)) (ELSIF . (relation_xor_list . 0)) (ELSE . 
(relation_xor_list . 0)) (EQUAL_GREATER . (relation_xor_list . 0)) (DIGITS . 
(relation_xor_list . 0)) (RIGHT_PAREN . (relation_xor_list . 0)) (COMMA . 
(relation_xor_list . 0)) (RANGE . (relation_xor_list . 0)) (THEN . 
(relation_xor_list . 0)) (SEMICOLON . (relation_xor_list . 0)) (WITH . 
(relation [...]
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (DO . (relation_or_list . 0)) (LOOP . 
(relation_or_list . 0)) (XOR . (relation_or_list . 0)) (AND . (relation_or_list 
. 0)) (ELSIF . (relation_or_list . 0)) (ELSE . (relation_or_list . 0)) 
(EQUAL_GREATER . (relation_or_list . 0)) (DIGITS . (relation_or_list . 0)) 
(RIGHT_PAREN . (relation_or_list . 0)) (COMMA . (relation_or_list . 0)) (RANGE 
. (relation_or_list . 0)) (THEN . (relation_or_list . 0)) (SEMICOLON . 
(relation_or_list . 0)) (WITH . (relation_or_list . 0 [...]
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (DO . (relation_and_list . 0)) (LOOP . 
(relation_and_list . 0)) (XOR . (relation_and_list . 0)) (OR . 
(relation_and_list . 0)) (ELSIF . (relation_and_list . 0)) (ELSE . 
(relation_and_list . 0)) (EQUAL_GREATER . (relation_and_list . 0)) (DIGITS . 
(relation_and_list . 0)) (RIGHT_PAREN . (relation_and_list . 0)) (COMMA . 
(relation_and_list . 0)) (RANGE . (relation_and_list . 0)) (THEN . 
(relation_and_list . 0)) (SEMICOLON . (relation_and_list . 0)) (WITH . 
(relation [...]
       ((default . error) (DO . (relation . 1)) (LOOP . (relation . 1)) (COMMA 
. (relation . 1)) (ELSIF . (relation . 1)) (ELSE . (relation . 1)) 
(EQUAL_GREATER . (relation . 1)) (RIGHT_PAREN . (relation . 1)) (DIGITS . 
(relation . 1)) (RANGE . (relation . 1)) (THEN . (relation . 1)) (SEMICOLON . 
(relation . 1)) (WITH . (relation . 1)) (IS . (relation . 1)) (AND . (relation 
. 1)) (OR . (relation . 1)) (XOR . (relation . 1)))
       ((default . error) (OF . (term . 1)) (COLON_EQUAL . (term . 1)) (DO . 
(term . 1)) (LOOP . (term . 1)) (ELSIF . (term . 1)) (ELSE . (term . 1)) 
(DIGITS . (term . 1)) (RIGHT_PAREN . (term . 1)) (COMMA . (term . 1)) (RANGE . 
(term . 1)) (THEN . (term . 1)) (WITH . (term . 1)) (BAR . (term . 1)) 
(EQUAL_GREATER . (term . 1)) (IS . (term . 1)) (IN . (term . 1)) (NOT . (term . 
1)) (EQUAL . (term . 1)) (GREATER . (term . 1)) (GREATER_EQUAL . (term . 1)) 
(LESS . (term . 1)) (LESS_EQUAL . (t [...]
-      ((default . error) (OF . (term_list . 1)) (COLON_EQUAL . (term_list . 
1)) (DO . (term_list . 1)) (LOOP . (term_list . 1)) (ELSIF . (term_list . 1)) 
(ELSE . (term_list . 1)) (DIGITS . (term_list . 1)) (COMMA . (term_list . 1)) 
(RIGHT_PAREN . (term_list . 1)) (RANGE . (term_list . 1)) (THEN . (term_list . 
1)) (WITH . (term_list . 1)) (BAR . (term_list . 1)) (EQUAL_GREATER . 
(term_list . 1)) (IS . (term_list . 1)) (SLASH_EQUAL . (term_list . 1)) 
(LESS_EQUAL . (term_list . 1)) (LESS .  [...]
-      ((default . error) (BEGIN .  596) (END .  597))
-      ((default . error) (IDENTIFIER .  595))
-      ((default . error) (IS . ( 594 (subprogram_specification . 1))) (WITH . 
(subprogram_specification . 1)) (SEMICOLON . (subprogram_specification . 1)) 
(RENAMES . (subprogram_specification . 1)))
-      ((default . error) (IS . ( 593 (subprogram_specification . 0))) (WITH . 
(subprogram_specification . 0)) (SEMICOLON . (subprogram_specification . 0)) 
(RENAMES . (subprogram_specification . 0)))
-      ((default . error) (RENAMES .  127) (SEMICOLON . 
(aspect_specification_opt . 0)) (IS . ( 592 (aspect_specification_opt . 0))) 
(WITH .  108))
-      ((default . error) (EXCEPTION .  590) (CONSTANT . ( 589 (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 .  512))
+      ((default . error) (OF . (term_list . 1)) (COLON_EQUAL . (term_list . 
1)) (DO . (term_list . 1)) (LOOP . (term_list . 1)) (ELSIF . (term_list . 1)) 
(ELSE . (term_list . 1)) (DIGITS . (term_list . 1)) (COMMA . (term_list . 1)) 
(RIGHT_PAREN . (term_list . 1)) (RANGE . (term_list . 1)) (THEN . (term_list . 
1)) (WITH . (term_list . 1)) (BAR . (term_list . 1)) (EQUAL_GREATER . 
(term_list . 1)) (IS . (term_list . 1)) (SLASH_EQUAL . (term_list . 1)) 
(LESS_EQUAL . (term_list . 1)) (LESS .  [...]
+      ((default . error) (BEGIN .  606) (END .  607))
+      ((default . error) (IDENTIFIER .  605))
+      ((default . error) (IS . ( 604 (subprogram_specification . 1))) (WITH . 
(subprogram_specification . 1)) (SEMICOLON . (subprogram_specification . 1)) 
(RENAMES . (subprogram_specification . 1)))
+      ((default . error) (IS . ( 603 (subprogram_specification . 0))) (WITH . 
(subprogram_specification . 0)) (SEMICOLON . (subprogram_specification . 0)) 
(RENAMES . (subprogram_specification . 0)))
+      ((default . error) (RENAMES .  127) (SEMICOLON . 
(aspect_specification_opt . 0)) (IS . ( 602 (aspect_specification_opt . 0))) 
(WITH .  108))
+      ((default . error) (EXCEPTION .  600) (CONSTANT . ( 599 (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 .  517))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  292) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  289) (IDENTIFIER .  288) (TYPE 
.  294) (GENERIC .  2) (PROTECTED .  291) (TASK .  293) (PACKAGE .  290))
+      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  299) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  296) (IDENTIFIER .  295) (TYPE 
.  301) (GENERIC .  2) (PROTECTED .  298) (TASK .  300) (PACKAGE .  297))
       ((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 . (de [...]
-      ((default . error) (SEMICOLON .  585) (IS . (discriminant_part_opt . 0)) 
(LEFT_PAREN .  198))
+      ((default . error) (IS . (discriminant_part_opt . 0)) (SEMICOLON . 
(discriminant_part_opt . 0)) (LEFT_PAREN .  201))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (IS . 
(aspect_specification_opt . 0)) (WITH .  108))
-      ((default . error) (IDENTIFIER .  583))
-      ((default . error) (IDENTIFIER .  582))
-      ((default . error) (IS .  581))
+      ((default . error) (IDENTIFIER .  594))
+      ((default . error) (IDENTIFIER .  593))
+      ((default . error) (IS .  592))
       ((default . error) (IS . (aspect_specification_opt . 0)) (WITH .  108))
-      ((default . error) (IDENTIFIER .  579))
-      ((default . error) (IDENTIFIER .  578))
+      ((default . error) (IDENTIFIER .  590))
+      ((default . error) (IDENTIFIER .  589))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((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 . ( 576 (name . 4))) (LEFT_PAREN . (name . 4)) 
(DOT . (name . 4)) (TICK . (name . 4)))
-      ((default . error) (USE .  575))
-      ((default . error) (DOT .  87) (TICK .  88) (USE .  574) (LEFT_PAREN .  
106))
-      ((default . error) (EXCEPTION .  571) (IDENTIFIER . (null_exclusion_opt 
. 0)) (STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . 
(null_exclusion_opt . 0)) (ACCESS . (null_exclusion_opt . 0)) (NOT .  208))
+      ((default . error) (USE . ( 587 (name . 4))) (LEFT_PAREN . (name . 4)) 
(DOT . (name . 4)) (TICK . (name . 4)))
+      ((default . error) (USE .  586))
+      ((default . error) (DOT .  87) (TICK .  88) (USE .  585) (LEFT_PAREN .  
106))
+      ((default . error) (EXCEPTION .  582) (IDENTIFIER . (null_exclusion_opt 
. 0)) (STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . 
(null_exclusion_opt . 0)) (ACCESS . (null_exclusion_opt . 0)) (NOT .  211))
       ((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 .  87) (TICK .  88) (BAR . (discrete_choice . 
1)) (EQUAL_GREATER . (discrete_choice . 1)) (LEFT_PAREN .  106))
       ((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 .  265) (SLASH_EQUAL .  270) (LESS .  268) 
(LESS_EQUAL .  269) (GREATER .  266) (GREATER_EQUAL .  267))
+      ((default . error) (XOR . (choice_relation . 1)) (OR . (choice_relation 
. 1)) (BAR . (choice_relation . 1)) (EQUAL_GREATER . (choice_relation . 1)) 
(AND . (choice_relation . 1)) (EQUAL .  272) (SLASH_EQUAL .  277) (LESS .  275) 
(LESS_EQUAL .  276) (GREATER .  273) (GREATER_EQUAL .  274))
       ((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 .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (BAR . (choice_relation_xor_list . 0)) (EQUAL_GREATER 
. (choice_relation_xor_list . 0)) (XOR . (choice_relation_xor_list . 0)))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (BAR . (choice_relation_or_list . 0)) (EQUAL_GREATER 
. (choice_relation_or_list . 0)) (OR . (choice_relation_or_list . 0)))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (BAR . (choice_relation_and_list . 0)) (EQUAL_GREATER 
. (choice_relation_and_list . 0)) (AND . (choice_relation_and_list . 0)))
       ((default . error) (SEMICOLON . (association_opt . 4)) (IS . 
(association_opt . 4)) (COMMA . (association_opt . 4)) (RIGHT_PAREN . 
(association_opt . 4)))
       ((default . error) (SEMICOLON . (association_opt . 3)) (IS . 
(association_opt . 3)) (COMMA . (association_opt . 3)) (RIGHT_PAREN . 
(association_opt . 3)))
       ((default . error) (EQUAL_GREATER . (discrete_choice_list . 2)) (BAR . 
(discrete_choice_list . 2)))
-      ((default . error) (DOT_DOT .  264) (BAR . (choice_relation . 1)) 
(EQUAL_GREATER . (choice_relation . 1)) (AND . (choice_relation . 1)) (OR . 
(choice_relation . 1)) (XOR . (choice_relation . 1)) (EQUAL .  265) 
(SLASH_EQUAL .  270) (LESS .  268) (LESS_EQUAL .  269) (GREATER .  266) 
(GREATER_EQUAL .  267))
-      ((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 .  
565))
+      ((default . error) (DOT_DOT .  271) (BAR . (choice_relation . 1)) 
(EQUAL_GREATER . (choice_relation . 1)) (AND . (choice_relation . 1)) (OR . 
(choice_relation . 1)) (XOR . (choice_relation . 1)) (EQUAL .  272) 
(SLASH_EQUAL .  277) (LESS .  275) (LESS_EQUAL .  276) (GREATER .  273) 
(GREATER_EQUAL .  274))
+      ((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 .  
576))
       ((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 .  144) (MINUS .  143) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ABS .  146) (NOT .  149) 
(NULL .  150) (NEW .  148) (LEFT_PAREN .  147))
-      ((default . error) (BAR .  563) (DO . (relation . 3)) (LOOP . (relation 
. 3)) (COMMA . (relation . 3)) (ELSIF . (relation . 3)) (ELSE . (relation . 3)) 
(EQUAL_GREATER . (relation . 3)) (RIGHT_PAREN . (relation . 3)) (DIGITS . 
(relation . 3)) (RANGE . (relation . 3)) (THEN . (relation . 3)) (SEMICOLON . 
(relation . 3)) (WITH . (relation . 3)) (IS . (relation . 3)) (AND . (relation 
. 3)) (OR . (relation . 3)) (XOR . (relation . 3)))
+      ((default . error) (PLUS .  144) (MINUS .  143) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ABS .  147) (NOT .  150) 
(NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (BAR .  574) (DO . (relation . 3)) (LOOP . (relation 
. 3)) (COMMA . (relation . 3)) (ELSIF . (relation . 3)) (ELSE . (relation . 3)) 
(EQUAL_GREATER . (relation . 3)) (RIGHT_PAREN . (relation . 3)) (DIGITS . 
(relation . 3)) (RANGE . (relation . 3)) (THEN . (relation . 3)) (SEMICOLON . 
(relation . 3)) (WITH . (relation . 3)) (IS . (relation . 3)) (AND . (relation 
. 3)) (OR . (relation . 3)) (XOR . (relation . 3)))
       ((default . error) (DO . (membership_choice_list . 0)) (LOOP . 
(membership_choice_list . 0)) (COMMA . (membership_choice_list . 0)) (ELSIF . 
(membership_choice_list . 0)) (ELSE . (membership_choice_list . 0)) 
(EQUAL_GREATER . (membership_choice_list . 0)) (RIGHT_PAREN . 
(membership_choice_list . 0)) (DIGITS . (membership_choice_list . 0)) (RANGE . 
(membership_choice_list . 0)) (THEN . (membership_choice_list . 0)) (SEMICOLON 
. (membership_choice_list . 0)) (WITH . (membership_choic [...]
       ((default . error) (DO . (membership_choice . 1)) (LOOP . 
(membership_choice . 1)) (COMMA . (membership_choice . 1)) (ELSIF . 
(membership_choice . 1)) (ELSE . (membership_choice . 1)) (EQUAL_GREATER . 
(membership_choice . 1)) (RIGHT_PAREN . (membership_choice . 1)) (DIGITS . 
(membership_choice . 1)) (RANGE . (membership_choice . 1)) (THEN . 
(membership_choice . 1)) (SEMICOLON . (membership_choice . 1)) (WITH . 
(membership_choice . 1)) (IS . (membership_choice . 1)) (AND . (membersh [...]
-      ((default . error) (DOT_DOT .  264) (DO . (membership_choice . 0)) (LOOP 
. (membership_choice . 0)) (COMMA . (membership_choice . 0)) (ELSIF . 
(membership_choice . 0)) (ELSE . (membership_choice . 0)) (EQUAL_GREATER . 
(membership_choice . 0)) (RIGHT_PAREN . (membership_choice . 0)) (DIGITS . 
(membership_choice . 0)) (RANGE . (membership_choice . 0)) (THEN . 
(membership_choice . 0)) (SEMICOLON . (membership_choice . 0)) (WITH . 
(membership_choice . 0)) (IS . (membership_choice . 0)) [...]
+      ((default . error) (DOT_DOT .  271) (DO . (membership_choice . 0)) (LOOP 
. (membership_choice . 0)) (COMMA . (membership_choice . 0)) (ELSIF . 
(membership_choice . 0)) (ELSE . (membership_choice . 0)) (EQUAL_GREATER . 
(membership_choice . 0)) (RIGHT_PAREN . (membership_choice . 0)) (DIGITS . 
(membership_choice . 0)) (RANGE . (membership_choice . 0)) (THEN . 
(membership_choice . 0)) (SEMICOLON . (membership_choice . 0)) (WITH . 
(membership_choice . 0)) (IS . (membership_choice . 0)) [...]
       ((default . error) (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 . (packa [...]
       ((default . error) (SEMICOLON . (association_list . 1)) (IS . 
(association_list . 1)) (COMMA . (association_list . 1)) (RIGHT_PAREN . 
(association_list . 1)))
-      ((default . error) (SEMICOLON .  562))
-      ((default . error) (SEMICOLON .  561))
-      ((default . error) (SEMICOLON .  560))
-      ((default . error) (SEMICOLON .  559))
-      ((default . error) (ACCESS . (null_exclusion_opt . 0)) (NOT .  554) 
(IDENTIFIER .  553) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (SEMICOLON .  573))
+      ((default . error) (SEMICOLON .  572))
+      ((default . error) (SEMICOLON .  571))
+      ((default . error) (SEMICOLON .  570))
+      ((default . error) (ACCESS . (null_exclusion_opt . 0)) (NOT .  565) 
(IDENTIFIER .  564) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (RIGHT_PAREN . (discriminant_specification_opt . 0)) 
(SEMICOLON . (discriminant_specification_opt . 0)) (IDENTIFIER .  72))
       ((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 .  551) (NEW . 
(abstract_limited_synchronized_opt . 3)) (SYNCHRONIZED .  550) (LIMITED .  549))
-      ((default . error) (LEFT_PAREN .  548))
-      ((default . error) (BOX .  547))
-      ((default . error) (BOX .  546))
+      ((default . error) (TAGGED .  562) (NEW . 
(abstract_limited_synchronized_opt . 3)) (SYNCHRONIZED .  561) (LIMITED .  560))
+      ((default . error) (LEFT_PAREN .  559))
+      ((default . error) (BOX .  558))
+      ((default . error) (BOX .  557))
       ((default . error) (SEMICOLON . (interface_type_definition . 8)) (WITH . 
(interface_type_definition . 8)))
-      ((default . error) (BOX .  545))
-      ((default . error) (INTERFACE .  544) (PRIVATE . 
(abstract_tagged_limited_opt . 5)) (NEW . (abstract_limited_synchronized_opt . 
4)))
-      ((default . error) (BOX .  543))
-      ((default . error) (INTERFACE .  542))
-      ((default . error) (BOX .  541))
-      ((default . error) (INTERFACE .  540) (NEW . 
(abstract_limited_synchronized_opt . 5)))
-      ((default . error) (PRIVATE . (abstract_tagged_limited_opt . 4)) 
(LIMITED .  538) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  108))
-      ((default . error) (INTERFACE .  537))
-      ((default . error) (NEW .  536))
-      ((default . error) (PRIVATE .  535))
+      ((default . error) (BOX .  556))
+      ((default . error) (INTERFACE .  555) (PRIVATE . 
(abstract_tagged_limited_opt . 5)) (NEW . (abstract_limited_synchronized_opt . 
4)))
+      ((default . error) (BOX .  554))
+      ((default . error) (INTERFACE .  553))
+      ((default . error) (BOX .  552))
+      ((default . error) (INTERFACE .  551) (NEW . 
(abstract_limited_synchronized_opt . 5)))
+      ((default . error) (PRIVATE . (abstract_tagged_limited_opt . 4)) 
(LIMITED .  549) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  108))
+      ((default . error) (INTERFACE .  548))
+      ((default . error) (NEW .  547))
+      ((default . error) (PRIVATE .  546))
       ((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 .  
108))
       ((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 .  533))
-      ((default . error) (SEMICOLON .  532))
+      ((default . error) (SEMICOLON .  544))
+      ((default . error) (SEMICOLON .  543))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (DOT .  87) (TICK .  88) (COLON_EQUAL .  528) 
(LEFT_PAREN .  106) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  108))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (SEMICOLON .  526))
+      ((default . error) (DOT .  87) (TICK .  88) (COLON_EQUAL .  539) 
(LEFT_PAREN .  106) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  108))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (SEMICOLON .  537))
       ((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)) (WITH . (parameter_and_result_profile . 0)) 
(SEMICOLON . (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 .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (FUNCTION .  523) (PROCEDURE .  524))
+      ((default . error) (FUNCTION .  534) (PROCEDURE .  535))
       ((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) (IDENTIFIER . (mode_opt . 0)) (STRING_LITERAL . 
(mode_opt . 0)) (CHARACTER_LITERAL . (mode_opt . 0)) (IN .  204) (OUT .  205) 
(ACCESS . (null_exclusion_opt . 0)) (NOT . ((mode_opt . 0)  208)))
+      ((default . error) (IDENTIFIER . (mode_opt . 0)) (STRING_LITERAL . 
(mode_opt . 0)) (CHARACTER_LITERAL . (mode_opt . 0)) (IN .  207) (OUT .  208) 
(ACCESS . (null_exclusion_opt . 0)) (NOT . ((mode_opt . 0)  211)))
       ((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 .  172) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  170) (STRING_LITERAL .  49) (PLUS .  
144) (MINUS .  143) (ABS .  146) (NOT .  171) (NULL .  519) (NEW .  148) 
(LEFT_PAREN .  147))
+      ((default . error) (DO . (aggregate . 3)) (ELSIF . (aggregate . 3)) 
(ELSE . (aggregate . 3)) (DIGITS . (aggregate . 3)) (RANGE . (aggregate . 3)) 
(THEN . (aggregate . 3)) (USE . (aggregate . 3)) (COLON_EQUAL . (aggregate . 
3)) (WHILE . (aggregate . 3)) (SELECT . (aggregate . 3)) (REQUEUE . (aggregate 
. 3)) (RAISE . (aggregate . 3)) (PRAGMA . (aggregate . 3)) (NULL . (aggregate . 
3)) (LOOP . (aggregate . 3)) (IF . (aggregate . 3)) (GOTO . (aggregate . 3)) 
(FOR . (aggregate . 3)) (EX [...]
+      ((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 .  175) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  173) (STRING_LITERAL .  49) (RAISE .  
152) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  174) (NUMERIC_LITERAL .  
145) (NULL .  530) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (DO . (aggregate . 2)) (ELSIF . (aggregate . 2)) 
(ELSE . (aggregate . 2)) (DIGITS . (aggregate . 2)) (RANGE . (aggregate . 2)) 
(THEN . (aggregate . 2)) (USE . (aggregate . 2)) (COLON_EQUAL . (aggregate . 
2)) (WHILE . (aggregate . 2)) (SELECT . (aggregate . 2)) (REQUEUE . (aggregate 
. 2)) (RAISE . (aggregate . 2)) (PRAGMA . (aggregate . 2)) (NULL . (aggregate . 
2)) (LOOP . (aggregate . 2)) (IF . (aggregate . 2)) (GOTO . (aggregate . 2)) 
(FOR . (aggregate . 2)) (EX [...]
       ((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)) (A [...]
-      ((default . error) (RIGHT_PAREN .  518))
-      ((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)) (RA [...]
-      ((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 . ( [...]
-      ((default . error) (COMMA .  261) (RIGHT_PAREN .  786))
-      ((default . error) (COLON_EQUAL .  785) (RIGHT_PAREN . 
(parameter_specification . 3)) (SEMICOLON . (parameter_specification . 3)))
-      ((default . error) (IDENTIFIER . (null_exclusion_opt . 0)) 
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . 
(null_exclusion_opt . 0)) (NOT .  208))
-      ((default . error) (RETURN .  90) (LEFT_PAREN .  781))
-      ((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 .  781))
+      ((default . error) (RIGHT_PAREN .  529))
+      ((default . error) (THEN .  528))
+      ((default . error) (IS .  527))
+      ((default . error) (WHEN .  795))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (OF . (aggregate . 5)) (LESS_LESS . (aggregate . 5)) 
(IDENTIFIER . (aggregate . 5)) (STRING_LITERAL . (aggregate . 5)) 
(CHARACTER_LITERAL . (aggregate . 5)) (ACCEPT . (aggregate . 5)) (ABORT . 
(aggregate . 5)) (BEGIN . (aggregate . 5)) (CASE . (aggregate . 5)) (DECLARE . 
(aggregate . 5)) (DELAY . (aggregate . 5)) (EXIT . (aggregate . 5)) (FOR . 
(aggregate . 5)) (GOTO . (aggregate . 5)) (IF . (aggregate . 5)) (NULL . 
(aggregate . 5)) (PRAGMA . (aggregate . 5)) (RA [...]
+      ((default . error) (PLUS . (primary . 1)) (MINUS . (primary . 1)) 
(AMPERSAND . (primary . 1)) (DOT_DOT . (primary . 1)) (IN . (primary . 1)) (NOT 
. (primary . 1)) (EQUAL . (primary . 1)) (GREATER . (primary . 1)) 
(GREATER_EQUAL . (primary . 1)) (LESS . (primary . 1)) (LESS_EQUAL . (primary . 
1)) (SLASH_EQUAL . (primary . 1)) (RIGHT_PAREN . (primary . 1)) (COMMA . 
(primary . 1)) (SLASH . (primary . 1)) (STAR . (primary . 1)) (MOD . (primary . 
1)) (REM . (primary . 1)) (STAR_STAR . ( [...]
+      ((default . error) (COMMA .  268) (RIGHT_PAREN .  792))
+      ((default . error) (COLON_EQUAL .  791) (RIGHT_PAREN . 
(parameter_specification . 3)) (SEMICOLON . (parameter_specification . 3)))
+      ((default . error) (IDENTIFIER . (null_exclusion_opt . 0)) 
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL . 
(null_exclusion_opt . 0)) (NOT .  211))
+      ((default . error) (RETURN .  90) (LEFT_PAREN .  787))
+      ((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 .  787))
       ((default . error) (DOT .  87) (TICK .  88) (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 .  106))
       ((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 .  
108))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (SEMICOLON .  778))
-      ((default . error) (DOT .  87) (TICK .  88) (WITH . 
(formal_package_actual_part . 1)) (SEMICOLON . (formal_package_actual_part . 
1)) (LEFT_PAREN .  776))
-      ((default . error) (SEMICOLON .  775))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (SEMICOLON .  784))
+      ((default . error) (DOT .  87) (TICK .  88) (WITH . 
(formal_package_actual_part . 1)) (SEMICOLON . (formal_package_actual_part . 
1)) (LEFT_PAREN .  782))
+      ((default . error) (SEMICOLON .  781))
       ((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 .  774))
+      ((default . error) (SEMICOLON .  780))
       ((default . error) (SEMICOLON . (formal_type_definition . 0)) (WITH . 
(formal_type_definition . 0)))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (AND .  772) (WITH . (interface_type_definition . 5)) 
(SEMICOLON . (interface_type_definition . 5)))
+      ((default . error) (AND .  778) (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 .  771))
-      ((default . error) (AND .  770) (WITH . (interface_type_definition . 7)) 
(SEMICOLON . (interface_type_definition . 7)))
+      ((default . error) (SEMICOLON .  777))
+      ((default . error) (AND .  776) (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 .  769) (WITH . (interface_type_definition . 6)) 
(SEMICOLON . (interface_type_definition . 6)))
+      ((default . error) (AND .  775) (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 .  768) (WITH . (interface_type_definition . 4)) 
(SEMICOLON . (interface_type_definition . 4)))
-      ((default . error) (RIGHT_PAREN .  767))
+      ((default . error) (AND .  774) (WITH . (interface_type_definition . 4)) 
(SEMICOLON . (interface_type_definition . 4)))
+      ((default . error) (RIGHT_PAREN .  773))
       ((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 .  766))
-      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  757) 
(NULL .  150) (NEW .  148) (LEFT_PAREN .  147))
+      ((default . error) (SEMICOLON . (formal_type_definition . 6)) (WITH . 
(formal_type_definition . 6)) (DIGITS .  772))
+      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  763) 
(NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
       ((default . error) (NEW . (abstract_limited_synchronized_opt . 1)))
       ((default . error) (NEW . (abstract_limited_synchronized_opt . 2)))
-      ((default . error) (LIMITED .  756) (RECORD . 
(abstract_tagged_limited_opt . 2)) (NULL . (abstract_tagged_limited_opt . 2)) 
(PRIVATE . (abstract_tagged_limited_opt . 2)))
+      ((default . error) (LIMITED .  762) (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 .  755))
-      ((default . error) (SEMICOLON . (discriminant_specification_opt . 4)) 
(RIGHT_PAREN . (discriminant_specification_opt . 4)) (COLON_EQUAL .  754))
+      ((default . error) (SEMICOLON . (null_exclusion_opt_name_type . 0)) 
(RIGHT_PAREN . (null_exclusion_opt_name_type . 0)) (COLON_EQUAL . 
(null_exclusion_opt_name_type . 0)) (DOT . (name . 0)) (LEFT_PAREN . (name . 
0)) (TICK . (name . 0)))
+      ((default . error) (NULL .  761))
+      ((default . error) (SEMICOLON . (discriminant_specification_opt . 4)) 
(RIGHT_PAREN . (discriminant_specification_opt . 4)) (COLON_EQUAL .  760))
       ((default . error) (DOT .  87) (TICK .  88) (LEFT_PAREN .  106))
-      ((default . error) (SEMICOLON . (discriminant_specification_opt . 2)) 
(RIGHT_PAREN . (discriminant_specification_opt . 2)) (COLON_EQUAL .  753))
-      ((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) (SEMICOLON . (discriminant_specification_opt . 2)) 
(RIGHT_PAREN . (discriminant_specification_opt . 2)) (COLON_EQUAL .  759))
+      ((default . error) (SEMICOLON . (null_exclusion_opt_name_type . 1)) 
(RIGHT_PAREN . (null_exclusion_opt_name_type . 1)) (COLON_EQUAL . 
(null_exclusion_opt_name_type . 1)) (DOT . (name . 3)) (LEFT_PAREN . (name . 
3)) (TICK . (name . 3)))
       ((default . error) ($EOI . (generic_renaming_declaration . 1)) (LIMITED 
. (generic_renaming_declaration . 1)) (SEPARATE . (generic_renaming_declaration 
. 1)) (WITH . (generic_renaming_declaration . 1)) (END . 
(generic_renaming_declaration . 1)) (PRIVATE . (generic_renaming_declaration . 
1)) (USE . (generic_renaming_declaration . 1)) (TYPE . 
(generic_renaming_declaration . 1)) (TASK . (generic_renaming_declaration . 1)) 
(SUBTYPE . (generic_renaming_declaration . 1)) (PROTECTED . (ge [...]
       ((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 . (ge [...]
       ((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 . (ge [...]
       ((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)) (L [...]
-      ((default . error) (PLUS .  144) (MINUS .  143) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ABS .  146) (NOT .  149) 
(NULL .  150) (NEW .  148) (LEFT_PAREN .  147))
-      ((default . error) (BAR .  563) (LOOP . (relation . 2)) (DO . (relation 
. 2)) (XOR . (relation . 2)) (OR . (relation . 2)) (AND . (relation . 2)) (IS . 
(relation . 2)) (WITH . (relation . 2)) (SEMICOLON . (relation . 2)) (THEN . 
(relation . 2)) (RANGE . (relation . 2)) (DIGITS . (relation . 2)) (RIGHT_PAREN 
. (relation . 2)) (EQUAL_GREATER . (relation . 2)) (ELSE . (relation . 2)) 
(ELSIF . (relation . 2)) (COMMA . (relation . 2)))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (PLUS .  144) (MINUS .  143) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ABS .  147) (NOT .  150) 
(NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (BAR .  574) (LOOP . (relation . 2)) (DO . (relation 
. 2)) (XOR . (relation . 2)) (OR . (relation . 2)) (AND . (relation . 2)) (IS . 
(relation . 2)) (WITH . (relation . 2)) (SEMICOLON . (relation . 2)) (THEN . 
(relation . 2)) (RANGE . (relation . 2)) (DIGITS . (relation . 2)) (RIGHT_PAREN 
. (relation . 2)) (EQUAL_GREATER . (relation . 2)) (ELSE . (relation . 2)) 
(ELSIF . (relation . 2)) (COMMA . (relation . 2)))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (AND . (choice_relation_and_then_list . 0)) 
(EQUAL_GREATER . (choice_relation_and_then_list . 0)) (BAR . 
(choice_relation_and_then_list . 0)))
       ((default . error) (OR . (choice_relation_or_else_list . 0)) 
(EQUAL_GREATER . (choice_relation_or_else_list . 0)) (BAR . 
(choice_relation_or_else_list . 0)))
       ((default . error) (OR . (choice_relation_or_else_list . 1)) 
(EQUAL_GREATER . (choice_relation_or_else_list . 1)) (BAR . 
(choice_relation_or_else_list . 1)))
       ((default . error) (AND . (choice_relation_and_then_list . 1)) 
(EQUAL_GREATER . (choice_relation_and_then_list . 1)) (BAR . 
(choice_relation_and_then_list . 1)))
-      ((default . error) (RENAMES .  749))
-      ((default . error) (RENAMES .  748))
-      ((default . error) (ACCESS .  235) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49))
-      ((default . error) (LEFT_PAREN .  220) (RECORD .  744))
-      ((default . error) (AT .  743))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (DOT .  87) (TICK .  88) (IS . ( 741 
(aspect_specification_opt . 0))) (WITH .  108) (LEFT_PAREN .  106))
-      ((default . error) (WITH . (discriminant_part_opt . 0)) (IS . 
(discriminant_part_opt . 0)) (LEFT_PAREN .  198))
+      ((default . error) (RENAMES .  755))
+      ((default . error) (RENAMES .  754))
+      ((default . error) (ACCESS .  242) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49))
+      ((default . error) (LEFT_PAREN .  223) (RECORD .  750))
+      ((default . error) (AT .  749))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (DOT .  87) (TICK .  88) (IS . ( 747 
(aspect_specification_opt . 0))) (WITH .  108) (LEFT_PAREN .  106))
+      ((default . error) (WITH . (discriminant_part_opt . 0)) (IS . 
(discriminant_part_opt . 0)) (LEFT_PAREN .  201))
+      ((default . error) (IS . ( 745 (aspect_specification_opt . 0))) (WITH .  
108))
+      ((default . error) (IS .  744))
+      ((default . error) (NOT .  741) (IDENTIFIER .  48) (CHARACTER_LITERAL .  
50) (STRING_LITERAL .  49))
+      ((default . error) (WITH . (discriminant_part_opt . 0)) (IS . 
(discriminant_part_opt . 0)) (SEMICOLON . (discriminant_part_opt . 0)) 
(LEFT_PAREN .  201))
       ((default . error) (IS . ( 739 (aspect_specification_opt . 0))) (WITH .  
108))
-      ((default . error) (IS .  738))
-      ((default . error) (NOT .  735) (IDENTIFIER .  48) (CHARACTER_LITERAL .  
50) (STRING_LITERAL .  49))
-      ((default . error) (WITH . (discriminant_part_opt . 0)) (IS . 
(discriminant_part_opt . 0)) (SEMICOLON . (discriminant_part_opt . 0)) 
(LEFT_PAREN .  198))
-      ((default . error) (IS . ( 733 (aspect_specification_opt . 0))) (WITH .  
108))
-      ((default . error) (SEMICOLON .  731) (IS .  732))
-      ((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 . (inc [...]
-      ((default . error) (IS .  730))
-      ((default . error) (END .  729))
+      ((default . error) (SEMICOLON .  737) (IS .  738))
+      ((default . error) (SEMICOLON .  735) (IS .  736))
+      ((default . error) (END .  734))
       ((default . error) (DOT .  87) (TICK .  88) (SEMICOLON . 
(package_specification . 1)) (LEFT_PAREN .  106))
-      ((default . error) (COLON_EQUAL .  728))
-      ((default . error) (SEMICOLON .  727))
-      ((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 .  725))
-      ((default . error) (SEPARATE .  724) (ABSTRACT .  723))
-      ((default . error) (NULL .  722))
-      ((default . error) (LEFT_PAREN .  720))
-      ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON . 
(parameter_profile_opt . 0)) (LEFT_PAREN .  718))
-      ((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 .  [...]
+      ((default . error) (COLON_EQUAL .  733))
+      ((default . error) (SEMICOLON .  732))
+      ((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 .  730))
+      ((default . error) (SEPARATE .  729) (ABSTRACT .  728))
+      ((default . error) (NULL .  727))
+      ((default . error) (LEFT_PAREN .  725))
+      ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON . 
(parameter_profile_opt . 0)) (LEFT_PAREN .  723))
+      ((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 .  [...]
       ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
-      ((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_li [...]
-      ((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)) (ELS [...]
-      ((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)) (ELS [...]
-      ((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_li [...]
-      ((default . error) (WHEN .  713))
-      ((default . error) (OF .  712) (COLON .  710) (IN .  711))
-      ((default . error) (EQUAL_GREATER .  709))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (OR . (relation_and_then_list . 0)) (XOR . 
(relation_and_then_list . 0)) (LOOP . (relation_and_then_list . 0)) (DO . 
(relation_and_then_list . 0)) (AND . (relation_and_then_list . 0)) (IS . 
(relation_and_then_list . 0)) (WITH . (relation_and_then_list . 0)) (SEMICOLON 
. (relation_and_then_list . 0)) (THEN . (relation_and_then_list . 0)) (RANGE . 
(relation_and_then_list . 0)) (COMMA . (relation_and_then_list . 0)) 
(RIGHT_PAREN . (relation_and_then_list . 0)) (DIGI [...]
+      ((default . error) (AND . (relation_or_else_list . 0)) (XOR . 
(relation_or_else_list . 0)) (LOOP . (relation_or_else_list . 0)) (DO . 
(relation_or_else_list . 0)) (OR . (relation_or_else_list . 0)) (IS . 
(relation_or_else_list . 0)) (WITH . (relation_or_else_list . 0)) (SEMICOLON . 
(relation_or_else_list . 0)) (THEN . (relation_or_else_list . 0)) (RANGE . 
(relation_or_else_list . 0)) (COMMA . (relation_or_else_list . 0)) (RIGHT_PAREN 
. (relation_or_else_list . 0)) (DIGITS . (relati [...]
+      ((default . error) (AND . (relation_or_else_list . 1)) (XOR . 
(relation_or_else_list . 1)) (LOOP . (relation_or_else_list . 1)) (DO . 
(relation_or_else_list . 1)) (OR . (relation_or_else_list . 1)) (IS . 
(relation_or_else_list . 1)) (WITH . (relation_or_else_list . 1)) (SEMICOLON . 
(relation_or_else_list . 1)) (THEN . (relation_or_else_list . 1)) (RANGE . 
(relation_or_else_list . 1)) (COMMA . (relation_or_else_list . 1)) (RIGHT_PAREN 
. (relation_or_else_list . 1)) (DIGITS . (relati [...]
+      ((default . error) (OR . (relation_and_then_list . 1)) (XOR . 
(relation_and_then_list . 1)) (LOOP . (relation_and_then_list . 1)) (DO . 
(relation_and_then_list . 1)) (AND . (relation_and_then_list . 1)) (IS . 
(relation_and_then_list . 1)) (WITH . (relation_and_then_list . 1)) (SEMICOLON 
. (relation_and_then_list . 1)) (THEN . (relation_and_then_list . 1)) (RANGE . 
(relation_and_then_list . 1)) (COMMA . (relation_and_then_list . 1)) 
(RIGHT_PAREN . (relation_and_then_list . 1)) (DIGI [...]
+      ((default . error) (LOOP . (raise_expression . 1)) (DO . 
(raise_expression . 1)) (XOR . (raise_expression . 1)) (OR . (raise_expression 
. 1)) (AND . (raise_expression . 1)) (IS . (raise_expression . 1)) (SEMICOLON . 
(raise_expression . 1)) (WITH . (raise_expression . 1)) (THEN . 
(raise_expression . 1)) (RANGE . (raise_expression . 1)) (RIGHT_PAREN . 
(raise_expression . 1)) (COMMA . (raise_expression . 1)) (DIGITS . 
(raise_expression . 1)) (EQUAL_GREATER . (raise_expression . 1)) (E [...]
+      ((default . error) (OF .  720) (COLON .  718) (IN .  719))
+      ((default . error) (EQUAL_GREATER .  717))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (IS . (aspect_specification_opt . 0)) (WITH .  108))
       ((default . error) (IS . (aspect_specification_opt . 0)) (WITH .  108))
       ((default . error) (IS .  134))
-      ((default . error) (IDENTIFIER .  704))
-      ((default . error) (COLON .  703))
-      ((default . error) (IDENTIFIER .  702))
+      ((default . error) (IDENTIFIER .  713))
+      ((default . error) (COLON .  712))
+      ((default . error) (IDENTIFIER .  711))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) 
(STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (label_opt . 0)) (ABORT 
. (label_opt . 0)) (DELAY . (label_opt .  [...]
-      ((default . error) (IS . (expression_opt . 0)) (PLUS .  144) (MINUS .  
143) (ABS .  146) (NOT .  149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  292) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  289) (IDENTIFIER .  288) (TYPE 
.  294) (GENERIC .  2) (PROTECTED .  291) (TASK .  293) (PACKAGE .  290))
-      ((default . error) (UNTIL .  696) (PLUS .  144) (MINUS .  143) (ABS .  
146) (NOT .  149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (WHEN . (identifier_opt . 0)) (SEMICOLON . 
(identifier_opt . 0)) (IDENTIFIER .  694))
-      ((default . error) (LOOP . (iterator_specification_opt . 0)) (IDENTIFIER 
.  603))
-      ((default . error) (IDENTIFIER .  691))
-      ((default . error) (THEN . (expression_opt . 0)) (PLUS .  144) (MINUS .  
143) (ABS .  146) (NOT .  149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((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 [...]
-      ((default . error) (SEMICOLON .  688))
-      ((default . error) (SEMICOLON .  686) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) 
(STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (label_opt . 0)) (ABORT 
. (label_opt . 0)) (DELAY . (label_opt .  [...]
+      ((default . error) (IS . (expression_opt . 0)) (RAISE .  152) (PLUS .  
144) (MINUS .  143) (ABS .  147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  
151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  148))
+      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  299) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  296) (IDENTIFIER .  295) (TYPE 
.  301) (GENERIC .  2) (PROTECTED .  298) (TASK .  300) (PACKAGE .  297))
+      ((default . error) (UNTIL .  705) (RAISE .  152) (PLUS .  144) (MINUS .  
143) (ABS .  147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  
149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) 
(LEFT_PAREN .  148))
+      ((default . error) (WHEN . (identifier_opt . 0)) (SEMICOLON . 
(identifier_opt . 0)) (IDENTIFIER .  703))
+      ((default . error) (LOOP . (iterator_specification_opt . 0)) (IDENTIFIER 
.  613))
+      ((default . error) (IDENTIFIER .  700))
+      ((default . error) (THEN . (expression_opt . 0)) (RAISE .  152) (PLUS .  
144) (MINUS .  143) (ABS .  147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  
151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  148))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT . 
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . 
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP . 
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . 
(label_opt . 0)) (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 [...]
+      ((default . error) (SEMICOLON .  697))
+      ((default . error) (SEMICOLON .  695) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (SEMICOLON .  680) (DO . 
(extended_return_object_declaration_opt . 0)) (PLUS .  144) (MINUS .  143) (ABS 
.  146) (NOT .  149) (NULL .  150) (NEW .  148) (IDENTIFIER .  681) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (ELSE . (select_alternative_list_opt . 0)) (END . 
(select_alternative_list_opt . 0)) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (DELAY .  617) (WHEN .  669) (TERMINATE .  668) (ACCEPT 
.  612))
-      ((default . error) (LOOP . (expression_opt . 0)) (PLUS .  144) (MINUS .  
143) (ABS .  146) (NOT .  149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (SEMICOLON .  689) (DO . 
(extended_return_object_declaration_opt . 0)) (RAISE .  152) (PLUS .  144) 
(MINUS .  143) (ABS .  147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) 
(NEW .  149) (IDENTIFIER .  690) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  
49) (LEFT_PAREN .  148))
+      ((default . error) (ELSE . (select_alternative_list_opt . 0)) (END . 
(select_alternative_list_opt . 0)) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (DELAY .  626) (WHEN .  678) (TERMINATE .  677) (ACCEPT 
.  621))
+      ((default . error) (LOOP . (expression_opt . 0)) (RAISE .  152) (PLUS .  
144) (MINUS .  143) (ABS .  147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  
151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  148))
       ((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_s [...]
       ((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 .  [...]
       ((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 .  [...]
@@ -2375,182 +2442,189 @@
       ((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 .  [...]
       ((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 .  [...]
       ((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_s [...]
-      ((default . error) (END .  666))
+      ((default . error) (END .  675))
       ((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_s [...]
-      ((default . error) (LOOP .  665))
-      ((default . error) (NULL .  623) (GOTO .  620) (ABORT .  613) (ACCEPT .  
612) (DECLARE .  616) (BEGIN .  614) (LOOP .  622) (CASE .  615) (IF .  621) 
(PRAGMA .  7) (RAISE .  624) (DELAY .  617) (REQUEUE .  625) (RETURN .  626) 
(EXIT .  618) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  
49) (WHILE .  628) (FOR .  619) (SELECT .  627))
+      ((default . error) (LOOP .  674))
+      ((default . error) (NULL .  632) (GOTO .  629) (ABORT .  622) (ACCEPT .  
621) (DECLARE .  625) (BEGIN .  623) (LOOP .  631) (CASE .  624) (IF .  630) 
(PRAGMA .  7) (RAISE .  633) (DELAY .  626) (REQUEUE .  634) (RETURN .  635) 
(EXIT .  627) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  
49) (WHILE .  637) (FOR .  628) (SELECT .  636))
       ((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_s [...]
-      ((default . error) (DOT .  87) (SEMICOLON .  662) (TICK .  88) 
(COLON_EQUAL .  661) (LEFT_PAREN .  106))
+      ((default . error) (DOT .  87) (SEMICOLON .  671) (TICK .  88) 
(COLON_EQUAL .  670) (LEFT_PAREN .  106))
       ((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) [...]
       ((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 .  [...]
       ((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 .  [...]
       ((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 .  [...]
       ((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 .  [...]
       ((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_s [...]
-      ((default . error) (WHEN . (sequence_of_statements_opt . 1)) (THEN . 
(sequence_of_statements_opt . 1)) (OR . (sequence_of_statements_opt . 1)) 
(ELSIF . (sequence_of_statements_opt . 1)) (ELSE . (sequence_of_statements_opt 
. 1)) (END . (sequence_of_statements_opt . 1)) (EXCEPTION . 
(sequence_of_statements_opt . 1)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_op [...]
-      ((default . error) (END . (handled_sequence_of_statements . 1)) 
(EXCEPTION .  659))
+      ((default . error) (WHEN . (sequence_of_statements_opt . 1)) (THEN . 
(sequence_of_statements_opt . 1)) (OR . (sequence_of_statements_opt . 1)) 
(ELSIF . (sequence_of_statements_opt . 1)) (ELSE . (sequence_of_statements_opt 
. 1)) (END . (sequence_of_statements_opt . 1)) (EXCEPTION . 
(sequence_of_statements_opt . 1)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_op [...]
+      ((default . error) (END . (handled_sequence_of_statements . 1)) 
(EXCEPTION .  668))
       ((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 .  [...]
       ((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 . (s [...]
       ((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 .  [...]
-      ((default . error) (SEMICOLON .  658))
-      ((default . error) (SEMICOLON .  657))
+      ((default . error) (SEMICOLON .  667))
+      ((default . error) (SEMICOLON .  666))
       ((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)) (PROCE [...]
       ((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)) (PROCE [...]
-      ((default . error) (END . (exception_handler_list_opt . 0)) (WHEN .  
930))
+      ((default . error) (END . (exception_handler_list_opt . 0)) (WHEN .  
940))
       ((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)) (GOT [...]
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (WHEN . (procedure_call_statement . 0)) (OR . 
(procedure_call_statement . 0)) (THEN . (procedure_call_statement . 0)) (ELSIF 
. (procedure_call_statement . 0)) (ELSE . (procedure_call_statement . 0)) 
(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 . (procedur [...]
       ((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)) [...]
       ((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)) [...]
-      ((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 [...]
+      ((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 [...]
       ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (LOOP . (iteration_scheme . 0)))
-      ((default . error) (SEMICOLON .  926))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((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 . (lab [...]
+      ((default . error) (SEMICOLON .  936))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (END . (sequence_of_statements_opt . 0)) (OR . 
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0)) 
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) 
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) 
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) 
(WHILE . (label_opt . 0)) (STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL 
. (label_opt . 0)) (ABORT . (lab [...]
       ((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)) (CHARACTE [...]
-      ((default . error) (ELSE .  921) (OR .  922))
-      ((default . error) (DOT .  87) (SEMICOLON .  662) (TICK .  88) (OR . 
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0)) 
(THEN . (sequence_of_statements_opt . 0)) (LEFT_PAREN .  106) (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 . (la [...]
-      ((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 . (la [...]
+      ((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)) (CHARACTE [...]
+      ((default . error) (ELSE .  931) (OR .  932))
+      ((default . error) (DOT .  87) (SEMICOLON .  671) (TICK .  88) (OR . 
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0)) 
(THEN . (sequence_of_statements_opt . 0)) (LEFT_PAREN .  106) (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 . (la [...]
+      ((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 . (la [...]
       ((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 .  918))
-      ((default . error) (ELSE .  916) (END .  917))
-      ((default . error) (THEN .  915))
+      ((default . error) (ELSE . (select_alternative_list_opt . 1)) (END . 
(select_alternative_list_opt . 1)) (OR .  928))
+      ((default . error) (ELSE .  926) (END .  927))
+      ((default . error) (THEN .  925))
       ((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_state [...]
-      ((default . error) (COLON .  914) (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 . (nam [...]
-      ((default . error) (SEMICOLON .  913))
-      ((default . error) (DO . (extended_return_object_declaration_opt . 1)) 
(SEMICOLON .  912))
-      ((default . error) (DO .  911))
-      ((default . error) (WITH .  910) (DOT .  87) (TICK .  88) (SEMICOLON .  
909) (LEFT_PAREN .  106))
+      ((default . error) (COLON .  924) (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 . (nam [...]
+      ((default . error) (SEMICOLON .  923))
+      ((default . error) (DO . (extended_return_object_declaration_opt . 1)) 
(SEMICOLON .  922))
+      ((default . error) (DO .  921))
+      ((default . error) (WITH .  920) (DOT .  87) (TICK .  88) (SEMICOLON .  
919) (LEFT_PAREN .  106))
       ((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  [...]
-      ((default . error) (WITH .  908) (DOT .  87) (TICK .  88) (SEMICOLON .  
907) (LEFT_PAREN .  106))
+      ((default . error) (WITH .  918) (DOT .  87) (TICK .  88) (SEMICOLON .  
917) (LEFT_PAREN .  106))
       ((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 . (si [...]
-      ((default . error) (END .  906))
-      ((default . error) (THEN .  905))
-      ((default . error) (SEMICOLON .  904))
+      ((default . error) (END .  916))
+      ((default . error) (THEN .  915))
+      ((default . error) (SEMICOLON .  914))
       ((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 .  903) (SEMICOLON .  902))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (SEMICOLON .  900))
-      ((default . error) (BEGIN .  899))
-      ((default . error) (IS .  898))
-      ((default . error) (END .  897))
-      ((default . error) (DOT .  87) (TICK .  88) (SEMICOLON .  896) 
(LEFT_PAREN .  106))
-      ((default . error) (SEMICOLON . (actual_parameter_part_opt . 0)) (DO . 
(actual_parameter_part_opt . 0)) (LEFT_PAREN . ((actual_parameter_part_opt . 0) 
 893)))
+      ((default . error) (WHEN .  913) (SEMICOLON .  912))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (SEMICOLON .  910))
+      ((default . error) (BEGIN .  909))
+      ((default . error) (IS .  908))
+      ((default . error) (END .  907))
+      ((default . error) (DOT .  87) (TICK .  88) (SEMICOLON .  906) 
(LEFT_PAREN .  106))
+      ((default . error) (SEMICOLON . (actual_parameter_part_opt . 0)) (DO . 
(actual_parameter_part_opt . 0)) (LEFT_PAREN . ((actual_parameter_part_opt . 0) 
 903)))
       ((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)) (DE [...]
-      ((default . error) (GREATER_GREATER .  892))
-      ((default . error) (IS .  891))
-      ((default . error) (IS .  890))
+      ((default . error) (GREATER_GREATER .  902))
+      ((default . error) (IS .  901))
+      ((default . error) (IS .  900))
       ((default . error) (COMMA . (pragma_argument_association . 2)) 
(RIGHT_PAREN . (pragma_argument_association . 2)))
-      ((default . error) (ELSE .  886) (RIGHT_PAREN . (if_expression . 3)) 
(ELSIF .  887))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (NOT .  735) (IDENTIFIER .  48) (CHARACTER_LITERAL .  
50) (STRING_LITERAL .  49))
-      ((default . error) (REVERSE .  882) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) 
(ABS .  146) (NOT .  757) (NULL .  150) (NEW .  148) (LEFT_PAREN .  147))
-      ((default . error) (REVERSE .  880) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
-      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (OTHERS .  172) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) 
(ABS .  146) (NOT .  171) (NULL .  150) (NEW .  148) (LEFT_PAREN .  147))
-      ((default . error) (RIGHT_PAREN . (case_expression_alternative_list . 
0)) (COMMA . (case_expression_alternative_list . 0)))
-      ((default . error) (COMMA .  878) (RIGHT_PAREN . (case_expression . 0)))
-      ((default . error) (SEMICOLON .  877))
-      ((default . error) (END .  876))
-      ((default . error) (IDENTIFIER .  213) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  757) 
(NULL .  150) (NEW .  148) (LEFT_PAREN .  147))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (NOT .  741) (IDENTIFIER .  48) (CHARACTER_LITERAL .  
50) (STRING_LITERAL .  49))
+      ((default . error) (REVERSE .  896) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) 
(ABS .  147) (NOT .  763) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(LEFT_PAREN .  148))
+      ((default . error) (REVERSE .  894) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (SEMICOLON .  893))
+      ((default . error) (END .  892))
+      ((default . error) (IDENTIFIER .  216) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  763) 
(NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
-      ((default . error) (CASE .  366) (IF .  368) (PLUS .  144) (MINUS .  
143) (ABS .  146) (NOT .  149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (CASE .  232) (IF .  233) (RAISE .  152) (PLUS .  
144) (MINUS .  143) (ABS .  147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  
151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  148))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
       ((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 .  480) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt . 0)) (NOT .  862))
+      ((default . error) (ARRAY .  485) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt . 0)) (NOT .  878))
       ((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  [...]
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
-      ((default . error) (PRIVATE . (abstract_tagged_limited_opt . 0)) (NULL . 
(abstract_tagged_limited_opt . 0)) (RECORD . (abstract_tagged_limited_opt . 0)) 
(TAGGED .  849) (RANGE .  847) (MOD .  845) (DIGITS .  842) (DELTA .  841) 
(TASK .  491) (PROTECTED .  487) (SYNCHRONIZED .  489) (INTERFACE .  483) 
(ARRAY .  480) (LEFT_PAREN .  843) (ACCESS . (null_exclusion_opt . 0)) (NOT .  
208) (NEW . ((abstract_limited_synchronized_opt . 0) (abstract_limited_opt . 
0))) (LIMITED .  844) (ABSTR [...]
+      ((default . error) (BEGIN . (incomplete_type_declaration . 1)) 
(IDENTIFIER . (incomplete_type_declaration . 1)) (ENTRY . 
(incomplete_type_declaration . 1)) (FOR . (incomplete_type_declaration . 1)) 
(FUNCTION . (incomplete_type_declaration . 1)) (GENERIC . 
(incomplete_type_declaration . 1)) (NOT . (incomplete_type_declaration . 1)) 
(OVERRIDING . (incomplete_type_declaration . 1)) (PACKAGE . 
(incomplete_type_declaration . 1)) (PRAGMA . (incomplete_type_declaration . 1)) 
(PROCEDURE .  [...]
+      ((default . error) (PRIVATE . (abstract_tagged_limited_opt . 0)) (NULL . 
(abstract_tagged_limited_opt . 0)) (RECORD . (abstract_tagged_limited_opt . 0)) 
(TAGGED .  865) (RANGE .  863) (MOD .  861) (DIGITS .  858) (DELTA .  857) 
(TASK .  496) (PROTECTED .  492) (SYNCHRONIZED .  494) (INTERFACE .  488) 
(ARRAY .  485) (LEFT_PAREN .  859) (ACCESS . (null_exclusion_opt . 0)) (NOT .  
211) (NEW . ((abstract_limited_synchronized_opt . 0) (abstract_limited_opt . 
0))) (LIMITED .  860) (ABSTR [...]
       ((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)) (PROTECTE [...]
-      ((default . error) (NEW .  837) (END . (declarative_part_opt . 0)) 
(PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  292) (PRAGMA .  
7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt 
. 2)) (FOR .  289) (IDENTIFIER .  288) (TYPE .  294) (GENERIC .  2) (PROTECTED 
.  291) (TASK .  293) (PACKAGE .  290))
-      ((default . error) (SEPARATE .  836))
+      ((default . error) (NEW .  853) (END . (declarative_part_opt . 0)) 
(PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  299) (PRAGMA .  
7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt 
. 2)) (FOR .  296) (IDENTIFIER .  295) (TYPE .  301) (GENERIC .  2) (PROTECTED 
.  298) (TASK .  300) (PACKAGE .  297))
+      ((default . error) (SEPARATE .  852))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (IS . 
(aspect_specification_opt . 0)) (WITH .  108))
-      ((default . error) (NULL .  834))
-      ((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 .  87) (TICK .  88) (RANGE .  833) (LEFT_PAREN . 
 803))
+      ((default . error) (NULL .  850))
+      ((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 .  87) (TICK .  88) (RANGE .  849) (LEFT_PAREN . 
 819))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
-      ((default . error) (NEW .  829) (END . (declarative_part_opt . 0)) 
(PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  292) (PRAGMA .  
7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt 
. 2)) (FOR .  289) (IDENTIFIER .  288) (TYPE .  294) (GENERIC .  2) (PROTECTED 
.  291) (TASK .  293) (PACKAGE .  290))
-      ((default . error) (SEPARATE .  828))
+      ((default . error) (NEW .  845) (END . (declarative_part_opt . 0)) 
(PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  299) (PRAGMA .  
7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt 
. 2)) (FOR .  296) (IDENTIFIER .  295) (TYPE .  301) (GENERIC .  2) (PROTECTED 
.  298) (TASK .  300) (PACKAGE .  297))
+      ((default . error) (SEPARATE .  844))
       ((default . error) (IS . (aspect_specification_opt . 0)) (WITH .  108))
-      ((default . error) (SEPARATE .  826))
-      ((default . error) (SEMICOLON .  825))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (IDENTIFIER . (mod_clause_opt . 0)) (AT .  822))
-      ((default . error) (SEMICOLON .  821))
-      ((default . error) (SEMICOLON .  820))
-      ((default . error) (DOT .  87) (TICK .  88) (RENAMES .  819) (LEFT_PAREN 
.  106))
+      ((default . error) (SEPARATE .  842))
+      ((default . error) (SEMICOLON .  841))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (IDENTIFIER . (mod_clause_opt . 0)) (AT .  838))
+      ((default . error) (SEMICOLON .  837))
+      ((default . error) (SEMICOLON .  836))
+      ((default . error) (DOT .  87) (TICK .  88) (RENAMES .  835) (LEFT_PAREN 
.  106))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((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 .  816))
+      ((default . error) (RIGHT_PAREN .  832))
       ((default . error) (DO . (membership_choice_list . 1)) (LOOP . 
(membership_choice_list . 1)) (COMMA . (membership_choice_list . 1)) (ELSIF . 
(membership_choice_list . 1)) (ELSE . (membership_choice_list . 1)) 
(EQUAL_GREATER . (membership_choice_list . 1)) (RIGHT_PAREN . 
(membership_choice_list . 1)) (DIGITS . (membership_choice_list . 1)) (RANGE . 
(membership_choice_list . 1)) (THEN . (membership_choice_list . 1)) (SEMICOLON 
. (membership_choice_list . 1)) (WITH . (membership_choic [...]
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (ACCESS . (null_exclusion_opt . 1)) (IDENTIFIER .  
812) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (ACCESS . (null_exclusion_opt . 1)) (IDENTIFIER .  
828) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (NULL . (abstract_tagged_limited_opt . 1)) (RECORD . 
(abstract_tagged_limited_opt . 1)) (PRIVATE . (abstract_tagged_limited_opt . 
1)))
-      ((default . error) (NULL .  811) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (NUMERIC_LITERAL .  145) (NULL .  827) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (RIGHT_PAREN . (discrete_subtype_definition_list . 
0)) (COMMA . (discrete_subtype_definition_list . 0)))
-      ((default . error) (COMMA .  809) (RIGHT_PAREN .  810))
+      ((default . error) (COMMA .  825) (RIGHT_PAREN .  826))
       ((default . error) (RIGHT_PAREN . (index_subtype_definition_list . 0)) 
(COMMA . (index_subtype_definition_list . 0)))
-      ((default . error) (COMMA .  807) (RIGHT_PAREN .  808))
-      ((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 .  87) (TICK .  274) (RANGE .  804) (LEFT_PAREN .  803))
+      ((default . error) (COMMA .  823) (RIGHT_PAREN .  824))
+      ((default . error) (RIGHT_PAREN . (subtype_indication . 3)) (COMMA . 
(subtype_indication . 3)) (PLUS . (primary . 3)) (MINUS . (primary . 3)) 
(AMPERSAND . (primary . 3)) (DOT_DOT . (primary . 3)) (SLASH . (primary . 3)) 
(STAR . (primary . 3)) (MOD . (primary . 3)) (REM . (primary . 3)) (STAR_STAR . 
(primary . 3)) (DOT .  87) (TICK .  281) (RANGE .  820) (LEFT_PAREN .  819))
       ((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 .  264))
+      ((default . error) (DOT_DOT .  271))
       ((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 .  802))
+      ((default . error) (BOX .  818))
       ((default . error) (WITH . (formal_type_definition . 2)) (SEMICOLON . 
(formal_type_definition . 2)))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (PACKAGE . (formal_type_declaration . 1)) (PROCEDURE 
. (formal_type_declaration . 1)) (FUNCTION . (formal_type_declaration . 1)) 
(IDENTIFIER . (formal_type_declaration . 1)) (PRAGMA . (formal_type_declaration 
. 1)) (TYPE . (formal_type_declaration . 1)) (WITH . (formal_type_declaration . 
1)))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (DOT .  87) (TICK .  88) (WITH . 
(and_interface_list_opt . 0)) (SEMICOLON . (and_interface_list_opt . 0)) (AND . 
 795) (LEFT_PAREN .  106))
+      ((default . error) (DOT .  87) (TICK .  88) (WITH . 
(and_interface_list_opt . 0)) (SEMICOLON . (and_interface_list_opt . 0)) (AND . 
 811) (LEFT_PAREN .  106))
       ((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 .  794) (IDENTIFIER .  48) (STRING_LITERAL .  
49) (CHARACTER_LITERAL .  170) (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 .  144) (MINUS .  143) (OTHERS .  172) (ABS .  146) (NOT .  171) (NULL .  
150) (NEW .  148) (LEFT_PAREN .  147))
+      ((default . error) (BOX .  810) (IDENTIFIER .  48) (STRING_LITERAL .  
49) (CHARACTER_LITERAL .  173) (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 .  144) (MINUS .  143) (OTHERS .  175) (ABS .  147) (NOT .  174) 
(NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (RAISE .  152) (LEFT_PAREN 
.  148))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
       ((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 .  
108))
-      ((default . error) (SEMICOLON .  791))
+      ((default . error) (SEMICOLON .  807))
       ((default . error) (IDENTIFIER .  72))
       ((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) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((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)) (A [...]
-      ((default . error) (RIGHT_PAREN .  788))
-      ((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)) (RA [...]
+      ((default . error) (RIGHT_PAREN .  804))
+      ((default . error) (ELSE .  800) (RIGHT_PAREN . (if_expression . 3)) 
(ELSIF .  801))
+      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (OTHERS .  175) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) 
(ABS .  147) (NOT .  174) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(LEFT_PAREN .  148))
+      ((default . error) (RIGHT_PAREN . (case_expression_alternative_list . 
0)) (COMMA . (case_expression_alternative_list . 0)))
+      ((default . error) (COMMA .  798) (RIGHT_PAREN . (case_expression . 0)))
+      ((default . error) (WHEN .  795))
+      ((default . error) (BAR .  282) (EQUAL_GREATER .  1076))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((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 .  1072) 
(ELSIF .  801))
+      ((default . error) (OF . (aggregate . 4)) (LESS_LESS . (aggregate . 4)) 
(IDENTIFIER . (aggregate . 4)) (STRING_LITERAL . (aggregate . 4)) 
(CHARACTER_LITERAL . (aggregate . 4)) (ACCEPT . (aggregate . 4)) (ABORT . 
(aggregate . 4)) (BEGIN . (aggregate . 4)) (CASE . (aggregate . 4)) (DECLARE . 
(aggregate . 4)) (DELAY . (aggregate . 4)) (EXIT . (aggregate . 4)) (FOR . 
(aggregate . 4)) (GOTO . (aggregate . 4)) (IF . (aggregate . 4)) (NULL . 
(aggregate . 4)) (PRAGMA . (aggregate . 4)) (RA [...]
       ((default . error) (RIGHT_PAREN . (parameter_specification . 2)) 
(SEMICOLON . (parameter_specification . 2)))
-      ((default . error) (COLON_EQUAL .  1067) (DOT .  87) (TICK .  88) 
(RIGHT_PAREN . (parameter_specification . 1)) (SEMICOLON . 
(parameter_specification . 1)) (LEFT_PAREN .  106))
+      ((default . error) (COLON_EQUAL .  1071) (DOT .  87) (TICK .  88) 
(RIGHT_PAREN . (parameter_specification . 1)) (SEMICOLON . 
(parameter_specification . 1)) (LEFT_PAREN .  106))
       ((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 .  1066))
-      ((default . error) (SEMICOLON .  1065))
-      ((default . error) (RIGHT_PAREN .  1064))
+      ((default . error) (SEMICOLON .  1070))
+      ((default . error) (SEMICOLON .  1069))
+      ((default . error) (RIGHT_PAREN .  1068))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (WITH . ( 1062 (formal_derived_type_definition . 1))) 
(SEMICOLON . (formal_derived_type_definition . 1)))
-      ((default . error) (AND .  1061) (WITH . (interface_type_definition . 
1)) (SEMICOLON . (interface_type_definition . 1)))
+      ((default . error) (WITH . ( 1066 (formal_derived_type_definition . 1))) 
(SEMICOLON . (formal_derived_type_definition . 1)))
+      ((default . error) (AND .  1065) (WITH . (interface_type_definition . 
1)) (SEMICOLON . (interface_type_definition . 1)))
       ((default . error) (DOT .  87) (SEMICOLON . (interface_list . 0)) (WITH 
. (interface_list . 0)) (AND . (interface_list . 0)) (TICK .  88) (LEFT_PAREN . 
 106))
-      ((default . error) (AND .  1061) (WITH . (interface_type_definition . 
3)) (SEMICOLON . (interface_type_definition . 3)))
-      ((default . error) (AND .  1061) (WITH . (interface_type_definition . 
2)) (SEMICOLON . (interface_type_definition . 2)))
-      ((default . error) (AND .  1061) (WITH . (interface_type_definition . 
0)) (SEMICOLON . (interface_type_definition . 0)))
+      ((default . error) (AND .  1065) (WITH . (interface_type_definition . 
3)) (SEMICOLON . (interface_type_definition . 3)))
+      ((default . error) (AND .  1065) (WITH . (interface_type_definition . 
2)) (SEMICOLON . (interface_type_definition . 2)))
+      ((default . error) (AND .  1065) (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 .  48) (STRING_LITERAL .  49) 
(CHARACTER_LITERAL .  170) (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 .  144) (MINUS .  143) (OTHERS .  172) (ABS .  146) (NOT .  1058) (NULL . 
 150) (NEW .  148) (LEFT_PAREN .  147))
-      ((default . error) (BOX .  1057) (IDENTIFIER .  48) (CHARACTER_LITERAL . 
 50) (STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (LEFT_PAREN .  147))
+      ((default . error) (IDENTIFIER .  48) (STRING_LITERAL .  49) 
(CHARACTER_LITERAL .  173) (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 .  144) (MINUS .  143) (OTHERS .  175) (ABS .  147) (NOT .  1062) 
(NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (RAISE .  152) (LEFT_PAREN 
.  148))
+      ((default . error) (BOX .  1061) (IDENTIFIER .  48) (CHARACTER_LITERAL . 
 50) (STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
       ((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 .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (OF .  1054))
-      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  757) 
(NULL .  150) (NEW .  148) (LEFT_PAREN .  147))
-      ((default . error) (OF .  1052))
-      ((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 
.  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
-      ((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) (OF .  1058))
+      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  763) 
(NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
+      ((default . error) (OF .  1056))
+      ((default . error) (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)) (IDENTIFIER 
.  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (DOT . (name . 0)) (LEFT_PAREN . (name . 0)) (TICK . 
(name . 0)) (SEMICOLON . (null_exclusion_opt_name_type . 2)) (RIGHT_PAREN . 
(null_exclusion_opt_name_type . 2)) (COLON_EQUAL . 
(null_exclusion_opt_name_type . 2)))
+      ((default . error) (DOT . (name . 3)) (LEFT_PAREN . (name . 3)) (TICK . 
(name . 3)) (SEMICOLON . (null_exclusion_opt_name_type . 3)) (RIGHT_PAREN . 
(null_exclusion_opt_name_type . 3)) (COLON_EQUAL . 
(null_exclusion_opt_name_type . 3)))
       ((default . error) (SEMICOLON . (discriminant_specification_opt . 3)) 
(RIGHT_PAREN . (discriminant_specification_opt . 3)))
       ((default . error) (SEMICOLON . (discriminant_specification_opt . 1)) 
(RIGHT_PAREN . (discriminant_specification_opt . 1)))
       ((default . error) (DO . (range . 0)) (LOOP . (range . 0)) (XOR . (range 
. 0)) (OR . (range . 0)) (AND . (range . 0)) (IS . (range . 0)) (WITH . (range 
. 0)) (SEMICOLON . (range . 0)) (THEN . (range . 0)) (RANGE . (range . 0)) 
(DIGITS . (range . 0)) (ELSE . (range . 0)) (ELSIF . (range . 0)) (COLON_EQUAL 
. (range . 0)) (OF . (range . 0)) (COMMA . (range . 0)) (BAR . (range . 0)) 
(EQUAL_GREATER . (range . 0)) (RIGHT_PAREN . (range . 0)))
@@ -2559,37 +2633,37 @@
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((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 . (re [...]
       ((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 . (enu [...]
-      ((default . error) (MOD .  1048))
-      ((default . error) (IDENTIFIER .  1045))
-      ((default . error) (SEMICOLON .  1044))
+      ((default . error) (MOD .  1052))
+      ((default . error) (IDENTIFIER .  1049))
+      ((default . error) (SEMICOLON .  1048))
       ((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)) ( [...]
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
-      ((default . error) (IS .  1042))
+      ((default . error) (IS .  1046))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (END .  1038) (PRIVATE .  1039))
-      ((default . error) (SEMICOLON .  1037))
-      ((default . error) (SEMICOLON .  1036))
-      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  149) 
(NULL .  150) (NEW .  148) (LEFT_PAREN .  147))
+      ((default . error) (END .  1042) (PRIVATE .  1043))
+      ((default . error) (SEMICOLON .  1041))
+      ((default . error) (SEMICOLON .  1040))
+      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  150) 
(NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (SEMICOLON .  1032) (IS .  1033))
+      ((default . error) (SEMICOLON .  1036) (IS .  1037))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (END .  1028) (PRIVATE .  1029))
-      ((default . error) (SEMICOLON .  1027))
-      ((default . error) (SYNCHRONIZED .  550) (TAGGED .  551) (NEW . 
((abstract_limited_synchronized_opt . 3) (abstract_limited_opt . 3))) (LIMITED 
.  1026))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (IDENTIFIER .  1020) (CHARACTER_LITERAL .  1021))
-      ((default . error) (INTERFACE .  544) (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 .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (RECORD .  1018))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (END . (component_list_opt . 0)) (NULL .  1009) (CASE 
.  1008) (IDENTIFIER .  72) (FOR .  289))
-      ((default . error) (SEMICOLON .  1007) (PRIVATE . 
(abstract_tagged_limited_opt . 4)) (NULL . (abstract_tagged_limited_opt . 4)) 
(RECORD . (abstract_tagged_limited_opt . 4)) (LIMITED .  538))
-      ((default . error) (NEW .  1006))
-      ((default . error) (NEW .  1005))
-      ((default . error) (PRIVATE .  1003) (RECORD .  848) (NULL .  846))
+      ((default . error) (END .  1032) (PRIVATE .  1033))
+      ((default . error) (SEMICOLON .  1031))
+      ((default . error) (SYNCHRONIZED .  561) (TAGGED .  562) (NEW . 
((abstract_limited_synchronized_opt . 3) (abstract_limited_opt . 3))) (LIMITED 
.  1030))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (IDENTIFIER .  1024) (CHARACTER_LITERAL .  1025))
+      ((default . error) (INTERFACE .  555) (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) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RECORD .  1022))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (END . (component_list_opt . 0)) (NULL .  1013) (CASE 
.  1012) (IDENTIFIER .  72) (FOR .  296))
+      ((default . error) (SEMICOLON .  1011) (PRIVATE . 
(abstract_tagged_limited_opt . 4)) (NULL . (abstract_tagged_limited_opt . 4)) 
(RECORD . (abstract_tagged_limited_opt . 4)) (LIMITED .  549))
+      ((default . error) (NEW .  1010))
+      ((default . error) (NEW .  1009))
+      ((default . error) (PRIVATE .  1007) (RECORD .  864) (NULL .  862))
       ((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)))
@@ -2598,131 +2672,119 @@
       ((default . error) (WITH . (type_definition . 7)) (SEMICOLON . 
(type_definition . 7)))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
       ((default . error) (SEMICOLON . (package_specification . 0)))
-      ((default . error) (SEMICOLON .  1001))
-      ((default . error) (NULL .  1000))
+      ((default . error) (SEMICOLON .  1005))
+      ((default . error) (NULL .  1004))
+      ((default . error) (COLON_EQUAL .  1002) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108))
+      ((default . error) (COLON_EQUAL .  1000) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108))
       ((default . error) (COLON_EQUAL .  998) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108))
-      ((default . error) (COLON_EQUAL .  996) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108))
-      ((default . error) (COLON_EQUAL .  994) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108))
-      ((default . error) (SEMICOLON .  993))
-      ((default . error) (SEMICOLON .  992))
-      ((default . error) (SEMICOLON .  991))
+      ((default . error) (SEMICOLON .  997))
+      ((default . error) (SEMICOLON .  996))
+      ((default . error) (SEMICOLON .  995))
+      ((default . error) (SEMICOLON .  994))
+      ((default . error) (RIGHT_PAREN .  993))
+      ((default . error) (RIGHT_PAREN .  992))
+      ((default . error) (RIGHT_PAREN .  991))
       ((default . error) (SEMICOLON .  990))
       ((default . error) (RIGHT_PAREN .  989))
-      ((default . error) (RIGHT_PAREN .  988))
-      ((default . error) (RIGHT_PAREN .  987))
-      ((default . error) (SEMICOLON .  986))
-      ((default . error) (RIGHT_PAREN .  985))
-      ((default . error) (LOOP . (subtype_indication . 3)) (DOT .  87) (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 [...]
+      ((default . error) (LOOP . (subtype_indication . 3)) (DOT .  87) (IN . 
(primary . 3)) (NOT . (primary . 3)) (EQUAL . (primary . 3)) (GREATER . 
(primary . 3)) (GREATER_EQUAL . (primary . 3)) (LESS . (primary . 3)) 
(LESS_EQUAL . (primary . 3)) (SLASH_EQUAL . (primary . 3)) (RIGHT_PAREN . 
((subtype_indication . 3) (primary . 3))) (COMMA . ((subtype_indication . 3) 
(primary . 3))) (BAR . (primary . 3)) (EQUAL_GREATER . ((subtype_indication . 
3) (primary . 3))) (AND . (primary . 3)) (OR [...]
       ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((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_ [...]
-      ((default . error) (WHEN .  713))
-      ((default . error) (BAR .  275) (EQUAL_GREATER .  982))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (DOT .  87) (TICK .  88) (LOOP . 
(iterator_specification . 5)) (EQUAL_GREATER . (iterator_specification . 5)) 
(LEFT_PAREN .  106))
-      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  757) 
(NULL .  150) (NEW .  148) (LEFT_PAREN .  147))
+      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  763) 
(NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
       ((default . error) (LOOP . (iterator_specification . 1)) (EQUAL_GREATER 
. (iterator_specification . 1)))
-      ((default . error) (OF .  979))
+      ((default . error) (OF .  985))
       ((default . error) (RIGHT_PAREN . (quantified_expression . 0)))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((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 .  975) 
(ELSIF .  887))
-      ((default . error) (END . (protected_operation_item_list_opt . 0)) 
(ENTRY .  966) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(FOR .  289))
-      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  292) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  289) (IDENTIFIER .  288) (TYPE 
.  294) (GENERIC .  2) (PROTECTED .  291) (TASK .  293) (PACKAGE .  290))
+      ((default . error) (END . (protected_operation_item_list_opt . 0)) 
(ENTRY .  976) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(FOR .  296))
+      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  299) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  296) (IDENTIFIER .  295) (TYPE 
.  301) (GENERIC .  2) (PROTECTED .  298) (TASK .  300) (PACKAGE .  297))
       ((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)) (NU [...]
-      ((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 .  172) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  170) (STRING_LITERAL .  49) (PLUS .  
144) (MINUS .  143) (ABS .  146) (NOT .  171) (NULL .  150) (NEW .  148) 
(LEFT_PAREN .  147))
+      ((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 .  175) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  173) (STRING_LITERAL .  49) (RAISE .  
152) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  174) (NUMERIC_LITERAL .  
145) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
       ((default . error) (SEMICOLON . (actual_parameter_part_opt . 1)) 
(LEFT_PAREN . (actual_parameter_part_opt . 1)) (DO . (actual_parameter_part_opt 
. 1)))
-      ((default . error) (DO . (parameter_profile_opt . 0)) (SEMICOLON . 
(parameter_profile_opt . 0)) (LEFT_PAREN .  781))
+      ((default . error) (DO . (parameter_profile_opt . 0)) (SEMICOLON . 
(parameter_profile_opt . 0)) (LEFT_PAREN .  787))
       ((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 .  [...]
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
694))
-      ((default . error) (WHEN .  960))
-      ((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 .  [...]
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
703))
+      ((default . error) (WHEN .  970))
+      ((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 .  [...]
       ((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_statemen [...]
-      ((default . error) (SEMICOLON .  958))
+      ((default . error) (SEMICOLON .  968))
       ((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)) (DEL [...]
-      ((default . error) (SEMICOLON . (expression_opt . 0)) (PLUS .  144) 
(MINUS .  143) (ABS .  146) (NOT .  149) (NULL .  150) (NEW .  148) (IDENTIFIER 
.  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (SEMICOLON . (expression_opt . 0)) (RAISE .  152) 
(PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  150) (NUMERIC_LITERAL .  145) 
(NULL .  151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((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 .  [...]
-      ((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 . ( [...]
-      ((default . error) (LOOP .  955))
+      ((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 . ( [...]
+      ((default . error) (LOOP .  965))
       ((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_statem [...]
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((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) [...]
-      ((default . error) (ABORT .  953))
-      ((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 .  [...]
+      ((default . error) (ABORT .  963))
+      ((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 .  [...]
       ((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_ [...]
       ((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)) [...]
-      ((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 .  512))
-      ((default . error) (ABORT .  950))
-      ((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 [...]
-      ((default . error) (SELECT .  948))
-      ((default . error) (WHEN .  669) (TERMINATE .  668) (ACCEPT .  612) 
(DELAY .  617))
+      ((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 .  517))
+      ((default . error) (ABORT .  960))
+      ((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 [...]
+      ((default . error) (SELECT .  958))
+      ((default . error) (WHEN .  678) (TERMINATE .  677) (ACCEPT .  621) 
(DELAY .  626))
       ((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 [...]
-      ((default . error) (DELAY .  617))
+      ((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 [...]
+      ((default . error) (DELAY .  626))
       ((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 .  943))
+      ((default . error) (EQUAL_GREATER .  953))
       ((default . error) (END . (select_alternative . 5)) (OR . 
(select_alternative . 5)) (ELSE . (select_alternative . 5)))
-      ((default . error) (SEMICOLON .  942))
-      ((default . error) (END .  941))
-      ((default . error) (SEMICOLON .  940))
-      ((default . error) (OTHERS .  936) (IDENTIFIER .  935) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (SEMICOLON .  952))
+      ((default . error) (END .  951))
+      ((default . error) (SEMICOLON .  950))
+      ((default . error) (OTHERS .  946) (IDENTIFIER .  945) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (END . (exception_handler_list . 0)) (WHEN . 
(exception_handler_list . 0)))
-      ((default . error) (END . (exception_handler_list_opt . 1)) (WHEN .  
930))
+      ((default . error) (END . (exception_handler_list_opt . 1)) (WHEN .  
940))
       ((default . error) (END . (handled_sequence_of_statements . 0)))
       ((default . error) (WHEN . (exception_handler_list . 1)) (END . 
(exception_handler_list . 1)))
-      ((default . error) (COLON .  1168) (EQUAL_GREATER . (name . 0)) (BAR . 
(name . 0)) (LEFT_PAREN . (name . 0)) (DOT . (name . 0)) (TICK . (name . 0)))
+      ((default . error) (COLON .  1178) (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 .  1166) (EQUAL_GREATER .  1167))
+      ((default . error) (BAR .  1176) (EQUAL_GREATER .  1177))
       ((default . error) (DOT .  87) (BAR . (exception_choice . 0)) 
(EQUAL_GREATER . (exception_choice . 0)) (TICK .  88) (LEFT_PAREN .  106))
       ((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_state [...]
-      ((default . error) (LOOP .  1165))
+      ((default . error) (LOOP .  1175))
       ((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)) (OVERRIDIN [...]
-      ((default . error) (TERMINATE .  1162) (ACCEPT .  612) (DELAY .  617))
-      ((default . error) (END .  1161))
-      ((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 . (lab [...]
-      ((default . error) (END .  1159))
+      ((default . error) (TERMINATE .  1172) (ACCEPT .  621) (DELAY .  626))
+      ((default . error) (END .  1171))
+      ((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 . (lab [...]
+      ((default . error) (END .  1169))
       ((default . error) (ELSE . (select_alternative_list . 1)) (END . 
(select_alternative_list . 1)) (OR . (select_alternative_list . 1)))
-      ((default . error) (SEMICOLON .  1158))
-      ((default . error) (END .  1157))
-      ((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 [...]
-      ((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 .  725))
-      ((default . error) (END .  1154))
-      ((default . error) (SEMICOLON .  1153))
-      ((default . error) (SEMICOLON .  1152))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
694))
-      ((default . error) (ELSE .  1146) (END .  1148) (ELSIF .  1147))
-      ((default . error) (SEMICOLON .  1145))
+      ((default . error) (SEMICOLON .  1168))
+      ((default . error) (END .  1167))
+      ((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 [...]
+      ((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 .  730))
+      ((default . error) (END .  1164))
+      ((default . error) (SEMICOLON .  1163))
+      ((default . error) (SEMICOLON .  1162))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
703))
+      ((default . error) (ELSE .  1156) (END .  1158) (ELSIF .  1157))
+      ((default . error) (SEMICOLON .  1155))
       ((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_stat [...]
-      ((default . error) (END .  1144))
-      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (OTHERS .  172) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) 
(ABS .  146) (NOT .  171) (NULL .  150) (NEW .  148) (LEFT_PAREN .  147))
+      ((default . error) (END .  1154))
+      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (OTHERS .  175) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) 
(ABS .  147) (NOT .  174) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(LEFT_PAREN .  148))
       ((default . error) (END . (case_statement_alternative_list . 0)) (WHEN . 
(case_statement_alternative_list . 0)))
-      ((default . error) (END .  1141) (WHEN .  960))
-      ((default . error) (SEMICOLON .  1140))
-      ((default . error) (DO .  1139) (SEMICOLON .  1138))
-      ((default . error) (BEGIN .  1137))
-      ((default . error) (IDENTIFIER .  1136))
+      ((default . error) (END .  1151) (WHEN .  970))
+      ((default . error) (SEMICOLON .  1150))
+      ((default . error) (DO .  1149) (SEMICOLON .  1148))
+      ((default . error) (BEGIN .  1147))
+      ((default . error) (IDENTIFIER .  1146))
       ((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 .  966) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(FOR .  289))
-      ((default . error) (END .  1133))
+      ((default . error) (END . (protected_operation_item_list_opt . 1)) 
(ENTRY .  976) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(FOR .  296))
+      ((default . error) (END .  1143))
       ((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 .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (ELSIF . (elsif_expression_list . 1)) (ELSE . 
(elsif_expression_list . 1)) (RIGHT_PAREN . (elsif_expression_list . 1)))
-      ((default . error) (THEN .  1131))
-      ((default . error) (RIGHT_PAREN . (if_expression . 2)))
-      ((default . error) (REVERSE .  1129) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (REVERSE .  1141) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (LOOP . (iterator_specification . 0)) (EQUAL_GREATER 
. (iterator_specification . 0)))
       ((default . error) (DOT .  87) (TICK .  88) (LOOP . 
(iterator_specification . 4)) (EQUAL_GREATER . (iterator_specification . 4)) 
(LEFT_PAREN .  106))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (RIGHT_PAREN . (case_expression_alternative_list . 
1)) (COMMA . (case_expression_alternative_list . 1)))
-      ((default . error) (SEMICOLON .  1127))
-      ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON . 
(parameter_profile_opt . 0)) (LEFT_PAREN .  781))
+      ((default . error) (SEMICOLON .  1140))
+      ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON . 
(parameter_profile_opt . 0)) (LEFT_PAREN .  787))
       ((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 . ( [...]
       ((default . error) (WITH . (paren_expression . 2)) (SEMICOLON . 
(paren_expression . 2)))
       ((default . error) (WITH . (paren_expression . 0)) (SEMICOLON . 
(paren_expression . 0)))
@@ -2731,131 +2793,140 @@
       ((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_procedur [...]
       ((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_subp [...]
       ((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 . [...]
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (SEMICOLON .  1124))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (SEMICOLON .  1122))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (SEMICOLON .  1120))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (SEMICOLON .  1137))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (SEMICOLON .  1135))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (SEMICOLON .  1133))
       ((default . error) (ACCESS . (null_exclusion_opt . 1)) (IDENTIFIER .  
48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (BEGIN . (declaration . 9)) (IDENTIFIER . 
(declaration . 9)) (ENTRY . (declaration . 9)) (FOR . (declaration . 9)) 
(FUNCTION . (declaration . 9)) (GENERIC . (declaration . 9)) (NOT . 
(declaration . 9)) (OVERRIDING . (declaration . 9)) (PACKAGE . (declaration . 
9)) (PRAGMA . (declaration . 9)) (PROCEDURE . (declaration . 9)) (PROTECTED . 
(declaration . 9)) (SUBTYPE . (declaration . 9)) (TASK . (declaration . 9)) 
(TYPE . (declaration . 9)) (USE . (declaration . 9)) [...]
-      ((default . error) (SEMICOLON .  1119))
+      ((default . error) (SEMICOLON .  1132))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
       ((default . error) (WITH . (record_type_definition . 0)) (SEMICOLON . 
(record_type_definition . 0)))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (NOT .  735) (IDENTIFIER .  48) (CHARACTER_LITERAL .  
50) (STRING_LITERAL .  49))
+      ((default . error) (NOT .  741) (IDENTIFIER .  48) (CHARACTER_LITERAL .  
50) (STRING_LITERAL .  49))
       ((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 .  [...]
-      ((default . error) (IS . (direct_name_opt . 0)) (IDENTIFIER .  1112) 
(STRING_LITERAL .  1113))
-      ((default . error) (SEMICOLON .  1111))
+      ((default . error) (IS . (direct_name_opt . 0)) (IDENTIFIER .  1125) 
(STRING_LITERAL .  1126))
+      ((default . error) (SEMICOLON .  1124))
       ((default . error) (WHEN . (component_item . 1)) (END . (component_item 
. 1)) (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) (WHEN . (component_list_opt . 1)) (END . 
(component_list_opt . 1)) (CASE .  1008) (IDENTIFIER .  72) (FOR .  289))
-      ((default . error) (END .  1108))
-      ((default . error) (COMMA .  95) (COLON .  1107))
+      ((default . error) (WHEN . (component_list_opt . 1)) (END . 
(component_list_opt . 1)) (CASE .  1012) (IDENTIFIER .  72) (FOR .  296))
+      ((default . error) (END .  1121))
+      ((default . error) (COMMA .  95) (COLON .  1120))
       ((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 .  1106))
+      ((default . error) (DOT_DOT .  1119))
       ((default . error) (SEMICOLON . (record_definition . 1)) (WITH . 
(record_definition . 1)))
       ((default . error) (SEMICOLON . (type_definition . 2)) (WITH . 
(type_definition . 2)))
       ((default . error) (COMMA . (enumeration_literal . 0)) (RIGHT_PAREN . 
(enumeration_literal . 0)))
       ((default . error) (COMMA . (enumeration_literal . 1)) (RIGHT_PAREN . 
(enumeration_literal . 1)))
       ((default . error) (RIGHT_PAREN . (enumeration_literal_list . 0)) (COMMA 
. (enumeration_literal_list . 0)))
-      ((default . error) (COMMA .  1104) (RIGHT_PAREN .  1105))
-      ((default . error) (WITH . (real_range_specification_opt . 0)) 
(SEMICOLON . (real_range_specification_opt . 0)) (RANGE .  1101))
-      ((default . error) (DIGITS .  1100) (WITH . 
(real_range_specification_opt . 0)) (SEMICOLON . (real_range_specification_opt 
. 0)) (RANGE .  1101))
+      ((default . error) (COMMA .  1117) (RIGHT_PAREN .  1118))
+      ((default . error) (WITH . (real_range_specification_opt . 0)) 
(SEMICOLON . (real_range_specification_opt . 0)) (RANGE .  1114))
+      ((default . error) (DIGITS .  1113) (WITH . 
(real_range_specification_opt . 0)) (SEMICOLON . (real_range_specification_opt 
. 0)) (RANGE .  1114))
       ((default . error) (NEW . ((abstract_limited_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)) (PROTECTE [...]
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
694))
-      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  292) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  289) (IDENTIFIER .  288) (TYPE 
.  294) (GENERIC .  2) (PROTECTED .  291) (TASK .  293) (PACKAGE .  290))
-      ((default . error) (AND .  1061) (WITH .  1097))
-      ((default . error) (SEMICOLON .  1096))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
703))
+      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  299) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  296) (IDENTIFIER .  295) (TYPE 
.  301) (GENERIC .  2) (PROTECTED .  298) (TASK .  300) (PACKAGE .  297))
+      ((default . error) (AND .  1065) (WITH .  1110))
+      ((default . error) (SEMICOLON .  1109))
       ((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  [...]
-      ((default . error) (NEW .  1094) (END . (declarative_part_opt . 0)) 
(PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  292) (PRAGMA .  
7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt 
. 2)) (FOR .  289) (IDENTIFIER .  288) (TYPE .  294) (GENERIC .  2) (PROTECTED 
.  291) (TASK .  293) (PACKAGE .  290))
-      ((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 .  87) (TICK .  88) (RANGE .  833) (LEFT_PAREN . 
 803))
+      ((default . error) (NEW .  1107) (END . (declarative_part_opt . 0)) 
(PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  299) (PRAGMA .  
7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt 
. 2)) (FOR .  296) (IDENTIFIER .  295) (TYPE .  301) (GENERIC .  2) (PROTECTED 
.  298) (TASK .  300) (PACKAGE .  297))
+      ((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 .  87) (TICK .  88) (RANGE .  849) (LEFT_PAREN . 
 819))
       ((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_de [...]
       ((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)) (PR [...]
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
694))
-      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  292) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  289) (IDENTIFIER .  288) (TYPE 
.  294) (GENERIC .  2) (PROTECTED .  291) (TASK .  293) (PACKAGE .  290))
-      ((default . error) (AND .  1061) (WITH .  1090))
-      ((default . error) (SEMICOLON .  1089))
-      ((default . error) (NEW .  1087) (END . (declarative_part_opt . 0)) 
(PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  292) (PRAGMA .  
7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt 
. 2)) (FOR .  289) (IDENTIFIER .  288) (TYPE .  294) (GENERIC .  2) (PROTECTED 
.  291) (TASK .  293) (PACKAGE .  290))
-      ((default . error) (SEMICOLON .  1086))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
703))
+      ((default . error) (END . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  299) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  296) (IDENTIFIER .  295) (TYPE 
.  301) (GENERIC .  2) (PROTECTED .  298) (TASK .  300) (PACKAGE .  297))
+      ((default . error) (AND .  1065) (WITH .  1103))
+      ((default . error) (SEMICOLON .  1102))
+      ((default . error) (NEW .  1100) (END . (declarative_part_opt . 0)) 
(PRIVATE . (declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  299) (PRAGMA .  
7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) 
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt 
. 2)) (FOR .  296) (IDENTIFIER .  295) (TYPE .  301) (GENERIC .  2) (PROTECTED 
.  298) (TASK .  300) (PACKAGE .  297))
+      ((default . error) (SEMICOLON .  1099))
       ((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  [...]
-      ((default . error) (AT .  1085))
+      ((default . error) (AT .  1098))
       ((default . error) (END . (component_clause_list . 0)) (IDENTIFIER . 
(component_clause_list . 0)))
-      ((default . error) (END .  1083) (IDENTIFIER .  1045))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (END .  1096) (IDENTIFIER .  1049))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
       ((default . error) (DOT .  87) (TICK .  88) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108) (LEFT_PAREN .  106))
-      ((default . error) (SEMICOLON .  1080))
-      ((default . error) (SEMICOLON .  1079))
-      ((default . error) (ALIASED .  1074) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt 
. 0)) (NOT .  862))
+      ((default . error) (SEMICOLON .  1093))
+      ((default . error) (SEMICOLON .  1092))
+      ((default . error) (ALIASED .  1087) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt 
. 0)) (NOT .  878))
       ((default . error) (RIGHT_PAREN . (discrete_subtype_definition_list . 
1)) (COMMA . (discrete_subtype_definition_list . 1)))
-      ((default . error) (ALIASED .  1074) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt 
. 0)) (NOT .  862))
+      ((default . error) (ALIASED .  1087) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt 
. 0)) (NOT .  878))
       ((default . error) (RIGHT_PAREN . (index_subtype_definition_list . 1)) 
(COMMA . (index_subtype_definition_list . 1)))
-      ((default . error) (DOT .  87) (RANGE .  1073) (TICK .  88) (LEFT_PAREN 
.  106))
+      ((default . error) (DOT .  87) (RANGE .  1086) (TICK .  88) (LEFT_PAREN 
.  106))
       ((default . error) (COMMA . (index_subtype_definition . 0)) (RIGHT_PAREN 
. (index_subtype_definition . 0)))
-      ((default . error) (NULL .  1072) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (COMMA .  809) (RIGHT_PAREN .  1071))
-      ((default . error) (COMMA . (discrete_subtype_definition . 1)) (BAR . 
(discrete_choice . 2)) (EQUAL_GREATER . (discrete_choice . 2)) (RIGHT_PAREN . 
((discrete_subtype_definition . 1)  260)))
+      ((default . error) (NUMERIC_LITERAL .  145) (NULL .  1085) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (COMMA .  825) (RIGHT_PAREN .  1084))
+      ((default . error) (COMMA . (discrete_subtype_definition . 1)) (BAR . 
(discrete_choice . 2)) (EQUAL_GREATER . (discrete_choice . 2)) (RIGHT_PAREN . 
((discrete_subtype_definition . 1)  267)))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (PRIVATE .  1069))
-      ((default . error) (AND .  1061) (WITH . (and_interface_list_opt . 1)) 
(SEMICOLON . (and_interface_list_opt . 1)))
+      ((default . error) (PRIVATE .  1082))
+      ((default . error) (AND .  1065) (WITH . (and_interface_list_opt . 1)) 
(SEMICOLON . (and_interface_list_opt . 1)))
       ((default . error) (WITH . (formal_package_actual_part . 0)) (SEMICOLON 
. (formal_package_actual_part . 0)))
       ((default . error) (PACKAGE . (formal_package_declaration . 0)) 
(PROCEDURE . (formal_package_declaration . 0)) (FUNCTION . 
(formal_package_declaration . 0)) (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 .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (ELSIF . (elsif_expression_list . 1)) (ELSE . 
(elsif_expression_list . 1)) (RIGHT_PAREN . (elsif_expression_list . 1)))
+      ((default . error) (THEN .  1079))
+      ((default . error) (RIGHT_PAREN . (if_expression . 2)))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RIGHT_PAREN . (case_expression_alternative_list . 
1)) (COMMA . (case_expression_alternative_list . 1)))
+      ((default . error) (COMMA . (case_expression_alternative . 0)) 
(RIGHT_PAREN . (case_expression_alternative . 0)))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (RIGHT_PAREN . (if_expression . 0)))
       ((default . error) (RIGHT_PAREN . (parameter_specification . 0)) 
(SEMICOLON . (parameter_specification . 0)))
       ((default . error) (WITH . (formal_derived_type_definition . 0)) 
(SEMICOLON . (formal_derived_type_definition . 0)))
       ((default . error) (DOT .  87) (TICK .  88) (WITH . (interface_list . 
1)) (SEMICOLON . (interface_list . 1)) (AND . (interface_list . 1)) (LEFT_PAREN 
.  106))
       ((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_EQ [...]
-      ((default . error) (BOX .  1057))
-      ((default . error) (ACCESS . (null_exclusion_opt . 0)) (NOT .  862) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
+      ((default . error) (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)) (XOR . 
(primary . 1)) (OR . (primary . 1)) (AND . (primary . 1)) (EQUAL_GREATER . 
(primary . 1)) (BAR . (primary . 1)) (IN . (primary . 1)) (NOT . (primary . 1)) 
(EQUAL . (primary . 1)) (GREATER . (primary . 1)) (GREATER_EQUAL . (primary . 
1)) (LESS . (primary . 1)) (LESS_EQ [...]
+      ((default . error) (BOX .  1061))
+      ((default . error) (ACCESS . (null_exclusion_opt . 0)) (NOT .  878) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49))
       ((default . error) (WITH . (component_definition . 3)) (SEMICOLON . 
(component_definition . 3)) (COLON_EQUAL . (component_definition . 3)))
       ((default . error) (WITH . (array_type_definition . 0)) (SEMICOLON . 
(array_type_definition . 0)) (COLON_EQUAL . (array_type_definition . 0)))
       ((default . error) (WITH . (component_definition . 1)) (SEMICOLON . 
(component_definition . 1)) (COLON_EQUAL . (component_definition . 1)))
       ((default . error) (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 . (obj [...]
       ((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 . (obj [...]
-      ((default . error) (SEMICOLON .  1228))
-      ((default . error) (SEMICOLON .  1227))
-      ((default . error) (RECORD .  1226))
+      ((default . error) (SEMICOLON .  1237))
+      ((default . error) (SEMICOLON .  1236))
+      ((default . error) (RECORD .  1235))
       ((default . error) (IDENTIFIER . (component_clause_list . 1)) (END . 
(component_clause_list . 1)))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (PRIVATE . (package_body_stub . 0)) (END . 
(package_body_stub . 0)) (BEGIN . (package_body_stub . 0)) (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)) (PROTEC [...]
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (SEMICOLON .  1223))
+      ((default . error) (SEMICOLON .  1232))
       ((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 . (protect [...]
-      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  292) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 289) (IDENTIFIER .  288) (TYPE .  294) (GENERIC .  2) (PROTECTED .  291) (TASK 
.  293) (PACKAGE .  290))
-      ((default . error) (END .  1221))
+      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  299) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 296) (IDENTIFIER .  295) (TYPE .  301) (GENERIC .  2) (PROTECTED .  298) (TASK 
.  300) (PACKAGE .  297))
+      ((default . error) (END .  1230))
       ((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 .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
-      ((default . error) (SEMICOLON .  1219))
+      ((default . error) (SEMICOLON .  1228))
       ((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 .  [...]
-      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  292) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 289) (IDENTIFIER .  288) (TYPE .  294) (GENERIC .  2) (PROTECTED .  291) (TASK 
.  293) (PACKAGE .  290))
-      ((default . error) (END .  1217))
+      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  299) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 296) (IDENTIFIER .  295) (TYPE .  301) (GENERIC .  2) (PROTECTED .  298) (TASK 
.  300) (PACKAGE .  297))
+      ((default . error) (END .  1226))
       ((default . error) (SEMICOLON . (task_definition . 1)))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (WITH . (type_definition . 4)) (SEMICOLON . 
(type_definition . 4)))
       ((default . error) (WITH . (type_definition . 3)) (SEMICOLON . 
(type_definition . 3)))
-      ((default . error) (IDENTIFIER .  1020) (CHARACTER_LITERAL .  1021))
+      ((default . error) (IDENTIFIER .  1024) (CHARACTER_LITERAL .  1025))
       ((default . error) (SEMICOLON . (enumeration_type_definition . 0)) (WITH 
. (enumeration_type_definition . 0)))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (ALIASED .  1074) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt 
. 0)) (NOT .  862))
-      ((default . error) (RECORD .  1211))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (ALIASED .  1087) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt 
. 0)) (NOT .  878))
+      ((default . error) (RECORD .  1220))
       ((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 . (direct_name_opt . 1)))
-      ((default . error) (IS .  1210))
-      ((default . error) (WITH . (and_interface_list_opt . 0)) (AND .  795))
-      ((default . error) (DOT .  87) (TICK .  88) (AND .  795) (WITH . 
((and_interface_list_opt . 0) (constraint_opt . 0))) (SEMICOLON . 
(constraint_opt . 0)) (RANGE .  833) (LEFT_PAREN .  803))
-      ((default . error) (SEMICOLON .  1205))
+      ((default . error) (IS .  1219))
+      ((default . error) (WITH . (and_interface_list_opt . 0)) (AND .  811))
+      ((default . error) (DOT .  87) (TICK .  88) (AND .  811) (WITH . 
((and_interface_list_opt . 0) (constraint_opt . 0))) (SEMICOLON . 
(constraint_opt . 0)) (RANGE .  849) (LEFT_PAREN .  819))
+      ((default . error) (SEMICOLON .  1214))
       ((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)) [...]
       ((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  [...]
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
@@ -2865,201 +2936,198 @@
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
       ((default . error) (END . (package_body . 0)) (BEGIN . (package_body . 
0)) (IDENTIFIER . (package_body . 0)) (ENTRY . (package_body . 0)) (FOR . 
(package_body . 0)) (PROTECTED . (package_body . 0)) (SUBTYPE . (package_body . 
0)) (TASK . (package_body . 0)) (TYPE . (package_body . 0)) (WITH . 
(package_body . 0)) (USE . (package_body . 0)) (SEPARATE . (package_body . 0)) 
(PROCEDURE . (package_body . 0)) (PRIVATE . (package_body . 0)) (PRAGMA . 
(package_body . 0)) (PACKAGE . (package_ [...]
-      ((default . error) (COMMA . (case_expression_alternative . 0)) 
(RIGHT_PAREN . (case_expression_alternative . 0)))
       ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49))
       ((default . error) (DOT .  87) (TICK .  88) (LOOP . 
(iterator_specification . 3)) (EQUAL_GREATER . (iterator_specification . 3)) 
(LEFT_PAREN .  106))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (RIGHT_PAREN . (if_expression . 0)))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
694))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
703))
       ((default . error) (PROCEDURE . (protected_operation_item_list . 1)) 
(OVERRIDING . (protected_operation_item_list . 1)) (NOT . 
(protected_operation_item_list . 1)) (FUNCTION . (protected_operation_item_list 
. 1)) (FOR . (protected_operation_item_list . 1)) (ENTRY . 
(protected_operation_item_list . 1)) (END . (protected_operation_item_list . 
1)))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (IS . 
(aspect_specification_opt . 0)) (WITH .  108))
-      ((default . error) (WHEN . (parameter_profile_opt . 0)) (LEFT_PAREN .  
1195))
-      ((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 .  [...]
+      ((default . error) (WHEN . (parameter_profile_opt . 0)) (LEFT_PAREN .  
1205))
+      ((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 .  [...]
       ((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 . (a [...]
-      ((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 .  [...]
+      ((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 .  [...]
       ((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_statem [...]
-      ((default . error) (CASE .  1192))
+      ((default . error) (CASE .  1202))
       ((default . error) (WHEN . (case_statement_alternative_list . 1)) (END . 
(case_statement_alternative_list . 1)))
-      ((default . error) (BAR .  275) (EQUAL_GREATER .  1191))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
694))
+      ((default . error) (BAR .  282) (EQUAL_GREATER .  1201))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
703))
       ((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)) (DEL [...]
-      ((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 [...]
-      ((default . error) (THEN . (expression_opt . 0)) (PLUS .  144) (MINUS .  
143) (ABS .  146) (NOT .  149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (IF .  1187))
+      ((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 [...]
+      ((default . error) (THEN . (expression_opt . 0)) (RAISE .  152) (PLUS .  
144) (MINUS .  143) (ABS .  147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  
151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  148))
+      ((default . error) (IF .  1197))
       ((default . error) (END . (elsif_statement_list . 0)) (ELSE . 
(elsif_statement_list . 0)) (ELSIF . (elsif_statement_list . 0)))
-      ((default . error) (END .  1185) (ELSE .  1184) (ELSIF .  1147))
-      ((default . error) (SEMICOLON .  1183))
+      ((default . error) (END .  1195) (ELSE .  1194) (ELSIF .  1157))
+      ((default . error) (SEMICOLON .  1193))
       ((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_statem [...]
       ((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) [...]
-      ((default . error) (RETURN .  1182))
-      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt . 0)) (NOT .  862))
-      ((default . error) (END .  1178))
-      ((default . error) (SELECT .  1177))
+      ((default . error) (RETURN .  1192))
+      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (ACCESS . (null_exclusion_opt . 0)) (NOT .  878))
+      ((default . error) (END .  1188))
+      ((default . error) (SELECT .  1187))
       ((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 .  [...]
-      ((default . error) (SELECT .  1176))
+      ((default . error) (SELECT .  1186))
       ((default . error) (END . (delay_alternative . 0)) (OR . 
(delay_alternative . 0)) (ELSE . (delay_alternative . 0)))
-      ((default . error) (SELECT .  1175))
-      ((default . error) (SEMICOLON .  1174))
-      ((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 . (lab [...]
+      ((default . error) (SELECT .  1185))
+      ((default . error) (SEMICOLON .  1184))
+      ((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 . (lab [...]
       ((default . error) (END . (select_alternative . 2)) (OR . 
(select_alternative . 2)) (ELSE . (select_alternative . 2)))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
694))
-      ((default . error) (OTHERS .  936) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49))
-      ((default . error) (WHEN . (sequence_of_statements_opt . 0)) (END . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) 
(STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (label_opt . 0)) (ABORT 
. (label_opt . 0)) (DELAY . (label_opt . 0)) ( [...]
-      ((default . error) (OTHERS .  936) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49))
-      ((default . error) (BAR .  1166) (EQUAL_GREATER .  1272))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
703))
+      ((default . error) (OTHERS .  946) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49))
+      ((default . error) (WHEN . (sequence_of_statements_opt . 0)) (END . 
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN . 
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR . 
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN . 
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) 
(STRING_LITERAL . (label_opt . 0)) (CHARACTER_LITERAL . (label_opt . 0)) (ABORT 
. (label_opt . 0)) (DELAY . (label_opt . 0)) ( [...]
+      ((default . error) (OTHERS .  946) (IDENTIFIER .  48) (CHARACTER_LITERAL 
.  50) (STRING_LITERAL .  49))
+      ((default . error) (BAR .  1176) (EQUAL_GREATER .  1282))
       ((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 .  1271))
+      ((default . error) (SEMICOLON .  1281))
       ((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 .  1270))
-      ((default . error) (SEMICOLON .  1269))
-      ((default . error) (SEMICOLON .  1268))
-      ((default . error) (SELECT .  1267))
+      ((default . error) (SEMICOLON .  1280))
+      ((default . error) (SEMICOLON .  1279))
+      ((default . error) (SEMICOLON .  1278))
+      ((default . error) (SELECT .  1277))
       ((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 .  1266))
+      ((default . error) (DO . (extended_return_object_declaration . 1)) 
(SEMICOLON . (extended_return_object_declaration . 1)) (COLON_EQUAL .  1276))
       ((default . error) (DO . (return_subtype_indication . 0)) (SEMICOLON . 
(return_subtype_indication . 0)) (COLON_EQUAL . (return_subtype_indication . 
0)))
-      ((default . error) (SEMICOLON .  1265))
+      ((default . error) (SEMICOLON .  1275))
       ((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 . (l [...]
-      ((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 [...]
-      ((default . error) (IF .  1263))
+      ((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 [...]
+      ((default . error) (IF .  1273))
       ((default . error) (ELSIF . (elsif_statement_list . 1)) (ELSE . 
(elsif_statement_list . 1)) (END . (elsif_statement_list . 1)))
-      ((default . error) (SEMICOLON .  1262))
-      ((default . error) (THEN .  1261))
-      ((default . error) (END .  1260))
-      ((default . error) (SEMICOLON .  1259))
-      ((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)) ( [...]
-      ((default . error) (SEMICOLON .  1257))
-      ((default . error) (END .  1256))
-      ((default . error) (END .  1255))
-      ((default . error) (FOR .  1254) (IDENTIFIER .  72))
-      ((default . error) (WHEN .  1253))
+      ((default . error) (SEMICOLON .  1272))
+      ((default . error) (THEN .  1271))
+      ((default . error) (END .  1270))
+      ((default . error) (SEMICOLON .  1269))
+      ((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)) ( [...]
+      ((default . error) (SEMICOLON .  1267))
+      ((default . error) (END .  1266))
+      ((default . error) (END .  1265))
+      ((default . error) (FOR .  1264) (IDENTIFIER .  72))
+      ((default . error) (WHEN .  1263))
       ((default . error) (WHEN . (entry_body_formal_part . 1)))
-      ((default . error) (SEMICOLON .  1252))
-      ((default . error) (ELSE . (elsif_expression_item . 0)) (ELSIF . 
(elsif_expression_item . 0)) (RIGHT_PAREN . (elsif_expression_item . 0)))
+      ((default . error) (SEMICOLON .  1262))
       ((default . error) (DOT .  87) (TICK .  88) (LOOP . 
(iterator_specification . 2)) (EQUAL_GREATER . (iterator_specification . 2)) 
(LEFT_PAREN .  106))
-      ((default . error) (SEMICOLON .  1251))
-      ((default . error) (SEMICOLON .  1250))
-      ((default . error) (SEMICOLON .  1249))
-      ((default . error) (SEMICOLON .  1248))
+      ((default . error) (SEMICOLON .  1261))
+      ((default . error) (SEMICOLON .  1260))
+      ((default . error) (SEMICOLON .  1259))
+      ((default . error) (SEMICOLON .  1258))
       ((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) [...]
-      ((default . error) (WITH .  1247))
+      ((default . error) (WITH .  1257))
       ((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 .  1246))
-      ((default . error) (WHEN .  1243))
+      ((default . error) (WITH .  1256))
+      ((default . error) (WHEN .  1253))
       ((default . error) (SEMICOLON . (record_definition . 0)) (WITH . 
(record_definition . 0)))
-      ((default . error) (COLON_EQUAL .  1241) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108))
+      ((default . error) (COLON_EQUAL .  1251) (SEMICOLON . 
(aspect_specification_opt . 0)) (WITH .  108))
       ((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 .  1240))
-      ((default . error) (WITH . (real_range_specification_opt . 0)) 
(SEMICOLON . (real_range_specification_opt . 0)) (RANGE .  1101))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
694))
-      ((default . error) (SEMICOLON .  1237))
+      ((default . error) (DOT_DOT .  1250))
+      ((default . error) (WITH . (real_range_specification_opt . 0)) 
(SEMICOLON . (real_range_specification_opt . 0)) (RANGE .  1114))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
703))
+      ((default . error) (SEMICOLON .  1247))
       ((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  [...]
-      ((default . error) (AND .  1061) (WITH .  1236))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
694))
-      ((default . error) (SEMICOLON .  1234))
+      ((default . error) (AND .  1065) (WITH .  1246))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
703))
+      ((default . error) (SEMICOLON .  1244))
       ((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_typ [...]
-      ((default . error) (AND .  1061) (WITH .  1233))
-      ((default . error) (RANGE .  1232))
+      ((default . error) (AND .  1065) (WITH .  1243))
+      ((default . error) (RANGE .  1242))
       ((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 .  [...]
       ((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 .  87) (TICK .  88) (BAR . (discrete_choice . 
1)) (EQUAL_GREATER . (discrete_choice . 1)) (RANGE .  833) (LEFT_PAREN .  803))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  292) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 289) (IDENTIFIER .  288) (TYPE .  294) (GENERIC .  2) (PROTECTED .  291) (TASK 
.  293) (PACKAGE .  290))
+      ((default . error) (RIGHT_PAREN . (subtype_indication . 1)) (COMMA . 
(subtype_indication . 1)) (DOT .  87) (TICK .  88) (BAR . (discrete_choice . 
1)) (EQUAL_GREATER . (discrete_choice . 1)) (RANGE .  849) (LEFT_PAREN .  819))
+      ((default . error) (ELSE . (elsif_expression_item . 0)) (ELSIF . 
(elsif_expression_item . 0)) (RIGHT_PAREN . (elsif_expression_item . 0)))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  299) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 296) (IDENTIFIER .  295) (TYPE .  301) (GENERIC .  2) (PROTECTED .  298) (TASK 
.  300) (PACKAGE .  297))
       ((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)) (OVERRID [...]
       ((default . error) (SEMICOLON . (protected_definition . 0)))
-      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  292) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 289) (IDENTIFIER .  288) (TYPE .  294) (GENERIC .  2) (PROTECTED .  291) (TASK 
.  293) (PACKAGE .  290))
+      ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE . 
(declarative_part_opt . 0)) (USE .  11) (SUBTYPE .  299) (PRAGMA .  7) (NOT .  
4) (OVERRIDING .  5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE . 
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR . 
 296) (IDENTIFIER .  295) (TYPE .  301) (GENERIC .  2) (PROTECTED .  298) (TASK 
.  300) (PACKAGE .  297))
       ((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 . (singl [...]
       ((default . error) (SEMICOLON . (task_definition . 0)))
       ((default . error) (WITH . (type_definition . 5)) (SEMICOLON . 
(type_definition . 5)))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (SEMICOLON .  1289))
-      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (OTHERS .  172) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) 
(ABS .  146) (NOT .  171) (NULL .  150) (NEW .  148) (LEFT_PAREN .  147))
-      ((default . error) (END .  1286) (WHEN .  1243))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (SEMICOLON .  1299))
+      ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR . 
(discrete_choice_list . 0)) (OTHERS .  175) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) 
(ABS .  147) (NOT .  174) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(LEFT_PAREN .  148))
+      ((default . error) (END .  1296) (WHEN .  1253))
       ((default . error) (END . (variant_list . 0)) (WHEN . (variant_list . 
0)))
-      ((default . error) (PRIVATE .  1285))
-      ((default . error) (RECORD .  848) (NULL .  846))
+      ((default . error) (PRIVATE .  1295))
+      ((default . error) (RECORD .  864) (NULL .  862))
       ((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  [...]
       ((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  [...]
       ((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  [...]
       ((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)) (PROTEC [...]
       ((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 .  [...]
-      ((default . error) (IS . (expression_opt . 0)) (PLUS .  144) (MINUS .  
143) (ABS .  146) (NOT .  149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (IDENTIFIER .  1282))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
694))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
694))
+      ((default . error) (IS . (expression_opt . 0)) (RAISE .  152) (PLUS .  
144) (MINUS .  143) (ABS .  147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  
151) (NEW .  149) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL 
.  49) (LEFT_PAREN .  148))
+      ((default . error) (IDENTIFIER .  1292))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
703))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
703))
       ((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)) (DEL [...]
       ((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_statem [...]
-      ((default . error) (IF .  1279))
-      ((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 . ( [...]
+      ((default . error) (IF .  1289))
+      ((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 . ( [...]
       ((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)) (EX [...]
-      ((default . error) (SEMICOLON .  1277))
-      ((default . error) (END .  1276))
+      ((default . error) (SEMICOLON .  1287))
+      ((default . error) (END .  1286))
       ((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_ [...]
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
-      ((default . error) (SEMICOLON .  1274))
+      ((default . error) (RAISE .  152) (PLUS .  144) (MINUS .  143) (ABS .  
147) (NOT .  150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) 
(IDENTIFIER .  48) (CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN 
.  148))
+      ((default . error) (SEMICOLON .  1284))
       ((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 .  [...]
       ((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 . ( [...]
       ((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 .  [...]
       ((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)) (DEL [...]
-      ((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)) ( [...]
+      ((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)) ( [...]
       ((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)) (I [...]
       ((default . error) (DO . (extended_return_object_declaration . 0)) 
(SEMICOLON . (extended_return_object_declaration . 0)))
-      ((default . error) (IF .  1307))
+      ((default . error) (IF .  1317))
       ((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_ [...]
       ((default . error) (ELSE . (elsif_statement_item . 0)) (ELSIF . 
(elsif_statement_item . 0)) (END . (elsif_statement_item . 0)))
-      ((default . error) (SEMICOLON .  1306))
-      ((default . error) (SEMICOLON .  1305))
-      ((default . error) (SEMICOLON .  1304))
-      ((default . error) (IN .  1303))
-      ((default . error) (IS .  1302))
+      ((default . error) (SEMICOLON .  1316))
+      ((default . error) (SEMICOLON .  1315))
+      ((default . error) (SEMICOLON .  1314))
+      ((default . error) (IN .  1313))
+      ((default . error) (IS .  1312))
       ((default . error) (WITH . (derived_type_definition . 0)) (SEMICOLON . 
(derived_type_definition . 0)))
       ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .  
108))
-      ((default . error) (CASE .  1300))
+      ((default . error) (CASE .  1310))
       ((default . error) (WHEN . (variant_list . 1)) (END . (variant_list . 
1)))
-      ((default . error) (BAR .  275) (EQUAL_GREATER .  1299))
+      ((default . error) (BAR .  282) (EQUAL_GREATER .  1309))
       ((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 .  
108))
       ((default . error) (SEMICOLON . (real_range_specification_opt . 1)) 
(WITH . (real_range_specification_opt . 1)))
-      ((default . error) (SEMICOLON .  1297))
-      ((default . error) (SEMICOLON .  1296))
-      ((default . error) (DOT_DOT .  1295))
-      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  
149) (NULL .  150) (NEW .  148) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (LEFT_PAREN .  147))
+      ((default . error) (SEMICOLON .  1307))
+      ((default . error) (SEMICOLON .  1306))
+      ((default . error) (DOT_DOT .  1305))
+      ((default . error) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  
150) (NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (IDENTIFIER .  48) 
(CHARACTER_LITERAL .  50) (STRING_LITERAL .  49) (LEFT_PAREN .  148))
       ((default . error) (PRIVATE . (protected_type_declaration . 0)) (END . 
(protected_type_declaration . 0)) (BEGIN . (protected_type_declaration . 0)) 
(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 [...]
       ((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 [...]
-      ((default . error) (SEMICOLON .  1314))
-      ((default . error) (END . (component_list_opt . 0)) (WHEN . 
(component_list_opt . 0)) (NULL .  1009) (CASE .  1008) (IDENTIFIER .  72) (FOR 
.  289))
-      ((default . error) (SEMICOLON .  1312))
-      ((default . error) (SEMICOLON .  1311))
-      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  292) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  289) (IDENTIFIER .  288) (TYPE 
.  294) (GENERIC .  2) (PROTECTED .  291) (TASK .  293) (PACKAGE .  290))
-      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) (ABS .  146) (NOT .  757) 
(NULL .  150) (NEW .  148) (LEFT_PAREN .  147))
+      ((default . error) (SEMICOLON .  1324))
+      ((default . error) (END . (component_list_opt . 0)) (WHEN . 
(component_list_opt . 0)) (NULL .  1013) (CASE .  1012) (IDENTIFIER .  72) (FOR 
.  296))
+      ((default . error) (SEMICOLON .  1322))
+      ((default . error) (SEMICOLON .  1321))
+      ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE .  11) 
(SUBTYPE .  299) (PRAGMA .  7) (NOT .  4) (OVERRIDING .  5) (FUNCTION . 
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2)) 
(ENTRY . (overriding_indicator_opt . 2)) (FOR .  296) (IDENTIFIER .  295) (TYPE 
.  301) (GENERIC .  2) (PROTECTED .  298) (TASK .  300) (PACKAGE .  297))
+      ((default . error) (IDENTIFIER .  48) (CHARACTER_LITERAL .  50) 
(STRING_LITERAL .  49) (PLUS .  144) (MINUS .  143) (ABS .  147) (NOT .  763) 
(NUMERIC_LITERAL .  145) (NULL .  151) (NEW .  149) (LEFT_PAREN .  148))
       ((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)) (US [...]
       ((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 . (a [...]
       ((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)) (EX [...]
-      ((default . error) (SEMICOLON .  1308))
+      ((default . error) (SEMICOLON .  1318))
       ((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_ [...]
-      ((default . error) (RIGHT_PAREN .  1318))
-      ((default . error) (BEGIN .  1317))
+      ((default . error) (RIGHT_PAREN .  1328))
+      ((default . error) (BEGIN .  1327))
       ((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 
[...]
       ((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)))
       ((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 .  1316))
+      ((default . error) (SEMICOLON .  1326))
       ((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 .  [...]
-      ((default . error) (WHEN . (parameter_profile_opt . 0)) (LEFT_PAREN .  
781))
+      ((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 .  [...]
+      ((default . error) (WHEN . (parameter_profile_opt . 0)) (LEFT_PAREN .  
787))
       ((default . error) (WHEN . (entry_body_formal_part . 0)))
-      ((default . error) (END .  1321))
-      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
694))
-      ((default . error) (SEMICOLON .  1323))
+      ((default . error) (END .  1331))
+      ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .  
703))
+      ((default . error) (SEMICOLON .  1333))
       ((default . error) (PROCEDURE . (entry_body . 0)) (OVERRIDING . 
(entry_body . 0)) (NOT . (entry_body . 0)) (FUNCTION . (entry_body . 0)) (FOR . 
(entry_body . 0)) (ENTRY . (entry_body . 0)) (END . (entry_body . 0)))]
      [((compilation_unit . 13)(compilation_unit_list . 14)(context_item . 
15)(function_specification . 16)(generic_declaration . 17)(generic_formal_part 
. 18)(generic_instantiation . 19)(generic_package_declaration . 
20)(generic_renaming_declaration . 21)(generic_subprogram_declaration . 
22)(library_item . 23)(library_unit_declaration . 
24)(library_unit_renaming_declaration . 25)(overriding_indicator_opt . 
26)(package_body . 27)(package_declaration . 28)(package_renaming_declaration . 
29 [...]
       ((attribute_reference . 51)(name . 86)(qualified_expression . 
54)(selected_component . 55))
@@ -3149,31 +3217,31 @@
       nil
       ((actual_parameter_part . 91)(formal_part . 
92)(parameter_and_result_profile . 93))
       nil
-      ((aggregate . 222)(attribute_reference . 51)(attribute_designator . 
223)(name . 224)(qualified_expression . 54)(selected_component . 55))
-      ((aggregate . 151)(association_opt . 173)(association_list . 
190)(attribute_reference . 51)(choice_expression . 
175)(choice_relation_and_list . 176)(choice_relation_or_list . 
177)(choice_relation_xor_list . 178)(choice_relation_and_then_list . 
179)(choice_relation_or_else_list . 180)(choice_relation . 181)(discrete_choice 
. 182)(discrete_choice_list . 183)(expression . 184)(expression_opt . 
185)(factor . 153)(identifier_list . 214)(name . 186)(parameter_specification . 
215)(paramet [...]
-      ((access_definition . 209)(attribute_reference . 51)(name . 
210)(name_opt . 211)(null_exclusion_opt . 212)(qualified_expression . 
54)(selected_component . 55))
+      ((aggregate . 225)(attribute_reference . 51)(attribute_designator . 
226)(name . 227)(qualified_expression . 54)(selected_component . 55))
+      ((aggregate . 153)(association_opt . 176)(association_list . 
193)(attribute_reference . 51)(choice_expression . 
178)(choice_relation_and_list . 179)(choice_relation_or_list . 
180)(choice_relation_xor_list . 181)(choice_relation_and_then_list . 
182)(choice_relation_or_else_list . 183)(choice_relation . 184)(discrete_choice 
. 185)(discrete_choice_list . 186)(expression . 187)(expression_opt . 
188)(factor . 155)(identifier_list . 217)(name . 189)(parameter_specification . 
218)(paramet [...]
+      ((access_definition . 212)(attribute_reference . 51)(name . 
213)(name_opt . 214)(null_exclusion_opt . 215)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
       nil
-      ((mode_opt . 206))
+      ((mode_opt . 209))
       nil
       nil
-      ((attribute_reference . 51)(name . 202)(qualified_expression . 
54)(selected_component . 55))
-      ((aspect_specification_opt . 201))
-      ((discriminant_part_opt . 199))
+      ((attribute_reference . 51)(name . 205)(qualified_expression . 
54)(selected_component . 55))
+      ((aspect_specification_opt . 204))
+      ((discriminant_part_opt . 202))
       ((actual_parameter_part . 91))
       ((actual_parameter_part . 91))
       ((actual_parameter_part . 91))
       nil
-      ((attribute_reference . 51)(name_list . 193)(name . 
53)(qualified_expression . 54)(selected_component . 55))
+      ((attribute_reference . 51)(name_list . 196)(name . 
53)(qualified_expression . 54)(selected_component . 55))
       nil
-      ((aggregate . 151)(association_opt . 173)(association_list . 
190)(attribute_reference . 51)(choice_expression . 
175)(choice_relation_and_list . 176)(choice_relation_or_list . 
177)(choice_relation_xor_list . 178)(choice_relation_and_then_list . 
179)(choice_relation_or_else_list . 180)(choice_relation . 181)(discrete_choice 
. 182)(discrete_choice_list . 183)(expression . 184)(expression_opt . 
185)(factor . 153)(name . 186)(primary . 157)(qualified_expression . 54)(range 
. 191)(relati [...]
-      ((attribute_reference . 51)(name . 189)(qualified_expression . 
54)(selected_component . 55))
-      ((aggregate . 151)(association_opt . 173)(association_list . 
174)(attribute_reference . 51)(choice_expression . 
175)(choice_relation_and_list . 176)(choice_relation_or_list . 
177)(choice_relation_xor_list . 178)(choice_relation_and_then_list . 
179)(choice_relation_or_else_list . 180)(choice_relation . 181)(discrete_choice 
. 182)(discrete_choice_list . 183)(expression . 184)(expression_opt . 
185)(factor . 153)(name . 186)(primary . 157)(qualified_expression . 54)(range 
. 187)(relati [...]
+      ((aggregate . 153)(association_opt . 176)(association_list . 
193)(attribute_reference . 51)(choice_expression . 
178)(choice_relation_and_list . 179)(choice_relation_or_list . 
180)(choice_relation_xor_list . 181)(choice_relation_and_then_list . 
182)(choice_relation_or_else_list . 183)(choice_relation . 184)(discrete_choice 
. 185)(discrete_choice_list . 186)(expression . 187)(expression_opt . 
188)(factor . 155)(name . 189)(primary . 159)(qualified_expression . 
54)(raise_expression .  [...]
+      ((attribute_reference . 51)(name . 192)(qualified_expression . 
54)(selected_component . 55))
+      ((aggregate . 153)(association_opt . 176)(association_list . 
177)(attribute_reference . 51)(choice_expression . 
178)(choice_relation_and_list . 179)(choice_relation_or_list . 
180)(choice_relation_xor_list . 181)(choice_relation_and_then_list . 
182)(choice_relation_or_else_list . 183)(choice_relation . 184)(discrete_choice 
. 185)(discrete_choice_list . 186)(expression . 187)(expression_opt . 
188)(factor . 155)(name . 189)(primary . 159)(qualified_expression . 
54)(raise_expression .  [...]
       nil
-      ((actual_parameter_part . 91)(aspect_specification_opt . 168))
+      ((actual_parameter_part . 91)(aspect_specification_opt . 171))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 152)(factor . 
153)(name . 154)(pragma_argument_association . 
155)(pragma_argument_association_list . 156)(primary . 
157)(qualified_expression . 54)(relation_and_list . 158)(relation_and_then_list 
. 159)(relation_or_list . 160)(relation_or_else_list . 161)(relation_xor_list . 
162)(relation . 163)(selected_component . 55)(simple_expression . 164)(term . 
165)(term_list . 166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 154)(factor . 
155)(name . 156)(pragma_argument_association . 
157)(pragma_argument_association_list . 158)(primary . 
159)(qualified_expression . 54)(raise_expression . 160)(relation_and_list . 
161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       ((aspect_specification_opt . 142))
       nil
       ((actual_parameter_part . 91)(aspect_specification_opt . 109))
@@ -3195,23 +3263,25 @@
       nil
       nil
       nil
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 382)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(gen [...]
-      ((actual_parameter_part . 91)(aspect_specification_opt . 381))
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 388)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(gen [...]
+      ((actual_parameter_part . 91)(aspect_specification_opt . 387))
       nil
       nil
       nil
       ((actual_parameter_part . 91))
-      ((function_specification . 16)(overriding_indicator_opt . 
378)(package_body . 317)(procedure_specification . 32)(proper_body . 
379)(protected_body . 325)(subprogram_body . 332)(task_body . 337))
+      ((function_specification . 16)(overriding_indicator_opt . 
384)(package_body . 324)(procedure_specification . 32)(proper_body . 
385)(protected_body . 332)(subprogram_body . 339)(task_body . 344))
+      nil
       nil
       nil
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(name . 154)(primary . 
372)(qualified_expression . 54)(selected_component . 55))
-      ((aggregate . 151)(association_opt . 173)(association_list . 
230)(attribute_reference . 51)(case_expression . 369)(choice_expression . 
175)(choice_relation_and_list . 176)(choice_relation_or_list . 
177)(choice_relation_xor_list . 178)(choice_relation_and_then_list . 
179)(choice_relation_or_else_list . 180)(choice_relation . 181)(discrete_choice 
. 182)(discrete_choice_list . 183)(expression . 231)(expression_opt . 
185)(factor . 153)(if_expression . 370)(name . 186)(primary . 157)(qu [...]
-      ((attribute_reference . 51)(name . 365)(qualified_expression . 
54)(selected_component . 55))
-      ((aggregate . 151)(attribute_reference . 51)(name . 154)(primary . 
286)(qualified_expression . 54)(selected_component . 55))
+      ((aggregate . 153)(attribute_reference . 51)(name . 156)(primary . 
378)(qualified_expression . 54)(selected_component . 55))
+      ((aggregate . 153)(association_opt . 176)(association_list . 
235)(attribute_reference . 51)(case_expression . 375)(choice_expression . 
178)(choice_relation_and_list . 179)(choice_relation_or_list . 
180)(choice_relation_xor_list . 181)(choice_relation_and_then_list . 
182)(choice_relation_or_else_list . 183)(choice_relation . 184)(discrete_choice 
. 185)(discrete_choice_list . 186)(expression . 237)(expression_opt . 
188)(factor . 155)(if_expression . 376)(name . 189)(primary . 159)(qu [...]
+      ((attribute_reference . 51)(name . 373)(qualified_expression . 
54)(selected_component . 55))
+      ((aggregate . 153)(attribute_reference . 51)(name . 156)(primary . 
293)(qualified_expression . 54)(selected_component . 55))
       nil
+      ((attribute_reference . 51)(name . 372)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
       nil
@@ -3225,14 +3295,15 @@
       nil
       nil
       nil
-      ((relational_operator . 353))
-      ((multiplying_operator . 352))
-      ((binary_adding_operator . 347))
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(selected_component . 55)(term . 
165)(term_list . 343))
       nil
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 302)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(gen [...]
+      ((relational_operator . 360))
+      ((multiplying_operator . 359))
+      ((binary_adding_operator . 354))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(selected_component . 55)(term . 
168)(term_list . 350))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(name . 154)(primary . 
286)(qualified_expression . 54)(selected_component . 55))
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 309)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(gen [...]
+      nil
+      ((aggregate . 153)(attribute_reference . 51)(name . 156)(primary . 
293)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
       nil
@@ -3249,26 +3320,26 @@
       nil
       ((actual_parameter_part . 91))
       nil
-      ((relational_operator . 273))
-      ((actual_parameter_part . 91)(aspect_specification_opt . 263))
+      ((relational_operator . 280))
+      ((actual_parameter_part . 91)(aspect_specification_opt . 270))
       nil
       nil
-      ((attribute_reference . 51)(name . 259)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 266)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
-      ((attribute_reference . 51)(name . 257)(qualified_expression . 
54)(selected_component . 55))
-      ((attribute_reference . 51)(name . 256)(qualified_expression . 
54)(selected_component . 55))
-      ((attribute_reference . 51)(name . 255)(qualified_expression . 
54)(selected_component . 55))
-      ((discriminant_specification_opt . 252)(discriminant_specification_list 
. 253)(identifier_list . 254))
-      ((aspect_specification_opt . 250))
-      ((attribute_reference . 51)(name . 247)(qualified_expression . 
54)(selected_component . 55)(subprogram_default . 248))
+      ((attribute_reference . 51)(name . 264)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 263)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 262)(qualified_expression . 
54)(selected_component . 55))
+      ((discriminant_specification_opt . 259)(discriminant_specification_list 
. 260)(identifier_list . 261))
+      ((aspect_specification_opt . 257))
+      ((attribute_reference . 51)(name . 254)(qualified_expression . 
54)(selected_component . 55)(subprogram_default . 255))
       nil
       ((actual_parameter_part . 91))
       nil
       nil
       nil
-      ((access_definition . 239)(null_exclusion_opt . 240))
-      ((access_definition . 237)(null_exclusion_opt . 238))
+      ((access_definition . 246)(null_exclusion_opt . 247))
+      ((access_definition . 244)(null_exclusion_opt . 245))
       nil
       nil
       ((actual_parameter_part . 91))
@@ -3281,7 +3352,7 @@
       nil
       nil
       nil
-      ((aggregate . 151)(association_opt . 173)(association_list . 
230)(attribute_reference . 51)(choice_expression . 
175)(choice_relation_and_list . 176)(choice_relation_or_list . 
177)(choice_relation_xor_list . 178)(choice_relation_and_then_list . 
179)(choice_relation_or_else_list . 180)(choice_relation . 181)(discrete_choice 
. 182)(discrete_choice_list . 183)(expression . 231)(expression_opt . 
185)(factor . 153)(name . 186)(primary . 157)(qualified_expression . 54)(range 
. 187)(relati [...]
+      ((aggregate . 153)(association_opt . 176)(association_list . 
235)(attribute_reference . 51)(case_expression . 236)(choice_expression . 
178)(choice_relation_and_list . 179)(choice_relation_or_list . 
180)(choice_relation_xor_list . 181)(choice_relation_and_then_list . 
182)(choice_relation_or_else_list . 183)(choice_relation . 184)(discrete_choice 
. 185)(discrete_choice_list . 186)(expression . 237)(expression_opt . 
188)(factor . 155)(if_expression . 238)(name . 189)(primary . 159)(qu [...]
       nil
       nil
       nil
@@ -3290,67 +3361,71 @@
       nil
       nil
       nil
+      ((aggregate . 153)(attribute_reference . 51)(expression . 526)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 525)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      nil
+      nil
       nil
       nil
       nil
-      ((identifier_list . 214)(parameter_specification . 514))
+      ((identifier_list . 217)(parameter_specification . 519))
       nil
-      ((aliased_opt . 513))
-      ((general_access_modifier_opt . 510)(protected_opt . 511))
+      ((aliased_opt . 518))
+      ((general_access_modifier_opt . 515)(protected_opt . 516))
       nil
       nil
-      ((attribute_reference . 51)(name . 210)(name_opt . 
506)(qualified_expression . 54)(selected_component . 55))
-      ((aspect_specification_opt . 505))
-      ((attribute_reference . 51)(name . 503)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 213)(name_opt . 
511)(qualified_expression . 54)(selected_component . 55))
+      ((aspect_specification_opt . 510))
+      ((attribute_reference . 51)(name . 508)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
       nil
       nil
-      ((aspect_specification_opt . 500)(attribute_reference . 51)(name . 
247)(qualified_expression . 54)(selected_component . 55)(subprogram_default . 
501))
+      ((aspect_specification_opt . 505)(attribute_reference . 51)(name . 
254)(qualified_expression . 54)(selected_component . 55)(subprogram_default . 
506))
       nil
       ((actual_parameter_part . 91))
-      ((aspect_specification_opt . 499))
-      ((abstract_limited_synchronized_opt . 492)(abstract_tagged_limited_opt . 
493)(access_definition . 494)(array_type_definition . 
495)(formal_type_definition . 496)(formal_derived_type_definition . 
497)(interface_type_definition . 498)(null_exclusion_opt . 212))
+      ((aspect_specification_opt . 504))
+      ((abstract_limited_synchronized_opt . 497)(abstract_tagged_limited_opt . 
498)(access_definition . 499)(array_type_definition . 
500)(formal_type_definition . 501)(formal_derived_type_definition . 
502)(interface_type_definition . 503)(null_exclusion_opt . 215))
       nil
       nil
       nil
       nil
       nil
-      ((actual_parameter_part . 91)(aspect_specification_opt . 473))
-      ((actual_parameter_part . 91)(aspect_specification_opt . 472))
-      ((actual_parameter_part . 91)(aspect_specification_opt . 471))
+      ((actual_parameter_part . 91)(aspect_specification_opt . 478))
+      ((actual_parameter_part . 91)(aspect_specification_opt . 477))
+      ((actual_parameter_part . 91)(aspect_specification_opt . 476))
       nil
-      ((actual_parameter_part . 91)(aspect_specification_opt . 470))
+      ((actual_parameter_part . 91)(aspect_specification_opt . 475))
       nil
-      ((aggregate . 151)(association_opt . 469)(attribute_reference . 
51)(choice_expression . 175)(choice_relation_and_list . 
176)(choice_relation_or_list . 177)(choice_relation_xor_list . 
178)(choice_relation_and_then_list . 179)(choice_relation_or_else_list . 
180)(choice_relation . 181)(discrete_choice . 182)(discrete_choice_list . 
183)(expression . 184)(expression_opt . 185)(factor . 153)(name . 186)(primary 
. 157)(qualified_expression . 54)(range . 187)(relation_and_list . 158)(relat 
[...]
+      ((aggregate . 153)(association_opt . 474)(attribute_reference . 
51)(choice_expression . 178)(choice_relation_and_list . 
179)(choice_relation_or_list . 180)(choice_relation_xor_list . 
181)(choice_relation_and_then_list . 182)(choice_relation_or_else_list . 
183)(choice_relation . 184)(discrete_choice . 185)(discrete_choice_list . 
186)(expression . 187)(expression_opt . 188)(factor . 155)(name . 189)(primary 
. 159)(qualified_expression . 54)(raise_expression . 160)(range . 190)(relati 
[...]
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 467)(term . 165)(term_list . 166)(unary_adding_operator 
. 167))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 472)(term . 168)(term_list . 169)(unary_adding_operator 
. 170))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 
153)(membership_choice_list . 463)(membership_choice . 464)(name . 186)(primary 
. 157)(qualified_expression . 54)(range . 465)(selected_component . 
55)(simple_expression . 466)(term . 165)(term_list . 166)(unary_adding_operator 
. 167))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 
155)(membership_choice_list . 468)(membership_choice . 469)(name . 189)(primary 
. 159)(qualified_expression . 54)(range . 470)(selected_component . 
55)(simple_expression . 471)(term . 168)(term_list . 169)(unary_adding_operator 
. 170))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 461)(term . 165)(term_list . 166)(unary_adding_operator 
. 167))
-      ((aggregate . 222)(attribute_reference . 51)(attribute_designator . 
223)(name . 224)(qualified_expression . 54)(selected_component . 55))
-      ((aggregate . 151)(attribute_reference . 51)(choice_expression . 
175)(choice_relation_and_list . 176)(choice_relation_or_list . 
177)(choice_relation_xor_list . 178)(choice_relation_and_then_list . 
179)(choice_relation_or_else_list . 180)(choice_relation . 181)(discrete_choice 
. 458)(factor . 153)(name . 186)(primary . 157)(qualified_expression . 
54)(range . 187)(selected_component . 55)(simple_expression . 459)(term . 
165)(term_list . 166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 457)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(choice_relation . 
455)(factor . 153)(name . 154)(primary . 157)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 446)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(choice_relation . 
453)(factor . 153)(name . 154)(primary . 157)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 446)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(choice_relation . 
451)(factor . 153)(name . 154)(primary . 157)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 446)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 466)(term . 168)(term_list . 169)(unary_adding_operator 
. 170))
+      ((aggregate . 225)(attribute_reference . 51)(attribute_designator . 
226)(name . 227)(qualified_expression . 54)(selected_component . 55))
+      ((aggregate . 153)(attribute_reference . 51)(choice_expression . 
178)(choice_relation_and_list . 179)(choice_relation_or_list . 
180)(choice_relation_xor_list . 181)(choice_relation_and_then_list . 
182)(choice_relation_or_else_list . 183)(choice_relation . 184)(discrete_choice 
. 463)(factor . 155)(name . 189)(primary . 159)(qualified_expression . 
54)(range . 190)(selected_component . 55)(simple_expression . 464)(term . 
168)(term_list . 169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 462)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(choice_relation . 
460)(factor . 155)(name . 156)(primary . 159)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 451)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(choice_relation . 
458)(factor . 155)(name . 156)(primary . 159)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 451)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(choice_relation . 
456)(factor . 155)(name . 156)(primary . 159)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 451)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(choice_relation . 
448)(factor . 153)(name . 154)(primary . 157)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 446)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(choice_relation . 
447)(factor . 153)(name . 154)(primary . 157)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 446)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(choice_relation . 
445)(factor . 153)(name . 154)(primary . 157)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 446)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((attribute_reference . 51)(name . 444)(qualified_expression . 
54)(selected_component . 55))
+      ((aggregate . 153)(attribute_reference . 51)(choice_relation . 
453)(factor . 155)(name . 156)(primary . 159)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 451)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(choice_relation . 
452)(factor . 155)(name . 156)(primary . 159)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 451)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(choice_relation . 
450)(factor . 155)(name . 156)(primary . 159)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 451)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((attribute_reference . 51)(name . 449)(qualified_expression . 
54)(selected_component . 55))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 443)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 448)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
-      ((attribute_reference . 438)(direct_name . 439)(name . 
440)(qualified_expression . 54)(selected_component . 55))
+      ((attribute_reference . 443)(direct_name . 444)(name . 
445)(qualified_expression . 54)(selected_component . 55))
       ((attribute_reference . 51)(name . 68)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
@@ -3362,7 +3437,7 @@
       nil
       nil
       nil
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 426)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(generic_renaming_declaration . 
310)(generic_subprog [...]
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 431)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(generic_renaming_declaration . 
317)(generic_subprog [...]
       nil
       nil
       nil
@@ -3377,7 +3452,7 @@
       nil
       nil
       nil
-      ((function_specification . 420)(procedure_specification . 
421)(subprogram_specification . 422))
+      ((function_specification . 425)(procedure_specification . 
426)(subprogram_specification . 427))
       nil
       nil
       nil
@@ -3403,56 +3478,53 @@
       nil
       nil
       nil
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 418)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(gen [...]
-      ((binary_adding_operator . 347))
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 423)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(gen [...]
+      ((binary_adding_operator . 354))
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(selected_component . 55)(term . 
417))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(selected_component . 55)(term . 
422))
       nil
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 416)(name . 
154)(primary . 157)(qualified_expression . 54)(selected_component . 55))
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 415)(term . 165)(term_list . 166)(unary_adding_operator 
. 167))
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(relation . 
414)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(relation . 
412)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(relation . 
410)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(relation . 
409)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 421)(name . 
156)(primary . 159)(qualified_expression . 54)(selected_component . 55))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 420)(term . 168)(term_list . 169)(unary_adding_operator 
. 170))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(raise_expression . 160)(relation 
. 419)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list 
. 169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(raise_expression . 160)(relation 
. 417)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list 
. 169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(raise_expression . 160)(relation 
. 415)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list 
. 169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(raise_expression . 160)(relation 
. 414)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list 
. 169)(unary_adding_operator . 170))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(relation . 
407)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(raise_expression . 160)(relation 
. 412)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list 
. 169)(unary_adding_operator . 170))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(relation . 
405)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(name . 154)(primary . 
404)(qualified_expression . 54)(selected_component . 55))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 152)(factor . 
153)(name . 154)(pragma_argument_association . 403)(primary . 
157)(qualified_expression . 54)(relation_and_list . 158)(relation_and_then_list 
. 159)(relation_or_list . 160)(relation_or_else_list . 161)(relation_xor_list . 
162)(relation . 163)(selected_component . 55)(simple_expression . 164)(term . 
165)(term_list . 166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(raise_expression . 160)(relation 
. 410)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list 
. 169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(name . 156)(primary . 
409)(qualified_expression . 54)(selected_component . 55))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 154)(factor . 
155)(name . 156)(pragma_argument_association . 408)(primary . 
159)(qualified_expression . 54)(raise_expression . 160)(relation_and_list . 
161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       ((actual_parameter_part . 91))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 401)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((quantifier . 400))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 397)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      nil
-      nil
+      ((actual_parameter_part . 91))
+      ((quantifier . 405))
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 393)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
       nil
       nil
+      ((aggregate . 153)(attribute_reference . 51)(expression . 399)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       nil
-      ((function_specification . 16)(procedure_specification . 
32)(subprogram_specification . 389))
       nil
       nil
+      ((function_specification . 16)(procedure_specification . 
32)(subprogram_specification . 395))
       nil
       nil
-      ((attribute_reference . 51)(name . 386)(qualified_expression . 
54)(selected_component . 55))
-      ((attribute_reference . 51)(name . 385)(qualified_expression . 
54)(selected_component . 55))
-      ((actual_parameter_part . 91)(aspect_specification_opt . 656))
-      ((actual_parameter_part . 91)(aspect_specification_opt . 655))
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 
637)(handled_sequence_of_statements . 638)(if_statement . 639)(iteration_scheme 
. 640)(label_opt . 641)(loop_statement . 642)(name . 643)(pragma . 
644)(procedure_call_statement . 645)(qualified_expression . 54)(raise_statement 
. 64 [...]
       nil
-      ((aspect_specification_opt . 609))
       nil
+      ((attribute_reference . 51)(name . 392)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 391)(qualified_expression . 
54)(selected_component . 55))
+      ((actual_parameter_part . 91)(aspect_specification_opt . 665))
+      ((actual_parameter_part . 91)(aspect_specification_opt . 664))
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 
646)(handled_sequence_of_statements . 647)(if_statement . 648)(iteration_scheme 
. 649)(label_opt . 650)(loop_statement . 651)(name . 652)(pragma . 
653)(procedure_call_statement . 654)(qualified_expression . 54)(raise_statement 
. 65 [...]
       nil
+      ((aspect_specification_opt . 618))
       nil
       nil
       nil
@@ -3461,69 +3533,72 @@
       nil
       nil
       nil
-      ((iterator_specification . 604))
       nil
+      ((iterator_specification . 614))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 612)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(relation . 
601)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(raise_expression . 160)(relation 
. 611)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list 
. 169)(unary_adding_operator . 170))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(relation . 
600)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(raise_expression . 160)(relation 
. 610)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list 
. 169)(unary_adding_operator . 170))
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(relation . 
599)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(raise_expression . 160)(relation 
. 609)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list 
. 169)(unary_adding_operator . 170))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(relation . 
598)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(raise_expression . 160)(relation 
. 608)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list 
. 169)(unary_adding_operator . 170))
       nil
       nil
       nil
-      ((multiplying_operator . 352))
+      ((multiplying_operator . 359))
       nil
       nil
       nil
       nil
       ((aspect_specification_opt . 128))
-      ((aliased_opt . 591))
-      ((attribute_reference . 51)(name . 588)(qualified_expression . 
54)(selected_component . 55))
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 587)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(gen [...]
+      ((aliased_opt . 601))
+      ((attribute_reference . 51)(name . 598)(qualified_expression . 
54)(selected_component . 55))
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 597)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(gen [...]
       nil
-      ((discriminant_part_opt . 586))
-      ((aspect_specification_opt . 584))
+      ((discriminant_part_opt . 596))
+      ((aspect_specification_opt . 595))
       nil
       nil
       nil
-      ((aspect_specification_opt . 580))
+      ((aspect_specification_opt . 591))
       nil
       nil
-      ((attribute_reference . 51)(name . 577)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 588)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
       nil
       nil
       ((actual_parameter_part . 91))
-      ((access_definition . 572)(null_exclusion_opt . 573))
+      ((access_definition . 583)(null_exclusion_opt . 584))
       nil
       nil
       ((actual_parameter_part . 91))
       nil
-      ((relational_operator . 566))
+      ((relational_operator . 577))
+      nil
+      nil
+      ((aggregate . 153)(attribute_reference . 51)(choice_relation . 
581)(factor . 155)(name . 156)(primary . 159)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 451)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(choice_relation . 
580)(factor . 155)(name . 156)(primary . 159)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 451)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
+      ((aggregate . 153)(attribute_reference . 51)(choice_relation . 
579)(factor . 155)(name . 156)(primary . 159)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 451)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(choice_relation . 
570)(factor . 153)(name . 154)(primary . 157)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 446)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(choice_relation . 
569)(factor . 153)(name . 154)(primary . 157)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 446)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(choice_relation . 
578)(factor . 155)(name . 156)(primary . 159)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 451)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(choice_relation . 
568)(factor . 153)(name . 154)(primary . 157)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 446)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(choice_relation . 
567)(factor . 153)(name . 154)(primary . 157)(qualified_expression . 
54)(selected_component . 55)(simple_expression . 446)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
       nil
       nil
+      ((relational_operator . 577))
       nil
       nil
-      ((relational_operator . 566))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 
155)(membership_choice_list . 575)(membership_choice . 469)(name . 189)(primary 
. 159)(qualified_expression . 54)(range . 470)(selected_component . 
55)(simple_expression . 471)(term . 168)(term_list . 169)(unary_adding_operator 
. 170))
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 
153)(membership_choice_list . 564)(membership_choice . 464)(name . 186)(primary 
. 157)(qualified_expression . 54)(range . 465)(selected_component . 
55)(simple_expression . 466)(term . 165)(term_list . 166)(unary_adding_operator 
. 167))
       nil
       nil
       nil
@@ -3533,10 +3608,10 @@
       nil
       nil
       nil
+      ((access_definition . 566)(attribute_reference . 51)(name . 
567)(null_exclusion_opt . 215)(null_exclusion_opt_name_type . 
568)(qualified_expression . 54)(selected_component . 569))
+      ((discriminant_specification_opt . 563)(identifier_list . 261))
       nil
       nil
-      ((access_definition . 555)(attribute_reference . 51)(name . 
556)(null_exclusion_opt . 212)(null_exclusion_opt_name . 
557)(qualified_expression . 54)(selected_component . 558))
-      ((discriminant_specification_opt . 552)(identifier_list . 254))
       nil
       nil
       nil
@@ -3549,55 +3624,59 @@
       nil
       nil
       nil
+      ((aspect_specification_opt . 550))
       nil
       nil
-      ((aspect_specification_opt . 539))
       nil
       nil
       nil
+      ((aspect_specification_opt . 545))
       nil
       nil
-      ((aspect_specification_opt . 534))
       nil
       nil
+      ((aspect_specification_opt . 542))
+      ((attribute_reference . 51)(name . 541)(qualified_expression . 
54)(selected_component . 55))
+      ((actual_parameter_part . 91)(aspect_specification_opt . 540))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 538)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       nil
-      ((aspect_specification_opt . 531))
-      ((attribute_reference . 51)(name . 530)(qualified_expression . 
54)(selected_component . 55))
-      ((actual_parameter_part . 91)(aspect_specification_opt . 529))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 527)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
       nil
       nil
       nil
+      ((attribute_reference . 51)(name . 536)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
-      ((attribute_reference . 51)(name . 525)(qualified_expression . 
54)(selected_component . 55))
+      ((access_definition . 532)(mode_opt . 533)(null_exclusion_opt . 215))
       nil
       nil
-      ((access_definition . 521)(mode_opt . 522)(null_exclusion_opt . 212))
+      ((aggregate . 153)(association_opt . 176)(association_list . 
531)(attribute_reference . 51)(choice_expression . 
178)(choice_relation_and_list . 179)(choice_relation_or_list . 
180)(choice_relation_xor_list . 181)(choice_relation_and_then_list . 
182)(choice_relation_or_else_list . 183)(choice_relation . 184)(discrete_choice 
. 185)(discrete_choice_list . 186)(expression . 187)(expression_opt . 
188)(factor . 155)(name . 189)(primary . 159)(qualified_expression . 
54)(raise_expression .  [...]
       nil
-      ((aggregate . 151)(association_opt . 173)(association_list . 
520)(attribute_reference . 51)(choice_expression . 
175)(choice_relation_and_list . 176)(choice_relation_or_list . 
177)(choice_relation_xor_list . 178)(choice_relation_and_then_list . 
179)(choice_relation_or_else_list . 180)(choice_relation . 181)(discrete_choice 
. 182)(discrete_choice_list . 183)(expression . 184)(expression_opt . 
185)(factor . 153)(name . 186)(primary . 157)(qualified_expression . 54)(range 
. 187)(relati [...]
       nil
       nil
       nil
       nil
+      ((case_expression_alternative . 796)(case_expression_alternative_list . 
797))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 794)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       nil
-      ((null_exclusion_opt . 784))
-      ((formal_part . 92)(parameter_and_result_profile . 783))
-      ((formal_part . 116)(parameter_profile_opt . 782))
+      nil
+      nil
+      ((null_exclusion_opt . 790))
+      ((formal_part . 92)(parameter_and_result_profile . 789))
+      ((formal_part . 116)(parameter_profile_opt . 788))
       ((actual_parameter_part . 91))
       nil
-      ((aspect_specification_opt . 780))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 779)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aspect_specification_opt . 786))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 785)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
-      ((actual_parameter_part . 91)(formal_package_actual_part . 777))
+      ((actual_parameter_part . 91)(formal_package_actual_part . 783))
       nil
       nil
       nil
       nil
       nil
-      ((attribute_reference . 51)(name . 773)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 779)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
       nil
@@ -3609,7 +3688,7 @@
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(discrete_subtype_definition 
. 758)(discrete_subtype_definition_list . 759)(factor . 
153)(index_subtype_definition . 760)(index_subtype_definition_list . 761)(name 
. 762)(primary . 157)(qualified_expression . 54)(range . 
763)(selected_component . 55)(simple_expression . 764)(subtype_indication . 
765)(term . 165)(term_list . 166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(discrete_subtype_definition 
. 764)(discrete_subtype_definition_list . 765)(factor . 
155)(index_subtype_definition . 766)(index_subtype_definition_list . 767)(name 
. 768)(primary . 159)(qualified_expression . 54)(range . 
769)(selected_component . 55)(simple_expression . 770)(subtype_indication . 
771)(term . 168)(term_list . 169)(unary_adding_operator . 170))
       nil
       nil
       nil
@@ -3624,73 +3703,70 @@
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 
153)(membership_choice . 752)(name . 186)(primary . 157)(qualified_expression . 
54)(range . 465)(selected_component . 55)(simple_expression . 466)(term . 
165)(term_list . 166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 
155)(membership_choice . 758)(name . 189)(primary . 159)(qualified_expression . 
54)(range . 470)(selected_component . 55)(simple_expression . 471)(term . 
168)(term_list . 169)(unary_adding_operator . 170))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 751)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 750)(term . 165)(term_list . 166)(unary_adding_operator 
. 167))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 757)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 756)(term . 168)(term_list . 169)(unary_adding_operator 
. 170))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((attribute_reference . 51)(name . 747)(qualified_expression . 
54)(selected_component . 55))
-      ((aggregate . 745)(record_rep . 746))
+      ((attribute_reference . 51)(name . 753)(qualified_expression . 
54)(selected_component . 55))
+      ((aggregate . 751)(record_rep . 752))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 742)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((actual_parameter_part . 91)(aspect_specification_opt . 168))
-      ((discriminant_part_opt . 740))
-      ((aspect_specification_opt . 706))
-      nil
-      ((attribute_reference . 51)(name . 736)(qualified_expression . 
54)(selected_component . 55)(subtype_indication . 737))
-      ((discriminant_part_opt . 734))
-      ((aspect_specification_opt . 705))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 748)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((actual_parameter_part . 91)(aspect_specification_opt . 171))
+      ((discriminant_part_opt . 746))
+      ((aspect_specification_opt . 715))
       nil
+      ((attribute_reference . 51)(name . 742)(qualified_expression . 
54)(selected_component . 55)(subtype_indication . 743))
+      ((discriminant_part_opt . 740))
+      ((aspect_specification_opt . 714))
       nil
       nil
       nil
       ((actual_parameter_part . 91))
       nil
       nil
-      ((constant_opt . 726))
+      ((constant_opt . 731))
       nil
       nil
-      ((paren_expression . 721))
-      ((formal_part . 116)(parameter_profile_opt . 719))
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 
637)(handled_sequence_of_statements . 717)(if_statement . 639)(iteration_scheme 
. 640)(label_opt . 641)(loop_statement . 642)(name . 643)(pragma . 
644)(procedure_call_statement . 645)(qualified_expression . 54)(raise_statement 
. 64 [...]
-      ((attribute_reference . 51)(name . 210)(name_opt . 
716)(qualified_expression . 54)(selected_component . 55))
+      ((paren_expression . 726))
+      ((formal_part . 116)(parameter_profile_opt . 724))
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 
646)(handled_sequence_of_statements . 722)(if_statement . 648)(iteration_scheme 
. 649)(label_opt . 650)(loop_statement . 651)(name . 652)(pragma . 
653)(procedure_call_statement . 654)(qualified_expression . 54)(raise_statement 
. 65 [...]
+      ((attribute_reference . 51)(name . 213)(name_opt . 
721)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
       nil
       nil
-      ((case_expression_alternative . 714)(case_expression_alternative_list . 
715))
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 708)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 707)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aspect_specification_opt . 706))
-      ((aspect_specification_opt . 705))
       nil
+      ((aggregate . 153)(attribute_reference . 51)(expression . 716)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aspect_specification_opt . 715))
+      ((aspect_specification_opt . 714))
       nil
       nil
       nil
-      ((attribute_reference . 51)(name . 701)(qualified_expression . 
54)(selected_component . 55))
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 
637)(handled_sequence_of_statements . 700)(if_statement . 639)(iteration_scheme 
. 640)(label_opt . 641)(loop_statement . 642)(name . 643)(pragma . 
644)(procedure_call_statement . 645)(qualified_expression . 54)(raise_statement 
. 64 [...]
-      ((aggregate . 151)(attribute_reference . 51)(expression . 
184)(expression_opt . 699)(factor . 153)(name . 154)(primary . 
157)(qualified_expression . 54)(relation_and_list . 158)(relation_and_then_list 
. 159)(relation_or_list . 160)(relation_or_else_list . 161)(relation_xor_list . 
162)(relation . 163)(selected_component . 55)(simple_expression . 164)(term . 
165)(term_list . 166)(unary_adding_operator . 167))
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 698)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(gen [...]
-      ((aggregate . 151)(attribute_reference . 51)(expression . 697)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((identifier_opt . 695))
-      ((iterator_specification . 692)(iterator_specification_opt . 693))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 
184)(expression_opt . 690)(factor . 153)(name . 154)(primary . 
157)(qualified_expression . 54)(relation_and_list . 158)(relation_and_then_list 
. 159)(relation_or_list . 160)(relation_or_else_list . 161)(relation_xor_list . 
162)(relation . 163)(selected_component . 55)(simple_expression . 164)(term . 
165)(term_list . 166)(unary_adding_operator . 167))
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
+      ((attribute_reference . 51)(name . 710)(qualified_expression . 
54)(selected_component . 55))
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 
646)(handled_sequence_of_statements . 709)(if_statement . 648)(iteration_scheme 
. 649)(label_opt . 650)(loop_statement . 651)(name . 652)(pragma . 
653)(procedure_call_statement . 654)(qualified_expression . 54)(raise_statement 
. 65 [...]
+      ((aggregate . 153)(attribute_reference . 51)(expression . 
187)(expression_opt . 708)(factor . 155)(name . 156)(primary . 
159)(qualified_expression . 54)(raise_expression . 160)(relation_and_list . 
161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 707)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(gen [...]
+      ((aggregate . 153)(attribute_reference . 51)(expression . 706)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((identifier_opt . 704))
+      ((iterator_specification . 701)(iterator_specification_opt . 702))
       nil
-      ((attribute_reference . 51)(name . 687)(qualified_expression . 
54)(selected_component . 55))
-      ((attribute_reference . 51)(name . 685)(qualified_expression . 
54)(selected_component . 55))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 
682)(extended_return_object_declaration . 
683)(extended_return_object_declaration_opt . 684)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((accept_statement . 670)(attribute_reference . 51)(delay_alternative . 
671)(delay_statement . 672)(entry_call_alternative . 673)(name . 
674)(procedure_call_statement . 675)(qualified_expression . 
54)(selected_component . 55)(select_alternative . 676)(select_alternative_list 
. 677)(select_alternative_list_opt . 678)(triggering_alternative . 679))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 
184)(expression_opt . 667)(factor . 153)(name . 154)(primary . 
157)(qualified_expression . 54)(relation_and_list . 158)(relation_and_then_list 
. 159)(relation_or_list . 160)(relation_or_else_list . 161)(relation_xor_list . 
162)(relation . 163)(selected_component . 55)(simple_expression . 164)(term . 
165)(term_list . 166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 
187)(expression_opt . 699)(factor . 155)(name . 156)(primary . 
159)(qualified_expression . 54)(raise_expression . 160)(relation_and_list . 
161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
       nil
+      ((attribute_reference . 51)(name . 696)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 694)(qualified_expression . 
54)(selected_component . 55))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 
691)(extended_return_object_declaration . 
692)(extended_return_object_declaration_opt . 693)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_op [...]
+      ((accept_statement . 679)(attribute_reference . 51)(delay_alternative . 
680)(delay_statement . 681)(entry_call_alternative . 682)(name . 
683)(procedure_call_statement . 684)(qualified_expression . 
54)(selected_component . 55)(select_alternative . 685)(select_alternative_list 
. 686)(select_alternative_list_opt . 687)(triggering_alternative . 688))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 
187)(expression_opt . 676)(factor . 155)(name . 156)(primary . 
159)(qualified_expression . 54)(raise_expression . 160)(relation_and_list . 
161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       nil
       nil
@@ -3702,7 +3778,8 @@
       nil
       nil
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(compound_statement . 663)(conditional_entry_call . 
634)(delay_statement . 635)(exit_statement . 636)(extended_return_statement . 
637)(if_statement . 639)(iteration_scheme . 640)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(s [...]
+      nil
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(compound_statement . 672)(conditional_entry_call . 
643)(delay_statement . 644)(exit_statement . 645)(extended_return_statement . 
646)(if_statement . 648)(iteration_scheme . 649)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(s [...]
       nil
       ((actual_parameter_part . 91))
       nil
@@ -3711,7 +3788,7 @@
       nil
       nil
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
       nil
       nil
       nil
@@ -3720,23 +3797,23 @@
       nil
       nil
       nil
-      ((exception_handler . 931)(exception_handler_list . 
932)(exception_handler_list_opt . 933))
+      ((exception_handler . 941)(exception_handler_list . 
942)(exception_handler_list_opt . 943))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 929)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 939)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       nil
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
-      ((attribute_reference . 51)(name . 210)(name_opt . 
927)(qualified_expression . 54)(selected_component . 55))
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
+      ((attribute_reference . 51)(name . 213)(name_opt . 
937)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 925)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
+      ((aggregate . 153)(attribute_reference . 51)(expression . 935)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
       nil
-      ((accept_statement . 629)(actual_parameter_part . 
91)(assignment_statement . 630)(asynchronous_select . 631)(attribute_reference 
. 51)(block_statement . 632)(case_statement . 633)(conditional_entry_call . 
634)(delay_statement . 635)(exit_statement . 636)(extended_return_statement . 
637)(if_statement . 639)(iteration_scheme . 640)(label_opt . 
641)(loop_statement . 642)(name . 643)(pragma . 644)(procedure_call_statement . 
645)(qualified_expression . 54)(raise_statement . 646)(requeue [...]
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
+      ((accept_statement . 638)(actual_parameter_part . 
91)(assignment_statement . 639)(asynchronous_select . 640)(attribute_reference 
. 51)(block_statement . 641)(case_statement . 642)(conditional_entry_call . 
643)(delay_statement . 644)(exit_statement . 645)(extended_return_statement . 
646)(if_statement . 648)(iteration_scheme . 649)(label_opt . 
650)(loop_statement . 651)(name . 652)(pragma . 653)(procedure_call_statement . 
654)(qualified_expression . 54)(raise_statement . 655)(requeue [...]
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
       nil
       nil
       nil
@@ -3757,98 +3834,105 @@
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 901)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 911)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       nil
       nil
       nil
       ((actual_parameter_part . 91))
-      ((actual_parameter_part . 894)(actual_parameter_part_opt . 895))
-      nil
+      ((actual_parameter_part . 904)(actual_parameter_part_opt . 905))
       nil
       nil
       nil
       nil
-      ((elsif_expression_item . 888)(elsif_expression_list . 889))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 885)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((attribute_reference . 51)(name . 736)(qualified_expression . 
54)(selected_component . 55)(subtype_indication . 884))
-      ((aggregate . 151)(attribute_reference . 51)(discrete_subtype_definition 
. 883)(factor . 153)(name . 875)(primary . 157)(qualified_expression . 
54)(range . 763)(selected_component . 55)(simple_expression . 
764)(subtype_indication . 765)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((attribute_reference . 51)(name . 881)(qualified_expression . 
54)(selected_component . 55))
-      ((aggregate . 151)(attribute_reference . 51)(choice_expression . 
175)(choice_relation_and_list . 176)(choice_relation_or_list . 
177)(choice_relation_xor_list . 178)(choice_relation_and_then_list . 
179)(choice_relation_or_else_list . 180)(choice_relation . 181)(discrete_choice 
. 182)(discrete_choice_list . 879)(factor . 153)(name . 186)(primary . 
157)(qualified_expression . 54)(range . 187)(selected_component . 
55)(simple_expression . 459)(term . 165)(term_list . 166)(unary_adding_o [...]
       nil
+      ((aggregate . 153)(attribute_reference . 51)(expression . 899)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((attribute_reference . 51)(name . 742)(qualified_expression . 
54)(selected_component . 55)(subtype_indication . 898))
+      ((aggregate . 153)(attribute_reference . 51)(discrete_subtype_definition 
. 897)(factor . 155)(name . 891)(primary . 159)(qualified_expression . 
54)(range . 769)(selected_component . 55)(simple_expression . 
770)(subtype_indication . 771)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((attribute_reference . 51)(name . 895)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
+      ((aggregate . 153)(attribute_reference . 51)(discrete_subtype_definition 
. 890)(factor . 155)(identifier_list . 217)(name . 891)(parameter_specification 
. 218)(parameter_specification_list . 219)(primary . 159)(qualified_expression 
. 54)(range . 769)(selected_component . 55)(simple_expression . 
770)(subtype_indication . 771)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aspect_specification_opt . 889))
+      ((aggregate . 153)(attribute_reference . 51)(case_expression . 
886)(expression . 887)(factor . 155)(if_expression . 888)(name . 156)(primary . 
159)(qualified_expression . 54)(raise_expression . 160)(relation_and_list . 
161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aspect_specification_opt . 885))
+      ((aspect_specification_opt . 884))
+      ((aspect_specification_opt . 883))
+      ((aspect_specification_opt . 882))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(discrete_subtype_definition 
. 874)(factor . 153)(identifier_list . 214)(name . 875)(parameter_specification 
. 215)(parameter_specification_list . 216)(primary . 157)(qualified_expression 
. 54)(range . 763)(selected_component . 55)(simple_expression . 
764)(subtype_indication . 765)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aspect_specification_opt . 873))
-      ((aggregate . 151)(attribute_reference . 51)(case_expression . 
870)(expression . 871)(factor . 153)(if_expression . 872)(name . 154)(primary . 
157)(qualified_expression . 54)(relation_and_list . 158)(relation_and_then_list 
. 159)(relation_or_list . 160)(relation_or_else_list . 161)(relation_xor_list . 
162)(relation . 163)(selected_component . 55)(simple_expression . 164)(term . 
165)(term_list . 166)(unary_adding_operator . 167))
-      ((aspect_specification_opt . 869))
-      ((aspect_specification_opt . 868))
-      ((aspect_specification_opt . 867))
-      ((aspect_specification_opt . 866))
+      ((access_definition . 879)(array_type_definition . 
880)(attribute_reference . 51)(name . 742)(null_exclusion_opt . 
215)(qualified_expression . 54)(selected_component . 55)(subtype_indication . 
881))
       nil
-      ((access_definition . 863)(array_type_definition . 
864)(attribute_reference . 51)(name . 736)(null_exclusion_opt . 
212)(qualified_expression . 54)(selected_component . 55)(subtype_indication . 
865))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 877)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((attribute_reference . 51)(name . 213)(name_opt . 
876)(qualified_expression . 54)(selected_component . 55))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 861)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((attribute_reference . 51)(name . 210)(name_opt . 
860)(qualified_expression . 54)(selected_component . 55))
-      ((abstract_limited_synchronized_opt . 850)(abstract_limited_opt . 
851)(abstract_tagged_limited_opt . 852)(access_definition . 
853)(array_type_definition . 854)(derived_type_definition . 
855)(enumeration_type_definition . 856)(interface_type_definition . 
857)(null_exclusion_opt . 212)(record_type_definition . 858)(type_definition . 
859))
+      ((abstract_limited_synchronized_opt . 866)(abstract_limited_opt . 
867)(abstract_tagged_limited_opt . 868)(access_definition . 
869)(array_type_definition . 870)(derived_type_definition . 
871)(enumeration_type_definition . 872)(interface_type_definition . 
873)(null_exclusion_opt . 215)(record_type_definition . 874)(type_definition . 
875))
       nil
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 838)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(gen [...]
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 854)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(gen [...]
       nil
-      ((aspect_specification_opt . 835))
+      ((aspect_specification_opt . 851))
       nil
-      ((actual_parameter_part . 91)(constraint . 805)(index_constraint . 806))
-      ((aspect_specification_opt . 832))
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 830)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(gen [...]
+      ((actual_parameter_part . 91)(constraint . 821)(index_constraint . 822))
+      ((aspect_specification_opt . 848))
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 846)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(gen [...]
       nil
-      ((aspect_specification_opt . 827))
+      ((aspect_specification_opt . 843))
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 824)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((mod_clause_opt . 823))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 840)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((mod_clause_opt . 839))
       nil
       nil
       ((actual_parameter_part . 91))
-      ((attribute_reference . 51)(name . 818)(qualified_expression . 
54)(selected_component . 55))
-      ((attribute_reference . 51)(name . 817)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 834)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 833)(qualified_expression . 
54)(selected_component . 55))
+      nil
+      nil
+      nil
+      ((aggregate . 153)(attribute_reference . 51)(expression . 831)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 830)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((attribute_reference . 51)(name . 567)(qualified_expression . 
54)(selected_component . 829))
       nil
+      ((aggregate . 153)(attribute_reference . 51)(name . 156)(primary . 
293)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 815)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 814)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((attribute_reference . 51)(name . 556)(qualified_expression . 
54)(selected_component . 813))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(name . 154)(primary . 
286)(qualified_expression . 54)(selected_component . 55))
       nil
+      ((actual_parameter_part . 91)(constraint . 821)(index_constraint . 822))
       nil
       nil
       nil
-      ((actual_parameter_part . 91)(constraint . 805)(index_constraint . 806))
       nil
       nil
+      ((attribute_reference . 51)(interface_list . 817)(name . 
814)(qualified_expression . 54)(selected_component . 55))
+      ((attribute_reference . 51)(interface_list . 816)(name . 
814)(qualified_expression . 54)(selected_component . 55))
+      ((attribute_reference . 51)(interface_list . 815)(name . 
814)(qualified_expression . 54)(selected_component . 55))
       nil
+      ((attribute_reference . 51)(interface_list . 813)(name . 
814)(qualified_expression . 54)(selected_component . 55))
+      ((actual_parameter_part . 91)(and_interface_list_opt . 812))
       nil
       nil
-      ((attribute_reference . 51)(interface_list . 801)(name . 
798)(qualified_expression . 54)(selected_component . 55))
-      ((attribute_reference . 51)(interface_list . 800)(name . 
798)(qualified_expression . 54)(selected_component . 55))
-      ((attribute_reference . 51)(interface_list . 799)(name . 
798)(qualified_expression . 54)(selected_component . 55))
+      ((aggregate . 153)(association_opt . 176)(association_list . 
193)(attribute_reference . 51)(choice_expression . 
178)(choice_relation_and_list . 179)(choice_relation_or_list . 
180)(choice_relation_xor_list . 181)(choice_relation_and_then_list . 
182)(choice_relation_or_else_list . 183)(choice_relation . 184)(discrete_choice 
. 185)(discrete_choice_list . 186)(expression . 187)(expression_opt . 
188)(factor . 155)(name . 189)(primary . 159)(qualified_expression . 
54)(raise_expression .  [...]
+      ((aspect_specification_opt . 809))
       nil
-      ((attribute_reference . 51)(interface_list . 797)(name . 
798)(qualified_expression . 54)(selected_component . 55))
-      ((actual_parameter_part . 91)(and_interface_list_opt . 796))
+      ((aspect_specification_opt . 808))
       nil
+      ((identifier_list . 217)(parameter_specification . 
218)(parameter_specification_list . 219))
       nil
-      ((aggregate . 151)(association_opt . 173)(association_list . 
190)(attribute_reference . 51)(choice_expression . 
175)(choice_relation_and_list . 176)(choice_relation_or_list . 
177)(choice_relation_xor_list . 178)(choice_relation_and_then_list . 
179)(choice_relation_or_else_list . 180)(choice_relation . 181)(discrete_choice 
. 182)(discrete_choice_list . 183)(expression . 184)(expression_opt . 
185)(factor . 153)(name . 186)(primary . 157)(qualified_expression . 54)(range 
. 191)(relati [...]
-      ((aspect_specification_opt . 793))
       nil
-      ((aspect_specification_opt . 792))
+      ((attribute_reference . 51)(name . 806)(qualified_expression . 
54)(selected_component . 55))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 805)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
-      ((identifier_list . 214)(parameter_specification . 
215)(parameter_specification_list . 216))
       nil
+      ((elsif_expression_item . 802)(elsif_expression_list . 803))
+      ((aggregate . 153)(attribute_reference . 51)(choice_expression . 
178)(choice_relation_and_list . 179)(choice_relation_or_list . 
180)(choice_relation_xor_list . 181)(choice_relation_and_then_list . 
182)(choice_relation_or_else_list . 183)(choice_relation . 184)(discrete_choice 
. 185)(discrete_choice_list . 799)(factor . 155)(name . 189)(primary . 
159)(qualified_expression . 54)(range . 190)(selected_component . 
55)(simple_expression . 464)(term . 168)(term_list . 169)(unary_adding_o [...]
       nil
-      ((attribute_reference . 51)(name . 790)(qualified_expression . 
54)(selected_component . 55))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 789)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
       nil
+      ((case_expression_alternative . 1077))
       nil
+      ((aggregate . 153)(attribute_reference . 51)(expression . 1075)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 1074)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      nil
+      ((elsif_expression_item . 1073))
       nil
       nil
       ((actual_parameter_part . 91))
@@ -3856,7 +3940,7 @@
       nil
       nil
       nil
-      ((attribute_reference . 51)(interface_list . 1063)(name . 
798)(qualified_expression . 54)(selected_component . 55))
+      ((attribute_reference . 51)(interface_list . 1067)(name . 
814)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
       ((actual_parameter_part . 91))
@@ -3864,70 +3948,69 @@
       nil
       nil
       nil
-      ((aggregate . 151)(association_opt . 173)(association_list . 
190)(attribute_reference . 51)(choice_expression . 
175)(choice_relation_and_list . 176)(choice_relation_or_list . 
177)(choice_relation_xor_list . 178)(choice_relation_and_then_list . 
179)(choice_relation_or_else_list . 180)(choice_relation . 181)(discrete_choice 
. 182)(discrete_choice_list . 183)(discrete_subtype_definition . 
758)(discrete_subtype_definition_list . 1059)(expression . 184)(expression_opt 
. 185)(factor . 15 [...]
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
186)(primary . 157)(qualified_expression . 54)(range . 1035)(selected_component 
. 55)(simple_expression . 764)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(association_opt . 176)(association_list . 
193)(attribute_reference . 51)(choice_expression . 
178)(choice_relation_and_list . 179)(choice_relation_or_list . 
180)(choice_relation_xor_list . 181)(choice_relation_and_then_list . 
182)(choice_relation_or_else_list . 183)(choice_relation . 184)(discrete_choice 
. 185)(discrete_choice_list . 186)(discrete_subtype_definition . 
764)(discrete_subtype_definition_list . 1063)(expression . 187)(expression_opt 
. 188)(factor . 15 [...]
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
189)(primary . 159)(qualified_expression . 54)(range . 1039)(selected_component 
. 55)(simple_expression . 770)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       nil
-      ((attribute_reference . 51)(index_subtype_definition . 1055)(name . 
1056)(qualified_expression . 54)(selected_component . 55))
+      ((attribute_reference . 51)(index_subtype_definition . 1059)(name . 
1060)(qualified_expression . 54)(selected_component . 55))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(discrete_subtype_definition 
. 1053)(factor . 153)(name . 875)(primary . 157)(qualified_expression . 
54)(range . 763)(selected_component . 55)(simple_expression . 
764)(subtype_indication . 765)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(discrete_subtype_definition 
. 1057)(factor . 155)(name . 891)(primary . 159)(qualified_expression . 
54)(range . 769)(selected_component . 55)(simple_expression . 
770)(subtype_indication . 771)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
-      ((attribute_reference . 51)(name . 1034)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 1038)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
       nil
       nil
       nil
-      ((actual_parameter_part . 91)(aspect_specification_opt . 1051))
-      ((actual_parameter_part . 91)(aspect_specification_opt . 1050))
-      ((attribute_reference . 51)(name . 1049)(qualified_expression . 
54)(selected_component . 55))
+      ((actual_parameter_part . 91)(aspect_specification_opt . 1055))
+      ((actual_parameter_part . 91)(aspect_specification_opt . 1054))
+      ((attribute_reference . 51)(name . 1053)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
       nil
-      ((component_clause . 1046)(component_clause_list . 1047))
+      ((component_clause . 1050)(component_clause_list . 1051))
       nil
       nil
-      ((aspect_specification_opt . 1043))
+      ((aspect_specification_opt . 1047))
       nil
-      ((aspect_specification_opt . 1041))
-      ((attribute_reference . 51)(interface_list . 1040)(name . 
798)(qualified_expression . 54)(selected_component . 55))
+      ((aspect_specification_opt . 1045))
+      ((attribute_reference . 51)(interface_list . 1044)(name . 
814)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
186)(primary . 157)(qualified_expression . 54)(range . 1035)(selected_component 
. 55)(simple_expression . 764)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((attribute_reference . 51)(name . 1034)(qualified_expression . 
54)(selected_component . 55))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
189)(primary . 159)(qualified_expression . 54)(range . 1039)(selected_component 
. 55)(simple_expression . 770)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((attribute_reference . 51)(name . 1038)(qualified_expression . 
54)(selected_component . 55))
       nil
-      ((aspect_specification_opt . 1031))
-      ((attribute_reference . 51)(interface_list . 1030)(name . 
798)(qualified_expression . 54)(selected_component . 55))
+      ((aspect_specification_opt . 1035))
+      ((attribute_reference . 51)(interface_list . 1034)(name . 
814)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 1025)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 1024)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((enumeration_literal . 1022)(enumeration_literal_list . 1023))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 1029)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 1028)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((enumeration_literal . 1026)(enumeration_literal_list . 1027))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 1019)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 1023)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1017)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aspect_clause . 1010)(at_clause . 297)(component_declaration . 
1011)(component_item . 1012)(component_list . 1013)(component_list_opt . 
1014)(enumeration_representation_clause . 304)(identifier_list . 
1015)(record_representation_clause . 328)(variant_part . 1016))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1021)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aspect_clause . 1014)(at_clause . 304)(component_declaration . 
1015)(component_item . 1016)(component_list . 1017)(component_list_opt . 
1018)(enumeration_representation_clause . 311)(identifier_list . 
1019)(record_representation_clause . 335)(variant_part . 1020))
       nil
       nil
       nil
-      ((record_definition . 1004))
+      ((record_definition . 1008))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((aspect_specification_opt . 1002))
+      ((aspect_specification_opt . 1006))
       nil
       nil
       nil
+      ((aspect_specification_opt . 1003))
+      ((aspect_specification_opt . 1001))
       ((aspect_specification_opt . 999))
-      ((aspect_specification_opt . 997))
-      ((aspect_specification_opt . 995))
-      nil
       nil
       nil
       nil
@@ -3936,54 +4019,49 @@
       nil
       nil
       nil
-      ((actual_parameter_part . 91)(constraint . 805)(index_constraint . 806))
-      ((attribute_reference . 51)(name . 210)(name_opt . 
984)(qualified_expression . 54)(selected_component . 55))
       nil
-      ((case_expression_alternative . 983))
+      ((actual_parameter_part . 91)(constraint . 821)(index_constraint . 822))
+      ((attribute_reference . 51)(name . 213)(name_opt . 
988)(qualified_expression . 54)(selected_component . 55))
       nil
-      ((attribute_reference . 51)(name . 981)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 987)(qualified_expression . 
54)(selected_component . 55))
       ((actual_parameter_part . 91))
-      ((aggregate . 151)(attribute_reference . 51)(discrete_subtype_definition 
. 980)(factor . 153)(name . 875)(primary . 157)(qualified_expression . 
54)(range . 763)(selected_component . 55)(simple_expression . 
764)(subtype_indication . 765)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      nil
+      ((aggregate . 153)(attribute_reference . 51)(discrete_subtype_definition 
. 986)(factor . 155)(name . 891)(primary . 159)(qualified_expression . 
54)(range . 769)(selected_component . 55)(simple_expression . 
770)(subtype_indication . 771)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 978)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 977)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
       nil
-      ((elsif_expression_item . 976))
-      ((aspect_clause . 967)(at_clause . 297)(entry_body . 
968)(enumeration_representation_clause . 304)(function_specification . 
16)(overriding_indicator_opt . 969)(procedure_specification . 
32)(protected_operation_item . 970)(protected_operation_item_list . 
971)(protected_operation_item_list_opt . 972)(record_representation_clause . 
328)(subprogram_body . 973)(subprogram_declaration . 974))
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 965)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(gen [...]
+      ((aspect_clause . 977)(at_clause . 304)(entry_body . 
978)(enumeration_representation_clause . 311)(function_specification . 
16)(overriding_indicator_opt . 979)(procedure_specification . 
32)(protected_operation_item . 980)(protected_operation_item_list . 
981)(protected_operation_item_list_opt . 982)(record_representation_clause . 
335)(subprogram_body . 983)(subprogram_declaration . 984))
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 975)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(gen [...]
       nil
-      ((aggregate . 151)(association_opt . 173)(association_list . 
190)(attribute_reference . 51)(choice_expression . 
175)(choice_relation_and_list . 176)(choice_relation_or_list . 
177)(choice_relation_xor_list . 178)(choice_relation_and_then_list . 
179)(choice_relation_or_else_list . 180)(choice_relation . 181)(discrete_choice 
. 182)(discrete_choice_list . 183)(expression . 184)(expression_opt . 
185)(factor . 153)(name . 186)(primary . 157)(qualified_expression . 54)(range 
. 187)(relati [...]
+      ((aggregate . 153)(association_opt . 176)(association_list . 
193)(attribute_reference . 51)(choice_expression . 
178)(choice_relation_and_list . 179)(choice_relation_or_list . 
180)(choice_relation_xor_list . 181)(choice_relation_and_then_list . 
182)(choice_relation_or_else_list . 183)(choice_relation . 184)(discrete_choice 
. 185)(discrete_choice_list . 186)(expression . 187)(expression_opt . 
188)(factor . 155)(name . 189)(primary . 159)(qualified_expression . 
54)(raise_expression .  [...]
       nil
-      ((formal_part . 116)(parameter_profile_opt . 964))
+      ((formal_part . 116)(parameter_profile_opt . 974))
       nil
-      ((identifier_opt . 963))
-      ((case_statement_alternative . 961)(case_statement_alternative_list . 
962))
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 
637)(handled_sequence_of_statements . 959)(if_statement . 639)(iteration_scheme 
. 640)(label_opt . 641)(loop_statement . 642)(name . 643)(pragma . 
644)(procedure_call_statement . 645)(qualified_expression . 54)(raise_statement 
. 64 [...]
+      ((identifier_opt . 973))
+      ((case_statement_alternative . 971)(case_statement_alternative_list . 
972))
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 
646)(handled_sequence_of_statements . 969)(if_statement . 648)(iteration_scheme 
. 649)(label_opt . 650)(loop_statement . 651)(name . 652)(pragma . 
653)(procedure_call_statement . 654)(qualified_expression . 54)(raise_statement 
. 65 [...]
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 
184)(expression_opt . 957)(factor . 153)(name . 154)(primary . 
157)(qualified_expression . 54)(relation_and_list . 158)(relation_and_then_list 
. 159)(relation_or_list . 160)(relation_or_else_list . 161)(relation_xor_list . 
162)(relation . 163)(selected_component . 55)(simple_expression . 164)(term . 
165)(term_list . 166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 
187)(expression_opt . 967)(factor . 155)(name . 156)(primary . 
159)(qualified_expression . 54)(raise_expression . 160)(relation_and_list . 
161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 954)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 964)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 
637)(handled_sequence_of_statements . 952)(if_statement . 639)(iteration_scheme 
. 640)(label_opt . 641)(loop_statement . 642)(name . 643)(pragma . 
644)(procedure_call_statement . 645)(qualified_expression . 54)(raise_statement 
. 64 [...]
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 
646)(handled_sequence_of_statements . 962)(if_statement . 648)(iteration_scheme 
. 649)(label_opt . 650)(loop_statement . 651)(name . 652)(pragma . 
653)(procedure_call_statement . 654)(qualified_expression . 54)(raise_statement 
. 65 [...]
       nil
       nil
-      ((aliased_opt . 951))
+      ((aliased_opt . 961))
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
       nil
-      ((accept_statement . 670)(delay_alternative . 671)(delay_statement . 
945)(select_alternative . 947))
+      ((accept_statement . 679)(delay_alternative . 680)(delay_statement . 
955)(select_alternative . 957))
       nil
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
-      ((delay_alternative . 944)(delay_statement . 945))
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
+      ((delay_alternative . 954)(delay_statement . 955))
       nil
       nil
       nil
@@ -3991,9 +4069,9 @@
       nil
       nil
       nil
-      ((attribute_reference . 51)(exception_choice . 
937)(exception_choice_list . 938)(name . 939)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(exception_choice . 
947)(exception_choice_list . 948)(name . 949)(qualified_expression . 
54)(selected_component . 55))
       nil
-      ((exception_handler . 934))
+      ((exception_handler . 944))
       nil
       nil
       nil
@@ -4004,140 +4082,141 @@
       nil
       nil
       nil
-      ((accept_statement . 1163)(delay_alternative . 1164)(delay_statement . 
945))
+      ((accept_statement . 1173)(delay_alternative . 1174)(delay_statement . 
955))
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
       nil
       nil
       nil
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
-      ((constant_opt . 1155))
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
+      ((constant_opt . 1165))
       nil
       nil
       nil
-      ((identifier_opt . 1151))
-      ((elsif_statement_item . 1149)(elsif_statement_list . 1150))
+      ((identifier_opt . 1161))
+      ((elsif_statement_item . 1159)(elsif_statement_list . 1160))
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(choice_expression . 
175)(choice_relation_and_list . 176)(choice_relation_or_list . 
177)(choice_relation_xor_list . 178)(choice_relation_and_then_list . 
179)(choice_relation_or_else_list . 180)(choice_relation . 181)(discrete_choice 
. 182)(discrete_choice_list . 1143)(factor . 153)(name . 186)(primary . 
157)(qualified_expression . 54)(range . 187)(selected_component . 
55)(simple_expression . 459)(term . 165)(term_list . 166)(unary_adding_ [...]
+      ((aggregate . 153)(attribute_reference . 51)(choice_expression . 
178)(choice_relation_and_list . 179)(choice_relation_or_list . 
180)(choice_relation_xor_list . 181)(choice_relation_and_then_list . 
182)(choice_relation_or_else_list . 183)(choice_relation . 184)(discrete_choice 
. 185)(discrete_choice_list . 1153)(factor . 155)(name . 189)(primary . 
159)(qualified_expression . 54)(range . 190)(selected_component . 
55)(simple_expression . 464)(term . 168)(term_list . 169)(unary_adding_ [...]
       nil
-      ((case_statement_alternative . 1142))
+      ((case_statement_alternative . 1152))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((function_specification . 16)(procedure_specification . 
32)(subprogram_specification . 1135))
+      ((function_specification . 16)(procedure_specification . 
32)(subprogram_specification . 1145))
       nil
-      ((aspect_clause . 967)(at_clause . 297)(entry_body . 
968)(enumeration_representation_clause . 304)(function_specification . 
16)(overriding_indicator_opt . 969)(procedure_specification . 
32)(protected_operation_item . 1134)(record_representation_clause . 
328)(subprogram_body . 973)(subprogram_declaration . 974))
+      ((aspect_clause . 977)(at_clause . 304)(entry_body . 
978)(enumeration_representation_clause . 311)(function_specification . 
16)(overriding_indicator_opt . 979)(procedure_specification . 
32)(protected_operation_item . 1144)(record_representation_clause . 
335)(subprogram_body . 983)(subprogram_declaration . 984))
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 1132)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((attribute_reference . 51)(name . 1142)(qualified_expression . 
54)(selected_component . 55))
       nil
+      ((actual_parameter_part . 91))
       nil
+      ((formal_part . 116)(parameter_profile_opt . 1139))
       nil
-      ((attribute_reference . 51)(name . 1130)(qualified_expression . 
54)(selected_component . 55))
       nil
-      ((actual_parameter_part . 91))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 1128)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
       nil
       nil
-      ((formal_part . 116)(parameter_profile_opt . 1126))
       nil
       nil
       nil
       nil
+      ((aggregate . 153)(attribute_reference . 51)(expression . 1138)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
+      ((aggregate . 153)(attribute_reference . 51)(expression . 1136)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
+      ((aggregate . 153)(attribute_reference . 51)(expression . 1134)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
+      ((attribute_reference . 51)(name . 1038)(qualified_expression . 
54)(selected_component . 55))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 1125)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 1123)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aspect_specification_opt . 1131))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 1121)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((attribute_reference . 51)(name . 1130)(qualified_expression . 
54)(selected_component . 55))
+      ((attribute_reference . 51)(name . 742)(qualified_expression . 
54)(selected_component . 55)(subtype_indication . 1129))
       nil
-      ((attribute_reference . 51)(name . 1034)(qualified_expression . 
54)(selected_component . 55))
+      ((direct_name . 1127)(direct_name_opt . 1128))
       nil
       nil
-      ((aspect_specification_opt . 1118))
       nil
-      ((attribute_reference . 51)(name . 1117)(qualified_expression . 
54)(selected_component . 55))
-      ((attribute_reference . 51)(name . 736)(qualified_expression . 
54)(selected_component . 55)(subtype_indication . 1116))
       nil
-      ((direct_name . 1114)(direct_name_opt . 1115))
+      ((aspect_clause . 1014)(at_clause . 304)(component_declaration . 
1015)(component_item . 1122)(enumeration_representation_clause . 
311)(identifier_list . 1019)(record_representation_clause . 335)(variant_part . 
1123))
       nil
       nil
       nil
       nil
-      ((aspect_clause . 1010)(at_clause . 297)(component_declaration . 
1011)(component_item . 1109)(enumeration_representation_clause . 
304)(identifier_list . 1015)(record_representation_clause . 328)(variant_part . 
1110))
       nil
       nil
       nil
       nil
       nil
       nil
+      ((real_range_specification_opt . 1116))
+      ((real_range_specification_opt . 1115))
       nil
       nil
+      ((identifier_opt . 1112))
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 1111)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(ge [...]
       nil
       nil
-      ((real_range_specification_opt . 1103))
-      ((real_range_specification_opt . 1102))
       nil
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 854)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(gen [...]
+      ((actual_parameter_part . 91)(constraint . 1106)(index_constraint . 822))
       nil
-      ((identifier_opt . 1099))
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 1098)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(ge [...]
       nil
       nil
+      ((identifier_opt . 1105))
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 1104)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(ge [...]
       nil
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 838)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(gen [...]
-      ((actual_parameter_part . 91)(constraint . 1093)(index_constraint . 806))
       nil
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 846)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(gen [...]
       nil
       nil
-      ((identifier_opt . 1092))
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 1091)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(ge [...]
       nil
       nil
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 830)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(gen [...]
+      ((component_clause . 1097))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 1095)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((actual_parameter_part . 91)(aspect_specification_opt . 1094))
       nil
       nil
+      ((access_definition . 1088)(attribute_reference . 
51)(component_definition . 1091)(name . 742)(null_exclusion_opt . 
215)(qualified_expression . 54)(selected_component . 55)(subtype_indication . 
1090))
       nil
+      ((access_definition . 1088)(attribute_reference . 
51)(component_definition . 1089)(name . 742)(null_exclusion_opt . 
215)(qualified_expression . 54)(selected_component . 55)(subtype_indication . 
1090))
       nil
-      ((component_clause . 1084))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 1082)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((actual_parameter_part . 91)(aspect_specification_opt . 1081))
+      ((actual_parameter_part . 91))
       nil
+      ((aggregate . 153)(attribute_reference . 51)(name . 156)(primary . 
293)(qualified_expression . 54)(selected_component . 55))
       nil
-      ((access_definition . 1075)(attribute_reference . 
51)(component_definition . 1078)(name . 736)(null_exclusion_opt . 
212)(qualified_expression . 54)(selected_component . 55)(subtype_indication . 
1077))
       nil
-      ((access_definition . 1075)(attribute_reference . 
51)(component_definition . 1076)(name . 736)(null_exclusion_opt . 
212)(qualified_expression . 54)(selected_component . 55)(subtype_indication . 
1077))
+      ((attribute_reference . 51)(name . 1083)(qualified_expression . 
54)(selected_component . 55))
       nil
-      ((actual_parameter_part . 91))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(name . 154)(primary . 
286)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
-      ((attribute_reference . 51)(name . 1070)(qualified_expression . 
54)(selected_component . 55))
       nil
+      ((aggregate . 153)(attribute_reference . 51)(expression . 1081)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 1080)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       nil
       nil
+      ((aggregate . 153)(attribute_reference . 51)(expression . 1078)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 1068)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
       nil
+      ((aggregate . 153)(attribute_reference . 51)(expression . 1241)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
-      ((actual_parameter_part . 91))
       nil
-      ((attribute_reference . 51)(name . 1231)(qualified_expression . 
54)(selected_component . 55))
       nil
-      ((access_definition . 1229)(attribute_reference . 51)(name . 
736)(null_exclusion_opt . 212)(qualified_expression . 54)(selected_component . 
55)(subtype_indication . 1230))
+      ((actual_parameter_part . 91))
       nil
+      ((attribute_reference . 51)(name . 1240)(qualified_expression . 
54)(selected_component . 55))
       nil
+      ((access_definition . 1238)(attribute_reference . 51)(name . 
742)(null_exclusion_opt . 215)(qualified_expression . 54)(selected_component . 
55)(subtype_indication . 1239))
       nil
       nil
       nil
@@ -4146,77 +4225,76 @@
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1225)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
       nil
-      ((attribute_reference . 51)(interface_list . 1224)(name . 
798)(qualified_expression . 54)(selected_component . 55))
       nil
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1234)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 830)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(gen [...]
+      ((attribute_reference . 51)(interface_list . 1233)(name . 
814)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 846)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(gen [...]
       nil
-      ((attribute_reference . 51)(interface_list . 1220)(name . 
798)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 838)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(gen [...]
+      ((attribute_reference . 51)(interface_list . 1229)(name . 
814)(qualified_expression . 54)(selected_component . 55))
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 1216)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1215)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 854)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(gen [...]
       nil
       nil
-      ((enumeration_literal . 1214))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 1225)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1224)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1213)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((access_definition . 1075)(attribute_reference . 
51)(component_definition . 1212)(name . 736)(null_exclusion_opt . 
212)(qualified_expression . 54)(selected_component . 55)(subtype_indication . 
1077))
       nil
+      ((enumeration_literal . 1223))
       nil
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1222)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((access_definition . 1088)(attribute_reference . 
51)(component_definition . 1221)(name . 742)(null_exclusion_opt . 
215)(qualified_expression . 54)(selected_component . 55)(subtype_indication . 
1090))
       nil
       nil
       nil
       nil
       nil
       nil
-      ((and_interface_list_opt . 1209))
-      ((actual_parameter_part . 91)(and_interface_list_opt . 1206)(constraint 
. 1207)(constraint_opt . 1208)(index_constraint . 806))
       nil
       nil
+      ((and_interface_list_opt . 1218))
+      ((actual_parameter_part . 91)(and_interface_list_opt . 1215)(constraint 
. 1216)(constraint_opt . 1217)(index_constraint . 822))
       nil
-      ((aspect_specification_opt . 1204))
       nil
-      ((aspect_specification_opt . 1203))
       nil
-      ((aspect_specification_opt . 1202))
-      ((aspect_specification_opt . 1201))
+      ((aspect_specification_opt . 1213))
       nil
+      ((aspect_specification_opt . 1212))
       nil
-      ((attribute_reference . 51)(name . 1200)(qualified_expression . 
54)(selected_component . 55))
-      ((actual_parameter_part . 91))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 1199)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aspect_specification_opt . 1211))
+      ((aspect_specification_opt . 1210))
       nil
-      ((identifier_opt . 1198))
+      ((attribute_reference . 51)(name . 1209)(qualified_expression . 
54)(selected_component . 55))
+      ((actual_parameter_part . 91))
+      ((identifier_opt . 1208))
       nil
       ((aspect_specification_opt . 128))
-      ((entry_body_formal_part . 1196)(formal_part . 
116)(parameter_profile_opt . 1197))
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 
637)(handled_sequence_of_statements . 1194)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 6 [...]
+      ((entry_body_formal_part . 1206)(formal_part . 
116)(parameter_profile_opt . 1207))
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 
646)(handled_sequence_of_statements . 1204)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 6 [...]
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 
637)(handled_sequence_of_statements . 1193)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 6 [...]
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 
646)(handled_sequence_of_statements . 1203)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 6 [...]
       nil
       nil
       nil
       nil
-      ((identifier_opt . 1190))
+      ((identifier_opt . 1200))
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
-      ((aggregate . 151)(attribute_reference . 51)(expression . 
184)(expression_opt . 1188)(factor . 153)(name . 154)(primary . 
157)(qualified_expression . 54)(relation_and_list . 158)(relation_and_then_list 
. 159)(relation_or_list . 160)(relation_or_else_list . 161)(relation_xor_list . 
162)(relation . 163)(selected_component . 55)(simple_expression . 164)(term . 
165)(term_list . 166)(unary_adding_operator . 167))
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
+      ((aggregate . 153)(attribute_reference . 51)(expression . 
187)(expression_opt . 1198)(factor . 155)(name . 156)(primary . 
159)(qualified_expression . 54)(raise_expression . 160)(relation_and_list . 
161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       nil
-      ((elsif_statement_item . 1186))
+      ((elsif_statement_item . 1196))
       nil
       nil
       nil
       nil
-      ((access_definition . 1179)(attribute_reference . 51)(name . 
736)(null_exclusion_opt . 212)(qualified_expression . 
54)(return_subtype_indication . 1180)(selected_component . 
55)(subtype_indication . 1181))
+      ((access_definition . 1189)(attribute_reference . 51)(name . 
742)(null_exclusion_opt . 215)(qualified_expression . 
54)(return_subtype_indication . 1190)(selected_component . 
55)(subtype_indication . 1191))
       nil
       nil
       nil
@@ -4224,12 +4302,12 @@
       nil
       nil
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
       nil
-      ((identifier_opt . 1172))
-      ((attribute_reference . 51)(exception_choice . 1171)(name . 
939)(qualified_expression . 54)(selected_component . 55))
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
-      ((attribute_reference . 51)(exception_choice . 
937)(exception_choice_list . 1169)(name . 939)(qualified_expression . 
54)(selected_component . 55))
+      ((identifier_opt . 1182))
+      ((attribute_reference . 51)(exception_choice . 1181)(name . 
949)(qualified_expression . 54)(selected_component . 55))
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
+      ((attribute_reference . 51)(exception_choice . 
947)(exception_choice_list . 1179)(name . 949)(qualified_expression . 
54)(selected_component . 55))
       nil
       nil
       nil
@@ -4245,19 +4323,18 @@
       nil
       nil
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
       nil
       nil
       nil
       nil
       nil
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
       nil
       nil
       nil
-      ((identifier_list . 214)(parameter_specification . 
215)(parameter_specification_list . 216))
-      nil
+      ((identifier_list . 217)(parameter_specification . 
218)(parameter_specification_list . 219))
       nil
       nil
       nil
@@ -4271,18 +4348,19 @@
       nil
       nil
       nil
-      ((variant_list . 1244)(variant . 1245))
+      ((variant_list . 1254)(variant . 1255))
+      nil
+      ((aspect_specification_opt . 1252))
       nil
-      ((aspect_specification_opt . 1242))
       nil
       nil
+      ((real_range_specification_opt . 1249))
+      ((identifier_opt . 1248))
       nil
-      ((real_range_specification_opt . 1239))
-      ((identifier_opt . 1238))
       nil
       nil
+      ((identifier_opt . 1245))
       nil
-      ((identifier_opt . 1235))
       nil
       nil
       nil
@@ -4291,49 +4369,49 @@
       nil
       nil
       nil
+      ((actual_parameter_part . 91)(constraint . 1106)(index_constraint . 822))
       nil
-      ((actual_parameter_part . 91)(constraint . 1093)(index_constraint . 806))
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1294)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 830)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(gen [...]
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1304)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 846)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(gen [...]
       nil
       nil
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 838)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(gen [...]
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 854)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(gen [...]
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1291)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
-      ((aggregate . 151)(attribute_reference . 51)(expression . 1290)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1301)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 1300)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
-      ((aggregate . 151)(attribute_reference . 51)(choice_expression . 
175)(choice_relation_and_list . 176)(choice_relation_or_list . 
177)(choice_relation_xor_list . 178)(choice_relation_and_then_list . 
179)(choice_relation_or_else_list . 180)(choice_relation . 181)(discrete_choice 
. 182)(discrete_choice_list . 1288)(factor . 153)(name . 186)(primary . 
157)(qualified_expression . 54)(range . 187)(selected_component . 
55)(simple_expression . 459)(term . 165)(term_list . 166)(unary_adding_ [...]
-      ((variant . 1287))
+      ((aggregate . 153)(attribute_reference . 51)(choice_expression . 
178)(choice_relation_and_list . 179)(choice_relation_or_list . 
180)(choice_relation_xor_list . 181)(choice_relation_and_then_list . 
182)(choice_relation_or_else_list . 183)(choice_relation . 184)(discrete_choice 
. 185)(discrete_choice_list . 1298)(factor . 155)(name . 189)(primary . 
159)(qualified_expression . 54)(range . 190)(selected_component . 
55)(simple_expression . 464)(term . 168)(term_list . 169)(unary_adding_ [...]
+      ((variant . 1297))
       nil
       nil
-      ((record_definition . 1284))
+      ((record_definition . 1294))
       nil
       nil
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 
184)(expression_opt . 1283)(factor . 153)(name . 154)(primary . 
157)(qualified_expression . 54)(relation_and_list . 158)(relation_and_then_list 
. 159)(relation_or_list . 160)(relation_or_else_list . 161)(relation_xor_list . 
162)(relation . 163)(selected_component . 55)(simple_expression . 164)(term . 
165)(term_list . 166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 
187)(expression_opt . 1293)(factor . 155)(name . 156)(primary . 
159)(qualified_expression . 54)(raise_expression . 160)(relation_and_list . 
161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
-      ((identifier_opt . 1281))
-      ((identifier_opt . 1280))
+      ((identifier_opt . 1291))
+      ((identifier_opt . 1290))
       nil
       nil
       nil
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
       nil
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(expression . 1275)(factor . 
153)(name . 154)(primary . 157)(qualified_expression . 54)(relation_and_list . 
158)(relation_and_then_list . 159)(relation_or_list . 
160)(relation_or_else_list . 161)(relation_xor_list . 162)(relation . 
163)(selected_component . 55)(simple_expression . 164)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(expression . 1285)(factor . 
155)(name . 156)(primary . 159)(qualified_expression . 54)(raise_expression . 
160)(relation_and_list . 161)(relation_and_then_list . 162)(relation_or_list . 
163)(relation_or_else_list . 164)(relation_xor_list . 165)(relation . 
166)(selected_component . 55)(simple_expression . 167)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       nil
       nil
       nil
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 637)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 646)(requeue_statement . 647)(selected_c [...]
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 646)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 655)(requeue_statement . 656)(selected_c [...]
       nil
       nil
       nil
@@ -4346,25 +4424,25 @@
       nil
       nil
       nil
-      ((aspect_specification_opt . 1301))
+      ((aspect_specification_opt . 1311))
       nil
       nil
       nil
       nil
-      ((aspect_specification_opt . 1298))
+      ((aspect_specification_opt . 1308))
       nil
       nil
       nil
       nil
-      ((aggregate . 151)(attribute_reference . 51)(factor . 153)(name . 
154)(primary . 157)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1315)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((aggregate . 153)(attribute_reference . 51)(factor . 155)(name . 
156)(primary . 159)(qualified_expression . 54)(selected_component . 
55)(simple_expression . 1325)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       nil
       nil
-      ((aspect_clause . 1010)(at_clause . 297)(component_declaration . 
1011)(component_item . 1012)(component_list . 1013)(component_list_opt . 
1313)(enumeration_representation_clause . 304)(identifier_list . 
1015)(record_representation_clause . 328)(variant_part . 1016))
+      ((aspect_clause . 1014)(at_clause . 304)(component_declaration . 
1015)(component_item . 1016)(component_list . 1017)(component_list_opt . 
1323)(enumeration_representation_clause . 311)(identifier_list . 
1019)(record_representation_clause . 335)(variant_part . 1020))
       nil
       nil
-      ((abstract_subprogram_declaration . 295)(aspect_clause . 296)(at_clause 
. 297)(body . 298)(body_stub . 299)(declaration . 300)(declarations . 
301)(declarative_part_opt . 1310)(entry_declaration . 
303)(enumeration_representation_clause . 304)(exception_declaration . 
305)(expression_function_declaration . 306)(full_type_declaration . 
307)(function_specification . 16)(generic_declaration . 
308)(generic_formal_part . 18)(generic_instantiation . 
309)(generic_package_declaration . 20)(ge [...]
-      ((aggregate . 151)(attribute_reference . 51)(discrete_subtype_definition 
. 1309)(factor . 153)(name . 875)(primary . 157)(qualified_expression . 
54)(range . 763)(selected_component . 55)(simple_expression . 
764)(subtype_indication . 765)(term . 165)(term_list . 
166)(unary_adding_operator . 167))
+      ((abstract_subprogram_declaration . 302)(aspect_clause . 303)(at_clause 
. 304)(body . 305)(body_stub . 306)(declaration . 307)(declarations . 
308)(declarative_part_opt . 1320)(entry_declaration . 
310)(enumeration_representation_clause . 311)(exception_declaration . 
312)(expression_function_declaration . 313)(full_type_declaration . 
314)(function_specification . 16)(generic_declaration . 
315)(generic_formal_part . 18)(generic_instantiation . 
316)(generic_package_declaration . 20)(ge [...]
+      ((aggregate . 153)(attribute_reference . 51)(discrete_subtype_definition 
. 1319)(factor . 155)(name . 891)(primary . 159)(qualified_expression . 
54)(range . 769)(selected_component . 55)(simple_expression . 
770)(subtype_indication . 771)(term . 168)(term_list . 
169)(unary_adding_operator . 170))
       nil
       nil
       nil
@@ -4378,11 +4456,11 @@
       nil
       nil
       nil
-      ((accept_statement . 629)(assignment_statement . 
630)(asynchronous_select . 631)(attribute_reference . 51)(block_statement . 
632)(case_statement . 633)(conditional_entry_call . 634)(delay_statement . 
635)(exit_statement . 636)(extended_return_statement . 
637)(handled_sequence_of_statements . 1320)(if_statement . 
639)(iteration_scheme . 640)(label_opt . 641)(loop_statement . 642)(name . 
643)(pragma . 644)(procedure_call_statement . 645)(qualified_expression . 
54)(raise_statement . 6 [...]
-      ((formal_part . 116)(parameter_profile_opt . 1319))
+      ((accept_statement . 638)(assignment_statement . 
639)(asynchronous_select . 640)(attribute_reference . 51)(block_statement . 
641)(case_statement . 642)(conditional_entry_call . 643)(delay_statement . 
644)(exit_statement . 645)(extended_return_statement . 
646)(handled_sequence_of_statements . 1330)(if_statement . 
648)(iteration_scheme . 649)(label_opt . 650)(loop_statement . 651)(name . 
652)(pragma . 653)(procedure_call_statement . 654)(qualified_expression . 
54)(raise_statement . 6 [...]
+      ((formal_part . 116)(parameter_profile_opt . 1329))
       nil
       nil
-      ((identifier_opt . 1322))
+      ((identifier_opt . 1332))
       nil
       nil]))
   "Parser table.")
diff --git a/packages/ada-mode/ada-mode.el b/packages/ada-mode/ada-mode.el
index cd9460a..c67a3ea 100644
--- a/packages/ada-mode/ada-mode.el
+++ b/packages/ada-mode/ada-mode.el
@@ -6,8 +6,8 @@
 ;; Maintainer: Stephen Leake <address@hidden>
 ;; Keywords: languages
 ;;  ada
-;; Version: 5.1.6
-;; package-requires: ((wisi "1.0.6") (cl-lib "0.4") (emacs "24.2"))
+;; Version: 5.1.7
+;; package-requires: ((wisi "1.1.0") (cl-lib "0.4") (emacs "24.2"))
 ;; url: http://stephe-leake.org/emacs/ada-mode/emacs-ada-mode.html
 ;;
 ;; (Gnu ELPA requires single digits between dots in versions)
@@ -168,7 +168,7 @@
 (defun ada-mode-version ()
   "Return Ada mode version."
   (interactive)
-  (let ((version-string "5.1.6"))
+  (let ((version-string "5.1.7"))
     ;; must match:
     ;; ada-mode.texi
     ;; README
@@ -485,7 +485,7 @@ point is where the mouse button was clicked."
   (interactive "*")
   ;; point may be in the middle of a word, so insert newline first,
   ;; then go back and indent.
-  (newline)
+  (insert "\n")
   (forward-char -1)
   (funcall indent-line-function)
   (forward-char 1)
@@ -628,8 +628,7 @@ Function is called with no arguments.")
   (ada-goto-open-paren)
   (funcall indent-line-function); so new list is indented properly
 
-  (let* ((inhibit-modification-hooks t)
-        (begin (point))
+  (let* ((begin (point))
         (delend (progn (forward-sexp) (point))); just after matching closing 
paren
         (end (progn (backward-char) (forward-comment (- (point))) (point))); 
end of last parameter-declaration
         (multi-line (> end (save-excursion (goto-char begin) 
(line-end-position))))
@@ -1061,6 +1060,7 @@ User is prompted to choose a file from project variable 
casing if it is a list."
 
 (defun ada-in-numeric-literal-p ()
   "Return t if point is after a prefix of a numeric literal."
+  ;; FIXME: this is actually a based numeric literal; excludes 1234
   (looking-back "\\([0-9]+#[0-9a-fA-F_]+\\)"))
 
 (defvar ada-keywords nil
@@ -1087,8 +1087,7 @@ User is prompted to choose a file from project variable 
casing if it is a list."
             (copy-marker (1+ end))))
 
       ;; upcase first char
-      (insert-char (upcase (following-char)) 1)
-      (delete-char 1)
+      (upcase-region (point) (1+ (point)))
 
       (goto-char next)
       (if (< (point) end)
@@ -1146,7 +1145,7 @@ Uses `ada-case-identifier', with exceptions defined in
   "Adjust the case of the word before point.
 When invoked interactively, TYPED-CHAR must be
 `last-command-event', and it must not have been inserted yet.
-If IN-COMMENT is non-nil, adjust case of words in comments."
+If IN-COMMENT is non-nil, adjust case of words in comments and strings as 
code."
   (when (not (bobp))
     (when (save-excursion
            (forward-char -1); back to last character in word
@@ -1192,16 +1191,25 @@ If IN-COMMENT is non-nil, adjust case of words in 
comments."
 
 (defun ada-case-adjust-at-point (&optional in-comment)
   "Adjust case of word at point, move to end of word.
-With prefix arg, adjust case even if in comment."
+With prefix arg, adjust case as code even if in comment;
+otherwise, capitalize words in comments."
   (interactive "P")
-  (when
-      (and (not (eobp))
-          ;; 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))
+  (cond
+   ((and (not in-comment)
+        (ada-in-string-or-comment-p))
+    (skip-syntax-backward "w_")
+    (capitalize-word 1))
+
+   (t
+    (when
+       (and (not (eobp))
+            ;; 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))
+   ))
 
 (defun ada-case-adjust-region (begin end)
   "Adjust case of all words in region BEGIN END."
@@ -1329,8 +1337,9 @@ Indexed by ada-xref-tool.  Called with one argument; the 
default
 project properties list. Function should add to the properties
 list and return it.")
 
-(defun ada-prj-default ()
+(defun ada-prj-default (&optional src-dir)
   "Return the default project properties list.
+If SRC-DIR is non-nil, use it as the default for src_dir.
 Include properties set via `ada-prj-default-compiler-alist',
 `ada-prj-default-xref-alist'."
 
@@ -1349,7 +1358,7 @@ Include properties set via 
`ada-prj-default-compiler-alist',
                         (list ada-case-exception-file))
       'path_sep        path-separator;; prj variable so users can override it 
for their compiler
       'proc_env        process-environment
-      'src_dir         (list ".")
+      'src_dir         (list (if src-dir src-dir "."))
       'xref_tool       ada-xref-tool
       ))
 
@@ -1379,6 +1388,7 @@ list. Parser must modify or add to the property list and 
return it.")
 (defun ada-parse-prj-file (prj-file)
   "Read Emacs Ada or compiler-specific project file PRJ-FILE, set project 
properties in `ada-prj-alist'."
   ;; Not called ada-prj-parse-file for Ada mode 4.01 compatibility
+  ;; FIXME: use the right name, add an alias
   (let ((project (ada-prj-default))
        (parser (cdr (assoc (file-name-extension prj-file) 
ada-prj-parser-alist))))
 
@@ -1609,6 +1619,19 @@ Indexed by project variable xref_tool.")
   ;; return 't', for decent display in message buffer when called interactively
   t)
 
+(defun ada-create-select-default-prj (&optional directory)
+  "Create a default project with src_dir set to DIRECTORY (default current 
directory), select it."
+  (let* ((dir (or directory default-directory))
+        (prj-file (expand-file-name "default_.adp" dir))
+        (project (ada-prj-default dir)))
+
+    (if (assoc prj-file ada-prj-alist)
+       (setcdr (assoc prj-file ada-prj-alist) project)
+      (add-to-list 'ada-prj-alist (cons prj-file project)))
+
+    (ada-select-prj-file prj-file)
+    ))
+
 (defun ada-prj-select ()
   "Select the current project file from the list of currently available 
project files."
   (interactive)
@@ -1656,7 +1679,7 @@ Indexed by project variable xref_tool.")
     (modify-syntax-entry ?\" "\"" table)
 
     ;; punctuation; operators etc
-    (modify-syntax-entry ?#  "w" table); based number - word syntax, since we 
don't need the number
+    (modify-syntax-entry ?#  "." table); based number - 
ada-wisi-number-literal-p requires this syntax
     (modify-syntax-entry ?&  "." table)
     (modify-syntax-entry ?*  "." table)
     (modify-syntax-entry ?+  "." table)
@@ -1818,26 +1841,6 @@ unit name; it should return the Ada name that should be 
found in FILE-NAME.")
      ada-spec-suffixes)
     (error "parent '%s' not found; set project file?" ff-function-name))))
 
-(defun ada-ff-special-extract-separate ()
-  ;; match-string contains "separate (parent_name)"
-  (let ((package-name (match-string 1)))
-    (save-excursion
-      (goto-char (match-end 0))
-      (when (eolp) (forward-char 1))
-      (skip-syntax-forward " ")
-      (looking-at
-       (concat "\\(function\\|package body\\|procedure\\|protected body\\|task 
body\\)\\s +"
-              ada-name-regexp))
-      (setq ff-function-name (match-string 0))
-      )
-    (file-name-nondirectory
-     (or
-      (ff-get-file-name
-       compilation-search-path
-       (ada-file-name-from-ada-name package-name)
-       ada-body-suffixes)
-      (error "package '%s' not found; set project file?" package-name)))))
-
 (defun ada-ff-special-with ()
   (let ((package-name (match-string 1)))
     (setq ff-function-name (concat "^package\\s-+" package-name 
"\\([^_]\\|$\\)"))
@@ -1865,10 +1868,6 @@ unit name; it should return the Ada name that should be 
found in FILE-NAME.")
                       ada-parent-name-regexp "\\(?:;\\|[ \t]+\\|$\\)")
               'ada-ff-special-extract-parent)
 
-        ;; A "separate" clause.
-        (cons (concat "^separate[ \t\n]*(" ada-name-regexp ")")
-              'ada-ff-special-extract-separate)
-
         ;; A "with" clause. Note that it may refer to a procedure body, as 
well as a spec
         (cons (concat "^\\(?:limited[ \t]+\\)?\\(?:private[ \t]+\\)?with[ 
\t]+" ada-name-regexp)
               'ada-ff-special-with)
@@ -1991,12 +1990,12 @@ don't move to corresponding declaration."
   subprogram declaration, position point on the corresponding
   parent package specification.
 
-- If point is in the start line of a separate body,
-  position point on the corresponding separate stub declaration.
-
 - If point is in a context clause line, position point on the
   first package declaration that is mentioned.
 
+- If point is in a separate body, position point on the
+  corresponding specification.
+
 - If point is in a subprogram body or specification, position point
   on the corresponding specification or body.
 
@@ -2038,6 +2037,17 @@ the other file."
     (ff-find-other-file other-window)))
   )
 
+(defun ada-find-file (filename)
+  ;; we assume compliation-search-path is set, either by an
+  ;; ada-mode project, or by some other means.
+  ;; FIXME: option to filter with ada-*-suffixes?
+  (interactive (list (completing-read "File: "
+                                     (apply-partially
+                                      'locate-file-completion-table
+                                      compilation-search-path nil))))
+  (find-file (locate-file filename compilation-search-path))
+  )
+
 (defvar ada-operator-re
   
"\\+\\|-\\|/\\|\\*\\*\\|\\*\\|=\\|&\\|abs\\|mod\\|rem\\|and\\|not\\|or\\|xor\\|<=\\|<\\|>=\\|>"
   "Regexp matching Ada operator_symbol.")
@@ -2441,6 +2451,8 @@ Called with no parameters.")
   "See `ada-next-statement-keyword' variable."
   (interactive)
   (when ada-next-statement-keyword
+    (unless (region-active-p)
+      (push-mark))
     (funcall ada-next-statement-keyword)))
 
 (defvar ada-prev-statement-keyword nil
@@ -2454,6 +2466,8 @@ keyword in the previous statement or containing 
statement.")
   "See `ada-prev-statement-keyword' variable."
   (interactive)
   (when ada-prev-statement-keyword
+    (unless (region-active-p)
+      (push-mark))
     (funcall ada-prev-statement-keyword)))
 
 ;;;; code creation
@@ -2583,7 +2597,13 @@ The paragraph is indented on the first line."
            (forward-line))
          ))
 
-    (goto-char opos)))
+    (goto-char opos)
+
+    ;; we disabled modification hooks, so font-lock will not run to
+    ;; re-fontify the comment prefix; do that here.
+    (when (memq 'jit-lock-after-change after-change-functions)
+      (jit-lock-after-change from to 0))
+    ))
 
 ;;;; support for font-lock.el
 
@@ -2613,142 +2633,10 @@ The paragraph is indented on the first line."
 
 (defun ada-font-lock-keywords ()
   "Return Ada mode value for `font-lock-keywords', depending on 
`ada-language-version'."
+   ;; Grammar actions set `font-lock-face' property for all
+   ;; non-keyword tokens that need it.
   (list
-
-   ;; keywords followed by a name that should be in function-name-face.
-   (list
-    (apply
-     'concat
-     (append
-      '("\\<\\("
-       "accept\\|"
-       "entry\\|"
-       "function\\|"
-       "package[ \t]+body\\|"
-       "package\\|"
-       "pragma\\|"
-       "procedure\\|"
-       "task[ \t]+body\\|"
-       "task[ \t]+type\\|"
-       "task\\|"
-       )
-      (when (member ada-language-version '(ada95 ada2005 ada2012))
-       '("\\|"
-         "protected[ \t]+body\\|"
-         "protected[ \t]+function\\|"
-         "protected[ \t]+procedure\\|"
-         "protected[ \t]+type\\|"
-         "protected"
-         ))
-      (list
-       "\\)\\>[ \t]*"
-       ada-name-regexp "?")))
-    '(1 font-lock-keyword-face) '(2 font-lock-function-name-face nil t))
-
-   ;; keywords followed by a name that should be in type-face.
-   (list (concat
-         "\\<\\("
-         "access[ \t]+all\\|"
-         "access[ \t]+constant\\|"
-         "access\\|"
-         "constant\\|"
-         "in[ \t]+reverse\\|"; loop iterator
-         "in[ \t]+not[ \t]+null[ \t]+access\\|"
-         "in[ \t]+not[ \t]+null\\|"
-         "in[ \t]+out[ \t]+not[ \t]+null[ \t]+access\\|"
-         "in[ \t]+out[ \t]+not[ \t]+null\\|"
-         "in[ \t]+out\\|"
-         "in\\|"
-         ;; "return" can't distinguish between 'function ... return <type>;' 
and 'return ...;'
-         ;; "new" can't distinguish between generic instantiation
-         ;;       package foo is new bar (...)
-         ;;    and allocation
-         ;;       a := new baz (...)
-         ;; A parsing indentation engine can, so rules for these are added 
there
-         "not[ \t]+null[ \t]access[ \t]all\\|"
-         "not[ \t]+null[ \t]access[ \t]constant\\|"
-         "not[ \t]+null[ \t]access\\|"
-         "not[ \t]+null\\|"
-         ;; "of" can't distinguish between array and iterable_name
-         "out\\|"
-         "subtype\\|"
-         "type"
-         "\\)\\>[ \t]*"
-         ada-name-regexp "?")
-        '(1 font-lock-keyword-face nil t) '(2 font-lock-type-face nil t))
-
-   ;; Keywords not treated elsewhere. After above so it doesn't
-   ;; override fontication of second or third word in those patterns.
-   (list (concat
-         "\\<"
-         (regexp-opt
-          (append
-           '("abort" "abs" "accept" "all"
-             ;; "and" requires parser for types in interface_lists
-             "array" "at" "begin" "case" "declare" "delay" "delta"
-             "digits" "do" "else" "elsif" "entry" "exception" "exit" "for"
-             "generic" "if" "in" "limited" "loop" "mod" "not"
-             "null" "or" "others" "private" "raise"
-             "range" "record" "rem" "reverse"
-             "select" "separate" "task" "terminate"
-             "then" "when" "while" "xor")
-           (when (member ada-language-version '(ada95 ada2005 ada2012))
-             ;; "aliased" can't distinguish between object declaration and 
paramlist
-             '("abstract" "requeue" "tagged" "until"))
-           (when (member ada-language-version '(ada2005 ada2012))
-             '("interface" "overriding" "synchronized"))
-           (when (member ada-language-version '(ada2012))
-             '("some"))
-           )
-          t)
-         "\\>")
-        '(0 font-lock-keyword-face))
-
-   ;; after the above to handle 'is begin' in blocks
-   (list (concat
-         "\\<\\(is\\)\\>[ \t]*"
-         ada-name-regexp "?")
-        '(1 font-lock-keyword-face) '(2 font-lock-type-face nil t))
-
-   ;; object and parameter declarations; word after ":" should be in
-   ;; type-face if not already fontified or an exception.
-   (list (concat
-         ":[ \t]*"
-         ada-name-regexp
-         "[ \t]*\\(=>\\)?")
-     '(1 (if (match-beginning 2)
-            'default
-          font-lock-type-face)
-        nil t))
-
-   ;; keywords followed by a name that should be in function-name-face if not 
already fontified
-   (list (concat
-         "\\<\\(end\\)\\>[ \t]*"
-         ada-name-regexp "?")
-     '(1 font-lock-keyword-face) '(2 font-lock-function-name-face nil t))
-
-   ;; Keywords followed by a comma separated list of names which
-   ;; should be in constant-face, unless already fontified. Ada mode 4.01 used 
this.
-   (list (concat
-         "\\<\\("
-         "goto\\|"
-         "use\\|"
-         ;; don't need "limited" "private" here; they are matched separately
-         "with"; context clause
-         "\\)\\>[ \t]*"
-         "\\(\\(?:\\sw\\|[_., \t]\\)+\\>\\)?"; ada-name-regexp, plus ", \t"
-         )
-        '(1 font-lock-keyword-face) '(2 font-lock-constant-face nil t))
-
-   ;; statement labels
-   '("<<\\(\\sw+\\)>>" 1 font-lock-constant-face)
-
-   ;; based numberic literals
-   (list "\\([0-9]+#[0-9a-fA-F_]+#\\)" '(1 font-lock-constant-face t))
-
-   ;; numeric literals
-   (list "\\W\\([-+]?[0-9._]+\\)\\>" '(1 font-lock-constant-face))
-
+   (list (concat "\\<" (regexp-opt ada-keywords t) "\\>") '(0 
font-lock-keyword-face))
    ))
 
 ;;;; ada-mode
@@ -2860,10 +2748,11 @@ The paragraph is indented on the first line."
   ;; This means to fully set ada-mode interactively, user must
   ;; do M-x ada-mode M-; (hack-local-variables)
 
-  (when global-font-lock-mode
-    ;; This calls ada-font-lock-keywords, which depends on
-    ;; ada-language-version
-    (font-lock-refresh-defaults))
+  ;; fill-region-as-paragraph in ada-fill-comment-paragraph does not
+  ;; call syntax-propertize, so set comment syntax on
+  ;; ada-fill-comment-prefix. In post-local because user may want to
+  ;; set it per-file.
+  (put-text-property 0 2 'syntax-table '(11 . nil) ada-fill-comment-prefix)
 
   (cl-case ada-language-version
    (ada83
@@ -2886,6 +2775,11 @@ The paragraph is indented on the first line."
                  ada-2005-keywords
                  ada-2012-keywords))))
 
+  (when global-font-lock-mode
+    ;; This calls ada-font-lock-keywords, which depends on
+    ;; ada-keywords
+    (font-lock-refresh-defaults))
+
   (when ada-goto-declaration-start
     (set (make-local-variable 'beginning-of-defun-function) 
ada-goto-declaration-start))
 
@@ -2906,9 +2800,8 @@ The paragraph is indented on the first line."
 
 (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))
+    ((nil 'gnat) (require 'ada-gnat-xref))
+    ('gpr_query (require 'gpr-query))
     ))
 
 (unless (featurep 'ada-compiler)
diff --git a/packages/ada-mode/ada-mode.info b/packages/ada-mode/ada-mode.info
index 78b9799..e2c10f9 100644
--- a/packages/ada-mode/ada-mode.info
+++ b/packages/ada-mode/ada-mode.info
@@ -119,12 +119,11 @@ ada-mode-version'.
 * Menu:
 
 * Ada Reference Manual::
-* gnatinspect::
 * gpr_query::
 * Upgrading::
 
 
-File: ada-mode.info,  Node: Ada Reference Manual,  Next: gnatinspect,  Up: 
Installation
+File: ada-mode.info,  Node: Ada Reference Manual,  Next: gpr_query,  Prev: 
Installation,  Up: Installation
 
 2.1 Ada Reference Manual
 ========================
@@ -133,51 +132,40 @@ The ELPA package ada-ref-man includes the Ada Reference 
Manual and
 Annotated Ada Reference Manual in info format.
 
 
-File: ada-mode.info,  Node: gnatinspect,  Next: gpr_query,  Prev: 
Installation,  Up: Installation
+File: ada-mode.info,  Node: gpr_query,  Next: Upgrading,  Prev: Ada Reference 
Manual,  Up: Installation
 
-2.2 gnatinspect
-===============
+2.2 gpr_query
+=============
 
-Ada mode has experimental support for the new AdaCore cross reference
-tool 'gnatinspect', which supports Ada, C, C++, and any other language
-for which gcc provices the '-fdump-xref'.
+Ada mode has support for an external cross reference tool 'gpr_query',
+which supports Ada, C, C++, and any other language for which AdaCore gcc
+provices the '-fdump-xref' ('-fdump-xref' is an AdaCore extension).
 
-   'gnatinspect' is distributed as part of 'gnatcoll'.  Ada mode
-requires the very latest version, in 'gnatcoll 1.7w' distributed with
+   'gpr_query' requires the 'gnatcoll' library provided by AdaCore.  Ada
+mode requires the very latest version 'gnatcoll 1.7w' distributed with
 GNAT GPL 2014.
 
-   To build 'gnatinspect', assuming GNAT GPL 2014 is installed in
+   To build 'gpr_query', assuming GNAT GPL 2014 is installed in
 '/usr/gnat-gpl-2014', and '/usr/gnat-gpl-2014/bin' is in PATH:
 
      tar xf ~/Downloads/gnatcoll-1.7x-src.tgz
      cd gnatcoll-1.7w-src
      ./configure --prefix=/usr/gnat-gpl-2014
-     make Gnatcoll_Build=Debug
-     sudo make Gnatcoll_Build=Debug install
+     make
+     sudo make install
+     cd ~/.emacs.d/elpa/ada-mode-5.xx/build
+     make install-gpr_query
 
    To build an sqlite3 executable that is compatible with the database
-created by gnatinspect:
+created by 'gpr_query':
 
      cd gnatcoll-1.7w-src/src/sqlite/amalgamation/
      gcc -O2 -o sqlite3 shell.c sqlite3.c -ldl -lpthread
 
 
-File: ada-mode.info,  Node: gpr_query,  Next: Upgrading,  Prev: gnatinspect,  
Up: Installation
-
-2.3 gpr_query
-=============
-
-'gpr_query' is similar to 'gnatinspect', but customized for Emacs
-ada-mode use.  To install it, install 'gnatinspect' as above (*note
-gnatinspect::), then:
-
-     cd ~/.emacs.d/elpa/ada-mode-5.xx/build
-     make install-gpr_query
-
-
 File: ada-mode.info,  Node: Upgrading,  Prev: gpr_query,  Up: Installation
 
-2.4 Upgrading from previous versions
+2.3 Upgrading from previous versions
 ====================================
 
 See the file NEWS for more details; here we summarize only important
@@ -286,10 +274,9 @@ cross-reference-tool-specific functions for corresponding 
Ada mode
 operations.
 
    The default cross-reference tool is 'gnatxref', provided by the file
-'ada-gnat-xref.el'.  Two other tools are supported: 'gnat_inspect' and
-'gpr_query'.  To use these, add one of the following to '~/.emacs':
+'ada-gnat-xref.el'.  One other tool is supported: 'gpr_query'.  To use
+it, add the following to '~/.emacs':
 
-     (require 'gnat-inspect)
      (require 'gpr-query)
 
    To use 'gpr_query', the Ada code 'gpr_query.adb' must be compiled;
@@ -299,8 +286,7 @@ see *note Installation::.
 Emacs lisp code that provides the interface to the compiler, and set
 'ada-xref-tool' and the indirection variables.
 
-   See 'ada-gnat-xref.el', 'gnat-inspect.el', 'gpr-query.el' for
-examples.
+   See 'ada-gnat-xref.el' and 'gpr-query.el' for examples.
 
 
 File: ada-mode.info,  Node: Other customization,  Prev: Other cross-reference, 
 Up: Customization
@@ -341,18 +327,21 @@ the syntax to set a variable is the following:
      defaults to 'ada-skel-expand', is bound to <C-c C-e> (*note
      Statement skeletons::).
 'imenu'
+     Navigate to subprograms and types by name, from a minibuffer menu.
+'speedbar'
+     Navigate to subprograms and types by name, from a list in a
+     dedicated window.
 'which-func'
 
    The above can all be set by the following code in your '~/.emacs'.
 Note that some are functions are added to 'before-save-hook'; they run
 just before a buffer is written to disk.  Also, the order is important;
-ada-mode does not set up the Ada-specific features of imenu and
-which-func unless they are loaded first.
+ada-mode does not set up the Ada-specific features of imenu and speedbar
+unless imenu is loaded first.
 
      (setq-default indent-tabs-mode nil)
      (electric-pair-mode 1)
-     (require 'imenu)
-     (require 'which-func)
+     (require 'imenu) ;; also enables speedbar
      (require 'ada-mode)
      (add-to-list 'hippie-expand-try-functions-list 'ada-skel-hippie-try)
      (define-key ada-mode-map "\C-e"     'hippie-expand)
@@ -1855,19 +1844,17 @@ File: ada-mode.info,  Node: GNAT core,  Next: Wisi,  
Prev: gpr mode,  Up: Packag
 
      'gnat-core.el' is a start at a language-agnostic interface to the
      GNAT tools.  It was first factored out from 'ada-gnat.el' and
-     'ada-mode.el' to support the multi-language 'gnat-inspect.el',
-     which is still experimental.
+     'ada-mode.el' to support the multi-language 'gpr_query.el'.
 
      More code currently in 'ada-mode.el' could be migrated to
      'gnat-core.el', in particular the project file support.
 
-'gnat-inspect.el'
-     Provides an experimental interface to the experimental
-     multi-language cross-reference tool 'gnatinspect' from AdaCore,
-     which will supercede 'gnatxref'.
+'gpr-query.el'
+     Provides an interface to the external multi-language
+     cross-reference tool 'gpr_query'.
 
      Implements the Ada mode cross-reference functions for the
-     'gnatinspect' backend, and a minor mode providing similar functions
+     'gpr_query' backend, and a minor mode providing similar functions
      for C++.
 
 
@@ -2452,46 +2439,45 @@ Tag Table:
 Node: Top945
 Node: Overview2576
 Node: Installation3787
-Node: Ada Reference Manual4769
-Node: gnatinspect5026
-Node: gpr_query6023
-Node: Upgrading6380
-Node: Customization6952
-Node: Non-standard file names7434
-Node: Other compiler9275
-Node: Other cross-reference9854
-Node: Other customization10865
-Node: Compiling Executing13335
-Node: Compile commands14070
-Node: Compiling Examples16808
-Node: No project files17640
-Node: Set compiler options23006
-Node: Set source search path24968
-Node: Use GNAT project file27421
-Node: Use multiple GNAT project files30195
-Node: Use a Makefile32915
-Node: Compiler errors34230
-Node: Project files35047
-Node: Project file overview36074
-Node: Project file variables37602
-Node: Moving Through Ada Code41232
-Node: Identifier completion43931
-Node: Indentation44893
-Node: Statement skeletons48945
-Node: Aligning code50730
-Node: Automatic casing51675
-Node: Comment Handling54379
-Node: Key summary54898
-Node: Developer overview57525
-Node: Directory structure57865
-Node: Package organization61351
-Node: Ada mode61586
-Node: gpr mode63782
-Node: GNAT core64065
-Node: Wisi65011
-Node: OpenToken65978
-Node: ELPA66580
-Node: GNU Free Documentation License67190
-Node: Index92351
+Node: Ada Reference Manual4753
+Node: gpr_query5029
+Node: Upgrading6094
+Node: Customization6666
+Node: Non-standard file names7148
+Node: Other compiler8989
+Node: Other cross-reference9568
+Node: Other customization10503
+Node: Compiling Executing13140
+Node: Compile commands13875
+Node: Compiling Examples16613
+Node: No project files17445
+Node: Set compiler options22811
+Node: Set source search path24773
+Node: Use GNAT project file27226
+Node: Use multiple GNAT project files30000
+Node: Use a Makefile32720
+Node: Compiler errors34035
+Node: Project files34852
+Node: Project file overview35879
+Node: Project file variables37407
+Node: Moving Through Ada Code41037
+Node: Identifier completion43736
+Node: Indentation44698
+Node: Statement skeletons48750
+Node: Aligning code50535
+Node: Automatic casing51480
+Node: Comment Handling54184
+Node: Key summary54703
+Node: Developer overview57330
+Node: Directory structure57670
+Node: Package organization61156
+Node: Ada mode61391
+Node: gpr mode63587
+Node: GNAT core63870
+Node: Wisi64704
+Node: OpenToken65671
+Node: ELPA66273
+Node: GNU Free Documentation License66883
+Node: Index92044
 
 End Tag Table
diff --git a/packages/ada-mode/ada-mode.texi b/packages/ada-mode/ada-mode.texi
index 730b06a..96b2610 100644
--- a/packages/ada-mode/ada-mode.texi
+++ b/packages/ada-mode/ada-mode.texi
@@ -26,7 +26,7 @@ developing GNU and promoting software freedom.''
 
 @titlepage
 @sp 10
address@hidden Ada Mode Version 5.1.6
address@hidden Ada Mode Version 5.1.7
 @page
 @vskip 0pt plus 1filll
 @insertcopying
@@ -121,27 +121,27 @@ You may also want to install additional utilities:
 
 @menu
 * Ada Reference Manual::
-* gnatinspect::
 * gpr_query::
 * Upgrading::
 @end menu
 
address@hidden Ada Reference Manual
address@hidden Ada Reference Manual, gpr_query, Installation, Installation
 @section Ada Reference Manual
 The ELPA package ada-ref-man includes the Ada Reference Manual and
 Annotated Ada Reference Manual in info format.
 
address@hidden gnatinspect, gpr_query, Installation, Installation
address@hidden gnatinspect
-Ada mode has experimental support for the new AdaCore cross reference
-tool @code{gnatinspect}, which supports Ada, C, C++, and any other
-language for which gcc provices the @code{-fdump-xref}.
address@hidden gpr_query, Upgrading, Ada Reference Manual, Installation
address@hidden gpr_query
+Ada mode has support for an external cross reference
+tool @code{gpr_query}, which supports Ada, C, C++, and any other
+language for which AdaCore gcc provices the @code{-fdump-xref}
+(@code{-fdump-xref} is an AdaCore extension).
 
address@hidden is distributed as part of @code{gnatcoll}. Ada mode
-requires the very latest version, in @code{gnatcoll 1.7w} distributed
-with GNAT GPL 2014.
address@hidden requires the @code{gnatcoll} library provided by
+AdaCore. Ada mode requires the very latest version @code{gnatcoll
+1.7w} distributed with GNAT GPL 2014.
 
-To build @code{gnatinspect}, assuming GNAT GPL 2014 is installed in
+To build @code{gpr_query}, assuming GNAT GPL 2014 is installed in
 @file{/usr/gnat-gpl-2014}, and @file{/usr/gnat-gpl-2014/bin} is in
 PATH:
 
@@ -149,29 +149,22 @@ PATH:
 tar xf ~/Downloads/gnatcoll-1.7x-src.tgz
 cd gnatcoll-1.7w-src
 ./configure --prefix=/usr/gnat-gpl-2014
-make Gnatcoll_Build=Debug
-sudo make Gnatcoll_Build=Debug install
address@hidden make Gnatcoll_Build=Debug
address@hidden sudo make Gnatcoll_Build=Debug install
+make
+sudo make install
+cd ~/.emacs.d/elpa/ada-mode-5.xx/build
+make install-gpr_query
 @end example
 
 To build an sqlite3 executable that is compatible with the database
-created by gnatinspect:
+created by @code{gpr_query}:
 
 @example
 cd gnatcoll-1.7w-src/src/sqlite/amalgamation/
 gcc -O2 -o sqlite3 shell.c sqlite3.c -ldl -lpthread
 @end example
 
address@hidden gpr_query, Upgrading, gnatinspect, Installation
address@hidden gpr_query
address@hidden is similar to @file{gnatinspect}, but customized for
-Emacs ada-mode use. To install it, install @file{gnatinspect} as above
-(@ref{gnatinspect}), then:
-
address@hidden
-cd ~/.emacs.d/elpa/ada-mode-5.xx/build
-make install-gpr_query
address@hidden example
-
 @node Upgrading,  , gpr_query, Installation
 @section Upgrading from previous versions
 
@@ -277,12 +270,10 @@ the cross-reference-tool-specific functions for 
corresponding Ada mode
 operations.
 
 The default cross-reference tool is @file{gnatxref}, provided by the
-file @file{ada-gnat-xref.el}. Two other tools are supported:
address@hidden and @file{gpr_query}. To use these, add one of the
-following to @file{~/.emacs}:
+file @file{ada-gnat-xref.el}. One other tool is supported:
address@hidden To use it, add the following to @file{~/.emacs}:
 
 @example
-(require 'gnat-inspect)
 (require 'gpr-query)
 @end example
 
@@ -293,8 +284,7 @@ To use a cross reference tool other than the above, you 
must write
 Emacs lisp code that provides the interface to the compiler, and set
 @code{ada-xref-tool} and the indirection variables.
 
-See @file{ada-gnat-xref.el}, @file{gnat-inspect.el},
address@hidden for examples.
+See @file{ada-gnat-xref.el} and @file{gpr-query.el} for examples.
 
 @node Other customization,  , Other cross-reference, Customization
 @section Other customization
@@ -335,6 +325,9 @@ words from current buffer, other buffers, file names, etc; 
see
 which defaults to @code{ada-skel-expand}, is bound to @key{C-c C-e}
 (@pxref{Statement skeletons}).
 @item imenu
+Navigate to subprograms and types by name, from a minibuffer menu.
address@hidden speedbar
+Navigate to subprograms and types by name, from a list in a dedicated window.
 @item which-func
 @end table
 
@@ -342,14 +335,13 @@ The above can all be set by the following code in your
 @file{~/.emacs}. Note that some are functions are added to
 @code{before-save-hook}; they run just before a buffer is written to
 disk. Also, the order is important; ada-mode does not set up the
-Ada-specific features of imenu and which-func unless they are loaded
+Ada-specific features of imenu and speedbar unless imenu is loaded
 first.
 
 @example
 (setq-default indent-tabs-mode nil)
 (electric-pair-mode 1)
-(require 'imenu)
-(require 'which-func)
+(require 'imenu) ;; also enables speedbar
 (require 'ada-mode)
 (add-to-list 'hippie-expand-try-functions-list 'ada-skel-hippie-try)
 (define-key ada-mode-map "\C-e"     'hippie-expand)
@@ -391,7 +383,6 @@ In multi-file projects, there must be one file that is the 
main
 program. That is given by the @code{main} project file variable;
 it defaults to the current file if not yet set, but is also set by the
 ``set main and build'' command.
address@hidden IMPROVEME: get main from gpr via gnatinspect? not in gnatcoll 
1.6w
 
 @table @code
 
@@ -1945,19 +1936,17 @@ multi-language gcc.
 
 @file{gnat-core.el} is a start at a language-agnostic interface to the
 GNAT tools. It was first factored out from @file{ada-gnat.el} and
address@hidden to support the multi-language
address@hidden, which is still experimental.
address@hidden to support the multi-language @file{gpr_query.el}.
 
 More code currently in @file{ada-mode.el} could be migrated to
 @file{gnat-core.el}, in particular the project file support.
 
address@hidden gnat-inspect.el
-Provides an experimental interface to the experimental multi-language
-cross-reference tool @file{gnatinspect} from AdaCore, which will
-supercede @file{gnatxref}.
address@hidden gpr-query.el
+Provides an interface to the external multi-language cross-reference
+tool @file{gpr_query}.
 
 Implements the Ada mode cross-reference functions for the
address@hidden backend, and a minor mode providing similar
address@hidden backend, and a minor mode providing similar
 functions for C++.
 
 @end table
diff --git a/packages/ada-mode/ada-ref-man.el b/packages/ada-mode/ada-ref-man.el
index 6344056..53f60c7 100755
--- a/packages/ada-mode/ada-ref-man.el
+++ b/packages/ada-mode/ada-ref-man.el
@@ -6,7 +6,8 @@
 ;; Maintainer: Stephen Leake <address@hidden>
 ;; Keywords: languages
 ;;  ada
+;; Package-Type: multi
 ;; Version: 2012.0
 ;; url: http://stephe-leake.org/ada/arm.html
-;;
-;; (Gnu ELPA requires single digits between dots in versions)
+
+;;; ada-ref-man.el ends here
diff --git a/packages/ada-mode/ada-skel.el b/packages/ada-mode/ada-skel.el
index dcd21c4..9544222 100644
--- a/packages/ada-mode/ada-skel.el
+++ b/packages/ada-mode/ada-skel.el
@@ -109,6 +109,10 @@ This could end in a token recognized by `ada-skel-expand'."
 
 )
 
+;; override ada-mode 4.01 autoloaded functions
+(define-obsolete-function-alias 'ada-header 'ada-skel-header "24.4"
+  "Insert a descriptive header at the top of the file.")
+
 ;;;;; Ada skeletons (alphabetical)
 
 (define-skeleton ada-skel-accept
diff --git a/packages/ada-mode/ada-wisi-opentoken.el 
b/packages/ada-mode/ada-wisi-opentoken.el
index 651dbce..7b7ad0b 100644
--- a/packages/ada-mode/ada-wisi-opentoken.el
+++ b/packages/ada-mode/ada-wisi-opentoken.el
@@ -43,14 +43,14 @@
   ;; included in package specs that exist solely to define OpenToken
   ;; grammar fragments.
   (save-excursion
-    (let ((token-text (nth 1 (wisi-backward-token))))
+    (let ((token-text (wisi-token-text (wisi-backward-token))))
       (cond
        ((equal token-text "<=")
        (back-to-indentation)
        (+ (current-column) ada-indent-broken))
 
        ((member token-text '("+" "&"))
-       (while (not (equal "<=" (nth 1 (wisi-backward-token)))))
+       (while (not (equal "<=" (wisi-token-text (wisi-backward-token)))))
        (back-to-indentation)
        (+ (current-column) ada-indent-broken))
        ))))
diff --git a/packages/ada-mode/ada-wisi.el b/packages/ada-mode/ada-wisi.el
index 1a5815f..e939ce7 100644
--- a/packages/ada-mode/ada-wisi.el
+++ b/packages/ada-mode/ada-wisi.el
@@ -33,19 +33,12 @@
 (require 'cl-lib)
 (require 'wisi)
 
-(defcustom ada-wisi-font-lock-size-threshold 100000
-  "Max size (in characters) for using wisi parser results for syntax 
highlighting."
-  :type 'integer
-  :group 'ada-indentation
-  :safe 'integerp)
-
 (defconst ada-wisi-class-list
   '(
     block-end
     block-middle ;; not start of statement
     block-start ;; start of block is start of statement
     close-paren
-    keyword    ;; cached only for face; not used in indentation
     list-break
     name
     name-paren ;; anything that looks like a procedure call, since the grammar 
can't distinguish most of them
@@ -192,7 +185,7 @@ point must be on CACHE. PREV-TOKEN is the token before the 
one being indented."
        (containing (wisi-goto-containing cache)))
     (cl-ecase (wisi-cache-token containing)
       (LEFT_PAREN
-       (if (equal break-point (cl-caddr prev-token))
+       (if (equal break-point (cadr prev-token))
           ;; we are indenting the first token after the list-break; not 
hanging.
           ;;
           ;; test/parent.adb
@@ -269,7 +262,7 @@ point must be on CACHE. PREV-TOKEN is the token before the 
one being indented."
            ;;
            ;; type Limited_Derived_Type_1d is
            ;;    abstract limited new Private_Type_1 with
-           ;; record
+           ;;    record
            ;; indenting 'record'
            ;;
            ;; for Record_Type_1 use
@@ -310,39 +303,52 @@ point must be on CACHE. PREV-TOKEN is the token before 
the one being indented."
         nil)
 
        (name
-        (cl-case (wisi-cache-nonterm cache)
-          ((function_specification procedure_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))
+        (cond
+         ((let ((temp (save-excursion (wisi-goto-containing cache))))
+            (and temp
+                 (memq (wisi-cache-nonterm temp) '(subprogram_body 
subprogram_declaration))))
+          ;; 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))
 
-          (t
-           ;; defer to ada-wisi-after-cache, for consistency
-           nil)
-          ))
+         (t
+          ;; defer to ada-wisi-after-cache, for consistency
+          nil)
+         ))
 
        (name-paren
         ;; defer to ada-wisi-after-cache, for consistency
         nil)
 
        (open-paren
-        (let ((containing (wisi-goto-containing cache)))
+        (let* ((containing (wisi-goto-containing cache))
+               (containing-pos (point)))
           (cl-case (wisi-cache-token containing)
             (COMMA
              ;; test/ada_mode-parens.adb
              ;; A : Matrix_Type :=
              ;;   ((1, 2, 3),
              ;;    (4, 5, 6),
-             ;; indenting (4
-             (ada-wisi-indent-containing 0 containing))
+             ;; indenting (4; containing is '),' ; 0
+             ;;
+             ;; test/ada_mode-parens.adb
+             ;; Local_14 : Local_14_Type :=
+             ;;   ("123",
+             ;;    "456" &
+             ;;    ("789"));
+             ;; indenting ("4"; contaning is '3",' ; ada-indent-broken
+
+             (ada-wisi-indent-containing
+              (if (= (nth 1 prev-token) containing-pos) 0 ada-indent-broken)
+              containing))
 
             (EQUAL_GREATER
              (setq containing (wisi-goto-containing containing))
@@ -367,6 +373,12 @@ point must be on CACHE. PREV-TOKEN is the token before the 
one being indented."
                 ;;    (if J > 42
                 ;; indenting '(if'; containing is '=>'
                 (+ (current-column) -1 ada-indent))
+               (WITH
+                ;; test/aspects.ads
+                ;;    function Wuff return Boolean with Pre =>
+                ;;      (for all x in U =>
+                ;; indenting '(for';  containing is '=>', 'with', 'function'
+                (ada-wisi-indent-cache (1- ada-indent) containing))
                ))
 
             ((FUNCTION PROCEDURE)
@@ -471,226 +483,241 @@ point must be on CACHE. PREV-TOKEN is the token before 
the one being indented."
         (ada-wisi-indent-containing ada-indent-broken cache t))
 
        (statement-other
-        (let ((containing (wisi-goto-containing cache nil)))
-          (cl-case (wisi-cache-token cache)
-            (EQUAL_GREATER
-             (+ (current-column) ada-indent-broken))
-
-            (ELSIF
-             ;; test/g-comlin.adb
-             ;;   elsif Current_Argument < CL.Argument_Count then
-             (ada-wisi-indent-cache 0 containing))
-
-            (RENAMES
-             (cl-ecase (wisi-cache-nonterm containing)
-               ((generic_renaming_declaration subprogram_renaming_declaration)
-                (wisi-forward-find-token '(FUNCTION PROCEDURE) pos-0)
-                (let ((pos-subprogram (point))
-                      (has-params
-                       ;; this is wrong for one return access
-                       ;; function case: overriding function Foo
-                       ;; return access Bar (...) renames ...;
-                       (wisi-forward-find-token 'LEFT_PAREN pos-0 t)))
-                  (if has-params
-                      (if (<= ada-indent-renames 0)
-                          ;; indent relative to paren
-                          (+ (current-column) (- ada-indent-renames))
-                        ;; else relative to line containing keyword
+        (save-excursion
+          (let ((containing (wisi-goto-containing cache nil)))
+            (while (not (wisi-cache-nonterm containing))
+              (setq containing (wisi-goto-containing containing)))
+
+            (cond
+             ;; cases to defer to after-cache
+             ((and
+               (eq (wisi-cache-nonterm cache) 'qualified_expression)
+               ;; test/ada_mode-parens.adb Local_13 Integer'
+               (not (eq (wisi-cache-token containing) 'COLON_EQUAL)))
+              ;; _not_ test/indent.ads CSCL_Type'
+              nil)
+
+             ;; handled here
+             (t
+              (cl-case (wisi-cache-token cache)
+                (EQUAL_GREATER
+                 (+ (current-column) ada-indent-broken))
+
+                (ELSIF
+                 ;; test/g-comlin.adb
+                 ;;   elsif Current_Argument < CL.Argument_Count then
+                 (ada-wisi-indent-cache 0 containing))
+
+                (RENAMES
+                 (cl-ecase (wisi-cache-nonterm containing)
+                   ((generic_renaming_declaration 
subprogram_renaming_declaration)
+                    (wisi-forward-find-token '(FUNCTION PROCEDURE) pos-0)
+                    (let ((pos-subprogram (point))
+                          (has-params
+                           ;; this is wrong for one return access
+                           ;; function case: overriding function Foo
+                           ;; return access Bar (...) renames ...;
+                           (wisi-forward-find-token 'LEFT_PAREN pos-0 t)))
+                      (if has-params
+                          (if (<= ada-indent-renames 0)
+                              ;; indent relative to paren
+                              (+ (current-column) (- ada-indent-renames))
+                            ;; else relative to line containing keyword
+                            (goto-char pos-subprogram)
+                            (+ (current-indentation) ada-indent-renames))
+
+                        ;; no params
                         (goto-char pos-subprogram)
-                        (+ (current-indentation) ada-indent-renames))
+                        (+ (current-indentation) ada-indent-broken))
+                      ))
 
-                    ;; no params
-                    (goto-char pos-subprogram)
+                   (object_renaming_declaration
                     (+ (current-indentation) ada-indent-broken))
-                  ))
-
-               (object_renaming_declaration
-                (+ (current-indentation) ada-indent-broken))
-               ))
-
-            (t
-             (while (not (wisi-cache-nonterm containing))
-               (setq containing (wisi-goto-containing containing)))
-
-             (cl-ecase (wisi-cache-nonterm containing)
-               (aggregate
-                ;; indenting 'with'
-                (+ (current-column) 1))
-
-               (association_list
-                ;; test/ada_mode-parens.adb
-                ;; Local_13 : Local_11_Type
-                ;;   := (Integer'(1),
-                ;;       Integer'(2));
-                (ada-wisi-indent-cache 0 containing))
-
-               (association_opt
-                ;; test/indent.ads
-                ;; 1 =>  --  Used to be aligned on "CSCL_Type'"
-                ;;       --  aligned with previous comment.
-                ;;   IO_CPU_Control_State_S_Pkg.CPU2_Fault_Status_Type'
-                (ada-wisi-indent-cache ada-indent-broken containing))
-
-               (asynchronous_select
-                ;; indenting 'abort'
-                (+ (current-column) ada-indent-broken))
-
-               (component_declaration
-                ;; test/ada_mode-nominal.ads record_type_3
-                (+ (current-column) ada-indent-broken))
-
-               (entry_body
-                ;; indenting 'when'
-                (+ (current-column) ada-indent-broken))
-
-               (formal_package_declaration
-                ;; test/ada_mode-generic_package.ads
-                ;; with package A_Package_7 is
-                ;;   new Ada.Text_IO.Integer_IO (Num => 
Formal_Signed_Integer_Type);
-                ;; indenting 'new'
-                (+ (current-column) ada-indent-broken))
-
-               (full_type_declaration
-                ;; test/ada_mode-nominal.ads
-                ;; type Unconstrained_Array_Type_3 is array (Integer range <>, 
Standard.Character range <>)
-                ;;   of Object_Access_Type_1;
-                ;; indenting 'of'
-                ;;
-                ;; type Object_Access_Type_7
-                ;;   is access all Integer;
-                ;; indenting 'is'
-                ;;
-                ;; type Limited_Derived_Type_1 is abstract limited new 
Private_Type_1 with
-                ;; record
-                ;; indenting 'record'
-                ;;
-                ;; type Limited_Derived_Type_3 is abstract limited new 
Private_Type_1
-                ;;   with null record;
-                ;; indenting 'with'
-                ;;
-                ;; type Limited_Derived_Type_2a is abstract limited new 
Private_Type_1
-                ;; with record
-                ;; indenting 'with record'
-                ;;
-                ;; test/access_in_record.ads
-                ;; type A
-                ;;    is new Ada.Streams.Root_Stream_Type with record
-                ;; FIXME: line with 'record' use ada-indent-record-rel-type
-
-                (while (not (eq 'TYPE (wisi-cache-token containing)))
-                  (setq containing (wisi-goto-containing containing)))
-
-                (cond
-                 ((eq (wisi-cache-token cache) 'RECORD)
-                  (+ (current-column) ada-indent-record-rel-type))
-
-                 ((eq (wisi-cache-token cache) 'WITH)
-                  (let ((type-col (current-column)))
-                    (wisi-goto-end-1 cache)
-                    (if (eq 'WITH (wisi-cache-token (wisi-backward-cache)))
-                        ;; 'with null record;' or 'with private;'
-                        (+ type-col ada-indent-broken)
-                      (+ type-col ada-indent-record-rel-type))))
-
-                 (t
-                  (+ (current-column) ada-indent-broken))
-                 ))
-
-               (generic_instantiation
-                ;; test/ada_mode-generic_instantiation.ads
-                ;; procedure Procedure_7 is
-                ;;   new Instance.Generic_Procedure (Integer, Function_1);
-                ;; indenting 'new'
-                (+ (current-column) ada-indent-broken))
-
-               (generic_renaming_declaration
-                ;; indenting keyword following 'generic'
-                (current-column))
-
-               (object_declaration
-                (cl-ecase (wisi-cache-token containing)
-                  (COLON
-                   ;; test/ada_mode-nominal.ads
-                   ;; Anon_Array_3 : array (1 .. 10)
-                   ;;   of Integer;
-                   ;; indenting 'of'
-                   (+ (current-indentation) ada-indent-broken))
-
-                  (COLON_EQUAL
-                   ;; test/indent.ads
-                   ;; C_S_Controls : constant
-                   ;;   CSCL_Type :=
-                   ;;     CSCL_Type'
-                   ;; indenting 'CSCL_Type'
-                   (+ (current-indentation) ada-indent-broken))
-
-                  (identifier_list
-                   ;; test/ada_mode-nominal.adb
-                   ;; Local_2 : constant Float
-                   ;;   := Local_1;
-                   (+ (current-indentation) ada-indent-broken))
-                  ))
-
-               (private_extension_declaration
-                ;; test/ada_mode-nominal.ads
-                ;; type Limited_Derived_Type_3 is abstract limited
-                ;;   new Private_Type_1 with private;
-                (+ (current-indentation) ada-indent-broken))
-
-               (private_type_declaration
-                ;; test/aspects.ads
-                ;; type Vector is tagged private
-                ;; with
-                ;; indenting 'with'
-                (current-indentation))
-
-               (qualified_expression
-                ;; test/ada_mode-nominal-child.ads
-                ;; Child_Obj_5 : constant Child_Type_1 :=
-                ;;   (Parent_Type_1'
-                ;;     (Parent_Element_1 => 1,
-                (ada-wisi-indent-cache ada-indent-broken containing))
-
-               (statement
-                (cl-case (wisi-cache-token containing)
-                  (label_opt
-                   (- (current-column) ada-indent-label))
-
-                  (t
-                   ;; test/ada_mode-nominal.adb
-                   ;; select
-                   ;;    delay 1.0;
-                   ;; then
-                   ;;    -- ...
-                   ;;   abort
-                   (ada-wisi-indent-cache ada-indent-broken cache))
-                  ))
-
-               ((subprogram_body subprogram_declaration 
subprogram_specification null_procedure_declaration)
-                (cl-ecase (wisi-cache-token cache)
-                  (OVERRIDING
-                   ;; indenting 'overriding' following 'not'
-                   (current-column))
-
-                  ((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
-                ;; test/adacore_9717_001.ads A_Long_Name
-                (+ (current-column) ada-indent-broken))
+                (t
+                 (cl-ecase (wisi-cache-nonterm containing)
+                   (aggregate
+                    ;; test/ada_mode-nominal-child.adb
+                    ;; return (Parent_Type_1
+                    ;;         with 1, 0.0, False);
+                    ;; indenting 'with'; containing is '('
+                    (+ (current-column) 1))
+
+                   (component_declaration
+                    ;; test/ada_mode-nominal.ads Record_Type_3 ':'
+                    (+ (current-column) ada-indent-broken))
+
+                   (entry_body
+                    ;; test/ada_mode-nominal.adb
+                    ;; entry E2
+                    ;;   (X : Integer)
+                    ;;   when Local_1 = 0 and not
+                    ;; indenting 'when'; containing is 'entry'
+                    (+ (current-column) ada-indent-broken))
+
+                   (formal_package_declaration
+                    ;; test/ada_mode-generic_package.ads
+                    ;; with package A_Package_7 is
+                    ;;   new Ada.Text_IO.Integer_IO (Num => 
Formal_Signed_Integer_Type);
+                    ;; indenting 'new'; containing is 'with'
+                    (+ (current-column) ada-indent-broken))
+
+                   ((full_type_declaration subtype_declaration)
+                    (while (not (memq (wisi-cache-token containing) '(TYPE 
SUBTYPE)))
+                      (setq containing (wisi-goto-containing containing)))
+
+                    (cond
+                     ((eq (wisi-cache-token cache) 'WITH)
+                      (let ((type-col (current-column))
+                            (null_private (save-excursion (wisi-goto-end-1 
cache)
+                                                          (eq 'WITH 
(wisi-cache-token (wisi-backward-cache))))))
+                        (cond
+                         ((eq 'aspect_specification_opt (wisi-cache-nonterm 
cache))
+                          ;; test/aspects.ads
+                          ;; subtype Integer_String is String
+                          ;;   with Dynamic_Predicate => Integer'Value 
(Integer_String) in Integer
+                          ;; indenting 'with'
+                          type-col)
+
+                         (null_private
+                          ;; 'with null record;' or 'with private;'
+                          ;; test/ada_mode-nominal.ads
+                          ;; type Limited_Derived_Type_3 is abstract limited 
new Private_Type_1
+                          ;;   with null record;
+                          ;; indenting 'with'; containing is 'is'
+                          (+ type-col ada-indent-broken))
+
+                         (t
+                          ;; test/ada_mode-nominal.ads
+                          ;; type Unconstrained_Array_Type_3 is array (Integer 
range <>, Standard.Character range <>)
+                          ;;   of Object_Access_Type_1;
+                          ;; indenting 'of'; containing is 'is'
+                          ;;
+                          ;; type Object_Access_Type_7
+                          ;;   is access all Integer;
+                          ;; indenting 'is'; containing is 'type'
+                          (+ type-col ada-indent-record-rel-type)))))
+
+                     (t
+                      ;; test/ada_mode-nominal.ads
+                      ;; type Limited_Derived_Type_2a is abstract limited new 
Private_Type_1
+                      ;;   with record
+                      ;; indenting 'with record'
+                      ;;
+                      ;; test/access_in_record.ads
+                      ;; type A
+                      ;;    is new Ada.Streams.Root_Stream_Type with record
+                      ;;
+                      ;; test/adacore_9717_001.ads A_Long_Name
+                      ;; subtype A_Long_Name
+                      ;;   is Ada.Text_Io.Count;
+                      ;; indenting 'is'
+                      (+ (current-column) ada-indent-broken))
+                     ))
+
+                   (generic_instantiation
+                    ;; test/ada_mode-generic_instantiation.ads
+                    ;; procedure Procedure_7 is
+                    ;;   new Instance.Generic_Procedure (Integer, Function_1);
+                    ;; indenting 'new'
+                    (+ (current-column) ada-indent-broken))
+
+                   (generic_renaming_declaration
+                    ;; indenting keyword following 'generic'
+                    (current-column))
+
+                   (object_declaration
+                    (cl-ecase (wisi-cache-token containing)
+                      (COLON
+                       ;; test/ada_mode-nominal.ads
+                       ;; Anon_Array_3 : array (1 .. 10)
+                       ;;   of Integer;
+                       ;; indenting 'of'
+                       (+ (current-indentation) ada-indent-broken))
+
+                      (COLON_EQUAL
+                       ;; test/indent.ads
+                       ;; C_S_Controls : constant
+                       ;;   CSCL_Type :=
+                       ;;     CSCL_Type'
+                       ;; indenting 'CSCL_Type'
+                       (+ (current-indentation) ada-indent-broken))
+
+                      (identifier_list
+                       ;; test/ada_mode-nominal.adb
+                       ;; Local_2 : constant Float
+                       ;;   := Local_1;
+                       (+ (current-indentation) ada-indent-broken))
+                      ))
+
+                   (private_extension_declaration
+                    ;; test/ada_mode-nominal.ads
+                    ;; type Limited_Derived_Type_3 is abstract limited
+                    ;;   new Private_Type_1 with private;
+                    (+ (current-indentation) ada-indent-broken))
 
-               ))))) ;; end statement-other
+                   (private_type_declaration
+                    ;; test/aspects.ads
+                    ;; type Vector is tagged private
+                    ;; with
+                    ;; indenting 'with'
+                    (current-indentation))
+
+                   (qualified_expression
+                    ;; test/ada_mode-nominal-child.ads
+                    ;; Child_Obj_5 : constant Child_Type_1 :=
+                    ;;   (Parent_Type_1'
+                    ;;     (Parent_Element_1 => 1,
+                    (ada-wisi-indent-cache ada-indent-broken containing))
+
+                   (statement
+                    (cl-case (wisi-cache-token containing)
+                      (label_opt
+                       (- (current-column) ada-indent-label))
+
+                      (t
+                       ;; test/ada_mode-nominal.adb
+                       ;; select
+                       ;;    delay 1.0;
+                       ;; then
+                       ;;    -- ...
+                       ;;   abort
+                       (ada-wisi-indent-cache ada-indent-broken cache))
+                      ))
+
+                   ((subprogram_body subprogram_declaration 
subprogram_specification null_procedure_declaration)
+                    (cl-ecase (wisi-cache-token cache)
+                      (IS
+                       ;; test/ada_mode-nominal.ads
+                       ;; procedure Procedure_1d
+                       ;;   (Item   : in out Parent_Type_1;
+                       ;;    Item_1 : in     Character;
+                       ;;    Item_2 : out    Character)
+                       ;;   is null;
+                       ;; indenting 'is'
+                       (+ (current-column) ada-indent-broken))
+
+                      (OVERRIDING
+                       ;; indenting 'overriding' following 'not'
+                       (current-column))
+
+                      ((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))
+                      ))
+
+                   ))))
+             )))) ;; end statement-other
 
        (statement-start
         (cond
@@ -728,398 +755,437 @@ point must be on CACHE. PREV-TOKEN is the token before 
the one being indented."
 (defun ada-wisi-after-cache ()
   "Point is at indentation, not before a cached token. Find previous
 cached token, return new indentation for point."
-  (let ((start (point))
-       (prev-token (save-excursion (wisi-backward-token)))
-       (cache (wisi-backward-cache)))
+  (save-excursion
+    (let ((start (point))
+         (prev-token (save-excursion (wisi-backward-token)))
+         (cache (wisi-backward-cache)))
 
-    (cond
-     ((not cache) ;; bob
+      (cond
+       ((not cache) ;; bob
        0)
 
-     (t
-      (while (memq (wisi-cache-class cache) '(keyword name name-paren type))
-       ;; not useful for indenting
-       (setq cache (wisi-backward-cache)))
-
-      (cl-ecase (wisi-cache-class cache)
-       (block-end
-        ;; indenting block/subprogram name after 'end'
-        (wisi-indent-current ada-indent-broken))
+       (t
+       (while (memq (wisi-cache-class cache) '(keyword name name-paren type))
+         ;; not useful for indenting
+         (setq cache (wisi-backward-cache)))
 
-       (block-middle
-        (cl-case (wisi-cache-token cache)
-          (IS
-           (cl-case (wisi-cache-nonterm cache)
-             (case_statement
-              ;; between 'case .. is' and first 'when'; most likely a comment
-              (ada-wisi-indent-containing 0 cache t))
+       (cl-ecase (wisi-cache-class cache)
+         (block-end
+          ;; indenting block/subprogram name after 'end'
+          (wisi-indent-current ada-indent-broken))
 
-             (t
-              (+ (ada-wisi-indent-containing ada-indent cache t)))
-             ))
+         (block-middle
+          (cl-case (wisi-cache-token cache)
+            (IS
+             (cl-case (wisi-cache-nonterm cache)
+               (case_statement
+                ;; between 'case .. is' and first 'when'; most likely a comment
+                (ada-wisi-indent-containing 0 cache t))
 
-          ((THEN ELSE)
-           (let ((indent
-                  (cl-ecase (wisi-cache-nonterm (wisi-get-containing-cache 
cache))
-                    ((statement if_statement elsif_statement_item) ada-indent)
-                    ((if_expression elsif_expression_item) 
ada-indent-broken))))
-             (ada-wisi-indent-containing indent cache t)))
+               (t
+                (+ (ada-wisi-indent-containing ada-indent cache t)))
+               ))
 
-          (WHEN
-           ;; between 'when' and '=>'
-           (+ (current-column) ada-indent-broken))
+            ((THEN ELSE)
+             ;;
+             ;; test/ada_mode-conditional_expressions.adb
+             ;; K3 : Integer := (if
+             ;;                    J > 42
+             ;;                  then
+             ;;                    -1
+             ;;                  else
+             ;;                    +1);
+             ;; indenting -1, +1
+             (let ((indent
+                    (cl-ecase (wisi-cache-nonterm (wisi-get-containing-cache 
cache))
+                      ((statement if_statement elsif_statement_item) 
ada-indent)
+                      ((if_expression elsif_expression_item) 
ada-indent-broken))))
+               (ada-wisi-indent-containing indent cache t)))
 
-          (t
-           ;; block-middle keyword may not be on separate line:
-           ;;       function Create (Model   : in Integer;
-           ;;                        Context : in String) return String is
-           (ada-wisi-indent-containing ada-indent cache nil))
-          ))
+            (WHEN
+             ;; between 'when' and '=>'
+             (+ (current-column) ada-indent-broken))
 
-       (block-start
-        (cl-case (wisi-cache-nonterm cache)
-          (exception_handler
-           ;; between 'when' and '=>'
-           (+ (current-column) ada-indent-broken))
+            (t
+             ;; block-middle keyword may not be on separate line:
+             ;;       function Create (Model   : in Integer;
+             ;;                        Context : in String) return String is
+             (ada-wisi-indent-containing ada-indent cache nil))
+            ))
 
-          (if_expression
-           (ada-wisi-indent-containing ada-indent-broken cache nil))
+         (block-start
+          (cl-case (wisi-cache-nonterm cache)
+            (exception_handler
+             ;; between 'when' and '=>'
+             (+ (current-column) ada-indent-broken))
 
-          (select_alternative
-           (ada-wisi-indent-containing (+ ada-indent-when ada-indent-broken) 
cache nil))
+            (if_expression
+             (ada-wisi-indent-containing ada-indent-broken cache nil))
 
-          (t ;; other; normal block statement
-           (ada-wisi-indent-cache ada-indent cache))
-          ))
+            (select_alternative
+             (ada-wisi-indent-containing (+ ada-indent-when ada-indent-broken) 
cache nil))
 
-       (close-paren
-        ;; actual_parameter_part: test/ada_mode-nominal.adb
-        ;; return 1.0 +
-        ;;   Foo (Bar) + -- multi-line expression that happens to have a cache 
at a line start
-        ;;   12;
-        ;; indenting '12'; don't indent relative to containing function name
-        ;;
-        ;; attribute_designator: test/ada_mode-nominal.adb
-        ;; 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)))
-        (ada-wisi-indent-containing ada-indent-broken cache nil))
-
-       (list-break
-        (ada-wisi-indent-list-break cache prev-token))
+            (t ;; other; normal block statement
+             (ada-wisi-indent-cache ada-indent cache))
+            ))
 
-       (open-paren
-        ;; 1) A parenthesized expression, or the first item in an aggregate:
-        ;;
-        ;;    (foo +
-        ;;       bar)
-        ;;    (foo =>
-        ;;       bar)
-        ;;
-        ;;     we are indenting 'bar'
-        ;;
-        ;; 2) A parenthesized expression, or the first item in an
-        ;;    aggregate, and there is whitespace between
-        ;;    ( and the first token:
-        ;;
-        ;; test/ada_mode-parens.adb
-        ;; Local_9 : String := (
-        ;;                      "123"
-        ;;
-        ;; 3) A parenthesized expression, or the first item in an
-        ;;    aggregate, and there is a comment between
-        ;;    ( and the first token:
-        ;;
-        ;; test/ada_mode-nominal.adb
-        ;; A :=
-        ;;   (
-        ;;    -- 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
-          (if start-is-comment
-              (skip-syntax-forward " >"); point is now on comment
-            (forward-comment (point-max)); point is now on first token
-            )
-          (if (= (point) start)
-              ;; case 2) or 3)
-              (1+ paren-column)
-            ;; 1)
-            (+ paren-column 1 ada-indent-broken))))
-
-       ((return-1 return-2)
-        ;; test/ada_mode-nominal.adb
-        ;; function Function_Access_1
-        ;;   (A_Param : in Float)
-        ;;   return
-        ;;     Standard.Float
-        ;; indenting 'Standard.Float'
-        ;;
-        ;; test/ada_mode-expression_functions.ads
-        ;; function Square (A : in Float) return Float
-        ;;   is (A * A);
-        ;; indenting 'is'
-        ;;
-        ;; test/ada_mode-nominal.ads
-        ;; function Function_2g
-        ;;   (Param : in Private_Type_1)
-        ;;   return Float
-        ;;   is abstract;
-        ;; indenting 'is'
-        (back-to-indentation)
-        (+ (current-column) ada-indent-broken))
+         (close-paren
+          ;; actual_parameter_part: test/ada_mode-nominal.adb
+          ;; return 1.0 +
+          ;;   Foo (Bar) + -- multi-line expression that happens to have a 
cache at a line start
+          ;;   12;
+          ;; indenting '12'; don't indent relative to containing function name
+          ;;
+          ;; attribute_designator: test/ada_mode-nominal.adb
+          ;; 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)))
+          (ada-wisi-indent-containing ada-indent-broken cache nil))
+
+         (list-break
+          (ada-wisi-indent-list-break cache prev-token))
+
+         (open-paren
+          ;; 1) A parenthesized expression, or the first item in an aggregate:
+          ;;
+          ;;    (foo +
+          ;;       bar)
+          ;;    (foo =>
+          ;;       bar)
+          ;;
+          ;;     we are indenting 'bar'
+          ;;
+          ;; 2) A parenthesized expression, or the first item in an
+          ;;    aggregate, and there is whitespace between
+          ;;    ( and the first token:
+          ;;
+          ;; test/ada_mode-parens.adb
+          ;; Local_9 : String := (
+          ;;                      "123"
+          ;;
+          ;; 3) A parenthesized expression, or the first item in an
+          ;;    aggregate, and there is a comment between
+          ;;    ( and the first token:
+          ;;
+          ;; test/ada_mode-nominal.adb
+          ;; A :=
+          ;;   (
+          ;;    -- 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); point is now after paren
+            (if start-is-comment
+                (skip-syntax-forward " >"); point is now on comment
+              (forward-comment (point-max)); point is now on first token
+              )
+            (if (= (point) start)
+                ;; case 2) or 3)
+                (1+ paren-column)
+              ;; 1)
+              (+ paren-column 1 ada-indent-broken))))
+
+         ((return-1 return-2)
+          ;; test/ada_mode-nominal.adb
+          ;; function Function_Access_1
+          ;;   (A_Param : in Float)
+          ;;   return
+          ;;     Standard.Float
+          ;; indenting 'Standard.Float'
+          ;;
+          ;; test/ada_mode-expression_functions.ads
+          ;; function Square (A : in Float) return Float
+          ;;   is (A * A);
+          ;; indenting 'is'
+          ;;
+          ;; test/ada_mode-nominal.ads
+          ;; function Function_2g
+          ;;   (Param : in Private_Type_1)
+          ;;   return Float
+          ;;   is abstract;
+          ;; indenting 'is'
+          (back-to-indentation)
+          (+ (current-column) ada-indent-broken))
+
+         (statement-end
+          (ada-wisi-indent-containing 0 cache nil))
+
+         (statement-other
+          (cl-ecase (wisi-cache-token cache)
+            (ABORT
+             ;; select
+             ;;    Please_Abort;
+             ;; then
+             ;;   abort
+             ;;    -- 'abort' indented with ada-indent-broken, since this is 
part
+             ;;    Titi;
+             (ada-wisi-indent-containing ada-indent cache))
+
+            ;; test/subdir/ada_mode-separate_task_body.adb
+            ((COLON COLON_EQUAL)
+             ;; Local_3 : constant Float :=
+             ;;   Local_2;
+             ;;
+             ;; test/ada_mode-nominal.ads
+             ;; type Record_Type_3 (Discriminant_1 : access Integer) is tagged 
record
+             ;;    Component_1 : Integer; -- end 2
+             ;;    Component_2 :
+             ;;      Integer;
+             ;; indenting 'Integer'; containing is ';'
+             (ada-wisi-indent-cache ada-indent-broken cache))
 
-       (statement-end
-        (ada-wisi-indent-containing 0 cache nil))
+            (COMMA
+             (cl-ecase (wisi-cache-nonterm cache)
+               (name_list
+                (cl-ecase (wisi-cache-nonterm (wisi-get-containing-cache 
cache))
+                  (use_clause
+                   ;; test/with_use1.adb
+                   (ada-wisi-indent-containing ada-indent-use cache))
+
+                  (with_clause
+                   ;; test/ada_mode-nominal.ads
+                   ;; limited private with Ada.Strings.Bounded,
+                   ;;   --EMACSCMD:(test-face "Ada.Containers" 'default)
+                   ;;   Ada.Containers;
+                   ;;
+                   ;; test/with_use1.adb
+                   (ada-wisi-indent-containing ada-indent-with cache))
+                  ))
+               ))
 
-       (statement-other
-        (cl-ecase (wisi-cache-token cache)
-          (ABORT
-           ;; select
-           ;;    Please_Abort;
-           ;; then
-           ;;   abort
-           ;;    -- 'abort' indented with ada-indent-broken, since this is part
-           ;;    Titi;
-           (ada-wisi-indent-containing ada-indent cache))
-
-           ;; test/subdir/ada_mode-separate_task_body.adb
-          ((COLON COLON_EQUAL)
-           ;; Local_3 : constant Float :=
-           ;;   Local_2;
-           (ada-wisi-indent-cache ada-indent-broken cache))
-
-          (COMMA
-           (cl-ecase (wisi-cache-nonterm cache)
-             (name_list
-              (cl-ecase (wisi-cache-nonterm (wisi-get-containing-cache cache))
-                (use_clause
-                 ;; test/with_use1.adb
-                 (ada-wisi-indent-containing ada-indent-use cache))
-
-                (with_clause
-                 ;; test/ada_mode-nominal.ads
-                 ;; limited private with Ada.Strings.Bounded,
-                 ;;   --EMACSCMD:(test-face "Ada.Containers" 'default)
-                 ;;   Ada.Containers;
-                 ;;
-                 ;; test/with_use1.adb
-                 (ada-wisi-indent-containing ada-indent-with cache))
-                ))
-             ))
-
-          (ELSIF
-           ;; test/g-comlin.adb
-           ;; elsif Index_Switches + Max_Length <= Switches'Last
-           ;;   and then Switches (Index_Switches + Max_Length) = '?'
-           (ada-wisi-indent-cache ada-indent-broken cache))
-
-          (EQUAL_GREATER
-           (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)))
-
-             (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))
+            (ELSIF
+             ;; test/g-comlin.adb
+             ;; elsif Index_Switches + Max_Length <= Switches'Last
+             ;;   and then Switches (Index_Switches + Max_Length) = '?'
+             (ada-wisi-indent-cache ada-indent-broken cache))
 
-               (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)))
-                  ))
+            (EQUAL_GREATER
+             (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)))
+
+               (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'
+                  ;;
+                  ;; test/ada_mode-parens.adb
+                  ;; Local_13 : Local_11_Type
+                  ;;   := (Integer'(1),
+                  ;;       Integer'(2));
+                  ;; indenting 'Integer'; point on '(Integer'
+                  (+ (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))
 
-               (association_list
-                (cl-ecase (save-excursion (wisi-cache-token 
(wisi-goto-containing cache nil)))
-                  (COMMA
-                   (ada-wisi-indent-containing (* 2 ada-indent-broken) cache))
-                  ))
+                 (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))
+             (cl-ecase (wisi-cache-nonterm cache)
+               (full_type_declaration
+                ;; ada_mode/nominal.ads
+                ;; type Limited_Derived_Type_1a is abstract limited new
+                ;;    Private_Type_1 with record
+                ;;       Component_1 : Integer;
+                ;; indenting 'Private_Type_1'; look for 'record'
+                (let ((type-column (current-column)))
+                  (goto-char start)
+                  (if (wisi-forward-find-token 'RECORD (line-end-position) t)
+                      ;; 'record' on line being indented
+                      (+ type-column ada-indent-record-rel-type)
+                    ;; 'record' on later line
+                    (+ type-column ada-indent-broken))))
+
+               ((formal_type_declaration
+                 ;; test/ada_mode-generic_package.ads
+                 ;; type Synchronized_Formal_Derived_Type is abstract 
synchronized new Formal_Private_Type and Interface_Type
+                 ;;   with private;
+
+                 subtype_declaration)
+                ;; test/ada_mode-nominal.ads
+                ;;    subtype Subtype_2 is Signed_Integer_Type range 10 ..
+                ;;      20;
 
-               ((case_expression_alternative case_statement_alternative 
exception_handler)
-                ;; containing is 'when'
-                (+ (current-column) ada-indent))
+                (+ (current-column) ada-indent-broken))
 
-               (generic_renaming_declaration
-                ;; not indenting keyword following 'generic'
+               (null_procedure_declaration
+                ;; ada_mode-nominal.ads
+                ;; procedure Procedure_3b is
+                ;;   null;
+                ;; indenting null
                 (+ (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))
+               ))
 
+            (LEFT_PAREN
+             ;; test/indent.ads
+             ;; C_S_Controls : constant
+             ;;   CSCL_Type :=
+             ;;     CSCL_Type'
+             ;;       (
+             ;;        1 =>
+             (+ (current-column) 1))
+
+            (NEW
+             ;; 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))
+
+            (OF
+             ;; ada_mode-nominal.ads
+             ;; Anon_Array_2 : array (1 .. 10) of
+             ;;   Integer;
+             (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))
-           (cl-ecase (wisi-cache-nonterm cache)
-             (full_type_declaration
-              ;; ada_mode/nominal.ads
-              ;; type Limited_Derived_Type_1a is abstract limited new
-              ;;    Private_Type_1 with record
-              ;;       Component_1 : Integer;
-              ;; indenting 'Private_Type_1'; look for 'record'
-              (let ((type-column (current-column)))
-                (goto-char start)
-                (if (wisi-forward-find-token 'RECORD (line-end-position) t)
-                    ;; 'record' on line being indented
-                    (+ type-column ada-indent-record-rel-type)
-                  ;; 'record' on later line
-                  (+ type-column ada-indent-broken))))
-
-             ((formal_type_declaration
-               ;; test/ada_mode-generic_package.ads
-               ;; type Synchronized_Formal_Derived_Type is abstract 
synchronized new Formal_Private_Type and Interface_Type
-               ;;   with private;
-
-               subtype_declaration)
-               ;; test/ada_mode-nominal.ads
-               ;;    subtype Subtype_2 is Signed_Integer_Type range 10 ..
-               ;;      20;
-
-              (+ (current-column) ada-indent-broken))
-             ))
-
-          (LEFT_PAREN
-           ;; test/indent.ads
-           ;; C_S_Controls : constant
-           ;;   CSCL_Type :=
-           ;;     CSCL_Type'
-           ;;       (
-           ;;        1 =>
-           (+ (current-column) 1))
-
-          (NEW
-           ;; 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))
-
-          (OF
-           ;; ada_mode-nominal.ads
-           ;; Anon_Array_2 : array (1 .. 10) of
-           ;;   Integer;
-           (ada-wisi-indent-containing ada-indent-broken cache))
+            (WHEN
+             ;; test/ada_mode-parens.adb
+             ;; exit when A.all
+             ;;   or else B.all
+             (ada-wisi-indent-containing ada-indent-broken cache))
 
-          (WHEN
-           ;; test/ada_mode-parens.adb
-           ;; exit when A.all
-           ;;   or else B.all
-           (ada-wisi-indent-containing ada-indent-broken cache))
-
-          (WITH
-           (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'; point is on 'with'
-              (+ (current-indentation) ada-indent-broken))
-             ))
-
-          ;; otherwise just hanging
-          ((ACCEPT FUNCTION PROCEDURE RENAMES)
-           (back-to-indentation)
-           (+ (current-column) ada-indent-broken))
+            (WITH
+             (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'; point is on 'with'
+                (+ (current-indentation) ada-indent-broken))
+               ))
 
-       (statement-start
-        (cl-case (wisi-cache-token cache)
-          (WITH ;; with_clause
-           (+ (current-column) ada-indent-with))
+            ;; otherwise just hanging
+            ((ACCEPT FUNCTION PROCEDURE RENAMES)
+             (back-to-indentation)
+             (+ (current-column) ada-indent-broken))
+
+            ))
 
-          (label_opt
-           ;; comment after label
-           (+ (current-column) (- ada-indent-label)))
+         (statement-start
+          (cl-case (wisi-cache-token cache)
+            (WITH ;; with_clause
+             (+ (current-column) ada-indent-with))
 
-          (t
-           ;; procedure Procedure_8
-           ;;   is new Instance.Generic_Procedure (Integer, Function_1);
-           ;; indenting 'is'; hanging
-           ;;      (+ (current-column) ada-indent-broken))
-           (ada-wisi-indent-cache ada-indent-broken cache))
-          ))
-       )))
-    ))
+            (label_opt
+             ;; comment after label
+             (+ (current-column) (- ada-indent-label)))
+
+            (t
+             ;; procedure Procedure_8
+             ;;   is new Instance.Generic_Procedure (Integer, Function_1);
+             ;; indenting 'is'; hanging
+             ;;
+             ;; test/ada_mode-conditional_expressions.adb
+             ;; K3 : Integer := (if
+             ;;                    J > 42
+             ;;                  then
+             ;;                    -1
+             ;;                  else
+             ;;                    +1);
+             ;; indenting J
+             (ada-wisi-indent-cache ada-indent-broken cache))
+            ))
+         )))
+      )))
 
 (defun ada-wisi-comment ()
   "Compute indentation of a comment. For `wisi-indent-calculate-functions'."
@@ -1212,37 +1278,45 @@ cached token, return new indentation for point."
 (defun ada-wisi-goto-subunit-name ()
   "For `ada-goto-subunit-name'."
   (wisi-validate-cache (point-max))
-  (let ((end nil)
-       cache
-       (name-pos nil))
-    (save-excursion
-      ;; move to top declaration
-      (goto-char (point-min))
-      (setq cache (or (wisi-get-cache (point))
-                     (wisi-forward-cache)))
-      (while (not end)
-       (cl-case (wisi-cache-nonterm cache)
-         ((pragma use_clause with_clause)
-          (wisi-goto-end-1 cache)
-          (setq cache (wisi-forward-cache)))
-         (t
-          ;; start of compilation unit
-          (setq end t))
-         ))
-      (when (eq (wisi-cache-nonterm cache) 'subunit)
-       (wisi-forward-find-token '(IDENTIFIER name selected_component) 
(point-max)) ;; parent name
-       (wisi-forward-token)
-       (wisi-forward-find-token '(IDENTIFIER name selected_component) 
(point-max)) ;; subunit name
-       (setq name-pos (point)))
-      )
-    (when name-pos
-      (goto-char name-pos))
-    ))
+  (if (not (> wisi-cache-max (point)))
+      (progn
+       (message "parse failed; can't goto subunit name")
+       nil)
+
+    (let ((end nil)
+         cache
+         (name-pos nil))
+      (save-excursion
+       ;; move to top declaration
+       (goto-char (point-min))
+       (setq cache (or (wisi-get-cache (point))
+                       (wisi-forward-cache)))
+       (while (not end)
+         (cl-case (wisi-cache-nonterm cache)
+           ((pragma use_clause with_clause)
+            (wisi-goto-end-1 cache)
+            (setq cache (wisi-forward-cache)))
+           (t
+            ;; start of compilation unit
+            (setq end t))
+           ))
+       (when (eq (wisi-cache-nonterm cache) 'subunit)
+         (wisi-forward-find-class 'name (point-max)) ;; parent name
+         (wisi-forward-token)
+         (wisi-forward-find-class 'name (point-max)) ;; subunit name
+         (setq name-pos (point)))
+       )
+      (when name-pos
+       (goto-char name-pos))
+      )))
 
 (defun ada-wisi-goto-declaration-start ()
   "For `ada-goto-declaration-start', which see.
 Also return cache at start."
   (wisi-validate-cache (point))
+  (unless (> wisi-cache-max (point))
+    (error "parse failed; can't goto declarative-region-start"))
+
   (let ((cache (wisi-get-cache (point)))
        (done nil))
     (unless cache
@@ -1284,6 +1358,9 @@ Also return cache at start."
 (defun ada-wisi-goto-declarative-region-start ()
   "For `ada-goto-declarative-region-start', which see."
   (wisi-validate-cache (point))
+  (unless (> wisi-cache-max (point))
+    (error "parse failed; can't goto declarative-region-start"))
+
   (let ((done nil)
        (first t)
        (cache
@@ -1299,7 +1376,7 @@ Also return cache at start."
     (while (not done)
       (if (ada-wisi-declarative-region-start-p cache)
          (progn
-           (wisi-forward-token t)
+           (wisi-forward-token)
            (setq done t))
        (cl-case (wisi-cache-class cache)
          ((block-middle block-end)
@@ -1382,6 +1459,9 @@ Also return cache at start."
 (defun ada-wisi-scan-paramlist (begin end)
   "For `ada-scan-paramlist'."
   (wisi-validate-cache end)
+  (when (< wisi-cache-max end)
+    (error "parse failed; can't scan paramlist"))
+
   (goto-char begin)
   (let (token
        text
@@ -1404,7 +1484,7 @@ Also return cache at start."
     (while (not done)
       (let ((token-text (wisi-forward-token)))
        (setq token (nth 0 token-text))
-       (setq text  (nth 1 token-text)))
+       (setq text  (wisi-token-text token-text)))
       (cond
        ((equal token 'COMMA) nil);; multiple identifiers
 
@@ -1493,9 +1573,9 @@ Also return cache at start."
   (wisi-validate-cache (point))
   (save-excursion
     (let ((result nil)
-         (cache (ada-wisi-goto-declaration-start)))
+         (cache (condition-case nil (ada-wisi-goto-declaration-start) (error 
nil))))
       (if (null cache)
-         ;; bob
+         ;; bob or failed parse
          (setq result "")
 
        (cl-case (wisi-cache-nonterm cache)
@@ -1549,6 +1629,91 @@ Also return cache at start."
   (define-key ada-mode-map "\M-k" 'wisi-show-token)
   )
 
+(defun ada-wisi-number-p (token-text)
+  "Return t if TOKEN-TEXT plus text after point matches the
+syntax for a real literal; otherwise nil. point is after
+TOKEN-TEXT; move point to just past token."
+  ;; test in test/wisi/ada-number-literal.input
+  ;;
+  ;; starts with a simple integer
+  (let ((end (point)))
+    ;; this first test must be very fast; it is executed for every token
+    (when (and (memq (aref token-text 0) '(?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9))
+              (string-match "^[0-9]+" token-text))
+      (cond
+       ((= (char-after) ?#)
+       ;; based number
+       (forward-char 1)
+       (if (not (looking-at "[0-9a-fA-F]+"))
+           (progn (goto-char end) nil)
+
+         (goto-char (match-end 0))
+         (cond
+          ((= (char-after) ?#)
+           ;; based integer
+           (forward-char 1)
+           t)
+
+          ((= (char-after) ?.)
+           ;; based real?
+           (forward-char 1)
+           (if (not (looking-at "[0-9a-fA-F]+"))
+               (progn (goto-char end) nil)
+
+             (goto-char (match-end 0))
+
+             (if (not (= (char-after) ?#))
+                 (progn (goto-char end) nil)
+
+               (forward-char 1)
+               (setq end (point))
+
+               (if (not (memq (char-after) '(?e ?E)))
+                   ;; based real, no exponent
+                   t
+
+                 ;; exponent?
+                 (forward-char 1)
+                 (if (not (looking-at "[+-]?[0-9]+"))
+                     (progn (goto-char end) t)
+
+                   (goto-char (match-end 0))
+                   t
+               )))))
+
+          (t
+           ;; missing trailing #
+           (goto-char end) nil)
+          )))
+
+       ((= (char-after) ?.)
+       ;; decimal real number?
+       (forward-char 1)
+       (if (not (looking-at "[0-9]+"))
+           ;; decimal integer
+           (progn (goto-char end) t)
+
+         (setq end (goto-char (match-end 0)))
+
+         (if (not (memq (char-after) '(?e ?E)))
+             ;; decimal real, no exponent
+             t
+
+           ;; exponent?
+           (forward-char 1)
+           (if (not (looking-at "[+-]?[0-9]+"))
+               (progn (goto-char end) t)
+
+             (goto-char (match-end 0))
+             t
+             ))))
+
+       (t
+       ;; just an integer
+       t)
+       ))
+    ))
+
 (defun ada-wisi-setup ()
   "Set up a buffer for parsing Ada files with wisi."
   (wisi-setup '(ada-wisi-comment
@@ -1564,64 +1729,6 @@ Also return cache at start."
   (setq wisi-string-quote-escape-doubled t)
 
   (set (make-local-variable 'comment-indent-function) 'wisi-comment-indent)
-
-  (add-hook 'hack-local-variables-hook 'ada-wisi-post-local-vars nil t)
-  )
-
-(defun ada-wisi-face ()
-  "Return face for token in match-data 2"
-  (let (cache)
-    (when (< (point-max) ada-wisi-font-lock-size-threshold)
-      (wisi-validate-cache (line-end-position)))
-
-    (if        (setq cache (wisi-get-cache (match-beginning 2)))
-       (wisi-cache-face cache)
-      'default)
-    ))
-
-(defun ada-wisi-post-local-vars ()
-  ;; run after file local variables are read because font-lock-add-keywords
-  ;; evaluates font-lock-defaults, which depends on ada-language-version.
-  ;;
-  ;; use parse results to distinguish difficult cases, but don't
-  ;; require parse just for font-lock
-  ;;
-  ;; name is not found if on next line
-  (font-lock-add-keywords nil
-   (list
-    (list
-     "\\<\\(of[ \t]+reverse\\)\\>"  ;; following word is object
-     '(1 font-lock-keyword-face)
-     )
-    (list
-     (concat
-      "\\<\\("
-      "aliased[ \t]+not[ \t]+null[ \t]+access\\|"
-      "aliased[ \t]+not[ \t]+null\\|"
-      "return[ \t]+access[ \t]+constant\\|"
-      "return[ \t]+access"
-      "\\)\\>[ \t]*"
-      ada-name-regexp "?")
-     '(1 font-lock-keyword-face)
-     '(2 font-lock-type-face nil t)
-     )
-    (list
-     (concat
-      "\\<\\("
-      "aliased\\|"
-      "and\\|"
-      "of\\|"
-      "new\\|"
-      "renames\\|"
-      "return"
-      "\\)\\>[ \t]*"
-      ada-name-regexp "?")
-     '(1 font-lock-keyword-face)
-     '(2 (ada-wisi-face) nil t)
-     ))
-   nil ;; add at start of list, so these have precedence
-   )
-
   )
 
 (add-hook 'ada-mode-hook 'ada-wisi-setup)
diff --git a/packages/ada-mode/gnat-core.el b/packages/ada-mode/gnat-core.el
index a9d79ea..287bad4 100644
--- a/packages/ada-mode/gnat-core.el
+++ b/packages/ada-mode/gnat-core.el
@@ -128,14 +128,14 @@ Uses 'gnat list'.  Returns new (SRC-DIRS PRJ-DIRS)."
          (forward-line 1)
          (while (not (looking-at "^$")) ; terminate on blank line
            (back-to-indentation) ; skip whitespace forward
-            (cl-pushnew (if (looking-at "<Current_Directory>")
-                             (directory-file-name default-directory)
-                           (expand-file-name ; Canonicalize path part.
-                           (directory-file-name
-                            (buffer-substring-no-properties
-                              (point) (point-at-eol)))))
-                        src-dirs
-                        :test #'equal)
+            (cl-pushnew
+            (if (looking-at "<Current_Directory>")
+                (directory-file-name default-directory)
+              (expand-file-name ; Canonicalize path part.
+               (directory-file-name
+                (buffer-substring-no-properties (point) (point-at-eol)))))
+            src-dirs
+            :test #'equal)
            (forward-line 1))
 
          ;; Project path
@@ -149,8 +149,7 @@ Uses 'gnat list'.  Returns new (SRC-DIRS PRJ-DIRS)."
            (if (looking-at "<Current_Directory>")
                 (cl-pushnew "." prj-dirs :test #'equal)
               (let ((f (expand-file-name
-                        (buffer-substring-no-properties
-                         (point) (point-at-eol)))))
+                        (buffer-substring-no-properties (point) 
(point-at-eol)))))
                 (cl-pushnew f prj-dirs :test #'equal)
                 (cl-pushnew f src-dirs :test #'equal)))
            (forward-line 1))
@@ -173,7 +172,7 @@ Uses 'gnat list'.  Returns new (SRC-DIRS PRJ-DIRS)."
     ;; known".
     ;; Using 'require' at top level gives the wrong default ada-xref-tool
     (cl-ecase (ada-prj-get 'xref_tool project)
-      ((gnat gnat_inspect)
+      (gnat
        (let ((res (gnat-get-paths-1 src-dirs prj-dirs)))
         (setq src-dirs (car res))
         (setq prj-dirs (cadr res))))
diff --git a/packages/ada-mode/gpr-grammar-wy.el 
b/packages/ada-mode/gpr-grammar-wy.el
index 3cefbb1..cd6c4d6 100644
--- a/packages/ada-mode/gpr-grammar-wy.el
+++ b/packages/ada-mode/gpr-grammar-wy.el
@@ -77,16 +77,16 @@
      ((aggregate
        ((LEFT_PAREN string_list RIGHT_PAREN )
         (progn
-        (wisi-statement-action 1 'open-paren 3 'close-paren)
+        (wisi-statement-action [1 open-paren 3 close-paren])
         (wisi-containing-action 1 2))))
       (attribute_declaration
        ((FOR IDENTIFIER USE expression SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'statement-other 5 
'statement-end)
+        (wisi-statement-action [1 statement-start 3 statement-other 5 
statement-end])
         (wisi-containing-action 3 4)))
        ((FOR IDENTIFIER LEFT_PAREN STRING_LITERAL RIGHT_PAREN USE expression 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'open-paren 5 'close-paren 
6 'statement-other 8 'statement-end)
+        (wisi-statement-action [1 statement-start 3 open-paren 5 close-paren 6 
statement-other 8 statement-end])
         (wisi-containing-action 6 7))))
       (attribute_prefix
        ((PROJECT ))
@@ -94,16 +94,16 @@
       (attribute_reference
        ((attribute_prefix QUOTE IDENTIFIER ))
        ((attribute_prefix QUOTE IDENTIFIER LEFT_PAREN STRING_LITERAL 
RIGHT_PAREN )
-        (wisi-statement-action 4 'open-paren 6 'close-paren)))
+        (wisi-statement-action [4 open-paren 6 close-paren])))
       (case_statement
        ((CASE name IS case_items END CASE SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'block-start 5 'block-end 
7 'statement-end)
+        (wisi-statement-action [1 statement-start 3 block-start 5 block-end 7 
statement-end])
         (wisi-containing-action 3 4))))
       (case_item
        ((WHEN discrete_choice_list EQUAL_GREATER declarative_items )
         (progn
-        (wisi-statement-action 1 'block-middle 3 'block-start)
+        (wisi-statement-action [1 block-middle 3 block-start])
         (wisi-containing-action 3 4))))
       (case_items
        (())
@@ -152,7 +152,7 @@
       (package_spec
        ((PACKAGE identifier_opt IS simple_declarative_items END identifier_opt 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'block-start 5 'block-end 
7 'statement-end)
+        (wisi-statement-action [1 statement-start 3 block-start 5 block-end 7 
statement-end])
         (wisi-containing-action 3 4))))
       (project_qualifier_opt
        (())
@@ -165,16 +165,16 @@
       (simple_declarative_item
        ((IDENTIFIER COLON_EQUALS expression SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 4 'statement-end)
+        (wisi-statement-action [1 statement-start 4 statement-end])
         (wisi-containing-action 1 3)))
        ((IDENTIFIER COLON IDENTIFIER COLON_EQUALS expression SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 6 'statement-end)
+        (wisi-statement-action [1 statement-start 6 statement-end])
         (wisi-containing-action 1 5)))
        ((attribute_declaration ))
        ((case_statement ))
        ((NULL SEMICOLON )
-        (wisi-statement-action 1 'statement-start 2 'statement-end)))
+        (wisi-statement-action [1 statement-start 2 statement-end])))
       (simple_declarative_items
        (())
        ((simple_declarative_item ))
@@ -182,7 +182,7 @@
       (simple_project_declaration
        ((PROJECT identifier_opt IS declarative_items END identifier_opt 
SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 3 'block-start 5 'block-end 
7 'statement-end)
+        (wisi-statement-action [1 statement-start 3 block-start 5 block-end 7 
statement-end])
         (wisi-containing-action 3 4))))
       (string_expression
        ((string_primary )))
@@ -195,7 +195,7 @@
        ((expression ))
        ((string_list COMMA expression )
         (progn
-        (wisi-statement-action 2 'list-break)
+        (wisi-statement-action [2 list-break])
         (wisi-containing-action 2 3))))
       (term
        ((string_expression ))
@@ -204,7 +204,7 @@
       (typed_string_declaration
        ((TYPE IDENTIFIER IS aggregate SEMICOLON )
         (progn
-        (wisi-statement-action 1 'statement-start 5 'statement-end)
+        (wisi-statement-action [1 statement-start 5 statement-end])
         (wisi-containing-action 1 4))))
       (with_clause
        ((WITH string_list SEMICOLON ))))
diff --git a/packages/ada-mode/gpr-mode.el b/packages/ada-mode/gpr-mode.el
index 1bf11c8..798964a 100644
--- a/packages/ada-mode/gpr-mode.el
+++ b/packages/ada-mode/gpr-mode.el
@@ -215,7 +215,6 @@ of the package or project point is in or just after, or 
nil.")
   ;; FIXME: need dispatching kill single session
   (cl-ecase ada-xref-tool
     (gnat_xref nil)
-    (gnat_inspect (gnat-inspect-kill-all-sessions))
     (gpr_query (gpr-query-kill-all-sessions))
     )
   (ada-parse-prj-file (or file (buffer-file-name)))
diff --git a/packages/ada-mode/gpr-query.el b/packages/ada-mode/gpr-query.el
index 2ec0771..be03ca8 100644
--- a/packages/ada-mode/gpr-query.el
+++ b/packages/ada-mode/gpr-query.el
@@ -1,6 +1,5 @@
 ;;; gpr-query.el --- minor-mode for navigating sources using the
-;;; custom gpr_query tool, based on AdaCore cross reference tool
-;;; gnatinspect.
+;;; custom gpr_query tool.
 ;;;
 ;;; gpr-query supports Ada and any gcc language that supports the
 ;;; AdaCore -fdump-xref switch (which includes C, C++).
@@ -246,7 +245,6 @@ set compilation-mode with compilation-error-regexp-alist 
set to COMP-ERR."
   (let ((cmd-1 (format "%s %s:%s:%d:%d" cmd identifier file line col))
        (result-count 0)
        file line column)
-    ;; FIXME: Code duplication with gnat-inspect-compilation!
     (with-current-buffer (gpr-query--session-buffer (gpr-query-cached-session))
       (compilation-mode)
       (setq buffer-read-only nil)
@@ -259,7 +257,7 @@ set compilation-mode with compilation-error-regexp-alist 
set to COMP-ERR."
           (font-lock-ensure)
         (font-lock-fontify-buffer))
       ;; font-lock-fontify-buffer applies compilation-message text properties
-      ;; NOTE: Won't be needed in 24.5 any more, since compilation-next-error
+      ;; FIXME: Won't be needed in 24.5 any more, since compilation-next-error
       ;; will apply compilation-message text properties on the fly.
       ;; IMPROVEME: for some reason, next-error works, but the font
       ;; colors are not right (no koolaid!)
@@ -275,7 +273,7 @@ set compilation-mode with compilation-error-regexp-alist 
set to COMP-ERR."
         ;; just go there, don't display session-buffer. We have to
         ;; fetch the compilation-message while in the session-buffer.
         (let* ((msg (compilation-next-error 0 nil (point-min)))
-                ;; FIXME: Woah!  This is messing with very internal details!
+                ;; FIXME: '--' indicates internal-only; use compile-goto-error
                (loc (compilation--message->loc msg)))
           (setq file (caar (compilation--loc->file-struct loc))
                 line (caar (cddr (compilation--loc->file-struct loc)))
@@ -377,7 +375,7 @@ buffer in another window."
     ;; FIXME: (define-key map "\C-c\M-d" 'gpr-query-parents)
     ;; FIXME: overriding
     map
-  )  "Local keymap used for GNAT inspect minor mode.")
+  )  "Local keymap used for gpr query 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"
@@ -627,7 +625,7 @@ Enable mode if ARG is positive"
 
   (font-lock-add-keywords 'ada-mode
    ;; gnatprep preprocessor line
-   (list (list "^[ \t]*\\(#.*\n\\)"  '(1 font-lock-type-face t))))
+   (list (list "^[ \t]*\\(#.*\n\\)"  '(1 font-lock-preprocessor-face t))))
   )
 
 (provide 'gpr-query)
diff --git a/packages/ada-mode/gpr-wisi.el b/packages/ada-mode/gpr-wisi.el
index 48f5523..0736094 100644
--- a/packages/ada-mode/gpr-wisi.el
+++ b/packages/ada-mode/gpr-wisi.el
@@ -169,7 +169,7 @@ or containing ancestor of CACHE that is at a line 
beginning."
       (setq cache (wisi-goto-containing cache)))
     (when cache
       (wisi-forward-token); package | project
-      (wisi-forward-token t); name
+      (wisi-token-text (wisi-forward-token)); name
       )))
 
 ;;; debugging
diff --git a/packages/ada-ref-man/ada-ref-man.el 
b/packages/ada-ref-man/ada-ref-man.el
index 6cdb85b..53f60c7 100644
--- a/packages/ada-ref-man/ada-ref-man.el
+++ b/packages/ada-ref-man/ada-ref-man.el
@@ -4,11 +4,10 @@
 ;;
 ;; Author: Stephen Leake <address@hidden>
 ;; Maintainer: Stephen Leake <address@hidden>
-;; Keywords: languages ada
+;; Keywords: languages
+;;  ada
 ;; Package-Type: multi
 ;; Version: 2012.0
 ;; url: http://stephe-leake.org/ada/arm.html
-;;
-;; (Gnu ELPA requires single digits between dots in versions)
 
 ;;; ada-ref-man.el ends here
diff --git a/packages/wisi/NEWS b/packages/wisi/NEWS
index 9aa5938..3385ac6 100755
--- a/packages/wisi/NEWS
+++ b/packages/wisi/NEWS
@@ -7,6 +7,33 @@ Please send wisi bug reports to address@hidden, with
 'wisi' in the subject. If possible, use M-x report-emacs-bug.
 
 
+* wisi 1.1.0
+18 Nov 2014
+
+** change wisi-forward-token to not return text; simpler, faster
+
+** remove face from wisi-cache; set font-lock-face property directly.
+
+** add support for numeric literal tokens.
+
+** change wisi-*-action to take a vector of arguments; faster for
+   external parser, catches more errors.
+
+* wisi 1.0.6
+28 Sep 2014
+
+** add face to wisi-cache
+
+** wisi-before/after-change : improve checks for invalidate-cache
+
+** wisi-motion-action takes class with each token-id
+
+** new parse actions: wisi-extend-action, wisi-face-action
+
+** new functions: wisi-goto-statement-start, -end.
+
+** fix misc bugs
+
 * wisi 1.0.5
 12 Jul 2014
 
diff --git a/packages/wisi/README b/packages/wisi/README
index cbf97c9..72380ae 100755
--- a/packages/wisi/README
+++ b/packages/wisi/README
@@ -1,4 +1,4 @@
-Emacs wisi package 1.0.6
+Emacs wisi package 1.1.0
 
 The wisi package provides utilities for using generalized LALR parsers
 to do indentation and navigation. See ada-mode for an example of its
diff --git a/packages/wisi/wisi-parse.el b/packages/wisi/wisi-parse.el
index e3b3da6..852ecdc 100755
--- a/packages/wisi/wisi-parse.el
+++ b/packages/wisi/wisi-parse.el
@@ -95,6 +95,12 @@ point at which that max was spawned.")
 (defvar-local wisi-cache-max 0
   "Maximimum position in buffer where wisi-cache text properties are valid.")
 
+(defun wisi-token-text (token)
+  "Return buffer text from token range."
+  (let ((region (cdr token)))
+    (and region
+       (buffer-substring-no-properties (car region) (cdr region)))))
+
 (defun wisi-parse (automaton lexer)
   "Parse current buffer from bob using the automaton specified in AUTOMATON.
 
@@ -188,7 +194,7 @@ point at which that max was spawned.")
                     (signal 'wisi-parse-error
                             (wisi-error-msg "syntax error in grammar state %d; 
unexpected %s, expecting one of %s"
                                             state
-                                            (nth 1 token)
+                                            (wisi-token-text token)
                                             (mapcar 'car (aref actions 
state))))
                     ))
                  (t
@@ -205,7 +211,7 @@ point at which that max was spawned.")
                                         (wisi-error-msg
                                          "syntax error in grammar state %d; 
unexpected %s, expecting one of %s"
                                          state
-                                         (nth 1 token)
+                                         (wisi-token-text token)
                                          (mapcar 'car (aref actions state)))))
                           )))
                     (signal 'wisi-parse-error msg)))
@@ -213,11 +219,11 @@ point at which that max was spawned.")
 
                (1
                 (setf (wisi-parser-state-active parser-state) nil); Don't save 
error for later.
-                (wisi-execute-pending (wisi-parser-state-pending
-                                       (aref parser-states (wisi-active-parser 
parser-states))))
-                (setf (wisi-parser-state-pending
-                       (aref parser-states (wisi-active-parser parser-states)))
-                      nil))
+                (let ((parser-state (aref parser-states (wisi-active-parser 
parser-states))))
+                  (wisi-execute-pending (wisi-parser-state-label parser-state)
+                                        (wisi-parser-state-pending 
parser-state))
+                  (setf (wisi-parser-state-pending parser-state) nil)
+                  ))
                (t
                 ;; We were in a parallel parse, and this parser
                 ;; failed; mark it inactive, don't save error for
@@ -340,7 +346,7 @@ nil, 'shift, or 'accept."
              (dotimes (stack-i (wisi-parser-state-sp (aref parser-states 
parser-i)))
                (setq
                 compare
-                (and compare
+                (and compare ;; bypass expensive 'arefs' after first stack 
item compare fail
                      (equal (aref (wisi-parser-state-stack (aref parser-states 
parser-i)) stack-i)
                             (aref (wisi-parser-state-stack (aref parser-states 
(+ parser-i parser-j 1))) stack-i)))))
              (when compare
@@ -349,19 +355,18 @@ nil, 'shift, or 'accept."
                (when (> wisi-debug 1)
                  (message "terminate identical parser %d (%d active)"
                           (+ parser-i parser-j 1) active-parser-count))
+               (setf (wisi-parser-state-active (aref parser-states (+ parser-i 
parser-j 1))) nil)
                (when (= active-parser-count 1)
                  ;; the actions for the two parsers are not
                  ;; identical, but either is good enough for
-                 ;; indentation and navigation, so we just do one.
-                 (when (> wisi-debug 1) (message "executing actions for %d" (+ 
parser-i parser-j 1)))
-                 (wisi-execute-pending (wisi-parser-state-pending (aref 
parser-states (+ parser-i parser-j 1))))
-                 (setf (wisi-parser-state-pending (aref parser-states (+ 
parser-i parser-j 1))) nil)
-
-                 ;; clear pending of other parser so it can be reused
-                 (setf (wisi-parser-state-pending (aref parser-states 
parser-i)) nil))
-
-               (setf (wisi-parser-state-active (aref parser-states (+ parser-i 
parser-j 1))) nil))
-             )))
+                 ;; indentation and navigation, so we just do the
+                 ;; actions for the one that is not terminating.
+                 (let ((parser-state (aref parser-states parser-i)))
+                   (wisi-execute-pending (wisi-parser-state-label parser-state)
+                                         (wisi-parser-state-pending 
parser-state))
+                   (setf (wisi-parser-state-pending parser-state) nil)
+                   ))
+               ))))
        )))
   active-parser-count)
 
@@ -370,8 +375,8 @@ nil, 'shift, or 'accept."
   (let ((result (if tokens 0 (point))))
     (mapc
      (lambda (token)
-       (when (cl-cdddr token)
-        (setq result (max (cl-cdddr token) result))))
+       (when (cddr token)
+        (setq result (max (cddr token) result))))
      tokens)
     result)
   )
@@ -381,15 +386,23 @@ nil, 'shift, or 'accept."
   ;; We don't execute actions if all tokens are before wisi-cache-max,
   ;; because later actions can update existing caches, and if the
   ;; parse fails that won't happen. It also saves time.
-  (if (>= (wisi-parse-max-pos tokens) wisi-cache-max)
+  ;;
+  ;; Also skip if no tokens; nothing to do. This can happen when all
+  ;; tokens in a grammar statement are optional.
+  (if (< 0 (length tokens))
+      (if (>= (wisi-parse-max-pos tokens) wisi-cache-max)
+
+         (funcall func tokens)
 
-      (funcall func tokens)
+       (when (> wisi-debug 1)
+         (message "... action skipped; before wisi-cache-max %d" 
wisi-cache-max)))
 
     (when (> wisi-debug 1)
-      (message "... action skipped"))
+      (message "... action skipped; no tokens"))
     ))
 
-(defun wisi-execute-pending (pending)
+(defun wisi-execute-pending (parser-label pending)
+  (when (> wisi-debug 1) (message "%d: pending actions:" parser-label))
   (while pending
     (when (> wisi-debug 1) (message "%s" (car pending)))
 
@@ -475,18 +488,18 @@ Return nil."
   "Return a pair (START . END), the buffer region for a nonterminal.
 STACK is the parser stack.  I and J are the indices in STACK of
 the first and last tokens of the nonterminal."
-  (let ((start (cl-caddr (aref stack i)))
-        (end   (cl-cdddr (aref stack j))))
+  (let ((start (cadr (aref stack i)))
+        (end   (cddr (aref stack j))))
     (while (and (or (not start) (not end))
                (/= i j))
       (cond
        ((not start)
        ;; item i is an empty production
-       (setq start (cl-caddr (aref stack (setq i (+ i 2))))))
+       (setq start (cadr (aref stack (setq i (+ i 2))))))
 
        ((not end)
        ;; item j is an empty production
-       (setq end (cl-cdddr (aref stack (setq j (- j 2))))))
+       (setq end (cddr (aref stack (setq j (- j 2))))))
 
        (t (setq i j))))
     (and start end (cons start end))))
@@ -501,17 +514,19 @@ the first and last tokens of the nonterminal."
                           (wisi-nonterm-bounds stack (- sp (* 2 (1- 
token-count)) 1) (1- sp))))
         (post-reduce-state (aref stack (- sp (* 2 token-count))))
         (new-state (cdr (assoc nonterm (aref gotos post-reduce-state))))
-        tokens)
+        (tokens (make-vector token-count nil)))
+
     (when (not new-state)
       (error "no goto for %s %d" nonterm post-reduce-state))
-    (if (= 1 token-count)
-       (setq tokens (list (aref stack (1- sp))))
-      (dotimes (i token-count)
-       (push (aref stack (- sp (* 2 i) 1)) tokens)))
+
+    (dotimes (i token-count)
+      (aset tokens (- token-count i 1) (aref stack (- sp (* 2 i) 1))))
+
     (setq sp (+ 2 (- sp (* 2 token-count))))
-    (aset stack (1- sp) (cons nonterm (cons nil nonterm-region)))
+    (aset stack (1- sp) (cons nonterm nonterm-region))
     (aset stack sp new-state)
     (setf (wisi-parser-state-sp parser-state) sp)
+
     (if pendingp
        (if (wisi-parser-state-pending parser-state)
            (setf (wisi-parser-state-pending parser-state)
diff --git a/packages/wisi/wisi.el b/packages/wisi/wisi.el
index 509e6ba..6f06f54 100755
--- a/packages/wisi/wisi.el
+++ b/packages/wisi/wisi.el
@@ -7,7 +7,7 @@
 ;; Keywords: parser
 ;;  indentation
 ;;  navigation
-;; Version: 1.0.6
+;; Version: 1.1.0
 ;; package-requires: ((cl-lib "0.4") (emacs "24.2"))
 ;; URL: http://stephe-leake.org/emacs/ada-mode/emacs-ada-mode.html
 ;;
@@ -71,6 +71,21 @@
 ;; the edit point if the change involves anything other than
 ;; whitespace.
 ;;
+;;; Handling parse errors:
+;;
+;; When a parse fails, the cache information before the failure point
+;; is only partly correct, and there is no cache informaiton after the
+;; failure point.
+;;
+;; However, in the case where a parse previously succeeded, and the
+;; current parse fails due to editing, we keep the preceding cache
+;; information by setting wisi-cache-max to the edit point in
+;; wisi-before change; the parser does not apply actions before that
+;; point.
+;;
+;; This allows navigation and indentation in the text preceding the
+;; edit point, and saves some time.
+;;
 ;;;; comparison to the SMIE parser
 ;;
 ;; The central problem to be solved in building the SMIE parser is
@@ -164,6 +179,13 @@
   (require 'wisi-compat-24.2)
 ;;)
 
+(defcustom wisi-font-lock-size-threshold 100000
+  "Max size (in characters) for using wisi parser results for syntax 
highlighting."
+  :type 'integer
+  :group 'wisi
+  :safe 'integerp)
+(make-variable-buffer-local 'wisi-font-lock-size-threshold)
+
 ;;;; lexer
 
 (defvar-local wisi-class-list nil)
@@ -177,18 +199,38 @@
   "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)
+(defvar-local wisi-number-term nil)
+(defvar-local wisi-number-p nil)
+
+(defun wisi-number-p (token-text)
+  "Return t if TOKEN-TEXT plus text after point matches the
+syntax for a real literal; otherwise nil. point is after
+TOKEN-TEXT; move point to just past token."
+  ;; typical literals:
+  ;; 1234
+  ;; 1234.5678
+  ;; 1234.5678e+99
+  ;;
+  (let ((end (point)))
+    ;; starts with a simple integer
+    (when (string-match "^[0-9]+" token-text)
+      (when (looking-at "\\.[0-9]+")
+       ;; real number
+       (goto-char (setq end (match-end 0)))
+       (when (looking-at  "[Ee][+-][0-9]+")
+         ;; exponent
+         (goto-char (setq end (match-end 0)))))
+
+      t
+      )))
 
-(defun wisi-forward-token (&optional text-only)
+(defun wisi-forward-token ()
   "Move point forward across one token, skipping leading whitespace and 
comments.
-Return the corresponding token, in a format determined by TEXT-ONLY:
-TEXT-ONLY t:          text
-TEXT-ONLY nil:        (token text start . end)
-where:
+Return the corresponding token, in format: (token start . end) where:
+
 `token' is a token symbol (not string) from `wisi-punctuation-table',
 `wisi-keyword-table', `wisi-string-double-term', `wisi-string-double-term' or 
`wisi-symbol-term'.
 
-`text' is the token text from the buffer
-
 `start, end' are the character positions in the buffer of the start
 and end of the token text.
 
@@ -202,7 +244,6 @@ If at end of buffer, returns `wisent-eoi-term'."
        token-id token-text)
     (cond
      ((eobp)
-      (setq token-text "")
       (setq token-id wisent-eoi-term))
 
      ((eq syntax 1)
@@ -214,8 +255,7 @@ If at end of buffer, returns `wisent-eoi-term'."
          (setq temp-text (buffer-substring-no-properties start (point)))
          (setq temp-id (car (rassoc temp-text wisi-punctuation-table)))
          (when temp-id
-           (setq token-text temp-text
-                 token-id temp-id
+           (setq token-id temp-id
                  next-point (point)))
          (if (or
               (eobp)
@@ -246,7 +286,6 @@ If at end of buffer, returns `wisent-eoi-term'."
                      (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)))
          (scan-error
           ;; Something screwed up; we should not get here if
@@ -259,21 +298,24 @@ If at end of buffer, returns `wisent-eoi-term'."
       (setq token-text (buffer-substring-no-properties start (point)))
       (setq token-id
            (or (symbol-value (intern-soft (downcase token-text) 
wisi-keyword-table))
-               wisi-symbol-term)))
+               (and (functionp wisi-number-p)
+                    (funcall wisi-number-p token-text)
+                    (setq token-text (buffer-substring-no-properties start 
(point)))
+                    wisi-number-term)
+               wisi-symbol-term))
+      )
      );; cond
 
     (unless token-id
       (signal 'wisi-parse-error
              (wisi-error-msg "unrecognized token '%s'" 
(buffer-substring-no-properties start (point)))))
 
-    (if text-only
-       token-text
-      (cons token-id (cons token-text (cons start (point)))))
+    (cons token-id (cons start (point)))
     ))
 
 (defun wisi-backward-token ()
   "Move point backward across one token, skipping whitespace and comments.
-Return (nil text start . end) - same structure as
+Return (nil start . end) - same structure as
 wisi-forward-token, but does not look up symbol."
   (forward-comment (- (point)))
   ;; skips leading whitespace, comment, trailing whitespace.
@@ -296,7 +338,7 @@ wisi-forward-token, but does not look up symbol."
       (if (zerop (skip-syntax-backward "."))
          (skip-syntax-backward "w_'")))
      )
-    (cons nil (cons (buffer-substring-no-properties (point) end) (cons (point) 
end)))
+    (cons nil (cons (point) end))
     ))
 
 ;;;; token info cache
@@ -341,7 +383,6 @@ wisi-forward-token, but does not look up symbol."
   prev ;; marker at previous motion token in statement; nil if none
   next ;; marker at next motion token in statement; nil if none
   end  ;; marker at token at end of current statement
-  face ;; for font-lock. only set when regexp font-lock can't handle it
   )
 
 (defvar-local wisi-parse-table nil)
@@ -359,9 +400,16 @@ Used in before/after change functions.")
 (defvar-local wisi-end-caches nil
   "List of buffer positions of caches in current statement that need 
wisi-cache-end set.")
 
+(defun wisi-delete-cache (after)
+  (with-silent-modifications
+    (remove-text-properties after (point-max) '(wisi-cache nil))
+    ;; We don't remove 'font-lock-face; that's annoying to the user,
+    ;; since they won't be restored until a parse for some other
+    ;; reason, and they are likely to be right anyway.
+    ))
+
 (defun wisi-invalidate-cache(&optional after)
-  "Invalidate parsing caches for the current buffer from AFTER to end of 
buffer.
-Caches are the Emacs syntax cache, the wisi token cache, and the wisi parser 
cache."
+  "Invalidate parsing caches for the current buffer from AFTER to end of 
buffer."
   (interactive)
   (if (not after)
       (setq after (point-min))
@@ -373,8 +421,8 @@ Caches are the Emacs syntax cache, the wisi token cache, 
and the wisi parser cac
   (setq wisi-cache-max after)
   (setq wisi-parse-try t)
   (syntax-ppss-flush-cache after)
-  (with-silent-modifications
-    (remove-text-properties after (point-max) '(wisi-cache nil))))
+  (wisi-delete-cache after)
+  )
 
 (defun wisi-before-change (begin end)
   "For `before-change-functions'."
@@ -394,111 +442,180 @@ Caches are the Emacs syntax cache, the wisi token 
cache, and the wisi parser cac
 
   (setq wisi-change-need-invalidate nil)
 
-  (when (and (> end begin)
-            (>= wisi-cache-max begin))
-
-    (when wisi-parse-failed
-      ;; The parse was failing, probably due to bad syntax; this change
-      ;; may have fixed it, so try reparse.
-      (setq wisi-parse-try t))
-
+  (when (> end begin)
     (save-excursion
-      ;; don't invalidate parse for whitespace, string, or comment changes
-      (let (;; (info "(elisp)Parser State")
-           (state (syntax-ppss begin)))
-       ;; syntax-ppss has moved point to "begin".
-       (cond
-        ((or
-          (nth 3 state); in string
-          (nth 4 state)); in comment
-         ;; FIXME: check that entire range is in comment or string
-         )
-
-        ((progn
-           (skip-syntax-forward " " end);; does not skip newline
-           (eq (point) end)))
+      ;; (info "(elisp)Parser State")
+      (let* ((begin-state (syntax-ppss begin))
+            (end-state (syntax-ppss end))
+            ;; syntax-ppss has moved point to "end".
+            (word-end (progn (skip-syntax-forward "w_")(point))))
+
+       ;; Remove grammar face from word(s) containing change region;
+       ;; might be changing to/from a keyword. See
+       ;; test/ada_mode-interactive_common.adb Obj_1
+       (goto-char begin)
+       (skip-syntax-backward "w_")
+       (with-silent-modifications
+         (remove-text-properties (point) word-end '(font-lock-face nil 
fontified nil)))
+
+       (if (<= wisi-cache-max begin)
+           ;; Change is in unvalidated region; either the parse was
+           ;; failing, or there is more than one top-level grammar
+           ;; symbol in buffer.
+           (when wisi-parse-failed
+             ;; The parse was failing, probably due to bad syntax; this
+             ;; change may have fixed it, so try reparse.
+             (setq wisi-parse-try t))
+
+         ;; else change is in validated region
+         ;;
+         ;; don't invalidate parse for whitespace, string, or comment changes
+         (cond
+          ((and
+            (nth 3 begin-state); in string
+            (nth 3 end-state)))
+          ;; no easy way to tell if there is intervening non-string
+
+          ((and
+            (nth 4 begin-state); in comment
+            (nth 4 end-state))
+           ;; too hard to detect case where there is intervening
+           ;; code; no easy way to go to end of comment if not
+           ;; newline
+           )
+
+          ;; Deleting whitespace generally does not require parse, but
+          ;; deleting all whitespace between two words does; check that
+          ;; there is whitespace on at least one side of the deleted
+          ;; text.
+          ;;
+          ;; We are not in a comment (checked above), so treat
+          ;; comment end as whitespace in case it is newline, except
+          ;; deleting a comment end at begin means commenting the
+          ;; current line; requires parse.
+          ((and
+            (eq (car (syntax-after begin)) 0) ; whitespace
+            (memq (car (syntax-after (1- end))) '(0 12)) ; whitespace, comment 
end
+            (or
+             (memq (car (syntax-after (1- begin))) '(0 12))
+             (memq (car (syntax-after end)) '(0 12)))
+            (progn
+              (goto-char begin)
+              (skip-syntax-forward " >" end)
+              (eq (point) end))))
 
-        (t
-         (setq wisi-change-need-invalidate
-               (progn
-                 (wisi-goto-statement-start)
-                 (point))))
-        ))))
+          (t
+           (setq wisi-change-need-invalidate
+                 (progn
+                   ;; note that because of the checks above, this never
+                   ;; triggers a parse, so it's fast
+              (goto-char begin)
+                   (wisi-goto-statement-start)
+                   (point))))
+          )))
+      ))
   )
 
 (defun wisi-after-change (begin end length)
   "For `after-change-functions'."
-  ;; begin . end is range of text being inserted (empty if equal)
+  ;; begin . end is range of text being inserted (empty if equal);
+  ;; length is the size of the deleted text.
 
   ;; (syntax-ppss-flush-cache begin) is in before-change-functions
 
   (syntax-propertize end) ;; see comments above on "lexer" re syntax-propertize
 
-  ;; The parse was failing, probably due to bad syntax; this change
-  ;; may have fixed it, so try reparse.
-  (setq wisi-parse-try t)
+  ;; Remove caches on inserted text, which could have caches from
+  ;; before the failed parse (or another buffer), and are in any case
+  ;; invalid. No point in removing 'fontified; that's handled by
+  ;; jit-lock.
 
-  ;; remove 'wisi-cache on inserted text, which could have caches
-  ;; from before the failed parse (or another buffer), and are in
-  ;; any case invalid.
   (with-silent-modifications
-    (remove-text-properties begin end '(wisi-cache)))
+    (remove-text-properties begin end '(wisi-cache nil font-lock-face nil)))
 
-  (cond
-   ((>= wisi-cache-max begin)
-    ;; The parse had succeeded past the start of the inserted
-    ;; text.
-    (save-excursion
-      (let (need-invalidate
-           ;; (info "(elisp)Parser State")
-           (state (syntax-ppss begin)))
-       ;; syntax-ppss has moved point to "begin".
+  ;; Also remove grammar face from word(s) containing change region;
+  ;; might be changing to/from a keyword. See
+  ;; test/ada_mode-interactive_common.adb Obj_1
+  (save-excursion
+    ;; (info "(elisp)Parser State")
+    (let ((need-invalidate wisi-change-need-invalidate)
+         begin-state end-state word-end)
+      (when (> end begin)
+       (setq begin-state (syntax-ppss begin))
+       (setq end-state (syntax-ppss end))
+       ;; syntax-ppss has moved point to "end".
+       (skip-syntax-forward "w_")
+       (setq word-end (point))
+       (goto-char begin)
+       (skip-syntax-backward "w_")
+       (with-silent-modifications
+         (remove-text-properties (point) word-end '(font-lock-face nil 
fontified nil))))
+
+      (if (<= wisi-cache-max begin)
+         ;; Change is in unvalidated region
+         (when wisi-parse-failed
+           ;; The parse was failing, probably due to bad syntax; this
+           ;; change may have fixed it, so try reparse.
+           (setq wisi-parse-try t))
+
+       ;; Change is in validated region
        (cond
         (wisi-change-need-invalidate
          ;; wisi-before change determined the removed text alters the
          ;; parse
-         (setq need-invalidate wisi-change-need-invalidate))
+         )
 
         ((= end begin)
          (setq need-invalidate nil))
 
+        ((and
+          (nth 3 begin-state); in string
+          (nth 3 end-state))
+         ;; no easy way to tell if there is intervening non-string
+         (setq need-invalidate nil))
+
         ((or
-          (nth 3 state); in string
-          (nth 4 state)); in comment
-         ;; 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
+          (nth 4 begin-state)
+          (nth 4 end-state)); in comment
+         ;; no easy way to detect intervening code
          (setq need-invalidate nil)
          ;; no caches to remove
          )
 
-        ((progn
-           (skip-syntax-forward " " end);; does not skip newlines
-           (eq (point) end))
+        ;; Adding whitespace generally does not require parse, but in
+        ;; the middle of word it does; check that there was
+        ;; whitespace on at least one side of the inserted text.
+        ;;
+        ;; We are not in a comment (checked above), so treat
+        ;; comment end as whitespace in case it is newline
+        ((and
+          (or
+           (memq (car (syntax-after (1- begin))) '(0 12)); whitespace, comment 
end
+           (memq (car (syntax-after end)) '(0 12)))
+          (progn
+           (goto-char begin)
+           (skip-syntax-forward " >" end)
+           (eq (point) end)))
          (setq need-invalidate nil))
 
         (t
-         (setq need-invalidate begin))
+         (setq need-invalidate
+               (progn
+                 (goto-char begin)
+                 ;; note that because of the checks above, this never
+                 ;; triggers a parse, so it's fast
+                 (wisi-goto-statement-start)
+                 (point))))
         )
 
        (if need-invalidate
-           ;; The inserted or deleted text could alter the parse;
-           ;; wisi-invalidate-cache removes all 'wisi-cache.
            (wisi-invalidate-cache need-invalidate)
 
          ;; else move cache-max by the net change length.
          (setq wisi-cache-max
-               (+ wisi-cache-max (- end begin length))))
-       )
-      ))
-
-   (t
-    ;; parse never attempted, or only done to before BEGIN. Just
-    ;; remove caches
-    (with-silent-modifications
-      (remove-text-properties begin end '(wisi-cache)))
-    )
-  ))
+               (+ wisi-cache-max (- end begin length))) )
+       ))
+    ))
 
 (defun wisi-get-cache (pos)
   "Return `wisi-cache' struct from the `wisi-cache' text property at POS.
@@ -512,6 +629,7 @@ If accessing cache at a marker for a token as set by 
`wisi-cache-tokens', POS mu
   (when (string-match ":\\([0-9]+\\):\\([0-9]+\\):" wisi-parse-error-msg)
     (let ((line (string-to-number (match-string 1 wisi-parse-error-msg)))
          (col (string-to-number (match-string 2 wisi-parse-error-msg))))
+      (push-mark)
       (goto-char (point-min))
       (forward-line (1- line))
       (forward-char col))))
@@ -521,8 +639,8 @@ If accessing cache at a marker for a token as set by 
`wisi-cache-tokens', POS mu
   (interactive)
   (cond
    (wisi-parse-failed
-    (message wisi-parse-error-msg)
-    (wisi-goto-error))
+    (wisi-goto-error)
+    (message wisi-parse-error-msg))
 
    (wisi-parse-try
     (message "need parse"))
@@ -546,28 +664,31 @@ If accessing cache at a marker for a token as set by 
`wisi-cache-tokens', POS mu
       (setq wisi-parse-error-msg nil)
       (setq wisi-end-caches nil)
 
-      (save-excursion
-       (if (> wisi-debug 1)
-           ;; let debugger stop in wisi-parse
-           (progn
+      (if (> wisi-debug 1)
+         ;; let debugger stop in wisi-parse
+         (progn
+           (save-excursion
              (wisi-parse wisi-parse-table 'wisi-forward-token)
              (setq wisi-cache-max (point))
-             (setq wisi-parse-failed nil)
-             (run-hooks 'wisi-post-parse-succeed-hook))
+             (setq wisi-parse-failed nil))
+           (run-hooks 'wisi-post-parse-succeed-hook))
 
-         ;; else capture errors from bad syntax, so higher level
-         ;; functions can try to continue and/or we don't bother the
-         ;; user.
-         (condition-case err
-             (progn
+       ;; else capture errors from bad syntax, so higher level
+       ;; functions can try to continue and/or we don't bother the
+       ;; user.
+       (condition-case err
+           (progn
+             (save-excursion
                (wisi-parse wisi-parse-table 'wisi-forward-token)
                (setq wisi-cache-max (point))
-               (setq wisi-parse-failed nil)
-               (run-hooks 'wisi-post-parse-succeed-hook))
-           (wisi-parse-error
-            (setq wisi-parse-failed t)
-            (setq wisi-parse-error-msg (cdr err)))
-           )))
+               (setq wisi-parse-failed nil))
+             (run-hooks 'wisi-post-parse-succeed-hook))
+         (wisi-parse-error
+          ;; delete caches past wisi-cache-max added by failed parse
+          (wisi-delete-cache wisi-cache-max)
+          (setq wisi-parse-failed t)
+          (setq wisi-parse-error-msg (cdr err)))
+         ))
       (if wisi-parse-error-msg
          ;; error
          (when (> wisi-debug 0)
@@ -579,6 +700,11 @@ If accessing cache at a marker for a token as set by 
`wisi-cache-tokens', POS mu
          (message "%s done" msg)))
       )))
 
+(defun wisi-fontify-region (begin end)
+  "For `jit-lock-functions'."
+  (when (< (point-max) wisi-font-lock-size-threshold)
+    (wisi-validate-cache end)))
+
 (defun wisi-get-containing-cache (cache)
   "Return cache from (wisi-cache-containing CACHE)."
   (let ((containing (wisi-cache-containing cache)))
@@ -620,29 +746,33 @@ delete from `wisi-end-caches'."
 ;; keep byte-compiler happy; `wisi-tokens' is bound in action created
 ;; by wisi-semantic-action
 
-(defun wisi-statement-action (&rest pairs)
+(defun wisi-statement-action (pairs)
   "Cache information in text properties of tokens.
 Intended as a grammar non-terminal action.
 
-PAIRS is of the form [TOKEN-NUMBER CLASS] ...  where TOKEN-NUMBER
-is the (1 indexed) token number in the production, CLASS is the wisi class of
-that token. Use in a grammar action as:
-  (wisi-statement-action 1 'statement-start 7 'statement-end)"
+PAIRS is a vector of the form [TOKEN-NUMBER CLASS TOKEN-NUMBER
+CLASS ...] where TOKEN-NUMBER is the (1 indexed) token number in
+the production, CLASS is the wisi class of that token. Use in a
+grammar action as:
+  (wisi-statement-action [1 'statement-start 7 'statement-end])"
   (save-excursion
     (let ((first-item t)
          first-keyword-mark
-         (override-start nil))
-      (while pairs
-       (let* ((number (1- (pop pairs)))
-              (region (cddr (nth number wisi-tokens)));; wisi-tokens is 
let-bound in wisi-parse-reduce
-              (token (car (nth number wisi-tokens)))
-              (class (pop pairs))
+         (override-start nil)
+         (i 0))
+      (while (< i (length pairs))
+       (let* ((number (1- (aref pairs i)))
+              (region (cdr (aref wisi-tokens number)));; wisi-tokens is 
let-bound in wisi-parse-reduce
+              (token (car (aref wisi-tokens number)))
+              (class (aref pairs (setq i (1+ i))))
               (mark
                ;; Marker one char into token, so indent-line-to
                ;; inserts space before the mark, not after
                (when region (copy-marker (1+ (car region)))))
               cache)
 
+         (setq i (1+ i))
+
          (unless (memq class wisi-class-list)
            (error "%s not in wisi-class-list" class))
 
@@ -728,25 +858,25 @@ that token. Use in a grammar action as:
   "Set containing marks in all tokens in CONTAINED-TOKEN with null containing 
mark to marker pointing to CONTAINING-TOKEN.
 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))))
+  (let* ((containing-region (cdr (aref wisi-tokens (1- containing-token))))
+        (contained-region (cdr (aref wisi-tokens (1- contained-token)))))
 
     (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)))))
+              (wisi-token-text (aref wisi-tokens (1- containing-token))))))
 
     (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)))))
+              (wisi-token-text (aref wisi-tokens (1- containing-token))))))
 
     (while (not containing-region)
       ;; containing-token is empty; use next
-      (setq containing-region (cddr (nth containing-token wisi-tokens))))
+      (setq containing-region (cdr (aref wisi-tokens containing-token))))
 
     (when contained-region
       ;; nil when empty production, may not contain any caches
@@ -773,27 +903,48 @@ If CONTAINING-TOKEN is empty, the next token number is 
used."
              (setq cache (wisi-backward-cache)))
            ))))))
 
-(defun wisi-motion-action (&rest token-numbers)
+(defun wisi-match-class-token (cache class-tokens)
+  "Return t if CACHE matches CLASS-TOKENS.
+CLASS-TOKENS is a vector [number class token_id class token_id ...].
+number is ignored."
+  (let ((i 1)
+       (done nil)
+       (result nil)
+       class token)
+    (while (and (not done)
+               (< i (length class-tokens)))
+      (setq class (aref class-tokens i))
+      (setq token (aref class-tokens (setq i (1+ i))))
+      (setq i (1+ i))
+      (when (and (eq class (wisi-cache-class cache))
+                (eq token (wisi-cache-token cache)))
+       (setq result t
+             done t))
+      )
+    result))
+
+(defun wisi-motion-action (token-numbers)
   "Set prev/next marks in all tokens given by TOKEN-NUMBERS.
-Each TOKEN-NUMBERS is one of:
+TOKEN-NUMBERS is a vector with each element one of:
 
 number: the token number; mark that token
 
-list (number class token_id):
-list (number class token_id class token_id ...):
+vector [number class token_id]:
+vector [number class token_id class token_id ...]:
    mark all tokens in number nonterminal matching (class token_id) with nil 
prev/next."
   (save-excursion
     (let (prev-keyword-mark
          prev-cache
          cache
-         mark)
-      (while token-numbers
-       (let ((token-number (pop token-numbers))
-             class-tokens target-class target-token
+         mark
+         (i 0))
+      (while (< i (length token-numbers))
+       (let ((token-number (aref token-numbers i))
              region)
+         (setq i (1+ i))
          (cond
           ((numberp token-number)
-           (setq region (cddr (nth (1- token-number) wisi-tokens)))
+           (setq region (cdr (aref wisi-tokens (1- token-number))))
            (when region
              (setq cache (wisi-get-cache (car region)))
              (setq mark (copy-marker (1+ (car region))))
@@ -808,31 +959,29 @@ list (number class token_id class token_id ...):
              (setq prev-cache cache)
              ))
 
-          ((listp token-number)
+          ((vectorp token-number)
            ;; token-number may contain 0, 1, or more 'class token_id' pairs
            ;; the corresponding region may be empty
            ;; there must have been a prev keyword
-           (setq class-tokens (cdr token-number))
-           (setq token-number (car token-number))
-           (setq region (cddr (nth (1- token-number) wisi-tokens)))
+           (setq region (cdr (aref wisi-tokens (1- (aref token-number 0)))))
            (when region ;; not an empty token
-             (while class-tokens
-               (setq target-class (pop class-tokens))
-               (setq target-token (list (pop class-tokens)))
-               (goto-char (car region))
-               (while (setq cache (wisi-forward-find-token target-token (cdr 
region) t))
-                 (when (eq target-class (wisi-cache-class cache))
-                   (when (null (wisi-cache-prev cache))
-                     (setf (wisi-cache-prev cache) prev-keyword-mark))
-                   (when (null (wisi-cache-next cache))
-                     (setq mark (copy-marker (1+ (point))))
-                     (setf (wisi-cache-next prev-cache) mark)
-                     (setq prev-keyword-mark mark)
-                     (setq prev-cache cache)))
-
-                 (wisi-forward-token);; don't find same token again
-               ))
-             ))
+             ;; We must search for all targets at the same time, to
+             ;; get the motion order right.
+             (goto-char (car region))
+             (setq cache (or (wisi-get-cache (point))
+                             (wisi-forward-cache)))
+             (while (< (point) (cdr region))
+               (when (wisi-match-class-token cache token-number)
+                 (when (null (wisi-cache-prev cache))
+                   (setf (wisi-cache-prev cache) prev-keyword-mark))
+                 (when (null (wisi-cache-next cache))
+                   (setq mark (copy-marker (1+ (point))))
+                   (setf (wisi-cache-next prev-cache) mark)
+                   (setq prev-keyword-mark mark)
+                   (setq prev-cache cache)))
+
+               (setq cache (wisi-forward-cache))
+             )))
 
           (t
            (error "unexpected token-number %s" token-number))
@@ -844,9 +993,9 @@ list (number class token_id class token_id ...):
 (defun wisi-extend-action (number)
   "Extend text of cache at token NUMBER to cover all of token NUMBER.
 Also override token with new token."
-  (let* ((token-region (nth (1- number) wisi-tokens));; wisi-tokens is 
let-bound in wisi-parse-reduce
+  (let* ((token-region (aref wisi-tokens (1- number)));; wisi-tokens is 
let-bound in wisi-parse-reduce
         (token (car token-region))
-        (region (cddr token-region))
+        (region (cdr token-region))
        cache)
 
     (when region
@@ -856,24 +1005,125 @@ Also override token with new token."
       )
     ))
 
-(defun wisi-face-action (&rest pairs)
+(defun wisi-face-action-1 (face region &optional no-override)
+  "Apply FACE to REGION. If NO-OVERRIDE is non-nil, don't override existing 
face."
+  (when region
+    ;; We allow overriding a face property, because we don't want to
+    ;; delete them in wisi-invalidate (see comments there). On the
+    ;; other hand, it can be an error, so keep this debug
+    ;; code. However, note that font-lock-face properties must be
+    ;; removed first, or the buffer must be fresh (never parsed).
+    ;;
+    ;; Grammar sets no-override when a higher-level production might
+    ;; override a face in a lower-level production; that's not an
+    ;; error.
+    (let (cur-face
+         (do-set t))
+      (when (or no-override
+               (> wisi-debug 1))
+       (setq cur-face (get-text-property (car region) 'font-lock-face))
+       (if cur-face
+           (if no-override
+               (setq do-set nil)
+             (message "%s:%d overriding face %s with %s on '%s'"
+                    (buffer-file-name)
+                    (line-number-at-pos (car region))
+                    face
+                    cur-face
+                    (buffer-substring-no-properties (car region) (cdr 
region))))
+
+         ))
+      (when do-set
+       (with-silent-modifications
+         (add-text-properties
+          (car region) (cdr region)
+          (list
+           'font-lock-face face
+           'fontified t))))
+    )))
+
+(defun wisi-face-action (pairs &optional no-override)
+  "Cache face information in text properties of tokens.
+Intended as a grammar non-terminal action.
+
+PAIRS is a vector of the form [token-number face token-number face ...]
+token-number may be an integer, or a vector [integer token_id token_id ...]
+
+For an integer token-number, apply face to the first cached token
+in the range covered by wisi-tokens[token-number]. If there are
+no cached tokens, apply face to entire wisi-tokens[token-number]
+region.
+
+For a vector token-number, apply face to the first cached token
+in the range matching one of token_id covered by
+wisi-tokens[token-number].
+
+If NO-OVERRIDE is non-nil, don't override existing face."
+  (let (number region face (tokens nil) cache (i 0) (j 1))
+    (while (< i (length pairs))
+      (setq number (aref pairs i))
+      (setq face (aref pairs (setq i (1+ i))))
+      (cond
+       ((integerp number)
+       (setq region (cdr (aref wisi-tokens (1- number))));; wisi-tokens is 
let-bound in wisi-parse-reduce
+       (when region
+         (save-excursion
+           (goto-char (car region))
+           (setq cache (or (wisi-get-cache (point))
+                           (wisi-forward-cache)))
+           (if (< (point) (cdr region))
+               (when cache
+                 (wisi-face-action-1 face (wisi-cache-region cache) 
no-override))
+
+             ;; no caches in region; just apply face to region
+             (wisi-face-action-1 face region no-override))
+           )))
+
+       ((vectorp number)
+       (setq region (cdr (aref wisi-tokens (1- (aref number 0)))))
+       (when region
+         (while (< j (length number))
+           (setq tokens (cons (aref number j) tokens))
+           (setq j (1+ j)))
+         (save-excursion
+           (goto-char (car region))
+           (setq cache (wisi-forward-find-token tokens (cdr region) t))
+           ;; might be looking for IDENTIFIER in name, but only have "*".
+           (when cache
+             (wisi-face-action-1 face (wisi-cache-region cache) no-override))
+           )))
+       )
+      (setq i (1+ i))
+
+      )))
+
+(defun wisi-face-list-action (pairs &optional no-override)
   "Cache face information in text properties of tokens.
 Intended as a grammar non-terminal action.
 
-PAIRS is of the form [TOKEN-NUMBER fase] ..."
-  (while pairs
-    (let* ((number (1- (pop pairs)))
-          (region (cddr (nth number wisi-tokens)));; wisi-tokens is let-bound 
in wisi-parse-reduce
-          (face (pop pairs))
-          cache)
+PAIRS is a vector of the form [token-number face token-number face ...]
+token-number is an integer. Apply face to all cached tokens
+in the range covered by wisi-tokens[token-number].
 
+If NO-OVERRIDE is non-nil, don't override existing face."
+  (let (number region face cache (i 0))
+    (while (< i (length pairs))
+      (setq number (aref pairs i))
+      (setq face (aref pairs (setq i (1+ i))))
+      (setq region (cdr (aref wisi-tokens (1- number))));; wisi-tokens is 
let-bound in wisi-parse-reduce
       (when region
-       (setq cache (wisi-get-cache (car region)))
-       (unless cache
-         (error "wisi-face-action on non-cache"))
-       (setf (wisi-cache-face cache) face)
-       (when (boundp 'jit-lock-mode)
-         (jit-lock-refontify (car region) (cdr region))))
+       (save-excursion
+         (goto-char (car region))
+         (setq cache (or (wisi-get-cache (point))
+                         (wisi-forward-cache)))
+         (while (<= (point) (cdr region))
+           (when cache
+             (wisi-face-action-1 face (wisi-cache-region cache) no-override))
+           (setq cache (wisi-forward-cache))
+           )))
+
+      (setq i (1+ i))
+
       )))
 
 ;;;; motion
@@ -1042,7 +1292,7 @@ Return cache for paren, or nil if no containing paren."
   "Move point to containing ancestor of CACHE that has class block-start or 
statement-start.
 Return start cache."
   (when
-    ;; cache nil at bob
+    ;; cache nil at bob, or on cache in partially parsed statement
     (while (and cache
                (not (memq (wisi-cache-class cache) '(block-start 
statement-start))))
       (setq cache (wisi-goto-containing cache)))
@@ -1163,14 +1413,11 @@ correct. Must leave point at indentation of current 
line.")
       (back-to-indentation)
       (when (>= (point) savep) (setq savep nil))
 
-      (when (> (point) wisi-cache-max)
-       (wisi-validate-cache (point))
-       (when (and (not wisi-parse-failed)
-                  wisi-indent-failed)
-         (setq wisi-indent-failed nil)
-         (run-hooks 'wisi-post-parse-fail-hook)))
+      (when (>= (point) wisi-cache-max)
+       (wisi-validate-cache (line-end-position))) ;; include at lease the 
first token on this line
 
       (if (> (point) wisi-cache-max)
+         ;; parse failed
          (progn
            ;; no indent info at point. Assume user is
            ;; editing; indent to previous line, fix it
@@ -1180,10 +1427,20 @@ correct. Must leave point at indentation of current 
line.")
            (back-to-indentation)
            (setq indent (current-column)))
 
+       ;; parse succeeded
+       (when wisi-indent-failed
+         ;; previous parse failed
+         (setq wisi-indent-failed nil)
+         (run-hooks 'wisi-post-parse-fail-hook))
+
+       (when (> (point) wisi-cache-max)
+         (error "wisi-post-parse-fail-hook invalidated parse."))
+
        (setq indent
              (with-demoted-errors
-               (or (run-hook-with-args-until-success 
'wisi-indent-calculate-functions) 0))
-             )))
+                 (or (run-hook-with-args-until-success 
'wisi-indent-calculate-functions) 0))
+             )
+       ))
 
     (if savep
        ;; point was inside line text; leave it there
@@ -1218,6 +1475,11 @@ correct. Must leave point at indentation of current 
line.")
       (message "previous %s" (wisi-backward-cache)))
     ))
 
+(defun wisi-show-cache-max ()
+  (interactive)
+  (push-mark)
+  (goto-char wisi-cache-max))
+
 ;;;;; setup
 
 (defun wisi-setup (indent-calculate post-parse-fail class-list keyword-table 
token-table parse-table)
@@ -1227,6 +1489,10 @@ correct. Must leave point at indentation of current 
line.")
   (setq wisi-string-single-term (car (symbol-value (intern-soft 
"string-single" token-table))))
   (setq wisi-symbol-term (car (symbol-value (intern-soft "symbol" 
token-table))))
 
+  (let ((numbers (cadr (symbol-value (intern-soft "number" token-table)))))
+    (setq wisi-number-term (car numbers))
+    (setq wisi-number-p (cdr numbers)))
+
   (setq wisi-punctuation-table (symbol-value (intern-soft "punctuation" 
token-table)))
   (setq wisi-punctuation-table-max-length 0)
   (let (fail)
@@ -1259,6 +1525,9 @@ correct. Must leave point at indentation of current 
line.")
   (add-hook 'before-change-functions 'wisi-before-change nil t)
   (add-hook 'after-change-functions 'wisi-after-change nil t)
 
+  (when (functionp 'jit-lock-register)
+      (jit-lock-register 'wisi-fontify-region))
+
   ;; see comments on "lexer" above re syntax-propertize
   (syntax-propertize (point-max))
 



reply via email to

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