[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] new-website b2327c0: Merge branch 'master' into new-website
From: |
Nicolas Petton |
Subject: |
[elpa] new-website b2327c0: Merge branch 'master' into new-website |
Date: |
Wed, 30 Nov 2016 10:12:07 +0000 (UTC) |
branch: new-website
commit b2327c0090fab0c33d274cb20f7a079ac31c1555
Merge: cf17f8b 276be67
Author: Nicolas Petton <address@hidden>
Commit: Nicolas Petton <address@hidden>
Merge branch 'master' into new-website
---
copyright_exceptions | 1 -
externals-list | 2 +
packages/ada-mode/NEWS | 27 +
packages/ada-mode/README | 2 +-
packages/ada-mode/ada-build.el | 3 +-
packages/ada-mode/ada-gnat-compile.el | 8 +-
packages/ada-mode/ada-gnat-xref.el | 15 +-
packages/ada-mode/ada-grammar-wy.el | 2422 ++++++++++----------
packages/ada-mode/ada-mode.el | 43 +-
packages/ada-mode/ada-mode.info | 46 +-
packages/ada-mode/ada-mode.texi | 20 +-
packages/ada-mode/ada-wisi-opentoken.el | 19 +-
packages/ada-mode/ada-wisi.el | 1965 +++++++---------
packages/ada-mode/gnat-core.el | 10 +-
packages/ada-mode/gpr-query.el | 13 +-
packages/ada-mode/gpr-wisi.el | 25 +-
packages/aggressive-indent/aggressive-indent.el | 23 +-
packages/async/async.el | 36 +
packages/async/dired-async.el | 2 +-
packages/beacon/beacon.el | 15 +-
packages/company/NEWS.md | 13 +
packages/company/company-dabbrev-code.el | 2 +-
packages/company/company-files.el | 42 +-
packages/company/company-gtags.el | 3 +-
packages/company/company-keywords.el | 10 +
packages/company/company-tests.el | 5 +-
packages/company/company.el | 122 +-
packages/company/test/files-tests.el | 48 +
packages/company/test/frontends-tests.el | 12 +-
packages/debbugs/Debbugs.wsdl | 4 +-
packages/debbugs/README | 10 +-
packages/debbugs/debbugs-browse.el | 2 +-
packages/debbugs/debbugs-gnu.el | 47 +-
packages/debbugs/debbugs-org.el | 19 +-
packages/debbugs/debbugs-ug.info | 14 +-
packages/debbugs/debbugs-ug.texi | 6 +-
packages/debbugs/debbugs.el | 12 +-
packages/debbugs/debbugs.info | 20 +-
packages/debbugs/debbugs.texi | 10 +-
packages/el-search/el-search-x.el | 293 ++-
packages/el-search/el-search.el | 1990 ++++++++++------
packages/excorporate/NEWS | 6 +
packages/excorporate/excorporate.el | 7 +-
packages/excorporate/excorporate.texi | 6 +-
packages/ggtags/README.rst | 36 +-
packages/ggtags/ggtags.el | 145 +-
packages/highlight-escape-sequences/README.md | 15 +
.../highlight-escape-sequences.el | 250 ++
.../highlight-escape-sequences.png | Bin 0 -> 20292 bytes
packages/metar/metar.el | 32 +-
packages/nameless/nameless.el | 6 +-
packages/parsec/.gitignore | 3 +
packages/parsec/README.org | 378 +++
packages/parsec/examples/full-csv-parser-tests.el | 51 +
packages/parsec/examples/full-csv-parser.el | 61 +
packages/parsec/examples/pjson-tests.el | 102 +
packages/parsec/examples/pjson.el | 124 +
packages/parsec/examples/scheme-tests.el | 88 +
packages/parsec/examples/scheme.el | 108 +
.../parsec/examples/simple-csv-parser-tests.el | 39 +
packages/parsec/examples/simple-csv-parser.el | 55 +
packages/parsec/examples/url-str-parser-tests.el | 48 +
packages/parsec/examples/url-str-parser.el | 56 +
packages/parsec/parsec-tests.el | 481 ++++
packages/parsec/parsec.el | 1042 +++++++++
packages/seq/seq-24.el | 7 +
packages/seq/seq-25.el | 9 +-
packages/seq/seq.el | 2 +-
packages/seq/tests/seq-tests.el | 15 +
packages/sml-mode/sml-mode.el | 1 -
packages/sml-mode/testcases.sml | 7 +-
packages/sotlisp/sotlisp.el | 21 +-
packages/spinner/spinner.el | 4 +-
packages/stream/stream.el | 40 +-
packages/url-http-ntlm/url-http-ntlm.el | 78 +-
packages/validate/validate.el | 8 +-
packages/wisi/NEWS | 6 +
packages/wisi/README | 2 +-
packages/wisi/wisi.el | 28 +-
packages/yasnippet/.travis.yml | 7 +
packages/yasnippet/CONTRIBUTING.md | 2 +-
packages/yasnippet/NEWS | 50 +-
packages/yasnippet/README.mdown | 14 +-
packages/yasnippet/Rakefile | 6 +-
packages/yasnippet/doc/index.org | 2 +-
packages/yasnippet/doc/nav-menu.html.inc | 2 +-
packages/yasnippet/doc/snippet-development.org | 23 +-
packages/yasnippet/doc/snippet-expansion.org | 6 +-
packages/yasnippet/yasnippet-tests.el | 238 +-
packages/yasnippet/yasnippet.el | 676 +++---
packages/ztree/ztree-diff-model.el | 25 +-
packages/ztree/ztree-diff.el | 2 +
packages/ztree/ztree-dir.el | 9 +-
packages/ztree/ztree-util.el | 14 +
packages/ztree/ztree.el | 2 +-
95 files changed, 8009 insertions(+), 3817 deletions(-)
diff --git a/copyright_exceptions b/copyright_exceptions
index 563cab3..da73782 100644
--- a/copyright_exceptions
+++ b/copyright_exceptions
@@ -18,7 +18,6 @@
./ada-mode/gpr-skel.el: "Insert a file header comment, with automatic
copyright year and prompt for copyright owner/license.
./ada-mode/gpr-skel.el: "{copyright_license}\n"
./auctex/latex.el: "pounds" "copyright"
-./auctex/multi-prompt.el
./auctex/plain-tex.el: "copyright"
./auctex/style/amsart.el
./auctex/style/amsbook.el
diff --git a/externals-list b/externals-list
index 00dffd4..f520721 100644
--- a/externals-list
+++ b/externals-list
@@ -58,6 +58,7 @@
("ggtags" :subtree "https://github.com/leoliu/ggtags")
("gnome-c-style" :subtree "https://github.com/ueno/gnome-c-style.git")
("gnorb" :subtree "https://github.com/girzel/gnorb")
+ ("highlight-escape-sequences" :subtree
"https://github.com/dgutov/highlight-escape-sequences/")
("hyperbole" :external
"http://git.savannah.gnu.org/r/hyperbole.git")
("ioccur" :subtree
"https://github.com/thierryvolpiatto/ioccur.git")
("js2-mode" :subtree "https://github.com/mooz/js2-mode.git")
@@ -69,6 +70,7 @@
("ntlm" :core "lisp/net/ntlm.el")
("on-screen" :subtree
"https://github.com/michael-heerdegen/on-screen.el.git")
("pabbrev" :external "https://github.com/phillord/pabbrev.git")
+ ("parsec" :subtree
"https://github.com/cute-jumper/parsec.el.git")
("pinentry" :subtree "https://github.com/ueno/pinentry-el.git")
("python" :core "lisp/progmodes/python.el")
;;FIXME:("org" :external ??) ;; Need to introduce snapshots!!
diff --git a/packages/ada-mode/NEWS b/packages/ada-mode/NEWS
index 90a0ad4..328c436 100644
--- a/packages/ada-mode/NEWS
+++ b/packages/ada-mode/NEWS
@@ -7,7 +7,34 @@ 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.2.1
+31 Oct 2016
+
+** A line starting with '(' is now always indented with
+ ada-indent-broken. Previously, in some cases it was indented by
+ ada-indent - 1. Since the defaults set ada-indent = 3,
+ ada-indent-broken = 2, this is transparent unless you use other
+ values.
+
+** GPR_PROJECT_PATH is set in the compilation process environment when
+ the Ada project is selected, and cleared when the project is
+ deselected. This allows selecting other Emacs projects, then
+ returning to an Ada project.
+
+** New function ada-show-local-references (bound to C-c C-l) searches
+ for references within the current file only.
+
+** New option ada-xref-full-path (default nil) if t, shows full paths
+ in cross references.
+
+** The indentation functions are significantly rewritten to make them
+ better organized and easier to understand and maintain. This
+ resulted in some minor indentation changes, mostly for consistency;
+ in particular, case expressions are indented by ada-indent-broken,
+ to match if espressions.
+
* Ada mode 5.2.0
+26 Jul 2016
** GNAT 2016 drops support for 'gnat find'; users must use gpr_query.
diff --git a/packages/ada-mode/README b/packages/ada-mode/README
index 03ccda9..384e3ef 100755
--- a/packages/ada-mode/README
+++ b/packages/ada-mode/README
@@ -1,4 +1,4 @@
-Emacs Ada mode version 5.2.0
+Emacs Ada mode version 5.2.1
Ada mode requires Emacs 24.2 or greater
diff --git a/packages/ada-mode/ada-build.el b/packages/ada-mode/ada-build.el
index 6b28042..c166edd 100644
--- a/packages/ada-mode/ada-build.el
+++ b/packages/ada-mode/ada-build.el
@@ -37,6 +37,7 @@
(require 'ada-mode-compat-24.2)
(require 'ada-mode)
+(require 'cl-lib)
;;;; User customization
@@ -249,7 +250,7 @@ If CONFIRM or `ada-build-confirm-command' are non-nil, ask
for
user confirmation of the command, using PROMPT."
(ada-build-require-project-file)
(let ((cmd (ada-prj-get prj-field))
- (process-environment (ada-prj-get 'proc_env)))
+ (process-environment (cl-copy-list (ada-prj-get 'proc_env))))
(unless cmd
(setq cmd '("")
diff --git a/packages/ada-mode/ada-gnat-compile.el
b/packages/ada-mode/ada-gnat-compile.el
index c0d2156..9582f84 100755
--- a/packages/ada-mode/ada-gnat-compile.el
+++ b/packages/ada-mode/ada-gnat-compile.el
@@ -6,7 +6,7 @@
;;
;; GNAT is provided by AdaCore; see http://libre.adacore.com/
;;
-;;; Copyright (C) 2012 - 2015 Free Software Foundation, Inc.
+;;; Copyright (C) 2012 - 2016 Free Software Foundation, Inc.
;;
;; Author: Stephen Leake <address@hidden>
;; Maintainer: Stephen Leake <address@hidden>
@@ -34,6 +34,7 @@
;; By default, ada-mode is configured to load this file, so nothing
;; special needs to done to use it.
+(require 'cl-lib)
(require 'compile)
(require 'gnat-core)
@@ -589,6 +590,10 @@ Prompt user if more than one."
;;
;; find error locations in .gpr files
(setq compilation-search-path (append compilation-search-path (ada-prj-get
'prj_dir)))
+ (setq compilation-environment
+ (list
+ (let ((process-environment (cl-copy-list (ada-prj-get 'proc_env))))
+ (concat "GPR_PROJECT_PATH=" (getenv "GPR_PROJECT_PATH")))))
;; must be after indentation engine setup, because that resets the
;; indent function list.
@@ -608,6 +613,7 @@ Prompt user if more than one."
(setq ada-syntax-propertize-hook (delq 'ada-gnat-syntax-propertize
ada-syntax-propertize-hook))
;; don't need to delete from compilation-search-path; completely rewritten
in ada-select-prj-file
+ (setq compilation-environment nil)
(setq ada-mode-hook (delq 'gnatprep-setup ada-mode-hook))
diff --git a/packages/ada-mode/ada-gnat-xref.el
b/packages/ada-mode/ada-gnat-xref.el
index 58719a5..85ffcef 100755
--- a/packages/ada-mode/ada-gnat-xref.el
+++ b/packages/ada-mode/ada-gnat-xref.el
@@ -139,28 +139,31 @@
)
))
-(defun ada-gnat-xref-all (identifier file line col)
+(defun ada-gnat-xref-all (identifier file line col local-only)
"For `ada-xref-all-function'."
;; we use `compilation-start' to run gnat, not `gnat-run', so it
;; is asynchronous, and automatically runs the compilation error
;; filter.
- (let* ((cmd (format "%sgnat find -a -r %s:%s:%d:%d"
+ (let* ((cmd (format "%sgnat find -a -r %s %s:%s:%d:%d %s"
(or (ada-prj-get 'target) "")
- identifier file line col)))
+ (if ada-xref-full-path "-f" "")
+ identifier file line col (if local-only file ""))))
(with-current-buffer (gnat-run-buffer); for default-directory
- (let ((compilation-environment (ada-prj-get 'proc_env))
- (compilation-error "reference")
+ (let ((compilation-error "reference")
;; gnat find uses standard gnu format for output, so don't
;; need to set compilation-error-regexp-alist
)
+ ;; compilation-environment is buffer-local; don't set in 'let'
+ (setq compilation-environment (ada-prj-get 'proc_env))
+
(when (ada-prj-get 'gpr_file)
(setq cmd (concat cmd " -P" (file-name-nondirectory (ada-prj-get
'gpr_file)))))
(compilation-start cmd
'compilation-mode
- (lambda (name) (concat name "-gnatfind")))
+ (lambda (name) (concat "*" name "-gnatfind*")))
))))
;;;;; setup
diff --git a/packages/ada-mode/ada-grammar-wy.el
b/packages/ada-mode/ada-grammar-wy.el
index be0c5f7..f98d8b9 100755
--- a/packages/ada-mode/ada-grammar-wy.el
+++ b/packages/ada-mode/ada-grammar-wy.el
@@ -215,7 +215,7 @@
(progn
(wisi-statement-action [1 open-paren 3 close-paren])
(wisi-containing-action 1 2)))
- ((LEFT_PAREN expression WITH association_list RIGHT_PAREN )
+ ((LEFT_PAREN expression_opt WITH association_list RIGHT_PAREN )
(progn
(wisi-statement-action [1 open-paren 3 statement-other 5 close-paren])
(wisi-containing-action 1 2)
@@ -225,7 +225,7 @@
(progn
(wisi-statement-action [1 open-paren 3 close-paren])
(wisi-containing-action 1 2)))
- ((LEFT_PAREN expression WITH NULL RECORD RIGHT_PAREN )
+ ((LEFT_PAREN expression_opt WITH NULL RECORD RIGHT_PAREN )
(progn
(wisi-statement-action [1 open-paren 3 statement-other 6 close-paren])
(wisi-containing-action 1 2)
@@ -250,7 +250,7 @@
(wisi-containing-action 2 3)
(wisi-containing-action 5 6))))
(aspect_clause
- ((FOR attribute_reference USE expression SEMICOLON )
+ ((FOR attribute_reference USE expression_opt SEMICOLON )
(progn
(wisi-statement-action [1 statement-start 3 statement-other 5
statement-end])
(wisi-containing-action 3 4)))
@@ -264,18 +264,15 @@
(wisi-statement-action [1 statement-other])
(wisi-containing-action 1 2))))
(assignment_statement
- ((name COLON_EQUAL expression SEMICOLON )
+ ((name COLON_EQUAL expression_opt SEMICOLON )
(progn
(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-containing-action 2 3)))
+ ((CHARACTER_LITERAL EQUAL_GREATER expression_opt ))
((CHARACTER_LITERAL EQUAL_GREATER BOX ))
- ((discrete_choice_list EQUAL_GREATER expression )
+ ((discrete_choice_list EQUAL_GREATER expression_opt )
(progn
(wisi-statement-action [2 statement-other])
(wisi-containing-action 2 3)))
@@ -294,7 +291,7 @@
(wisi-containing-action 1 2)
(wisi-containing-action 3 5))))
(at_clause
- ((FOR direct_name USE AT expression SEMICOLON )
+ ((FOR direct_name USE AT expression_opt SEMICOLON )
(progn
(wisi-statement-action [1 statement-start 4 statement-other 6
statement-end])
(wisi-containing-action 4 5))))
@@ -331,13 +328,13 @@
((task_body_stub ))
((protected_body_stub )))
(case_expression
- ((CASE expression IS case_expression_alternative_list )
+ ((CASE expression_opt IS case_expression_alternative_list )
(progn
(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 )
+ ((WHEN discrete_choice_list EQUAL_GREATER expression_opt )
(progn
(wisi-statement-action [1 block-middle 3 statement-other])
(wisi-containing-action 1 3)
@@ -346,8 +343,7 @@
((case_expression_alternative ))
((case_expression_alternative_list COMMA case_expression_alternative )
(progn
- (wisi-statement-action [2 list-break])
- (wisi-containing-action 2 3))))
+ (wisi-statement-action [2 list-break]))))
(case_statement
((CASE expression_opt IS case_statement_alternative_list END CASE
SEMICOLON )
(progn
@@ -408,7 +404,7 @@
((component_clause ))
((component_clause_list component_clause )))
(component_declaration
- ((identifier_list COLON component_definition COLON_EQUAL expression
aspect_specification_opt SEMICOLON )
+ ((identifier_list COLON component_definition COLON_EQUAL expression_opt
aspect_specification_opt SEMICOLON )
(progn
(wisi-statement-action [1 statement-start 2 statement-other 4
statement-other 7 statement-end])
(wisi-containing-action 2 3)
@@ -478,7 +474,7 @@
((generic_declaration ))
((generic_instantiation ))
((null_procedure_declaration ))
- ((identifier_list COLON CONSTANT COLON_EQUAL expression SEMICOLON )
+ ((identifier_list COLON CONSTANT COLON_EQUAL expression_opt SEMICOLON )
(progn
(wisi-statement-action [1 statement-start 6 statement-end])
(wisi-containing-action 1 5)))
@@ -499,11 +495,11 @@
(delay_alternative
((delay_statement sequence_of_statements_opt )))
(delay_statement
- ((DELAY UNTIL expression SEMICOLON )
+ ((DELAY UNTIL expression_opt SEMICOLON )
(progn
(wisi-statement-action [1 statement-start 4 statement-end])
(wisi-containing-action 1 3)))
- ((DELAY expression SEMICOLON )
+ ((DELAY expression_opt SEMICOLON )
(progn
(wisi-statement-action [1 statement-start 3 statement-end])
(wisi-containing-action 1 2))))
@@ -547,9 +543,9 @@
(wisi-containing-action 1 2))))
(discriminant_specification_opt
(())
- ((identifier_list COLON null_exclusion_opt_name_type COLON_EQUAL
expression ))
+ ((identifier_list COLON null_exclusion_opt_name_type COLON_EQUAL
expression_opt ))
((identifier_list COLON null_exclusion_opt_name_type ))
- ((identifier_list COLON access_definition COLON_EQUAL expression ))
+ ((identifier_list COLON access_definition COLON_EQUAL expression_opt ))
((identifier_list COLON access_definition )))
(discriminant_specification_list
((discriminant_specification_opt ))
@@ -558,7 +554,7 @@
(wisi-statement-action [2 list-break])
(wisi-containing-action 2 3))))
(elsif_expression_item
- ((ELSIF expression THEN expression )
+ ((ELSIF expression_opt THEN expression_opt )
(progn
(wisi-statement-action [1 statement-other 3 block-middle])
(wisi-containing-action 1 2)
@@ -622,8 +618,8 @@
(enumeration_representation_clause
((FOR name USE aggregate 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 5 statement-end])
+ (wisi-containing-action 1 4)
(wisi-face-action [2 font-lock-type-face]))))
(enumeration_type_definition
((LEFT_PAREN enumeration_literal_list RIGHT_PAREN )
@@ -661,8 +657,8 @@
(exit_statement
((EXIT identifier_opt WHEN expression_opt 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 5 statement-end])
+ (wisi-containing-action 1 4)))
((EXIT identifier_opt SEMICOLON )
(wisi-statement-action [1 statement-start 3 statement-end])))
(expression
@@ -674,7 +670,9 @@
((relation_xor_list )))
(expression_opt
(())
- ((expression )))
+ ((expression )
+ (wisi-statement-action [1 expression-start])
+ (wisi-containing-action 1 1)))
(expression_function_declaration
((overriding_indicator_opt function_specification IS paren_expression
aspect_specification_opt SEMICOLON )
(progn
@@ -682,7 +680,7 @@
(wisi-containing-action 3 4)
(wisi-containing-action 2 5))))
(extended_return_object_declaration
- ((IDENTIFIER COLON aliased_opt constant_opt return_subtype_indication
COLON_EQUAL expression )
+ ((IDENTIFIER COLON aliased_opt constant_opt return_subtype_indication
COLON_EQUAL expression_opt )
(progn
(wisi-statement-action [1 statement-start 6 statement-other])
(wisi-containing-action 6 7)))
@@ -705,7 +703,7 @@
((ABS primary ))
((NOT primary )))
(formal_object_declaration
- ((identifier_list COLON mode_opt null_exclusion_opt name COLON_EQUAL
expression aspect_specification_opt SEMICOLON )
+ ((identifier_list COLON mode_opt null_exclusion_opt name COLON_EQUAL
expression_opt aspect_specification_opt SEMICOLON )
(progn
(wisi-statement-action [1 statement-start 6 statement-other 9
statement-end])
(wisi-containing-action 6 7)
@@ -716,7 +714,7 @@
(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 )
+ ((identifier_list COLON mode_opt access_definition COLON_EQUAL
expression_opt aspect_specification_opt SEMICOLON )
(progn
(wisi-statement-action [1 statement-start 5 statement-other 8
statement-end])
(wisi-containing-action 5 6)
@@ -845,21 +843,21 @@
(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-containing-action 4 5)
- (wisi-containing-action 5 6)
+ (wisi-statement-action [1 statement-start 2 name 3 statement-other 7
statement-end])
+ (wisi-containing-action 3 5)
+ (wisi-containing-action 3 6)
(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-containing-action 5 6)
- (wisi-containing-action 6 7)
+ (wisi-statement-action [1 statement-start 2 block-middle 3 name 4
statement-other 8 statement-end])
+ (wisi-containing-action 4 6)
+ (wisi-containing-action 4 7)
(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-containing-action 5 6)
- (wisi-containing-action 6 7)
+ (wisi-statement-action [1 statement-start 2 block-middle 3 name 4
statement-other 8 statement-end])
+ (wisi-containing-action 4 6)
+ (wisi-containing-action 4 7)
(wisi-face-action [3 font-lock-function-name-face 6
font-lock-function-name-face]))))
(generic_package_declaration
((generic_formal_part package_specification SEMICOLON )
@@ -907,7 +905,7 @@
(())
((IDENTIFIER )))
(if_expression
- ((IF expression THEN expression elsif_expression_list ELSE expression )
+ ((IF expression_opt THEN expression_opt elsif_expression_list ELSE
expression_opt )
(progn
(wisi-statement-action [1 statement-start 3 block-middle 6
block-middle])
(wisi-containing-action 1 2)
@@ -915,21 +913,21 @@
(wisi-containing-action 3 5)
(wisi-containing-action 6 7)
(wisi-motion-action [1 3 [5 statement-other ELSIF block-middle THEN]
6])))
- ((IF expression THEN expression elsif_expression_list )
+ ((IF expression_opt THEN expression_opt elsif_expression_list )
(progn
(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]])))
- ((IF expression THEN expression ELSE expression )
+ ((IF expression_opt THEN expression_opt ELSE expression_opt )
(progn
(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])))
- ((IF expression THEN expression )
+ ((IF expression_opt THEN expression_opt )
(progn
(wisi-statement-action [1 statement-start 3 block-middle])
(wisi-containing-action 1 2)
@@ -1023,8 +1021,10 @@
((iterator_specification )))
(label_opt
(())
- ((goto_label ))
- ((IDENTIFIER COLON )))
+ ((goto_label )
+ (wisi-statement-action [1 label]))
+ ((IDENTIFIER COLON )
+ (wisi-statement-action [1 label])))
(library_item
((PRIVATE library_unit_declaration ))
((library_unit_declaration ))
@@ -1059,7 +1059,7 @@
((range )))
(mod_clause_opt
(())
- ((AT MOD expression SEMICOLON )))
+ ((AT MOD expression_opt SEMICOLON )))
(mode_opt
(())
((IN ))
@@ -1114,7 +1114,7 @@
(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 )
+ ((identifier_list COLON aliased_opt constant_opt subtype_indication
COLON_EQUAL expression_opt aspect_specification_opt SEMICOLON )
(progn
(wisi-statement-action [1 statement-start 2 statement-other 6
statement-other 9 statement-end])
(wisi-containing-action 2 5)
@@ -1125,7 +1125,7 @@
(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 )
+ ((identifier_list COLON aliased_opt constant_opt access_definition
COLON_EQUAL expression_opt aspect_specification_opt SEMICOLON )
(progn
(wisi-statement-action [1 statement-start 2 statement-other 6
statement-other 9 statement-end])
(wisi-containing-action 2 5)
@@ -1136,7 +1136,7 @@
(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 )
+ ((identifier_list COLON aliased_opt constant_opt array_type_definition
COLON_EQUAL expression_opt aspect_specification_opt SEMICOLON )
(progn
(wisi-statement-action [1 statement-start 2 statement-other 6
statement-other 9 statement-end])
(wisi-containing-action 2 5)
@@ -1251,11 +1251,12 @@
(())
((formal_part )))
(parameter_specification
- ((identifier_list COLON aliased_opt mode_opt null_exclusion_opt name
COLON_EQUAL expression )
+ (())
+ ((identifier_list COLON aliased_opt mode_opt null_exclusion_opt name
COLON_EQUAL expression_opt )
(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]))
- ((identifier_list COLON aliased_opt access_definition COLON_EQUAL
expression ))
+ ((identifier_list COLON aliased_opt access_definition COLON_EQUAL
expression_opt ))
((identifier_list COLON aliased_opt access_definition )))
(parameter_specification_list
((parameter_specification ))
@@ -1264,7 +1265,7 @@
(wisi-statement-action [2 list-break])
(wisi-containing-action 2 3))))
(paren_expression
- ((LEFT_PAREN expression RIGHT_PAREN )
+ ((LEFT_PAREN expression_opt RIGHT_PAREN )
(progn
(wisi-statement-action [1 open-paren 3 close-paren])
(wisi-containing-action 1 2)))
@@ -1273,7 +1274,12 @@
(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 )
+ ((PRAGMA IDENTIFIER LEFT_PAREN 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-face-action [2 font-lock-function-name-face])))
+ ((PRAGMA IDENTIFIER LEFT_PAREN conditional_quantified_expression
RIGHT_PAREN SEMICOLON )
(progn
(wisi-statement-action [1 statement-start 3 open-paren 5 close-paren 6
statement-end])
(wisi-containing-action 3 4)
@@ -1282,14 +1288,6 @@
(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 ))
- ((conditional_quantified_expression ))
- ((IDENTIFIER TICK IDENTIFIER EQUAL_GREATER expression )))
- (pragma_argument_association_list
- ((pragma_argument_association ))
- ((pragma_argument_association_list COMMA pragma_argument_association )))
(primary
((NUMERIC_LITERAL )
(wisi-face-action [1 font-lock-constant-face]))
@@ -1301,10 +1299,10 @@
(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 4 statement-other 6
statement-other 12 statement-end])
+ (wisi-statement-action [1 statement-start 2 name 4 statement-other 12
statement-end])
(wisi-containing-action 1 3)
- (wisi-containing-action 6 7)
- (wisi-containing-action 6 8)
+ (wisi-containing-action 4 7)
+ (wisi-containing-action 4 8)
(wisi-containing-action 4 11)
(wisi-face-action [2 font-lock-type-face]))))
(private_type_declaration
@@ -1393,27 +1391,27 @@
(wisi-containing-action 1 3)
(wisi-face-action [1 font-lock-type-face]))))
(quantified_expression
- ((FOR quantifier iterator_specification EQUAL_GREATER expression )
+ ((FOR quantifier iterator_specification EQUAL_GREATER expression_opt )
(progn
- (wisi-statement-action [4 statement-other])
- (wisi-containing-action 4 5))))
+ (wisi-statement-action [1 expression-start])
+ (wisi-containing-action 1 5))))
(quantifier
((ALL ))
((SOME )))
(raise_expression
((RAISE name ))
- ((RAISE name WITH expression )))
+ ((RAISE name WITH expression_opt )))
(raise_statement
((RAISE SEMICOLON )
(wisi-statement-action [1 statement-start 2 statement-end]))
- ((RAISE name WITH expression SEMICOLON )
+ ((RAISE name WITH expression_opt SEMICOLON )
(progn
(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])))
(range
- ((name TICK RANGE LEFT_PAREN expression RIGHT_PAREN )
+ ((name TICK RANGE LEFT_PAREN expression_opt RIGHT_PAREN )
(progn
(wisi-statement-action [4 open-paren 6 close-paren])
(wisi-containing-action 4 5)))
@@ -1511,26 +1509,25 @@
(wisi-containing-action 1 2)
(wisi-motion-action [1 [2 block-middle OR] 3]))))
(select_alternative
- ((WHEN expression EQUAL_GREATER accept_statement
sequence_of_statements_opt )
+ ((WHEN expression_opt EQUAL_GREATER accept_statement
sequence_of_statements_opt )
(progn
(wisi-statement-action [1 block-start 3 statement-other])
(wisi-containing-action 1 2)
(wisi-containing-action 1 3)
- (wisi-containing-action 3 4)
- (wisi-containing-action 3 5)))
+ (wisi-containing-action 1 4)
+ (wisi-containing-action 1 5)))
((accept_statement sequence_of_statements_opt ))
- ((WHEN expression EQUAL_GREATER delay_alternative )
+ ((WHEN expression_opt EQUAL_GREATER delay_alternative )
(progn
- (wisi-statement-action [1 block-start 3 statement-other])
+ (wisi-statement-action [1 block-start])
(wisi-containing-action 1 2)
- (wisi-containing-action 1 3)
- (wisi-containing-action 3 4)))
+ (wisi-containing-action 1 4)))
((delay_alternative ))
- ((WHEN expression EQUAL_GREATER TERMINATE SEMICOLON )
+ ((WHEN expression_opt 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 4 statement-start 5
statement-end])
(wisi-containing-action 1 2)
- (wisi-containing-action 1 3)))
+ (wisi-containing-action 1 4)))
((TERMINATE SEMICOLON )
(wisi-statement-action [1 statement-start 2 statement-end])))
(select_alternative_list
@@ -1558,7 +1555,7 @@
(simple_return_statement
((RETURN SEMICOLON )
(wisi-statement-action [1 statement-start 2 statement-end]))
- ((RETURN expression SEMICOLON )
+ ((RETURN expression_opt SEMICOLON )
(progn
(wisi-statement-action [1 statement-start 3 statement-end])
(wisi-containing-action 1 2))))
@@ -1583,6 +1580,7 @@
((PROTECTED IDENTIFIER aspect_specification_opt IS NEW interface_list
WITH protected_definition SEMICOLON )
(progn
(wisi-statement-action [1 statement-start 2 name 4 block-middle 7
block-middle 9 statement-end])
+ (wisi-motion-action [1 4 [8 block-middle PRIVATE block-end END]])
(wisi-containing-action 1 2)
(wisi-containing-action 2 3)
(wisi-containing-action 4 6)
@@ -1591,6 +1589,7 @@
((PROTECTED IDENTIFIER aspect_specification_opt IS protected_definition
SEMICOLON )
(progn
(wisi-statement-action [1 statement-start 2 name 4 block-middle 6
statement-end])
+ (wisi-motion-action [1 4 [5 block-middle PRIVATE block-end END]])
(wisi-containing-action 1 2)
(wisi-containing-action 2 3)
(wisi-containing-action 4 5)
@@ -1599,6 +1598,7 @@
((TASK IDENTIFIER aspect_specification_opt IS NEW interface_list WITH
task_definition SEMICOLON )
(progn
(wisi-statement-action [1 statement-start 2 name 4 block-middle 7
block-middle 9 statement-end])
+ (wisi-motion-action [1 4 [8 block-middle PRIVATE block-end END]])
(wisi-containing-action 1 2)
(wisi-containing-action 2 3)
(wisi-containing-action 4 6)
@@ -1607,6 +1607,7 @@
((TASK IDENTIFIER aspect_specification_opt IS task_definition SEMICOLON
)
(progn
(wisi-statement-action [1 statement-start 2 name 4 block-middle 6
statement-end])
+ (wisi-motion-action [1 4 [5 block-middle PRIVATE block-end END]])
(wisi-containing-action 1 2)
(wisi-containing-action 2 3)
(wisi-containing-action 4 5)
@@ -1615,13 +1616,13 @@
(progn
(wisi-statement-action [1 statement-start 2 name 4 statement-end])
(wisi-containing-action 1 2)
- (wisi-containing-action 2 3)
+ (wisi-containing-action 1 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 [2 statement-start]))
((label_opt compound_statement )
- (wisi-statement-action [1 statement-start 2 statement-other])))
+ (wisi-statement-action [2 statement-start])))
(subprogram_body
((overriding_indicator_opt subprogram_specification
aspect_specification_opt IS declarative_part_opt BEGIN
handled_sequence_of_statements END name_opt SEMICOLON )
(progn
@@ -1753,10 +1754,10 @@
(type_definition
((enumeration_type_definition ))
((RANGE simple_expression DOT_DOT simple_expression ))
- ((MOD expression ))
- ((DIGITS expression real_range_specification_opt ))
- ((DELTA expression real_range_specification_opt ))
- ((DELTA expression DIGITS expression real_range_specification_opt ))
+ ((MOD expression_opt ))
+ ((DIGITS expression_opt real_range_specification_opt ))
+ ((DELTA expression_opt real_range_specification_opt ))
+ ((DELTA expression_opt DIGITS expression_opt
real_range_specification_opt ))
((array_type_definition ))
((record_type_definition ))
((access_definition ))
@@ -1773,10 +1774,9 @@
(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])
(wisi-containing-action 1 2)
- (wisi-containing-action 1 3)
- (wisi-containing-action 3 4))))
+ (wisi-containing-action 1 4))))
(unary_adding_operator
((PLUS ))
((MINUS )))
@@ -1905,32 +1905,32 @@
((default . error) (PACKAGE . (generic_formal_parameter_declaration .
4)) (PROCEDURE . (generic_formal_parameter_declaration . 4)) (FUNCTION .
(generic_formal_parameter_declaration . 4)) (IDENTIFIER .
(generic_formal_parameter_declaration . 4)) (WITH .
(generic_formal_parameter_declaration . 4)) (USE .
(generic_formal_parameter_declaration . 4)) (TYPE .
(generic_formal_parameter_declaration . 4)) (PRAGMA .
(generic_formal_parameter_declaration . 4)))
((default . error) (PACKAGE . (generic_formal_parameter_declaration .
5)) (PROCEDURE . (generic_formal_parameter_declaration . 5)) (FUNCTION .
(generic_formal_parameter_declaration . 5)) (IDENTIFIER .
(generic_formal_parameter_declaration . 5)) (WITH .
(generic_formal_parameter_declaration . 5)) (USE .
(generic_formal_parameter_declaration . 5)) (TYPE .
(generic_formal_parameter_declaration . 5)) (PRAGMA .
(generic_formal_parameter_declaration . 5)))
((default . error) (DOT . 90) (TICK . 91) (RETURN . 89) (LEFT_PAREN .
88))
- ((default . error) (FOR . 146) (CASE . 145) (IF . 147) (RIGHT_PAREN .
((expression_opt . 0) (association_opt . 0))) (COMMA . ((expression_opt . 0)
(association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (CHARACTER_LITERAL . 183) (STRING_LITERAL . 49)
(IDENTIFIER . 235) (PLUS . 154) (MINUS . 153) (OTHERS . 182) (ABS . 144)
(NOT . 181) (RAISE . 152) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(LEFT_PAREN . 148))
- ((default . error) (IDENTIFIER . (null_exclusion_opt . 0))
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL .
(null_exclusion_opt . 0)) (DO . (null_exclusion_opt . 0)) (COLON_EQUAL .
(null_exclusion_opt . 0)) (RIGHT_PAREN . (null_exclusion_opt . 0)) (RENAMES .
(null_exclusion_opt . 0)) (IS . (null_exclusion_opt . 0)) (SEMICOLON .
(null_exclusion_opt . 0)) (WITH . (null_exclusion_opt . 0)) (ACCESS .
(null_exclusion_opt . 0)) (NOT . 232))
- ((default . error) (IDENTIFIER . 229) (CHARACTER_LITERAL . 231)
(STRING_LITERAL . 230) (ALL . 228))
- ((default . error) (LEFT_PAREN . 148) (ACCESS . 221) (DELTA . 222)
(DIGITS . 223) (MOD . 224) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (DO . (name . 5)) (OF . (name . 5))
(CHARACTER_LITERAL . (name . 5)) (STRING_LITERAL . (name . 5)) (IDENTIFIER .
(name . 5)) (LESS_LESS . (name . 5)) (WHILE . (name . 5)) (SELECT . (name . 5))
(REQUEUE . (name . 5)) (RAISE . (name . 5)) (PRAGMA . (name . 5)) (NULL . (name
. 5)) (LOOP . (name . 5)) (IF . (name . 5)) (GOTO . (name . 5)) (FOR . (name .
5)) (EXIT . (name . 5)) (DELAY . (name . 5)) (DECLARE . (name . 5)) (CASE .
(name . 5)) (BEGIN . (name . 5)) (ABORT [...]
- ((default . error) (RETURN . 220))
+ ((default . error) (SEMICOLON . (parameter_specification . 0)) (FOR .
146) (CASE . 145) (IF . 147) (RIGHT_PAREN . ((expression_opt . 0)
(parameter_specification . 0))) (COMMA . ((expression_opt . 0) (association_opt
. 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (CHARACTER_LITERAL . 157) (STRING_LITERAL . 49)
(IDENTIFIER . 229) (PLUS . 155) (MINUS . 154) (OTHERS . 152) (ABS . 144)
(NOT . 150) (RAISE . 153) (NUMERIC_LITERAL . 156) [...]
+ ((default . error) (IDENTIFIER . (null_exclusion_opt . 0))
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL .
(null_exclusion_opt . 0)) (DO . (null_exclusion_opt . 0)) (COLON_EQUAL .
(null_exclusion_opt . 0)) (RIGHT_PAREN . (null_exclusion_opt . 0)) (RENAMES .
(null_exclusion_opt . 0)) (IS . (null_exclusion_opt . 0)) (SEMICOLON .
(null_exclusion_opt . 0)) (WITH . (null_exclusion_opt . 0)) (ACCESS .
(null_exclusion_opt . 0)) (NOT . 226))
+ ((default . error) (IDENTIFIER . 223) (CHARACTER_LITERAL . 225)
(STRING_LITERAL . 224) (ALL . 222))
+ ((default . error) (LEFT_PAREN . 148) (ACCESS . 215) (DELTA . 216)
(DIGITS . 217) (MOD . 218) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
+ ((default . error) (DO . (name . 5)) (OF . (name . 5))
(CHARACTER_LITERAL . (name . 5)) (STRING_LITERAL . (name . 5)) (IDENTIFIER .
(name . 5)) (LESS_LESS . (name . 5)) (WHILE . (name . 5)) (SELECT . (name . 5))
(REQUEUE . (name . 5)) (RAISE . (name . 5)) (PRAGMA . (name . 5)) (NULL . (name
. 5)) (LOOP . (name . 5)) (IF . (name . 5)) (GOTO . (name . 5)) (FOR . (name .
5)) (EXIT . (name . 5)) (DELAY . (name . 5)) (DECLARE . (name . 5)) (CASE .
(name . 5)) (BEGIN . (name . 5)) (ABORT [...]
+ ((default . error) (RETURN . 214))
((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 . 217) (OUT . 218))
- ((default . error) (IDENTIFIER . 216))
+ ((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 . 211) (OUT . 212))
+ ((default . error) (IDENTIFIER . 210))
((default . error) (IDENTIFIER . (generic_formal_parameter_declarations
. 1)) (WITH . (generic_formal_parameter_declarations . 1)) (USE .
(generic_formal_parameter_declarations . 1)) (TYPE .
(generic_formal_parameter_declarations . 1)) (PRAGMA .
(generic_formal_parameter_declarations . 1)) (FUNCTION .
(generic_formal_parameter_declarations . 1)) (PROCEDURE .
(generic_formal_parameter_declarations . 1)) (PACKAGE .
(generic_formal_parameter_declarations . 1)))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (IS . 213) (SEMICOLON . (aspect_specification_opt .
0)) (WITH . 109))
- ((default . error) (WITH . (discriminant_part_opt . 0)) (SEMICOLON .
(discriminant_part_opt . 0)) (IS . (discriminant_part_opt . 0)) (LEFT_PAREN .
211))
- ((default . error) (DOT . 90) (TICK . 91) (RENAMES . 210) (LEFT_PAREN
. 107))
- ((default . error) (DOT . 90) (TICK . 91) (RENAMES . 209) (LEFT_PAREN
. 107))
- ((default . error) (DOT . 90) (TICK . 91) (RENAMES . 208) (LEFT_PAREN
. 107))
- ((default . error) (COMMA . 120) (SEMICOLON . 207))
+ ((default . error) (IS . 207) (SEMICOLON . (aspect_specification_opt .
0)) (WITH . 109))
+ ((default . error) (WITH . (discriminant_part_opt . 0)) (SEMICOLON .
(discriminant_part_opt . 0)) (IS . (discriminant_part_opt . 0)) (LEFT_PAREN .
205))
+ ((default . error) (DOT . 90) (TICK . 91) (RENAMES . 204) (LEFT_PAREN
. 107))
+ ((default . error) (DOT . 90) (TICK . 91) (RENAMES . 203) (LEFT_PAREN
. 107))
+ ((default . error) (DOT . 90) (TICK . 91) (RENAMES . 202) (LEFT_PAREN
. 107))
+ ((default . error) (COMMA . 120) (SEMICOLON . 201))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (NEW . 205))
- ((default . error) (FOR . 146) (CASE . 145) (IF . 147) (RIGHT_PAREN .
((expression_opt . 0) (association_opt . 0))) (COMMA . ((expression_opt . 0)
(association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (IDENTIFIER . 48) (CHARACTER_LITERAL . 183)
(STRING_LITERAL . 49) (PLUS . 154) (MINUS . 153) (OTHERS . 182) (ABS .
144) (NOT . 181) (RAISE . 152) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW .
149) (LEFT_PAREN . 148))
+ ((default . error) (NEW . 199))
+ ((default . error) (FOR . 146) (CASE . 145) (IF . 147) (RIGHT_PAREN .
((expression_opt . 0) (association_opt . 0))) (COMMA . ((expression_opt . 0)
(association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (IDENTIFIER . 48) (CHARACTER_LITERAL . 157)
(STRING_LITERAL . 49) (PLUS . 155) (MINUS . 154) (OTHERS . 152) (ABS .
144) (NOT . 150) (RAISE . 153) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW .
149) (LEFT_PAREN . 148))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (SEMICOLON . ((expression_opt . 0) (association_opt .
0))) (IS . ((expression_opt . 0) (association_opt . 0))) (COMMA .
((expression_opt . 0) (association_opt . 0))) (EQUAL_GREATER .
(discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS . 182)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 183) (STRING_LITERAL . 49) (RAISE .
152) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT . 181) (NUMERIC_LITERAL .
155) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
- ((default . error) (IS . 180))
+ ((default . error) (SEMICOLON . ((expression_opt . 0) (association_opt .
0))) (IS . ((expression_opt . 0) (association_opt . 0))) (COMMA .
((expression_opt . 0) (association_opt . 0))) (EQUAL_GREATER .
(discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS . 152)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 157) (STRING_LITERAL . 49) (RAISE .
153) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL .
156) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
+ ((default . error) (IS . 192))
((default . error) (DOT . 90) (TICK . 91) (IS .
(aspect_specification_opt . 0)) (WITH . 109) (LEFT_PAREN . 107))
- ((default . error) (FOR . 146) (CASE . 145) (IF . 147) (RAISE . 152)
(PLUS . 154) (MINUS . 153) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155)
(NULL . 151) (NEW . 149) (IDENTIFIER . 156) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
- ((default . error) (OR . (pragma . 1)) (THEN . (pragma . 1)) (WHEN .
(pragma . 1)) (EXCEPTION . (pragma . 1)) (LESS_LESS . (pragma . 1)) (ACCEPT .
(pragma . 1)) (ABORT . (pragma . 1)) (CASE . (pragma . 1)) (DECLARE . (pragma .
1)) (DELAY . (pragma . 1)) (EXIT . (pragma . 1)) (GOTO . (pragma . 1)) (IF .
(pragma . 1)) (LOOP . (pragma . 1)) (NULL . (pragma . 1)) (RAISE . (pragma .
1)) (REQUEUE . (pragma . 1)) (RETURN . (pragma . 1)) (SELECT . (pragma . 1))
(WHILE . (pragma . 1)) (STRI [...]
+ ((default . error) (FOR . 146) (CASE . 145) (IF . 147) (RIGHT_PAREN .
((expression_opt . 0) (association_opt . 0))) (COMMA . ((expression_opt . 0)
(association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (OTHERS . 152) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 157) (STRING_LITERAL . 49) (RAISE . 153) (PLUS . 155)
(MINUS . 154) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 156) (NULL . 151)
(NEW . 149) (LEFT_PAREN . 148))
+ ((default . error) (OR . (pragma . 2)) (THEN . (pragma . 2)) (WHEN .
(pragma . 2)) (EXCEPTION . (pragma . 2)) (LESS_LESS . (pragma . 2)) (ACCEPT .
(pragma . 2)) (ABORT . (pragma . 2)) (CASE . (pragma . 2)) (DECLARE . (pragma .
2)) (DELAY . (pragma . 2)) (EXIT . (pragma . 2)) (GOTO . (pragma . 2)) (IF .
(pragma . 2)) (LOOP . (pragma . 2)) (NULL . (pragma . 2)) (RAISE . (pragma .
2)) (REQUEUE . (pragma . 2)) (RETURN . (pragma . 2)) (SELECT . (pragma . 2))
(WHILE . (pragma . 2)) (STRI [...]
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
((default . error) (COMMA . 120) (SEMICOLON . 142))
((default . error) (DOT . 90) (TICK . 91) (IS . ( 106
(aspect_specification_opt . 0))) (WITH . 109) (LEFT_PAREN . 107))
@@ -1949,95 +1949,89 @@
((default . error) (SEMICOLON . 135) (IS . 134))
((default . error) (DOT . 90) (TICK . 91) (IS . ( 133
(parameter_profile_opt . 0))) (SEMICOLON . (parameter_profile_opt . 0)) (WITH .
(parameter_profile_opt . 0)) (RENAMES . (parameter_profile_opt . 0))
(LEFT_PAREN . 88))
((default . error) (DOT . 90) (TICK . 91) (IS . 132) (RETURN . 89)
(LEFT_PAREN . 88))
- ((default . error) (NEW . 399))
- ((default . error) (NEW . 398))
- ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE . 11)
(SUBTYPE . 302) (PRAGMA . 7) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(ENTRY . (overriding_indicator_opt . 2)) (FOR . 299) (IDENTIFIER . 305) (TYPE
. 304) (GENERIC . 2) (PROTECTED . 301) (TASK . 303) (PACKAGE . 300))
+ ((default . error) (NEW . 393))
+ ((default . error) (NEW . 392))
+ ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE . 11)
(SUBTYPE . 272) (PRAGMA . 7) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(ENTRY . (overriding_indicator_opt . 2)) (FOR . 269) (IDENTIFIER . 275) (TYPE
. 274) (GENERIC . 2) (PROTECTED . 271) (TASK . 273) (PACKAGE . 270))
((default . error) (IDENTIFIER . (subprogram_declaration . 0)) (TYPE .
(subprogram_declaration . 0)) (TASK . (subprogram_declaration . 0)) (SUBTYPE .
(subprogram_declaration . 0)) (PROTECTED . (subprogram_declaration . 0)) (FOR .
(subprogram_declaration . 0)) (ENTRY . (subprogram_declaration . 0)) (BEGIN .
(subprogram_declaration . 0)) (END . (subprogram_declaration . 0)) (WITH .
(subprogram_declaration . 0)) (USE . (subprogram_declaration . 0)) (SEPARATE .
(subprogram_declaration [...]
((default . error) (DOT . 90) (TICK . 91) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109) (LEFT_PAREN . 107))
((default . error) (BEGIN . (generic_subprogram_declaration . 0)) (ENTRY
. (generic_subprogram_declaration . 0)) (FOR . (generic_subprogram_declaration
. 0)) (FUNCTION . (generic_subprogram_declaration . 0)) (GENERIC .
(generic_subprogram_declaration . 0)) (NOT . (generic_subprogram_declaration .
0)) (OVERRIDING . (generic_subprogram_declaration . 0)) (PACKAGE .
(generic_subprogram_declaration . 0)) (PRAGMA . (generic_subprogram_declaration
. 0)) (PROCEDURE . (generic_subprogram_de [...]
- ((default . error) (COMMA . 120) (SEMICOLON . 395))
+ ((default . error) (COMMA . 120) (SEMICOLON . 389))
((default . error) (IDENTIFIER . (use_clause . 2)) (USE . (use_clause .
2)) (TYPE . (use_clause . 2)) (TASK . (use_clause . 2)) (SUBTYPE . (use_clause
. 2)) (PROTECTED . (use_clause . 2)) (PROCEDURE . (use_clause . 2)) (PRAGMA .
(use_clause . 2)) (PACKAGE . (use_clause . 2)) (OVERRIDING . (use_clause . 2))
(NOT . (use_clause . 2)) (GENERIC . (use_clause . 2)) (FUNCTION . (use_clause .
2)) (FOR . (use_clause . 2)) (ENTRY . (use_clause . 2)) (BEGIN . (use_clause .
2)) (END . (use_cla [...]
((default . error) (DOT . 90) (TICK . 91) (SEMICOLON . (name_list .
1)) (COMMA . (name_list . 1)) (LEFT_PAREN . 107))
- ((default . error) (PROTECTED . 391) (TASK . 392) (PACKAGE . 390)
(NOT . 4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2))
(PROCEDURE . (overriding_indicator_opt . 2)))
+ ((default . error) (PROTECTED . 385) (TASK . 386) (PACKAGE . 384)
(NOT . 4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2))
(PROCEDURE . (overriding_indicator_opt . 2)))
((default . error) ($EOI . (with_clause . 2)) (FUNCTION . (with_clause .
2)) (GENERIC . (with_clause . 2)) (LIMITED . (with_clause . 2)) (NOT .
(with_clause . 2)) (OVERRIDING . (with_clause . 2)) (PACKAGE . (with_clause .
2)) (PRAGMA . (with_clause . 2)) (PRIVATE . (with_clause . 2)) (PROCEDURE .
(with_clause . 2)) (SEPARATE . (with_clause . 2)) (USE . (with_clause . 2))
(WITH . (with_clause . 2)))
((default . error) (SEMICOLON . 135))
- ((default . error) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (ALL . 385) (SOME . 386))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (FOR . 146) (CASE . 145) (IF . 147) (RIGHT_PAREN .
((expression_opt . 0) (association_opt . 0))) (COMMA . ((expression_opt . 0)
(association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (RAISE . 152) (PLUS . 154) (MINUS . 153) (OTHERS
. 182) (ABS . 144) (NOT . 181) (IDENTIFIER . 48) (CHARACTER_LITERAL . 183)
(STRING_LITERAL . 49) (NUMERIC_LITERAL . 155) (NULL . 380) (NEW . 149)
(LEFT_PAREN . 148))
+ ((default . error) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (IS . (expression_opt . 0)) (RAISE . 153) (PLUS .
155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL .
151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL
. 49) (LEFT_PAREN . 148))
+ ((default . error) (ALL . 379) (SOME . 380))
+ ((default . error) (THEN . (expression_opt . 0)) (RAISE . 153) (PLUS .
155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL .
151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL
. 49) (LEFT_PAREN . 148))
+ ((default . error) (WITH . (expression_opt . 0)) (FOR . 146) (CASE .
145) (IF . 147) (COMMA . ((association_opt . 0) (expression_opt . 0)))
(RIGHT_PAREN . ((association_opt . 0) (expression_opt . 0))) (EQUAL_GREATER .
(discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (RAISE . 153)
(OTHERS . 152) (PLUS . 155) (MINUS . 154) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 157) (STRING_LITERAL . 49) (ABS . 144) (NOT . 150)
(NUMERIC_LITERAL . 156) (NULL . 373) (NEW . [...]
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (NUMERIC_LITERAL . 156) (NULL . 370) (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) (BAR . (discrete_choice . 3)) (EQUAL_GREATER .
(discrete_choice . 3)))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
((default . error) (ABS . (unary_adding_operator . 1)) (LEFT_PAREN .
(unary_adding_operator . 1)) (NEW . (unary_adding_operator . 1)) (NOT .
(unary_adding_operator . 1)) (NULL . (unary_adding_operator . 1))
(NUMERIC_LITERAL . (unary_adding_operator . 1)) (IDENTIFIER .
(unary_adding_operator . 1)) (STRING_LITERAL . (unary_adding_operator . 1))
(CHARACTER_LITERAL . (unary_adding_operator . 1)))
((default . error) (ABS . (unary_adding_operator . 0)) (LEFT_PAREN .
(unary_adding_operator . 0)) (NEW . (unary_adding_operator . 0)) (NOT .
(unary_adding_operator . 0)) (NULL . (unary_adding_operator . 0))
(NUMERIC_LITERAL . (unary_adding_operator . 0)) (IDENTIFIER .
(unary_adding_operator . 0)) (STRING_LITERAL . (unary_adding_operator . 0))
(CHARACTER_LITERAL . (unary_adding_operator . 0)))
((default . error) (OF . (primary . 0)) (COLON_EQUAL . (primary . 0))
(DO . (primary . 0)) (LOOP . (primary . 0)) (ELSIF . (primary . 0)) (ELSE .
(primary . 0)) (DIGITS . (primary . 0)) (RIGHT_PAREN . (primary . 0)) (COMMA .
(primary . 0)) (RANGE . (primary . 0)) (THEN . (primary . 0)) (WITH . (primary
. 0)) (BAR . (primary . 0)) (EQUAL_GREATER . (primary . 0)) (IS . (primary .
0)) (IN . (primary . 0)) (NOT . (primary . 0)) (EQUAL . (primary . 0)) (GREATER
. (primary . 0)) (GREATER [...]
- ((default . error) (EQUAL_GREATER . 376) (RIGHT_PAREN . (name . 0))
(COMMA . (name . 0)) (STAR_STAR . (name . 0)) (STAR . (name . 0)) (SLASH .
(name . 0)) (REM . (name . 0)) (MOD . (name . 0)) (SLASH_EQUAL . (name . 0))
(LESS_EQUAL . (name . 0)) (LESS . (name . 0)) (GREATER_EQUAL . (name . 0))
(GREATER . (name . 0)) (EQUAL . (name . 0)) (NOT . (name . 0)) (IN . (name .
0)) (AMPERSAND . (name . 0)) (MINUS . (name . 0)) (PLUS . (name . 0))
(LEFT_PAREN . (name . 0)) (AND . (name . 0) [...]
+ ((default . error) (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) (OF . (primary . 2)) (COLON_EQUAL . (primary . 2))
(DO . (primary . 2)) (LOOP . (primary . 2)) (ELSIF . (primary . 2)) (ELSE .
(primary . 2)) (DIGITS . (primary . 2)) (RIGHT_PAREN . (primary . 2)) (COMMA .
(primary . 2)) (RANGE . (primary . 2)) (THEN . (primary . 2)) (WITH . (primary
. 2)) (BAR . (primary . 2)) (EQUAL_GREATER . (primary . 2)) (IS . (primary .
2)) (IN . (primary . 2)) (NOT . (primary . 2)) (EQUAL . (primary . 2)) (GREATER
. (primary . 2)) (GREATER [...]
- ((default . error) (COMMA . (conditional_quantified_expression . 1))
(RIGHT_PAREN . (conditional_quantified_expression . 1)))
- ((default . error) (COMMA . (pragma_argument_association . 2))
(RIGHT_PAREN . (pragma_argument_association . 2)))
- ((default . error) (COMMA . (pragma_argument_association . 1))
(RIGHT_PAREN . (pragma_argument_association . 1)))
- ((default . error) (OF . (term . 0)) (COLON_EQUAL . (term . 0)) (DO .
(term . 0)) (LOOP . (term . 0)) (ELSIF . (term . 0)) (ELSE . (term . 0))
(DIGITS . (term . 0)) (RIGHT_PAREN . (term . 0)) (COMMA . (term . 0)) (RANGE .
(term . 0)) (THEN . (term . 0)) (WITH . (term . 0)) (BAR . (term . 0))
(EQUAL_GREATER . (term . 0)) (IS . (term . 0)) (IN . (term . 0)) (NOT . (term .
0)) (EQUAL . (term . 0)) (GREATER . (term . 0)) (GREATER_EQUAL . (term . 0))
(LESS . (term . 0)) (LESS_EQUAL . (t [...]
- ((default . error) (COMMA . (conditional_quantified_expression . 0))
(RIGHT_PAREN . (conditional_quantified_expression . 0)))
- ((default . error) (DOT . 90) (OF . (primary . 3)) (COLON_EQUAL .
(primary . 3)) (DO . (primary . 3)) (LOOP . (primary . 3)) (BAR . (primary .
3)) (COMMA . (primary . 3)) (ELSIF . (primary . 3)) (ELSE . (primary . 3))
(EQUAL_GREATER . (primary . 3)) (RIGHT_PAREN . (primary . 3)) (DIGITS .
(primary . 3)) (RANGE . (primary . 3)) (THEN . (primary . 3)) (DOT_DOT .
(primary . 3)) (WITH . (primary . 3)) (IS . (primary . 3)) (IN . (primary . 3))
(NOT . (primary . 3)) (EQUAL . (primary . [...]
- ((default . error) (RIGHT_PAREN . (pragma_argument_association_list .
0)) (COMMA . (pragma_argument_association_list . 0)))
- ((default . error) (COMMA . 375) (RIGHT_PAREN . 374))
- ((default . error) (OF . (factor . 1)) (COLON_EQUAL . (factor . 1)) (DO
. (factor . 1)) (LOOP . (factor . 1)) (ELSIF . (factor . 1)) (ELSE . (factor .
1)) (DIGITS . (factor . 1)) (COMMA . (factor . 1)) (RIGHT_PAREN . (factor . 1))
(RANGE . (factor . 1)) (THEN . (factor . 1)) (WITH . (factor . 1)) (BAR .
(factor . 1)) (EQUAL_GREATER . (factor . 1)) (IS . (factor . 1)) (SLASH_EQUAL .
(factor . 1)) (LESS_EQUAL . (factor . 1)) (LESS . (factor . 1)) (GREATER_EQUAL
. (factor . 1)) (GREAT [...]
- ((default . error) (COMMA . (conditional_quantified_expression . 2))
(RIGHT_PAREN . (conditional_quantified_expression . 2)))
- ((default . error) (DO . (relation . 4)) (LOOP . (relation . 4)) (ELSIF
. (relation . 4)) (ELSE . (relation . 4)) (EQUAL_GREATER . (relation . 4))
(DIGITS . (relation . 4)) (RIGHT_PAREN . (relation . 4)) (COMMA . (relation .
4)) (RANGE . (relation . 4)) (THEN . (relation . 4)) (SEMICOLON . (relation .
4)) (WITH . (relation . 4)) (IS . (relation . 4)) (AND . (relation . 4)) (OR .
(relation . 4)) (XOR . (relation . 4)))
- ((default . error) (DO . (expression . 1)) (LOOP . (expression . 1))
(XOR . (expression . 1)) (OR . (expression . 1)) (AND . ( 372 (expression .
1))) (ELSIF . (expression . 1)) (ELSE . (expression . 1)) (EQUAL_GREATER .
(expression . 1)) (DIGITS . (expression . 1)) (COMMA . (expression . 1))
(RIGHT_PAREN . (expression . 1)) (RANGE . (expression . 1)) (THEN . (expression
. 1)) (WITH . (expression . 1)) (SEMICOLON . (expression . 1)) (IS .
(expression . 1)))
- ((default . error) (DO . (expression . 2)) (LOOP . (expression . 2))
(XOR . (expression . 2)) (OR . (expression . 2)) (AND . ( 371 (expression .
2))) (ELSIF . (expression . 2)) (ELSE . (expression . 2)) (EQUAL_GREATER .
(expression . 2)) (DIGITS . (expression . 2)) (COMMA . (expression . 2))
(RIGHT_PAREN . (expression . 2)) (RANGE . (expression . 2)) (THEN . (expression
. 2)) (WITH . (expression . 2)) (SEMICOLON . (expression . 2)) (IS .
(expression . 2)))
- ((default . error) (DO . (expression . 3)) (LOOP . (expression . 3))
(XOR . (expression . 3)) (OR . ( 370 (expression . 3))) (AND . (expression .
3)) (ELSIF . (expression . 3)) (ELSE . (expression . 3)) (EQUAL_GREATER .
(expression . 3)) (DIGITS . (expression . 3)) (COMMA . (expression . 3))
(RIGHT_PAREN . (expression . 3)) (RANGE . (expression . 3)) (THEN . (expression
. 3)) (WITH . (expression . 3)) (SEMICOLON . (expression . 3)) (IS .
(expression . 3)))
- ((default . error) (DO . (expression . 4)) (LOOP . (expression . 4))
(XOR . (expression . 4)) (OR . ( 369 (expression . 4))) (AND . (expression .
4)) (ELSIF . (expression . 4)) (ELSE . (expression . 4)) (EQUAL_GREATER .
(expression . 4)) (DIGITS . (expression . 4)) (COMMA . (expression . 4))
(RIGHT_PAREN . (expression . 4)) (RANGE . (expression . 4)) (THEN . (expression
. 4)) (WITH . (expression . 4)) (SEMICOLON . (expression . 4)) (IS .
(expression . 4)))
- ((default . error) (DO . (expression . 5)) (LOOP . (expression . 5))
(XOR . ( 368 (expression . 5))) (OR . (expression . 5)) (AND . (expression .
5)) (ELSIF . (expression . 5)) (ELSE . (expression . 5)) (EQUAL_GREATER .
(expression . 5)) (DIGITS . (expression . 5)) (COMMA . (expression . 5))
(RIGHT_PAREN . (expression . 5)) (RANGE . (expression . 5)) (THEN . (expression
. 5)) (WITH . (expression . 5)) (SEMICOLON . (expression . 5)) (IS .
(expression . 5)))
- ((default . error) (DO . (expression . 0)) (LOOP . (expression . 0))
(XOR . ( 367 (expression . 0))) (OR . ( 366 (expression . 0))) (AND . ( 365
(expression . 0))) (ELSIF . (expression . 0)) (ELSE . (expression . 0))
(EQUAL_GREATER . (expression . 0)) (DIGITS . (expression . 0)) (COMMA .
(expression . 0)) (RIGHT_PAREN . (expression . 0)) (RANGE . (expression . 0))
(THEN . (expression . 0)) (WITH . (expression . 0)) (SEMICOLON . (expression .
0)) (IS . (expression . 0)))
- ((default . error) (IN . 275) (NOT . 276) (DO . (relation . 0)) (LOOP
. (relation . 0)) (COMMA . (relation . 0)) (ELSIF . (relation . 0)) (ELSE .
(relation . 0)) (EQUAL_GREATER . (relation . 0)) (RIGHT_PAREN . (relation . 0))
(DIGITS . (relation . 0)) (RANGE . (relation . 0)) (THEN . (relation . 0))
(SEMICOLON . (relation . 0)) (WITH . (relation . 0)) (IS . (relation . 0)) (AND
. (relation . 0)) (OR . (relation . 0)) (XOR . (relation . 0)) (EQUAL . 278)
(SLASH_EQUAL . 283) (LES [...]
- ((default . error) (OF . (term_list . 0)) (COLON_EQUAL . (term_list .
0)) (DO . (term_list . 0)) (LOOP . (term_list . 0)) (ELSIF . (term_list . 0))
(ELSE . (term_list . 0)) (DIGITS . (term_list . 0)) (COMMA . (term_list . 0))
(RIGHT_PAREN . (term_list . 0)) (RANGE . (term_list . 0)) (THEN . (term_list .
0)) (WITH . (term_list . 0)) (BAR . (term_list . 0)) (EQUAL_GREATER .
(term_list . 0)) (IS . (term_list . 0)) (SLASH_EQUAL . (term_list . 0))
(LESS_EQUAL . (term_list . 0)) (LESS . [...]
- ((default . error) (OF . (simple_expression . 1)) (COLON_EQUAL .
(simple_expression . 1)) (DO . (simple_expression . 1)) (LOOP .
(simple_expression . 1)) (ELSIF . (simple_expression . 1)) (ELSE .
(simple_expression . 1)) (DIGITS . (simple_expression . 1)) (RIGHT_PAREN .
(simple_expression . 1)) (COMMA . (simple_expression . 1)) (RANGE .
(simple_expression . 1)) (THEN . (simple_expression . 1)) (WITH .
(simple_expression . 1)) (BAR . (simple_expression . 1)) (EQUAL_GREATER .
(simple [...]
- ((default . error) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
- ((default . error) (IS . 353))
- ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE .
(declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 302) (PRAGMA . 7) (NOT .
4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE .
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .
299) (IDENTIFIER . 305) (TYPE . 304) (GENERIC . 2) (PROTECTED . 301) (TASK
. 303) (PACKAGE . 300))
- ((default . error) (NUMERIC_LITERAL . 155) (NULL . 297) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (BAR . (discrete_choice . 3)) (EQUAL_GREATER .
(discrete_choice . 3)))
- ((default . error) (SEMICOLON . (name . 1)) (IS . (name . 1)) (WITH .
(name . 1)) (RANGE . (name . 1)) (TICK . (name . 1)) (LEFT_PAREN . (name . 1))
(DOT . (name . 1)) (PLUS . (name . 1)) (MINUS . (name . 1)) (AMPERSAND . (name
. 1)) (DOT_DOT . (name . 1)) (IN . (name . 1)) (NOT . (name . 1)) (EQUAL .
(name . 1)) (GREATER . (name . 1)) (GREATER_EQUAL . (name . 1)) (LESS . (name .
1)) (LESS_EQUAL . (name . 1)) (SLASH_EQUAL . (name . 1)) (RIGHT_PAREN . (name .
1)) (COMMA . (name . 1) [...]
((default . error) (SEMICOLON . (association_list . 0)) (IS .
(association_list . 0)) (RIGHT_PAREN . (association_list . 0)) (COMMA .
(association_list . 0)))
- ((default . error) (COMMA . 273) (SEMICOLON . (aspect_specification_opt
. 1)) (IS . (aspect_specification_opt . 1)))
+ ((default . error) (COMMA . 267) (RIGHT_PAREN . 367))
+ ((default . error) (RIGHT_PAREN . (conditional_quantified_expression .
1)))
((default . error) (BAR . (discrete_choice . 0)) (EQUAL_GREATER .
(discrete_choice . 0)))
- ((default . error) (AND . 295) (EQUAL_GREATER . (choice_expression .
1)) (BAR . (choice_expression . 1)))
- ((default . error) (OR . 294) (EQUAL_GREATER . (choice_expression . 2))
(BAR . (choice_expression . 2)))
- ((default . error) (XOR . 293) (EQUAL_GREATER . (choice_expression .
3)) (BAR . (choice_expression . 3)))
- ((default . error) (AND . 292) (EQUAL_GREATER . (choice_expression .
4)) (BAR . (choice_expression . 4)))
- ((default . error) (OR . 291) (EQUAL_GREATER . (choice_expression . 5))
(BAR . (choice_expression . 5)))
- ((default . error) (XOR . 290) (OR . 289) (AND . 288) (EQUAL_GREATER
. (choice_expression . 0)) (BAR . (choice_expression . 0)))
+ ((default . error) (AND . 366) (EQUAL_GREATER . (choice_expression .
1)) (BAR . (choice_expression . 1)))
+ ((default . error) (OR . 365) (EQUAL_GREATER . (choice_expression . 2))
(BAR . (choice_expression . 2)))
+ ((default . error) (XOR . 364) (EQUAL_GREATER . (choice_expression .
3)) (BAR . (choice_expression . 3)))
+ ((default . error) (AND . 363) (EQUAL_GREATER . (choice_expression .
4)) (BAR . (choice_expression . 4)))
+ ((default . error) (OR . 362) (EQUAL_GREATER . (choice_expression . 5))
(BAR . (choice_expression . 5)))
+ ((default . error) (XOR . 361) (OR . 360) (AND . 359) (EQUAL_GREATER
. (choice_expression . 0)) (BAR . (choice_expression . 0)))
+ ((default . error) (RIGHT_PAREN . 358))
((default . error) (EQUAL_GREATER . (discrete_choice_list . 1)) (BAR .
(discrete_choice_list . 1)))
- ((default . error) (BAR . 286) (EQUAL_GREATER . 287))
- ((default . error) (LOOP . (expression_opt . 1)) (RIGHT_PAREN .
(expression_opt . 1)) (COMMA . (expression_opt . 1)) (SEMICOLON .
(expression_opt . 1)) (THEN . (expression_opt . 1)) (IS . (expression_opt . 1)))
+ ((default . error) (BAR . 356) (EQUAL_GREATER . 357))
+ ((default . error) (DO . (expression_opt . 1)) (LOOP . (expression_opt .
1)) (XOR . (expression_opt . 1)) (OR . (expression_opt . 1)) (AND .
(expression_opt . 1)) (ELSIF . (expression_opt . 1)) (ELSE . (expression_opt .
1)) (EQUAL_GREATER . (expression_opt . 1)) (DIGITS . (expression_opt . 1))
(RIGHT_PAREN . (expression_opt . 1)) (COMMA . (expression_opt . 1)) (RANGE .
(expression_opt . 1)) (THEN . (expression_opt . 1)) (WITH . (expression_opt .
1)) (SEMICOLON . (expression_opt . 1 [...]
((default . error) (SEMICOLON . (association_opt . 5)) (IS .
(association_opt . 5)) (COMMA . (association_opt . 5)) (RIGHT_PAREN .
(association_opt . 5)))
- ((default . error) (DOT . 90) (DO . (primary . 3)) (LOOP . (primary .
3)) (ELSIF . (primary . 3)) (ELSE . (primary . 3)) (DIGITS . (primary . 3))
(RANGE . (primary . 3)) (THEN . (primary . 3)) (SEMICOLON . (primary . 3)) (IS
. (primary . 3)) (WITH . (primary . 3)) (IN . (primary . 3)) (NOT . (primary .
3)) (RIGHT_PAREN . (primary . 3)) (COMMA . (primary . 3)) (PLUS . (primary .
3)) (MINUS . (primary . 3)) (AMPERSAND . (primary . 3)) (DOT_DOT . (primary .
3)) (MOD . (primary . 3)) [...]
+ ((default . error) (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) (RIGHT_PAREN . (conditional_quantified_expression .
0)))
+ ((default . error) (DOT . 90) (DO . (primary . 3)) (LOOP . (primary .
3)) (ELSIF . (primary . 3)) (ELSE . (primary . 3)) (DIGITS . (primary . 3))
(RANGE . (primary . 3)) (THEN . (primary . 3)) (SEMICOLON . (primary . 3)) (IS
. (primary . 3)) (WITH . (primary . 3)) (IN . (primary . 3)) (NOT . (primary .
3)) (RIGHT_PAREN . (primary . 3)) (COMMA . (primary . 3)) (PLUS . (primary .
3)) (MINUS . (primary . 3)) (AMPERSAND . (primary . 3)) (DOT_DOT . (primary .
3)) (MOD . (primary . 3)) [...]
+ ((default . error) (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) (RIGHT_PAREN . (conditional_quantified_expression .
2)))
+ ((default . error) (DO . (relation . 4)) (LOOP . (relation . 4)) (ELSIF
. (relation . 4)) (ELSE . (relation . 4)) (EQUAL_GREATER . (relation . 4))
(DIGITS . (relation . 4)) (RIGHT_PAREN . (relation . 4)) (COMMA . (relation .
4)) (RANGE . (relation . 4)) (THEN . (relation . 4)) (WITH . (relation . 4))
(SEMICOLON . (relation . 4)) (IS . (relation . 4)) (AND . (relation . 4)) (OR .
(relation . 4)) (XOR . (relation . 4)))
((default . error) (BAR . (discrete_choice . 2)) (EQUAL_GREATER .
(discrete_choice . 2)))
- ((default . error) (IN . 275) (NOT . 276) (SEMICOLON . (relation . 0))
(IS . (relation . 0)) (WITH . (relation . 0)) (RIGHT_PAREN . (relation . 0))
(COMMA . (relation . 0)) (DOT_DOT . 277) (BAR . (choice_relation . 1))
(EQUAL_GREATER . (choice_relation . 1)) (AND . ((choice_relation . 1) (relation
. 0))) (OR . ((choice_relation . 1) (relation . 0))) (XOR . ((choice_relation .
1) (relation . 0))) (EQUAL . 278) (SLASH_EQUAL . 283) (LESS . 281)
(LESS_EQUAL . 282) (GREATER . 27 [...]
+ ((default . error) (DO . (expression . 1)) (LOOP . (expression . 1))
(XOR . (expression . 1)) (OR . (expression . 1)) (AND . ( 353 (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)) (SEMICOLON . (expression . 1)) (WITH . (expression . 1)) (IS .
(expression . 1)))
+ ((default . error) (DO . (expression . 2)) (LOOP . (expression . 2))
(XOR . (expression . 2)) (OR . (expression . 2)) (AND . ( 352 (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)) (SEMICOLON . (expression . 2)) (WITH . (expression . 2)) (IS .
(expression . 2)))
+ ((default . error) (DO . (expression . 3)) (LOOP . (expression . 3))
(XOR . (expression . 3)) (OR . ( 351 (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)) (SEMICOLON . (expression . 3)) (WITH . (expression . 3)) (IS .
(expression . 3)))
+ ((default . error) (DO . (expression . 4)) (LOOP . (expression . 4))
(XOR . (expression . 4)) (OR . ( 350 (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)) (SEMICOLON . (expression . 4)) (WITH . (expression . 4)) (IS .
(expression . 4)))
+ ((default . error) (DO . (expression . 5)) (LOOP . (expression . 5))
(XOR . ( 349 (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)) (SEMICOLON . (expression . 5)) (WITH . (expression . 5)) (IS .
(expression . 5)))
+ ((default . error) (DO . (expression . 0)) (LOOP . (expression . 0))
(XOR . ( 348 (expression . 0))) (OR . ( 347 (expression . 0))) (AND . ( 346
(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)) (SEMICOLON . (expression . 0)) (WITH . (expression .
0)) (IS . (expression . 0)))
+ ((default . error) (IN . 336) (NOT . 337) (SEMICOLON . (relation . 0))
(IS . (relation . 0)) (WITH . (relation . 0)) (RIGHT_PAREN . (relation . 0))
(COMMA . (relation . 0)) (DOT_DOT . 338) (BAR . (choice_relation . 1))
(EQUAL_GREATER . (choice_relation . 1)) (AND . ((choice_relation . 1) (relation
. 0))) (OR . ((choice_relation . 1) (relation . 0))) (XOR . ((choice_relation .
1) (relation . 0))) (EQUAL . 339) (SLASH_EQUAL . 344) (LESS . 342)
(LESS_EQUAL . 343) (GREATER . 34 [...]
+ ((default . error) (OF . (term_list . 0)) (COLON_EQUAL . (term_list .
0)) (DO . (term_list . 0)) (LOOP . (term_list . 0)) (ELSIF . (term_list . 0))
(ELSE . (term_list . 0)) (DIGITS . (term_list . 0)) (COMMA . (term_list . 0))
(RIGHT_PAREN . (term_list . 0)) (RANGE . (term_list . 0)) (THEN . (term_list .
0)) (WITH . (term_list . 0)) (BAR . (term_list . 0)) (EQUAL_GREATER .
(term_list . 0)) (IS . (term_list . 0)) (SLASH_EQUAL . (term_list . 0))
(LESS_EQUAL . (term_list . 0)) (LESS . [...]
+ ((default . error) (OF . (simple_expression . 1)) (COLON_EQUAL .
(simple_expression . 1)) (DO . (simple_expression . 1)) (LOOP .
(simple_expression . 1)) (ELSIF . (simple_expression . 1)) (ELSE .
(simple_expression . 1)) (DIGITS . (simple_expression . 1)) (RIGHT_PAREN .
(simple_expression . 1)) (COMMA . (simple_expression . 1)) (RANGE .
(simple_expression . 1)) (THEN . (simple_expression . 1)) (WITH .
(simple_expression . 1)) (BAR . (simple_expression . 1)) (EQUAL_GREATER .
(simple [...]
+ ((default . error) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (IS . 323))
+ ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE .
(declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 272) (PRAGMA . 7) (NOT .
4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE .
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .
269) (IDENTIFIER . 275) (TYPE . 274) (GENERIC . 2) (PROTECTED . 271) (TASK
. 273) (PACKAGE . 270))
+ ((default . error) (COMMA . 267) (SEMICOLON . (aspect_specification_opt
. 1)) (IS . (aspect_specification_opt . 1)))
((default . error) (DOT . 90) (TICK . 91) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109) (LEFT_PAREN . 107))
- ((default . error) (COMMA . 273) (RIGHT_PAREN . 272))
- ((default . error) (RIGHT_PAREN . 271))
+ ((default . error) (COMMA . 267) (RIGHT_PAREN . 266))
+ ((default . error) (RIGHT_PAREN . 265))
((default . error) (BAR . (discrete_choice . 2)) (EQUAL_GREATER .
(discrete_choice . 2)) (RIGHT_PAREN . (range_list . 0)) (COMMA . (range_list .
0)))
- ((default . error) (COMMA . 270) (RIGHT_PAREN . 269))
+ ((default . error) (COMMA . 264) (RIGHT_PAREN . 263))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (COMMA . 120) (SEMICOLON . 267))
+ ((default . error) (COMMA . 120) (SEMICOLON . 261))
((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 . 260) (SEMICOLON .
(discriminant_specification_opt . 0)) (RIGHT_PAREN .
(discriminant_specification_opt . 0)) (IDENTIFIER . 77))
- ((default . error) (IS . 258) (SEMICOLON . (aspect_specification_opt .
0)) (WITH . 109))
- ((default . error) (ABSTRACT . 253) (BOX . 255) (NULL . 254)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
- ((default . error) (SEMICOLON . 252))
- ((default . error) (DOT . 90) (TICK . 91) (IS . 251) (LEFT_PAREN .
107))
+ ((default . error) (BOX . 254) (SEMICOLON .
(discriminant_specification_opt . 0)) (RIGHT_PAREN .
(discriminant_specification_opt . 0)) (IDENTIFIER . 77))
+ ((default . error) (IS . 252) (SEMICOLON . (aspect_specification_opt .
0)) (WITH . 109))
+ ((default . error) (ABSTRACT . 247) (BOX . 249) (NULL . 248)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
+ ((default . error) (SEMICOLON . 246))
+ ((default . error) (DOT . 90) (TICK . 91) (IS . 245) (LEFT_PAREN .
107))
((default . error) (COLON . (identifier_list . 1)) (COMMA .
(identifier_list . 1)))
- ((default . error) (OUT . 250) (ACCESS . (mode_opt . 1)) (NOT .
(mode_opt . 1)) (IDENTIFIER . (mode_opt . 1)) (STRING_LITERAL . (mode_opt . 1))
(CHARACTER_LITERAL . (mode_opt . 1)))
+ ((default . error) (OUT . 244) (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 . 232))
- ((default . error) (IDENTIFIER . (null_exclusion_opt . 0))
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL .
(null_exclusion_opt . 0)) (DO . (null_exclusion_opt . 0)) (RIGHT_PAREN .
(null_exclusion_opt . 0)) (COLON_EQUAL . (null_exclusion_opt . 0)) (RENAMES .
(null_exclusion_opt . 0)) (WITH . (null_exclusion_opt . 0)) (SEMICOLON .
(null_exclusion_opt . 0)) (IS . (null_exclusion_opt . 0)) (ACCESS .
(null_exclusion_opt . 0)) (NOT . 232))
+ ((default . error) (IDENTIFIER . (null_exclusion_opt . 0))
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL .
(null_exclusion_opt . 0)) (ACCESS . (null_exclusion_opt . 0)) (NOT . 226))
+ ((default . error) (IDENTIFIER . (null_exclusion_opt . 0))
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL .
(null_exclusion_opt . 0)) (DO . (null_exclusion_opt . 0)) (RIGHT_PAREN .
(null_exclusion_opt . 0)) (COLON_EQUAL . (null_exclusion_opt . 0)) (RENAMES .
(null_exclusion_opt . 0)) (WITH . (null_exclusion_opt . 0)) (SEMICOLON .
(null_exclusion_opt . 0)) (IS . (null_exclusion_opt . 0)) (ACCESS .
(null_exclusion_opt . 0)) (NOT . 226))
((default . error) (DO . (attribute_designator . 1)) (ELSIF .
(attribute_designator . 1)) (ELSE . (attribute_designator . 1)) (DIGITS .
(attribute_designator . 1)) (RANGE . (attribute_designator . 1)) (THEN .
(attribute_designator . 1)) (USE . (attribute_designator . 1)) (COLON_EQUAL .
(attribute_designator . 1)) (CHARACTER_LITERAL . (attribute_designator . 1))
(STRING_LITERAL . (attribute_designator . 1)) (IDENTIFIER .
(attribute_designator . 1)) (LESS_LESS . (attribute_designator [...]
((default . error) (DO . (attribute_designator . 2)) (ELSIF .
(attribute_designator . 2)) (ELSE . (attribute_designator . 2)) (DIGITS .
(attribute_designator . 2)) (RANGE . (attribute_designator . 2)) (THEN .
(attribute_designator . 2)) (USE . (attribute_designator . 2)) (COLON_EQUAL .
(attribute_designator . 2)) (CHARACTER_LITERAL . (attribute_designator . 2))
(STRING_LITERAL . (attribute_designator . 2)) (IDENTIFIER .
(attribute_designator . 2)) (LESS_LESS . (attribute_designator [...]
((default . error) (DO . (attribute_designator . 3)) (ELSIF .
(attribute_designator . 3)) (ELSE . (attribute_designator . 3)) (DIGITS .
(attribute_designator . 3)) (RANGE . (attribute_designator . 3)) (THEN .
(attribute_designator . 3)) (USE . (attribute_designator . 3)) (COLON_EQUAL .
(attribute_designator . 3)) (CHARACTER_LITERAL . (attribute_designator . 3))
(STRING_LITERAL . (attribute_designator . 3)) (IDENTIFIER .
(attribute_designator . 3)) (LESS_LESS . (attribute_designator [...]
@@ -2045,92 +2039,68 @@
((default . error) (DO . (qualified_expression . 0)) (ELSIF .
(qualified_expression . 0)) (ELSE . (qualified_expression . 0)) (DIGITS .
(qualified_expression . 0)) (RANGE . (qualified_expression . 0)) (THEN .
(qualified_expression . 0)) (USE . (qualified_expression . 0)) (COLON_EQUAL .
(qualified_expression . 0)) (CHARACTER_LITERAL . (qualified_expression . 0))
(STRING_LITERAL . (qualified_expression . 0)) (IDENTIFIER .
(qualified_expression . 0)) (LESS_LESS . (qualified_expression [...]
((default . error) (DO . (attribute_reference . 0)) (ELSIF .
(attribute_reference . 0)) (ELSE . (attribute_reference . 0)) (DIGITS .
(attribute_reference . 0)) (RANGE . (attribute_reference . 0)) (THEN .
(attribute_reference . 0)) (USE . (attribute_reference . 0)) (COLON_EQUAL .
(attribute_reference . 0)) (CHARACTER_LITERAL . (attribute_reference . 0))
(STRING_LITERAL . (attribute_reference . 0)) (IDENTIFIER . (attribute_reference
. 0)) (LESS_LESS . (attribute_reference . 0)) (WHIL [...]
((default . error) (DO . (attribute_designator . 0)) (ELSIF .
(attribute_designator . 0)) (ELSE . (attribute_designator . 0)) (DIGITS .
(attribute_designator . 0)) (RANGE . (attribute_designator . 0)) (THEN .
(attribute_designator . 0)) (USE . (attribute_designator . 0)) (COLON_EQUAL .
(attribute_designator . 0)) (CHARACTER_LITERAL . (attribute_designator . 0))
(STRING_LITERAL . (attribute_designator . 0)) (IDENTIFIER .
(attribute_designator . 0)) (LESS_LESS . (attribute_designator [...]
- ((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) (DO . (selected_component . 0)) (RIGHT_PAREN .
(selected_component . 0)) (BAR . (selected_component . 0)) (ELSIF .
(selected_component . 0)) (ELSE . (selected_component . 0)) (EQUAL_GREATER .
(selected_component . 0)) (DIGITS . (selected_component . 0)) (RANGE .
(selected_component . 0)) (THEN . (selected_component . 0)) (DOT_DOT .
(selected_component . 0)) (IN . (selected_component . 0)) (NOT .
(selected_component . 0)) (EQUAL . (selected_component . 0)) (GREATE [...]
- ((default . error) (DO . (selected_component . 2)) (RIGHT_PAREN .
(selected_component . 2)) (BAR . (selected_component . 2)) (ELSIF .
(selected_component . 2)) (ELSE . (selected_component . 2)) (EQUAL_GREATER .
(selected_component . 2)) (DIGITS . (selected_component . 2)) (RANGE .
(selected_component . 2)) (THEN . (selected_component . 2)) (DOT_DOT .
(selected_component . 2)) (IN . (selected_component . 2)) (NOT .
(selected_component . 2)) (EQUAL . (selected_component . 2)) (GREATE [...]
- ((default . error) (DO . (selected_component . 1)) (RIGHT_PAREN .
(selected_component . 1)) (BAR . (selected_component . 1)) (ELSIF .
(selected_component . 1)) (ELSE . (selected_component . 1)) (EQUAL_GREATER .
(selected_component . 1)) (DIGITS . (selected_component . 1)) (RANGE .
(selected_component . 1)) (THEN . (selected_component . 1)) (DOT_DOT .
(selected_component . 1)) (IN . (selected_component . 1)) (NOT .
(selected_component . 1)) (EQUAL . (selected_component . 1)) (GREATE [...]
- ((default . error) (NULL . 245))
+ ((default . error) (DO . (selected_component . 3)) (RIGHT_PAREN .
(selected_component . 3)) (IN . (selected_component . 3)) (NOT .
(selected_component . 3)) (PLUS . (selected_component . 3)) (MINUS .
(selected_component . 3)) (AMPERSAND . (selected_component . 3)) (DOT_DOT .
(selected_component . 3)) (MOD . (selected_component . 3)) (REM .
(selected_component . 3)) (SLASH . (selected_component . 3)) (STAR .
(selected_component . 3)) (STAR_STAR . (selected_component . 3)) (BAR . (se
[...]
+ ((default . error) (DO . (selected_component . 0)) (RIGHT_PAREN .
(selected_component . 0)) (IN . (selected_component . 0)) (NOT .
(selected_component . 0)) (PLUS . (selected_component . 0)) (MINUS .
(selected_component . 0)) (AMPERSAND . (selected_component . 0)) (DOT_DOT .
(selected_component . 0)) (MOD . (selected_component . 0)) (REM .
(selected_component . 0)) (SLASH . (selected_component . 0)) (STAR .
(selected_component . 0)) (STAR_STAR . (selected_component . 0)) (BAR . (se
[...]
+ ((default . error) (DO . (selected_component . 2)) (RIGHT_PAREN .
(selected_component . 2)) (IN . (selected_component . 2)) (NOT .
(selected_component . 2)) (PLUS . (selected_component . 2)) (MINUS .
(selected_component . 2)) (AMPERSAND . (selected_component . 2)) (DOT_DOT .
(selected_component . 2)) (MOD . (selected_component . 2)) (REM .
(selected_component . 2)) (SLASH . (selected_component . 2)) (STAR .
(selected_component . 2)) (STAR_STAR . (selected_component . 2)) (BAR . (se
[...]
+ ((default . error) (DO . (selected_component . 1)) (RIGHT_PAREN .
(selected_component . 1)) (IN . (selected_component . 1)) (NOT .
(selected_component . 1)) (PLUS . (selected_component . 1)) (MINUS .
(selected_component . 1)) (AMPERSAND . (selected_component . 1)) (DOT_DOT .
(selected_component . 1)) (MOD . (selected_component . 1)) (REM .
(selected_component . 1)) (SLASH . (selected_component . 1)) (STAR .
(selected_component . 1)) (STAR_STAR . (selected_component . 1)) (BAR . (se
[...]
+ ((default . error) (NULL . 239))
((default . error) (DO . (parameter_and_result_profile . 3))
(RIGHT_PAREN . (parameter_and_result_profile . 3)) (COLON_EQUAL .
(parameter_and_result_profile . 3)) (RENAMES . (parameter_and_result_profile .
3)) (WITH . (parameter_and_result_profile . 3)) (SEMICOLON .
(parameter_and_result_profile . 3)) (IS . (parameter_and_result_profile . 3)))
- ((default . error) (ACCESS . 242) (IS . (name_opt . 0)) (SEMICOLON .
(name_opt . 0)) (WITH . (name_opt . 0)) (RENAMES . (name_opt . 0)) (COLON_EQUAL
. (name_opt . 0)) (RIGHT_PAREN . (name_opt . 0)) (DO . (name_opt . 0))
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
+ ((default . error) (ACCESS . 236) (IS . (name_opt . 0)) (SEMICOLON .
(name_opt . 0)) (WITH . (name_opt . 0)) (RENAMES . (name_opt . 0)) (COLON_EQUAL
. (name_opt . 0)) (RIGHT_PAREN . (name_opt . 0)) (DO . (name_opt . 0))
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
((default . error) (IN . (name . 0)) (NOT . (name . 0)) (EQUAL . (name .
0)) (GREATER . (name . 0)) (GREATER_EQUAL . (name . 0)) (LESS . (name . 0))
(LESS_EQUAL . (name . 0)) (SLASH_EQUAL . (name . 0)) (BAR . (name . 0))
(EQUAL_GREATER . (name . 0)) (AND . (name . 0)) (OR . (name . 0)) (XOR . (name
. 0)) (RIGHT_PAREN . (name . 0)) (LEFT_PAREN . (name . 0)) (RANGE . (name . 0))
(TICK . (name . 0)) (DOT . (name . 0)) (PLUS . (name . 0)) (MINUS . (name . 0))
(AMPERSAND . (name . 0)) ( [...]
- ((default . error) (COLON . 241) (COMMA . 96))
+ ((default . error) (COLON . 235) (COMMA . 96))
((default . error) (RIGHT_PAREN . (parameter_specification_list . 0))
(SEMICOLON . (parameter_specification_list . 0)))
- ((default . error) (SEMICOLON . 240) (RIGHT_PAREN . 239))
+ ((default . error) (SEMICOLON . 234) (RIGHT_PAREN . 233))
((default . error) (COLON_EQUAL . (formal_part . 0)) (RIGHT_PAREN .
(formal_part . 0)) (DO . (formal_part . 0)) (WHEN . (formal_part . 0)) (RENAMES
. (formal_part . 0)) (IS . (formal_part . 0)) (SEMICOLON . (formal_part . 0))
(WITH . (formal_part . 0)) (RETURN . (formal_part . 0)))
- ((default . error) (IDENTIFIER . 77))
- ((default . error) (ACCESS . (aliased_opt . 0)) (NOT . (aliased_opt .
0)) (IN . (aliased_opt . 0)) (OUT . (aliased_opt . 0)) (IDENTIFIER .
(aliased_opt . 0)) (STRING_LITERAL . (aliased_opt . 0)) (CHARACTER_LITERAL .
(aliased_opt . 0)) (ALIASED . 531))
- ((default . error) (FUNCTION . (protected_opt . 0)) (PROCEDURE .
(protected_opt . 0)) (PROTECTED . 528) (IDENTIFIER .
(general_access_modifier_opt . 0)) (STRING_LITERAL .
(general_access_modifier_opt . 0)) (CHARACTER_LITERAL .
(general_access_modifier_opt . 0)) (ALL . 526) (CONSTANT . 527))
+ ((default . error) (RIGHT_PAREN . (parameter_specification . 0))
(SEMICOLON . (parameter_specification . 0)) (IDENTIFIER . 77))
+ ((default . error) (ACCESS . (aliased_opt . 0)) (NOT . (aliased_opt .
0)) (IN . (aliased_opt . 0)) (OUT . (aliased_opt . 0)) (IDENTIFIER .
(aliased_opt . 0)) (STRING_LITERAL . (aliased_opt . 0)) (CHARACTER_LITERAL .
(aliased_opt . 0)) (ALIASED . 523))
+ ((default . error) (FUNCTION . (protected_opt . 0)) (PROCEDURE .
(protected_opt . 0)) (PROTECTED . 520) (IDENTIFIER .
(general_access_modifier_opt . 0)) (STRING_LITERAL .
(general_access_modifier_opt . 0)) (CHARACTER_LITERAL .
(general_access_modifier_opt . 0)) (ALL . 518) (CONSTANT . 519))
((default . error) (DOT . 90) (DO . (name_opt . 1)) (COLON_EQUAL .
(name_opt . 1)) (RIGHT_PAREN . (name_opt . 1)) (RENAMES . (name_opt . 1)) (IS .
(name_opt . 1)) (WITH . (name_opt . 1)) (SEMICOLON . (name_opt . 1)) (TICK .
91) (LEFT_PAREN . 107))
((default . error) (DO . (parameter_and_result_profile . 1))
(COLON_EQUAL . (parameter_and_result_profile . 1)) (RIGHT_PAREN .
(parameter_and_result_profile . 1)) (RENAMES . (parameter_and_result_profile .
1)) (IS . (parameter_and_result_profile . 1)) (SEMICOLON .
(parameter_and_result_profile . 1)) (WITH . (parameter_and_result_profile . 1)))
((default . error) (DO . (null_exclusion_opt . 1)) (COLON_EQUAL .
(null_exclusion_opt . 1)) (RIGHT_PAREN . (null_exclusion_opt . 1)) (RENAMES .
(null_exclusion_opt . 1)) (ACCESS . (null_exclusion_opt . 1))
(CHARACTER_LITERAL . (null_exclusion_opt . 1)) (STRING_LITERAL .
(null_exclusion_opt . 1)) (IDENTIFIER . (null_exclusion_opt . 1)) (IS .
(null_exclusion_opt . 1)) (SEMICOLON . (null_exclusion_opt . 1)) (WITH .
(null_exclusion_opt . 1)))
((default . error) (DO . (parameter_and_result_profile . 2))
(COLON_EQUAL . (parameter_and_result_profile . 2)) (RIGHT_PAREN .
(parameter_and_result_profile . 2)) (RENAMES . (parameter_and_result_profile .
2)) (IS . (parameter_and_result_profile . 2)) (SEMICOLON .
(parameter_and_result_profile . 2)) (WITH . (parameter_and_result_profile . 2)))
- ((default . error) (ACCESS . 242) (WITH . (name_opt . 0)) (SEMICOLON .
(name_opt . 0)) (IS . (name_opt . 0)) (RENAMES . (name_opt . 0)) (RIGHT_PAREN .
(name_opt . 0)) (COLON_EQUAL . (name_opt . 0)) (DO . (name_opt . 0))
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
- ((default . error) (COLON_EQUAL . 523) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109))
- ((default . error) (ACCESS . 242) (IDENTIFIER . 48) (CHARACTER_LITERAL
. 50) (STRING_LITERAL . 49))
+ ((default . error) (ACCESS . 236) (WITH . (name_opt . 0)) (SEMICOLON .
(name_opt . 0)) (IS . (name_opt . 0)) (RENAMES . (name_opt . 0)) (RIGHT_PAREN .
(name_opt . 0)) (COLON_EQUAL . (name_opt . 0)) (DO . (name_opt . 0))
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
+ ((default . error) (COLON_EQUAL . 515) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109))
+ ((default . error) (ACCESS . 236) (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 . 521))
+ ((default . error) (NEW . 513))
((default . error) (IDENTIFIER . (formal_subprogram_declaration . 1))
(WITH . (formal_subprogram_declaration . 1)) (USE .
(formal_subprogram_declaration . 1)) (TYPE . (formal_subprogram_declaration .
1)) (PRAGMA . (formal_subprogram_declaration . 1)) (FUNCTION .
(formal_subprogram_declaration . 1)) (PROCEDURE .
(formal_subprogram_declaration . 1)) (PACKAGE . (formal_subprogram_declaration
. 1)))
- ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109) (BOX . 255) (NULL . 254) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
+ ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109) (BOX . 249) (NULL . 248) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
((default . error) (WITH . (subprogram_default . 2)) (SEMICOLON .
(subprogram_default . 2)))
((default . error) (WITH . (subprogram_default . 1)) (SEMICOLON .
(subprogram_default . 1)))
((default . error) (WITH . (subprogram_default . 0)) (SEMICOLON .
(subprogram_default . 0)) (DOT . 90) (TICK . 91) (LEFT_PAREN . 107))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
- ((default . error) (LEFT_PAREN . 502) (RANGE . 506) (MOD . 504)
(DIGITS . 500) (DELTA . 499) (TASK . 509) (PROTECTED . 505) (INTERFACE .
501) (ARRAY . 498) (PRIVATE . (abstract_tagged_limited_opt . 0)) (TAGGED .
508) (NEW . (abstract_limited_synchronized_opt . 0)) (ABSTRACT . 497) (LIMITED
. 503) (SYNCHRONIZED . 507) (ACCESS . (null_exclusion_opt . 0)) (NOT . 232))
- ((default . error) (SEMICOLON . 496))
- ((default . error) (RIGHT_PAREN . 495))
+ ((default . error) (LEFT_PAREN . 494) (RANGE . 498) (MOD . 496)
(DIGITS . 492) (DELTA . 491) (TASK . 501) (PROTECTED . 497) (INTERFACE .
493) (ARRAY . 490) (PRIVATE . (abstract_tagged_limited_opt . 0)) (TAGGED .
500) (NEW . (abstract_limited_synchronized_opt . 0)) (ABSTRACT . 489) (LIMITED
. 495) (SYNCHRONIZED . 499) (ACCESS . (null_exclusion_opt . 0)) (NOT . 226))
+ ((default . error) (SEMICOLON . 488))
+ ((default . error) (RIGHT_PAREN . 487))
((default . error) (RIGHT_PAREN . (discriminant_specification_list . 0))
(SEMICOLON . (discriminant_specification_list . 0)))
- ((default . error) (SEMICOLON . 494) (RIGHT_PAREN . 493))
- ((default . error) (COMMA . 96) (COLON . 492))
+ ((default . error) (SEMICOLON . 486) (RIGHT_PAREN . 485))
+ ((default . error) (COMMA . 96) (COLON . 484))
((default . error) (DOT . 90) (TICK . 91) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109) (LEFT_PAREN . 107))
((default . error) (DOT . 90) (TICK . 91) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109) (LEFT_PAREN . 107))
((default . error) (DOT . 90) (TICK . 91) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109) (LEFT_PAREN . 107))
((default . error) (WITH . (with_clause . 0)) (USE . (with_clause . 0))
(SEPARATE . (with_clause . 0)) (PROCEDURE . (with_clause . 0)) (PRIVATE .
(with_clause . 0)) (PRAGMA . (with_clause . 0)) (PACKAGE . (with_clause . 0))
(OVERRIDING . (with_clause . 0)) (NOT . (with_clause . 0)) (LIMITED .
(with_clause . 0)) (GENERIC . (with_clause . 0)) (FUNCTION . (with_clause . 0))
($EOI . (with_clause . 0)))
((default . error) (DOT . 90) (TICK . 91) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109) (LEFT_PAREN . 107))
((default . error) (DO . (name . 2)) (STAR_STAR . (name . 2)) (STAR .
(name . 2)) (SLASH . (name . 2)) (REM . (name . 2)) (MOD . (name . 2)) (DOT_DOT
. (name . 2)) (AMPERSAND . (name . 2)) (MINUS . (name . 2)) (PLUS . (name . 2))
(RIGHT_PAREN . (name . 2)) (XOR . (name . 2)) (OR . (name . 2)) (EQUAL_GREATER
. (name . 2)) (BAR . (name . 2)) (SLASH_EQUAL . (name . 2)) (LESS_EQUAL . (name
. 2)) (LESS . (name . 2)) (GREATER_EQUAL . (name . 2)) (GREATER . (name . 2))
(EQUAL . (name . 2) [...]
- ((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT . 150)
(NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
+ ((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 324)
(NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
((default . error) (STAR_STAR . (actual_parameter_part . 1)) (STAR .
(actual_parameter_part . 1)) (SLASH . (actual_parameter_part . 1)) (REM .
(actual_parameter_part . 1)) (MOD . (actual_parameter_part . 1)) (DOT_DOT .
(actual_parameter_part . 1)) (AMPERSAND . (actual_parameter_part . 1)) (MINUS .
(actual_parameter_part . 1)) (PLUS . (actual_parameter_part . 1)) (RIGHT_PAREN
. (actual_parameter_part . 1)) (XOR . (actual_parameter_part . 1)) (OR .
(actual_parameter_part . 1)) (EQUAL [...]
((default . error) (STAR_STAR . (actual_parameter_part . 0)) (STAR .
(actual_parameter_part . 0)) (SLASH . (actual_parameter_part . 0)) (REM .
(actual_parameter_part . 0)) (MOD . (actual_parameter_part . 0)) (DOT_DOT .
(actual_parameter_part . 0)) (AMPERSAND . (actual_parameter_part . 0)) (MINUS .
(actual_parameter_part . 0)) (PLUS . (actual_parameter_part . 0)) (RIGHT_PAREN
. (actual_parameter_part . 0)) (XOR . (actual_parameter_part . 0)) (OR .
(actual_parameter_part . 0)) (EQUAL [...]
- ((default . error) (RIGHT_PAREN . ((expression_opt . 0) (association_opt
. 0))) (COMMA . ((expression_opt . 0) (association_opt . 0))) (IS .
((expression_opt . 0) (association_opt . 0))) (SEMICOLON . ((expression_opt .
0) (association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (OTHERS . 182) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 183) (STRING_LITERAL . 49) (RAISE . 152) (PLUS . 154)
(MINUS . 153) (ABS . 144) (NOT . 181) (NUME [...]
- ((default . error) (SEMICOLON . 484))
- ((default . error) (PLUS . 154) (MINUS . 153) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (ABS . 144) (NOT . 150)
(NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
- ((default . error) (IN . 479))
- ((default . error) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
- ((default . error) (ABS . (relational_operator . 0)) (LEFT_PAREN .
(relational_operator . 0)) (NEW . (relational_operator . 0)) (NOT .
(relational_operator . 0)) (NULL . (relational_operator . 0)) (MINUS .
(relational_operator . 0)) (PLUS . (relational_operator . 0)) (NUMERIC_LITERAL
. (relational_operator . 0)) (IDENTIFIER . (relational_operator . 0))
(STRING_LITERAL . (relational_operator . 0)) (CHARACTER_LITERAL .
(relational_operator . 0)))
- ((default . error) (ABS . (relational_operator . 4)) (LEFT_PAREN .
(relational_operator . 4)) (NEW . (relational_operator . 4)) (NOT .
(relational_operator . 4)) (NULL . (relational_operator . 4)) (MINUS .
(relational_operator . 4)) (PLUS . (relational_operator . 4)) (NUMERIC_LITERAL
. (relational_operator . 4)) (IDENTIFIER . (relational_operator . 4))
(STRING_LITERAL . (relational_operator . 4)) (CHARACTER_LITERAL .
(relational_operator . 4)))
- ((default . error) (ABS . (relational_operator . 5)) (LEFT_PAREN .
(relational_operator . 5)) (NEW . (relational_operator . 5)) (NOT .
(relational_operator . 5)) (NULL . (relational_operator . 5)) (MINUS .
(relational_operator . 5)) (PLUS . (relational_operator . 5)) (NUMERIC_LITERAL
. (relational_operator . 5)) (IDENTIFIER . (relational_operator . 5))
(STRING_LITERAL . (relational_operator . 5)) (CHARACTER_LITERAL .
(relational_operator . 5)))
- ((default . error) (ABS . (relational_operator . 2)) (LEFT_PAREN .
(relational_operator . 2)) (NEW . (relational_operator . 2)) (NOT .
(relational_operator . 2)) (NULL . (relational_operator . 2)) (MINUS .
(relational_operator . 2)) (PLUS . (relational_operator . 2)) (NUMERIC_LITERAL
. (relational_operator . 2)) (IDENTIFIER . (relational_operator . 2))
(STRING_LITERAL . (relational_operator . 2)) (CHARACTER_LITERAL .
(relational_operator . 2)))
- ((default . error) (ABS . (relational_operator . 3)) (LEFT_PAREN .
(relational_operator . 3)) (NEW . (relational_operator . 3)) (NOT .
(relational_operator . 3)) (NULL . (relational_operator . 3)) (MINUS .
(relational_operator . 3)) (PLUS . (relational_operator . 3)) (NUMERIC_LITERAL
. (relational_operator . 3)) (IDENTIFIER . (relational_operator . 3))
(STRING_LITERAL . (relational_operator . 3)) (CHARACTER_LITERAL .
(relational_operator . 3)))
- ((default . error) (ABS . (relational_operator . 1)) (LEFT_PAREN .
(relational_operator . 1)) (NEW . (relational_operator . 1)) (NOT .
(relational_operator . 1)) (NULL . (relational_operator . 1)) (MINUS .
(relational_operator . 1)) (PLUS . (relational_operator . 1)) (NUMERIC_LITERAL
. (relational_operator . 1)) (IDENTIFIER . (relational_operator . 1))
(STRING_LITERAL . (relational_operator . 1)) (CHARACTER_LITERAL .
(relational_operator . 1)))
- ((default . error) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
- ((default . error) (RANGE . 476) (LEFT_PAREN . 148) (ACCESS . 221)
(DELTA . 222) (DIGITS . 223) (MOD . 224) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
- ((default . error) (OTHERS . 182) (IDENTIFIER . 48) (CHARACTER_LITERAL
. 50) (STRING_LITERAL . 49) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
181) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
- ((default . error) (BOX . 472) (RAISE . 152) (PLUS . 154) (MINUS .
153) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW .
149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49)
(LEFT_PAREN . 148))
- ((default . error) (THEN . 470) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (ELSE . 468) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
- ((default . error) (ELSE . 466))
- ((default . error) (THEN . 465))
- ((default . error) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
- ((default . error) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
- ((default . error) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
- ((default . error) (BOX . 459) (RAISE . 152) (PLUS . 154) (MINUS .
153) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW .
149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49)
(LEFT_PAREN . 148))
- ((default . error) (XOR . (primary . 1)) (OR . (primary . 1)) (AND .
(primary . 1)) (SLASH_EQUAL . (primary . 1)) (LESS_EQUAL . (primary . 1)) (LESS
. (primary . 1)) (GREATER_EQUAL . (primary . 1)) (GREATER . (primary . 1))
(EQUAL . (primary . 1)) (EQUAL_GREATER . (primary . 1)) (BAR . (primary . 1))
(PLUS . (primary . 1)) (MINUS . (primary . 1)) (AMPERSAND . (primary . 1))
(DOT_DOT . (primary . 1)) (MOD . (primary . 1)) (REM . (primary . 1)) (SLASH .
(primary . 1)) (STAR . (primar [...]
- ((default . error) (COLON_EQUAL . (factor . 3)) (OF . (factor . 3))
(LOOP . (factor . 3)) (DO . (factor . 3)) (PLUS . (factor . 3)) (MINUS .
(factor . 3)) (AMPERSAND . (factor . 3)) (SEMICOLON . (factor . 3)) (MOD .
(factor . 3)) (REM . (factor . 3)) (SLASH . (factor . 3)) (STAR . (factor . 3))
(XOR . (factor . 3)) (OR . (factor . 3)) (AND . (factor . 3)) (IN . (factor .
3)) (NOT . (factor . 3)) (EQUAL . (factor . 3)) (GREATER . (factor . 3))
(GREATER_EQUAL . (factor . 3)) (LESS . [...]
- ((default . error) (IDENTIFIER . 453) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 454))
- ((default . error) (BODY . 452) (IDENTIFIER . 48) (CHARACTER_LITERAL .
50) (STRING_LITERAL . 49))
- ((default . error) (IDENTIFIER . 451) (TYPE . 450) (BODY . 449))
- ((default . error) (IDENTIFIER . 448))
- ((default . error) (TYPE . 446) (BODY . 445) (IDENTIFIER . 447))
- ((default . error) (IDENTIFIER . 444))
- ((default . error) (COLON . ( 443 (identifier_list . 0))) (COMMA .
(identifier_list . 0)))
+ ((default . error) (IS . ((expression_opt . 0) (association_opt . 0)))
(SEMICOLON . ((expression_opt . 0) (association_opt . 0))) (COMMA .
((expression_opt . 0) (association_opt . 0))) (RIGHT_PAREN . ((expression_opt .
0) (association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (OTHERS . 152) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 157) (STRING_LITERAL . 49) (RAISE . 153) (PLUS . 155)
(MINUS . 154) (ABS . 144) (NOT . 150) (NUME [...]
+ ((default . error) (SEMICOLON . 476))
+ ((default . error) (IDENTIFIER . 471) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 472))
+ ((default . error) (BODY . 470) (IDENTIFIER . 48) (CHARACTER_LITERAL .
50) (STRING_LITERAL . 49))
+ ((default . error) (IDENTIFIER . 469) (TYPE . 468) (BODY . 467))
+ ((default . error) (IDENTIFIER . 466))
+ ((default . error) (TYPE . 464) (BODY . 463) (IDENTIFIER . 465))
+ ((default . error) (IDENTIFIER . 462))
+ ((default . error) (COLON . ( 461 (identifier_list . 0))) (COMMA .
(identifier_list . 0)))
((default . error) (END . (declaration . 0)) (PRIVATE . (declaration .
0)) (IDENTIFIER . (declaration . 0)) (USE . (declaration . 0)) (TYPE .
(declaration . 0)) (TASK . (declaration . 0)) (SUBTYPE . (declaration . 0))
(PROTECTED . (declaration . 0)) (PROCEDURE . (declaration . 0)) (PRAGMA .
(declaration . 0)) (PACKAGE . (declaration . 0)) (OVERRIDING . (declaration .
0)) (NOT . (declaration . 0)) (GENERIC . (declaration . 0)) (FUNCTION .
(declaration . 0)) (FOR . (declaration . 0)) [...]
((default . error) (END . (declaration . 1)) (PRIVATE . (declaration .
1)) (IDENTIFIER . (declaration . 1)) (USE . (declaration . 1)) (TYPE .
(declaration . 1)) (TASK . (declaration . 1)) (SUBTYPE . (declaration . 1))
(PROTECTED . (declaration . 1)) (PROCEDURE . (declaration . 1)) (PRAGMA .
(declaration . 1)) (PACKAGE . (declaration . 1)) (OVERRIDING . (declaration .
1)) (NOT . (declaration . 1)) (GENERIC . (declaration . 1)) (FUNCTION .
(declaration . 1)) (FOR . (declaration . 1)) [...]
((default . error) (WHEN . (aspect_clause . 3)) (PRIVATE .
(aspect_clause . 3)) (END . (aspect_clause . 3)) (CASE . (aspect_clause . 3))
(BEGIN . (aspect_clause . 3)) (ENTRY . (aspect_clause . 3)) (FOR .
(aspect_clause . 3)) (FUNCTION . (aspect_clause . 3)) (GENERIC . (aspect_clause
. 3)) (NOT . (aspect_clause . 3)) (OVERRIDING . (aspect_clause . 3)) (PACKAGE .
(aspect_clause . 3)) (PRAGMA . (aspect_clause . 3)) (PROCEDURE . (aspect_clause
. 3)) (PROTECTED . (aspect_clause . 3)) (S [...]
((default . error) (END . (declaration . 2)) (PRIVATE . (declaration .
2)) (IDENTIFIER . (declaration . 2)) (USE . (declaration . 2)) (TYPE .
(declaration . 2)) (TASK . (declaration . 2)) (SUBTYPE . (declaration . 2))
(PROTECTED . (declaration . 2)) (PROCEDURE . (declaration . 2)) (PRAGMA .
(declaration . 2)) (PACKAGE . (declaration . 2)) (OVERRIDING . (declaration .
2)) (NOT . (declaration . 2)) (GENERIC . (declaration . 2)) (FUNCTION .
(declaration . 2)) (FOR . (declaration . 2)) [...]
((default . error) (PRIVATE . (body . 1)) (END . (body . 1)) (BEGIN .
(body . 1)) (ENTRY . (body . 1)) (FOR . (body . 1)) (FUNCTION . (body . 1))
(GENERIC . (body . 1)) (NOT . (body . 1)) (OVERRIDING . (body . 1)) (PACKAGE .
(body . 1)) (PRAGMA . (body . 1)) (PROCEDURE . (body . 1)) (PROTECTED . (body .
1)) (SUBTYPE . (body . 1)) (TASK . (body . 1)) (TYPE . (body . 1)) (USE . (body
. 1)) (IDENTIFIER . (body . 1)))
((default . error) (PRIVATE . (declarations . 0)) (END . (declarations .
0)) (BEGIN . (declarations . 0)) (ENTRY . (declarations . 0)) (FOR .
(declarations . 0)) (FUNCTION . (declarations . 0)) (GENERIC . (declarations .
0)) (NOT . (declarations . 0)) (OVERRIDING . (declarations . 0)) (PACKAGE .
(declarations . 0)) (PRAGMA . (declarations . 0)) (PROCEDURE . (declarations .
0)) (PROTECTED . (declarations . 0)) (SUBTYPE . (declarations . 0)) (TASK .
(declarations . 0)) (TYPE . (decla [...]
- ((default . error) (END . (declarative_part_opt . 1)) (PRIVATE .
(declarative_part_opt . 1)) (BEGIN . (declarative_part_opt . 1)) (USE . 11)
(SUBTYPE . 302) (PRAGMA . 7) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(ENTRY . (overriding_indicator_opt . 2)) (FOR . 299) (IDENTIFIER . 305) (TYPE
. 304) (GENERIC . 2) (PROTECTED . 301) (TASK . 303) (PACKAGE . 300))
- ((default . error) (END . 440) (PRIVATE . 441))
+ ((default . error) (END . (declarative_part_opt . 1)) (PRIVATE .
(declarative_part_opt . 1)) (BEGIN . (declarative_part_opt . 1)) (USE . 11)
(SUBTYPE . 272) (PRAGMA . 7) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(ENTRY . (overriding_indicator_opt . 2)) (FOR . 269) (IDENTIFIER . 275) (TYPE
. 274) (GENERIC . 2) (PROTECTED . 271) (TASK . 273) (PACKAGE . 270))
+ ((default . error) (END . 458) (PRIVATE . 459))
((default . error) (END . (declaration . 3)) (PRIVATE . (declaration .
3)) (IDENTIFIER . (declaration . 3)) (USE . (declaration . 3)) (TYPE .
(declaration . 3)) (TASK . (declaration . 3)) (SUBTYPE . (declaration . 3))
(PROTECTED . (declaration . 3)) (PROCEDURE . (declaration . 3)) (PRAGMA .
(declaration . 3)) (PACKAGE . (declaration . 3)) (OVERRIDING . (declaration .
3)) (NOT . (declaration . 3)) (GENERIC . (declaration . 3)) (FUNCTION .
(declaration . 3)) (FOR . (declaration . 3)) [...]
((default . error) (WHEN . (aspect_clause . 1)) (PRIVATE .
(aspect_clause . 1)) (END . (aspect_clause . 1)) (CASE . (aspect_clause . 1))
(BEGIN . (aspect_clause . 1)) (ENTRY . (aspect_clause . 1)) (FOR .
(aspect_clause . 1)) (FUNCTION . (aspect_clause . 1)) (GENERIC . (aspect_clause
. 1)) (NOT . (aspect_clause . 1)) (OVERRIDING . (aspect_clause . 1)) (PACKAGE .
(aspect_clause . 1)) (PRAGMA . (aspect_clause . 1)) (PROCEDURE . (aspect_clause
. 1)) (PROTECTED . (aspect_clause . 1)) (S [...]
((default . error) (END . (declaration . 4)) (PRIVATE . (declaration .
4)) (IDENTIFIER . (declaration . 4)) (USE . (declaration . 4)) (TYPE .
(declaration . 4)) (TASK . (declaration . 4)) (SUBTYPE . (declaration . 4))
(PROTECTED . (declaration . 4)) (PROCEDURE . (declaration . 4)) (PRAGMA .
(declaration . 4)) (PACKAGE . (declaration . 4)) (OVERRIDING . (declaration .
4)) (NOT . (declaration . 4)) (GENERIC . (declaration . 4)) (FUNCTION .
(declaration . 4)) (FOR . (declaration . 4)) [...]
@@ -2139,12 +2109,12 @@
((default . error) (END . (declaration . 6)) (PRIVATE . (declaration .
6)) (IDENTIFIER . (declaration . 6)) (USE . (declaration . 6)) (TYPE .
(declaration . 6)) (TASK . (declaration . 6)) (SUBTYPE . (declaration . 6))
(PROTECTED . (declaration . 6)) (PROCEDURE . (declaration . 6)) (PRAGMA .
(declaration . 6)) (PACKAGE . (declaration . 6)) (OVERRIDING . (declaration .
6)) (NOT . (declaration . 6)) (GENERIC . (declaration . 6)) (FUNCTION .
(declaration . 6)) (FOR . (declaration . 6)) [...]
((default . error) (END . (declaration . 7)) (PRIVATE . (declaration .
7)) (IDENTIFIER . (declaration . 7)) (USE . (declaration . 7)) (TYPE .
(declaration . 7)) (TASK . (declaration . 7)) (SUBTYPE . (declaration . 7))
(PROTECTED . (declaration . 7)) (PROCEDURE . (declaration . 7)) (PRAGMA .
(declaration . 7)) (PACKAGE . (declaration . 7)) (OVERRIDING . (declaration .
7)) (NOT . (declaration . 7)) (GENERIC . (declaration . 7)) (FUNCTION .
(declaration . 7)) (FOR . (declaration . 7)) [...]
((default . error) (PRIVATE . (renaming_declaration . 3)) (END .
(renaming_declaration . 3)) (BEGIN . (renaming_declaration . 3)) (ENTRY .
(renaming_declaration . 3)) (FOR . (renaming_declaration . 3)) (FUNCTION .
(renaming_declaration . 3)) (GENERIC . (renaming_declaration . 3)) (NOT .
(renaming_declaration . 3)) (OVERRIDING . (renaming_declaration . 3)) (PACKAGE
. (renaming_declaration . 3)) (PRAGMA . (renaming_declaration . 3)) (PROCEDURE
. (renaming_declaration . 3)) (PROTECTED [...]
- ((default . error) (COMMA . 96) (COLON . 439))
+ ((default . error) (COMMA . 96) (COLON . 457))
((default . error) (PRIVATE . (type_declaration . 1)) (END .
(type_declaration . 1)) (BEGIN . (type_declaration . 1)) (ENTRY .
(type_declaration . 1)) (FOR . (type_declaration . 1)) (FUNCTION .
(type_declaration . 1)) (GENERIC . (type_declaration . 1)) (NOT .
(type_declaration . 1)) (OVERRIDING . (type_declaration . 1)) (PACKAGE .
(type_declaration . 1)) (PRAGMA . (type_declaration . 1)) (PROCEDURE .
(type_declaration . 1)) (PROTECTED . (type_declaration . 1)) (SUBTYPE .
(type_decl [...]
((default . error) (END . (declaration . 8)) (PRIVATE . (declaration .
8)) (IDENTIFIER . (declaration . 8)) (USE . (declaration . 8)) (TYPE .
(declaration . 8)) (TASK . (declaration . 8)) (SUBTYPE . (declaration . 8))
(PROTECTED . (declaration . 8)) (PROCEDURE . (declaration . 8)) (PRAGMA .
(declaration . 8)) (PACKAGE . (declaration . 8)) (OVERRIDING . (declaration .
8)) (NOT . (declaration . 8)) (GENERIC . (declaration . 8)) (FUNCTION .
(declaration . 8)) (FOR . (declaration . 8)) [...]
((default . error) (END . (declaration . 10)) (PRIVATE . (declaration .
10)) (IDENTIFIER . (declaration . 10)) (USE . (declaration . 10)) (TYPE .
(declaration . 10)) (TASK . (declaration . 10)) (SUBTYPE . (declaration . 10))
(PROTECTED . (declaration . 10)) (PROCEDURE . (declaration . 10)) (PRAGMA .
(declaration . 10)) (PACKAGE . (declaration . 10)) (OVERRIDING . (declaration .
10)) (NOT . (declaration . 10)) (GENERIC . (declaration . 10)) (FUNCTION .
(declaration . 10)) (FOR . (de [...]
((default . error) (PRIVATE . (renaming_declaration . 0)) (END .
(renaming_declaration . 0)) (BEGIN . (renaming_declaration . 0)) (ENTRY .
(renaming_declaration . 0)) (FOR . (renaming_declaration . 0)) (FUNCTION .
(renaming_declaration . 0)) (GENERIC . (renaming_declaration . 0)) (NOT .
(renaming_declaration . 0)) (OVERRIDING . (renaming_declaration . 0)) (PACKAGE
. (renaming_declaration . 0)) (PRAGMA . (renaming_declaration . 0)) (PROCEDURE
. (renaming_declaration . 0)) (PROTECTED [...]
- ((default . error) (ENTRY . 435) (FUNCTION . 40) (PROCEDURE . 41))
+ ((default . error) (ENTRY . 453) (FUNCTION . 40) (PROCEDURE . 41))
((default . error) ($EOI . (proper_body . 1)) (LIMITED . (proper_body .
1)) (SEPARATE . (proper_body . 1)) (WITH . (proper_body . 1)) (END .
(proper_body . 1)) (PRIVATE . (proper_body . 1)) (IDENTIFIER . (proper_body .
1)) (USE . (proper_body . 1)) (TYPE . (proper_body . 1)) (TASK . (proper_body .
1)) (SUBTYPE . (proper_body . 1)) (PROTECTED . (proper_body . 1)) (PROCEDURE .
(proper_body . 1)) (PRAGMA . (proper_body . 1)) (PACKAGE . (proper_body . 1))
(OVERRIDING . (proper_body . 1 [...]
((default . error) (END . (body_stub . 1)) (PRIVATE . (body_stub . 1))
(IDENTIFIER . (body_stub . 1)) (USE . (body_stub . 1)) (TYPE . (body_stub . 1))
(TASK . (body_stub . 1)) (SUBTYPE . (body_stub . 1)) (PROTECTED . (body_stub .
1)) (PROCEDURE . (body_stub . 1)) (PRAGMA . (body_stub . 1)) (PACKAGE .
(body_stub . 1)) (OVERRIDING . (body_stub . 1)) (NOT . (body_stub . 1))
(GENERIC . (body_stub . 1)) (FUNCTION . (body_stub . 1)) (FOR . (body_stub .
1)) (ENTRY . (body_stub . 1)) (BEGI [...]
((default . error) (END . (declaration . 11)) (PRIVATE . (declaration .
11)) (IDENTIFIER . (declaration . 11)) (USE . (declaration . 11)) (TYPE .
(declaration . 11)) (TASK . (declaration . 11)) (SUBTYPE . (declaration . 11))
(PROTECTED . (declaration . 11)) (PROCEDURE . (declaration . 11)) (PRAGMA .
(declaration . 11)) (PACKAGE . (declaration . 11)) (OVERRIDING . (declaration .
11)) (NOT . (declaration . 11)) (GENERIC . (declaration . 11)) (FUNCTION .
(declaration . 11)) (FOR . (de [...]
@@ -2170,302 +2140,324 @@
((default . error) (END . (full_type_declaration . 1)) (PRIVATE .
(full_type_declaration . 1)) (IDENTIFIER . (full_type_declaration . 1)) (USE .
(full_type_declaration . 1)) (TYPE . (full_type_declaration . 1)) (TASK .
(full_type_declaration . 1)) (SUBTYPE . (full_type_declaration . 1)) (PROTECTED
. (full_type_declaration . 1)) (PROCEDURE . (full_type_declaration . 1))
(PRAGMA . (full_type_declaration . 1)) (PACKAGE . (full_type_declaration . 1))
(OVERRIDING . (full_type_declaratio [...]
((default . error) (END . (declaration . 16)) (PRIVATE . (declaration .
16)) (IDENTIFIER . (declaration . 16)) (USE . (declaration . 16)) (TYPE .
(declaration . 16)) (TASK . (declaration . 16)) (SUBTYPE . (declaration . 16))
(PROTECTED . (declaration . 16)) (PROCEDURE . (declaration . 16)) (PRAGMA .
(declaration . 16)) (PACKAGE . (declaration . 16)) (OVERRIDING . (declaration .
16)) (NOT . (declaration . 16)) (GENERIC . (declaration . 16)) (FUNCTION .
(declaration . 16)) (FOR . (de [...]
((default . error) (END . (declaration . 17)) (PRIVATE . (declaration .
17)) (IDENTIFIER . (declaration . 17)) (USE . (declaration . 17)) (TYPE .
(declaration . 17)) (TASK . (declaration . 17)) (SUBTYPE . (declaration . 17))
(PROTECTED . (declaration . 17)) (PROCEDURE . (declaration . 17)) (PRAGMA .
(declaration . 17)) (PACKAGE . (declaration . 17)) (OVERRIDING . (declaration .
17)) (NOT . (declaration . 17)) (GENERIC . (declaration . 17)) (FUNCTION .
(declaration . 17)) (FOR . (de [...]
- ((default . error) (BEGIN . (declarative_part_opt . 0)) (END .
(declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 302) (PRAGMA . 7) (NOT .
4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE .
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .
299) (IDENTIFIER . 305) (TYPE . 304) (GENERIC . 2) (PROTECTED . 301) (TASK
. 303) (PACKAGE . 300))
- ((default . error) (COLON_EQUAL . (simple_expression . 0)) (OF .
(simple_expression . 0)) (LOOP . (simple_expression . 0)) (DO .
(simple_expression . 0)) (DOT_DOT . (simple_expression . 0)) (SEMICOLON .
(simple_expression . 0)) (XOR . (simple_expression . 0)) (OR .
(simple_expression . 0)) (AND . (simple_expression . 0)) (SLASH_EQUAL .
(simple_expression . 0)) (LESS_EQUAL . (simple_expression . 0)) (LESS .
(simple_expression . 0)) (GREATER_EQUAL . (simple_expression . 0)) (GREATER
[...]
+ ((default . error) (BEGIN . (declarative_part_opt . 0)) (END .
(declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 272) (PRAGMA . 7) (NOT .
4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE .
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .
269) (IDENTIFIER . 275) (TYPE . 274) (GENERIC . 2) (PROTECTED . 271) (TASK
. 273) (PACKAGE . 270))
+ ((default . error) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (DOT . 90) (OF . (primary . 3)) (COLON_EQUAL .
(primary . 3)) (DO . (primary . 3)) (LOOP . (primary . 3)) (BAR . (primary .
3)) (COMMA . (primary . 3)) (ELSIF . (primary . 3)) (ELSE . (primary . 3))
(EQUAL_GREATER . (primary . 3)) (RIGHT_PAREN . (primary . 3)) (DIGITS .
(primary . 3)) (RANGE . (primary . 3)) (THEN . (primary . 3)) (DOT_DOT .
(primary . 3)) (WITH . (primary . 3)) (IS . (primary . 3)) (IN . (primary . 3))
(NOT . (primary . 3)) (EQUAL . (primary . [...]
+ ((default . error) (COLON_EQUAL . (simple_expression . 0)) (OF .
(simple_expression . 0)) (LOOP . (simple_expression . 0)) (DO .
(simple_expression . 0)) (DOT_DOT . (simple_expression . 0)) (SEMICOLON .
(simple_expression . 0)) (XOR . (simple_expression . 0)) (OR .
(simple_expression . 0)) (AND . (simple_expression . 0)) (SLASH_EQUAL .
(simple_expression . 0)) (LESS_EQUAL . (simple_expression . 0)) (LESS .
(simple_expression . 0)) (GREATER_EQUAL . (simple_expression . 0)) (GREATER
[...]
((default . error) (ABS . (binary_adding_operator . 2)) (LEFT_PAREN .
(binary_adding_operator . 2)) (NEW . (binary_adding_operator . 2)) (NOT .
(binary_adding_operator . 2)) (NULL . (binary_adding_operator . 2))
(NUMERIC_LITERAL . (binary_adding_operator . 2)) (IDENTIFIER .
(binary_adding_operator . 2)) (STRING_LITERAL . (binary_adding_operator . 2))
(CHARACTER_LITERAL . (binary_adding_operator . 2)))
((default . error) (ABS . (binary_adding_operator . 1)) (LEFT_PAREN .
(binary_adding_operator . 1)) (NEW . (binary_adding_operator . 1)) (NOT .
(binary_adding_operator . 1)) (NULL . (binary_adding_operator . 1))
(NUMERIC_LITERAL . (binary_adding_operator . 1)) (IDENTIFIER .
(binary_adding_operator . 1)) (STRING_LITERAL . (binary_adding_operator . 1))
(CHARACTER_LITERAL . (binary_adding_operator . 1)))
((default . error) (ABS . (binary_adding_operator . 0)) (LEFT_PAREN .
(binary_adding_operator . 0)) (NEW . (binary_adding_operator . 0)) (NOT .
(binary_adding_operator . 0)) (NULL . (binary_adding_operator . 0))
(NUMERIC_LITERAL . (binary_adding_operator . 0)) (IDENTIFIER .
(binary_adding_operator . 0)) (STRING_LITERAL . (binary_adding_operator . 0))
(CHARACTER_LITERAL . (binary_adding_operator . 0)))
- ((default . error) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
((default . error) (ABS . (multiplying_operator . 2)) (LEFT_PAREN .
(multiplying_operator . 2)) (NEW . (multiplying_operator . 2)) (NOT .
(multiplying_operator . 2)) (NULL . (multiplying_operator . 2))
(NUMERIC_LITERAL . (multiplying_operator . 2)) (IDENTIFIER .
(multiplying_operator . 2)) (STRING_LITERAL . (multiplying_operator . 2))
(CHARACTER_LITERAL . (multiplying_operator . 2)))
((default . error) (ABS . (multiplying_operator . 3)) (LEFT_PAREN .
(multiplying_operator . 3)) (NEW . (multiplying_operator . 3)) (NOT .
(multiplying_operator . 3)) (NULL . (multiplying_operator . 3))
(NUMERIC_LITERAL . (multiplying_operator . 3)) (IDENTIFIER .
(multiplying_operator . 3)) (STRING_LITERAL . (multiplying_operator . 3))
(CHARACTER_LITERAL . (multiplying_operator . 3)))
((default . error) (ABS . (multiplying_operator . 1)) (LEFT_PAREN .
(multiplying_operator . 1)) (NEW . (multiplying_operator . 1)) (NOT .
(multiplying_operator . 1)) (NULL . (multiplying_operator . 1))
(NUMERIC_LITERAL . (multiplying_operator . 1)) (IDENTIFIER .
(multiplying_operator . 1)) (STRING_LITERAL . (multiplying_operator . 1))
(CHARACTER_LITERAL . (multiplying_operator . 1)))
((default . error) (ABS . (multiplying_operator . 0)) (LEFT_PAREN .
(multiplying_operator . 0)) (NEW . (multiplying_operator . 0)) (NOT .
(multiplying_operator . 0)) (NULL . (multiplying_operator . 0))
(NUMERIC_LITERAL . (multiplying_operator . 0)) (IDENTIFIER .
(multiplying_operator . 0)) (STRING_LITERAL . (multiplying_operator . 0))
(CHARACTER_LITERAL . (multiplying_operator . 0)))
- ((default . error) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
- ((default . error) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
- ((default . error) (THEN . 429) (RAISE . 152) (PLUS . 154) (MINUS .
153) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW .
149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49)
(LEFT_PAREN . 148))
- ((default . error) (ELSE . 427) (RAISE . 152) (PLUS . 154) (MINUS .
153) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW .
149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49)
(LEFT_PAREN . 148))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (ELSE . 424))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (THEN . 422))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (SEMICOLON . 419))
- ((default . error) (FOR . 146) (CASE . 145) (IF . 147) (RAISE . 152)
(PLUS . 154) (MINUS . 153) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155)
(NULL . 151) (NEW . 149) (IDENTIFIER . 156) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (IDENTIFIER . 416))
- ((default . error) (LOOP . (raise_expression . 0)) (DO .
(raise_expression . 0)) (XOR . (raise_expression . 0)) (OR . (raise_expression
. 0)) (AND . (raise_expression . 0)) (IS . (raise_expression . 0)) (SEMICOLON .
(raise_expression . 0)) (THEN . (raise_expression . 0)) (RANGE .
(raise_expression . 0)) (RIGHT_PAREN . (raise_expression . 0)) (COMMA .
(raise_expression . 0)) (DIGITS . (raise_expression . 0)) (EQUAL_GREATER .
(raise_expression . 0)) (ELSE . (raise_expression . 0)) (E [...]
+ ((default . error) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (PLUS . 155) (MINUS . 154) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (ABS . 144) (NOT . 324)
(NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
+ ((default . error) (IN . 445))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (ABS . (relational_operator . 0)) (LEFT_PAREN .
(relational_operator . 0)) (NEW . (relational_operator . 0)) (NOT .
(relational_operator . 0)) (NULL . (relational_operator . 0)) (MINUS .
(relational_operator . 0)) (PLUS . (relational_operator . 0)) (NUMERIC_LITERAL
. (relational_operator . 0)) (IDENTIFIER . (relational_operator . 0))
(STRING_LITERAL . (relational_operator . 0)) (CHARACTER_LITERAL .
(relational_operator . 0)))
+ ((default . error) (ABS . (relational_operator . 4)) (LEFT_PAREN .
(relational_operator . 4)) (NEW . (relational_operator . 4)) (NOT .
(relational_operator . 4)) (NULL . (relational_operator . 4)) (MINUS .
(relational_operator . 4)) (PLUS . (relational_operator . 4)) (NUMERIC_LITERAL
. (relational_operator . 4)) (IDENTIFIER . (relational_operator . 4))
(STRING_LITERAL . (relational_operator . 4)) (CHARACTER_LITERAL .
(relational_operator . 4)))
+ ((default . error) (ABS . (relational_operator . 5)) (LEFT_PAREN .
(relational_operator . 5)) (NEW . (relational_operator . 5)) (NOT .
(relational_operator . 5)) (NULL . (relational_operator . 5)) (MINUS .
(relational_operator . 5)) (PLUS . (relational_operator . 5)) (NUMERIC_LITERAL
. (relational_operator . 5)) (IDENTIFIER . (relational_operator . 5))
(STRING_LITERAL . (relational_operator . 5)) (CHARACTER_LITERAL .
(relational_operator . 5)))
+ ((default . error) (ABS . (relational_operator . 2)) (LEFT_PAREN .
(relational_operator . 2)) (NEW . (relational_operator . 2)) (NOT .
(relational_operator . 2)) (NULL . (relational_operator . 2)) (MINUS .
(relational_operator . 2)) (PLUS . (relational_operator . 2)) (NUMERIC_LITERAL
. (relational_operator . 2)) (IDENTIFIER . (relational_operator . 2))
(STRING_LITERAL . (relational_operator . 2)) (CHARACTER_LITERAL .
(relational_operator . 2)))
+ ((default . error) (ABS . (relational_operator . 3)) (LEFT_PAREN .
(relational_operator . 3)) (NEW . (relational_operator . 3)) (NOT .
(relational_operator . 3)) (NULL . (relational_operator . 3)) (MINUS .
(relational_operator . 3)) (PLUS . (relational_operator . 3)) (NUMERIC_LITERAL
. (relational_operator . 3)) (IDENTIFIER . (relational_operator . 3))
(STRING_LITERAL . (relational_operator . 3)) (CHARACTER_LITERAL .
(relational_operator . 3)))
+ ((default . error) (ABS . (relational_operator . 1)) (LEFT_PAREN .
(relational_operator . 1)) (NEW . (relational_operator . 1)) (NOT .
(relational_operator . 1)) (NULL . (relational_operator . 1)) (MINUS .
(relational_operator . 1)) (PLUS . (relational_operator . 1)) (NUMERIC_LITERAL
. (relational_operator . 1)) (IDENTIFIER . (relational_operator . 1))
(STRING_LITERAL . (relational_operator . 1)) (CHARACTER_LITERAL .
(relational_operator . 1)))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (THEN . 441) (RAISE . 153) (PLUS . 155) (MINUS .
154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW .
149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49)
(LEFT_PAREN . 148))
+ ((default . error) (ELSE . 439) (RAISE . 153) (PLUS . 155) (MINUS .
154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW .
149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49)
(LEFT_PAREN . 148))
+ ((default . error) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS .
144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS .
144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (ELSE . 436))
+ ((default . error) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS .
144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (THEN . 434))
+ ((default . error) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS .
144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (RANGE . 431) (LEFT_PAREN . 148) (ACCESS . 215)
(DELTA . 216) (DIGITS . 217) (MOD . 218) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
+ ((default . error) (OTHERS . 152) (IDENTIFIER . 48) (CHARACTER_LITERAL
. 50) (STRING_LITERAL . 49) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
+ ((default . error) (BOX . 427) (SEMICOLON . (expression_opt . 0)) (IS .
(expression_opt . 0)) (COMMA . (expression_opt . 0)) (RIGHT_PAREN .
(expression_opt . 0)) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144)
(NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER .
48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (SEMICOLON . 426))
+ ((default . error) (THEN . 424) (PLUS . 155) (MINUS . 154) (ABS .
144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (ELSE . 422) (PLUS . 155) (MINUS . 154) (ABS .
144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (ELSE . 420))
+ ((default . error) (THEN . 419))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (SEMICOLON . 414))
+ ((default . error) (BOX . 412) (SEMICOLON . (expression_opt . 0)) (IS .
(expression_opt . 0)) (COMMA . (expression_opt . 0)) (RIGHT_PAREN .
(expression_opt . 0)) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144)
(NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER .
48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((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) (XOR . (primary . 1)) (OR . (primary . 1)) (AND .
(primary . 1)) (SLASH_EQUAL . (primary . 1)) (LESS_EQUAL . (primary . 1)) (LESS
. (primary . 1)) (GREATER_EQUAL . (primary . 1)) (GREATER . (primary . 1))
(EQUAL . (primary . 1)) (EQUAL_GREATER . (primary . 1)) (BAR . (primary . 1))
(PLUS . (primary . 1)) (MINUS . (primary . 1)) (AMPERSAND . (primary . 1))
(DOT_DOT . (primary . 1)) (MOD . (primary . 1)) (REM . (primary . 1)) (SLASH .
(primary . 1)) (STAR . (primar [...]
+ ((default . error) (COLON_EQUAL . (factor . 3)) (OF . (factor . 3))
(LOOP . (factor . 3)) (DO . (factor . 3)) (THEN . (factor . 3)) (RANGE .
(factor . 3)) (DIGITS . (factor . 3)) (ELSE . (factor . 3)) (ELSIF . (factor .
3)) (XOR . (factor . 3)) (OR . (factor . 3)) (AND . (factor . 3)) (SLASH_EQUAL
. (factor . 3)) (LESS_EQUAL . (factor . 3)) (LESS . (factor . 3))
(GREATER_EQUAL . (factor . 3)) (GREATER . (factor . 3)) (EQUAL . (factor . 3))
(EQUAL_GREATER . (factor . 3)) (BAR . (fac [...]
((default . error) (DOT . 90) (TICK . 91) (COLON_EQUAL . (primary .
4)) (OF . (primary . 4)) (LOOP . (primary . 4)) (DO . (primary . 4)) (STAR_STAR
. (primary . 4)) (STAR . (primary . 4)) (SLASH . (primary . 4)) (REM . (primary
. 4)) (MOD . (primary . 4)) (DOT_DOT . (primary . 4)) (AMPERSAND . (primary .
4)) (MINUS . (primary . 4)) (PLUS . (primary . 4)) (SEMICOLON . (primary . 4))
(XOR . (primary . 4)) (OR . (primary . 4)) (AND . (primary . 4)) (SLASH_EQUAL .
(primary . 4)) (LES [...]
- ((default . error) (DOT_DOT . (primary . 1)) (RIGHT_PAREN . (primary .
1)) (COMMA . (primary . 1)) (BAR . (primary . 1)) (EQUAL_GREATER . (primary .
1)) (PLUS . (primary . 1)) (MINUS . (primary . 1)) (AMPERSAND . (primary . 1))
(IN . (primary . 1)) (NOT . (primary . 1)) (EQUAL . (primary . 1)) (GREATER .
(primary . 1)) (GREATER_EQUAL . (primary . 1)) (LESS . (primary . 1))
(LESS_EQUAL . (primary . 1)) (SLASH_EQUAL . (primary . 1)) (WITH . (primary .
1)) (MOD . (primary . 1)) (REM . [...]
- ((default . error) (COMMA . 273) (RIGHT_PAREN . 413))
- ((default . error) (RIGHT_PAREN . 412))
- ((default . error) (RIGHT_PAREN . (expression_opt . 1)) (COMMA .
(expression_opt . 1)) (WITH . 411))
- ((default . error) (THEN . 410))
+ ((default . error) (DOT_DOT . (primary . 1)) (RIGHT_PAREN . (primary .
1)) (COMMA . (primary . 1)) (BAR . (primary . 1)) (EQUAL_GREATER . (primary .
1)) (PLUS . (primary . 1)) (MINUS . (primary . 1)) (AMPERSAND . (primary . 1))
(IN . (primary . 1)) (NOT . (primary . 1)) (EQUAL . (primary . 1)) (GREATER .
(primary . 1)) (GREATER_EQUAL . (primary . 1)) (LESS . (primary . 1))
(LESS_EQUAL . (primary . 1)) (SLASH_EQUAL . (primary . 1)) (WITH . (primary .
1)) (MOD . (primary . 1)) (REM . [...]
+ ((default . error) (COMMA . 267) (RIGHT_PAREN . 408))
+ ((default . error) (RIGHT_PAREN . 407))
+ ((default . error) (COMMA . (association_opt . 5)) (RIGHT_PAREN .
(association_opt . 5)) (WITH . 406))
+ ((default . error) (THEN . 405))
+ ((default . error) (IN . 336) (NOT . 337) (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))
(WITH . (relation . 0)) (SEMICOLON . (relation . 0)) (IS . (relation . 0)) (AND
. (relation . 0)) (OR . (relation . 0)) (XOR . (relation . 0)) (EQUAL . 339)
(SLASH_EQUAL . 344) (LES [...]
((default . error) (IDENTIFIER . (quantifier . 0)))
((default . error) (IDENTIFIER . (quantifier . 1)))
- ((default . error) (IDENTIFIER . 408))
- ((default . error) (IS . 407))
+ ((default . error) (IDENTIFIER . 402))
+ ((default . error) (IS . 401))
((default . error) (COLON_EQUAL . (factor . 2)) (OF . (factor . 2))
(LOOP . (factor . 2)) (DO . (factor . 2)) (PLUS . (factor . 2)) (MINUS .
(factor . 2)) (AMPERSAND . (factor . 2)) (DOT_DOT . (factor . 2)) (MOD .
(factor . 2)) (REM . (factor . 2)) (SLASH . (factor . 2)) (STAR . (factor . 2))
(SEMICOLON . (factor . 2)) (XOR . (factor . 2)) (OR . (factor . 2)) (AND .
(factor . 2)) (IN . (factor . 2)) (NOT . (factor . 2)) (EQUAL . (factor . 2))
(GREATER . (factor . 2)) (GREATER_EQUAL [...]
((default . error) (BODY . 67))
- ((default . error) (BODY . 406))
- ((default . error) (BODY . 405))
+ ((default . error) (BODY . 400))
+ ((default . error) (BODY . 399))
((default . error) (FUNCTION . 1) (PROCEDURE . 9))
((default . error) ($EOI . (subunit . 0)) (FUNCTION . (subunit . 0))
(GENERIC . (subunit . 0)) (LIMITED . (subunit . 0)) (NOT . (subunit . 0))
(OVERRIDING . (subunit . 0)) (PACKAGE . (subunit . 0)) (PRAGMA . (subunit . 0))
(PRIVATE . (subunit . 0)) (PROCEDURE . (subunit . 0)) (SEPARATE . (subunit .
0)) (USE . (subunit . 0)) (WITH . (subunit . 0)))
((default . error) (SEPARATE . (use_clause . 1)) (LIMITED . (use_clause
. 1)) ($EOI . (use_clause . 1)) (WITH . (use_clause . 1)) (PRIVATE .
(use_clause . 1)) (END . (use_clause . 1)) (BEGIN . (use_clause . 1)) (ENTRY .
(use_clause . 1)) (FOR . (use_clause . 1)) (FUNCTION . (use_clause . 1))
(GENERIC . (use_clause . 1)) (NOT . (use_clause . 1)) (OVERRIDING . (use_clause
. 1)) (PACKAGE . (use_clause . 1)) (PRAGMA . (use_clause . 1)) (PROCEDURE .
(use_clause . 1)) (PROTECTED . (use_c [...]
- ((default . error) (SEMICOLON . 403))
- ((default . error) (BEGIN . 402))
+ ((default . error) (SEMICOLON . 397))
+ ((default . error) (BEGIN . 396))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
((default . error) (DOT . 90) (TICK . 91) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109) (LEFT_PAREN . 107))
((default . error) (DOT . 90) (TICK . 91) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109) (LEFT_PAREN . 107))
- ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt [...]
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt [...]
((default . error) (BEGIN . (subprogram_renaming_declaration . 0))
(ENTRY . (subprogram_renaming_declaration . 0)) (FOR .
(subprogram_renaming_declaration . 0)) (PROTECTED .
(subprogram_renaming_declaration . 0)) (SUBTYPE .
(subprogram_renaming_declaration . 0)) (TASK . (subprogram_renaming_declaration
. 0)) (TYPE . (subprogram_renaming_declaration . 0)) (IDENTIFIER .
(subprogram_renaming_declaration . 0)) (END . (subprogram_renaming_declaration
. 0)) (WITH . (subprogram_renaming_d [...]
((default . error) (IS . (aspect_specification_opt . 0)) (WITH . 109))
- ((default . error) (IDENTIFIER . 628))
- ((default . error) (IDENTIFIER . 627))
- ((default . error) (WHEN . 624))
- ((default . error) (OF . 622) (COLON . 623) (IN . 621))
- ((default . error) (EQUAL_GREATER . 620))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (RIGHT_PAREN . ((expression_opt . 0) (association_opt
. 0))) (COMMA . ((expression_opt . 0) (association_opt . 0))) (EQUAL_GREATER .
(discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS . 182)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 183) (STRING_LITERAL . 49) (RAISE .
152) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT . 181) (NUMERIC_LITERAL .
155) (NULL . 617) (NEW . 149) (LEFT_PAREN . 148))
+ ((default . error) (IDENTIFIER . 620))
+ ((default . error) (IDENTIFIER . 619))
+ ((default . error) (WHEN . 616))
+ ((default . error) (OF . 614) (COLON . 615) (IN . 613))
+ ((default . error) (EQUAL_GREATER . 612))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (ELSIF . (expression_opt . 0)) (ELSE .
(expression_opt . 0)) (RIGHT_PAREN . (expression_opt . 0)) (RAISE . 153) (PLUS
. 155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL
. 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (RIGHT_PAREN . ((expression_opt . 0) (association_opt
. 0))) (COMMA . ((expression_opt . 0) (association_opt . 0))) (EQUAL_GREATER .
(discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (OTHERS . 152)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 157) (STRING_LITERAL . 49) (RAISE .
153) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL .
156) (NULL . 608) (NEW . 149) (LEFT_PAREN . 148))
((default . error) (USE . (aggregate . 2)) (COLON_EQUAL . (aggregate .
2)) (CHARACTER_LITERAL . (aggregate . 2)) (STRING_LITERAL . (aggregate . 2))
(IDENTIFIER . (aggregate . 2)) (LESS_LESS . (aggregate . 2)) (WHILE .
(aggregate . 2)) (SELECT . (aggregate . 2)) (REQUEUE . (aggregate . 2)) (RAISE
. (aggregate . 2)) (PRAGMA . (aggregate . 2)) (NULL . (aggregate . 2)) (IF .
(aggregate . 2)) (GOTO . (aggregate . 2)) (FOR . (aggregate . 2)) (EXIT .
(aggregate . 2)) (DELAY . (aggregate . [...]
((default . error) (USE . (aggregate . 0)) (COLON_EQUAL . (aggregate .
0)) (CHARACTER_LITERAL . (aggregate . 0)) (STRING_LITERAL . (aggregate . 0))
(IDENTIFIER . (aggregate . 0)) (LESS_LESS . (aggregate . 0)) (WHILE .
(aggregate . 0)) (SELECT . (aggregate . 0)) (REQUEUE . (aggregate . 0)) (RAISE
. (aggregate . 0)) (PRAGMA . (aggregate . 0)) (NULL . (aggregate . 0)) (IF .
(aggregate . 0)) (GOTO . (aggregate . 0)) (FOR . (aggregate . 0)) (EXIT .
(aggregate . 0)) (DELAY . (aggregate . [...]
- ((default . error) (RIGHT_PAREN . 616))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (EQUAL_GREATER . 614))
- ((default . error) (COMMA . (pragma_argument_association . 0))
(RIGHT_PAREN . (pragma_argument_association . 0)))
- ((default . error) (RIGHT_PAREN . (pragma_argument_association_list .
1)) (COMMA . (pragma_argument_association_list . 1)))
- ((default . error) (WHEN . (pragma . 0)) (THEN . (pragma . 0)) (OR .
(pragma . 0)) (ELSIF . (pragma . 0)) (ELSE . (pragma . 0)) (CHARACTER_LITERAL .
(pragma . 0)) (STRING_LITERAL . (pragma . 0)) (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 [...]
- ((default . error) (OF . (factor . 0)) (COLON_EQUAL . (factor . 0)) (DO
. (factor . 0)) (LOOP . (factor . 0)) (ELSIF . (factor . 0)) (ELSE . (factor .
0)) (DIGITS . (factor . 0)) (COMMA . (factor . 0)) (RIGHT_PAREN . (factor . 0))
(RANGE . (factor . 0)) (THEN . (factor . 0)) (WITH . (factor . 0)) (BAR .
(factor . 0)) (EQUAL_GREATER . (factor . 0)) (IS . (factor . 0)) (SLASH_EQUAL .
(factor . 0)) (LESS_EQUAL . (factor . 0)) (LESS . (factor . 0)) (GREATER_EQUAL
. (factor . 0)) (GREAT [...]
- ((default . error) (DO . (relation_and_list . 1)) (LOOP .
(relation_and_list . 1)) (XOR . (relation_and_list . 1)) (OR .
(relation_and_list . 1)) (ELSIF . (relation_and_list . 1)) (ELSE .
(relation_and_list . 1)) (EQUAL_GREATER . (relation_and_list . 1)) (DIGITS .
(relation_and_list . 1)) (RIGHT_PAREN . (relation_and_list . 1)) (COMMA .
(relation_and_list . 1)) (RANGE . (relation_and_list . 1)) (THEN .
(relation_and_list . 1)) (SEMICOLON . (relation_and_list . 1)) (WITH .
(relation [...]
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (DO . (relation_or_list . 1)) (LOOP .
(relation_or_list . 1)) (XOR . (relation_or_list . 1)) (AND . (relation_or_list
. 1)) (ELSIF . (relation_or_list . 1)) (ELSE . (relation_or_list . 1))
(EQUAL_GREATER . (relation_or_list . 1)) (DIGITS . (relation_or_list . 1))
(RIGHT_PAREN . (relation_or_list . 1)) (COMMA . (relation_or_list . 1)) (RANGE
. (relation_or_list . 1)) (THEN . (relation_or_list . 1)) (SEMICOLON .
(relation_or_list . 1)) (WITH . (relation_or_list . 1 [...]
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (DO . (relation_xor_list . 1)) (LOOP .
(relation_xor_list . 1)) (OR . (relation_xor_list . 1)) (AND .
(relation_xor_list . 1)) (ELSIF . (relation_xor_list . 1)) (ELSE .
(relation_xor_list . 1)) (EQUAL_GREATER . (relation_xor_list . 1)) (DIGITS .
(relation_xor_list . 1)) (RIGHT_PAREN . (relation_xor_list . 1)) (COMMA .
(relation_xor_list . 1)) (RANGE . (relation_xor_list . 1)) (THEN .
(relation_xor_list . 1)) (SEMICOLON . (relation_xor_list . 1)) (WITH .
(relation [...]
- ((default . error) (DO . (relation_xor_list . 0)) (LOOP .
(relation_xor_list . 0)) (OR . (relation_xor_list . 0)) (AND .
(relation_xor_list . 0)) (ELSIF . (relation_xor_list . 0)) (ELSE .
(relation_xor_list . 0)) (EQUAL_GREATER . (relation_xor_list . 0)) (DIGITS .
(relation_xor_list . 0)) (RIGHT_PAREN . (relation_xor_list . 0)) (COMMA .
(relation_xor_list . 0)) (RANGE . (relation_xor_list . 0)) (THEN .
(relation_xor_list . 0)) (SEMICOLON . (relation_xor_list . 0)) (WITH .
(relation [...]
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (DO . (relation_or_list . 0)) (LOOP .
(relation_or_list . 0)) (XOR . (relation_or_list . 0)) (AND . (relation_or_list
. 0)) (ELSIF . (relation_or_list . 0)) (ELSE . (relation_or_list . 0))
(EQUAL_GREATER . (relation_or_list . 0)) (DIGITS . (relation_or_list . 0))
(RIGHT_PAREN . (relation_or_list . 0)) (COMMA . (relation_or_list . 0)) (RANGE
. (relation_or_list . 0)) (THEN . (relation_or_list . 0)) (SEMICOLON .
(relation_or_list . 0)) (WITH . (relation_or_list . 0 [...]
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (DO . (relation_and_list . 0)) (LOOP .
(relation_and_list . 0)) (XOR . (relation_and_list . 0)) (OR .
(relation_and_list . 0)) (ELSIF . (relation_and_list . 0)) (ELSE .
(relation_and_list . 0)) (EQUAL_GREATER . (relation_and_list . 0)) (DIGITS .
(relation_and_list . 0)) (RIGHT_PAREN . (relation_and_list . 0)) (COMMA .
(relation_and_list . 0)) (RANGE . (relation_and_list . 0)) (THEN .
(relation_and_list . 0)) (SEMICOLON . (relation_and_list . 0)) (WITH .
(relation [...]
- ((default . error) (DO . (relation . 1)) (LOOP . (relation . 1)) (COMMA
. (relation . 1)) (ELSIF . (relation . 1)) (ELSE . (relation . 1))
(EQUAL_GREATER . (relation . 1)) (RIGHT_PAREN . (relation . 1)) (DIGITS .
(relation . 1)) (RANGE . (relation . 1)) (THEN . (relation . 1)) (SEMICOLON .
(relation . 1)) (WITH . (relation . 1)) (IS . (relation . 1)) (AND . (relation
. 1)) (OR . (relation . 1)) (XOR . (relation . 1)))
- ((default . error) (OF . (term . 1)) (COLON_EQUAL . (term . 1)) (DO .
(term . 1)) (LOOP . (term . 1)) (ELSIF . (term . 1)) (ELSE . (term . 1))
(DIGITS . (term . 1)) (RIGHT_PAREN . (term . 1)) (COMMA . (term . 1)) (RANGE .
(term . 1)) (THEN . (term . 1)) (WITH . (term . 1)) (BAR . (term . 1))
(EQUAL_GREATER . (term . 1)) (IS . (term . 1)) (IN . (term . 1)) (NOT . (term .
1)) (EQUAL . (term . 1)) (GREATER . (term . 1)) (GREATER_EQUAL . (term . 1))
(LESS . (term . 1)) (LESS_EQUAL . (t [...]
- ((default . error) (OF . (term_list . 1)) (COLON_EQUAL . (term_list .
1)) (DO . (term_list . 1)) (LOOP . (term_list . 1)) (ELSIF . (term_list . 1))
(ELSE . (term_list . 1)) (DIGITS . (term_list . 1)) (COMMA . (term_list . 1))
(RIGHT_PAREN . (term_list . 1)) (RANGE . (term_list . 1)) (THEN . (term_list .
1)) (WITH . (term_list . 1)) (BAR . (term_list . 1)) (EQUAL_GREATER .
(term_list . 1)) (IS . (term_list . 1)) (SLASH_EQUAL . (term_list . 1))
(LESS_EQUAL . (term_list . 1)) (LESS . [...]
- ((default . error) (BEGIN . 608) (END . 609))
- ((default . error) (IDENTIFIER . 607))
- ((default . error) (RENAMES . (subprogram_specification . 1)) (IS . (
606 (subprogram_specification . 1))) (WITH . (subprogram_specification . 1))
(SEMICOLON . (subprogram_specification . 1)))
- ((default . error) (RENAMES . (subprogram_specification . 0)) (IS . (
605 (subprogram_specification . 0))) (WITH . (subprogram_specification . 0))
(SEMICOLON . (subprogram_specification . 0)))
- ((default . error) (RENAMES . 128) (SEMICOLON .
(aspect_specification_opt . 0)) (IS . ( 604 (aspect_specification_opt . 0)))
(WITH . 109))
- ((default . error) (EXCEPTION . 602) (CONSTANT . ( 601 (aliased_opt .
0))) (ARRAY . (aliased_opt . 0)) (ACCESS . (aliased_opt . 0)) (NOT .
(aliased_opt . 0)) (IDENTIFIER . (aliased_opt . 0)) (STRING_LITERAL .
(aliased_opt . 0)) (CHARACTER_LITERAL . (aliased_opt . 0)) (ALIASED . 531))
- ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
- ((default . error) (END . (declarative_part_opt . 0)) (USE . 11)
(SUBTYPE . 302) (PRAGMA . 7) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(ENTRY . (overriding_indicator_opt . 2)) (FOR . 299) (IDENTIFIER . 305) (TYPE
. 304) (GENERIC . 2) (PROTECTED . 301) (TASK . 303) (PACKAGE . 300))
- ((default . error) (IDENTIFIER . (declarations . 1)) (USE .
(declarations . 1)) (TYPE . (declarations . 1)) (TASK . (declarations . 1))
(SUBTYPE . (declarations . 1)) (PROTECTED . (declarations . 1)) (PROCEDURE .
(declarations . 1)) (PRAGMA . (declarations . 1)) (PACKAGE . (declarations .
1)) (OVERRIDING . (declarations . 1)) (NOT . (declarations . 1)) (GENERIC .
(declarations . 1)) (FUNCTION . (declarations . 1)) (FOR . (declarations . 1))
(ENTRY . (declarations . 1)) (BEGIN . (de [...]
- ((default . error) (EXCEPTION . 596) (IDENTIFIER . (null_exclusion_opt
. 0)) (STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL .
(null_exclusion_opt . 0)) (ACCESS . (null_exclusion_opt . 0)) (NOT . 232))
- ((default . error) (IS . (discriminant_part_opt . 0)) (SEMICOLON .
(discriminant_part_opt . 0)) (LEFT_PAREN . 211))
- ((default . error) (IDENTIFIER . 594))
- ((default . error) (IDENTIFIER . 593))
- ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (IS .
(aspect_specification_opt . 0)) (WITH . 109))
- ((default . error) (IS . 591))
- ((default . error) (IDENTIFIER . 590))
- ((default . error) (IDENTIFIER . 589))
- ((default . error) (IS . (aspect_specification_opt . 0)) (WITH . 109))
- ((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (USE . ((name . 0) (direct_name . 0))) (LEFT_PAREN .
(name . 0)) (DOT . (name . 0)) (TICK . (name . 0)))
- ((default . error) (USE . ((name . 7) (direct_name . 1))) (LEFT_PAREN .
(name . 7)) (DOT . (name . 7)) (TICK . (name . 7)))
- ((default . error) (USE . ( 586 (name . 4))) (LEFT_PAREN . (name . 4))
(DOT . (name . 4)) (TICK . (name . 4)))
- ((default . error) (USE . 585))
- ((default . error) (DOT . 90) (TICK . 91) (USE . 584) (LEFT_PAREN .
107))
+ ((default . error) (RIGHT_PAREN . 607))
((default . error) (DOT . 90) (TICK . 91) (BAR . (discrete_choice .
1)) (EQUAL_GREATER . (discrete_choice . 1)) (LEFT_PAREN . 107))
+ ((default . error) (XOR . (expression_opt . 0)) (OR . (expression_opt .
0)) (AND . (expression_opt . 0)) (IS . (expression_opt . 0)) (WITH .
(expression_opt . 0)) (SEMICOLON . (expression_opt . 0)) (THEN .
(expression_opt . 0)) (RANGE . (expression_opt . 0)) (RIGHT_PAREN .
(expression_opt . 0)) (COMMA . (expression_opt . 0)) (DIGITS . (expression_opt
. 0)) (EQUAL_GREATER . (expression_opt . 0)) (ELSE . (expression_opt . 0))
(ELSIF . (expression_opt . 0)) (LOOP . (expression_opt . 0 [...]
((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) (WHEN . (pragma . 0)) (THEN . (pragma . 0)) (OR .
(pragma . 0)) (ELSIF . (pragma . 0)) (ELSE . (pragma . 0)) (CHARACTER_LITERAL .
(pragma . 0)) (STRING_LITERAL . (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 [...]
((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 . 278) (SLASH_EQUAL . 283) (LESS . 281)
(LESS_EQUAL . 282) (GREATER . 279) (GREATER_EQUAL . 280))
+ ((default . error) (XOR . (choice_relation . 1)) (OR . (choice_relation
. 1)) (BAR . (choice_relation . 1)) (EQUAL_GREATER . (choice_relation . 1))
(AND . (choice_relation . 1)) (EQUAL . 339) (SLASH_EQUAL . 344) (LESS . 342)
(LESS_EQUAL . 343) (GREATER . 340) (GREATER_EQUAL . 341))
((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 . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
- ((default . error) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (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 . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (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 . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (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) (WHEN . (pragma . 1)) (THEN . (pragma . 1)) (OR .
(pragma . 1)) (ELSIF . (pragma . 1)) (ELSE . (pragma . 1)) (CHARACTER_LITERAL .
(pragma . 1)) (STRING_LITERAL . (pragma . 1)) (WHILE . (pragma . 1)) (SELECT .
(pragma . 1)) (RETURN . (pragma . 1)) (REQUEUE . (pragma . 1)) (RAISE . (pragma
. 1)) (NULL . (pragma . 1)) (LOOP . (pragma . 1)) (IF . (pragma . 1)) (GOTO .
(pragma . 1)) (EXIT . (pragma . 1)) (DELAY . (pragma . 1)) (DECLARE . (pragma .
1)) (CASE . (pragma [...]
((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 . 277) (BAR . (choice_relation . 1))
(EQUAL_GREATER . (choice_relation . 1)) (AND . (choice_relation . 1)) (OR .
(choice_relation . 1)) (XOR . (choice_relation . 1)) (EQUAL . 278)
(SLASH_EQUAL . 283) (LESS . 281) (LESS_EQUAL . 282) (GREATER . 279)
(GREATER_EQUAL . 280))
- ((default . error) (LOOP . (range . 1)) (DO . (range . 1)) (OF . (range
. 1)) (COLON_EQUAL . (range . 1)) (ELSIF . (range . 1)) (ELSE . (range . 1))
(DIGITS . (range . 1)) (RANGE . (range . 1)) (THEN . (range . 1)) (SEMICOLON .
(range . 1)) (WITH . (range . 1)) (IS . (range . 1)) (AND . (range . 1)) (OR .
(range . 1)) (XOR . (range . 1)) (COMMA . (range . 1)) (RIGHT_PAREN . (range .
1)) (EQUAL_GREATER . (range . 1)) (BAR . (range . 1)) (LEFT_PAREN . 578))
+ ((default . error) (DOT_DOT . 338) (BAR . (choice_relation . 1))
(EQUAL_GREATER . (choice_relation . 1)) (AND . (choice_relation . 1)) (OR .
(choice_relation . 1)) (XOR . (choice_relation . 1)) (EQUAL . 339)
(SLASH_EQUAL . 344) (LESS . 342) (LESS_EQUAL . 343) (GREATER . 340)
(GREATER_EQUAL . 341))
+ ((default . error) (LOOP . (range . 1)) (DO . (range . 1)) (ELSIF .
(range . 1)) (ELSE . (range . 1)) (DIGITS . (range . 1)) (RANGE . (range . 1))
(THEN . (range . 1)) (OF . (range . 1)) (COLON_EQUAL . (range . 1)) (SEMICOLON
. (range . 1)) (IS . (range . 1)) (WITH . (range . 1)) (AND . (range . 1)) (OR
. (range . 1)) (XOR . (range . 1)) (COMMA . (range . 1)) (RIGHT_PAREN . (range
. 1)) (EQUAL_GREATER . (range . 1)) (BAR . (range . 1)) (LEFT_PAREN . 600))
+ ((default . error) (OF . (factor . 0)) (COLON_EQUAL . (factor . 0)) (DO
. (factor . 0)) (LOOP . (factor . 0)) (ELSIF . (factor . 0)) (ELSE . (factor .
0)) (DIGITS . (factor . 0)) (COMMA . (factor . 0)) (RIGHT_PAREN . (factor . 0))
(RANGE . (factor . 0)) (THEN . (factor . 0)) (WITH . (factor . 0)) (BAR .
(factor . 0)) (EQUAL_GREATER . (factor . 0)) (IS . (factor . 0)) (SLASH_EQUAL .
(factor . 0)) (LESS_EQUAL . (factor . 0)) (LESS . (factor . 0)) (GREATER_EQUAL
. (factor . 0)) (GREAT [...]
+ ((default . error) (DO . (relation_and_list . 1)) (LOOP .
(relation_and_list . 1)) (XOR . (relation_and_list . 1)) (OR .
(relation_and_list . 1)) (ELSIF . (relation_and_list . 1)) (ELSE .
(relation_and_list . 1)) (EQUAL_GREATER . (relation_and_list . 1)) (DIGITS .
(relation_and_list . 1)) (RIGHT_PAREN . (relation_and_list . 1)) (COMMA .
(relation_and_list . 1)) (RANGE . (relation_and_list . 1)) (THEN .
(relation_and_list . 1)) (WITH . (relation_and_list . 1)) (SEMICOLON .
(relation [...]
+ ((default . error) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS .
144) (NOT . 324) (NUMERIC_LITERAL . 156) (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)) (WITH .
(relation_or_list . 1)) (SEMICOLON . (relation_or_list . 1 [...]
+ ((default . error) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS .
144) (NOT . 324) (NUMERIC_LITERAL . 156) (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)) (WITH . (relation_xor_list . 1)) (SEMICOLON .
(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)) (WITH . (relation_xor_list . 0)) (SEMICOLON .
(relation [...]
+ ((default . error) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS .
144) (NOT . 324) (NUMERIC_LITERAL . 156) (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)) (WITH .
(relation_or_list . 0)) (SEMICOLON . (relation_or_list . 0 [...]
+ ((default . error) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS .
144) (NOT . 324) (NUMERIC_LITERAL . 156) (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)) (WITH . (relation_and_list . 0)) (SEMICOLON .
(relation [...]
((default . error) (SEMICOLON . (relation . 1)) (IS . (relation . 1))
(WITH . (relation . 1)) (RIGHT_PAREN . (relation . 1)) (COMMA . (relation . 1))
(BAR . (choice_relation . 0)) (EQUAL_GREATER . (choice_relation . 0)) (AND .
((choice_relation . 0) (relation . 1))) (OR . ((choice_relation . 0) (relation
. 1))) (XOR . ((choice_relation . 0) (relation . 1))))
- ((default . error) (DO . (range . 2)) (LOOP . (range . 2)) (OF . (range
. 2)) (COLON_EQUAL . (range . 2)) (ELSIF . (range . 2)) (ELSE . (range . 2))
(DIGITS . (range . 2)) (RANGE . (range . 2)) (THEN . (range . 2)) (SEMICOLON .
(range . 2)) (WITH . (range . 2)) (IS . (range . 2)) (AND . (range . 2)) (OR .
(range . 2)) (XOR . (range . 2)) (COMMA . (range . 2)) (RIGHT_PAREN . (range .
2)) (EQUAL_GREATER . (range . 2)) (BAR . (range . 2)))
- ((default . error) (PLUS . 154) (MINUS . 153) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (ABS . 144) (NOT . 150)
(NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
- ((default . error) (BAR . 576) (DO . (relation . 3)) (LOOP . (relation
. 3)) (COMMA . (relation . 3)) (ELSIF . (relation . 3)) (ELSE . (relation . 3))
(EQUAL_GREATER . (relation . 3)) (RIGHT_PAREN . (relation . 3)) (DIGITS .
(relation . 3)) (RANGE . (relation . 3)) (THEN . (relation . 3)) (SEMICOLON .
(relation . 3)) (WITH . (relation . 3)) (IS . (relation . 3)) (AND . (relation
. 3)) (OR . (relation . 3)) (XOR . (relation . 3)))
- ((default . error) (DO . (membership_choice_list . 0)) (LOOP .
(membership_choice_list . 0)) (COMMA . (membership_choice_list . 0)) (ELSIF .
(membership_choice_list . 0)) (ELSE . (membership_choice_list . 0))
(EQUAL_GREATER . (membership_choice_list . 0)) (RIGHT_PAREN .
(membership_choice_list . 0)) (DIGITS . (membership_choice_list . 0)) (RANGE .
(membership_choice_list . 0)) (THEN . (membership_choice_list . 0)) (SEMICOLON
. (membership_choice_list . 0)) (WITH . (membership_choic [...]
- ((default . error) (DO . (membership_choice . 1)) (LOOP .
(membership_choice . 1)) (COMMA . (membership_choice . 1)) (ELSIF .
(membership_choice . 1)) (ELSE . (membership_choice . 1)) (EQUAL_GREATER .
(membership_choice . 1)) (RIGHT_PAREN . (membership_choice . 1)) (DIGITS .
(membership_choice . 1)) (RANGE . (membership_choice . 1)) (THEN .
(membership_choice . 1)) (SEMICOLON . (membership_choice . 1)) (WITH .
(membership_choice . 1)) (IS . (membership_choice . 1)) (AND . (membersh [...]
- ((default . error) (DOT_DOT . 277) (DO . (membership_choice . 0)) (LOOP
. (membership_choice . 0)) (COMMA . (membership_choice . 0)) (ELSIF .
(membership_choice . 0)) (ELSE . (membership_choice . 0)) (EQUAL_GREATER .
(membership_choice . 0)) (RIGHT_PAREN . (membership_choice . 0)) (DIGITS .
(membership_choice . 0)) (RANGE . (membership_choice . 0)) (THEN .
(membership_choice . 0)) (SEMICOLON . (membership_choice . 0)) (WITH .
(membership_choice . 0)) (IS . (membership_choice . 0)) [...]
+ ((default . error) (DO . (range . 2)) (LOOP . (range . 2)) (ELSIF .
(range . 2)) (ELSE . (range . 2)) (DIGITS . (range . 2)) (RANGE . (range . 2))
(THEN . (range . 2)) (OF . (range . 2)) (COLON_EQUAL . (range . 2)) (SEMICOLON
. (range . 2)) (IS . (range . 2)) (WITH . (range . 2)) (AND . (range . 2)) (OR
. (range . 2)) (XOR . (range . 2)) (COMMA . (range . 2)) (RIGHT_PAREN . (range
. 2)) (EQUAL_GREATER . (range . 2)) (BAR . (range . 2)))
+ ((default . error) (PLUS . 155) (MINUS . 154) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (ABS . 144) (NOT . 324)
(NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
+ ((default . error) (BAR . 594) (DO . (relation . 3)) (LOOP . (relation
. 3)) (ELSIF . (relation . 3)) (ELSE . (relation . 3)) (EQUAL_GREATER .
(relation . 3)) (DIGITS . (relation . 3)) (RANGE . (relation . 3)) (THEN .
(relation . 3)) (SEMICOLON . (relation . 3)) (IS . (relation . 3)) (WITH .
(relation . 3)) (RIGHT_PAREN . (relation . 3)) (COMMA . (relation . 3)) (AND .
(relation . 3)) (OR . (relation . 3)) (XOR . (relation . 3)))
+ ((default . error) (DO . (membership_choice_list . 0)) (LOOP .
(membership_choice_list . 0)) (ELSIF . (membership_choice_list . 0)) (ELSE .
(membership_choice_list . 0)) (EQUAL_GREATER . (membership_choice_list . 0))
(DIGITS . (membership_choice_list . 0)) (RANGE . (membership_choice_list . 0))
(THEN . (membership_choice_list . 0)) (SEMICOLON . (membership_choice_list .
0)) (IS . (membership_choice_list . 0)) (WITH . (membership_choice_list . 0))
(RIGHT_PAREN . (membership_choice_l [...]
+ ((default . error) (DO . (membership_choice . 1)) (LOOP .
(membership_choice . 1)) (ELSIF . (membership_choice . 1)) (ELSE .
(membership_choice . 1)) (EQUAL_GREATER . (membership_choice . 1)) (DIGITS .
(membership_choice . 1)) (RANGE . (membership_choice . 1)) (THEN .
(membership_choice . 1)) (SEMICOLON . (membership_choice . 1)) (IS .
(membership_choice . 1)) (WITH . (membership_choice . 1)) (RIGHT_PAREN .
(membership_choice . 1)) (COMMA . (membership_choice . 1)) (AND . (membersh
[...]
+ ((default . error) (DOT_DOT . 338) (DO . (membership_choice . 0)) (LOOP
. (membership_choice . 0)) (ELSIF . (membership_choice . 0)) (ELSE .
(membership_choice . 0)) (EQUAL_GREATER . (membership_choice . 0)) (DIGITS .
(membership_choice . 0)) (RANGE . (membership_choice . 0)) (THEN .
(membership_choice . 0)) (SEMICOLON . (membership_choice . 0)) (IS .
(membership_choice . 0)) (WITH . (membership_choice . 0)) (RIGHT_PAREN .
(membership_choice . 0)) (COMMA . (membership_choice . 0)) [...]
+ ((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 . 592) (END . 593))
+ ((default . error) (IDENTIFIER . 591))
+ ((default . error) (RENAMES . (subprogram_specification . 1)) (IS . (
590 (subprogram_specification . 1))) (WITH . (subprogram_specification . 1))
(SEMICOLON . (subprogram_specification . 1)))
+ ((default . error) (RENAMES . (subprogram_specification . 0)) (IS . (
589 (subprogram_specification . 0))) (WITH . (subprogram_specification . 0))
(SEMICOLON . (subprogram_specification . 0)))
+ ((default . error) (RENAMES . 128) (SEMICOLON .
(aspect_specification_opt . 0)) (IS . ( 588 (aspect_specification_opt . 0)))
(WITH . 109))
+ ((default . error) (EXCEPTION . 586) (CONSTANT . ( 585 (aliased_opt .
0))) (ARRAY . (aliased_opt . 0)) (ACCESS . (aliased_opt . 0)) (NOT .
(aliased_opt . 0)) (IDENTIFIER . (aliased_opt . 0)) (STRING_LITERAL .
(aliased_opt . 0)) (CHARACTER_LITERAL . (aliased_opt . 0)) (ALIASED . 523))
+ ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
+ ((default . error) (END . (declarative_part_opt . 0)) (USE . 11)
(SUBTYPE . 272) (PRAGMA . 7) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(ENTRY . (overriding_indicator_opt . 2)) (FOR . 269) (IDENTIFIER . 275) (TYPE
. 274) (GENERIC . 2) (PROTECTED . 271) (TASK . 273) (PACKAGE . 270))
+ ((default . error) (IDENTIFIER . (declarations . 1)) (USE .
(declarations . 1)) (TYPE . (declarations . 1)) (TASK . (declarations . 1))
(SUBTYPE . (declarations . 1)) (PROTECTED . (declarations . 1)) (PROCEDURE .
(declarations . 1)) (PRAGMA . (declarations . 1)) (PACKAGE . (declarations .
1)) (OVERRIDING . (declarations . 1)) (NOT . (declarations . 1)) (GENERIC .
(declarations . 1)) (FUNCTION . (declarations . 1)) (FOR . (declarations . 1))
(ENTRY . (declarations . 1)) (BEGIN . (de [...]
+ ((default . error) (EXCEPTION . 580) (IDENTIFIER . (null_exclusion_opt
. 0)) (STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL .
(null_exclusion_opt . 0)) (ACCESS . (null_exclusion_opt . 0)) (NOT . 226))
+ ((default . error) (IS . (discriminant_part_opt . 0)) (SEMICOLON .
(discriminant_part_opt . 0)) (LEFT_PAREN . 205))
+ ((default . error) (IDENTIFIER . 578))
+ ((default . error) (IDENTIFIER . 577))
+ ((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (IS .
(aspect_specification_opt . 0)) (WITH . 109))
+ ((default . error) (IS . 575))
+ ((default . error) (IDENTIFIER . 574))
+ ((default . error) (IDENTIFIER . 573))
+ ((default . error) (IS . (aspect_specification_opt . 0)) (WITH . 109))
+ ((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
+ ((default . error) (USE . ((name . 0) (direct_name . 0))) (LEFT_PAREN .
(name . 0)) (DOT . (name . 0)) (TICK . (name . 0)))
+ ((default . error) (USE . ((name . 7) (direct_name . 1))) (LEFT_PAREN .
(name . 7)) (DOT . (name . 7)) (TICK . (name . 7)))
+ ((default . error) (USE . ( 570 (name . 4))) (LEFT_PAREN . (name . 4))
(DOT . (name . 4)) (TICK . (name . 4)))
+ ((default . error) (USE . 569))
+ ((default . error) (DOT . 90) (TICK . 91) (USE . 568) (LEFT_PAREN .
107))
((default . error) (BEGIN . (package_renaming_declaration . 0)) (ENTRY .
(package_renaming_declaration . 0)) (FOR . (package_renaming_declaration . 0))
(PROTECTED . (package_renaming_declaration . 0)) (SUBTYPE .
(package_renaming_declaration . 0)) (TASK . (package_renaming_declaration . 0))
(TYPE . (package_renaming_declaration . 0)) (IDENTIFIER .
(package_renaming_declaration . 0)) (END . (package_renaming_declaration . 0))
(WITH . (package_renaming_declaration . 0)) (USE . (packa [...]
- ((default . error) (SEMICOLON . (association_list . 1)) (IS .
(association_list . 1)) (COMMA . (association_list . 1)) (RIGHT_PAREN .
(association_list . 1)))
+ ((default . error) (RIGHT_PAREN . (association_list . 1)) (COMMA .
(association_list . 1)) (SEMICOLON . (association_list . 1)) (IS .
(association_list . 1)))
((default . error) (RIGHT_PAREN . (range_list . 1)) (COMMA . (range_list
. 1)))
- ((default . error) (DOT_DOT . 277))
- ((default . error) (SEMICOLON . 575))
- ((default . error) (SEMICOLON . 574))
- ((default . error) (SEMICOLON . 573))
- ((default . error) (SEMICOLON . 572))
- ((default . error) (ACCESS . (null_exclusion_opt . 0)) (NOT . 566)
(IDENTIFIER . 567) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
+ ((default . error) (DOT_DOT . 338))
+ ((default . error) (SEMICOLON . 567))
+ ((default . error) (SEMICOLON . 566))
+ ((default . error) (SEMICOLON . 565))
+ ((default . error) (SEMICOLON . 564))
+ ((default . error) (ACCESS . (null_exclusion_opt . 0)) (NOT . 558)
(IDENTIFIER . 559) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
((default . error) (IS . (discriminant_part_opt . 2)) (WITH .
(discriminant_part_opt . 2)) (SEMICOLON . (discriminant_part_opt . 2)))
((default . error) (RIGHT_PAREN . (discriminant_specification_opt . 0))
(SEMICOLON . (discriminant_specification_opt . 0)) (IDENTIFIER . 77))
((default . error) (IS . (discriminant_part_opt . 1)) (WITH .
(discriminant_part_opt . 1)) (SEMICOLON . (discriminant_part_opt . 1)))
((default . error) (PACKAGE . (formal_type_declaration . 2)) (PROCEDURE
. (formal_type_declaration . 2)) (FUNCTION . (formal_type_declaration . 2))
(PRAGMA . (formal_type_declaration . 2)) (TYPE . (formal_type_declaration . 2))
(USE . (formal_type_declaration . 2)) (WITH . (formal_type_declaration . 2))
(IDENTIFIER . (formal_type_declaration . 2)))
- ((default . error) (TAGGED . 564) (NEW .
(abstract_limited_synchronized_opt . 3)) (SYNCHRONIZED . 563) (LIMITED . 562))
- ((default . error) (LEFT_PAREN . 561))
- ((default . error) (BOX . 560))
- ((default . error) (BOX . 559))
+ ((default . error) (TAGGED . 556) (NEW .
(abstract_limited_synchronized_opt . 3)) (SYNCHRONIZED . 555) (LIMITED . 554))
+ ((default . error) (LEFT_PAREN . 553))
+ ((default . error) (BOX . 552))
+ ((default . error) (BOX . 551))
((default . error) (SEMICOLON . (interface_type_definition . 8)) (WITH .
(interface_type_definition . 8)))
- ((default . error) (BOX . 558))
- ((default . error) (INTERFACE . 557) (PRIVATE .
(abstract_tagged_limited_opt . 5)) (NEW . (abstract_limited_synchronized_opt .
4)))
- ((default . error) (BOX . 556))
- ((default . error) (INTERFACE . 555))
- ((default . error) (BOX . 554))
- ((default . error) (INTERFACE . 553) (NEW .
(abstract_limited_synchronized_opt . 5)))
- ((default . error) (PRIVATE . (abstract_tagged_limited_opt . 4))
(LIMITED . 551) (SEMICOLON . (aspect_specification_opt . 0)) (WITH . 109))
- ((default . error) (INTERFACE . 550))
- ((default . error) (NEW . 549))
- ((default . error) (PRIVATE . 548))
+ ((default . error) (BOX . 550))
+ ((default . error) (INTERFACE . 549) (PRIVATE .
(abstract_tagged_limited_opt . 5)) (NEW . (abstract_limited_synchronized_opt .
4)))
+ ((default . error) (BOX . 548))
+ ((default . error) (INTERFACE . 547))
+ ((default . error) (BOX . 546))
+ ((default . error) (INTERFACE . 545) (NEW .
(abstract_limited_synchronized_opt . 5)))
+ ((default . error) (PRIVATE . (abstract_tagged_limited_opt . 4))
(LIMITED . 543) (SEMICOLON . (aspect_specification_opt . 0)) (WITH . 109))
+ ((default . error) (INTERFACE . 542))
+ ((default . error) (NEW . 541))
+ ((default . error) (PRIVATE . 540))
((default . error) (WITH . (formal_type_definition . 9)) (SEMICOLON .
(formal_type_definition . 9)))
((default . error) (WITH . (formal_type_definition . 8)) (SEMICOLON .
(formal_type_definition . 8)))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
((default . error) (WITH . (formal_type_definition . 1)) (SEMICOLON .
(formal_type_definition . 1)))
((default . error) (WITH . (formal_type_definition . 10)) (SEMICOLON .
(formal_type_definition . 10)))
- ((default . error) (ACCESS . 242))
- ((default . error) (SEMICOLON . 546))
- ((default . error) (SEMICOLON . 545))
+ ((default . error) (ACCESS . 236))
+ ((default . error) (SEMICOLON . 538))
+ ((default . error) (SEMICOLON . 537))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (DOT . 90) (TICK . 91) (COLON_EQUAL . 541)
(LEFT_PAREN . 107) (SEMICOLON . (aspect_specification_opt . 0)) (WITH . 109))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (SEMICOLON . 539))
+ ((default . error) (DOT . 90) (TICK . 91) (COLON_EQUAL . 533)
(LEFT_PAREN . 107) (SEMICOLON . (aspect_specification_opt . 0)) (WITH . 109))
+ ((default . error) (WITH . (expression_opt . 0)) (SEMICOLON .
(expression_opt . 0)) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144)
(NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER .
48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (SEMICOLON . 531))
((default . error) (DO . (parameter_and_result_profile . 0))
(RIGHT_PAREN . (parameter_and_result_profile . 0)) (COLON_EQUAL .
(parameter_and_result_profile . 0)) (RENAMES . (parameter_and_result_profile .
0)) (WITH . (parameter_and_result_profile . 0)) (SEMICOLON .
(parameter_and_result_profile . 0)) (IS . (parameter_and_result_profile . 0)))
((default . error) (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 . 536) (PROCEDURE . 537))
+ ((default . error) (FUNCTION . 528) (PROCEDURE . 529))
((default . error) (IN . (aliased_opt . 1)) (OUT . (aliased_opt . 1))
(ARRAY . (aliased_opt . 1)) (CONSTANT . (aliased_opt . 1)) (ACCESS .
(aliased_opt . 1)) (NOT . (aliased_opt . 1)) (IDENTIFIER . (aliased_opt . 1))
(STRING_LITERAL . (aliased_opt . 1)) (CHARACTER_LITERAL . (aliased_opt . 1)))
- ((default . error) (IDENTIFIER . (mode_opt . 0)) (STRING_LITERAL .
(mode_opt . 0)) (CHARACTER_LITERAL . (mode_opt . 0)) (IN . 217) (OUT . 218)
(ACCESS . (null_exclusion_opt . 0)) (NOT . ( 232 (mode_opt . 0))))
+ ((default . error) (IDENTIFIER . (mode_opt . 0)) (STRING_LITERAL .
(mode_opt . 0)) (CHARACTER_LITERAL . (mode_opt . 0)) (IN . 211) (OUT . 212)
(ACCESS . (null_exclusion_opt . 0)) (NOT . ( 226 (mode_opt . 0))))
((default . error) (RIGHT_PAREN . (parameter_specification_list . 1))
(SEMICOLON . (parameter_specification_list . 1)))
- ((default . error) (COLON_EQUAL . 814) (RIGHT_PAREN .
(parameter_specification . 3)) (SEMICOLON . (parameter_specification . 3)))
- ((default . error) (IDENTIFIER . (null_exclusion_opt . 0))
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL .
(null_exclusion_opt . 0)) (NOT . 232))
- ((default . error) (RETURN . 89) (LEFT_PAREN . 810))
- ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON .
(parameter_profile_opt . 0)) (IS . (parameter_profile_opt . 0)) (COLON_EQUAL .
(parameter_profile_opt . 0)) (RIGHT_PAREN . (parameter_profile_opt . 0))
(RENAMES . (parameter_profile_opt . 0)) (DO . (parameter_profile_opt . 0))
(LEFT_PAREN . 810))
+ ((default . error) (COLON_EQUAL . 805) (RIGHT_PAREN .
(parameter_specification . 4)) (SEMICOLON . (parameter_specification . 4)))
+ ((default . error) (IDENTIFIER . (null_exclusion_opt . 0))
(STRING_LITERAL . (null_exclusion_opt . 0)) (CHARACTER_LITERAL .
(null_exclusion_opt . 0)) (NOT . 226))
+ ((default . error) (RETURN . 89) (LEFT_PAREN . 801))
+ ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON .
(parameter_profile_opt . 0)) (IS . (parameter_profile_opt . 0)) (COLON_EQUAL .
(parameter_profile_opt . 0)) (RIGHT_PAREN . (parameter_profile_opt . 0))
(RENAMES . (parameter_profile_opt . 0)) (DO . (parameter_profile_opt . 0))
(LEFT_PAREN . 801))
((default . error) (DOT . 90) (TICK . 91) (DO . (access_definition .
0)) (RENAMES . (access_definition . 0)) (RIGHT_PAREN . (access_definition . 0))
(COLON_EQUAL . (access_definition . 0)) (IS . (access_definition . 0))
(SEMICOLON . (access_definition . 0)) (WITH . (access_definition . 0))
(LEFT_PAREN . 107))
((default . error) (IDENTIFIER . (formal_object_declaration . 3)) (WITH
. (formal_object_declaration . 3)) (USE . (formal_object_declaration . 3))
(TYPE . (formal_object_declaration . 3)) (PRAGMA . (formal_object_declaration .
3)) (FUNCTION . (formal_object_declaration . 3)) (PROCEDURE .
(formal_object_declaration . 3)) (PACKAGE . (formal_object_declaration . 3)))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (SEMICOLON . 807))
- ((default . error) (DOT . 90) (TICK . 91) (WITH .
(formal_package_actual_part . 1)) (SEMICOLON . (formal_package_actual_part .
1)) (LEFT_PAREN . 805))
- ((default . error) (SEMICOLON . 804))
+ ((default . error) (WITH . (expression_opt . 0)) (SEMICOLON .
(expression_opt . 0)) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144)
(NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER .
48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (SEMICOLON . 798))
+ ((default . error) (DOT . 90) (TICK . 91) (WITH .
(formal_package_actual_part . 1)) (SEMICOLON . (formal_package_actual_part .
1)) (LEFT_PAREN . 796))
+ ((default . error) (SEMICOLON . 795))
((default . error) (IDENTIFIER . (formal_subprogram_declaration . 3))
(WITH . (formal_subprogram_declaration . 3)) (USE .
(formal_subprogram_declaration . 3)) (TYPE . (formal_subprogram_declaration .
3)) (PRAGMA . (formal_subprogram_declaration . 3)) (FUNCTION .
(formal_subprogram_declaration . 3)) (PROCEDURE .
(formal_subprogram_declaration . 3)) (PACKAGE . (formal_subprogram_declaration
. 3)))
((default . error) (IDENTIFIER . (formal_subprogram_declaration . 0))
(WITH . (formal_subprogram_declaration . 0)) (USE .
(formal_subprogram_declaration . 0)) (TYPE . (formal_subprogram_declaration .
0)) (PRAGMA . (formal_subprogram_declaration . 0)) (FUNCTION .
(formal_subprogram_declaration . 0)) (PROCEDURE .
(formal_subprogram_declaration . 0)) (PACKAGE . (formal_subprogram_declaration
. 0)))
- ((default . error) (SEMICOLON . 803))
+ ((default . error) (SEMICOLON . 794))
((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 . 801) (WITH . (interface_type_definition . 5))
(SEMICOLON . (interface_type_definition . 5)))
+ ((default . error) (AND . 792) (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 . 800))
- ((default . error) (AND . 799) (WITH . (interface_type_definition . 7))
(SEMICOLON . (interface_type_definition . 7)))
+ ((default . error) (SEMICOLON . 791))
+ ((default . error) (AND . 790) (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 . 798) (WITH . (interface_type_definition . 6))
(SEMICOLON . (interface_type_definition . 6)))
+ ((default . error) (AND . 789) (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 . 797) (WITH . (interface_type_definition . 4))
(SEMICOLON . (interface_type_definition . 4)))
- ((default . error) (RIGHT_PAREN . 796))
+ ((default . error) (AND . 788) (WITH . (interface_type_definition . 4))
(SEMICOLON . (interface_type_definition . 4)))
+ ((default . error) (RIGHT_PAREN . 787))
((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 . 795))
- ((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT . 736)
(NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
+ ((default . error) (SEMICOLON . (formal_type_definition . 6)) (WITH .
(formal_type_definition . 6)) (DIGITS . 786))
+ ((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 728)
(NUMERIC_LITERAL . 156) (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 . 789) (RECORD .
(abstract_tagged_limited_opt . 2)) (NULL . (abstract_tagged_limited_opt . 2))
(PRIVATE . (abstract_tagged_limited_opt . 2)))
+ ((default . error) (LIMITED . 780) (RECORD .
(abstract_tagged_limited_opt . 2)) (NULL . (abstract_tagged_limited_opt . 2))
(PRIVATE . (abstract_tagged_limited_opt . 2)))
((default . error) (RIGHT_PAREN . (discriminant_specification_list . 1))
(SEMICOLON . (discriminant_specification_list . 1)))
- ((default . error) (NULL . 788))
+ ((default . error) (NULL . 779))
((default . error) (SEMICOLON . (null_exclusion_opt_name_type . 0))
(RIGHT_PAREN . (null_exclusion_opt_name_type . 0)) (COLON_EQUAL .
(null_exclusion_opt_name_type . 0)) (DOT . (name . 0)) (LEFT_PAREN . (name .
0)) (TICK . (name . 0)))
- ((default . error) (SEMICOLON . (discriminant_specification_opt . 4))
(RIGHT_PAREN . (discriminant_specification_opt . 4)) (COLON_EQUAL . 787))
+ ((default . error) (SEMICOLON . (discriminant_specification_opt . 4))
(RIGHT_PAREN . (discriminant_specification_opt . 4)) (COLON_EQUAL . 778))
((default . error) (DOT . 90) (TICK . 91) (LEFT_PAREN . 107))
- ((default . error) (SEMICOLON . (discriminant_specification_opt . 2))
(RIGHT_PAREN . (discriminant_specification_opt . 2)) (COLON_EQUAL . 786))
+ ((default . error) (SEMICOLON . (discriminant_specification_opt . 2))
(RIGHT_PAREN . (discriminant_specification_opt . 2)) (COLON_EQUAL . 777))
((default . error) (SEMICOLON . (null_exclusion_opt_name_type . 1))
(RIGHT_PAREN . (null_exclusion_opt_name_type . 1)) (COLON_EQUAL .
(null_exclusion_opt_name_type . 1)) (DOT . (name . 3)) (LEFT_PAREN . (name .
3)) (TICK . (name . 3)))
((default . error) ($EOI . (generic_renaming_declaration . 1)) (LIMITED
. (generic_renaming_declaration . 1)) (SEPARATE . (generic_renaming_declaration
. 1)) (WITH . (generic_renaming_declaration . 1)) (END .
(generic_renaming_declaration . 1)) (PRIVATE . (generic_renaming_declaration .
1)) (IDENTIFIER . (generic_renaming_declaration . 1)) (USE .
(generic_renaming_declaration . 1)) (TYPE . (generic_renaming_declaration . 1))
(TASK . (generic_renaming_declaration . 1)) (SUBTYPE . (g [...]
((default . error) ($EOI . (generic_renaming_declaration . 0)) (LIMITED
. (generic_renaming_declaration . 0)) (SEPARATE . (generic_renaming_declaration
. 0)) (WITH . (generic_renaming_declaration . 0)) (END .
(generic_renaming_declaration . 0)) (PRIVATE . (generic_renaming_declaration .
0)) (IDENTIFIER . (generic_renaming_declaration . 0)) (USE .
(generic_renaming_declaration . 0)) (TYPE . (generic_renaming_declaration . 0))
(TASK . (generic_renaming_declaration . 0)) (SUBTYPE . (g [...]
((default . error) ($EOI . (generic_renaming_declaration . 2)) (LIMITED
. (generic_renaming_declaration . 2)) (SEPARATE . (generic_renaming_declaration
. 2)) (WITH . (generic_renaming_declaration . 2)) (END .
(generic_renaming_declaration . 2)) (PRIVATE . (generic_renaming_declaration .
2)) (IDENTIFIER . (generic_renaming_declaration . 2)) (USE .
(generic_renaming_declaration . 2)) (TYPE . (generic_renaming_declaration . 2))
(TASK . (generic_renaming_declaration . 2)) (SUBTYPE . (g [...]
((default . error) (END . (generic_instantiation . 0)) (BEGIN .
(generic_instantiation . 0)) (ENTRY . (generic_instantiation . 0)) (FOR .
(generic_instantiation . 0)) (PROTECTED . (generic_instantiation . 0)) (SUBTYPE
. (generic_instantiation . 0)) (TASK . (generic_instantiation . 0)) (TYPE .
(generic_instantiation . 0)) (IDENTIFIER . (generic_instantiation . 0)) ($EOI .
(generic_instantiation . 0)) (FUNCTION . (generic_instantiation . 0)) (GENERIC
. (generic_instantiation . 0)) (L [...]
- ((default . error) (PLUS . 154) (MINUS . 153) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (ABS . 144) (NOT . 150)
(NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
- ((default . error) (BAR . 576) (LOOP . (relation . 2)) (DO . (relation
. 2)) (XOR . (relation . 2)) (OR . (relation . 2)) (AND . (relation . 2)) (IS .
(relation . 2)) (WITH . (relation . 2)) (SEMICOLON . (relation . 2)) (THEN .
(relation . 2)) (RANGE . (relation . 2)) (DIGITS . (relation . 2)) (RIGHT_PAREN
. (relation . 2)) (EQUAL_GREATER . (relation . 2)) (ELSE . (relation . 2))
(ELSIF . (relation . 2)) (COMMA . (relation . 2)))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (LEFT_PAREN . 148) (RECORD . 774))
+ ((default . error) (AT . 773))
+ ((default . error) (SEMICOLON . (expression_opt . 0)) (RAISE . 153)
(PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (DOT . 90) (TICK . 91) (IS . ( 771
(aspect_specification_opt . 0))) (WITH . 109) (LEFT_PAREN . 107))
+ ((default . error) (IS . 770))
+ ((default . error) (WITH . (discriminant_part_opt . 0)) (IS .
(discriminant_part_opt . 0)) (LEFT_PAREN . 205))
+ ((default . error) (IS . ( 768 (aspect_specification_opt . 0))) (WITH .
109))
+ ((default . error) (NOT . 723) (IDENTIFIER . 48) (CHARACTER_LITERAL .
50) (STRING_LITERAL . 49))
+ ((default . error) (SEMICOLON . 766) (IS . 765))
+ ((default . error) (WITH . (discriminant_part_opt . 0)) (IS .
(discriminant_part_opt . 0)) (SEMICOLON . (discriminant_part_opt . 0))
(LEFT_PAREN . 205))
+ ((default . error) (IS . ( 763 (aspect_specification_opt . 0))) (WITH .
109))
+ ((default . error) (SEMICOLON . 762) (IS . 761))
+ ((default . error) (RENAMES . 760))
+ ((default . error) (RENAMES . 759))
+ ((default . error) (ACCESS . 236) (IDENTIFIER . 48) (CHARACTER_LITERAL
. 50) (STRING_LITERAL . 49))
+ ((default . error) (END . 757))
+ ((default . error) (SEMICOLON . (package_specification . 1)))
+ ((default . error) (COLON_EQUAL . 756))
+ ((default . error) (SEMICOLON . 755))
+ ((default . error) (NOT . (constant_opt . 0)) (IDENTIFIER .
(constant_opt . 0)) (STRING_LITERAL . (constant_opt . 0)) (CHARACTER_LITERAL .
(constant_opt . 0)) (ACCESS . (constant_opt . 0)) (ARRAY . (constant_opt . 0))
(CONSTANT . 753))
+ ((default . error) (SEPARATE . 752) (ABSTRACT . 751))
+ ((default . error) (NULL . 750))
+ ((default . error) (LEFT_PAREN . 748))
+ ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON .
(parameter_profile_opt . 0)) (LEFT_PAREN . 746))
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt [...]
+ ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
+ ((default . error) (PLUS . 155) (MINUS . 154) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (ABS . 144) (NOT . 324)
(NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
+ ((default . error) (BAR . 594) (LOOP . (relation . 2)) (DO . (relation
. 2)) (THEN . (relation . 2)) (RANGE . (relation . 2)) (DIGITS . (relation .
2)) (EQUAL_GREATER . (relation . 2)) (ELSE . (relation . 2)) (ELSIF . (relation
. 2)) (XOR . (relation . 2)) (OR . (relation . 2)) (AND . (relation . 2))
(COMMA . (relation . 2)) (RIGHT_PAREN . (relation . 2)) (WITH . (relation . 2))
(IS . (relation . 2)) (SEMICOLON . (relation . 2)))
+ ((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)) (SEMICOLON . (relation_and_then_list . 0)) (WITH
. (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)) (SEMICOLON . (relation_or_else_list . 0)) (WITH .
(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)) (SEMICOLON . (relation_or_else_list . 1)) (WITH .
(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)) (SEMICOLON . (relation_and_then_list . 1)) (WITH
. (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) (RIGHT_PAREN . (expression_opt . 0)) (RAISE . 153)
(PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
((default . error) (AND . (choice_relation_and_then_list . 0))
(EQUAL_GREATER . (choice_relation_and_then_list . 0)) (BAR .
(choice_relation_and_then_list . 0)))
((default . error) (OR . (choice_relation_or_else_list . 0))
(EQUAL_GREATER . (choice_relation_or_else_list . 0)) (BAR .
(choice_relation_or_else_list . 0)))
((default . error) (OR . (choice_relation_or_else_list . 1))
(EQUAL_GREATER . (choice_relation_or_else_list . 1)) (BAR .
(choice_relation_or_else_list . 1)))
((default . error) (AND . (choice_relation_and_then_list . 1))
(EQUAL_GREATER . (choice_relation_and_then_list . 1)) (BAR .
(choice_relation_and_then_list . 1)))
- ((default . error) (LEFT_PAREN . 148) (RECORD . 780))
- ((default . error) (AT . 779))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (DOT . 90) (TICK . 91) (IS . ( 777
(aspect_specification_opt . 0))) (WITH . 109) (LEFT_PAREN . 107))
- ((default . error) (IS . 776))
- ((default . error) (WITH . (discriminant_part_opt . 0)) (IS .
(discriminant_part_opt . 0)) (LEFT_PAREN . 211))
- ((default . error) (IS . ( 774 (aspect_specification_opt . 0))) (WITH .
109))
- ((default . error) (NOT . 731) (IDENTIFIER . 48) (CHARACTER_LITERAL .
50) (STRING_LITERAL . 49))
- ((default . error) (SEMICOLON . 772) (IS . 771))
- ((default . error) (WITH . (discriminant_part_opt . 0)) (IS .
(discriminant_part_opt . 0)) (SEMICOLON . (discriminant_part_opt . 0))
(LEFT_PAREN . 211))
- ((default . error) (IS . ( 769 (aspect_specification_opt . 0))) (WITH .
109))
- ((default . error) (SEMICOLON . 768) (IS . 767))
- ((default . error) (RENAMES . 766))
- ((default . error) (RENAMES . 765))
- ((default . error) (ACCESS . 242) (IDENTIFIER . 48) (CHARACTER_LITERAL
. 50) (STRING_LITERAL . 49))
- ((default . error) (END . 763))
- ((default . error) (SEMICOLON . (package_specification . 1)))
- ((default . error) (COLON_EQUAL . 762))
- ((default . error) (SEMICOLON . 761))
- ((default . error) (NOT . (constant_opt . 0)) (IDENTIFIER .
(constant_opt . 0)) (STRING_LITERAL . (constant_opt . 0)) (CHARACTER_LITERAL .
(constant_opt . 0)) (ACCESS . (constant_opt . 0)) (ARRAY . (constant_opt . 0))
(CONSTANT . 759))
- ((default . error) (SEPARATE . 758) (ABSTRACT . 757))
- ((default . error) (NULL . 756))
- ((default . error) (LEFT_PAREN . 754))
- ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON .
(parameter_profile_opt . 0)) (LEFT_PAREN . 752))
- ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt [...]
- ((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
- ((default . error) (OR . (relation_and_then_list . 0)) (XOR .
(relation_and_then_list . 0)) (LOOP . (relation_and_then_list . 0)) (DO .
(relation_and_then_list . 0)) (AND . (relation_and_then_list . 0)) (IS .
(relation_and_then_list . 0)) (WITH . (relation_and_then_list . 0)) (SEMICOLON
. (relation_and_then_list . 0)) (THEN . (relation_and_then_list . 0)) (RANGE .
(relation_and_then_list . 0)) (COMMA . (relation_and_then_list . 0))
(RIGHT_PAREN . (relation_and_then_list . 0)) (DIGI [...]
- ((default . error) (AND . (relation_or_else_list . 0)) (XOR .
(relation_or_else_list . 0)) (LOOP . (relation_or_else_list . 0)) (DO .
(relation_or_else_list . 0)) (OR . (relation_or_else_list . 0)) (IS .
(relation_or_else_list . 0)) (WITH . (relation_or_else_list . 0)) (SEMICOLON .
(relation_or_else_list . 0)) (THEN . (relation_or_else_list . 0)) (RANGE .
(relation_or_else_list . 0)) (COMMA . (relation_or_else_list . 0)) (RIGHT_PAREN
. (relation_or_else_list . 0)) (DIGITS . (relati [...]
- ((default . error) (AND . (relation_or_else_list . 1)) (XOR .
(relation_or_else_list . 1)) (LOOP . (relation_or_else_list . 1)) (DO .
(relation_or_else_list . 1)) (OR . (relation_or_else_list . 1)) (IS .
(relation_or_else_list . 1)) (WITH . (relation_or_else_list . 1)) (SEMICOLON .
(relation_or_else_list . 1)) (THEN . (relation_or_else_list . 1)) (RANGE .
(relation_or_else_list . 1)) (COMMA . (relation_or_else_list . 1)) (RIGHT_PAREN
. (relation_or_else_list . 1)) (DIGITS . (relati [...]
- ((default . error) (OR . (relation_and_then_list . 1)) (XOR .
(relation_and_then_list . 1)) (LOOP . (relation_and_then_list . 1)) (DO .
(relation_and_then_list . 1)) (AND . (relation_and_then_list . 1)) (IS .
(relation_and_then_list . 1)) (WITH . (relation_and_then_list . 1)) (SEMICOLON
. (relation_and_then_list . 1)) (THEN . (relation_and_then_list . 1)) (RANGE .
(relation_and_then_list . 1)) (COMMA . (relation_and_then_list . 1))
(RIGHT_PAREN . (relation_and_then_list . 1)) (DIGI [...]
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (LOOP . (raise_expression . 1)) (DO .
(raise_expression . 1)) (XOR . (raise_expression . 1)) (OR . (raise_expression
. 1)) (AND . (raise_expression . 1)) (IS . (raise_expression . 1)) (SEMICOLON .
(raise_expression . 1)) (WITH . (raise_expression . 1)) (THEN .
(raise_expression . 1)) (RANGE . (raise_expression . 1)) (RIGHT_PAREN .
(raise_expression . 1)) (COMMA . (raise_expression . 1)) (DIGITS .
(raise_expression . 1)) (EQUAL_GREATER . (raise_expression . 1)) (E [...]
+ ((default . error) (LOOP . (raise_expression . 1)) (DO .
(raise_expression . 1)) (XOR . (raise_expression . 1)) (OR . (raise_expression
. 1)) (AND . (raise_expression . 1)) (IS . (raise_expression . 1)) (WITH .
(raise_expression . 1)) (SEMICOLON . (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) (LOOP . (aggregate . 4)) (DO . (aggregate . 4)) (OF .
(aggregate . 4)) (ACCEPT . (aggregate . 4)) (ABORT . (aggregate . 4)) (BEGIN .
(aggregate . 4)) (CASE . (aggregate . 4)) (DECLARE . (aggregate . 4)) (DELAY .
(aggregate . 4)) (EXIT . (aggregate . 4)) (FOR . (aggregate . 4)) (GOTO .
(aggregate . 4)) (IF . (aggregate . 4)) (NULL . (aggregate . 4)) (PRAGMA .
(aggregate . 4)) (RAISE . (aggregate . 4)) (REQUEUE . (aggregate . 4)) (SELECT
. (aggregate . 4)) (WHILE . [...]
- ((default . error) (PLUS . (primary . 1)) (MINUS . (primary . 1))
(AMPERSAND . (primary . 1)) (DOT_DOT . (primary . 1)) (IN . (primary . 1)) (NOT
. (primary . 1)) (EQUAL . (primary . 1)) (GREATER . (primary . 1))
(GREATER_EQUAL . (primary . 1)) (LESS . (primary . 1)) (LESS_EQUAL . (primary .
1)) (SLASH_EQUAL . (primary . 1)) (RIGHT_PAREN . (primary . 1)) (COMMA .
(primary . 1)) (MOD . (primary . 1)) (REM . (primary . 1)) (SLASH . (primary .
1)) (STAR . (primary . 1)) (STAR_STAR . ( [...]
- ((default . error) (COMMA . 273) (RIGHT_PAREN . 747))
- ((default . error) (ELSE . 743) (RIGHT_PAREN . (if_expression . 3))
(COMMA . (if_expression . 3)) (ELSIF . 744))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (REVERSE . 737) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (PLUS . 154) (MINUS . 153)
(ABS . 144) (NOT . 736) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(LEFT_PAREN . 148))
- ((default . error) (REVERSE . 734) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
- ((default . error) (NOT . 731) (IDENTIFIER . 48) (CHARACTER_LITERAL .
50) (STRING_LITERAL . 49))
- ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (OTHERS . 182) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (PLUS . 154) (MINUS . 153)
(ABS . 144) (NOT . 181) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(LEFT_PAREN . 148))
+ ((default . error) (PLUS . (primary . 1)) (MINUS . (primary . 1))
(AMPERSAND . (primary . 1)) (DOT_DOT . (primary . 1)) (IN . (primary . 1)) (NOT
. (primary . 1)) (EQUAL . (primary . 1)) (GREATER . (primary . 1))
(GREATER_EQUAL . (primary . 1)) (LESS . (primary . 1)) (LESS_EQUAL . (primary .
1)) (SLASH_EQUAL . (primary . 1)) (RIGHT_PAREN . (primary . 1)) (COMMA .
(primary . 1)) (MOD . (primary . 1)) (REM . (primary . 1)) (SLASH . (primary .
1)) (STAR . (primary . 1)) (STAR_STAR . ( [...]
+ ((default . error) (COMMA . 267) (RIGHT_PAREN . 739))
+ ((default . error) (ELSE . 735) (RIGHT_PAREN . (if_expression . 3))
(ELSIF . 736))
+ ((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)) (WITH .
(relation . 1)) (SEMICOLON . (relation . 1)) (IS . (relation . 1)) (AND .
(relation . 1)) (OR . (relation . 1)) (XOR . (relation . 1)))
+ ((default . error) (RIGHT_PAREN . (expression_opt . 0)) (RAISE . 153)
(PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (REVERSE . 729) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (PLUS . 155) (MINUS . 154)
(ABS . 144) (NOT . 728) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149)
(LEFT_PAREN . 148))
+ ((default . error) (REVERSE . 726) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
+ ((default . error) (NOT . 723) (IDENTIFIER . 48) (CHARACTER_LITERAL .
50) (STRING_LITERAL . 49))
+ ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (OTHERS . 152) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (PLUS . 155) (MINUS . 154)
(ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149)
(LEFT_PAREN . 148))
((default . error) (RIGHT_PAREN . (case_expression_alternative_list .
0)) (COMMA . (case_expression_alternative_list . 0)))
- ((default . error) (RIGHT_PAREN . (case_expression . 0)) (COMMA . ( 729
(case_expression . 0))))
+ ((default . error) (COMMA . 721) (RIGHT_PAREN . (case_expression . 0)))
((default . error) (IS . (aspect_specification_opt . 0)) (WITH . 109))
((default . error) (IS . (aspect_specification_opt . 0)) (WITH . 109))
((default . error) (IS . 134))
- ((default . error) (IDENTIFIER . 726))
+ ((default . error) (IDENTIFIER . 718))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt [...]
- ((default . error) (IS . (expression_opt . 0)) (RAISE . 152) (PLUS .
154) (MINUS . 153) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL .
151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL
. 49) (LEFT_PAREN . 148))
- ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE . 11)
(SUBTYPE . 302) (PRAGMA . 7) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(ENTRY . (overriding_indicator_opt . 2)) (FOR . 299) (IDENTIFIER . 305) (TYPE
. 304) (GENERIC . 2) (PROTECTED . 301) (TASK . 303) (PACKAGE . 300))
- ((default . error) (UNTIL . 720) (RAISE . 152) (PLUS . 154) (MINUS .
153) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW .
149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49)
(LEFT_PAREN . 148))
- ((default . error) (WHEN . (identifier_opt . 0)) (SEMICOLON .
(identifier_opt . 0)) (IDENTIFIER . 718))
- ((default . error) (LOOP . (iterator_specification_opt . 0)) (IDENTIFIER
. 408))
- ((default . error) (IDENTIFIER . 715))
- ((default . error) (THEN . (expression_opt . 0)) (RAISE . 152) (PLUS .
154) (MINUS . 153) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL .
151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL
. 49) (LEFT_PAREN . 148))
- ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT .
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE .
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP .
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE .
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT .
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA .
(label_opt . 0)) (RAISE . (labe [...]
- ((default . error) (SEMICOLON . 712))
- ((default . error) (SEMICOLON . 710) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt [...]
+ ((default . error) (IS . (expression_opt . 0)) (RAISE . 153) (PLUS .
155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156) (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 . 272) (PRAGMA . 7) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(ENTRY . (overriding_indicator_opt . 2)) (FOR . 269) (IDENTIFIER . 275) (TYPE
. 274) (GENERIC . 2) (PROTECTED . 271) (TASK . 273) (PACKAGE . 270))
+ ((default . error) (UNTIL . 712) (SEMICOLON . (expression_opt . 0))
(RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 324)
(NUMERIC_LITERAL . 156) (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 . 710))
+ ((default . error) (LOOP . (iterator_specification_opt . 0)) (IDENTIFIER
. 402))
+ ((default . error) (IDENTIFIER . 707))
+ ((default . error) (THEN . (expression_opt . 0)) (RAISE . 153) (PLUS .
155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL .
151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL
. 49) (LEFT_PAREN . 148))
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT .
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE .
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP .
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE .
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT .
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA .
(label_opt . 0)) (RAISE . (labe [...]
+ ((default . error) (SEMICOLON . 704))
+ ((default . error) (SEMICOLON . 702) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (SEMICOLON . 704) (DO .
(extended_return_object_declaration_opt . 0)) (RAISE . 152) (PLUS . 154)
(MINUS . 153) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151)
(NEW . 149) (IDENTIFIER . 705) (CHARACTER_LITERAL . 50) (STRING_LITERAL .
49) (LEFT_PAREN . 148))
- ((default . error) (ELSE . (select_alternative_list_opt . 0)) (END .
(select_alternative_list_opt . 0)) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (DELAY . 635) (WHEN . 693) (TERMINATE . 692) (ACCEPT
. 630))
- ((default . error) (LOOP . (expression_opt . 0)) (RAISE . 152) (PLUS .
154) (MINUS . 153) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL .
151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL
. 49) (LEFT_PAREN . 148))
- ((default . error) (IDENTIFIER . 690))
- ((default . error) (COLON . 689))
+ ((default . error) (DO . (extended_return_object_declaration_opt . 0))
(SEMICOLON . ( 696 (expression_opt . 0))) (RAISE . 153) (PLUS . 155) (MINUS .
154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW .
149) (IDENTIFIER . 697) (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 . 627) (WHEN . 685) (TERMINATE . 684) (ACCEPT
. 622))
+ ((default . error) (LOOP . (expression_opt . 0)) (RAISE . 153) (PLUS .
155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL .
151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL
. 49) (LEFT_PAREN . 148))
+ ((default . error) (IDENTIFIER . 682))
+ ((default . error) (COLON . 681))
((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)) (ACCEPT . (compound_statement . 5)) (ABORT .
(compound_statement . 5)) (BEGIN . (compound_statement . 5)) (CASE .
(compound_statement . 5)) (DECLARE . (compound_statement . 5)) (DELAY .
(compound_statement . 5)) (EXIT . (compound_statement . 5)) (FOR . (co [...]
((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)) (ACCEPT . (simple_statement . 1)) (ABORT .
(simple_statement . 1)) (BEGIN . (simple_statement . 1)) (CASE .
(simple_statement . 1)) (DECLARE . (simple_statement . 1)) (DELAY .
(simple_statement . 1)) (EXIT . (simple_statement . 1)) (FOR .
(simple_statement . 1)) (GOTO [...]
((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)) (ACCEPT . (select_statement . 3)) (ABORT .
(select_statement . 3)) (BEGIN . (select_statement . 3)) (CASE .
(select_statement . 3)) (DECLARE . (select_statement . 3)) (DELAY .
(select_statement . 3)) (EXIT . (select_statement . 3)) (FOR .
(select_statement . 3)) (GOTO [...]
@@ -2476,220 +2468,218 @@
((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)) (ACCEPT . (simple_statement . 2)) (ABORT .
(simple_statement . 2)) (BEGIN . (simple_statement . 2)) (CASE .
(simple_statement . 2)) (DECLARE . (simple_statement . 2)) (DELAY .
(simple_statement . 2)) (EXIT . (simple_statement . 2)) (FOR .
(simple_statement . 2)) (GOTO [...]
((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)) (ACCEPT . (compound_statement . 4)) (ABORT .
(compound_statement . 4)) (BEGIN . (compound_statement . 4)) (CASE .
(compound_statement . 4)) (DECLARE . (compound_statement . 4)) (DELAY .
(compound_statement . 4)) (EXIT . (compound_statement . 4)) (FOR . (co [...]
((default . error) (ACCEPT . (label_opt . 1)) (BEGIN . (label_opt . 1))
(CASE . (label_opt . 1)) (DECLARE . (label_opt . 1)) (FOR . (label_opt . 1))
(IF . (label_opt . 1)) (LOOP . (label_opt . 1)) (RETURN . (label_opt . 1))
(SELECT . (label_opt . 1)) (WHILE . (label_opt . 1)) (ABORT . (label_opt . 1))
(DELAY . (label_opt . 1)) (EXIT . (label_opt . 1)) (GOTO . (label_opt . 1))
(NULL . (label_opt . 1)) (PRAGMA . (label_opt . 1)) (RAISE . (label_opt . 1))
(REQUEUE . (label_opt . 1)) ( [...]
- ((default . error) (END . 688))
+ ((default . error) (END . 680))
((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)) (ACCEPT . (compound_statement . 0)) (ABORT .
(compound_statement . 0)) (BEGIN . (compound_statement . 0)) (CASE .
(compound_statement . 0)) (DECLARE . (compound_statement . 0)) (DELAY .
(compound_statement . 0)) (EXIT . (compound_statement . 0)) (FOR . (co [...]
- ((default . error) (LOOP . 687))
- ((default . error) (NULL . 641) (GOTO . 638) (ABORT . 631) (ACCEPT .
630) (DECLARE . 634) (BEGIN . 632) (LOOP . 640) (CASE . 633) (IF . 639)
(PRAGMA . 7) (RAISE . 642) (DELAY . 635) (REQUEUE . 643) (RETURN . 644)
(EXIT . 636) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL .
49) (WHILE . 646) (FOR . 637) (SELECT . 645))
+ ((default . error) (LOOP . 679))
+ ((default . error) (NULL . 633) (GOTO . 630) (ABORT . 623) (ACCEPT .
622) (DECLARE . 626) (BEGIN . 624) (LOOP . 632) (CASE . 625) (IF . 631)
(PRAGMA . 7) (RAISE . 634) (DELAY . 627) (REQUEUE . 635) (RETURN . 636)
(EXIT . 628) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL .
49) (WHILE . 638) (FOR . 629) (SELECT . 637))
((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)) (ACCEPT . (compound_statement . 2)) (ABORT .
(compound_statement . 2)) (BEGIN . (compound_statement . 2)) (CASE .
(compound_statement . 2)) (DECLARE . (compound_statement . 2)) (DELAY .
(compound_statement . 2)) (EXIT . (compound_statement . 2)) (FOR . (co [...]
- ((default . error) (DOT . 90) (SEMICOLON . 684) (TICK . 91)
(COLON_EQUAL . 683) (LEFT_PAREN . 107))
+ ((default . error) (DOT . 90) (SEMICOLON . 676) (TICK . 91)
(COLON_EQUAL . 675) (LEFT_PAREN . 107))
((default . error) (OR . (simple_statement . 10)) (THEN .
(simple_statement . 10)) (WHEN . (simple_statement . 10)) (EXCEPTION .
(simple_statement . 10)) (END . (simple_statement . 10)) (LESS_LESS .
(simple_statement . 10)) (ACCEPT . (simple_statement . 10)) (ABORT .
(simple_statement . 10)) (BEGIN . (simple_statement . 10)) (CASE .
(simple_statement . 10)) (DECLARE . (simple_statement . 10)) (DELAY .
(simple_statement . 10)) (EXIT . (simple_statement . 10)) (FOR .
(simple_statemen [...]
((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)) (ACCEPT . (simple_statement . 4)) (ABORT .
(simple_statement . 4)) (BEGIN . (simple_statement . 4)) (CASE .
(simple_statement . 4)) (DECLARE . (simple_statement . 4)) (DELAY .
(simple_statement . 4)) (EXIT . (simple_statement . 4)) (FOR .
(simple_statement . 4)) (GOTO [...]
((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)) (ACCEPT . (simple_statement . 9)) (ABORT .
(simple_statement . 9)) (BEGIN . (simple_statement . 9)) (CASE .
(simple_statement . 9)) (DECLARE . (simple_statement . 9)) (DELAY .
(simple_statement . 9)) (EXIT . (simple_statement . 9)) (FOR .
(simple_statement . 9)) (GOTO [...]
((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)) (ACCEPT . (simple_statement . 6)) (ABORT .
(simple_statement . 6)) (BEGIN . (simple_statement . 6)) (CASE .
(simple_statement . 6)) (DECLARE . (simple_statement . 6)) (DELAY .
(simple_statement . 6)) (EXIT . (simple_statement . 6)) (FOR .
(simple_statement . 6)) (GOTO [...]
((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)) (ACCEPT . (select_statement . 0)) (ABORT .
(select_statement . 0)) (BEGIN . (select_statement . 0)) (CASE .
(select_statement . 0)) (DECLARE . (select_statement . 0)) (DELAY .
(select_statement . 0)) (EXIT . (select_statement . 0)) (FOR .
(select_statement . 0)) (GOTO [...]
((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)) (ACCEPT . (compound_statement . 6)) (ABORT .
(compound_statement . 6)) (BEGIN . (compound_statement . 6)) (CASE .
(compound_statement . 6)) (DECLARE . (compound_statement . 6)) (DELAY .
(compound_statement . 6)) (EXIT . (compound_statement . 6)) (FOR . (co [...]
- ((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)) (LESS_LESS . 647) (ACCEPT . (label_opt . 0))
(BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0))
(FOR . (label_opt . 0)) (IF . (label_opt . 0) [...]
- ((default . error) (END . (handled_sequence_of_statements . 1))
(EXCEPTION . 680))
+ ((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)) (LESS_LESS . 639) (ACCEPT . (label_opt . 0))
(BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0))
(FOR . (label_opt . 0)) (IF . (label_opt . 0) [...]
+ ((default . error) (END . (handled_sequence_of_statements . 1))
(EXCEPTION . 672))
((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)) (ACCEPT . (simple_statement . 5)) (ABORT .
(simple_statement . 5)) (BEGIN . (simple_statement . 5)) (CASE .
(simple_statement . 5)) (DECLARE . (simple_statement . 5)) (DELAY .
(simple_statement . 5)) (EXIT . (simple_statement . 5)) (FOR .
(simple_statement . 5)) (GOTO [...]
((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)) (ACCEPT . (sequence_of_statements . 0)) (ABORT
. (sequence_of_statements . 0)) (BEGIN . (sequence_of_statements . 0)) (CASE .
(sequence_of_statements . 0)) [...]
((default . error) (OR . (select_statement . 1)) (THEN .
(select_statement . 1)) (WHEN . (select_statement . 1)) (EXCEPTION .
(select_statement . 1)) (END . (select_statement . 1)) (LESS_LESS .
(select_statement . 1)) (ACCEPT . (select_statement . 1)) (ABORT .
(select_statement . 1)) (BEGIN . (select_statement . 1)) (CASE .
(select_statement . 1)) (DECLARE . (select_statement . 1)) (DELAY .
(select_statement . 1)) (EXIT . (select_statement . 1)) (FOR .
(select_statement . 1)) (GOTO [...]
- ((default . error) (SEMICOLON . 679))
- ((default . error) (SEMICOLON . 678))
+ ((default . error) (SEMICOLON . 671))
+ ((default . error) (SEMICOLON . 670))
((default . error) (IDENTIFIER . (generic_instantiation . 2)) (TYPE .
(generic_instantiation . 2)) (TASK . (generic_instantiation . 2)) (SUBTYPE .
(generic_instantiation . 2)) (PROTECTED . (generic_instantiation . 2)) (FOR .
(generic_instantiation . 2)) (ENTRY . (generic_instantiation . 2)) (BEGIN .
(generic_instantiation . 2)) (END . (generic_instantiation . 2)) (WITH .
(generic_instantiation . 2)) (USE . (generic_instantiation . 2)) (SEPARATE .
(generic_instantiation . 2)) (PROCE [...]
((default . error) (IDENTIFIER . (generic_instantiation . 1)) (TYPE .
(generic_instantiation . 1)) (TASK . (generic_instantiation . 1)) (SUBTYPE .
(generic_instantiation . 1)) (PROTECTED . (generic_instantiation . 1)) (FOR .
(generic_instantiation . 1)) (ENTRY . (generic_instantiation . 1)) (BEGIN .
(generic_instantiation . 1)) (END . (generic_instantiation . 1)) (WITH .
(generic_instantiation . 1)) (USE . (generic_instantiation . 1)) (SEPARATE .
(generic_instantiation . 1)) (PROCE [...]
- ((default . error) (END . (exception_handler_list_opt . 0)) (WHEN .
952))
+ ((default . error) (END . (exception_handler_list_opt . 0)) (WHEN .
943))
((default . error) (OR . (sequence_of_statements . 2)) (THEN .
(sequence_of_statements . 2)) (WHEN . (sequence_of_statements . 2))
(CHARACTER_LITERAL . ((sequence_of_statements . 2) (label_opt . 1)))
(STRING_LITERAL . ((sequence_of_statements . 2) (label_opt . 1))) (IDENTIFIER .
((sequence_of_statements . 2) (label_opt . 1))) (WHILE .
((sequence_of_statements . 2) (label_opt . 1))) (SELECT .
((sequence_of_statements . 2) (label_opt . 1))) (RETURN .
((sequence_of_statements . 2) (la [...]
((default . error) (OR . (sequence_of_statements . 1)) (THEN .
(sequence_of_statements . 1)) (WHEN . (sequence_of_statements . 1))
(CHARACTER_LITERAL . (sequence_of_statements . 1)) (STRING_LITERAL .
(sequence_of_statements . 1)) (IDENTIFIER . (sequence_of_statements . 1))
(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 . (se [...]
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (SEMICOLON . (expression_opt . 0)) (RAISE . 153)
(PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
((default . error) (WHEN . (procedure_call_statement . 0)) (OR .
(procedure_call_statement . 0)) (THEN . (procedure_call_statement . 0)) (ELSIF
. (procedure_call_statement . 0)) (ELSE . (procedure_call_statement . 0))
(CHARACTER_LITERAL . (procedure_call_statement . 0)) (STRING_LITERAL .
(procedure_call_statement . 0)) (IDENTIFIER . (procedure_call_statement . 0))
(WHILE . (procedure_call_statement . 0)) (SELECT . (procedure_call_statement .
0)) (RETURN . (procedure_call_statement [...]
((default . error) (OR . (statement . 1)) (THEN . (statement . 1)) (WHEN
. (statement . 1)) (EXCEPTION . (statement . 1)) (END . (statement . 1))
(LESS_LESS . (statement . 1)) (ACCEPT . (statement . 1)) (ABORT . (statement .
1)) (BEGIN . (statement . 1)) (CASE . (statement . 1)) (DECLARE . (statement .
1)) (DELAY . (statement . 1)) (EXIT . (statement . 1)) (FOR . (statement . 1))
(GOTO . (statement . 1)) (IF . (statement . 1)) (LOOP . (statement . 1)) (NULL
. (statement . 1)) (PRAG [...]
((default . error) (OR . (statement . 0)) (THEN . (statement . 0)) (WHEN
. (statement . 0)) (EXCEPTION . (statement . 0)) (END . (statement . 0))
(LESS_LESS . (statement . 0)) (ACCEPT . (statement . 0)) (ABORT . (statement .
0)) (BEGIN . (statement . 0)) (CASE . (statement . 0)) (DECLARE . (statement .
0)) (DELAY . (statement . 0)) (EXIT . (statement . 0)) (FOR . (statement . 0))
(GOTO . (statement . 0)) (IF . (statement . 0)) (LOOP . (statement . 0)) (NULL
. (statement . 0)) (PRAG [...]
- ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT .
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE .
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP .
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE .
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT .
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA .
(label_opt . 0)) (RAISE . (labe [...]
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT .
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE .
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP .
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE .
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT .
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA .
(label_opt . 0)) (RAISE . (labe [...]
((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
((default . error) (CHARACTER_LITERAL . (label_opt . 2)) (STRING_LITERAL
. (label_opt . 2)) (IDENTIFIER . (label_opt . 2)) (REQUEUE . (label_opt . 2))
(RAISE . (label_opt . 2)) (PRAGMA . (label_opt . 2)) (NULL . (label_opt . 2))
(GOTO . (label_opt . 2)) (EXIT . (label_opt . 2)) (DELAY . (label_opt . 2))
(ABORT . (label_opt . 2)) (WHILE . (label_opt . 2)) (SELECT . (label_opt . 2))
(RETURN . (label_opt . 2)) (LOOP . (label_opt . 2)) (IF . (label_opt . 2)) (FOR
. (label_opt . 2)) (DE [...]
- ((default . error) (GREATER_GREATER . 948))
+ ((default . error) (GREATER_GREATER . 939))
((default . error) (LOOP . (iteration_scheme . 0)))
- ((default . error) (SEMICOLON . 947))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (END . (sequence_of_statements_opt . 0)) (OR .
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0))
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0))
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0))
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0))
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0))
(EXIT . (label_opt . 0)) (GOTO . ( [...]
+ ((default . error) (SEMICOLON . 938))
+ ((default . error) (EQUAL_GREATER . (expression_opt . 0)) (RAISE . 153)
(PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (OR .
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0))
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0))
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0))
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0))
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0))
(EXIT . (label_opt . 0)) (GOTO . ( [...]
((default . error) (ELSE . (select_alternative . 3)) (OR .
(select_alternative . 3)) (END . (select_alternative . 3)))
- ((default . error) (OR . (sequence_of_statements_opt . 0)) (END .
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0))
(THEN . (sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_op [...]
- ((default . error) (ELSE . 942) (OR . 943))
- ((default . error) (DOT . 90) (SEMICOLON . 684) (TICK . 91) (OR .
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0))
(THEN . (sequence_of_statements_opt . 0)) (LEFT_PAREN . 107) (ACCEPT .
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE .
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP .
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE .
(label_opt . 0)) (ABORT . (label_opt . [...]
- ((default . error) (OR . (sequence_of_statements_opt . 0)) (ELSE .
(sequence_of_statements_opt . 0)) (THEN . (sequence_of_statements_opt . 0))
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0))
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0))
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0))
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0))
(EXIT . (label_opt . 0)) (GOTO . [...]
+ ((default . error) (OR . (sequence_of_statements_opt . 0)) (END .
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0))
(THEN . (sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_op [...]
+ ((default . error) (ELSE . 933) (OR . 934))
+ ((default . error) (DOT . 90) (SEMICOLON . 676) (TICK . 91) (OR .
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0))
(THEN . (sequence_of_statements_opt . 0)) (LEFT_PAREN . 107) (ACCEPT .
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE .
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP .
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE .
(label_opt . 0)) (ABORT . (label_opt . [...]
+ ((default . error) (OR . (sequence_of_statements_opt . 0)) (ELSE .
(sequence_of_statements_opt . 0)) (THEN . (sequence_of_statements_opt . 0))
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0))
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0))
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0))
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0))
(EXIT . (label_opt . 0)) (GOTO . [...]
((default . error) (ELSE . (select_alternative_list . 0)) (END .
(select_alternative_list . 0)) (OR . (select_alternative_list . 0)))
- ((default . error) (ELSE . (select_alternative_list_opt . 1)) (END .
(select_alternative_list_opt . 1)) (OR . 939))
- ((default . error) (ELSE . 937) (END . 938))
- ((default . error) (THEN . 936))
+ ((default . error) (ELSE . (select_alternative_list_opt . 1)) (END .
(select_alternative_list_opt . 1)) (OR . 930))
+ ((default . error) (ELSE . 928) (END . 929))
+ ((default . error) (THEN . 927))
((default . error) (WHEN . (simple_return_statement . 0)) (THEN .
(simple_return_statement . 0)) (OR . (simple_return_statement . 0)) (ELSIF .
(simple_return_statement . 0)) (ELSE . (simple_return_statement . 0))
(CHARACTER_LITERAL . (simple_return_statement . 0)) (STRING_LITERAL .
(simple_return_statement . 0)) (IDENTIFIER . (simple_return_statement . 0))
(WHILE . (simple_return_statement . 0)) (SELECT . (simple_return_statement .
0)) (RETURN . (simple_return_statement . 0)) (REQU [...]
- ((default . error) (COLON . 935) (STAR_STAR . (name . 0)) (STAR . (name
. 0)) (SLASH . (name . 0)) (REM . (name . 0)) (MOD . (name . 0)) (SEMICOLON .
(name . 0)) (SLASH_EQUAL . (name . 0)) (LESS_EQUAL . (name . 0)) (LESS . (name
. 0)) (GREATER_EQUAL . (name . 0)) (GREATER . (name . 0)) (EQUAL . (name . 0))
(NOT . (name . 0)) (IN . (name . 0)) (AMPERSAND . (name . 0)) (MINUS . (name .
0)) (PLUS . (name . 0)) (LEFT_PAREN . (name . 0)) (AND . (name . 0)) (OR .
(name . 0)) (XOR . (nam [...]
- ((default . error) (SEMICOLON . 934))
- ((default . error) (DO . (extended_return_object_declaration_opt . 1))
(SEMICOLON . 933))
- ((default . error) (DO . 932))
- ((default . error) (WITH . 930) (DOT . 90) (TICK . 91) (SEMICOLON .
931) (LEFT_PAREN . 107))
+ ((default . error) (COLON . 926) (STAR_STAR . (name . 0)) (STAR . (name
. 0)) (SLASH . (name . 0)) (REM . (name . 0)) (MOD . (name . 0)) (SEMICOLON .
(name . 0)) (SLASH_EQUAL . (name . 0)) (LESS_EQUAL . (name . 0)) (LESS . (name
. 0)) (GREATER_EQUAL . (name . 0)) (GREATER . (name . 0)) (EQUAL . (name . 0))
(NOT . (name . 0)) (IN . (name . 0)) (AMPERSAND . (name . 0)) (MINUS . (name .
0)) (PLUS . (name . 0)) (LEFT_PAREN . (name . 0)) (AND . (name . 0)) (OR .
(name . 0)) (XOR . (nam [...]
+ ((default . error) (SEMICOLON . 925))
+ ((default . error) (DO . (extended_return_object_declaration_opt . 1))
(SEMICOLON . 924))
+ ((default . error) (DO . 923))
+ ((default . error) (WITH . 921) (DOT . 90) (TICK . 91) (SEMICOLON .
922) (LEFT_PAREN . 107))
((default . error) (WHEN . (raise_statement . 0)) (THEN .
(raise_statement . 0)) (OR . (raise_statement . 0)) (ELSIF . (raise_statement .
0)) (ELSE . (raise_statement . 0)) (CHARACTER_LITERAL . (raise_statement . 0))
(STRING_LITERAL . (raise_statement . 0)) (IDENTIFIER . (raise_statement . 0))
(WHILE . (raise_statement . 0)) (SELECT . (raise_statement . 0)) (RETURN .
(raise_statement . 0)) (REQUEUE . (raise_statement . 0)) (RAISE .
(raise_statement . 0)) (PRAGMA . (raise_statement [...]
- ((default . error) (WITH . 928) (DOT . 90) (TICK . 91) (SEMICOLON .
929) (LEFT_PAREN . 107))
+ ((default . error) (WITH . 919) (DOT . 90) (TICK . 91) (SEMICOLON .
920) (LEFT_PAREN . 107))
((default . error) (WHEN . (simple_statement . 0)) (THEN .
(simple_statement . 0)) (OR . (simple_statement . 0)) (ELSIF .
(simple_statement . 0)) (ELSE . (simple_statement . 0)) (CHARACTER_LITERAL .
(simple_statement . 0)) (STRING_LITERAL . (simple_statement . 0)) (IDENTIFIER .
(simple_statement . 0)) (WHILE . (simple_statement . 0)) (SELECT .
(simple_statement . 0)) (RETURN . (simple_statement . 0)) (REQUEUE .
(simple_statement . 0)) (RAISE . (simple_statement . 0)) (PRAGMA . (sim [...]
- ((default . error) (END . 927))
- ((default . error) (THEN . 926))
- ((default . error) (SEMICOLON . 925))
+ ((default . error) (END . 918))
+ ((default . error) (THEN . 917))
+ ((default . error) (SEMICOLON . 916))
((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 . 923) (SEMICOLON . 924))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (SEMICOLON . 921))
- ((default . error) (BEGIN . 920))
- ((default . error) (IS . 919))
- ((default . error) (END . 918))
- ((default . error) (DOT . 90) (TICK . 91) (SEMICOLON . 917)
(LEFT_PAREN . 107))
- ((default . error) (SEMICOLON . (actual_parameter_part_opt . 0)) (DO .
(actual_parameter_part_opt . 0)) (LEFT_PAREN . ( 914 (actual_parameter_part_opt
. 0))))
- ((default . error) (IS . 913))
- ((default . error) (IS . 912))
- ((default . error) (WHEN . 624))
- ((default . error) (BAR . 286) (EQUAL_GREATER . 910))
- ((default . error) (NULL . 909))
- ((default . error) (DO . (subtype_indication . 3)) (OF .
(subtype_indication . 3)) (AND . (subtype_indication . 3)) (SEMICOLON .
(subtype_indication . 3)) (WITH . (subtype_indication . 3)) (COLON_EQUAL .
(subtype_indication . 3)) (DOT . 90) (TICK . 91) (RANGE . 904) (LEFT_PAREN .
829))
- ((default . error) (OF . 908))
+ ((default . error) (WHEN . 914) (SEMICOLON . 915))
+ ((default . error) (SEMICOLON . (expression_opt . 0)) (RAISE . 153)
(PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (SEMICOLON . 912))
+ ((default . error) (BEGIN . 911))
+ ((default . error) (IS . 910))
+ ((default . error) (END . 909))
+ ((default . error) (DOT . 90) (TICK . 91) (SEMICOLON . 908)
(LEFT_PAREN . 107))
+ ((default . error) (SEMICOLON . (actual_parameter_part_opt . 0)) (DO .
(actual_parameter_part_opt . 0)) (LEFT_PAREN . ( 905 (actual_parameter_part_opt
. 0))))
+ ((default . error) (IS . 904))
+ ((default . error) (IS . 903))
+ ((default . error) (WHEN . 616))
+ ((default . error) (BAR . 356) (EQUAL_GREATER . 901))
+ ((default . error) (NULL . 900))
+ ((default . error) (DO . (subtype_indication . 3)) (OF .
(subtype_indication . 3)) (AND . (subtype_indication . 3)) (SEMICOLON .
(subtype_indication . 3)) (WITH . (subtype_indication . 3)) (COLON_EQUAL .
(subtype_indication . 3)) (DOT . 90) (TICK . 91) (RANGE . 895) (LEFT_PAREN .
820))
+ ((default . error) (OF . 899))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
((default . error) (DOT . 90) (TICK . 91) (LOOP .
(iterator_specification . 5)) (EQUAL_GREATER . (iterator_specification . 5))
(LEFT_PAREN . 107))
- ((default . error) (NUMERIC_LITERAL . 155) (NULL . 906) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT . 736)
(NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
+ ((default . error) (NUMERIC_LITERAL . 156) (NULL . 897) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 728)
(NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
((default . error) (LOOP . (iterator_specification . 1)) (EQUAL_GREATER
. (iterator_specification . 1)))
- ((default . error) (LOOP . (subtype_indication . 3)) (DOT . 90) (IN .
(primary . 3)) (NOT . (primary . 3)) (EQUAL . (primary . 3)) (GREATER .
(primary . 3)) (GREATER_EQUAL . (primary . 3)) (LESS . (primary . 3))
(LESS_EQUAL . (primary . 3)) (SLASH_EQUAL . (primary . 3)) (RIGHT_PAREN .
((primary . 3) (subtype_indication . 3))) (COMMA . ((primary . 3)
(subtype_indication . 3))) (BAR . (primary . 3)) (EQUAL_GREATER . ((primary .
3) (subtype_indication . 3))) (AND . (primary . 3)) (OR [...]
+ ((default . error) (LOOP . (subtype_indication . 3)) (DOT . 90) (IN .
(primary . 3)) (NOT . (primary . 3)) (EQUAL . (primary . 3)) (GREATER .
(primary . 3)) (GREATER_EQUAL . (primary . 3)) (LESS . (primary . 3))
(LESS_EQUAL . (primary . 3)) (SLASH_EQUAL . (primary . 3)) (RIGHT_PAREN .
((primary . 3) (subtype_indication . 3))) (COMMA . ((primary . 3)
(subtype_indication . 3))) (BAR . (primary . 3)) (EQUAL_GREATER . ((primary .
3) (subtype_indication . 3))) (AND . (primary . 3)) (OR [...]
((default . error) (LOOP . (discrete_subtype_definition . 1))
(EQUAL_GREATER . (discrete_subtype_definition . 1)) (COMMA .
(discrete_subtype_definition . 1)) (RIGHT_PAREN . (discrete_subtype_definition
. 1)))
((default . error) (LOOP . (discrete_subtype_definition . 0))
(EQUAL_GREATER . (discrete_subtype_definition . 0)) (COMMA .
(discrete_subtype_definition . 0)) (RIGHT_PAREN . (discrete_subtype_definition
. 0)))
- ((default . error) (COMMA . (quantified_expression . 0)) (RIGHT_PAREN .
(quantified_expression . 0)))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (COMMA . (elsif_expression_list . 0)) (RIGHT_PAREN .
(elsif_expression_list . 0)) (ELSE . (elsif_expression_list . 0)) (ELSIF .
(elsif_expression_list . 0)))
- ((default . error) (COMMA . (if_expression . 1)) (RIGHT_PAREN .
(if_expression . 1)) (ELSE . 900) (ELSIF . 744))
+ ((default . error) (RIGHT_PAREN . (quantified_expression . 0)))
+ ((default . error) (RIGHT_PAREN . (expression_opt . 0)) (RAISE . 153)
(PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (THEN . (expression_opt . 0)) (RAISE . 153) (PLUS .
155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156) (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 . 891)
(ELSIF . 736))
((default . error) (USE . (aggregate . 1)) (COLON_EQUAL . (aggregate .
1)) (CHARACTER_LITERAL . (aggregate . 1)) (STRING_LITERAL . (aggregate . 1))
(IDENTIFIER . (aggregate . 1)) (LESS_LESS . (aggregate . 1)) (WHILE .
(aggregate . 1)) (SELECT . (aggregate . 1)) (REQUEUE . (aggregate . 1)) (RAISE
. (aggregate . 1)) (PRAGMA . (aggregate . 1)) (NULL . (aggregate . 1)) (IF .
(aggregate . 1)) (GOTO . (aggregate . 1)) (FOR . (aggregate . 1)) (EXIT .
(aggregate . 1)) (DELAY . (aggregate . [...]
- ((default . error) (RIGHT_PAREN . 899))
- ((default . error) (COMMA . (pragma_argument_association . 3))
(RIGHT_PAREN . (pragma_argument_association . 3)))
- ((default . error) (SEMICOLON . 898))
- ((default . error) (END . 897))
- ((default . error) (IDENTIFIER . 235) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT . 736)
(NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
+ ((default . error) (RIGHT_PAREN . 890))
+ ((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 . 889))
+ ((default . error) (DO . (membership_choice_list . 1)) (LOOP .
(membership_choice_list . 1)) (ELSIF . (membership_choice_list . 1)) (ELSE .
(membership_choice_list . 1)) (EQUAL_GREATER . (membership_choice_list . 1))
(DIGITS . (membership_choice_list . 1)) (RANGE . (membership_choice_list . 1))
(THEN . (membership_choice_list . 1)) (SEMICOLON . (membership_choice_list .
1)) (IS . (membership_choice_list . 1)) (WITH . (membership_choice_list . 1))
(RIGHT_PAREN . (membership_choice_l [...]
+ ((default . error) (SEMICOLON . 888))
+ ((default . error) (END . 887))
+ ((default . error) (SEMICOLON . (parameter_specification . 0))
(RIGHT_PAREN . (parameter_specification . 0)) (IDENTIFIER . 229)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (PLUS . 155) (MINUS . 154)
(ABS . 144) (NOT . 728) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149)
(LEFT_PAREN . 148))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
- ((default . error) (FOR . 146) (CASE . 145) (IF . 147) (RAISE . 152)
(PLUS . 154) (MINUS . 153) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (RIGHT_PAREN . (expression_opt . 0)) (FOR . 146)
(CASE . 145) (IF . 147) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS .
144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
((default . error) (ARRAY . (constant_opt . 1)) (ACCESS . (constant_opt
. 1)) (NOT . (constant_opt . 1)) (IDENTIFIER . (constant_opt . 1))
(STRING_LITERAL . (constant_opt . 1)) (CHARACTER_LITERAL . (constant_opt . 1)))
- ((default . error) (ARRAY . 498) (IDENTIFIER . 48) (CHARACTER_LITERAL
. 50) (STRING_LITERAL . 49) (ACCESS . (null_exclusion_opt . 0)) (NOT . 885))
+ ((default . error) (ARRAY . 490) (IDENTIFIER . 48) (CHARACTER_LITERAL
. 50) (STRING_LITERAL . 49) (ACCESS . (null_exclusion_opt . 0)) (NOT . 875))
((default . error) (IDENTIFIER . (exception_declaration . 0)) (USE .
(exception_declaration . 0)) (TYPE . (exception_declaration . 0)) (TASK .
(exception_declaration . 0)) (SUBTYPE . (exception_declaration . 0)) (PROTECTED
. (exception_declaration . 0)) (PROCEDURE . (exception_declaration . 0))
(PRAGMA . (exception_declaration . 0)) (PACKAGE . (exception_declaration . 0))
(OVERRIDING . (exception_declaration . 0)) (NOT . (exception_declaration . 0))
(GENERIC . (exception_declaratio [...]
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (SEMICOLON . (expression_opt . 0)) (RAISE . 153)
(PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
- ((default . error) (DOT . 90) (TICK . 91) (RENAMES . 882) (LEFT_PAREN
. 107))
+ ((default . error) (DOT . 90) (TICK . 91) (RENAMES . 872) (LEFT_PAREN
. 107))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (PRIVATE . (abstract_tagged_limited_opt . 0)) (NULL .
(abstract_tagged_limited_opt . 0)) (RECORD . (abstract_tagged_limited_opt . 0))
(TAGGED . 869) (RANGE . 867) (MOD . 865) (DIGITS . 862) (DELTA . 861)
(TASK . 509) (PROTECTED . 505) (SYNCHRONIZED . 507) (INTERFACE . 501)
(ARRAY . 498) (LEFT_PAREN . 863) (ACCESS . (null_exclusion_opt . 0)) (NOT .
232) (NEW . ((abstract_limited_opt . 0) (abstract_limited_synchronized_opt .
0))) (LIMITED . 864) (ABSTR [...]
+ ((default . error) (PRIVATE . (abstract_tagged_limited_opt . 0)) (NULL .
(abstract_tagged_limited_opt . 0)) (RECORD . (abstract_tagged_limited_opt . 0))
(TAGGED . 859) (RANGE . 857) (MOD . 855) (DIGITS . 852) (DELTA . 851)
(TASK . 501) (PROTECTED . 497) (SYNCHRONIZED . 499) (INTERFACE . 493)
(ARRAY . 490) (LEFT_PAREN . 853) (ACCESS . (null_exclusion_opt . 0)) (NOT .
226) (NEW . ((abstract_limited_opt . 0) (abstract_limited_synchronized_opt .
0))) (LIMITED . 854) (ABSTR [...]
((default . error) (BEGIN . (incomplete_type_declaration . 1)) (ENTRY .
(incomplete_type_declaration . 1)) (FOR . (incomplete_type_declaration . 1))
(FUNCTION . (incomplete_type_declaration . 1)) (GENERIC .
(incomplete_type_declaration . 1)) (NOT . (incomplete_type_declaration . 1))
(OVERRIDING . (incomplete_type_declaration . 1)) (PACKAGE .
(incomplete_type_declaration . 1)) (PRAGMA . (incomplete_type_declaration . 1))
(PROCEDURE . (incomplete_type_declaration . 1)) (PROTECTED . ( [...]
- ((default . error) (SEPARATE . 859))
+ ((default . error) (SEPARATE . 849))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (IS .
(aspect_specification_opt . 0)) (WITH . 109))
- ((default . error) (NEW . 855) (END . (declarative_part_opt . 0))
(PRIVATE . (declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 302) (PRAGMA .
7) (NOT . 4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2))
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt
. 2)) (FOR . 299) (IDENTIFIER . 305) (TYPE . 304) (GENERIC . 2) (PROTECTED
. 301) (TASK . 303) (PACKAGE . 300))
+ ((default . error) (NEW . 845) (END . (declarative_part_opt . 0))
(PRIVATE . (declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 272) (PRAGMA .
7) (NOT . 4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2))
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt
. 2)) (FOR . 269) (IDENTIFIER . 275) (TYPE . 274) (GENERIC . 2) (PROTECTED
. 271) (TASK . 273) (PACKAGE . 270))
((default . error) (BEGIN . (single_task_declaration . 2)) (ENTRY .
(single_task_declaration . 2)) (FOR . (single_task_declaration . 2)) (FUNCTION
. (single_task_declaration . 2)) (GENERIC . (single_task_declaration . 2)) (NOT
. (single_task_declaration . 2)) (OVERRIDING . (single_task_declaration . 2))
(PACKAGE . (single_task_declaration . 2)) (PRAGMA . (single_task_declaration .
2)) (PROCEDURE . (single_task_declaration . 2)) (PROTECTED .
(single_task_declaration . 2)) (SUBTYPE . [...]
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
- ((default . error) (SEPARATE . 853))
+ ((default . error) (SEPARATE . 843))
((default . error) (IS . (aspect_specification_opt . 0)) (WITH . 109))
- ((default . error) (NEW . 849) (END . (declarative_part_opt . 0))
(PRIVATE . (declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 302) (PRAGMA .
7) (NOT . 4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2))
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt
. 2)) (FOR . 299) (IDENTIFIER . 305) (TYPE . 304) (GENERIC . 2) (PROTECTED
. 301) (TASK . 303) (PACKAGE . 300))
- ((default . error) (SEPARATE . 848))
- ((default . error) (SEMICOLON . 847))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (IDENTIFIER . (mod_clause_opt . 0)) (AT . 844))
- ((default . error) (SEMICOLON . 843))
- ((default . error) (SEMICOLON . 842))
- ((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 . 841))
- ((default . error) (DO . (membership_choice_list . 1)) (LOOP .
(membership_choice_list . 1)) (COMMA . (membership_choice_list . 1)) (ELSIF .
(membership_choice_list . 1)) (ELSE . (membership_choice_list . 1))
(EQUAL_GREATER . (membership_choice_list . 1)) (RIGHT_PAREN .
(membership_choice_list . 1)) (DIGITS . (membership_choice_list . 1)) (RANGE .
(membership_choice_list . 1)) (THEN . (membership_choice_list . 1)) (SEMICOLON
. (membership_choice_list . 1)) (WITH . (membership_choic [...]
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (ACCESS . (null_exclusion_opt . 1)) (IDENTIFIER .
837) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
+ ((default . error) (NEW . 839) (END . (declarative_part_opt . 0))
(PRIVATE . (declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 272) (PRAGMA .
7) (NOT . 4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2))
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt
. 2)) (FOR . 269) (IDENTIFIER . 275) (TYPE . 274) (GENERIC . 2) (PROTECTED
. 271) (TASK . 273) (PACKAGE . 270))
+ ((default . error) (SEPARATE . 838))
+ ((default . error) (SEMICOLON . 837))
+ ((default . error) (SEMICOLON . (expression_opt . 0)) (RAISE . 153)
(PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (IDENTIFIER . (mod_clause_opt . 0)) (AT . 834))
+ ((default . error) (SEMICOLON . 833))
+ ((default . error) (SEMICOLON . 832))
+ ((default . error) (SEMICOLON . (expression_opt . 0)) (RIGHT_PAREN .
(expression_opt . 0)) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144)
(NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER .
48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (SEMICOLON . (expression_opt . 0)) (RIGHT_PAREN .
(expression_opt . 0)) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144)
(NOT . 324) (NUMERIC_LITERAL . 156) (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) (RIGHT_PAREN . (discrete_subtype_definition_list .
0)) (COMMA . (discrete_subtype_definition_list . 0)))
- ((default . error) (COMMA . 836) (RIGHT_PAREN . 835))
+ ((default . error) (COMMA . 827) (RIGHT_PAREN . 826))
((default . error) (RIGHT_PAREN . (index_subtype_definition_list . 0))
(COMMA . (index_subtype_definition_list . 0)))
- ((default . error) (COMMA . 834) (RIGHT_PAREN . 833))
- ((default . error) (RIGHT_PAREN . (subtype_indication . 3)) (COMMA .
(subtype_indication . 3)) (PLUS . (primary . 3)) (MINUS . (primary . 3))
(AMPERSAND . (primary . 3)) (DOT_DOT . (primary . 3)) (MOD . (primary . 3))
(REM . (primary . 3)) (SLASH . (primary . 3)) (STAR . (primary . 3)) (STAR_STAR
. (primary . 3)) (DOT . 90) (TICK . 285) (RANGE . 830) (LEFT_PAREN . 829))
- ((default . error) (BOX . 828))
+ ((default . error) (COMMA . 825) (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)) (MOD . (primary . 3))
(REM . (primary . 3)) (SLASH . (primary . 3)) (STAR . (primary . 3)) (STAR_STAR
. (primary . 3)) (DOT . 90) (TICK . 355) (RANGE . 821) (LEFT_PAREN . 820))
+ ((default . error) (BOX . 819))
((default . error) (WITH . (formal_type_definition . 2)) (SEMICOLON .
(formal_type_definition . 2)))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
((default . error) (PACKAGE . (formal_type_declaration . 1)) (PROCEDURE
. (formal_type_declaration . 1)) (FUNCTION . (formal_type_declaration . 1))
(PRAGMA . (formal_type_declaration . 1)) (TYPE . (formal_type_declaration . 1))
(USE . (formal_type_declaration . 1)) (WITH . (formal_type_declaration . 1))
(IDENTIFIER . (formal_type_declaration . 1)))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (DOT . 90) (TICK . 91) (WITH .
(and_interface_list_opt . 0)) (SEMICOLON . (and_interface_list_opt . 0)) (AND .
821) (LEFT_PAREN . 107))
+ ((default . error) (DOT . 90) (TICK . 91) (WITH .
(and_interface_list_opt . 0)) (SEMICOLON . (and_interface_list_opt . 0)) (AND .
812) (LEFT_PAREN . 107))
((default . error) (PACKAGE . (formal_type_declaration . 0)) (PROCEDURE
. (formal_type_declaration . 0)) (FUNCTION . (formal_type_declaration . 0))
(PRAGMA . (formal_type_declaration . 0)) (TYPE . (formal_type_declaration . 0))
(USE . (formal_type_declaration . 0)) (WITH . (formal_type_declaration . 0))
(IDENTIFIER . (formal_type_declaration . 0)))
((default . error) (PACKAGE . (formal_subprogram_declaration . 2))
(PROCEDURE . (formal_subprogram_declaration . 2)) (FUNCTION .
(formal_subprogram_declaration . 2)) (PRAGMA . (formal_subprogram_declaration .
2)) (TYPE . (formal_subprogram_declaration . 2)) (USE .
(formal_subprogram_declaration . 2)) (WITH . (formal_subprogram_declaration .
2)) (IDENTIFIER . (formal_subprogram_declaration . 2)))
- ((default . error) (BOX . 820) (FOR . 146) (CASE . 145) (IF . 147)
(RIGHT_PAREN . ((expression_opt . 0) (association_opt . 0))) (COMMA .
((expression_opt . 0) (association_opt . 0))) (EQUAL_GREATER .
(discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (IDENTIFIER .
48) (CHARACTER_LITERAL . 183) (STRING_LITERAL . 49) (PLUS . 154) (MINUS .
153) (OTHERS . 182) (ABS . 144) (NOT . 181) (RAISE . 152) (NUMERIC_LITERAL
. 155) (NULL . 151) (NEW . 149) (LEFT_PAREN [...]
+ ((default . error) (BOX . 811) (FOR . 146) (CASE . 145) (IF . 147)
(RIGHT_PAREN . ((expression_opt . 0) (association_opt . 0))) (COMMA .
((expression_opt . 0) (association_opt . 0))) (EQUAL_GREATER .
(discrete_choice_list . 0)) (BAR . (discrete_choice_list . 0)) (IDENTIFIER .
48) (CHARACTER_LITERAL . 157) (STRING_LITERAL . 49) (PLUS . 155) (MINUS .
154) (OTHERS . 152) (ABS . 144) (NOT . 150) (RAISE . 153) (NUMERIC_LITERAL
. 156) (NULL . 151) (NEW . 149) (LEFT_PAREN [...]
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
((default . error) (PACKAGE . (formal_object_declaration . 1))
(PROCEDURE . (formal_object_declaration . 1)) (FUNCTION .
(formal_object_declaration . 1)) (PRAGMA . (formal_object_declaration . 1))
(TYPE . (formal_object_declaration . 1)) (USE . (formal_object_declaration .
1)) (WITH . (formal_object_declaration . 1)) (IDENTIFIER .
(formal_object_declaration . 1)))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
- ((default . error) (SEMICOLON . 817))
- ((default . error) (IDENTIFIER . 77))
+ ((default . error) (SEMICOLON . 808))
+ ((default . error) (SEMICOLON . (parameter_specification . 0))
(RIGHT_PAREN . (parameter_specification . 0)) (IDENTIFIER . 77))
((default . error) (DO . (access_definition . 1)) (COLON_EQUAL .
(access_definition . 1)) (RIGHT_PAREN . (access_definition . 1)) (RENAMES .
(access_definition . 1)) (WITH . (access_definition . 1)) (SEMICOLON .
(access_definition . 1)) (IS . (access_definition . 1)))
((default . error) (DO . (access_definition . 2)) (COLON_EQUAL .
(access_definition . 2)) (RIGHT_PAREN . (access_definition . 2)) (RENAMES .
(access_definition . 2)) (WITH . (access_definition . 2)) (SEMICOLON .
(access_definition . 2)) (IS . (access_definition . 2)))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (RIGHT_PAREN . (parameter_specification . 2))
(SEMICOLON . (parameter_specification . 2)))
- ((default . error) (COLON_EQUAL . 1086) (DOT . 90) (TICK . 91)
(RIGHT_PAREN . (parameter_specification . 1)) (SEMICOLON .
(parameter_specification . 1)) (LEFT_PAREN . 107))
+ ((default . error) (RIGHT_PAREN . (expression_opt . 0)) (SEMICOLON .
(expression_opt . 0)) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144)
(NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER .
48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (RIGHT_PAREN . (parameter_specification . 3))
(SEMICOLON . (parameter_specification . 3)))
+ ((default . error) (COLON_EQUAL . 1077) (DOT . 90) (TICK . 91)
(RIGHT_PAREN . (parameter_specification . 2)) (SEMICOLON .
(parameter_specification . 2)) (LEFT_PAREN . 107))
((default . error) (IDENTIFIER . (formal_object_declaration . 2)) (WITH
. (formal_object_declaration . 2)) (USE . (formal_object_declaration . 2))
(TYPE . (formal_object_declaration . 2)) (PRAGMA . (formal_object_declaration .
2)) (FUNCTION . (formal_object_declaration . 2)) (PROCEDURE .
(formal_object_declaration . 2)) (PACKAGE . (formal_object_declaration . 2)))
- ((default . error) (SEMICOLON . 1085))
- ((default . error) (SEMICOLON . 1084))
- ((default . error) (RIGHT_PAREN . 1083))
+ ((default . error) (SEMICOLON . 1076))
+ ((default . error) (SEMICOLON . 1075))
+ ((default . error) (RIGHT_PAREN . 1074))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (WITH . ( 1081 (formal_derived_type_definition . 1)))
(SEMICOLON . (formal_derived_type_definition . 1)))
- ((default . error) (AND . 1080) (WITH . (interface_type_definition .
1)) (SEMICOLON . (interface_type_definition . 1)))
+ ((default . error) (WITH . ( 1072 (formal_derived_type_definition . 1)))
(SEMICOLON . (formal_derived_type_definition . 1)))
+ ((default . error) (AND . 1071) (WITH . (interface_type_definition .
1)) (SEMICOLON . (interface_type_definition . 1)))
((default . error) (DOT . 90) (SEMICOLON . (interface_list . 0)) (WITH
. (interface_list . 0)) (AND . (interface_list . 0)) (TICK . 91) (LEFT_PAREN .
107))
- ((default . error) (AND . 1080) (WITH . (interface_type_definition .
3)) (SEMICOLON . (interface_type_definition . 3)))
- ((default . error) (AND . 1080) (WITH . (interface_type_definition .
2)) (SEMICOLON . (interface_type_definition . 2)))
- ((default . error) (AND . 1080) (WITH . (interface_type_definition .
0)) (SEMICOLON . (interface_type_definition . 0)))
+ ((default . error) (AND . 1071) (WITH . (interface_type_definition .
3)) (SEMICOLON . (interface_type_definition . 3)))
+ ((default . error) (AND . 1071) (WITH . (interface_type_definition .
2)) (SEMICOLON . (interface_type_definition . 2)))
+ ((default . error) (AND . 1071) (WITH . (interface_type_definition .
0)) (SEMICOLON . (interface_type_definition . 0)))
((default . error) (SEMICOLON . (formal_type_definition . 7)) (WITH .
(formal_type_definition . 7)))
- ((default . error) (FOR . 146) (CASE . 145) (IF . 147) (RIGHT_PAREN .
((expression_opt . 0) (association_opt . 0))) (COMMA . ((expression_opt . 0)
(association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (IDENTIFIER . 48) (CHARACTER_LITERAL . 183)
(STRING_LITERAL . 49) (PLUS . 154) (MINUS . 153) (OTHERS . 182) (ABS .
144) (NOT . 1077) (RAISE . 152) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW .
149) (LEFT_PAREN . 148))
- ((default . error) (BOX . 1076) (IDENTIFIER . 48) (CHARACTER_LITERAL .
50) (STRING_LITERAL . 49) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
+ ((default . error) (FOR . 146) (CASE . 145) (IF . 147) (RIGHT_PAREN .
((expression_opt . 0) (association_opt . 0))) (COMMA . ((expression_opt . 0)
(association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (IDENTIFIER . 48) (CHARACTER_LITERAL . 157)
(STRING_LITERAL . 49) (PLUS . 155) (MINUS . 154) (OTHERS . 152) (ABS .
144) (NOT . 1068) (RAISE . 153) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW .
149) (LEFT_PAREN . 148))
+ ((default . error) (BOX . 1067) (IDENTIFIER . 48) (CHARACTER_LITERAL .
50) (STRING_LITERAL . 49) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
((default . error) (LOOP . (subtype_indication . 2)) (DO .
(subtype_indication . 2)) (RIGHT_PAREN . (subtype_indication . 2)) (COMMA .
(subtype_indication . 2)) (EQUAL_GREATER . (subtype_indication . 2))
(COLON_EQUAL . (subtype_indication . 2)) (WITH . (subtype_indication . 2))
(SEMICOLON . (subtype_indication . 2)) (AND . (subtype_indication . 2)) (OF .
(subtype_indication . 2)))
((default . error) (LOOP . (constraint . 1)) (DO . (constraint . 1))
(RIGHT_PAREN . (constraint . 1)) (COMMA . (constraint . 1)) (EQUAL_GREATER .
(constraint . 1)) (COLON_EQUAL . (constraint . 1)) (WITH . (constraint . 1))
(SEMICOLON . (constraint . 1)) (AND . (constraint . 1)) (OF . (constraint . 1)))
- ((default . error) (OF . 1075))
+ ((default . error) (OF . 1066))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (OF . 1072))
- ((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT . 736)
(NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
+ ((default . error) (OF . 1063))
+ ((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 728)
(NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
((default . error) (DOT . (name . 0)) (LEFT_PAREN . (name . 0)) (TICK .
(name . 0)) (SEMICOLON . (null_exclusion_opt_name_type . 2)) (RIGHT_PAREN .
(null_exclusion_opt_name_type . 2)) (COLON_EQUAL .
(null_exclusion_opt_name_type . 2)))
((default . error) (DOT . (name . 3)) (LEFT_PAREN . (name . 3)) (TICK .
(name . 3)) (SEMICOLON . (null_exclusion_opt_name_type . 3)) (RIGHT_PAREN .
(null_exclusion_opt_name_type . 3)) (COLON_EQUAL .
(null_exclusion_opt_name_type . 3)))
((default . error) (SEMICOLON . (discriminant_specification_opt . 3))
(RIGHT_PAREN . (discriminant_specification_opt . 3)))
((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)) (BAR . (range . 0)) (EQUAL_GREATER . (range .
0)) (RIGHT_PAREN . (range . 0)) (COMMA . (range . 0)))
((default . error) (WHEN . (record_representation_clause . 0)) (END .
(record_representation_clause . 0)) (PRIVATE . (record_representation_clause .
0)) (CASE . (record_representation_clause . 0)) (IDENTIFIER .
(record_representation_clause . 0)) (USE . (record_representation_clause . 0))
(TYPE . (record_representation_clause . 0)) (TASK .
(record_representation_clause . 0)) (SUBTYPE . (record_representation_clause .
0)) (PROTECTED . (record_representation_clause . 0)) (PROCEDURE . [...]
((default . error) (WHEN . (enumeration_representation_clause . 0)) (END
. (enumeration_representation_clause . 0)) (PRIVATE .
(enumeration_representation_clause . 0)) (CASE .
(enumeration_representation_clause . 0)) (IDENTIFIER .
(enumeration_representation_clause . 0)) (USE .
(enumeration_representation_clause . 0)) (TYPE .
(enumeration_representation_clause . 0)) (TASK .
(enumeration_representation_clause . 0)) (SUBTYPE .
(enumeration_representation_clause . 0)) (PROTECTED . (en [...]
- ((default . error) (MOD . 1070))
- ((default . error) (IDENTIFIER . 1067))
- ((default . error) (SEMICOLON . 1066))
+ ((default . error) (MOD . 1061))
+ ((default . error) (IDENTIFIER . 1058))
+ ((default . error) (SEMICOLON . 1057))
((default . error) (WHEN . (aspect_clause . 0)) (PRIVATE .
(aspect_clause . 0)) (END . (aspect_clause . 0)) (CASE . (aspect_clause . 0))
(BEGIN . (aspect_clause . 0)) (ENTRY . (aspect_clause . 0)) (FOR .
(aspect_clause . 0)) (FUNCTION . (aspect_clause . 0)) (GENERIC . (aspect_clause
. 0)) (NOT . (aspect_clause . 0)) (OVERRIDING . (aspect_clause . 0)) (PACKAGE .
(aspect_clause . 0)) (PRAGMA . (aspect_clause . 0)) (PROCEDURE . (aspect_clause
. 0)) (PROTECTED . (aspect_clause . 0)) (S [...]
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (END . 1062) (PRIVATE . 1063))
- ((default . error) (SEMICOLON . 1061))
- ((default . error) (IS . 1060))
+ ((default . error) (END . 1053) (PRIVATE . 1054))
+ ((default . error) (SEMICOLON . 1052))
+ ((default . error) (IS . 1051))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
- ((default . error) (SEMICOLON . 1058))
+ ((default . error) (SEMICOLON . 1049))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (END . 1055) (PRIVATE . 1056))
- ((default . error) (SEMICOLON . 1054))
- ((default . error) (SEMICOLON . 1053) (IS . 1052))
+ ((default . error) (END . 1046) (PRIVATE . 1047))
+ ((default . error) (SEMICOLON . 1045))
+ ((default . error) (SEMICOLON . 1044) (IS . 1043))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
- ((default . error) (SYNCHRONIZED . 563) (TAGGED . 564) (NEW .
((abstract_limited_opt . 3) (abstract_limited_synchronized_opt . 3))) (LIMITED
. 1050))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (IDENTIFIER . 1044) (CHARACTER_LITERAL . 1045))
- ((default . error) (INTERFACE . 557) (PRIVATE .
(abstract_tagged_limited_opt . 5)) (NULL . (abstract_tagged_limited_opt . 5))
(RECORD . (abstract_tagged_limited_opt . 5)) (NEW . ((abstract_limited_opt . 2)
(abstract_limited_synchronized_opt . 4))))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (RECORD . 1042))
- ((default . error) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
- ((default . error) (END . (component_list_opt . 0)) (NULL . 1033) (CASE
. 1032) (IDENTIFIER . 77) (FOR . 299))
- ((default . error) (SEMICOLON . 1031) (PRIVATE .
(abstract_tagged_limited_opt . 4)) (NULL . (abstract_tagged_limited_opt . 4))
(RECORD . (abstract_tagged_limited_opt . 4)) (LIMITED . 551))
- ((default . error) (NEW . 1030))
- ((default . error) (NEW . 1029))
- ((default . error) (PRIVATE . 1027) (RECORD . 868) (NULL . 866))
+ ((default . error) (SYNCHRONIZED . 555) (TAGGED . 556) (NEW .
((abstract_limited_opt . 3) (abstract_limited_synchronized_opt . 3))) (LIMITED
. 1041))
+ ((default . error) (RANGE . (expression_opt . 0)) (WITH .
(expression_opt . 0)) (SEMICOLON . (expression_opt . 0)) (DIGITS .
(expression_opt . 0)) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144)
(NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER .
48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (RANGE . (expression_opt . 0)) (WITH .
(expression_opt . 0)) (SEMICOLON . (expression_opt . 0)) (RAISE . 153) (PLUS .
155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL .
151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL
. 49) (LEFT_PAREN . 148))
+ ((default . error) (IDENTIFIER . 1035) (CHARACTER_LITERAL . 1036))
+ ((default . error) (INTERFACE . 549) (PRIVATE .
(abstract_tagged_limited_opt . 5)) (NULL . (abstract_tagged_limited_opt . 5))
(RECORD . (abstract_tagged_limited_opt . 5)) (NEW . ((abstract_limited_opt . 2)
(abstract_limited_synchronized_opt . 4))))
+ ((default . error) (SEMICOLON . (expression_opt . 0)) (WITH .
(expression_opt . 0)) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144)
(NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER .
48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (RECORD . 1033))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (END . (component_list_opt . 0)) (NULL . 1024) (CASE
. 1023) (IDENTIFIER . 77) (FOR . 269))
+ ((default . error) (SEMICOLON . 1022) (PRIVATE .
(abstract_tagged_limited_opt . 4)) (NULL . (abstract_tagged_limited_opt . 4))
(RECORD . (abstract_tagged_limited_opt . 4)) (LIMITED . 543))
+ ((default . error) (NEW . 1021))
+ ((default . error) (NEW . 1020))
+ ((default . error) (PRIVATE . 1018) (RECORD . 858) (NULL . 856))
((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)))
@@ -2701,130 +2691,131 @@
((default . error) (DOT . 90) (TICK . 91) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109) (LEFT_PAREN . 107))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
((default . error) (SEMICOLON . (package_specification . 0)))
- ((default . error) (SEMICOLON . 1022))
- ((default . error) (NULL . 1021))
- ((default . error) (COLON_EQUAL . 1019) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109))
- ((default . error) (COLON_EQUAL . 1017) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109))
- ((default . error) (COLON_EQUAL . 1015) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109))
- ((default . error) (SEMICOLON . 1014))
((default . error) (SEMICOLON . 1013))
- ((default . error) (SEMICOLON . 1012))
- ((default . error) (SEMICOLON . 1011))
- ((default . error) (RIGHT_PAREN . 1010))
- ((default . error) (RIGHT_PAREN . 1009))
- ((default . error) (SEMICOLON . 1008))
- ((default . error) (RIGHT_PAREN . 1007))
+ ((default . error) (NULL . 1012))
+ ((default . error) (COLON_EQUAL . 1010) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109))
+ ((default . error) (COLON_EQUAL . 1008) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109))
+ ((default . error) (COLON_EQUAL . 1006) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109))
+ ((default . error) (SEMICOLON . 1005))
+ ((default . error) (SEMICOLON . 1004))
+ ((default . error) (SEMICOLON . 1003))
+ ((default . error) (SEMICOLON . 1002))
+ ((default . error) (RIGHT_PAREN . 1001))
+ ((default . error) (RIGHT_PAREN . 1000))
+ ((default . error) (SEMICOLON . 999))
+ ((default . error) (RIGHT_PAREN . 998))
((default . error) (SEMICOLON . (name_opt . 0)) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
((default . error) (END . (package_body . 1)) (BEGIN . (package_body .
1)) (ENTRY . (package_body . 1)) (FOR . (package_body . 1)) (PROTECTED .
(package_body . 1)) (SUBTYPE . (package_body . 1)) (TASK . (package_body . 1))
(TYPE . (package_body . 1)) (IDENTIFIER . (package_body . 1)) (WITH .
(package_body . 1)) (USE . (package_body . 1)) (SEPARATE . (package_body . 1))
(PROCEDURE . (package_body . 1)) (PRIVATE . (package_body . 1)) (PRAGMA .
(package_body . 1)) (PACKAGE . (package_ [...]
+ ((default . error) (THEN . (range . 0)) (RANGE . (range . 0)) (DIGITS .
(range . 0)) (ELSE . (range . 0)) (ELSIF . (range . 0)) (DO . (range . 0))
(LOOP . (range . 0)) (XOR . (range . 0)) (OR . (range . 0)) (AND . (range . 0))
(WITH . (range . 0)) (IS . (range . 0)) (SEMICOLON . (range . 0)) (COLON_EQUAL
. (range . 0)) (OF . (range . 0)) (BAR . (range . 0)) (EQUAL_GREATER . (range .
0)) (RIGHT_PAREN . (range . 0)) (COMMA . (range . 0)))
((default . error) (LOOP . (aggregate . 3)) (DO . (aggregate . 3)) (OF .
(aggregate . 3)) (ACCEPT . (aggregate . 3)) (ABORT . (aggregate . 3)) (BEGIN .
(aggregate . 3)) (CASE . (aggregate . 3)) (DECLARE . (aggregate . 3)) (DELAY .
(aggregate . 3)) (EXIT . (aggregate . 3)) (FOR . (aggregate . 3)) (GOTO .
(aggregate . 3)) (IF . (aggregate . 3)) (NULL . (aggregate . 3)) (PRAGMA .
(aggregate . 3)) (RAISE . (aggregate . 3)) (REQUEUE . (aggregate . 3)) (SELECT
. (aggregate . 3)) (WHILE . [...]
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (ELSIF . (elsif_expression_list . 1)) (ELSE .
(elsif_expression_list . 1)) (RIGHT_PAREN . (elsif_expression_list . 1)) (COMMA
. (elsif_expression_list . 1)))
- ((default . error) (THEN . 1004))
- ((default . error) (RIGHT_PAREN . (if_expression . 2)) (COMMA .
(if_expression . 2)))
- ((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT . 150)
(NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
+ ((default . error) (RIGHT_PAREN . (expression_opt . 0)) (RAISE . 153)
(PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156)
(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 . 995))
+ ((default . error) (RIGHT_PAREN . (if_expression . 2)))
+ ((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 324)
(NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
((default . error) (LOOP . (iterator_specification . 0)) (EQUAL_GREATER
. (iterator_specification . 0)))
((default . error) (PLUS . (primary . 1)) (MINUS . (primary . 1))
(AMPERSAND . (primary . 1)) (DOT_DOT . (primary . 1)) (MOD . (primary . 1))
(REM . (primary . 1)) (SLASH . (primary . 1)) (STAR . (primary . 1))
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
((default . error) (DOT . 90) (TICK . 91) (LOOP .
(iterator_specification . 4)) (EQUAL_GREATER . (iterator_specification . 4))
(LEFT_PAREN . 107))
- ((default . error) (REVERSE . 1001) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
+ ((default . error) (REVERSE . 992) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (COMMA . (expression_opt . 0)) (RIGHT_PAREN .
(expression_opt . 0)) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144)
(NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER .
48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
((default . error) (RIGHT_PAREN . (case_expression_alternative_list .
1)) (COMMA . (case_expression_alternative_list . 1)))
- ((default . error) (END . (protected_operation_item_list_opt . 0))
(ENTRY . 988) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(FOR . 299))
- ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE . 11)
(SUBTYPE . 302) (PRAGMA . 7) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(ENTRY . (overriding_indicator_opt . 2)) (FOR . 299) (IDENTIFIER . 305) (TYPE
. 304) (GENERIC . 2) (PROTECTED . 301) (TASK . 303) (PACKAGE . 300))
- ((default . error) (FOR . 146) (CASE . 145) (IF . 147) (RIGHT_PAREN .
((expression_opt . 0) (association_opt . 0))) (COMMA . ((expression_opt . 0)
(association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (OTHERS . 182) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 183) (STRING_LITERAL . 49) (RAISE . 152) (PLUS . 154)
(MINUS . 153) (ABS . 144) (NOT . 181) (NUMERIC_LITERAL . 155) (NULL . 151)
(NEW . 149) (LEFT_PAREN . 148))
+ ((default . error) (END . (protected_operation_item_list_opt . 0))
(ENTRY . 979) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(FOR . 269))
+ ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE . 11)
(SUBTYPE . 272) (PRAGMA . 7) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(ENTRY . (overriding_indicator_opt . 2)) (FOR . 269) (IDENTIFIER . 275) (TYPE
. 274) (GENERIC . 2) (PROTECTED . 271) (TASK . 273) (PACKAGE . 270))
+ ((default . error) (FOR . 146) (CASE . 145) (IF . 147) (RIGHT_PAREN .
((expression_opt . 0) (association_opt . 0))) (COMMA . ((expression_opt . 0)
(association_opt . 0))) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (OTHERS . 152) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 157) (STRING_LITERAL . 49) (RAISE . 153) (PLUS . 155)
(MINUS . 154) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 156) (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 . 810))
+ ((default . error) (DO . (parameter_profile_opt . 0)) (SEMICOLON .
(parameter_profile_opt . 0)) (LEFT_PAREN . 801))
((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)) (ACCEPT . (simple_statement . 8)) (ABORT .
(simple_statement . 8)) (BEGIN . (simple_statement . 8)) (CASE .
(simple_statement . 8)) (DECLARE . (simple_statement . 8)) (DELAY .
(simple_statement . 8)) (EXIT . (simple_statement . 8)) (FOR .
(simple_statement . 8)) (GOTO [...]
- ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
718))
- ((default . error) (WHEN . 982))
- ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt [...]
+ ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
710))
+ ((default . error) (WHEN . 973))
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt [...]
((default . error) (WHEN . (delay_statement . 1)) (EXCEPTION .
(delay_statement . 1)) (ELSIF . (delay_statement . 1)) (THEN . (delay_statement
. 1)) (ELSE . (delay_statement . 1)) (OR . (delay_statement . 1)) (END .
(delay_statement . 1)) (ACCEPT . (delay_statement . 1)) (ABORT .
(delay_statement . 1)) (BEGIN . (delay_statement . 1)) (CASE . (delay_statement
. 1)) (DECLARE . (delay_statement . 1)) (DELAY . (delay_statement . 1)) (EXIT .
(delay_statement . 1)) (FOR . (delay_statemen [...]
- ((default . error) (SEMICOLON . 980))
- ((default . error) (SEMICOLON . (expression_opt . 0)) (RAISE . 152)
(PLUS . 154) (MINUS . 153) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (SEMICOLON . 971))
+ ((default . error) (SEMICOLON . (expression_opt . 0)) (RAISE . 153)
(PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
((default . error) (OR . (exit_statement . 1)) (THEN . (exit_statement .
1)) (WHEN . (exit_statement . 1)) (EXCEPTION . (exit_statement . 1)) (END .
(exit_statement . 1)) (LESS_LESS . (exit_statement . 1)) (ACCEPT .
(exit_statement . 1)) (ABORT . (exit_statement . 1)) (BEGIN . (exit_statement .
1)) (CASE . (exit_statement . 1)) (DECLARE . (exit_statement . 1)) (DELAY .
(exit_statement . 1)) (EXIT . (exit_statement . 1)) (FOR . (exit_statement .
1)) (GOTO . (exit_statement . 1)) (IF [...]
((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)) (ACCEPT . (simple_statement . 3)) (ABORT .
(simple_statement . 3)) (BEGIN . (simple_statement . 3)) (CASE .
(simple_statement . 3)) (DECLARE . (simple_statement . 3)) (DELAY .
(simple_statement . 3)) (EXIT . (simple_statement . 3)) (FOR .
(simple_statement . 3)) (GOTO [...]
- ((default . error) (ELSIF . (sequence_of_statements_opt . 0)) (ELSE .
(sequence_of_statements_opt . 0)) (END . (sequence_of_statements_opt . 0))
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0))
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0))
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0))
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0))
(EXIT . (label_opt . 0)) (GOTO [...]
- ((default . error) (LOOP . 977))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (ELSIF . (sequence_of_statements_opt . 0)) (ELSE .
(sequence_of_statements_opt . 0)) (END . (sequence_of_statements_opt . 0))
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0))
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0))
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0))
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0))
(EXIT . (label_opt . 0)) (GOTO [...]
+ ((default . error) (LOOP . 968))
+ ((default . error) (SEMICOLON . (expression_opt . 0)) (RAISE . 153)
(PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
((default . error) (OR . (raise_statement . 2)) (THEN . (raise_statement
. 2)) (WHEN . (raise_statement . 2)) (EXCEPTION . (raise_statement . 2)) (END .
(raise_statement . 2)) (LESS_LESS . (raise_statement . 2)) (ACCEPT .
(raise_statement . 2)) (ABORT . (raise_statement . 2)) (BEGIN .
(raise_statement . 2)) (CASE . (raise_statement . 2)) (DECLARE .
(raise_statement . 2)) (DELAY . (raise_statement . 2)) (EXIT . (raise_statement
. 2)) (FOR . (raise_statement . 2)) (GOTO . (raise_stat [...]
- ((default . error) (ABORT . 975))
+ ((default . error) (ABORT . 966))
((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)) (ACCEPT . (requeue_statement . 1)) (ABORT .
(requeue_statement . 1)) (BEGIN . (requeue_statement . 1)) (CASE .
(requeue_statement . 1)) (DECLARE . (requeue_statement . 1)) (DELAY .
(requeue_statement . 1)) (EXIT . (requeue_statement . 1)) (FOR .
(requeue_stateme [...]
- ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt [...]
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt [...]
((default . error) (OR . (extended_return_statement . 1)) (THEN .
(extended_return_statement . 1)) (WHEN . (extended_return_statement . 1))
(EXCEPTION . (extended_return_statement . 1)) (END . (extended_return_statement
. 1)) (LESS_LESS . (extended_return_statement . 1)) (ACCEPT .
(extended_return_statement . 1)) (ABORT . (extended_return_statement . 1))
(BEGIN . (extended_return_statement . 1)) (CASE . (extended_return_statement .
1)) (DECLARE . (extended_return_statement . 1)) (D [...]
((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)) (ACCEPT .
(simple_return_statement . 1)) (ABORT . (simple_return_statement . 1)) (BEGIN .
(simple_return_statement . 1)) (CASE . (simple_return_statement . 1)) (DECLARE
. (simple_return_statement . 1)) (DELAY . (simple_return_ [...]
- ((default . error) (CONSTANT . (aliased_opt . 0)) (ACCESS . (aliased_opt
. 0)) (NOT . (aliased_opt . 0)) (IDENTIFIER . (aliased_opt . 0))
(STRING_LITERAL . (aliased_opt . 0)) (CHARACTER_LITERAL . (aliased_opt . 0))
(ALIASED . 531))
- ((default . error) (ABORT . 972))
- ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT .
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE .
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP .
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE .
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT .
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA .
(label_opt . 0)) (RAISE . (labe [...]
- ((default . error) (SELECT . 970))
- ((default . error) (WHEN . 693) (TERMINATE . 692) (ACCEPT . 630)
(DELAY . 635))
+ ((default . error) (CONSTANT . (aliased_opt . 0)) (ACCESS . (aliased_opt
. 0)) (NOT . (aliased_opt . 0)) (IDENTIFIER . (aliased_opt . 0))
(STRING_LITERAL . (aliased_opt . 0)) (CHARACTER_LITERAL . (aliased_opt . 0))
(ALIASED . 523))
+ ((default . error) (ABORT . 963))
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT .
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE .
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP .
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE .
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT .
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA .
(label_opt . 0)) (RAISE . (labe [...]
+ ((default . error) (SELECT . 961))
+ ((default . error) (WHEN . 685) (TERMINATE . 684) (ACCEPT . 622)
(DELAY . 627))
((default . error) (OR . (entry_call_alternative . 0)) (ELSE .
(entry_call_alternative . 0)) (THEN . (triggering_alternative . 0)))
((default . error) (OR . (entry_call_alternative . 1)) (ELSE .
(entry_call_alternative . 1)) (THEN . (triggering_alternative . 1)))
- ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT .
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE .
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP .
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE .
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT .
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA .
(label_opt . 0)) (RAISE . (labe [...]
- ((default . error) (DELAY . 635))
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT .
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE .
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP .
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE .
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT .
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA .
(label_opt . 0)) (RAISE . (labe [...]
+ ((default . error) (DELAY . 627))
((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 . 965))
+ ((default . error) (EQUAL_GREATER . 956))
((default . error) (END . (select_alternative . 5)) (OR .
(select_alternative . 5)) (ELSE . (select_alternative . 5)))
((default . error) (OR . (goto_label . 0)) (THEN . (goto_label . 0))
(WHEN . (goto_label . 0)) (LESS_LESS . (goto_label . 0)) (END . (goto_label .
0)) (EXCEPTION . (goto_label . 0)) (ELSE . (goto_label . 0)) (ELSIF .
(goto_label . 0)) (CHARACTER_LITERAL . (goto_label . 0)) (STRING_LITERAL .
(goto_label . 0)) (IDENTIFIER . (goto_label . 0)) (REQUEUE . (goto_label . 0))
(RAISE . (goto_label . 0)) (PRAGMA . (goto_label . 0)) (NULL . (goto_label .
0)) (GOTO . (goto_label . 0)) (EXIT . [...]
- ((default . error) (SEMICOLON . 964))
- ((default . error) (END . 963))
- ((default . error) (SEMICOLON . 962))
- ((default . error) (OTHERS . 957) (IDENTIFIER . 958)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
+ ((default . error) (SEMICOLON . 955))
+ ((default . error) (END . 954))
+ ((default . error) (SEMICOLON . 953))
+ ((default . error) (OTHERS . 948) (IDENTIFIER . 949)
(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 .
952))
+ ((default . error) (END . (exception_handler_list_opt . 1)) (WHEN .
943))
((default . error) (END . (handled_sequence_of_statements . 0)))
((default . error) (WHEN . (exception_handler_list . 1)) (END .
(exception_handler_list . 1)))
((default . error) (BAR . (exception_choice . 1)) (EQUAL_GREATER .
(exception_choice . 1)))
- ((default . error) (COLON . 1184) (EQUAL_GREATER . (name . 0)) (BAR .
(name . 0)) (LEFT_PAREN . (name . 0)) (DOT . (name . 0)) (TICK . (name . 0)))
+ ((default . error) (COLON . 1175) (EQUAL_GREATER . (name . 0)) (BAR .
(name . 0)) (LEFT_PAREN . (name . 0)) (DOT . (name . 0)) (TICK . (name . 0)))
((default . error) (EQUAL_GREATER . (exception_choice_list . 0)) (BAR .
(exception_choice_list . 0)))
- ((default . error) (BAR . 1182) (EQUAL_GREATER . 1183))
+ ((default . error) (BAR . 1173) (EQUAL_GREATER . 1174))
((default . error) (DOT . 90) (BAR . (exception_choice . 0))
(EQUAL_GREATER . (exception_choice . 0)) (TICK . 91) (LEFT_PAREN . 107))
((default . error) (WHEN . (assignment_statement . 0)) (THEN .
(assignment_statement . 0)) (OR . (assignment_statement . 0)) (ELSIF .
(assignment_statement . 0)) (ELSE . (assignment_statement . 0))
(CHARACTER_LITERAL . (assignment_statement . 0)) (STRING_LITERAL .
(assignment_statement . 0)) (IDENTIFIER . (assignment_statement . 0)) (WHILE .
(assignment_statement . 0)) (SELECT . (assignment_statement . 0)) (RETURN .
(assignment_statement . 0)) (REQUEUE . (assignment_statement . 0)) [...]
- ((default . error) (LOOP . 1181))
+ ((default . error) (LOOP . 1172))
((default . error) (IDENTIFIER . (subprogram_body . 0)) (TYPE .
(subprogram_body . 0)) (TASK . (subprogram_body . 0)) (SUBTYPE .
(subprogram_body . 0)) (PROTECTED . (subprogram_body . 0)) (FOR .
(subprogram_body . 0)) (ENTRY . (subprogram_body . 0)) (BEGIN .
(subprogram_body . 0)) (END . (subprogram_body . 0)) ($EOI . (subprogram_body .
0)) (FUNCTION . (subprogram_body . 0)) (GENERIC . (subprogram_body . 0))
(LIMITED . (subprogram_body . 0)) (NOT . (subprogram_body . 0)) (OVERRIDIN [...]
- ((default . error) (TERMINATE . 1178) (ACCEPT . 630) (DELAY . 635))
- ((default . error) (END . 1177))
- ((default . error) (END . (sequence_of_statements_opt . 0)) (OR .
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0))
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0))
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0))
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0))
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0))
(EXIT . (label_opt . 0)) (GOTO . ( [...]
- ((default . error) (END . 1175))
+ ((default . error) (TERMINATE . 1169) (ACCEPT . 622) (DELAY . 627))
+ ((default . error) (END . 1168))
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (OR .
(sequence_of_statements_opt . 0)) (ELSE . (sequence_of_statements_opt . 0))
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0))
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0))
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0))
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0))
(EXIT . (label_opt . 0)) (GOTO . ( [...]
+ ((default . error) (END . 1166))
((default . error) (ELSE . (select_alternative_list . 1)) (END .
(select_alternative_list . 1)) (OR . (select_alternative_list . 1)))
- ((default . error) (SEMICOLON . 1174))
- ((default . error) (END . 1173))
- ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT .
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE .
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP .
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE .
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT .
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA .
(label_opt . 0)) (RAISE . (labe [...]
- ((default . error) (ACCESS . (constant_opt . 0)) (NOT . (constant_opt .
0)) (IDENTIFIER . (constant_opt . 0)) (STRING_LITERAL . (constant_opt . 0))
(CHARACTER_LITERAL . (constant_opt . 0)) (CONSTANT . 759))
- ((default . error) (END . 1170))
- ((default . error) (SEMICOLON . 1169))
- ((default . error) (SEMICOLON . 1168))
- ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
718))
- ((default . error) (ELSE . 1162) (END . 1164) (ELSIF . 1163))
- ((default . error) (SEMICOLON . 1161))
+ ((default . error) (SEMICOLON . 1165))
+ ((default . error) (END . 1164))
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT .
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE .
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP .
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE .
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT .
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA .
(label_opt . 0)) (RAISE . (labe [...]
+ ((default . error) (ACCESS . (constant_opt . 0)) (NOT . (constant_opt .
0)) (IDENTIFIER . (constant_opt . 0)) (STRING_LITERAL . (constant_opt . 0))
(CHARACTER_LITERAL . (constant_opt . 0)) (CONSTANT . 753))
+ ((default . error) (END . 1161))
+ ((default . error) (SEMICOLON . 1160))
+ ((default . error) (SEMICOLON . 1159))
+ ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
710))
+ ((default . error) (ELSE . 1153) (END . 1155) (ELSIF . 1154))
+ ((default . error) (SEMICOLON . 1152))
((default . error) (WHEN . (delay_statement . 0)) (ELSIF .
(delay_statement . 0)) (EXCEPTION . (delay_statement . 0)) (CHARACTER_LITERAL .
(delay_statement . 0)) (STRING_LITERAL . (delay_statement . 0)) (IDENTIFIER .
(delay_statement . 0)) (LESS_LESS . (delay_statement . 0)) (WHILE .
(delay_statement . 0)) (SELECT . (delay_statement . 0)) (RETURN .
(delay_statement . 0)) (REQUEUE . (delay_statement . 0)) (RAISE .
(delay_statement . 0)) (PRAGMA . (delay_statement . 0)) (NULL . (dela [...]
- ((default . error) (END . 1160))
- ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (OTHERS . 182) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (PLUS . 154) (MINUS . 153)
(ABS . 144) (NOT . 181) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(LEFT_PAREN . 148))
+ ((default . error) (END . 1151))
+ ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (OTHERS . 152) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (PLUS . 155) (MINUS . 154)
(ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149)
(LEFT_PAREN . 148))
((default . error) (END . (case_statement_alternative_list . 0)) (WHEN .
(case_statement_alternative_list . 0)))
- ((default . error) (END . 1157) (WHEN . 982))
- ((default . error) (SEMICOLON . 1156))
- ((default . error) (DO . 1154) (SEMICOLON . 1155))
- ((default . error) (BEGIN . 1153))
- ((default . error) (IDENTIFIER . 1152))
+ ((default . error) (END . 1148) (WHEN . 973))
+ ((default . error) (SEMICOLON . 1147))
+ ((default . error) (DO . 1145) (SEMICOLON . 1146))
+ ((default . error) (BEGIN . 1144))
+ ((default . error) (IDENTIFIER . 1143))
((default . error) (PROCEDURE . (protected_operation_item . 5))
(OVERRIDING . (protected_operation_item . 5)) (NOT . (protected_operation_item
. 5)) (FUNCTION . (protected_operation_item . 5)) (FOR .
(protected_operation_item . 5)) (ENTRY . (protected_operation_item . 5)) (END .
(protected_operation_item . 5)))
((default . error) (PROCEDURE . (protected_operation_item . 2))
(OVERRIDING . (protected_operation_item . 2)) (NOT . (protected_operation_item
. 2)) (FUNCTION . (protected_operation_item . 2)) (FOR .
(protected_operation_item . 2)) (ENTRY . (protected_operation_item . 2)) (END .
(protected_operation_item . 2)))
((default . error) (PROCEDURE . (protected_operation_item . 3))
(OVERRIDING . (protected_operation_item . 3)) (NOT . (protected_operation_item
. 3)) (FUNCTION . (protected_operation_item . 3)) (FOR .
(protected_operation_item . 3)) (ENTRY . (protected_operation_item . 3)) (END .
(protected_operation_item . 3)))
((default . error) (PROCEDURE . (protected_operation_item . 4))
(OVERRIDING . (protected_operation_item . 4)) (NOT . (protected_operation_item
. 4)) (FUNCTION . (protected_operation_item . 4)) (FOR .
(protected_operation_item . 4)) (ENTRY . (protected_operation_item . 4)) (END .
(protected_operation_item . 4)))
((default . error) (FUNCTION . 1) (PROCEDURE . 9))
((default . error) (END . (protected_operation_item_list . 0)) (ENTRY .
(protected_operation_item_list . 0)) (FOR . (protected_operation_item_list .
0)) (FUNCTION . (protected_operation_item_list . 0)) (NOT .
(protected_operation_item_list . 0)) (OVERRIDING .
(protected_operation_item_list . 0)) (PROCEDURE .
(protected_operation_item_list . 0)))
- ((default . error) (END . (protected_operation_item_list_opt . 1))
(ENTRY . 988) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(FOR . 299))
- ((default . error) (END . 1149))
+ ((default . error) (END . (protected_operation_item_list_opt . 1))
(ENTRY . 979) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(FOR . 269))
+ ((default . error) (END . 1140))
((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) (COMMA . (case_expression_alternative . 0))
(RIGHT_PAREN . (case_expression_alternative . 0)))
- ((default . error) (DO . (subtype_indication . 1)) (LOOP .
(subtype_indication . 1)) (COLON_EQUAL . (subtype_indication . 1)) (SEMICOLON .
(subtype_indication . 1)) (OF . (subtype_indication . 1)) (AND .
(subtype_indication . 1)) (WITH . (subtype_indication . 1)) (EQUAL_GREATER .
(subtype_indication . 1)) (COMMA . (subtype_indication . 1)) (RIGHT_PAREN .
(subtype_indication . 1)) (DOT . 90) (TICK . 91) (RANGE . 904) (LEFT_PAREN .
829))
+ ((default . error) (DO . (subtype_indication . 1)) (LOOP .
(subtype_indication . 1)) (COLON_EQUAL . (subtype_indication . 1)) (SEMICOLON .
(subtype_indication . 1)) (OF . (subtype_indication . 1)) (AND .
(subtype_indication . 1)) (WITH . (subtype_indication . 1)) (EQUAL_GREATER .
(subtype_indication . 1)) (COMMA . (subtype_indication . 1)) (RIGHT_PAREN .
(subtype_indication . 1)) (DOT . 90) (TICK . 91) (RANGE . 895) (LEFT_PAREN .
820))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
((default . error) (DOT . 90) (TICK . 91) (LOOP .
(iterator_specification . 3)) (EQUAL_GREATER . (iterator_specification . 3))
(LEFT_PAREN . 107))
((default . error) (DO . (constraint . 0)) (LOOP . (constraint . 0)) (OF
. (constraint . 0)) (AND . (constraint . 0)) (SEMICOLON . (constraint . 0))
(WITH . (constraint . 0)) (COLON_EQUAL . (constraint . 0)) (EQUAL_GREATER .
(constraint . 0)) (RIGHT_PAREN . (constraint . 0)) (COMMA . (constraint . 0)))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (COMMA . (if_expression . 0)) (RIGHT_PAREN .
(if_expression . 0)))
- ((default . error) (SEMICOLON . 1145))
- ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON .
(parameter_profile_opt . 0)) (LEFT_PAREN . 810))
+ ((default . error) (ELSE . (expression_opt . 0)) (ELSIF .
(expression_opt . 0)) (RIGHT_PAREN . (expression_opt . 0)) (RAISE . 153) (PLUS
. 155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL
. 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (RIGHT_PAREN . (if_expression . 0)))
+ ((default . error) (SEMICOLON . 1136))
+ ((default . error) (WITH . (parameter_profile_opt . 0)) (SEMICOLON .
(parameter_profile_opt . 0)) (LEFT_PAREN . 801))
((default . error) (IDENTIFIER . (entry_declaration . 1)) (USE .
(entry_declaration . 1)) (TYPE . (entry_declaration . 1)) (TASK .
(entry_declaration . 1)) (SUBTYPE . (entry_declaration . 1)) (PROTECTED .
(entry_declaration . 1)) (PROCEDURE . (entry_declaration . 1)) (PRAGMA .
(entry_declaration . 1)) (PACKAGE . (entry_declaration . 1)) (OVERRIDING .
(entry_declaration . 1)) (NOT . (entry_declaration . 1)) (GENERIC .
(entry_declaration . 1)) (FUNCTION . (entry_declaration . 1)) (FO [...]
((default . error) (WITH . (paren_expression . 0)) (SEMICOLON .
(paren_expression . 0)))
((default . error) (WITH . (paren_expression . 1)) (SEMICOLON .
(paren_expression . 1)))
@@ -2832,129 +2823,129 @@
((default . error) (IDENTIFIER . (null_procedure_declaration . 0)) (USE
. (null_procedure_declaration . 0)) (TYPE . (null_procedure_declaration . 0))
(TASK . (null_procedure_declaration . 0)) (SUBTYPE .
(null_procedure_declaration . 0)) (PROTECTED . (null_procedure_declaration .
0)) (PROCEDURE . (null_procedure_declaration . 0)) (PRAGMA .
(null_procedure_declaration . 0)) (PACKAGE . (null_procedure_declaration . 0))
(OVERRIDING . (null_procedure_declaration . 0)) (NOT . (null_proce [...]
((default . error) (IDENTIFIER . (abstract_subprogram_declaration . 0))
(USE . (abstract_subprogram_declaration . 0)) (TYPE .
(abstract_subprogram_declaration . 0)) (TASK . (abstract_subprogram_declaration
. 0)) (SUBTYPE . (abstract_subprogram_declaration . 0)) (PROTECTED .
(abstract_subprogram_declaration . 0)) (PROCEDURE .
(abstract_subprogram_declaration . 0)) (PRAGMA .
(abstract_subprogram_declaration . 0)) (PACKAGE .
(abstract_subprogram_declaration . 0)) (OVERRIDING . (abstra [...]
((default . error) (IDENTIFIER . (subprogram_body_stub . 0)) (USE .
(subprogram_body_stub . 0)) (TYPE . (subprogram_body_stub . 0)) (TASK .
(subprogram_body_stub . 0)) (SUBTYPE . (subprogram_body_stub . 0)) (PROTECTED .
(subprogram_body_stub . 0)) (PROCEDURE . (subprogram_body_stub . 0)) (PRAGMA .
(subprogram_body_stub . 0)) (PACKAGE . (subprogram_body_stub . 0)) (OVERRIDING
. (subprogram_body_stub . 0)) (NOT . (subprogram_body_stub . 0)) (GENERIC .
(subprogram_body_stub . 0)) (FUN [...]
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (SEMICOLON . 1142))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (SEMICOLON . 1140))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (SEMICOLON . 1138))
+ ((default . error) (WITH . (expression_opt . 0)) (SEMICOLON .
(expression_opt . 0)) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144)
(NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER .
48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (SEMICOLON . 1133))
+ ((default . error) (WITH . (expression_opt . 0)) (SEMICOLON .
(expression_opt . 0)) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144)
(NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER .
48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (SEMICOLON . 1131))
+ ((default . error) (WITH . (expression_opt . 0)) (SEMICOLON .
(expression_opt . 0)) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144)
(NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER .
48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (SEMICOLON . 1129))
((default . error) (ACCESS . (null_exclusion_opt . 1)) (IDENTIFIER .
48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
((default . error) (BEGIN . (declaration . 9)) (ENTRY . (declaration .
9)) (FOR . (declaration . 9)) (FUNCTION . (declaration . 9)) (GENERIC .
(declaration . 9)) (NOT . (declaration . 9)) (OVERRIDING . (declaration . 9))
(PACKAGE . (declaration . 9)) (PRAGMA . (declaration . 9)) (PROCEDURE .
(declaration . 9)) (PROTECTED . (declaration . 9)) (SUBTYPE . (declaration .
9)) (TASK . (declaration . 9)) (TYPE . (declaration . 9)) (USE . (declaration .
9)) (IDENTIFIER . (declaration . 9)) [...]
((default . error) (DOT . 90) (TICK . 91) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109) (LEFT_PAREN . 107))
- ((default . error) (SEMICOLON . 1136))
- ((default . error) (SEMICOLON . 1135))
- ((default . error) (SEMICOLON . 1134))
+ ((default . error) (SEMICOLON . 1127))
+ ((default . error) (SEMICOLON . 1126))
+ ((default . error) (SEMICOLON . 1125))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
((default . error) (WITH . (record_type_definition . 0)) (SEMICOLON .
(record_type_definition . 0)))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (NOT . 731) (IDENTIFIER . 48) (CHARACTER_LITERAL .
50) (STRING_LITERAL . 49))
+ ((default . error) (NOT . 723) (IDENTIFIER . 48) (CHARACTER_LITERAL .
50) (STRING_LITERAL . 49))
((default . error) (BEGIN . (incomplete_type_declaration . 0)) (ENTRY .
(incomplete_type_declaration . 0)) (FOR . (incomplete_type_declaration . 0))
(FUNCTION . (incomplete_type_declaration . 0)) (GENERIC .
(incomplete_type_declaration . 0)) (NOT . (incomplete_type_declaration . 0))
(OVERRIDING . (incomplete_type_declaration . 0)) (PACKAGE .
(incomplete_type_declaration . 0)) (PRAGMA . (incomplete_type_declaration . 0))
(PROCEDURE . (incomplete_type_declaration . 0)) (PROTECTED . ( [...]
- ((default . error) (IS . (direct_name_opt . 0)) (IDENTIFIER . 1127)
(STRING_LITERAL . 1128))
- ((default . error) (SEMICOLON . 1126))
+ ((default . error) (IS . (direct_name_opt . 0)) (IDENTIFIER . 1118)
(STRING_LITERAL . 1119))
+ ((default . error) (SEMICOLON . 1117))
((default . error) (WHEN . (component_item . 1)) (END . (component_item
. 1)) (IDENTIFIER . (component_item . 1)) (FOR . (component_item . 1)) (CASE .
(component_item . 1)))
((default . error) (WHEN . (component_item . 0)) (END . (component_item
. 0)) (IDENTIFIER . (component_item . 0)) (FOR . (component_item . 0)) (CASE .
(component_item . 0)))
((default . error) (WHEN . (component_list . 0)) (END . (component_list
. 0)) (CASE . (component_list . 0)) (FOR . (component_list . 0)) (IDENTIFIER .
(component_list . 0)))
- ((default . error) (WHEN . (component_list_opt . 1)) (END .
(component_list_opt . 1)) (CASE . 1032) (IDENTIFIER . 77) (FOR . 299))
- ((default . error) (END . 1123))
- ((default . error) (COMMA . 96) (COLON . 1122))
+ ((default . error) (WHEN . (component_list_opt . 1)) (END .
(component_list_opt . 1)) (CASE . 1023) (IDENTIFIER . 77) (FOR . 269))
+ ((default . error) (END . 1114))
+ ((default . error) (COMMA . 96) (COLON . 1113))
((default . error) (WHEN . (component_list . 3)) (END . (component_list
. 3)) (CASE . (component_list . 3)) (FOR . (component_list . 3)) (IDENTIFIER .
(component_list . 3)))
- ((default . error) (DOT_DOT . 1121))
+ ((default . error) (DOT_DOT . 1112))
((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 . 1120) (RIGHT_PAREN . 1119))
- ((default . error) (WITH . (real_range_specification_opt . 0))
(SEMICOLON . (real_range_specification_opt . 0)) (RANGE . 1116))
- ((default . error) (DIGITS . 1115) (WITH .
(real_range_specification_opt . 0)) (SEMICOLON . (real_range_specification_opt
. 0)) (RANGE . 1116))
+ ((default . error) (COMMA . 1111) (RIGHT_PAREN . 1110))
+ ((default . error) (WITH . (real_range_specification_opt . 0))
(SEMICOLON . (real_range_specification_opt . 0)) (RANGE . 1107))
+ ((default . error) (DIGITS . 1106) (WITH .
(real_range_specification_opt . 0)) (SEMICOLON . (real_range_specification_opt
. 0)) (RANGE . 1107))
((default . error) (NEW . ((abstract_limited_synchronized_opt . 1)
(abstract_limited_opt . 1))))
- ((default . error) (SEMICOLON . 1114))
- ((default . error) (NEW . 1112) (END . (declarative_part_opt . 0))
(PRIVATE . (declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 302) (PRAGMA .
7) (NOT . 4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2))
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt
. 2)) (FOR . 299) (IDENTIFIER . 305) (TYPE . 304) (GENERIC . 2) (PROTECTED
. 301) (TASK . 303) (PACKAGE . 300))
+ ((default . error) (SEMICOLON . 1105))
+ ((default . error) (NEW . 1103) (END . (declarative_part_opt . 0))
(PRIVATE . (declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 272) (PRAGMA .
7) (NOT . 4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2))
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt
. 2)) (FOR . 269) (IDENTIFIER . 275) (TYPE . 274) (GENERIC . 2) (PROTECTED
. 271) (TASK . 273) (PACKAGE . 270))
((default . error) (IDENTIFIER . (task_type_declaration . 2)) (USE .
(task_type_declaration . 2)) (TYPE . (task_type_declaration . 2)) (TASK .
(task_type_declaration . 2)) (SUBTYPE . (task_type_declaration . 2)) (PROTECTED
. (task_type_declaration . 2)) (PROCEDURE . (task_type_declaration . 2))
(PRAGMA . (task_type_declaration . 2)) (PACKAGE . (task_type_declaration . 2))
(OVERRIDING . (task_type_declaration . 2)) (NOT . (task_type_declaration . 2))
(GENERIC . (task_type_declaratio [...]
((default . error) (BEGIN . (single_task_declaration . 1)) (ENTRY .
(single_task_declaration . 1)) (FOR . (single_task_declaration . 1)) (FUNCTION
. (single_task_declaration . 1)) (GENERIC . (single_task_declaration . 1)) (NOT
. (single_task_declaration . 1)) (OVERRIDING . (single_task_declaration . 1))
(PACKAGE . (single_task_declaration . 1)) (PRAGMA . (single_task_declaration .
1)) (PROCEDURE . (single_task_declaration . 1)) (PROTECTED .
(single_task_declaration . 1)) (SUBTYPE . [...]
- ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
718))
- ((default . error) (END . (declarative_part_opt . 0)) (USE . 11)
(SUBTYPE . 302) (PRAGMA . 7) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(ENTRY . (overriding_indicator_opt . 2)) (FOR . 299) (IDENTIFIER . 305) (TYPE
. 304) (GENERIC . 2) (PROTECTED . 301) (TASK . 303) (PACKAGE . 300))
- ((default . error) (AND . 1080) (WITH . 1109))
+ ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
710))
+ ((default . error) (END . (declarative_part_opt . 0)) (USE . 11)
(SUBTYPE . 272) (PRAGMA . 7) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(ENTRY . (overriding_indicator_opt . 2)) (FOR . 269) (IDENTIFIER . 275) (TYPE
. 274) (GENERIC . 2) (PROTECTED . 271) (TASK . 273) (PACKAGE . 270))
+ ((default . error) (AND . 1071) (WITH . 1100))
((default . error) (IDENTIFIER . (subtype_declaration . 0)) (USE .
(subtype_declaration . 0)) (TYPE . (subtype_declaration . 0)) (TASK .
(subtype_declaration . 0)) (SUBTYPE . (subtype_declaration . 0)) (PROTECTED .
(subtype_declaration . 0)) (PROCEDURE . (subtype_declaration . 0)) (PRAGMA .
(subtype_declaration . 0)) (PACKAGE . (subtype_declaration . 0)) (OVERRIDING .
(subtype_declaration . 0)) (NOT . (subtype_declaration . 0)) (GENERIC .
(subtype_declaration . 0)) (FUNCTION . (sub [...]
- ((default . error) (SEMICOLON . 1108))
- ((default . error) (NEW . 1106) (END . (declarative_part_opt . 0))
(PRIVATE . (declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 302) (PRAGMA .
7) (NOT . 4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2))
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt
. 2)) (FOR . 299) (IDENTIFIER . 305) (TYPE . 304) (GENERIC . 2) (PROTECTED
. 301) (TASK . 303) (PACKAGE . 300))
+ ((default . error) (SEMICOLON . 1099))
+ ((default . error) (NEW . 1097) (END . (declarative_part_opt . 0))
(PRIVATE . (declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 272) (PRAGMA .
7) (NOT . 4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2))
(PROCEDURE . (overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt
. 2)) (FOR . 269) (IDENTIFIER . 275) (TYPE . 274) (GENERIC . 2) (PROTECTED
. 271) (TASK . 273) (PACKAGE . 270))
((default . error) (BEGIN . (single_protected_declaration . 1)) (ENTRY .
(single_protected_declaration . 1)) (FOR . (single_protected_declaration . 1))
(FUNCTION . (single_protected_declaration . 1)) (GENERIC .
(single_protected_declaration . 1)) (NOT . (single_protected_declaration . 1))
(OVERRIDING . (single_protected_declaration . 1)) (PACKAGE .
(single_protected_declaration . 1)) (PRAGMA . (single_protected_declaration .
1)) (PROCEDURE . (single_protected_declaration . 1)) (PRO [...]
- ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
718))
- ((default . error) (END . (declarative_part_opt . 0)) (USE . 11)
(SUBTYPE . 302) (PRAGMA . 7) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(ENTRY . (overriding_indicator_opt . 2)) (FOR . 299) (IDENTIFIER . 305) (TYPE
. 304) (GENERIC . 2) (PROTECTED . 301) (TASK . 303) (PACKAGE . 300))
- ((default . error) (AND . 1080) (WITH . 1103))
- ((default . error) (SEMICOLON . 1102))
+ ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
710))
+ ((default . error) (END . (declarative_part_opt . 0)) (USE . 11)
(SUBTYPE . 272) (PRAGMA . 7) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(ENTRY . (overriding_indicator_opt . 2)) (FOR . 269) (IDENTIFIER . 275) (TYPE
. 274) (GENERIC . 2) (PROTECTED . 271) (TASK . 273) (PACKAGE . 270))
+ ((default . error) (AND . 1071) (WITH . 1094))
+ ((default . error) (SEMICOLON . 1093))
((default . error) (WHEN . (at_clause . 0)) (BEGIN . (at_clause . 0))
(ENTRY . (at_clause . 0)) (FOR . (at_clause . 0)) (FUNCTION . (at_clause . 0))
(GENERIC . (at_clause . 0)) (NOT . (at_clause . 0)) (OVERRIDING . (at_clause .
0)) (PACKAGE . (at_clause . 0)) (PRAGMA . (at_clause . 0)) (PROCEDURE .
(at_clause . 0)) (PROTECTED . (at_clause . 0)) (SUBTYPE . (at_clause . 0))
(TASK . (at_clause . 0)) (TYPE . (at_clause . 0)) (USE . (at_clause . 0))
(IDENTIFIER . (at_clause . 0)) (CASE [...]
- ((default . error) (AT . 1101))
+ ((default . error) (AT . 1092))
((default . error) (END . (component_clause_list . 0)) (IDENTIFIER .
(component_clause_list . 0)))
- ((default . error) (END . 1099) (IDENTIFIER . 1067))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (END . 1090) (IDENTIFIER . 1058))
+ ((default . error) (SEMICOLON . (expression_opt . 0)) (RAISE . 153)
(PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156)
(NULL . 151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (LEFT_PAREN . 148))
((default . error) (RIGHT_PAREN . (discrete_subtype_definition_list .
1)) (COMMA . (discrete_subtype_definition_list . 1)))
- ((default . error) (ALIASED . 1092) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (ACCESS . (null_exclusion_opt
. 0)) (NOT . 885))
+ ((default . error) (ALIASED . 1083) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (ACCESS . (null_exclusion_opt
. 0)) (NOT . 875))
((default . error) (RIGHT_PAREN . (index_subtype_definition_list . 1))
(COMMA . (index_subtype_definition_list . 1)))
- ((default . error) (DOT . 90) (RANGE . 1096) (TICK . 91) (LEFT_PAREN
. 107))
- ((default . error) (ALIASED . 1092) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (ACCESS . (null_exclusion_opt
. 0)) (NOT . 885))
+ ((default . error) (DOT . 90) (RANGE . 1087) (TICK . 91) (LEFT_PAREN
. 107))
+ ((default . error) (ALIASED . 1083) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (ACCESS . (null_exclusion_opt
. 0)) (NOT . 875))
((default . error) (COMMA . (index_subtype_definition . 0)) (RIGHT_PAREN
. (index_subtype_definition . 0)))
- ((default . error) (NUMERIC_LITERAL . 155) (NULL . 1091) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (COMMA . 836) (RIGHT_PAREN . 1090))
+ ((default . error) (NUMERIC_LITERAL . 156) (NULL . 1082) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
+ ((default . error) (COMMA . 827) (RIGHT_PAREN . 1081))
((default . error) (BAR . (discrete_choice . 2)) (EQUAL_GREATER .
(discrete_choice . 2)) (RIGHT_PAREN . ((range_list . 0)
(discrete_subtype_definition . 1))) (COMMA . ((range_list . 0)
(discrete_subtype_definition . 1))))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (PRIVATE . 1088))
- ((default . error) (AND . 1080) (WITH . (and_interface_list_opt . 1))
(SEMICOLON . (and_interface_list_opt . 1)))
+ ((default . error) (PRIVATE . 1079))
+ ((default . error) (AND . 1071) (WITH . (and_interface_list_opt . 1))
(SEMICOLON . (and_interface_list_opt . 1)))
((default . error) (WITH . (formal_package_actual_part . 0)) (SEMICOLON
. (formal_package_actual_part . 0)))
((default . error) (PACKAGE . (formal_package_declaration . 0))
(PROCEDURE . (formal_package_declaration . 0)) (FUNCTION .
(formal_package_declaration . 0)) (PRAGMA . (formal_package_declaration . 0))
(TYPE . (formal_package_declaration . 0)) (USE . (formal_package_declaration .
0)) (WITH . (formal_package_declaration . 0)) (IDENTIFIER .
(formal_package_declaration . 0)))
((default . error) (PACKAGE . (formal_object_declaration . 0))
(PROCEDURE . (formal_object_declaration . 0)) (FUNCTION .
(formal_object_declaration . 0)) (PRAGMA . (formal_object_declaration . 0))
(TYPE . (formal_object_declaration . 0)) (USE . (formal_object_declaration .
0)) (WITH . (formal_object_declaration . 0)) (IDENTIFIER .
(formal_object_declaration . 0)))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (RIGHT_PAREN . (parameter_specification . 0))
(SEMICOLON . (parameter_specification . 0)))
+ ((default . error) (RIGHT_PAREN . (expression_opt . 0)) (SEMICOLON .
(expression_opt . 0)) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144)
(NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER .
48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (RIGHT_PAREN . (parameter_specification . 1))
(SEMICOLON . (parameter_specification . 1)))
((default . error) (WITH . (formal_derived_type_definition . 0))
(SEMICOLON . (formal_derived_type_definition . 0)))
((default . error) (DOT . 90) (TICK . 91) (WITH . (interface_list .
1)) (SEMICOLON . (interface_list . 1)) (AND . (interface_list . 1)) (LEFT_PAREN
. 107))
((default . error) (LOOP . (index_constraint . 0)) (DO .
(index_constraint . 0)) (RIGHT_PAREN . (index_constraint . 0)) (COMMA .
(index_constraint . 0)) (EQUAL_GREATER . (index_constraint . 0)) (COLON_EQUAL .
(index_constraint . 0)) (WITH . (index_constraint . 0)) (SEMICOLON .
(index_constraint . 0)) (AND . (index_constraint . 0)) (OF . (index_constraint
. 0)))
((default . error) (PLUS . (primary . 1)) (MINUS . (primary . 1))
(AMPERSAND . (primary . 1)) (DOT_DOT . (primary . 1)) (MOD . (primary . 1))
(REM . (primary . 1)) (SLASH . (primary . 1)) (STAR . (primary . 1)) (XOR .
(primary . 1)) (OR . (primary . 1)) (AND . (primary . 1)) (EQUAL_GREATER .
(primary . 1)) (BAR . (primary . 1)) (IN . (primary . 1)) (NOT . (primary . 1))
(EQUAL . (primary . 1)) (GREATER . (primary . 1)) (GREATER_EQUAL . (primary .
1)) (LESS . (primary . 1)) (LESS_EQ [...]
- ((default . error) (ACCESS . (null_exclusion_opt . 0)) (NOT . 885)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
+ ((default . error) (ACCESS . (null_exclusion_opt . 0)) (NOT . 875)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49))
((default . error) (WITH . (component_definition . 3)) (SEMICOLON .
(component_definition . 3)) (COLON_EQUAL . (component_definition . 3)))
((default . error) (WITH . (array_type_definition . 0)) (SEMICOLON .
(array_type_definition . 0)) (COLON_EQUAL . (array_type_definition . 0)))
((default . error) (WITH . (component_definition . 1)) (SEMICOLON .
(component_definition . 1)) (COLON_EQUAL . (component_definition . 1)))
- ((default . error) (BOX . 1076))
+ ((default . error) (BOX . 1067))
((default . error) (WITH . (array_type_definition . 1)) (SEMICOLON .
(array_type_definition . 1)) (COLON_EQUAL . (array_type_definition . 1)))
- ((default . error) (SEMICOLON . 1242))
- ((default . error) (RECORD . 1241))
+ ((default . error) (SEMICOLON . 1233))
+ ((default . error) (RECORD . 1232))
((default . error) (IDENTIFIER . (component_clause_list . 1)) (END .
(component_clause_list . 1)))
- ((default . error) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
((default . error) (PRIVATE . (package_body_stub . 0)) (END .
(package_body_stub . 0)) (BEGIN . (package_body_stub . 0)) (ENTRY .
(package_body_stub . 0)) (FOR . (package_body_stub . 0)) (FUNCTION .
(package_body_stub . 0)) (GENERIC . (package_body_stub . 0)) (NOT .
(package_body_stub . 0)) (OVERRIDING . (package_body_stub . 0)) (PACKAGE .
(package_body_stub . 0)) (PRAGMA . (package_body_stub . 0)) (PROCEDURE .
(package_body_stub . 0)) (PROTECTED . (package_body_stub . 0)) (SUBTYPE [...]
- ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE .
(declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 302) (PRAGMA . 7) (NOT .
4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE .
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .
299) (IDENTIFIER . 305) (TYPE . 304) (GENERIC . 2) (PROTECTED . 301) (TASK
. 303) (PACKAGE . 300))
- ((default . error) (END . 1238))
+ ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE .
(declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 272) (PRAGMA . 7) (NOT .
4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE .
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .
269) (IDENTIFIER . 275) (TYPE . 274) (GENERIC . 2) (PROTECTED . 271) (TASK
. 273) (PACKAGE . 270))
+ ((default . error) (END . 1229))
((default . error) (SEMICOLON . (protected_definition . 1)))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (SEMICOLON . 1236))
+ ((default . error) (SEMICOLON . 1227))
((default . error) (PRIVATE . (protected_body_stub . 0)) (END .
(protected_body_stub . 0)) (BEGIN . (protected_body_stub . 0)) (ENTRY .
(protected_body_stub . 0)) (FOR . (protected_body_stub . 0)) (FUNCTION .
(protected_body_stub . 0)) (GENERIC . (protected_body_stub . 0)) (NOT .
(protected_body_stub . 0)) (OVERRIDING . (protected_body_stub . 0)) (PACKAGE .
(protected_body_stub . 0)) (PRAGMA . (protected_body_stub . 0)) (PROCEDURE .
(protected_body_stub . 0)) (PROTECTED . (protecte [...]
- ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE .
(declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 302) (PRAGMA . 7) (NOT .
4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE .
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .
299) (IDENTIFIER . 305) (TYPE . 304) (GENERIC . 2) (PROTECTED . 301) (TASK
. 303) (PACKAGE . 300))
- ((default . error) (END . 1234))
+ ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE .
(declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 272) (PRAGMA . 7) (NOT .
4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE .
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .
269) (IDENTIFIER . 275) (TYPE . 274) (GENERIC . 2) (PROTECTED . 271) (TASK
. 273) (PACKAGE . 270))
+ ((default . error) (END . 1225))
((default . error) (SEMICOLON . (task_definition . 1)))
((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49))
- ((default . error) (SEMICOLON . 1232))
+ ((default . error) (SEMICOLON . 1223))
((default . error) (PRIVATE . (task_body_stub . 0)) (END .
(task_body_stub . 0)) (BEGIN . (task_body_stub . 0)) (ENTRY . (task_body_stub .
0)) (FOR . (task_body_stub . 0)) (FUNCTION . (task_body_stub . 0)) (GENERIC .
(task_body_stub . 0)) (NOT . (task_body_stub . 0)) (OVERRIDING .
(task_body_stub . 0)) (PACKAGE . (task_body_stub . 0)) (PRAGMA .
(task_body_stub . 0)) (PROCEDURE . (task_body_stub . 0)) (PROTECTED .
(task_body_stub . 0)) (SUBTYPE . (task_body_stub . 0)) (TASK . (task_ [...]
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (RANGE . (expression_opt . 0)) (WITH .
(expression_opt . 0)) (SEMICOLON . (expression_opt . 0)) (RAISE . 153) (PLUS .
155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL .
151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL
. 49) (LEFT_PAREN . 148))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
((default . error) (WITH . (type_definition . 4)) (SEMICOLON .
(type_definition . 4)))
((default . error) (WITH . (type_definition . 3)) (SEMICOLON .
(type_definition . 3)))
((default . error) (SEMICOLON . (enumeration_type_definition . 0)) (WITH
. (enumeration_type_definition . 0)))
- ((default . error) (IDENTIFIER . 1044) (CHARACTER_LITERAL . 1045))
- ((default . error) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
- ((default . error) (ALIASED . 1092) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (ACCESS . (null_exclusion_opt
. 0)) (NOT . 885))
- ((default . error) (RECORD . 1226))
+ ((default . error) (IDENTIFIER . 1035) (CHARACTER_LITERAL . 1036))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (ALIASED . 1083) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (ACCESS . (null_exclusion_opt
. 0)) (NOT . 875))
+ ((default . error) (RECORD . 1217))
((default . error) (WHEN . (component_list . 1)) (IDENTIFIER .
(component_list . 1)) (FOR . (component_list . 1)) (CASE . (component_list .
1)) (END . (component_list . 1)))
((default . error) (WHEN . (component_list . 2)) (IDENTIFIER .
(component_list . 2)) (FOR . (component_list . 2)) (CASE . (component_list .
2)) (END . (component_list . 2)))
((default . error) (WHEN . (component_list . 4)) (IDENTIFIER .
(component_list . 4)) (FOR . (component_list . 4)) (CASE . (component_list .
4)) (END . (component_list . 4)))
((default . error) (IS . (direct_name . 0)))
((default . error) (IS . (direct_name . 1)))
((default . error) (IS . (direct_name_opt . 1)))
- ((default . error) (IS . 1225))
- ((default . error) (WITH . (and_interface_list_opt . 0)) (AND . 821))
- ((default . error) (DOT . 90) (TICK . 91) (AND . 821) (WITH .
((constraint_opt . 0) (and_interface_list_opt . 0))) (SEMICOLON .
(constraint_opt . 0)) (RANGE . 904) (LEFT_PAREN . 829))
- ((default . error) (SEMICOLON . 1220))
+ ((default . error) (IS . 1216))
+ ((default . error) (WITH . (and_interface_list_opt . 0)) (AND . 812))
+ ((default . error) (DOT . 90) (TICK . 91) (AND . 812) (WITH .
((constraint_opt . 0) (and_interface_list_opt . 0))) (SEMICOLON .
(constraint_opt . 0)) (RANGE . 895) (LEFT_PAREN . 820))
+ ((default . error) (SEMICOLON . 1211))
((default . error) (END . (full_type_declaration . 0)) (PRIVATE .
(full_type_declaration . 0)) (IDENTIFIER . (full_type_declaration . 0)) (USE .
(full_type_declaration . 0)) (TYPE . (full_type_declaration . 0)) (TASK .
(full_type_declaration . 0)) (SUBTYPE . (full_type_declaration . 0)) (PROTECTED
. (full_type_declaration . 0)) (PROCEDURE . (full_type_declaration . 0))
(PRAGMA . (full_type_declaration . 0)) (PACKAGE . (full_type_declaration . 0))
(OVERRIDING . (full_type_declaratio [...]
((default . error) (END . (object_renaming_declaration . 2)) (PRIVATE .
(object_renaming_declaration . 2)) (IDENTIFIER . (object_renaming_declaration .
2)) (USE . (object_renaming_declaration . 2)) (TYPE .
(object_renaming_declaration . 2)) (TASK . (object_renaming_declaration . 2))
(SUBTYPE . (object_renaming_declaration . 2)) (PROTECTED .
(object_renaming_declaration . 2)) (PROCEDURE . (object_renaming_declaration .
2)) (PRAGMA . (object_renaming_declaration . 2)) (PACKAGE . (obj [...]
((default . error) (END . (object_renaming_declaration . 1)) (PRIVATE .
(object_renaming_declaration . 1)) (IDENTIFIER . (object_renaming_declaration .
1)) (USE . (object_renaming_declaration . 1)) (TYPE .
(object_renaming_declaration . 1)) (TASK . (object_renaming_declaration . 1))
(SUBTYPE . (object_renaming_declaration . 1)) (PROTECTED .
(object_renaming_declaration . 1)) (PROCEDURE . (object_renaming_declaration .
1)) (PRAGMA . (object_renaming_declaration . 1)) (PACKAGE . (obj [...]
- ((default . error) (SEMICOLON . 1219))
+ ((default . error) (SEMICOLON . 1210))
((default . error) (PRIVATE . (object_declaration . 3)) (END .
(object_declaration . 3)) (BEGIN . (object_declaration . 3)) (ENTRY .
(object_declaration . 3)) (FOR . (object_declaration . 3)) (FUNCTION .
(object_declaration . 3)) (GENERIC . (object_declaration . 3)) (NOT .
(object_declaration . 3)) (OVERRIDING . (object_declaration . 3)) (PACKAGE .
(object_declaration . 3)) (PRAGMA . (object_declaration . 3)) (PROCEDURE .
(object_declaration . 3)) (PROTECTED . (object_declaration . [...]
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
((default . error) (PRIVATE . (object_declaration . 5)) (END .
(object_declaration . 5)) (BEGIN . (object_declaration . 5)) (ENTRY .
(object_declaration . 5)) (FOR . (object_declaration . 5)) (FUNCTION .
(object_declaration . 5)) (GENERIC . (object_declaration . 5)) (NOT .
(object_declaration . 5)) (OVERRIDING . (object_declaration . 5)) (PACKAGE .
(object_declaration . 5)) (PRAGMA . (object_declaration . 5)) (PROCEDURE .
(object_declaration . 5)) (PROTECTED . (object_declaration . [...]
@@ -2963,197 +2954,197 @@
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
((default . error) (END . (package_body . 0)) (BEGIN . (package_body .
0)) (ENTRY . (package_body . 0)) (FOR . (package_body . 0)) (PROTECTED .
(package_body . 0)) (SUBTYPE . (package_body . 0)) (TASK . (package_body . 0))
(TYPE . (package_body . 0)) (IDENTIFIER . (package_body . 0)) (WITH .
(package_body . 0)) (USE . (package_body . 0)) (SEPARATE . (package_body . 0))
(PROCEDURE . (package_body . 0)) (PRIVATE . (package_body . 0)) (PRAGMA .
(package_body . 0)) (PACKAGE . (package_ [...]
- ((default . error) (ELSE . (elsif_expression_item . 0)) (ELSIF .
(elsif_expression_item . 0)) (RIGHT_PAREN . (elsif_expression_item . 0)) (COMMA
. (elsif_expression_item . 0)))
+ ((default . error) (ELSE . (elsif_expression_item . 0)) (ELSIF .
(elsif_expression_item . 0)) (RIGHT_PAREN . (elsif_expression_item . 0)))
((default . error) (DOT . 90) (TICK . 91) (LOOP .
(iterator_specification . 2)) (EQUAL_GREATER . (iterator_specification . 2))
(LEFT_PAREN . 107))
((default . error) (DO . (subtype_indication . 0)) (COLON_EQUAL .
(subtype_indication . 0)) (LOOP . (subtype_indication . 0)) (RIGHT_PAREN .
(subtype_indication . 0)) (COMMA . (subtype_indication . 0)) (EQUAL_GREATER .
(subtype_indication . 0)) (WITH . (subtype_indication . 0)) (AND .
(subtype_indication . 0)) (OF . (subtype_indication . 0)) (SEMICOLON .
(subtype_indication . 0)))
- ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
718))
+ ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
710))
((default . error) (PROCEDURE . (protected_operation_item_list . 1))
(OVERRIDING . (protected_operation_item_list . 1)) (NOT .
(protected_operation_item_list . 1)) (FUNCTION . (protected_operation_item_list
. 1)) (FOR . (protected_operation_item_list . 1)) (ENTRY .
(protected_operation_item_list . 1)) (END . (protected_operation_item_list .
1)))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (IS .
(aspect_specification_opt . 0)) (WITH . 109))
- ((default . error) (WHEN . (parameter_profile_opt . 0)) (LEFT_PAREN .
1211))
- ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt [...]
- ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt [...]
+ ((default . error) (WHEN . (parameter_profile_opt . 0)) (LEFT_PAREN .
1202))
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt [...]
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt [...]
((default . error) (THEN . (accept_statement . 1)) (WHEN .
(accept_statement . 1)) (EXCEPTION . (accept_statement . 1)) (ELSIF .
(accept_statement . 1)) (ELSE . (accept_statement . 1)) (OR . (accept_statement
. 1)) (END . (accept_statement . 1)) (ACCEPT . (accept_statement . 1)) (ABORT .
(accept_statement . 1)) (BEGIN . (accept_statement . 1)) (CASE .
(accept_statement . 1)) (DECLARE . (accept_statement . 1)) (DELAY .
(accept_statement . 1)) (EXIT . (accept_statement . 1)) (FOR . ( [...]
((default . error) (OR . (block_statement . 1)) (THEN . (block_statement
. 1)) (WHEN . (block_statement . 1)) (EXCEPTION . (block_statement . 1)) (END .
(block_statement . 1)) (LESS_LESS . (block_statement . 1)) (ACCEPT .
(block_statement . 1)) (ABORT . (block_statement . 1)) (BEGIN .
(block_statement . 1)) (CASE . (block_statement . 1)) (DECLARE .
(block_statement . 1)) (DELAY . (block_statement . 1)) (EXIT . (block_statement
. 1)) (FOR . (block_statement . 1)) (GOTO . (block_stat [...]
- ((default . error) (CASE . 1208))
+ ((default . error) (CASE . 1199))
((default . error) (WHEN . (case_statement_alternative_list . 1)) (END .
(case_statement_alternative_list . 1)))
- ((default . error) (BAR . 286) (EQUAL_GREATER . 1207))
- ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
718))
+ ((default . error) (BAR . 356) (EQUAL_GREATER . 1198))
+ ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
710))
((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)) (ACCEPT .
(exit_statement . 0)) (ABORT . (exit_statement . 0)) (BEGIN . (exit_statement .
0)) (CASE . (exit_statement . 0)) (DECLARE . (exit_statement . 0)) (DELAY .
(exit_statement . 0)) (EXIT . (exit_statement . 0)) (FOR . (exit_statement .
0)) (GOTO . (exit_statement . 0)) (IF [...]
- ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT .
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE .
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP .
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE .
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT .
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA .
(label_opt . 0)) (RAISE . (labe [...]
- ((default . error) (THEN . (expression_opt . 0)) (RAISE . 152) (PLUS .
154) (MINUS . 153) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL .
151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL
. 49) (LEFT_PAREN . 148))
- ((default . error) (IF . 1203))
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT .
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE .
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP .
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE .
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT .
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA .
(label_opt . 0)) (RAISE . (labe [...]
+ ((default . error) (THEN . (expression_opt . 0)) (RAISE . 153) (PLUS .
155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL .
151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL
. 49) (LEFT_PAREN . 148))
+ ((default . error) (IF . 1194))
((default . error) (END . (elsif_statement_list . 0)) (ELSE .
(elsif_statement_list . 0)) (ELSIF . (elsif_statement_list . 0)))
- ((default . error) (END . 1201) (ELSE . 1200) (ELSIF . 1163))
- ((default . error) (SEMICOLON . 1199))
+ ((default . error) (END . 1192) (ELSE . 1191) (ELSIF . 1154))
+ ((default . error) (SEMICOLON . 1190))
((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)) (ACCEPT .
(raise_statement . 1)) (ABORT . (raise_statement . 1)) (BEGIN .
(raise_statement . 1)) (CASE . (raise_statement . 1)) (DECLARE .
(raise_statement . 1)) (DELAY . (raise_statement . 1)) (EXIT . (raise_statement
. 1)) (FOR . (raise_statement . 1)) (GOTO . (raise_stat [...]
((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)) (ACCEPT . (requeue_statement . 0)) (ABORT .
(requeue_statement . 0)) (BEGIN . (requeue_statement . 0)) (CASE .
(requeue_statement . 0)) (DECLARE . (requeue_statement . 0)) (DELAY .
(requeue_statement . 0)) (EXIT . (requeue_statement . 0)) (FOR .
(requeue_stateme [...]
- ((default . error) (RETURN . 1198))
- ((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (ACCESS . (null_exclusion_opt . 0)) (NOT . 885))
- ((default . error) (END . 1194))
- ((default . error) (SELECT . 1193))
+ ((default . error) (RETURN . 1189))
+ ((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (ACCESS . (null_exclusion_opt . 0)) (NOT . 875))
+ ((default . error) (END . 1185))
+ ((default . error) (SELECT . 1184))
((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)) (ACCEPT . (selective_accept . 1)) (ABORT .
(selective_accept . 1)) (BEGIN . (selective_accept . 1)) (CASE .
(selective_accept . 1)) (DECLARE . (selective_accept . 1)) (DELAY .
(selective_accept . 1)) (EXIT . (selective_accept . 1)) (FOR .
(selective_accept . 1)) (GOTO [...]
- ((default . error) (SELECT . 1192))
+ ((default . error) (SELECT . 1183))
((default . error) (END . (delay_alternative . 0)) (OR .
(delay_alternative . 0)) (ELSE . (delay_alternative . 0)))
- ((default . error) (SELECT . 1191))
- ((default . error) (SEMICOLON . 1190))
- ((default . error) (ELSE . (sequence_of_statements_opt . 0)) (OR .
(sequence_of_statements_opt . 0)) (END . (sequence_of_statements_opt . 0))
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0))
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0))
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0))
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0))
(EXIT . (label_opt . 0)) (GOTO . ( [...]
+ ((default . error) (SELECT . 1182))
+ ((default . error) (SEMICOLON . 1181))
+ ((default . error) (ELSE . (sequence_of_statements_opt . 0)) (OR .
(sequence_of_statements_opt . 0)) (END . (sequence_of_statements_opt . 0))
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0))
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0))
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0))
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0))
(EXIT . (label_opt . 0)) (GOTO . ( [...]
((default . error) (END . (select_alternative . 2)) (OR .
(select_alternative . 2)) (ELSE . (select_alternative . 2)))
- ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
718))
- ((default . error) (OTHERS . 957) (IDENTIFIER . 48) (CHARACTER_LITERAL
. 50) (STRING_LITERAL . 49))
- ((default . error) (WHEN . (sequence_of_statements_opt . 0)) (END .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt . 0)) [...]
- ((default . error) (OTHERS . 957) (IDENTIFIER . 48) (CHARACTER_LITERAL
. 50) (STRING_LITERAL . 49))
- ((default . error) (BAR . 1182) (EQUAL_GREATER . 1286))
+ ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
710))
+ ((default . error) (OTHERS . 948) (IDENTIFIER . 48) (CHARACTER_LITERAL
. 50) (STRING_LITERAL . 49))
+ ((default . error) (WHEN . (sequence_of_statements_opt . 0)) (END .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt . 0)) [...]
+ ((default . error) (OTHERS . 948) (IDENTIFIER . 48) (CHARACTER_LITERAL
. 50) (STRING_LITERAL . 49))
+ ((default . error) (BAR . 1173) (EQUAL_GREATER . 1277))
((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 . 1285))
+ ((default . error) (SEMICOLON . 1276))
((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 . 1284))
- ((default . error) (SEMICOLON . 1283))
- ((default . error) (SEMICOLON . 1282))
- ((default . error) (SELECT . 1281))
+ ((default . error) (SEMICOLON . 1275))
+ ((default . error) (SEMICOLON . 1274))
+ ((default . error) (SEMICOLON . 1273))
+ ((default . error) (SELECT . 1272))
((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 . 1280))
+ ((default . error) (DO . (extended_return_object_declaration . 1))
(SEMICOLON . (extended_return_object_declaration . 1)) (COLON_EQUAL . 1271))
((default . error) (DO . (return_subtype_indication . 0)) (SEMICOLON .
(return_subtype_indication . 0)) (COLON_EQUAL . (return_subtype_indication .
0)))
- ((default . error) (SEMICOLON . 1279))
+ ((default . error) (SEMICOLON . 1270))
((default . error) (WHEN . (loop_statement . 1)) (THEN . (loop_statement
. 1)) (OR . (loop_statement . 1)) (ELSIF . (loop_statement . 1)) (ELSE .
(loop_statement . 1)) (CHARACTER_LITERAL . (loop_statement . 1))
(STRING_LITERAL . (loop_statement . 1)) (IDENTIFIER . (loop_statement . 1))
(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 . [...]
- ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT .
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE .
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP .
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE .
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT .
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA .
(label_opt . 0)) (RAISE . (labe [...]
- ((default . error) (IF . 1277))
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (ACCEPT .
(label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE .
(label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0)) (LOOP .
(label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE .
(label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT .
(label_opt . 0)) (GOTO . (label_opt . 0)) (NULL . (label_opt . 0)) (PRAGMA .
(label_opt . 0)) (RAISE . (labe [...]
+ ((default . error) (IF . 1268))
((default . error) (ELSIF . (elsif_statement_list . 1)) (ELSE .
(elsif_statement_list . 1)) (END . (elsif_statement_list . 1)))
- ((default . error) (SEMICOLON . 1276))
- ((default . error) (THEN . 1275))
- ((default . error) (END . 1274))
- ((default . error) (SEMICOLON . 1273))
- ((default . error) (END . (sequence_of_statements_opt . 0)) (WHEN .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt . 0)) [...]
- ((default . error) (SEMICOLON . 1271))
- ((default . error) (END . 1270))
- ((default . error) (END . 1269))
- ((default . error) (FOR . 1268) (IDENTIFIER . 77))
- ((default . error) (WHEN . 1267))
- ((default . error) (WHEN . (entry_body_formal_part . 1)))
- ((default . error) (SEMICOLON . 1266))
- ((default . error) (SEMICOLON . 1265))
+ ((default . error) (SEMICOLON . 1267))
+ ((default . error) (THEN . 1266))
+ ((default . error) (END . 1265))
((default . error) (SEMICOLON . 1264))
- ((default . error) (SEMICOLON . 1263))
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (WHEN .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt . 0)) [...]
((default . error) (SEMICOLON . 1262))
+ ((default . error) (END . 1261))
+ ((default . error) (END . 1260))
+ ((default . error) (FOR . 1259) (SEMICOLON . (parameter_specification .
0)) (RIGHT_PAREN . (parameter_specification . 0)) (IDENTIFIER . 77))
+ ((default . error) (WHEN . 1258))
+ ((default . error) (WHEN . (entry_body_formal_part . 1)))
+ ((default . error) (SEMICOLON . 1257))
+ ((default . error) (SEMICOLON . 1256))
+ ((default . error) (SEMICOLON . 1255))
+ ((default . error) (SEMICOLON . 1254))
+ ((default . error) (SEMICOLON . 1253))
((default . error) (BEGIN . (object_renaming_declaration . 0)) (ENTRY .
(object_renaming_declaration . 0)) (FOR . (object_renaming_declaration . 0))
(FUNCTION . (object_renaming_declaration . 0)) (GENERIC .
(object_renaming_declaration . 0)) (NOT . (object_renaming_declaration . 0))
(OVERRIDING . (object_renaming_declaration . 0)) (PACKAGE .
(object_renaming_declaration . 0)) (PRAGMA . (object_renaming_declaration . 0))
(PROCEDURE . (object_renaming_declaration . 0)) (PROTECTED . ( [...]
((default . error) (BEGIN . (private_type_declaration . 0)) (ENTRY .
(private_type_declaration . 0)) (FOR . (private_type_declaration . 0))
(FUNCTION . (private_type_declaration . 0)) (GENERIC .
(private_type_declaration . 0)) (NOT . (private_type_declaration . 0))
(OVERRIDING . (private_type_declaration . 0)) (PACKAGE .
(private_type_declaration . 0)) (PRAGMA . (private_type_declaration . 0))
(PROCEDURE . (private_type_declaration . 0)) (PROTECTED .
(private_type_declaration . 0)) [...]
- ((default . error) (WITH . 1261))
+ ((default . error) (WITH . 1252))
((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 . 1260))
- ((default . error) (WHEN . 1257))
+ ((default . error) (WITH . 1251))
+ ((default . error) (WHEN . 1248))
((default . error) (SEMICOLON . (record_definition . 0)) (WITH .
(record_definition . 0)))
- ((default . error) (COLON_EQUAL . 1255) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109))
+ ((default . error) (COLON_EQUAL . 1246) (SEMICOLON .
(aspect_specification_opt . 0)) (WITH . 109))
((default . error) (SEMICOLON . (type_definition . 1)) (WITH .
(type_definition . 1)))
((default . error) (RIGHT_PAREN . (enumeration_literal_list . 1)) (COMMA
. (enumeration_literal_list . 1)))
- ((default . error) (DOT_DOT . 1254))
- ((default . error) (WITH . (real_range_specification_opt . 0))
(SEMICOLON . (real_range_specification_opt . 0)) (RANGE . 1116))
+ ((default . error) (DOT_DOT . 1245))
+ ((default . error) (WITH . (real_range_specification_opt . 0))
(SEMICOLON . (real_range_specification_opt . 0)) (RANGE . 1107))
((default . error) (IDENTIFIER . (task_type_declaration . 1)) (USE .
(task_type_declaration . 1)) (TYPE . (task_type_declaration . 1)) (TASK .
(task_type_declaration . 1)) (SUBTYPE . (task_type_declaration . 1)) (PROTECTED
. (task_type_declaration . 1)) (PROCEDURE . (task_type_declaration . 1))
(PRAGMA . (task_type_declaration . 1)) (PACKAGE . (task_type_declaration . 1))
(OVERRIDING . (task_type_declaration . 1)) (NOT . (task_type_declaration . 1))
(GENERIC . (task_type_declaratio [...]
- ((default . error) (AND . 1080) (WITH . 1252))
- ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
718))
- ((default . error) (SEMICOLON . 1250))
+ ((default . error) (AND . 1071) (WITH . 1243))
+ ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
710))
+ ((default . error) (SEMICOLON . 1241))
((default . error) (IDENTIFIER . (protected_type_declaration . 1)) (USE
. (protected_type_declaration . 1)) (TYPE . (protected_type_declaration . 1))
(TASK . (protected_type_declaration . 1)) (SUBTYPE .
(protected_type_declaration . 1)) (PROTECTED . (protected_type_declaration .
1)) (PROCEDURE . (protected_type_declaration . 1)) (PRAGMA .
(protected_type_declaration . 1)) (PACKAGE . (protected_type_declaration . 1))
(OVERRIDING . (protected_type_declaration . 1)) (NOT . (protected_ [...]
- ((default . error) (AND . 1080) (WITH . 1249))
- ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
718))
- ((default . error) (SEMICOLON . 1247))
- ((default . error) (RANGE . 1246))
+ ((default . error) (AND . 1071) (WITH . 1240))
+ ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
710))
+ ((default . error) (SEMICOLON . 1238))
+ ((default . error) (RANGE . 1237))
((default . error) (SEMICOLON . (record_rep . 0)))
((default . error) (IDENTIFIER . (mod_clause_opt . 1)))
((default . error) (COLON_EQUAL . (component_definition . 2)) (SEMICOLON
. (component_definition . 2)) (WITH . (component_definition . 2)))
((default . error) (COLON_EQUAL . (component_definition . 0)) (SEMICOLON
. (component_definition . 0)) (WITH . (component_definition . 0)))
- ((default . error) (RIGHT_PAREN . (subtype_indication . 1)) (COMMA .
(subtype_indication . 1)) (DOT . 90) (TICK . 91) (BAR . (discrete_choice .
1)) (EQUAL_GREATER . (discrete_choice . 1)) (RANGE . 904) (LEFT_PAREN . 829))
- ((default . error) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (RIGHT_PAREN . (subtype_indication . 1)) (COMMA .
(subtype_indication . 1)) (DOT . 90) (TICK . 91) (BAR . (discrete_choice .
1)) (EQUAL_GREATER . (discrete_choice . 1)) (RANGE . 895) (LEFT_PAREN . 820))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
((default . error) (END . (single_protected_declaration . 0)) (PRIVATE .
(single_protected_declaration . 0)) (IDENTIFIER . (single_protected_declaration
. 0)) (USE . (single_protected_declaration . 0)) (TYPE .
(single_protected_declaration . 0)) (TASK . (single_protected_declaration . 0))
(SUBTYPE . (single_protected_declaration . 0)) (PROTECTED .
(single_protected_declaration . 0)) (PROCEDURE . (single_protected_declaration
. 0)) (PRAGMA . (single_protected_declaration . 0)) (PACK [...]
((default . error) (SEMICOLON . (protected_definition . 0)))
- ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE .
(declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 302) (PRAGMA . 7) (NOT .
4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE .
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .
299) (IDENTIFIER . 305) (TYPE . 304) (GENERIC . 2) (PROTECTED . 301) (TASK
. 303) (PACKAGE . 300))
+ ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE .
(declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 272) (PRAGMA . 7) (NOT .
4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE .
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .
269) (IDENTIFIER . 275) (TYPE . 274) (GENERIC . 2) (PROTECTED . 271) (TASK
. 273) (PACKAGE . 270))
((default . error) (END . (single_task_declaration . 0)) (PRIVATE .
(single_task_declaration . 0)) (IDENTIFIER . (single_task_declaration . 0))
(USE . (single_task_declaration . 0)) (TYPE . (single_task_declaration . 0))
(TASK . (single_task_declaration . 0)) (SUBTYPE . (single_task_declaration .
0)) (PROTECTED . (single_task_declaration . 0)) (PROCEDURE .
(single_task_declaration . 0)) (PRAGMA . (single_task_declaration . 0))
(PACKAGE . (single_task_declaration . 0)) (OVERRIDING . [...]
((default . error) (SEMICOLON . (task_definition . 0)))
- ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE .
(declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 302) (PRAGMA . 7) (NOT .
4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE .
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .
299) (IDENTIFIER . 305) (TYPE . 304) (GENERIC . 2) (PROTECTED . 301) (TASK
. 303) (PACKAGE . 300))
+ ((default . error) (END . (declarative_part_opt . 0)) (PRIVATE .
(declarative_part_opt . 0)) (USE . 11) (SUBTYPE . 272) (PRAGMA . 7) (NOT .
4) (OVERRIDING . 5) (FUNCTION . (overriding_indicator_opt . 2)) (PROCEDURE .
(overriding_indicator_opt . 2)) (ENTRY . (overriding_indicator_opt . 2)) (FOR .
269) (IDENTIFIER . 275) (TYPE . 274) (GENERIC . 2) (PROTECTED . 271) (TASK
. 273) (PACKAGE . 270))
((default . error) (WITH . (type_definition . 5)) (SEMICOLON .
(type_definition . 5)))
- ((default . error) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (SEMICOLON . 1303))
- ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (OTHERS . 182) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (PLUS . 154) (MINUS . 153)
(ABS . 144) (NOT . 181) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(LEFT_PAREN . 148))
- ((default . error) (END . 1300) (WHEN . 1257))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (WITH . (expression_opt . 0)) (SEMICOLON .
(expression_opt . 0)) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144)
(NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER .
48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (SEMICOLON . 1294))
+ ((default . error) (EQUAL_GREATER . (discrete_choice_list . 0)) (BAR .
(discrete_choice_list . 0)) (OTHERS . 152) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (PLUS . 155) (MINUS . 154)
(ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149)
(LEFT_PAREN . 148))
+ ((default . error) (END . 1291) (WHEN . 1248))
((default . error) (END . (variant_list . 0)) (WHEN . (variant_list .
0)))
- ((default . error) (PRIVATE . 1299))
- ((default . error) (RECORD . 868) (NULL . 866))
+ ((default . error) (PRIVATE . 1290))
+ ((default . error) (RECORD . 858) (NULL . 856))
((default . error) (PRIVATE . (object_declaration . 2)) (END .
(object_declaration . 2)) (BEGIN . (object_declaration . 2)) (ENTRY .
(object_declaration . 2)) (FOR . (object_declaration . 2)) (FUNCTION .
(object_declaration . 2)) (GENERIC . (object_declaration . 2)) (NOT .
(object_declaration . 2)) (OVERRIDING . (object_declaration . 2)) (PACKAGE .
(object_declaration . 2)) (PRAGMA . (object_declaration . 2)) (PROCEDURE .
(object_declaration . 2)) (PROTECTED . (object_declaration . [...]
((default . error) (PRIVATE . (object_declaration . 4)) (END .
(object_declaration . 4)) (BEGIN . (object_declaration . 4)) (ENTRY .
(object_declaration . 4)) (FOR . (object_declaration . 4)) (FUNCTION .
(object_declaration . 4)) (GENERIC . (object_declaration . 4)) (NOT .
(object_declaration . 4)) (OVERRIDING . (object_declaration . 4)) (PACKAGE .
(object_declaration . 4)) (PRAGMA . (object_declaration . 4)) (PROCEDURE .
(object_declaration . 4)) (PROTECTED . (object_declaration . [...]
((default . error) (PRIVATE . (object_declaration . 0)) (END .
(object_declaration . 0)) (BEGIN . (object_declaration . 0)) (ENTRY .
(object_declaration . 0)) (FOR . (object_declaration . 0)) (FUNCTION .
(object_declaration . 0)) (GENERIC . (object_declaration . 0)) (NOT .
(object_declaration . 0)) (OVERRIDING . (object_declaration . 0)) (PACKAGE .
(object_declaration . 0)) (PRAGMA . (object_declaration . 0)) (PROCEDURE .
(object_declaration . 0)) (PROTECTED . (object_declaration . [...]
((default . error) (PRIVATE . (entry_declaration . 0)) (END .
(entry_declaration . 0)) (BEGIN . (entry_declaration . 0)) (ENTRY .
(entry_declaration . 0)) (FOR . (entry_declaration . 0)) (FUNCTION .
(entry_declaration . 0)) (GENERIC . (entry_declaration . 0)) (NOT .
(entry_declaration . 0)) (OVERRIDING . (entry_declaration . 0)) (PACKAGE .
(entry_declaration . 0)) (PRAGMA . (entry_declaration . 0)) (PROCEDURE .
(entry_declaration . 0)) (PROTECTED . (entry_declaration . 0)) (SUBTYPE [...]
((default . error) (PRIVATE . (protected_body . 0)) (END .
(protected_body . 0)) (BEGIN . (protected_body . 0)) (ENTRY . (protected_body .
0)) (FOR . (protected_body . 0)) (FUNCTION . (protected_body . 0)) (GENERIC .
(protected_body . 0)) (NOT . (protected_body . 0)) (OVERRIDING .
(protected_body . 0)) (PACKAGE . (protected_body . 0)) (PRAGMA .
(protected_body . 0)) (PROCEDURE . (protected_body . 0)) (PROTECTED .
(protected_body . 0)) (SUBTYPE . (protected_body . 0)) (TASK . (prote [...]
- ((default . error) (IS . (expression_opt . 0)) (RAISE . 152) (PLUS .
154) (MINUS . 153) (ABS . 144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL .
151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL
. 49) (LEFT_PAREN . 148))
- ((default . error) (IDENTIFIER . 1296))
- ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
718))
- ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
718))
+ ((default . error) (IS . (expression_opt . 0)) (RAISE . 153) (PLUS .
155) (MINUS . 154) (ABS . 144) (NOT . 324) (NUMERIC_LITERAL . 156) (NULL .
151) (NEW . 149) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL
. 49) (LEFT_PAREN . 148))
+ ((default . error) (IDENTIFIER . 1287))
+ ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
710))
+ ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
710))
((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)) (ACCEPT .
(case_statement . 0)) (ABORT . (case_statement . 0)) (BEGIN . (case_statement .
0)) (CASE . (case_statement . 0)) (DECLARE . (case_statement . 0)) (DELAY .
(case_statement . 0)) (EXIT . (case_statement . 0)) (FOR . (case_statement .
0)) (GOTO . (case_statement . 0)) (IF [...]
((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)) (ACCEPT .
(block_statement . 0)) (ABORT . (block_statement . 0)) (BEGIN .
(block_statement . 0)) (CASE . (block_statement . 0)) (DECLARE .
(block_statement . 0)) (DELAY . (block_statement . 0)) (EXIT . (block_statement
. 0)) (FOR . (block_statement . 0)) (GOTO . (block_stat [...]
- ((default . error) (IF . 1293))
- ((default . error) (ELSE . (sequence_of_statements_opt . 0)) (ELSIF .
(sequence_of_statements_opt . 0)) (END . (sequence_of_statements_opt . 0))
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0))
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0))
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0))
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0))
(EXIT . (label_opt . 0)) (GOTO [...]
+ ((default . error) (IF . 1284))
+ ((default . error) (ELSE . (sequence_of_statements_opt . 0)) (ELSIF .
(sequence_of_statements_opt . 0)) (END . (sequence_of_statements_opt . 0))
(ACCEPT . (label_opt . 0)) (BEGIN . (label_opt . 0)) (CASE . (label_opt . 0))
(DECLARE . (label_opt . 0)) (FOR . (label_opt . 0)) (IF . (label_opt . 0))
(LOOP . (label_opt . 0)) (RETURN . (label_opt . 0)) (SELECT . (label_opt . 0))
(WHILE . (label_opt . 0)) (ABORT . (label_opt . 0)) (DELAY . (label_opt . 0))
(EXIT . (label_opt . 0)) (GOTO [...]
((default . error) (OR . (if_statement . 3)) (THEN . (if_statement . 3))
(WHEN . (if_statement . 3)) (EXCEPTION . (if_statement . 3)) (END .
(if_statement . 3)) (LESS_LESS . (if_statement . 3)) (ACCEPT . (if_statement .
3)) (ABORT . (if_statement . 3)) (BEGIN . (if_statement . 3)) (CASE .
(if_statement . 3)) (DECLARE . (if_statement . 3)) (DELAY . (if_statement . 3))
(EXIT . (if_statement . 3)) (FOR . (if_statement . 3)) (GOTO . (if_statement .
3)) (IF . (if_statement . 3)) (LOOP . [...]
- ((default . error) (SEMICOLON . 1291))
- ((default . error) (END . 1290))
+ ((default . error) (SEMICOLON . 1282))
+ ((default . error) (END . 1281))
((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)) (ACCEPT .
(extended_return_statement . 0)) (ABORT . (extended_return_statement . 0))
(BEGIN . (extended_return_statement . 0)) (CASE . (extended_return_statement .
0)) (DECLARE . (extended_return_statement . 0)) (D [...]
- ((default . error) (RAISE . 152) (PLUS . 154) (MINUS . 153) (ABS .
144) (NOT . 150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149)
(IDENTIFIER . 48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN
. 148))
- ((default . error) (SEMICOLON . 1288))
+ ((default . error) (DO . (expression_opt . 0)) (SEMICOLON .
(expression_opt . 0)) (RAISE . 153) (PLUS . 155) (MINUS . 154) (ABS . 144)
(NOT . 324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER .
48) (CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (SEMICOLON . 1279))
((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)) (ACCEPT . (selective_accept . 0)) (ABORT .
(selective_accept . 0)) (BEGIN . (selective_accept . 0)) (CASE .
(selective_accept . 0)) (DECLARE . (selective_accept . 0)) (DELAY .
(selective_accept . 0)) (EXIT . (selective_accept . 0)) (FOR .
(selective_accept . 0)) (GOTO [...]
((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)) (ACCEPT . (conditional_entry_call . 0)) (ABORT
. (conditional_entry_call . 0)) (BEGIN . (conditional_entry_call . 0)) (CASE .
(conditional_entry_call . 0)) (DECLARE . (conditional_entry_call . 0)) (DELAY .
(conditional_entry_call . [...]
((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)) (ACCEPT . (timed_entry_call . 0)) (ABORT .
(timed_entry_call . 0)) (BEGIN . (timed_entry_call . 0)) (CASE .
(timed_entry_call . 0)) (DECLARE . (timed_entry_call . 0)) (DELAY .
(timed_entry_call . 0)) (EXIT . (timed_entry_call . 0)) (FOR .
(timed_entry_call . 0)) (GOTO [...]
((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)) (ACCEPT .
(loop_statement . 0)) (ABORT . (loop_statement . 0)) (BEGIN . (loop_statement .
0)) (CASE . (loop_statement . 0)) (DECLARE . (loop_statement . 0)) (DELAY .
(loop_statement . 0)) (EXIT . (loop_statement . 0)) (FOR . (loop_statement .
0)) (GOTO . (loop_statement . 0)) (IF [...]
- ((default . error) (WHEN . (sequence_of_statements_opt . 0)) (END .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt . 0)) [...]
+ ((default . error) (WHEN . (sequence_of_statements_opt . 0)) (END .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt . 0)) [...]
((default . error) (WHEN . (exception_handler . 0)) (END .
(exception_handler . 0)))
((default . error) (WHEN . (asynchronous_select . 0)) (THEN .
(asynchronous_select . 0)) (OR . (asynchronous_select . 0)) (ELSIF .
(asynchronous_select . 0)) (ELSE . (asynchronous_select . 0))
(CHARACTER_LITERAL . (asynchronous_select . 0)) (STRING_LITERAL .
(asynchronous_select . 0)) (IDENTIFIER . (asynchronous_select . 0)) (WHILE .
(asynchronous_select . 0)) (SELECT . (asynchronous_select . 0)) (RETURN .
(asynchronous_select . 0)) (REQUEUE . (asynchronous_select . 0)) (RAISE . (a
[...]
((default . error) (DO . (extended_return_object_declaration . 0))
(SEMICOLON . (extended_return_object_declaration . 0)))
- ((default . error) (IF . 1321))
+ ((default . error) (IF . 1312))
((default . error) (WHEN . (if_statement . 1)) (THEN . (if_statement .
1)) (OR . (if_statement . 1)) (ELSIF . (if_statement . 1)) (ELSE .
(if_statement . 1)) (CHARACTER_LITERAL . (if_statement . 1)) (STRING_LITERAL .
(if_statement . 1)) (IDENTIFIER . (if_statement . 1)) (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 . [...]
((default . error) (ELSE . (elsif_statement_item . 0)) (ELSIF .
(elsif_statement_item . 0)) (END . (elsif_statement_item . 0)))
- ((default . error) (SEMICOLON . 1320))
- ((default . error) (SEMICOLON . 1319))
- ((default . error) (SEMICOLON . 1318))
- ((default . error) (IN . 1317))
- ((default . error) (IS . 1316))
+ ((default . error) (SEMICOLON . 1311))
+ ((default . error) (SEMICOLON . 1310))
+ ((default . error) (SEMICOLON . 1309))
+ ((default . error) (IN . 1308))
+ ((default . error) (IS . 1307))
((default . error) (WITH . (derived_type_definition . 0)) (SEMICOLON .
(derived_type_definition . 0)))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
- ((default . error) (CASE . 1314))
+ ((default . error) (CASE . 1305))
((default . error) (WHEN . (variant_list . 1)) (END . (variant_list .
1)))
- ((default . error) (BAR . 286) (EQUAL_GREATER . 1313))
+ ((default . error) (BAR . 356) (EQUAL_GREATER . 1304))
((default . error) (WHEN . (component_declaration . 1)) (END .
(component_declaration . 1)) (CASE . (component_declaration . 1)) (FOR .
(component_declaration . 1)) (IDENTIFIER . (component_declaration . 1)))
((default . error) (SEMICOLON . (aspect_specification_opt . 0)) (WITH .
109))
((default . error) (SEMICOLON . (real_range_specification_opt . 1))
(WITH . (real_range_specification_opt . 1)))
- ((default . error) (SEMICOLON . 1311))
- ((default . error) (SEMICOLON . 1310))
- ((default . error) (DOT_DOT . 1309))
- ((default . error) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT .
150) (NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
+ ((default . error) (SEMICOLON . 1302))
+ ((default . error) (SEMICOLON . 1301))
+ ((default . error) (DOT_DOT . 1300))
+ ((default . error) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT .
324) (NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (IDENTIFIER . 48)
(CHARACTER_LITERAL . 50) (STRING_LITERAL . 49) (LEFT_PAREN . 148))
((default . error) (PRIVATE . (protected_type_declaration . 0)) (END .
(protected_type_declaration . 0)) (BEGIN . (protected_type_declaration . 0))
(ENTRY . (protected_type_declaration . 0)) (FOR . (protected_type_declaration .
0)) (FUNCTION . (protected_type_declaration . 0)) (GENERIC .
(protected_type_declaration . 0)) (NOT . (protected_type_declaration . 0))
(OVERRIDING . (protected_type_declaration . 0)) (PACKAGE .
(protected_type_declaration . 0)) (PRAGMA . (protected_type_dec [...]
((default . error) (PRIVATE . (task_type_declaration . 0)) (END .
(task_type_declaration . 0)) (BEGIN . (task_type_declaration . 0)) (ENTRY .
(task_type_declaration . 0)) (FOR . (task_type_declaration . 0)) (FUNCTION .
(task_type_declaration . 0)) (GENERIC . (task_type_declaration . 0)) (NOT .
(task_type_declaration . 0)) (OVERRIDING . (task_type_declaration . 0))
(PACKAGE . (task_type_declaration . 0)) (PRAGMA . (task_type_declaration . 0))
(PROCEDURE . (task_type_declaration . 0) [...]
- ((default . error) (SEMICOLON . 1328))
- ((default . error) (END . (component_list_opt . 0)) (WHEN .
(component_list_opt . 0)) (NULL . 1033) (CASE . 1032) (IDENTIFIER . 77) (FOR
. 299))
- ((default . error) (SEMICOLON . 1326))
- ((default . error) (SEMICOLON . 1325))
- ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE . 11)
(SUBTYPE . 302) (PRAGMA . 7) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(ENTRY . (overriding_indicator_opt . 2)) (FOR . 299) (IDENTIFIER . 305) (TYPE
. 304) (GENERIC . 2) (PROTECTED . 301) (TASK . 303) (PACKAGE . 300))
- ((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (PLUS . 154) (MINUS . 153) (ABS . 144) (NOT . 736)
(NUMERIC_LITERAL . 155) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
+ ((default . error) (SEMICOLON . 1319))
+ ((default . error) (END . (component_list_opt . 0)) (WHEN .
(component_list_opt . 0)) (NULL . 1024) (CASE . 1023) (IDENTIFIER . 77) (FOR
. 269))
+ ((default . error) (SEMICOLON . 1317))
+ ((default . error) (SEMICOLON . 1316))
+ ((default . error) (BEGIN . (declarative_part_opt . 0)) (USE . 11)
(SUBTYPE . 272) (PRAGMA . 7) (NOT . 4) (OVERRIDING . 5) (FUNCTION .
(overriding_indicator_opt . 2)) (PROCEDURE . (overriding_indicator_opt . 2))
(ENTRY . (overriding_indicator_opt . 2)) (FOR . 269) (IDENTIFIER . 275) (TYPE
. 274) (GENERIC . 2) (PROTECTED . 271) (TASK . 273) (PACKAGE . 270))
+ ((default . error) (IDENTIFIER . 48) (CHARACTER_LITERAL . 50)
(STRING_LITERAL . 49) (PLUS . 155) (MINUS . 154) (ABS . 144) (NOT . 728)
(NUMERIC_LITERAL . 156) (NULL . 151) (NEW . 149) (LEFT_PAREN . 148))
((default . error) (PRIVATE . (task_body . 0)) (END . (task_body . 0))
(BEGIN . (task_body . 0)) (ENTRY . (task_body . 0)) (FOR . (task_body . 0))
(FUNCTION . (task_body . 0)) (GENERIC . (task_body . 0)) (NOT . (task_body .
0)) (OVERRIDING . (task_body . 0)) (PACKAGE . (task_body . 0)) (PRAGMA .
(task_body . 0)) (PROCEDURE . (task_body . 0)) (PROTECTED . (task_body . 0))
(SUBTYPE . (task_body . 0)) (TASK . (task_body . 0)) (TYPE . (task_body . 0))
(USE . (task_body . 0)) (IDENTIFIE [...]
((default . error) (THEN . (accept_statement . 0)) (WHEN .
(accept_statement . 0)) (EXCEPTION . (accept_statement . 0)) (ELSIF .
(accept_statement . 0)) (ELSE . (accept_statement . 0)) (OR . (accept_statement
. 0)) (END . (accept_statement . 0)) (ACCEPT . (accept_statement . 0)) (ABORT .
(accept_statement . 0)) (BEGIN . (accept_statement . 0)) (CASE .
(accept_statement . 0)) (DECLARE . (accept_statement . 0)) (DELAY .
(accept_statement . 0)) (EXIT . (accept_statement . 0)) (FOR . ( [...]
((default . error) (OR . (if_statement . 2)) (THEN . (if_statement . 2))
(WHEN . (if_statement . 2)) (EXCEPTION . (if_statement . 2)) (END .
(if_statement . 2)) (LESS_LESS . (if_statement . 2)) (ACCEPT . (if_statement .
2)) (ABORT . (if_statement . 2)) (BEGIN . (if_statement . 2)) (CASE .
(if_statement . 2)) (DECLARE . (if_statement . 2)) (DELAY . (if_statement . 2))
(EXIT . (if_statement . 2)) (FOR . (if_statement . 2)) (GOTO . (if_statement .
2)) (IF . (if_statement . 2)) (LOOP . [...]
- ((default . error) (SEMICOLON . 1322))
+ ((default . error) (SEMICOLON . 1313))
((default . error) (WHEN . (if_statement . 0)) (THEN . (if_statement .
0)) (OR . (if_statement . 0)) (ELSIF . (if_statement . 0)) (ELSE .
(if_statement . 0)) (CHARACTER_LITERAL . (if_statement . 0)) (STRING_LITERAL .
(if_statement . 0)) (IDENTIFIER . (if_statement . 0)) (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 . [...]
- ((default . error) (RIGHT_PAREN . 1332))
- ((default . error) (BEGIN . 1331))
+ ((default . error) (RIGHT_PAREN . 1323))
+ ((default . error) (BEGIN . 1322))
((default . error) (BEGIN . (private_extension_declaration . 0)) (ENTRY
. (private_extension_declaration . 0)) (FOR . (private_extension_declaration .
0)) (FUNCTION . (private_extension_declaration . 0)) (GENERIC .
(private_extension_declaration . 0)) (NOT . (private_extension_declaration .
0)) (OVERRIDING . (private_extension_declaration . 0)) (PACKAGE .
(private_extension_declaration . 0)) (PRAGMA . (private_extension_declaration .
0)) (PROCEDURE . (private_extension_declaration [...]
((default . error) (WHEN . (variant_part . 0)) (END . (variant_part .
0)) (CASE . (variant_part . 0)) (FOR . (variant_part . 0)) (IDENTIFIER .
(variant_part . 0)))
((default . error) (END . (variant . 0)) (WHEN . (variant . 0)))
((default . error) (WHEN . (component_declaration . 0)) (END .
(component_declaration . 0)) (CASE . (component_declaration . 0)) (FOR .
(component_declaration . 0)) (IDENTIFIER . (component_declaration . 0)))
- ((default . error) (SEMICOLON . 1330))
+ ((default . error) (SEMICOLON . 1321))
((default . error) (END . (component_clause . 0)) (IDENTIFIER .
(component_clause . 0)))
- ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt [...]
- ((default . error) (WHEN . (parameter_profile_opt . 0)) (LEFT_PAREN .
810))
+ ((default . error) (END . (sequence_of_statements_opt . 0)) (EXCEPTION .
(sequence_of_statements_opt . 0)) (ACCEPT . (label_opt . 0)) (BEGIN .
(label_opt . 0)) (CASE . (label_opt . 0)) (DECLARE . (label_opt . 0)) (FOR .
(label_opt . 0)) (IF . (label_opt . 0)) (LOOP . (label_opt . 0)) (RETURN .
(label_opt . 0)) (SELECT . (label_opt . 0)) (WHILE . (label_opt . 0)) (ABORT .
(label_opt . 0)) (DELAY . (label_opt . 0)) (EXIT . (label_opt . 0)) (GOTO .
(label_opt . 0)) (NULL . (label_opt [...]
+ ((default . error) (WHEN . (parameter_profile_opt . 0)) (LEFT_PAREN .
801))
((default . error) (WHEN . (entry_body_formal_part . 0)))
- ((default . error) (END . 1335))
- ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
718))
- ((default . error) (SEMICOLON . 1337))
+ ((default . error) (END . 1326))
+ ((default . error) (SEMICOLON . (identifier_opt . 0)) (IDENTIFIER .
710))
+ ((default . error) (SEMICOLON . 1328))
((default . error) (PROCEDURE . (entry_body . 0)) (OVERRIDING .
(entry_body . 0)) (NOT . (entry_body . 0)) (FUNCTION . (entry_body . 0)) (FOR .
(entry_body . 0)) (ENTRY . (entry_body . 0)) (END . (entry_body . 0)))]
[((compilation_unit . 13)(compilation_unit_list . 14)(context_item .
15)(function_specification . 16)(generic_declaration . 17)(generic_formal_part
. 18)(generic_instantiation . 19)(generic_package_declaration .
20)(generic_renaming_declaration . 21)(generic_subprogram_declaration .
22)(library_item . 23)(library_unit_declaration .
24)(library_unit_renaming_declaration . 25)(overriding_indicator_opt .
26)(package_body . 27)(package_declaration . 28)(package_renaming_declaration .
29 [...]
((attribute_reference . 51)(name . 87)(qualified_expression .
54)(selected_component . 55))
@@ -3243,31 +3234,31 @@
nil
nil
((actual_parameter_part . 92)(formal_part .
93)(parameter_and_result_profile . 94))
- ((aggregate . 157)(association_opt . 184)(association_list .
201)(attribute_reference . 51)(case_expression . 158)(choice_expression .
186)(choice_relation_and_list . 187)(choice_relation_or_list .
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list .
190)(choice_relation_or_else_list . 191)(choice_relation .
192)(conditional_quantified_expression . 202)(discrete_choice .
193)(discrete_choice_list . 194)(expression . 195)(expression_opt . 196)(factor
. 161)(identifie [...]
- ((access_definition . 233)(null_exclusion_opt . 234))
+ ((aggregate . 158)(association_opt . 159)(association_list .
195)(attribute_reference . 51)(case_expression . 161)(choice_expression .
162)(choice_relation_and_list . 163)(choice_relation_or_list .
164)(choice_relation_xor_list . 165)(choice_relation_and_then_list .
166)(choice_relation_or_else_list . 167)(choice_relation .
168)(conditional_quantified_expression . 196)(discrete_choice .
170)(discrete_choice_list . 171)(expression . 172)(expression_opt . 173)(factor
. 174)(identifie [...]
+ ((access_definition . 227)(null_exclusion_opt . 228))
nil
- ((aggregate . 225)(attribute_reference . 51)(attribute_designator .
226)(name . 227)(qualified_expression . 54)(selected_component . 55))
+ ((aggregate . 219)(attribute_reference . 51)(attribute_designator .
220)(name . 221)(qualified_expression . 54)(selected_component . 55))
nil
nil
nil
- ((mode_opt . 219))
+ ((mode_opt . 213))
nil
nil
- ((attribute_reference . 51)(name . 215)(qualified_expression .
54)(selected_component . 55))
- ((aspect_specification_opt . 214))
- ((discriminant_part_opt . 212))
+ ((attribute_reference . 51)(name . 209)(qualified_expression .
54)(selected_component . 55))
+ ((aspect_specification_opt . 208))
+ ((discriminant_part_opt . 206))
((actual_parameter_part . 92))
((actual_parameter_part . 92))
((actual_parameter_part . 92))
nil
- ((attribute_reference . 51)(name_list . 206)(name .
53)(qualified_expression . 54)(selected_component . 55))
+ ((attribute_reference . 51)(name_list . 200)(name .
53)(qualified_expression . 54)(selected_component . 55))
nil
- ((aggregate . 157)(association_opt . 184)(association_list .
201)(attribute_reference . 51)(case_expression . 158)(choice_expression .
186)(choice_relation_and_list . 187)(choice_relation_or_list .
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list .
190)(choice_relation_or_else_list . 191)(choice_relation .
192)(conditional_quantified_expression . 202)(discrete_choice .
193)(discrete_choice_list . 194)(expression . 195)(expression_opt . 196)(factor
. 161)(if_expres [...]
- ((attribute_reference . 51)(name . 200)(qualified_expression .
54)(selected_component . 55))
- ((aggregate . 157)(association_opt . 184)(association_list .
185)(attribute_reference . 51)(choice_expression .
186)(choice_relation_and_list . 187)(choice_relation_or_list .
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list .
190)(choice_relation_or_else_list . 191)(choice_relation . 192)(discrete_choice
. 193)(discrete_choice_list . 194)(expression . 195)(expression_opt .
196)(factor . 161)(name . 197)(primary . 166)(qualified_expression .
54)(raise_expression . [...]
+ ((aggregate . 158)(association_opt . 159)(association_list .
195)(attribute_reference . 51)(case_expression . 161)(choice_expression .
162)(choice_relation_and_list . 163)(choice_relation_or_list .
164)(choice_relation_xor_list . 165)(choice_relation_and_then_list .
166)(choice_relation_or_else_list . 167)(choice_relation .
168)(conditional_quantified_expression . 196)(discrete_choice .
170)(discrete_choice_list . 171)(expression . 172)(expression_opt . 173)(factor
. 174)(if_expres [...]
+ ((attribute_reference . 51)(name . 194)(qualified_expression .
54)(selected_component . 55))
+ ((aggregate . 158)(association_opt . 159)(association_list .
193)(attribute_reference . 51)(choice_expression .
162)(choice_relation_and_list . 163)(choice_relation_or_list .
164)(choice_relation_xor_list . 165)(choice_relation_and_then_list .
166)(choice_relation_or_else_list . 167)(choice_relation . 168)(discrete_choice
. 170)(discrete_choice_list . 171)(expression . 172)(expression_opt .
173)(factor . 174)(name . 176)(primary . 177)(qualified_expression .
54)(raise_expression . [...]
nil
- ((actual_parameter_part . 92)(aspect_specification_opt . 179))
- ((aggregate . 157)(attribute_reference . 51)(case_expression .
158)(conditional_quantified_expression . 159)(expression . 160)(factor .
161)(if_expression . 162)(name . 163)(pragma_argument_association .
164)(pragma_argument_association_list . 165)(primary .
166)(qualified_expression . 54)(quantified_expression . 167)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation [...]
+ ((actual_parameter_part . 92)(aspect_specification_opt . 191))
+ ((aggregate . 158)(association_opt . 159)(association_list .
160)(attribute_reference . 51)(case_expression . 161)(choice_expression .
162)(choice_relation_and_list . 163)(choice_relation_or_list .
164)(choice_relation_xor_list . 165)(choice_relation_and_then_list .
166)(choice_relation_or_else_list . 167)(choice_relation .
168)(conditional_quantified_expression . 169)(discrete_choice .
170)(discrete_choice_list . 171)(expression . 172)(expression_opt . 173)(factor
. 174)(if_expres [...]
nil
((aspect_specification_opt . 143))
nil
@@ -3289,26 +3280,26 @@
((actual_parameter_part . 92)(formal_part .
93)(parameter_and_result_profile . 94))
nil
nil
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 397)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(gen [...]
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 391)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(gen [...]
nil
- ((actual_parameter_part . 92)(aspect_specification_opt . 396))
+ ((actual_parameter_part . 92)(aspect_specification_opt . 390))
nil
nil
nil
((actual_parameter_part . 92))
- ((function_specification . 16)(overriding_indicator_opt .
393)(package_body . 328)(procedure_specification . 32)(proper_body .
394)(protected_body . 336)(subprogram_body . 343)(task_body . 348))
+ ((function_specification . 16)(overriding_indicator_opt .
387)(package_body . 298)(procedure_specification . 32)(proper_body .
388)(protected_body . 306)(subprogram_body . 313)(task_body . 318))
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(name . 163)(primary .
389)(qualified_expression . 54)(selected_component . 55))
- ((aggregate . 157)(attribute_reference . 51)(expression . 388)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((quantifier . 387))
- ((aggregate . 157)(attribute_reference . 51)(expression . 384)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aggregate . 157)(association_opt . 184)(association_list .
381)(attribute_reference . 51)(case_expression . 158)(choice_expression .
186)(choice_relation_and_list . 187)(choice_relation_or_list .
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list .
190)(choice_relation_or_else_list . 191)(choice_relation .
192)(conditional_quantified_expression . 382)(discrete_choice .
193)(discrete_choice_list . 194)(expression . 383)(expression_opt . 196)(factor
. 161)(if_expres [...]
- ((attribute_reference . 51)(name . 379)(qualified_expression .
54)(selected_component . 55))
- ((aggregate . 157)(attribute_reference . 51)(name . 163)(primary .
298)(qualified_expression . 54)(selected_component . 55))
+ ((aggregate . 158)(attribute_reference . 51)(name . 325)(primary .
383)(qualified_expression . 54)(selected_component . 55))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 382)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((quantifier . 381))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 377)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((aggregate . 158)(association_opt . 159)(association_list .
374)(attribute_reference . 51)(case_expression . 161)(choice_expression .
162)(choice_relation_and_list . 163)(choice_relation_or_list .
164)(choice_relation_xor_list . 165)(choice_relation_and_then_list .
166)(choice_relation_or_else_list . 167)(choice_relation .
168)(conditional_quantified_expression . 375)(discrete_choice .
170)(discrete_choice_list . 171)(expression . 172)(expression_opt . 376)(factor
. 174)(if_expres [...]
+ ((attribute_reference . 51)(name . 372)(qualified_expression .
54)(selected_component . 55))
+ ((aggregate . 158)(attribute_reference . 51)(name . 325)(primary .
371)(qualified_expression . 54)(selected_component . 55))
nil
- ((attribute_reference . 51)(name . 378)(qualified_expression .
54)(selected_component . 55))
nil
+ ((attribute_reference . 51)(name . 369)(qualified_expression .
54)(selected_component . 55))
nil
nil
nil
@@ -3318,9 +3309,6 @@
nil
nil
nil
- ((actual_parameter_part . 92))
- nil
- nil
nil
nil
nil
@@ -3330,16 +3318,11 @@
nil
nil
nil
- ((relational_operator . 364))
- ((multiplying_operator . 363))
- ((binary_adding_operator . 358))
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(selected_component . 55)(term .
176)(term_list . 354))
nil
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 313)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(gen [...]
- ((aggregate . 157)(attribute_reference . 51)(name . 163)(primary .
298)(qualified_expression . 54)(selected_component . 55))
nil
nil
nil
+ ((actual_parameter_part . 92))
nil
nil
nil
@@ -3350,32 +3333,34 @@
nil
nil
nil
+ ((relational_operator . 345))
+ ((multiplying_operator . 335))
+ ((binary_adding_operator . 330))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(selected_component . 55)(term .
188)(term_list . 326))
nil
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 283)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(gen [...]
nil
- ((actual_parameter_part . 92))
+ ((actual_parameter_part . 92)(aspect_specification_opt . 268))
nil
- ((relational_operator . 284))
- ((actual_parameter_part . 92)(aspect_specification_opt . 274))
nil
nil
nil
+ ((attribute_reference . 51)(name . 262)(qualified_expression .
54)(selected_component . 55))
nil
- ((attribute_reference . 51)(name . 268)(qualified_expression .
54)(selected_component . 55))
nil
- nil
- ((attribute_reference . 51)(name . 266)(qualified_expression .
54)(selected_component . 55))
- ((attribute_reference . 51)(name . 265)(qualified_expression .
54)(selected_component . 55))
- ((attribute_reference . 51)(name . 264)(qualified_expression .
54)(selected_component . 55))
- ((discriminant_specification_opt . 261)(discriminant_specification_list
. 262)(identifier_list . 263))
- ((aspect_specification_opt . 259))
- ((attribute_reference . 51)(name . 256)(qualified_expression .
54)(selected_component . 55)(subprogram_default . 257))
+ ((attribute_reference . 51)(name . 260)(qualified_expression .
54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 259)(qualified_expression .
54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 258)(qualified_expression .
54)(selected_component . 55))
+ ((discriminant_specification_opt . 255)(discriminant_specification_list
. 256)(identifier_list . 257))
+ ((aspect_specification_opt . 253))
+ ((attribute_reference . 51)(name . 250)(qualified_expression .
54)(selected_component . 55)(subprogram_default . 251))
nil
((actual_parameter_part . 92))
nil
nil
nil
- ((access_definition . 248)(null_exclusion_opt . 249))
- ((access_definition . 246)(null_exclusion_opt . 247))
+ ((access_definition . 242)(null_exclusion_opt . 243))
+ ((access_definition . 240)(null_exclusion_opt . 241))
nil
nil
nil
@@ -3389,75 +3374,61 @@
nil
nil
nil
- ((attribute_reference . 51)(name . 243)(name_opt .
244)(qualified_expression . 54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 237)(name_opt .
238)(qualified_expression . 54)(selected_component . 55))
nil
nil
nil
nil
nil
- ((identifier_list . 236)(parameter_specification . 533))
- ((aliased_opt . 532))
- ((general_access_modifier_opt . 529)(protected_opt . 530))
+ ((identifier_list . 230)(parameter_specification . 525))
+ ((aliased_opt . 524))
+ ((general_access_modifier_opt . 521)(protected_opt . 522))
((actual_parameter_part . 92))
nil
nil
nil
- ((attribute_reference . 51)(name . 243)(name_opt .
525)(qualified_expression . 54)(selected_component . 55))
- ((aspect_specification_opt . 524))
- ((attribute_reference . 51)(name . 522)(qualified_expression .
54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 237)(name_opt .
517)(qualified_expression . 54)(selected_component . 55))
+ ((aspect_specification_opt . 516))
+ ((attribute_reference . 51)(name . 514)(qualified_expression .
54)(selected_component . 55))
nil
nil
nil
- ((aspect_specification_opt . 519)(attribute_reference . 51)(name .
256)(qualified_expression . 54)(selected_component . 55)(subprogram_default .
520))
+ ((aspect_specification_opt . 511)(attribute_reference . 51)(name .
250)(qualified_expression . 54)(selected_component . 55)(subprogram_default .
512))
nil
nil
((actual_parameter_part . 92))
- ((aspect_specification_opt . 518))
- ((abstract_limited_synchronized_opt . 510)(abstract_tagged_limited_opt .
511)(access_definition . 512)(array_type_definition .
513)(formal_type_definition . 514)(formal_derived_type_definition .
515)(interface_type_definition . 516)(null_exclusion_opt . 517))
- nil
+ ((aspect_specification_opt . 510))
+ ((abstract_limited_synchronized_opt . 502)(abstract_tagged_limited_opt .
503)(access_definition . 504)(array_type_definition .
505)(formal_type_definition . 506)(formal_derived_type_definition .
507)(interface_type_definition . 508)(null_exclusion_opt . 509))
nil
nil
nil
nil
- ((actual_parameter_part . 92)(aspect_specification_opt . 491))
- ((actual_parameter_part . 92)(aspect_specification_opt . 490))
- ((actual_parameter_part . 92)(aspect_specification_opt . 489))
nil
- ((actual_parameter_part . 92)(aspect_specification_opt . 488))
+ ((actual_parameter_part . 92)(aspect_specification_opt . 483))
+ ((actual_parameter_part . 92)(aspect_specification_opt . 482))
+ ((actual_parameter_part . 92)(aspect_specification_opt . 481))
nil
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
197)(primary . 166)(qualified_expression . 54)(range . 486)(selected_component
. 55)(simple_expression . 487)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((actual_parameter_part . 92)(aspect_specification_opt . 480))
nil
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
176)(primary . 177)(qualified_expression . 54)(range . 478)(selected_component
. 55)(simple_expression . 479)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((aggregate . 157)(association_opt . 485)(attribute_reference .
51)(choice_expression . 186)(choice_relation_and_list .
187)(choice_relation_or_list . 188)(choice_relation_xor_list .
189)(choice_relation_and_then_list . 190)(choice_relation_or_else_list .
191)(choice_relation . 192)(discrete_choice . 193)(discrete_choice_list .
194)(expression . 195)(expression_opt . 196)(factor . 161)(name . 197)(primary
. 166)(qualified_expression . 54)(raise_expression . 168)(range . 198)(relati
[...]
nil
- ((aggregate . 157)(attribute_reference . 51)(factor .
161)(membership_choice_list . 480)(membership_choice . 481)(name . 197)(primary
. 166)(qualified_expression . 54)(range . 482)(selected_component .
55)(simple_expression . 483)(term . 176)(term_list . 177)(unary_adding_operator
. 178))
+ ((aggregate . 158)(association_opt . 477)(attribute_reference .
51)(choice_expression . 162)(choice_relation_and_list .
163)(choice_relation_or_list . 164)(choice_relation_xor_list .
165)(choice_relation_and_then_list . 166)(choice_relation_or_else_list .
167)(choice_relation . 168)(discrete_choice . 170)(discrete_choice_list .
171)(expression . 172)(expression_opt . 173)(factor . 174)(name . 176)(primary
. 177)(qualified_expression . 54)(raise_expression . 179)(range . 180)(relati
[...]
nil
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(selected_component .
55)(simple_expression . 478)(term . 176)(term_list . 177)(unary_adding_operator
. 178))
+ ((attribute_reference . 473)(direct_name . 474)(name .
475)(qualified_expression . 54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 68)(qualified_expression .
54)(selected_component . 55))
nil
nil
nil
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(selected_component .
55)(simple_expression . 477)(term . 176)(term_list . 177)(unary_adding_operator
. 178))
- ((aggregate . 225)(attribute_reference . 51)(attribute_designator .
226)(name . 227)(qualified_expression . 54)(selected_component . 55))
- ((aggregate . 157)(attribute_reference . 51)(choice_expression .
186)(choice_relation_and_list . 187)(choice_relation_or_list .
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list .
190)(choice_relation_or_else_list . 191)(choice_relation . 192)(discrete_choice
. 474)(factor . 161)(name . 197)(primary . 166)(qualified_expression .
54)(range . 198)(selected_component . 55)(simple_expression . 475)(term .
176)(term_list . 177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(expression . 473)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(choice_relation .
471)(factor . 161)(name . 163)(primary . 166)(qualified_expression .
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(choice_relation .
469)(factor . 161)(name . 163)(primary . 166)(qualified_expression .
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(choice_relation .
467)(factor . 161)(name . 163)(primary . 166)(qualified_expression .
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list .
177)(unary_adding_operator . 178))
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(choice_relation .
464)(factor . 161)(name . 163)(primary . 166)(qualified_expression .
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(choice_relation .
463)(factor . 161)(name . 163)(primary . 166)(qualified_expression .
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(choice_relation .
461)(factor . 161)(name . 163)(primary . 166)(qualified_expression .
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(expression . 460)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((attribute_reference . 51)(name . 458)(qualified_expression .
54)(selected_component . 55))
nil
- ((attribute_reference . 455)(direct_name . 456)(name .
457)(qualified_expression . 54)(selected_component . 55))
- ((attribute_reference . 51)(name . 68)(qualified_expression .
54)(selected_component . 55))
nil
nil
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 460)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(generic_renaming_declaration .
291)(generic_subprog [...]
nil
nil
nil
@@ -3467,12 +3438,12 @@
nil
nil
nil
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 442)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(generic_renaming_declaration .
321)(generic_subprog [...]
nil
nil
nil
nil
nil
+ ((function_specification . 454)(procedure_specification .
455)(subprogram_specification . 456))
nil
nil
nil
@@ -3482,7 +3453,6 @@
nil
nil
nil
- ((function_specification . 436)(procedure_specification .
437)(subprogram_specification . 438))
nil
nil
nil
@@ -3499,146 +3469,159 @@
nil
nil
nil
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 452)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(gen [...]
+ ((aggregate . 158)(attribute_reference . 51)(name . 325)(primary .
371)(qualified_expression . 54)(selected_component . 55))
+ ((actual_parameter_part . 92))
+ ((binary_adding_operator . 330))
nil
nil
nil
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(selected_component . 55)(term .
451))
nil
nil
nil
nil
+ ((aggregate . 158)(attribute_reference . 51)(factor . 450)(name .
325)(primary . 177)(qualified_expression . 54)(selected_component . 55))
+ ((aggregate . 158)(attribute_reference . 51)(factor .
174)(membership_choice_list . 446)(membership_choice . 447)(name . 176)(primary
. 177)(qualified_expression . 54)(range . 448)(selected_component .
55)(simple_expression . 449)(term . 188)(term_list . 189)(unary_adding_operator
. 190))
nil
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(selected_component .
55)(simple_expression . 444)(term . 188)(term_list . 189)(unary_adding_operator
. 190))
nil
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 434)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(gen [...]
- ((binary_adding_operator . 358))
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(selected_component . 55)(term .
433))
nil
nil
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(selected_component .
55)(simple_expression . 443)(term . 188)(term_list . 189)(unary_adding_operator
. 190))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(raise_expression . 179)(relation
. 442)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list
. 189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(raise_expression . 179)(relation
. 440)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list
. 189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(raise_expression . 179)(relation
. 438)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list
. 189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(raise_expression . 179)(relation
. 437)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list
. 189)(unary_adding_operator . 190))
nil
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(raise_expression . 179)(relation
. 435)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list
. 189)(unary_adding_operator . 190))
nil
- ((aggregate . 157)(attribute_reference . 51)(factor . 432)(name .
163)(primary . 166)(qualified_expression . 54)(selected_component . 55))
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(selected_component .
55)(simple_expression . 431)(term . 176)(term_list . 177)(unary_adding_operator
. 178))
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation
. 430)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list
. 177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation
. 428)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list
. 177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation
. 426)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list
. 177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation
. 425)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list
. 177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(raise_expression . 179)(relation
. 433)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list
. 189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(name . 325)(primary .
432)(qualified_expression . 54)(selected_component . 55))
+ ((aggregate . 219)(attribute_reference . 51)(attribute_designator .
220)(name . 221)(qualified_expression . 54)(selected_component . 55))
+ ((aggregate . 158)(attribute_reference . 51)(choice_expression .
162)(choice_relation_and_list . 163)(choice_relation_or_list .
164)(choice_relation_xor_list . 165)(choice_relation_and_then_list .
166)(choice_relation_or_else_list . 167)(choice_relation . 168)(discrete_choice
. 429)(factor . 174)(name . 176)(primary . 177)(qualified_expression .
54)(range . 180)(selected_component . 55)(simple_expression . 430)(term .
188)(term_list . 189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 428)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation
. 423)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list
. 177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(choice_relation .
425)(factor . 174)(name . 325)(primary . 177)(qualified_expression .
54)(selected_component . 55)(simple_expression . 416)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(choice_relation .
423)(factor . 174)(name . 325)(primary . 177)(qualified_expression .
54)(selected_component . 55)(simple_expression . 416)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(choice_relation .
421)(factor . 174)(name . 325)(primary . 177)(qualified_expression .
54)(selected_component . 55)(simple_expression . 416)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation
. 421)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list
. 177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(name . 163)(primary .
420)(qualified_expression . 54)(selected_component . 55))
nil
- ((aggregate . 157)(attribute_reference . 51)(case_expression .
158)(conditional_quantified_expression . 159)(expression . 160)(factor .
161)(if_expression . 162)(name . 163)(pragma_argument_association .
418)(primary . 166)(qualified_expression . 54)(quantified_expression .
167)(raise_expression . 168)(relation_and_list . 169)(relation_and_then_list .
170)(relation_or_list . 171)(relation_or_else_list . 172)(relation_xor_list .
173)(relation . 174)(selected_component . 55)(simple_e [...]
- ((aggregate . 157)(attribute_reference . 51)(expression . 417)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(choice_relation .
418)(factor . 174)(name . 325)(primary . 177)(qualified_expression .
54)(selected_component . 55)(simple_expression . 416)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(choice_relation .
417)(factor . 174)(name . 325)(primary . 177)(qualified_expression .
54)(selected_component . 55)(simple_expression . 416)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(choice_relation .
415)(factor . 174)(name . 325)(primary . 177)(qualified_expression .
54)(selected_component . 55)(simple_expression . 416)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 413)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
((actual_parameter_part . 92))
- ((actual_parameter_part . 92))
- nil
- nil
+ ((attribute_reference . 51)(name . 410)(qualified_expression .
54)(selected_component . 55))
nil
+ ((actual_parameter_part . 92))
nil
nil
nil
nil
- ((iterator_specification . 409))
nil
+ ((relational_operator . 404))
nil
nil
+ ((iterator_specification . 403))
nil
nil
- ((function_specification . 16)(procedure_specification .
32)(subprogram_specification . 404))
nil
nil
nil
+ ((function_specification . 16)(procedure_specification .
32)(subprogram_specification . 398))
nil
- ((attribute_reference . 51)(name . 401)(qualified_expression .
54)(selected_component . 55))
- ((attribute_reference . 51)(name . 400)(qualified_expression .
54)(selected_component . 55))
- ((actual_parameter_part . 92)(aspect_specification_opt . 677))
- ((actual_parameter_part . 92)(aspect_specification_opt . 676))
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(handled_sequence_of_statements . 659)(if_statement . 660)(iteration_scheme
. 661)(label_opt . 662)(loop_statement . 663)(name . 664)(pragma .
665)(procedure_call_statement . 666)(qualified_expression . 54)(ra [...]
nil
- ((aspect_specification_opt . 629))
nil
nil
- ((case_expression_alternative . 625)(case_expression_alternative_list .
626))
+ ((attribute_reference . 51)(name . 395)(qualified_expression .
54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 394)(qualified_expression .
54)(selected_component . 55))
+ ((actual_parameter_part . 92)(aspect_specification_opt . 669))
+ ((actual_parameter_part . 92)(aspect_specification_opt . 668))
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(handled_sequence_of_statements . 651)(if_statement . 652)(iteration_scheme
. 653)(label_opt . 654)(loop_statement . 655)(name . 656)(pragma .
657)(procedure_call_statement . 658)(qualified_expression . 54)(ra [...]
nil
+ ((aspect_specification_opt . 621))
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 619)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aggregate . 157)(association_opt . 184)(association_list .
618)(attribute_reference . 51)(choice_expression .
186)(choice_relation_and_list . 187)(choice_relation_or_list .
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list .
190)(choice_relation_or_else_list . 191)(choice_relation . 192)(discrete_choice
. 193)(discrete_choice_list . 194)(expression . 195)(expression_opt .
196)(factor . 161)(name . 197)(primary . 166)(qualified_expression .
54)(raise_expression . [...]
nil
+ ((case_expression_alternative . 617)(case_expression_alternative_list .
618))
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 615)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(selected_component .
55)(simple_expression . 611)(term . 188)(term_list . 189)(unary_adding_operator
. 190))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 610)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((aggregate . 158)(association_opt . 159)(association_list .
609)(attribute_reference . 51)(choice_expression .
162)(choice_relation_and_list . 163)(choice_relation_or_list .
164)(choice_relation_xor_list . 165)(choice_relation_and_then_list .
166)(choice_relation_or_else_list . 167)(choice_relation . 168)(discrete_choice
. 170)(discrete_choice_list . 171)(expression . 172)(expression_opt .
173)(factor . 174)(name . 176)(primary . 177)(qualified_expression .
54)(raise_expression . [...]
nil
nil
nil
+ ((actual_parameter_part . 92))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 606)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation
. 613)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list
. 177)(unary_adding_operator . 178))
nil
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation
. 612)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list
. 177)(unary_adding_operator . 178))
+ ((relational_operator . 601))
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation
. 611)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list
. 177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(choice_relation .
605)(factor . 174)(name . 325)(primary . 177)(qualified_expression .
54)(selected_component . 55)(simple_expression . 416)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(choice_relation .
604)(factor . 174)(name . 325)(primary . 177)(qualified_expression .
54)(selected_component . 55)(simple_expression . 416)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(raise_expression . 168)(relation
. 610)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list
. 177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(choice_relation .
603)(factor . 174)(name . 325)(primary . 177)(qualified_expression .
54)(selected_component . 55)(simple_expression . 416)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
+ ((aggregate . 158)(attribute_reference . 51)(choice_relation .
602)(factor . 174)(name . 325)(primary . 177)(qualified_expression .
54)(selected_component . 55)(simple_expression . 416)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
- ((multiplying_operator . 363))
nil
nil
nil
+ ((relational_operator . 601))
nil
- ((aspect_specification_opt . 129))
- ((aliased_opt . 603))
- ((attribute_reference . 51)(name . 243)(name_opt .
600)(qualified_expression . 54)(selected_component . 55))
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 599)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(gen [...]
nil
- ((access_definition . 597)(null_exclusion_opt . 598))
- ((discriminant_part_opt . 595))
nil
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(raise_expression . 179)(relation
. 599)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list
. 189)(unary_adding_operator . 190))
nil
- ((aspect_specification_opt . 592))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(raise_expression . 179)(relation
. 598)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list
. 189)(unary_adding_operator . 190))
nil
nil
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(raise_expression . 179)(relation
. 597)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list
. 189)(unary_adding_operator . 190))
nil
- ((aspect_specification_opt . 588))
- ((attribute_reference . 51)(name . 587)(qualified_expression .
54)(selected_component . 55))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(raise_expression . 179)(relation
. 596)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list
. 189)(unary_adding_operator . 190))
nil
nil
nil
+ ((aggregate . 158)(attribute_reference . 51)(factor .
174)(membership_choice_list . 595)(membership_choice . 447)(name . 176)(primary
. 177)(qualified_expression . 54)(range . 448)(selected_component .
55)(simple_expression . 449)(term . 188)(term_list . 189)(unary_adding_operator
. 190))
nil
- ((actual_parameter_part . 92))
- ((actual_parameter_part . 92))
nil
nil
nil
- ((relational_operator . 579))
nil
+ ((multiplying_operator . 335))
nil
- ((aggregate . 157)(attribute_reference . 51)(choice_relation .
583)(factor . 161)(name . 163)(primary . 166)(qualified_expression .
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(choice_relation .
582)(factor . 161)(name . 163)(primary . 166)(qualified_expression .
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list .
177)(unary_adding_operator . 178))
nil
- ((aggregate . 157)(attribute_reference . 51)(choice_relation .
581)(factor . 161)(name . 163)(primary . 166)(qualified_expression .
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list .
177)(unary_adding_operator . 178))
nil
- ((aggregate . 157)(attribute_reference . 51)(choice_relation .
580)(factor . 161)(name . 163)(primary . 166)(qualified_expression .
54)(selected_component . 55)(simple_expression . 462)(term . 176)(term_list .
177)(unary_adding_operator . 178))
nil
+ ((aspect_specification_opt . 129))
+ ((aliased_opt . 587))
+ ((attribute_reference . 51)(name . 237)(name_opt .
584)(qualified_expression . 54)(selected_component . 55))
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 583)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(gen [...]
nil
+ ((access_definition . 581)(null_exclusion_opt . 582))
+ ((discriminant_part_opt . 579))
nil
nil
- ((relational_operator . 579))
+ ((aspect_specification_opt . 576))
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(factor .
161)(membership_choice_list . 577)(membership_choice . 481)(name . 197)(primary
. 166)(qualified_expression . 54)(range . 482)(selected_component .
55)(simple_expression . 483)(term . 176)(term_list . 177)(unary_adding_operator
. 178))
+ ((aspect_specification_opt . 572))
+ ((attribute_reference . 51)(name . 571)(qualified_expression .
54)(selected_component . 55))
nil
nil
nil
nil
+ ((actual_parameter_part . 92))
nil
nil
nil
@@ -3647,9 +3630,9 @@
nil
nil
nil
- ((access_definition . 568)(attribute_reference . 51)(name .
569)(null_exclusion_opt . 517)(null_exclusion_opt_name_type .
570)(qualified_expression . 54)(selected_component . 571))
+ ((access_definition . 560)(attribute_reference . 51)(name .
561)(null_exclusion_opt . 509)(null_exclusion_opt_name_type .
562)(qualified_expression . 54)(selected_component . 563))
nil
- ((discriminant_specification_opt . 565)(identifier_list . 263))
+ ((discriminant_specification_opt . 557)(identifier_list . 257))
nil
nil
nil
@@ -3663,48 +3646,48 @@
nil
nil
nil
- ((aspect_specification_opt . 552))
+ ((aspect_specification_opt . 544))
nil
nil
nil
nil
nil
- ((aspect_specification_opt . 547))
+ ((aspect_specification_opt . 539))
nil
nil
nil
nil
nil
- ((aspect_specification_opt . 544))
- ((attribute_reference . 51)(name . 543)(qualified_expression .
54)(selected_component . 55))
- ((actual_parameter_part . 92)(aspect_specification_opt . 542))
- ((aggregate . 157)(attribute_reference . 51)(expression . 540)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aspect_specification_opt . 536))
+ ((attribute_reference . 51)(name . 535)(qualified_expression .
54)(selected_component . 55))
+ ((actual_parameter_part . 92)(aspect_specification_opt . 534))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 532)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
nil
nil
nil
- ((attribute_reference . 51)(name . 538)(qualified_expression .
54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 530)(qualified_expression .
54)(selected_component . 55))
nil
nil
- ((access_definition . 534)(mode_opt . 535)(null_exclusion_opt . 517))
+ ((access_definition . 526)(mode_opt . 527)(null_exclusion_opt . 509))
nil
nil
- ((null_exclusion_opt . 813))
- ((formal_part . 93)(parameter_and_result_profile . 812))
- ((formal_part . 117)(parameter_profile_opt . 811))
+ ((null_exclusion_opt . 804))
+ ((formal_part . 93)(parameter_and_result_profile . 803))
+ ((formal_part . 117)(parameter_profile_opt . 802))
((actual_parameter_part . 92))
nil
- ((aspect_specification_opt . 809))
- ((aggregate . 157)(attribute_reference . 51)(expression . 808)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aspect_specification_opt . 800))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 799)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((actual_parameter_part . 92)(formal_package_actual_part . 806))
+ ((actual_parameter_part . 92)(formal_package_actual_part . 797))
nil
nil
nil
nil
nil
- ((attribute_reference . 51)(name . 802)(qualified_expression .
54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 793)(qualified_expression .
54)(selected_component . 55))
nil
nil
nil
@@ -3716,7 +3699,7 @@
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(discrete_subtype_definition
. 790)(discrete_subtype_definition_list . 791)(factor .
161)(index_subtype_definition . 792)(index_subtype_definition_list . 793)(name
. 794)(primary . 166)(qualified_expression . 54)(range .
740)(selected_component . 55)(simple_expression . 487)(subtype_indication .
741)(term . 176)(term_list . 177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(discrete_subtype_definition
. 781)(discrete_subtype_definition_list . 782)(factor .
174)(index_subtype_definition . 783)(index_subtype_definition_list . 784)(name
. 785)(primary . 177)(qualified_expression . 54)(range .
732)(selected_component . 55)(simple_expression . 479)(subtype_indication .
733)(term . 188)(term_list . 189)(unary_adding_operator . 190))
nil
nil
nil
@@ -3731,77 +3714,77 @@
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(factor .
161)(membership_choice . 785)(name . 197)(primary . 166)(qualified_expression .
54)(range . 482)(selected_component . 55)(simple_expression . 483)(term .
176)(term_list . 177)(unary_adding_operator . 178))
+ ((aggregate . 775)(record_rep . 776))
+ nil
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 772)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((actual_parameter_part . 92)(aspect_specification_opt . 191))
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 784)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(selected_component .
55)(simple_expression . 783)(term . 176)(term_list . 177)(unary_adding_operator
. 178))
+ ((discriminant_part_opt . 769))
+ ((aspect_specification_opt . 720))
+ ((attribute_reference . 51)(name . 724)(qualified_expression .
54)(selected_component . 55)(subtype_indication . 767))
nil
+ ((discriminant_part_opt . 764))
+ ((aspect_specification_opt . 719))
nil
nil
nil
- ((aggregate . 781)(record_rep . 782))
+ ((attribute_reference . 51)(name . 758)(qualified_expression .
54)(selected_component . 55))
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 778)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((actual_parameter_part . 92)(aspect_specification_opt . 179))
nil
- ((discriminant_part_opt . 775))
- ((aspect_specification_opt . 728))
- ((attribute_reference . 51)(name . 732)(qualified_expression .
54)(selected_component . 55)(subtype_indication . 773))
nil
- ((discriminant_part_opt . 770))
- ((aspect_specification_opt . 727))
nil
+ ((constant_opt . 754))
nil
nil
- ((attribute_reference . 51)(name . 764)(qualified_expression .
54)(selected_component . 55))
+ ((paren_expression . 749))
+ ((formal_part . 117)(parameter_profile_opt . 747))
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(handled_sequence_of_statements . 745)(if_statement . 652)(iteration_scheme
. 653)(label_opt . 654)(loop_statement . 655)(name . 656)(pragma .
657)(procedure_call_statement . 658)(qualified_expression . 54)(ra [...]
+ ((attribute_reference . 51)(name . 237)(name_opt .
744)(qualified_expression . 54)(selected_component . 55))
+ ((aggregate . 158)(attribute_reference . 51)(factor .
174)(membership_choice . 743)(name . 176)(primary . 177)(qualified_expression .
54)(range . 448)(selected_component . 55)(simple_expression . 449)(term .
188)(term_list . 189)(unary_adding_operator . 190))
nil
nil
nil
nil
- ((constant_opt . 760))
nil
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 742)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(selected_component .
55)(simple_expression . 741)(term . 188)(term_list . 189)(unary_adding_operator
. 190))
nil
- ((paren_expression . 755))
- ((formal_part . 117)(parameter_profile_opt . 753))
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(handled_sequence_of_statements . 751)(if_statement . 660)(iteration_scheme
. 661)(label_opt . 662)(loop_statement . 663)(name . 664)(pragma .
665)(procedure_call_statement . 666)(qualified_expression . 54)(ra [...]
- ((attribute_reference . 51)(name . 243)(name_opt .
750)(qualified_expression . 54)(selected_component . 55))
nil
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 749)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
nil
nil
nil
+ ((elsif_expression_item . 737)(elsif_expression_list . 738))
nil
- ((elsif_expression_item . 745)(elsif_expression_list . 746))
- ((aggregate . 157)(attribute_reference . 51)(expression . 742)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(discrete_subtype_definition
. 738)(factor . 161)(name . 739)(primary . 166)(qualified_expression .
54)(range . 740)(selected_component . 55)(simple_expression .
487)(subtype_indication . 741)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((attribute_reference . 51)(name . 735)(qualified_expression .
54)(selected_component . 55))
- ((attribute_reference . 51)(name . 732)(qualified_expression .
54)(selected_component . 55)(subtype_indication . 733))
- ((aggregate . 157)(attribute_reference . 51)(choice_expression .
186)(choice_relation_and_list . 187)(choice_relation_or_list .
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list .
190)(choice_relation_or_else_list . 191)(choice_relation . 192)(discrete_choice
. 193)(discrete_choice_list . 730)(factor . 161)(name . 197)(primary .
166)(qualified_expression . 54)(range . 198)(selected_component .
55)(simple_expression . 475)(term . 176)(term_list . 177)(unary_adding_o [...]
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 734)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(discrete_subtype_definition
. 730)(factor . 174)(name . 731)(primary . 177)(qualified_expression .
54)(range . 732)(selected_component . 55)(simple_expression .
479)(subtype_indication . 733)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((attribute_reference . 51)(name . 727)(qualified_expression .
54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 724)(qualified_expression .
54)(selected_component . 55)(subtype_indication . 725))
+ ((aggregate . 158)(attribute_reference . 51)(choice_expression .
162)(choice_relation_and_list . 163)(choice_relation_or_list .
164)(choice_relation_xor_list . 165)(choice_relation_and_then_list .
166)(choice_relation_or_else_list . 167)(choice_relation . 168)(discrete_choice
. 170)(discrete_choice_list . 722)(factor . 174)(name . 176)(primary .
177)(qualified_expression . 54)(range . 180)(selected_component .
55)(simple_expression . 430)(term . 188)(term_list . 189)(unary_adding_o [...]
nil
nil
- ((aspect_specification_opt . 728))
- ((aspect_specification_opt . 727))
+ ((aspect_specification_opt . 720))
+ ((aspect_specification_opt . 719))
nil
nil
- ((attribute_reference . 51)(name . 725)(qualified_expression .
54)(selected_component . 55))
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(handled_sequence_of_statements . 724)(if_statement . 660)(iteration_scheme
. 661)(label_opt . 662)(loop_statement . 663)(name . 664)(pragma .
665)(procedure_call_statement . 666)(qualified_expression . 54)(ra [...]
- ((aggregate . 157)(attribute_reference . 51)(expression .
195)(expression_opt . 723)(factor . 161)(name . 163)(primary .
166)(qualified_expression . 54)(raise_expression . 168)(relation_and_list .
169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 722)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(gen [...]
- ((aggregate . 157)(attribute_reference . 51)(expression . 721)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((identifier_opt . 719))
- ((iterator_specification . 716)(iterator_specification_opt . 717))
+ ((attribute_reference . 51)(name . 717)(qualified_expression .
54)(selected_component . 55))
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(handled_sequence_of_statements . 716)(if_statement . 652)(iteration_scheme
. 653)(label_opt . 654)(loop_statement . 655)(name . 656)(pragma .
657)(procedure_call_statement . 658)(qualified_expression . 54)(ra [...]
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 715)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 714)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(gen [...]
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 713)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((identifier_opt . 711))
+ ((iterator_specification . 708)(iterator_specification_opt . 709))
nil
- ((aggregate . 157)(attribute_reference . 51)(expression .
195)(expression_opt . 714)(factor . 161)(name . 163)(primary .
166)(qualified_expression . 54)(raise_expression . 168)(relation_and_list .
169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 706)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
nil
- ((attribute_reference . 51)(name . 711)(qualified_expression .
54)(selected_component . 55))
- ((attribute_reference . 51)(name . 709)(qualified_expression .
54)(selected_component . 55))
- ((aggregate . 157)(attribute_reference . 51)(expression .
706)(extended_return_object_declaration .
707)(extended_return_object_declaration_opt . 708)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_op [...]
- ((accept_statement . 694)(attribute_reference . 51)(delay_alternative .
695)(delay_statement . 696)(entry_call_alternative . 697)(name .
698)(procedure_call_statement . 699)(qualified_expression .
54)(selected_component . 55)(select_alternative . 700)(select_alternative_list
. 701)(select_alternative_list_opt . 702)(triggering_alternative . 703))
- ((aggregate . 157)(attribute_reference . 51)(expression .
195)(expression_opt . 691)(factor . 161)(name . 163)(primary .
166)(qualified_expression . 54)(raise_expression . 168)(relation_and_list .
169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((attribute_reference . 51)(name . 703)(qualified_expression .
54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 701)(qualified_expression .
54)(selected_component . 55))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 698)(extended_return_object_declaration .
699)(extended_return_object_declaration_opt . 700)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(raise_expression .
179)(relation_and_list . 181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list
[...]
+ ((accept_statement . 686)(attribute_reference . 51)(delay_alternative .
687)(delay_statement . 688)(entry_call_alternative . 689)(name .
690)(procedure_call_statement . 691)(qualified_expression .
54)(selected_component . 55)(select_alternative . 692)(select_alternative_list
. 693)(select_alternative_list_opt . 694)(triggering_alternative . 695))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 683)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
nil
@@ -3817,7 +3800,7 @@
nil
nil
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(compound_statement . 685)(conditional_entry_call .
654)(delay_statement . 655)(exit_statement . 656)(extended_return_statement .
657)(if_statement . 660)(iteration_scheme . 661)(loop_statement . 663)(name .
664)(pragma . 665)(procedure_call_statement . 666)(qualified_expression .
54)(raise_statement . 667)(requeue_statement . 668)(s [...]
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(compound_statement . 677)(conditional_entry_call .
646)(delay_statement . 647)(exit_statement . 648)(extended_return_statement .
649)(if_statement . 652)(iteration_scheme . 653)(loop_statement . 655)(name .
656)(pragma . 657)(procedure_call_statement . 658)(qualified_expression .
54)(raise_statement . 659)(requeue_statement . 660)(s [...]
nil
((actual_parameter_part . 92))
nil
@@ -3826,7 +3809,7 @@
nil
nil
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
681)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
673)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
nil
nil
nil
@@ -3835,26 +3818,26 @@
nil
nil
nil
- ((exception_handler . 953)(exception_handler_list .
954)(exception_handler_list_opt . 955))
+ ((exception_handler . 944)(exception_handler_list .
945)(exception_handler_list_opt . 946))
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 951)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 942)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
- ((attribute_reference . 51)(name . 243)(name_opt .
949)(qualified_expression . 54)(selected_component . 55))
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
+ ((attribute_reference . 51)(name . 237)(name_opt .
940)(qualified_expression . 54)(selected_component . 55))
nil
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 946)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 937)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
nil
- ((accept_statement . 649)(actual_parameter_part .
92)(assignment_statement . 650)(asynchronous_select . 651)(attribute_reference
. 51)(block_statement . 652)(case_statement . 653)(conditional_entry_call .
654)(delay_statement . 655)(exit_statement . 656)(extended_return_statement .
657)(goto_label . 658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statem [...]
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
+ ((accept_statement . 641)(actual_parameter_part .
92)(assignment_statement . 642)(asynchronous_select . 643)(attribute_reference
. 51)(block_statement . 644)(case_statement . 645)(conditional_entry_call .
646)(delay_statement . 647)(exit_statement . 648)(extended_return_statement .
649)(goto_label . 650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statem [...]
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
nil
nil
nil
@@ -3875,108 +3858,107 @@
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 922)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 913)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
nil
nil
((actual_parameter_part . 92))
- ((actual_parameter_part . 915)(actual_parameter_part_opt . 916))
+ ((actual_parameter_part . 906)(actual_parameter_part_opt . 907))
nil
nil
- ((case_expression_alternative . 911))
+ ((case_expression_alternative . 902))
nil
nil
- ((actual_parameter_part . 92)(constraint . 831)(index_constraint . 832))
+ ((actual_parameter_part . 92)(constraint . 822)(index_constraint . 823))
nil
- ((attribute_reference . 51)(name . 907)(qualified_expression .
54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 898)(qualified_expression .
54)(selected_component . 55))
((actual_parameter_part . 92))
- ((aggregate . 157)(attribute_reference . 51)(name . 163)(primary .
298)(qualified_expression . 54)(selected_component . 55))
- ((aggregate . 157)(attribute_reference . 51)(discrete_subtype_definition
. 905)(factor . 161)(name . 739)(primary . 166)(qualified_expression .
54)(range . 740)(selected_component . 55)(simple_expression .
487)(subtype_indication . 741)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(name . 325)(primary .
371)(qualified_expression . 54)(selected_component . 55))
+ ((aggregate . 158)(attribute_reference . 51)(discrete_subtype_definition
. 896)(factor . 174)(name . 731)(primary . 177)(qualified_expression .
54)(range . 732)(selected_component . 55)(simple_expression .
479)(subtype_indication . 733)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((actual_parameter_part . 92)(constraint . 831)(index_constraint . 832))
+ ((actual_parameter_part . 92)(constraint . 822)(index_constraint . 823))
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 903)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(expression . 902)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 894)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 893)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((elsif_expression_item . 901))
+ ((elsif_expression_item . 892))
nil
nil
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(discrete_subtype_definition
. 896)(factor . 161)(identifier_list . 236)(name . 739)(parameter_specification
. 237)(parameter_specification_list . 238)(primary . 166)(qualified_expression
. 54)(range . 740)(selected_component . 55)(simple_expression .
487)(subtype_indication . 741)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aspect_specification_opt . 895))
- ((aggregate . 157)(attribute_reference . 51)(case_expression .
158)(conditional_quantified_expression . 893)(expression . 894)(factor .
161)(if_expression . 162)(name . 163)(primary . 166)(qualified_expression .
54)(quantified_expression . 167)(raise_expression . 168)(relation_and_list .
169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_l [...]
- ((aspect_specification_opt . 892))
- ((aspect_specification_opt . 891))
- ((aspect_specification_opt . 890))
- ((aspect_specification_opt . 889))
nil
- ((access_definition . 886)(array_type_definition .
887)(attribute_reference . 51)(name . 732)(null_exclusion_opt .
517)(qualified_expression . 54)(selected_component . 55)(subtype_indication .
888))
- nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 884)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((attribute_reference . 51)(name . 243)(name_opt .
883)(qualified_expression . 54)(selected_component . 55))
- ((actual_parameter_part . 92))
- ((attribute_reference . 51)(name . 881)(qualified_expression .
54)(selected_component . 55))
- ((attribute_reference . 51)(name . 880)(qualified_expression .
54)(selected_component . 55))
- ((abstract_limited_synchronized_opt . 870)(abstract_limited_opt .
871)(abstract_tagged_limited_opt . 872)(access_definition .
873)(array_type_definition . 874)(derived_type_definition .
875)(enumeration_type_definition . 876)(interface_type_definition .
877)(null_exclusion_opt . 517)(record_type_definition . 878)(type_definition .
879))
nil
+ ((aggregate . 158)(attribute_reference . 51)(discrete_subtype_definition
. 886)(factor . 174)(identifier_list . 230)(name . 731)(parameter_specification
. 231)(parameter_specification_list . 232)(primary . 177)(qualified_expression
. 54)(range . 732)(selected_component . 55)(simple_expression .
479)(subtype_indication . 733)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((aspect_specification_opt . 885))
+ ((aggregate . 158)(attribute_reference . 51)(case_expression .
161)(conditional_quantified_expression . 883)(expression . 172)(expression_opt
. 884)(factor . 174)(if_expression . 175)(name . 325)(primary .
177)(qualified_expression . 54)(quantified_expression . 178)(raise_expression .
179)(relation_and_list . 181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 3 [...]
+ ((aspect_specification_opt . 882))
+ ((aspect_specification_opt . 881))
+ ((aspect_specification_opt . 880))
+ ((aspect_specification_opt . 879))
nil
- ((aspect_specification_opt . 858))
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 856)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(gen [...]
+ ((access_definition . 876)(array_type_definition .
877)(attribute_reference . 51)(name . 724)(null_exclusion_opt .
509)(qualified_expression . 54)(selected_component . 55)(subtype_indication .
878))
nil
- ((aspect_specification_opt . 854))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 874)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((attribute_reference . 51)(name . 237)(name_opt .
873)(qualified_expression . 54)(selected_component . 55))
+ ((actual_parameter_part . 92))
+ ((attribute_reference . 51)(name . 871)(qualified_expression .
54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 870)(qualified_expression .
54)(selected_component . 55))
+ ((abstract_limited_synchronized_opt . 860)(abstract_limited_opt .
861)(abstract_tagged_limited_opt . 862)(access_definition .
863)(array_type_definition . 864)(derived_type_definition .
865)(enumeration_type_definition . 866)(interface_type_definition .
867)(null_exclusion_opt . 509)(record_type_definition . 868)(type_definition .
869))
nil
- ((aspect_specification_opt . 852))
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 850)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(gen [...]
nil
+ ((aspect_specification_opt . 848))
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 846)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(gen [...]
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 846)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((mod_clause_opt . 845))
+ ((aspect_specification_opt . 844))
nil
+ ((aspect_specification_opt . 842))
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 840)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(gen [...]
nil
nil
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 836)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((mod_clause_opt . 835))
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 840)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(expression . 839)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((attribute_reference . 51)(name . 569)(qualified_expression .
54)(selected_component . 838))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 831)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 830)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((attribute_reference . 51)(name . 561)(qualified_expression .
54)(selected_component . 829))
nil
nil
nil
nil
nil
- ((actual_parameter_part . 92)(constraint . 831)(index_constraint . 832))
+ ((actual_parameter_part . 92)(constraint . 822)(index_constraint . 823))
nil
nil
- ((attribute_reference . 51)(interface_list . 827)(name .
824)(qualified_expression . 54)(selected_component . 55))
- ((attribute_reference . 51)(interface_list . 826)(name .
824)(qualified_expression . 54)(selected_component . 55))
- ((attribute_reference . 51)(interface_list . 825)(name .
824)(qualified_expression . 54)(selected_component . 55))
+ ((attribute_reference . 51)(interface_list . 818)(name .
815)(qualified_expression . 54)(selected_component . 55))
+ ((attribute_reference . 51)(interface_list . 817)(name .
815)(qualified_expression . 54)(selected_component . 55))
+ ((attribute_reference . 51)(interface_list . 816)(name .
815)(qualified_expression . 54)(selected_component . 55))
nil
- ((attribute_reference . 51)(interface_list . 823)(name .
824)(qualified_expression . 54)(selected_component . 55))
- ((actual_parameter_part . 92)(and_interface_list_opt . 822))
+ ((attribute_reference . 51)(interface_list . 814)(name .
815)(qualified_expression . 54)(selected_component . 55))
+ ((actual_parameter_part . 92)(and_interface_list_opt . 813))
nil
nil
- ((aggregate . 157)(association_opt . 184)(association_list .
201)(attribute_reference . 51)(case_expression . 158)(choice_expression .
186)(choice_relation_and_list . 187)(choice_relation_or_list .
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list .
190)(choice_relation_or_else_list . 191)(choice_relation .
192)(conditional_quantified_expression . 202)(discrete_choice .
193)(discrete_choice_list . 194)(expression . 195)(expression_opt . 196)(factor
. 161)(if_expres [...]
- ((aspect_specification_opt . 819))
+ ((aggregate . 158)(association_opt . 159)(association_list .
195)(attribute_reference . 51)(case_expression . 161)(choice_expression .
162)(choice_relation_and_list . 163)(choice_relation_or_list .
164)(choice_relation_xor_list . 165)(choice_relation_and_then_list .
166)(choice_relation_or_else_list . 167)(choice_relation .
168)(conditional_quantified_expression . 196)(discrete_choice .
170)(discrete_choice_list . 171)(expression . 172)(expression_opt . 173)(factor
. 174)(if_expres [...]
+ ((aspect_specification_opt . 810))
nil
- ((aspect_specification_opt . 818))
+ ((aspect_specification_opt . 809))
nil
- ((identifier_list . 236)(parameter_specification .
237)(parameter_specification_list . 238))
+ ((identifier_list . 230)(parameter_specification .
231)(parameter_specification_list . 232))
nil
nil
- ((attribute_reference . 51)(name . 816)(qualified_expression .
54)(selected_component . 55))
- ((aggregate . 157)(attribute_reference . 51)(expression . 815)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((attribute_reference . 51)(name . 807)(qualified_expression .
54)(selected_component . 55))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 806)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
((actual_parameter_part . 92))
nil
nil
nil
nil
- ((attribute_reference . 51)(interface_list . 1082)(name .
824)(qualified_expression . 54)(selected_component . 55))
+ ((attribute_reference . 51)(interface_list . 1073)(name .
815)(qualified_expression . 54)(selected_component . 55))
nil
nil
((actual_parameter_part . 92))
@@ -3984,14 +3966,14 @@
nil
nil
nil
- ((aggregate . 157)(association_opt . 184)(association_list .
201)(attribute_reference . 51)(case_expression . 158)(choice_expression .
186)(choice_relation_and_list . 187)(choice_relation_or_list .
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list .
190)(choice_relation_or_else_list . 191)(choice_relation .
192)(conditional_quantified_expression . 202)(discrete_choice .
193)(discrete_choice_list . 194)(discrete_subtype_definition .
790)(discrete_subtype_definition_ [...]
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
197)(primary . 166)(qualified_expression . 54)(range . 1003)(selected_component
. 55)(simple_expression . 487)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(association_opt . 159)(association_list .
195)(attribute_reference . 51)(case_expression . 161)(choice_expression .
162)(choice_relation_and_list . 163)(choice_relation_or_list .
164)(choice_relation_xor_list . 165)(choice_relation_and_then_list .
166)(choice_relation_or_else_list . 167)(choice_relation .
168)(conditional_quantified_expression . 196)(discrete_choice .
170)(discrete_choice_list . 171)(discrete_subtype_definition .
781)(discrete_subtype_definition_ [...]
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
176)(primary . 177)(qualified_expression . 54)(range . 994)(selected_component
. 55)(simple_expression . 479)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
nil
- ((attribute_reference . 51)(index_subtype_definition . 1073)(name .
1074)(qualified_expression . 54)(selected_component . 55))
+ ((attribute_reference . 51)(index_subtype_definition . 1064)(name .
1065)(qualified_expression . 54)(selected_component . 55))
nil
- ((aggregate . 157)(attribute_reference . 51)(discrete_subtype_definition
. 1071)(factor . 161)(name . 739)(primary . 166)(qualified_expression .
54)(range . 740)(selected_component . 55)(simple_expression .
487)(subtype_indication . 741)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(discrete_subtype_definition
. 1062)(factor . 174)(name . 731)(primary . 177)(qualified_expression .
54)(range . 732)(selected_component . 55)(simple_expression .
479)(subtype_indication . 733)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
nil
@@ -3999,51 +3981,51 @@
nil
nil
nil
+ ((component_clause . 1059)(component_clause_list . 1060))
nil
- ((component_clause . 1068)(component_clause_list . 1069))
nil
+ ((aspect_specification_opt . 1056))
+ ((attribute_reference . 51)(interface_list . 1055)(name .
815)(qualified_expression . 54)(selected_component . 55))
nil
- ((aspect_specification_opt . 1065))
- ((attribute_reference . 51)(interface_list . 1064)(name .
824)(qualified_expression . 54)(selected_component . 55))
nil
nil
+ ((aspect_specification_opt . 1050))
nil
- ((aspect_specification_opt . 1059))
+ ((attribute_reference . 51)(interface_list . 1048)(name .
815)(qualified_expression . 54)(selected_component . 55))
nil
- ((attribute_reference . 51)(interface_list . 1057)(name .
824)(qualified_expression . 54)(selected_component . 55))
nil
nil
+ ((aspect_specification_opt . 1042))
nil
- ((aspect_specification_opt . 1051))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 1040)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 1039)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((enumeration_literal . 1037)(enumeration_literal_list . 1038))
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 1049)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(expression . 1048)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((enumeration_literal . 1046)(enumeration_literal_list . 1047))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 1034)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 1043)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(selected_component .
55)(simple_expression . 1032)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((aspect_clause . 1025)(at_clause . 278)(component_declaration .
1026)(component_item . 1027)(component_list . 1028)(component_list_opt .
1029)(enumeration_representation_clause . 285)(identifier_list .
1030)(record_representation_clause . 309)(variant_part . 1031))
nil
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(selected_component .
55)(simple_expression . 1041)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aspect_clause . 1034)(at_clause . 308)(component_declaration .
1035)(component_item . 1036)(component_list . 1037)(component_list_opt .
1038)(enumeration_representation_clause . 315)(identifier_list .
1039)(record_representation_clause . 339)(variant_part . 1040))
nil
nil
+ ((record_definition . 1019))
nil
- ((record_definition . 1028))
nil
nil
nil
nil
nil
+ ((aspect_specification_opt . 1017))
+ ((actual_parameter_part . 92)(aspect_specification_opt . 1016))
+ ((actual_parameter_part . 92)(aspect_specification_opt . 1015))
+ ((attribute_reference . 51)(name . 1014)(qualified_expression .
54)(selected_component . 55))
nil
- ((aspect_specification_opt . 1026))
- ((actual_parameter_part . 92)(aspect_specification_opt . 1025))
- ((actual_parameter_part . 92)(aspect_specification_opt . 1024))
- ((attribute_reference . 51)(name . 1023)(qualified_expression .
54)(selected_component . 55))
nil
nil
+ ((aspect_specification_opt . 1011))
+ ((aspect_specification_opt . 1009))
+ ((aspect_specification_opt . 1007))
nil
- ((aspect_specification_opt . 1020))
- ((aspect_specification_opt . 1018))
- ((aspect_specification_opt . 1016))
nil
nil
nil
@@ -4051,54 +4033,54 @@
nil
nil
nil
+ ((attribute_reference . 51)(name . 237)(name_opt .
997)(qualified_expression . 54)(selected_component . 55))
nil
- ((attribute_reference . 51)(name . 243)(name_opt .
1006)(qualified_expression . 54)(selected_component . 55))
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 1005)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 996)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
197)(primary . 166)(qualified_expression . 54)(range . 1003)(selected_component
. 55)(simple_expression . 487)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
176)(primary . 177)(qualified_expression . 54)(range . 994)(selected_component
. 55)(simple_expression . 479)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((attribute_reference . 51)(name . 1000)(qualified_expression .
54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 991)(qualified_expression .
54)(selected_component . 55))
((actual_parameter_part . 92))
- ((attribute_reference . 51)(name . 1002)(qualified_expression .
54)(selected_component . 55))
- ((attribute_reference . 51)(name . 1000)(qualified_expression .
54)(selected_component . 55))
- ((aggregate . 157)(attribute_reference . 51)(expression . 999)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((attribute_reference . 51)(name . 993)(qualified_expression .
54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 991)(qualified_expression .
54)(selected_component . 55))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 990)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((aspect_clause . 989)(at_clause . 308)(entry_body .
990)(enumeration_representation_clause . 315)(expression_function_declaration .
991)(function_specification . 16)(null_procedure_declaration .
992)(overriding_indicator_opt . 993)(procedure_specification .
32)(protected_operation_item . 994)(protected_operation_item_list .
995)(protected_operation_item_list_opt . 996)(record_representation_clause .
339)(subprogram_body . 997)(subprogram_declaration . 998))
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 987)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(gen [...]
- ((aggregate . 157)(association_opt . 184)(association_list .
201)(attribute_reference . 51)(case_expression . 158)(choice_expression .
186)(choice_relation_and_list . 187)(choice_relation_or_list .
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list .
190)(choice_relation_or_else_list . 191)(choice_relation .
192)(conditional_quantified_expression . 202)(discrete_choice .
193)(discrete_choice_list . 194)(expression . 195)(expression_opt . 196)(factor
. 161)(if_expres [...]
+ ((aspect_clause . 980)(at_clause . 278)(entry_body .
981)(enumeration_representation_clause . 285)(expression_function_declaration .
982)(function_specification . 16)(null_procedure_declaration .
983)(overriding_indicator_opt . 984)(procedure_specification .
32)(protected_operation_item . 985)(protected_operation_item_list .
986)(protected_operation_item_list_opt . 987)(record_representation_clause .
309)(subprogram_body . 988)(subprogram_declaration . 989))
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 978)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(gen [...]
+ ((aggregate . 158)(association_opt . 159)(association_list .
195)(attribute_reference . 51)(case_expression . 161)(choice_expression .
162)(choice_relation_and_list . 163)(choice_relation_or_list .
164)(choice_relation_xor_list . 165)(choice_relation_and_then_list .
166)(choice_relation_or_else_list . 167)(choice_relation .
168)(conditional_quantified_expression . 196)(discrete_choice .
170)(discrete_choice_list . 171)(expression . 172)(expression_opt . 173)(factor
. 174)(if_expres [...]
nil
- ((formal_part . 117)(parameter_profile_opt . 986))
+ ((formal_part . 117)(parameter_profile_opt . 977))
nil
- ((identifier_opt . 985))
- ((case_statement_alternative . 983)(case_statement_alternative_list .
984))
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(handled_sequence_of_statements . 981)(if_statement . 660)(iteration_scheme
. 661)(label_opt . 662)(loop_statement . 663)(name . 664)(pragma .
665)(procedure_call_statement . 666)(qualified_expression . 54)(ra [...]
+ ((identifier_opt . 976))
+ ((case_statement_alternative . 974)(case_statement_alternative_list .
975))
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(handled_sequence_of_statements . 972)(if_statement . 652)(iteration_scheme
. 653)(label_opt . 654)(loop_statement . 655)(name . 656)(pragma .
657)(procedure_call_statement . 658)(qualified_expression . 54)(ra [...]
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(expression .
195)(expression_opt . 979)(factor . 161)(name . 163)(primary .
166)(qualified_expression . 54)(raise_expression . 168)(relation_and_list .
169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 970)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 976)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 967)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(handled_sequence_of_statements . 974)(if_statement . 660)(iteration_scheme
. 661)(label_opt . 662)(loop_statement . 663)(name . 664)(pragma .
665)(procedure_call_statement . 666)(qualified_expression . 54)(ra [...]
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(handled_sequence_of_statements . 965)(if_statement . 652)(iteration_scheme
. 653)(label_opt . 654)(loop_statement . 655)(name . 656)(pragma .
657)(procedure_call_statement . 658)(qualified_expression . 54)(ra [...]
nil
nil
- ((aliased_opt . 973))
+ ((aliased_opt . 964))
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
nil
- ((accept_statement . 694)(delay_alternative . 695)(delay_statement .
967)(select_alternative . 969))
+ ((accept_statement . 686)(delay_alternative . 687)(delay_statement .
958)(select_alternative . 960))
nil
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
- ((delay_alternative . 966)(delay_statement . 967))
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
+ ((delay_alternative . 957)(delay_statement . 958))
nil
nil
nil
@@ -4107,9 +4089,9 @@
nil
nil
nil
- ((attribute_reference . 51)(exception_choice .
959)(exception_choice_list . 960)(name . 961)(qualified_expression .
54)(selected_component . 55))
+ ((attribute_reference . 51)(exception_choice .
950)(exception_choice_list . 951)(name . 952)(qualified_expression .
54)(selected_component . 55))
nil
- ((exception_handler . 956))
+ ((exception_handler . 947))
nil
nil
nil
@@ -4120,26 +4102,26 @@
nil
nil
nil
- ((accept_statement . 1179)(delay_alternative . 1180)(delay_statement .
967))
+ ((accept_statement . 1170)(delay_alternative . 1171)(delay_statement .
958))
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
nil
nil
nil
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
- ((constant_opt . 1171))
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
+ ((constant_opt . 1162))
nil
nil
nil
- ((identifier_opt . 1167))
- ((elsif_statement_item . 1165)(elsif_statement_list . 1166))
+ ((identifier_opt . 1158))
+ ((elsif_statement_item . 1156)(elsif_statement_list . 1157))
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(choice_expression .
186)(choice_relation_and_list . 187)(choice_relation_or_list .
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list .
190)(choice_relation_or_else_list . 191)(choice_relation . 192)(discrete_choice
. 193)(discrete_choice_list . 1159)(factor . 161)(name . 197)(primary .
166)(qualified_expression . 54)(range . 198)(selected_component .
55)(simple_expression . 475)(term . 176)(term_list . 177)(unary_adding_ [...]
+ ((aggregate . 158)(attribute_reference . 51)(choice_expression .
162)(choice_relation_and_list . 163)(choice_relation_or_list .
164)(choice_relation_xor_list . 165)(choice_relation_and_then_list .
166)(choice_relation_or_else_list . 167)(choice_relation . 168)(discrete_choice
. 170)(discrete_choice_list . 1150)(factor . 174)(name . 176)(primary .
177)(qualified_expression . 54)(range . 180)(selected_component .
55)(simple_expression . 430)(term . 188)(term_list . 189)(unary_adding_ [...]
nil
- ((case_statement_alternative . 1158))
+ ((case_statement_alternative . 1149))
nil
nil
nil
@@ -4148,21 +4130,21 @@
nil
nil
nil
- ((function_specification . 436)(procedure_specification .
437)(subprogram_specification . 1151))
+ ((function_specification . 454)(procedure_specification .
455)(subprogram_specification . 1142))
nil
- ((aspect_clause . 989)(at_clause . 308)(entry_body .
990)(enumeration_representation_clause . 315)(expression_function_declaration .
991)(function_specification . 16)(null_procedure_declaration .
992)(overriding_indicator_opt . 993)(procedure_specification .
32)(protected_operation_item . 1150)(record_representation_clause .
339)(subprogram_body . 997)(subprogram_declaration . 998))
+ ((aspect_clause . 980)(at_clause . 278)(entry_body .
981)(enumeration_representation_clause . 285)(expression_function_declaration .
982)(function_specification . 16)(null_procedure_declaration .
983)(overriding_indicator_opt . 984)(procedure_specification .
32)(protected_operation_item . 1141)(record_representation_clause .
309)(subprogram_body . 988)(subprogram_declaration . 989))
nil
nil
nil
nil
- ((actual_parameter_part . 92)(constraint . 1148)(index_constraint . 832))
- ((attribute_reference . 51)(name . 1147)(qualified_expression .
54)(selected_component . 55))
+ ((actual_parameter_part . 92)(constraint . 1139)(index_constraint . 823))
+ ((attribute_reference . 51)(name . 1138)(qualified_expression .
54)(selected_component . 55))
((actual_parameter_part . 92))
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 1146)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 1137)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
- ((formal_part . 117)(parameter_profile_opt . 1144))
+ ((formal_part . 117)(parameter_profile_opt . 1135))
nil
nil
nil
@@ -4170,29 +4152,29 @@
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 1143)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 1134)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 1141)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 1132)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 1139)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 1130)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((attribute_reference . 51)(name . 1000)(qualified_expression .
54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 991)(qualified_expression .
54)(selected_component . 55))
nil
- ((actual_parameter_part . 92)(aspect_specification_opt . 1137))
+ ((actual_parameter_part . 92)(aspect_specification_opt . 1128))
nil
nil
nil
- ((aspect_specification_opt . 1133))
+ ((aspect_specification_opt . 1124))
nil
- ((attribute_reference . 51)(name . 1132)(qualified_expression .
54)(selected_component . 55))
- ((attribute_reference . 51)(name . 732)(qualified_expression .
54)(selected_component . 55)(subtype_indication . 1131))
+ ((attribute_reference . 51)(name . 1123)(qualified_expression .
54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 724)(qualified_expression .
54)(selected_component . 55)(subtype_indication . 1122))
nil
- ((direct_name . 1129)(direct_name_opt . 1130))
+ ((direct_name . 1120)(direct_name_opt . 1121))
nil
nil
nil
nil
- ((aspect_clause . 1034)(at_clause . 308)(component_declaration .
1035)(component_item . 1124)(enumeration_representation_clause .
315)(identifier_list . 1039)(record_representation_clause . 339)(variant_part .
1125))
+ ((aspect_clause . 1025)(at_clause . 278)(component_declaration .
1026)(component_item . 1115)(enumeration_representation_clause .
285)(identifier_list . 1030)(record_representation_clause . 309)(variant_part .
1116))
nil
nil
nil
@@ -4203,51 +4185,51 @@
nil
nil
nil
- ((real_range_specification_opt . 1118))
- ((real_range_specification_opt . 1117))
+ ((real_range_specification_opt . 1109))
+ ((real_range_specification_opt . 1108))
nil
nil
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 856)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(gen [...]
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 846)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(gen [...]
nil
nil
- ((identifier_opt . 1111))
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 1110)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(ge [...]
+ ((identifier_opt . 1102))
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 1101)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(ge [...]
nil
nil
nil
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 850)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(gen [...]
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 840)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(gen [...]
nil
- ((identifier_opt . 1105))
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 1104)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(ge [...]
+ ((identifier_opt . 1096))
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 1095)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(ge [...]
nil
nil
nil
nil
nil
- ((component_clause . 1100))
- ((aggregate . 157)(attribute_reference . 51)(expression . 1098)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((component_clause . 1091))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 1089)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((access_definition . 1093)(attribute_reference .
51)(component_definition . 1097)(name . 732)(null_exclusion_opt .
517)(qualified_expression . 54)(selected_component . 55)(subtype_indication .
1095))
+ ((access_definition . 1084)(attribute_reference .
51)(component_definition . 1088)(name . 724)(null_exclusion_opt .
509)(qualified_expression . 54)(selected_component . 55)(subtype_indication .
1086))
nil
((actual_parameter_part . 92))
- ((access_definition . 1093)(attribute_reference .
51)(component_definition . 1094)(name . 732)(null_exclusion_opt .
517)(qualified_expression . 54)(selected_component . 55)(subtype_indication .
1095))
+ ((access_definition . 1084)(attribute_reference .
51)(component_definition . 1085)(name . 724)(null_exclusion_opt .
509)(qualified_expression . 54)(selected_component . 55)(subtype_indication .
1086))
nil
- ((aggregate . 157)(attribute_reference . 51)(name . 163)(primary .
298)(qualified_expression . 54)(selected_component . 55))
+ ((aggregate . 158)(attribute_reference . 51)(name . 325)(primary .
371)(qualified_expression . 54)(selected_component . 55))
nil
nil
- ((attribute_reference . 51)(name . 1089)(qualified_expression .
54)(selected_component . 55))
+ ((attribute_reference . 51)(name . 1080)(qualified_expression .
54)(selected_component . 55))
nil
nil
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 1087)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 1078)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
((actual_parameter_part . 92))
nil
- ((attribute_reference . 51)(name . 1245)(qualified_expression .
54)(selected_component . 55))
- ((access_definition . 1243)(attribute_reference . 51)(name .
732)(null_exclusion_opt . 517)(qualified_expression . 54)(selected_component .
55)(subtype_indication . 1244))
+ ((attribute_reference . 51)(name . 1236)(qualified_expression .
54)(selected_component . 55))
+ ((access_definition . 1234)(attribute_reference . 51)(name .
724)(null_exclusion_opt . 509)(qualified_expression . 54)(selected_component .
55)(subtype_indication . 1235))
nil
nil
nil
@@ -4256,28 +4238,28 @@
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(selected_component .
55)(simple_expression . 1240)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(selected_component .
55)(simple_expression . 1231)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 850)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(gen [...]
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 840)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(gen [...]
nil
nil
- ((attribute_reference . 51)(interface_list . 1237)(name .
824)(qualified_expression . 54)(selected_component . 55))
+ ((attribute_reference . 51)(interface_list . 1228)(name .
815)(qualified_expression . 54)(selected_component . 55))
nil
nil
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 856)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(gen [...]
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 846)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(gen [...]
nil
nil
- ((attribute_reference . 51)(interface_list . 1233)(name .
824)(qualified_expression . 54)(selected_component . 55))
+ ((attribute_reference . 51)(interface_list . 1224)(name .
815)(qualified_expression . 54)(selected_component . 55))
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 1231)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(selected_component .
55)(simple_expression . 1230)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 1222)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(selected_component .
55)(simple_expression . 1221)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
nil
- ((enumeration_literal . 1229))
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(selected_component .
55)(simple_expression . 1228)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((access_definition . 1093)(attribute_reference .
51)(component_definition . 1227)(name . 732)(null_exclusion_opt .
517)(qualified_expression . 54)(selected_component . 55)(subtype_indication .
1095))
+ ((enumeration_literal . 1220))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(selected_component .
55)(simple_expression . 1219)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((access_definition . 1084)(attribute_reference .
51)(component_definition . 1218)(name . 724)(null_exclusion_opt .
509)(qualified_expression . 54)(selected_component . 55)(subtype_indication .
1086))
nil
nil
nil
@@ -4286,47 +4268,47 @@
nil
nil
nil
- ((and_interface_list_opt . 1224))
- ((actual_parameter_part . 92)(and_interface_list_opt . 1221)(constraint
. 1222)(constraint_opt . 1223)(index_constraint . 832))
+ ((and_interface_list_opt . 1215))
+ ((actual_parameter_part . 92)(and_interface_list_opt . 1212)(constraint
. 1213)(constraint_opt . 1214)(index_constraint . 823))
nil
nil
nil
nil
nil
nil
- ((aspect_specification_opt . 1218))
+ ((aspect_specification_opt . 1209))
nil
- ((aspect_specification_opt . 1217))
+ ((aspect_specification_opt . 1208))
nil
- ((aspect_specification_opt . 1216))
- ((aspect_specification_opt . 1215))
+ ((aspect_specification_opt . 1207))
+ ((aspect_specification_opt . 1206))
nil
nil
((actual_parameter_part . 92))
nil
- ((identifier_opt . 1214))
+ ((identifier_opt . 1205))
nil
((aspect_specification_opt . 129))
- ((entry_body_formal_part . 1212)(formal_part .
117)(parameter_profile_opt . 1213))
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(handled_sequence_of_statements . 1210)(if_statement .
660)(iteration_scheme . 661)(label_opt . 662)(loop_statement . 663)(name .
664)(pragma . 665)(procedure_call_statement . 666)(qualified_expression . 54)(r
[...]
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(handled_sequence_of_statements . 1209)(if_statement .
660)(iteration_scheme . 661)(label_opt . 662)(loop_statement . 663)(name .
664)(pragma . 665)(procedure_call_statement . 666)(qualified_expression . 54)(r
[...]
+ ((entry_body_formal_part . 1203)(formal_part .
117)(parameter_profile_opt . 1204))
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(handled_sequence_of_statements . 1201)(if_statement .
652)(iteration_scheme . 653)(label_opt . 654)(loop_statement . 655)(name .
656)(pragma . 657)(procedure_call_statement . 658)(qualified_expression . 54)(r
[...]
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(handled_sequence_of_statements . 1200)(if_statement .
652)(iteration_scheme . 653)(label_opt . 654)(loop_statement . 655)(name .
656)(pragma . 657)(procedure_call_statement . 658)(qualified_expression . 54)(r
[...]
nil
nil
nil
nil
nil
- ((identifier_opt . 1206))
+ ((identifier_opt . 1197))
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
- ((aggregate . 157)(attribute_reference . 51)(expression .
195)(expression_opt . 1204)(factor . 161)(name . 163)(primary .
166)(qualified_expression . 54)(raise_expression . 168)(relation_and_list .
169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 1195)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
- ((elsif_statement_item . 1202))
+ ((elsif_statement_item . 1193))
nil
nil
nil
nil
- ((access_definition . 1195)(attribute_reference . 51)(name .
732)(null_exclusion_opt . 517)(qualified_expression .
54)(return_subtype_indication . 1196)(selected_component .
55)(subtype_indication . 1197))
+ ((access_definition . 1186)(attribute_reference . 51)(name .
724)(null_exclusion_opt . 509)(qualified_expression .
54)(return_subtype_indication . 1187)(selected_component .
55)(subtype_indication . 1188))
nil
nil
nil
@@ -4334,12 +4316,12 @@
nil
nil
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
nil
- ((identifier_opt . 1188))
- ((attribute_reference . 51)(exception_choice . 1187)(name .
961)(qualified_expression . 54)(selected_component . 55))
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
- ((attribute_reference . 51)(exception_choice .
959)(exception_choice_list . 1185)(name . 961)(qualified_expression .
54)(selected_component . 55))
+ ((identifier_opt . 1179))
+ ((attribute_reference . 51)(exception_choice . 1178)(name .
952)(qualified_expression . 54)(selected_component . 55))
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
+ ((attribute_reference . 51)(exception_choice .
950)(exception_choice_list . 1176)(name . 952)(qualified_expression .
54)(selected_component . 55))
nil
nil
nil
@@ -4355,18 +4337,18 @@
nil
nil
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
nil
nil
nil
nil
nil
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
nil
nil
nil
- ((identifier_list . 236)(parameter_specification .
237)(parameter_specification_list . 238))
+ ((identifier_list . 230)(parameter_specification .
231)(parameter_specification_list . 232))
nil
nil
nil
@@ -4380,68 +4362,68 @@
nil
nil
nil
- ((variant_list . 1258)(variant . 1259))
+ ((variant_list . 1249)(variant . 1250))
nil
- ((aspect_specification_opt . 1256))
+ ((aspect_specification_opt . 1247))
nil
nil
nil
- ((real_range_specification_opt . 1253))
+ ((real_range_specification_opt . 1244))
nil
nil
- ((identifier_opt . 1251))
+ ((identifier_opt . 1242))
nil
nil
nil
- ((identifier_opt . 1248))
+ ((identifier_opt . 1239))
nil
nil
nil
nil
nil
nil
- ((actual_parameter_part . 92)(constraint . 1148)(index_constraint . 832))
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(selected_component .
55)(simple_expression . 1308)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((actual_parameter_part . 92)(constraint . 1139)(index_constraint . 823))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(selected_component .
55)(simple_expression . 1299)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 850)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(gen [...]
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 840)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(gen [...]
nil
nil
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 856)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(gen [...]
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 846)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(gen [...]
nil
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(selected_component .
55)(simple_expression . 1305)(term . 176)(term_list .
177)(unary_adding_operator . 178))
- ((aggregate . 157)(attribute_reference . 51)(expression . 1304)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(selected_component .
55)(simple_expression . 1296)(term . 188)(term_list .
189)(unary_adding_operator . 190))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 1295)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((aggregate . 157)(attribute_reference . 51)(choice_expression .
186)(choice_relation_and_list . 187)(choice_relation_or_list .
188)(choice_relation_xor_list . 189)(choice_relation_and_then_list .
190)(choice_relation_or_else_list . 191)(choice_relation . 192)(discrete_choice
. 193)(discrete_choice_list . 1302)(factor . 161)(name . 197)(primary .
166)(qualified_expression . 54)(range . 198)(selected_component .
55)(simple_expression . 475)(term . 176)(term_list . 177)(unary_adding_ [...]
- ((variant . 1301))
+ ((aggregate . 158)(attribute_reference . 51)(choice_expression .
162)(choice_relation_and_list . 163)(choice_relation_or_list .
164)(choice_relation_xor_list . 165)(choice_relation_and_then_list .
166)(choice_relation_or_else_list . 167)(choice_relation . 168)(discrete_choice
. 170)(discrete_choice_list . 1293)(factor . 174)(name . 176)(primary .
177)(qualified_expression . 54)(range . 180)(selected_component .
55)(simple_expression . 430)(term . 188)(term_list . 189)(unary_adding_ [...]
+ ((variant . 1292))
nil
nil
- ((record_definition . 1298))
+ ((record_definition . 1289))
nil
nil
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(expression .
195)(expression_opt . 1297)(factor . 161)(name . 163)(primary .
166)(qualified_expression . 54)(raise_expression . 168)(relation_and_list .
169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 1288)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
- ((identifier_opt . 1295))
- ((identifier_opt . 1294))
+ ((identifier_opt . 1286))
+ ((identifier_opt . 1285))
nil
nil
nil
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
nil
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(expression . 1289)(factor .
161)(name . 163)(primary . 166)(qualified_expression . 54)(raise_expression .
168)(relation_and_list . 169)(relation_and_then_list . 170)(relation_or_list .
171)(relation_or_else_list . 172)(relation_xor_list . 173)(relation .
174)(selected_component . 55)(simple_expression . 175)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(expression .
172)(expression_opt . 1280)(factor . 174)(name . 325)(primary .
177)(qualified_expression . 54)(raise_expression . 179)(relation_and_list .
181)(relation_and_then_list . 182)(relation_or_list .
183)(relation_or_else_list . 184)(relation_xor_list . 185)(relation .
186)(selected_component . 55)(simple_expression . 378)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
nil
nil
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(if_statement . 660)(iteration_scheme . 661)(label_opt .
662)(loop_statement . 663)(name . 664)(pragma . 665)(procedure_call_statement .
666)(qualified_expression . 54)(raise_statement . 667)(requeue_statement [...]
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(if_statement . 652)(iteration_scheme . 653)(label_opt .
654)(loop_statement . 655)(name . 656)(pragma . 657)(procedure_call_statement .
658)(qualified_expression . 54)(raise_statement . 659)(requeue_statement [...]
nil
nil
nil
@@ -4454,25 +4436,25 @@
nil
nil
nil
- ((aspect_specification_opt . 1315))
+ ((aspect_specification_opt . 1306))
nil
nil
nil
nil
- ((aspect_specification_opt . 1312))
+ ((aspect_specification_opt . 1303))
nil
nil
nil
nil
- ((aggregate . 157)(attribute_reference . 51)(factor . 161)(name .
163)(primary . 166)(qualified_expression . 54)(selected_component .
55)(simple_expression . 1329)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((aggregate . 158)(attribute_reference . 51)(factor . 174)(name .
325)(primary . 177)(qualified_expression . 54)(selected_component .
55)(simple_expression . 1320)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
nil
- ((aspect_clause . 1034)(at_clause . 308)(component_declaration .
1035)(component_item . 1036)(component_list . 1037)(component_list_opt .
1327)(enumeration_representation_clause . 315)(identifier_list .
1039)(record_representation_clause . 339)(variant_part . 1040))
+ ((aspect_clause . 1025)(at_clause . 278)(component_declaration .
1026)(component_item . 1027)(component_list . 1028)(component_list_opt .
1318)(enumeration_representation_clause . 285)(identifier_list .
1030)(record_representation_clause . 309)(variant_part . 1031))
nil
nil
- ((abstract_subprogram_declaration . 306)(aspect_clause . 307)(at_clause
. 308)(body . 309)(body_stub . 310)(declaration . 311)(declarations .
312)(declarative_part_opt . 1324)(entry_declaration .
314)(enumeration_representation_clause . 315)(exception_declaration .
316)(expression_function_declaration . 317)(full_type_declaration .
318)(function_specification . 16)(generic_declaration .
319)(generic_formal_part . 18)(generic_instantiation .
320)(generic_package_declaration . 20)(ge [...]
- ((aggregate . 157)(attribute_reference . 51)(discrete_subtype_definition
. 1323)(factor . 161)(name . 739)(primary . 166)(qualified_expression .
54)(range . 740)(selected_component . 55)(simple_expression .
487)(subtype_indication . 741)(term . 176)(term_list .
177)(unary_adding_operator . 178))
+ ((abstract_subprogram_declaration . 276)(aspect_clause . 277)(at_clause
. 278)(body . 279)(body_stub . 280)(declaration . 281)(declarations .
282)(declarative_part_opt . 1315)(entry_declaration .
284)(enumeration_representation_clause . 285)(exception_declaration .
286)(expression_function_declaration . 287)(full_type_declaration .
288)(function_specification . 16)(generic_declaration .
289)(generic_formal_part . 18)(generic_instantiation .
290)(generic_package_declaration . 20)(ge [...]
+ ((aggregate . 158)(attribute_reference . 51)(discrete_subtype_definition
. 1314)(factor . 174)(name . 731)(primary . 177)(qualified_expression .
54)(range . 732)(selected_component . 55)(simple_expression .
479)(subtype_indication . 733)(term . 188)(term_list .
189)(unary_adding_operator . 190))
nil
nil
nil
@@ -4486,11 +4468,11 @@
nil
nil
nil
- ((accept_statement . 649)(assignment_statement .
650)(asynchronous_select . 651)(attribute_reference . 51)(block_statement .
652)(case_statement . 653)(conditional_entry_call . 654)(delay_statement .
655)(exit_statement . 656)(extended_return_statement . 657)(goto_label .
658)(handled_sequence_of_statements . 1334)(if_statement .
660)(iteration_scheme . 661)(label_opt . 662)(loop_statement . 663)(name .
664)(pragma . 665)(procedure_call_statement . 666)(qualified_expression . 54)(r
[...]
- ((formal_part . 117)(parameter_profile_opt . 1333))
+ ((accept_statement . 641)(assignment_statement .
642)(asynchronous_select . 643)(attribute_reference . 51)(block_statement .
644)(case_statement . 645)(conditional_entry_call . 646)(delay_statement .
647)(exit_statement . 648)(extended_return_statement . 649)(goto_label .
650)(handled_sequence_of_statements . 1325)(if_statement .
652)(iteration_scheme . 653)(label_opt . 654)(loop_statement . 655)(name .
656)(pragma . 657)(procedure_call_statement . 658)(qualified_expression . 54)(r
[...]
+ ((formal_part . 117)(parameter_profile_opt . 1324))
nil
nil
- ((identifier_opt . 1336))
+ ((identifier_opt . 1327))
nil
nil]))
"Parser table.")
diff --git a/packages/ada-mode/ada-mode.el b/packages/ada-mode/ada-mode.el
index 4399b77..c3373a8 100755
--- a/packages/ada-mode/ada-mode.el
+++ b/packages/ada-mode/ada-mode.el
@@ -6,9 +6,9 @@
;; Maintainer: Stephen Leake <address@hidden>
;; Keywords: languages
;; ada
-;; Version: 5.2.0
-;; package-requires: ((wisi "1.1.3") (cl-lib "0.4") (emacs "24.2"))
-;; url: http://stephe-leake.org/emacs/ada-mode/emacs-ada-mode.html
+;; Version: 5.2.1
+;; package-requires: ((wisi "1.1.4") (cl-lib "0.4") (emacs "24.2"))
+;; url: http://www.nongnu.org/ada-mode/
;;
;; (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.2.0"))
+ (let ((version-string "5.2.1"))
;; must match:
;; ada-mode.texi
;; README-ada-mode
@@ -300,6 +300,12 @@ Useful for setting `ada-xref-tool' and similar vars."
:type 'function
:group 'ada)
+(defcustom ada-xref-full-path nil
+ "If t, cross-references show the full path to source files; if
+nil, only the file name."
+ :type 'boolean
+ :safe #'booleanp)
+
;;;;; end of user variables
(defconst ada-symbol-end
@@ -352,6 +358,7 @@ Values defined by cross reference packages.")
(define-key map "\C-c\C-e" 'ada-expand)
(define-key map "\C-c\C-f" 'ada-show-parse-error)
(define-key map "\C-c\C-i" 'ada-indent-statement)
+ (define-key map "\C-c\C-l" 'ada-show-local-references)
(define-key map "\C-c\C-m" 'ada-build-set-make)
(define-key map "\C-c\C-n" 'ada-next-statement-keyword)
(define-key map "\C-c\M-n" 'ada-next-placeholder)
@@ -1344,7 +1351,7 @@ Optional PLIST defaults to `ada-prj-current-project'."
ada-case-exception-file
(list ada-case-exception-file)))
(path_sep path-separator)
- (proc_env process-environment)
+ (proc_env (cl-copy-list process-environment))
(src_dir (list (directory-file-name default-directory)))
(xref_tool ada-xref-tool)
))))
@@ -1400,7 +1407,7 @@ Include properties set via
`ada-prj-default-compiler-alist',
ada-case-exception-file
(list ada-case-exception-file))
'path_sep path-separator;; prj variable so users can override it
for their compiler
- 'proc_env process-environment
+ 'proc_env (cl-copy-list process-environment)
'src_dir (if src-dir (list src-dir) nil)
'xref_tool ada-xref-tool
))
@@ -1574,11 +1581,11 @@ Return new value of PROJECT."
;; process env var. We don't do expand-file-name
;; here because the application may be expecting a
;; simple string.
- (let ((process-environment (plist-get project 'proc_env)))
+ (let ((process-environment (cl-copy-list (plist-get project
'proc_env))))
(setenv (substring (match-string 1) 1)
(substitute-in-file-name (match-string 2)))
(setq project
- (plist-put project 'proc_env process-environment)))
+ (plist-put project 'proc_env (cl-copy-list
process-environment))))
;; not recognized; assume it is a user-defined variable like
"comp_opt"
(setq project (plist-put project (intern (match-string 1))
(match-string 2)))
@@ -2305,6 +2312,7 @@ Called with four arguments:
- filename containing the identifier
- line number containing the identifier
- column of the start of the identifier
+- local-only; if t, show references in current file only
Displays a buffer in compilation-mode giving locations where the
identifier is declared or referenced.")
@@ -2320,7 +2328,24 @@ identifier is declared or referenced.")
(ada-identifier-at-point)
(file-name-nondirectory (buffer-file-name))
(line-number-at-pos)
- (1+ (current-column)))
+ (1+ (current-column))
+ nil)
+ )
+
+(defun ada-show-local-references ()
+ "Show all references of identifier at point."
+ (interactive)
+ (ada-check-current-project (buffer-file-name))
+
+ (when (null ada-xref-all-function)
+ (error "no cross reference information available"))
+
+ (funcall ada-xref-all-function
+ (ada-identifier-at-point)
+ (file-name-nondirectory (buffer-file-name))
+ (line-number-at-pos)
+ (1+ (current-column))
+ t)
)
(defvar ada-xref-overriding-function nil
diff --git a/packages/ada-mode/ada-mode.info b/packages/ada-mode/ada-mode.info
index 48e429a..0c703b5 100644
--- a/packages/ada-mode/ada-mode.info
+++ b/packages/ada-mode/ada-mode.info
@@ -22,7 +22,7 @@ END-INFO-DIR-ENTRY
File: ada-mode.info, Node: Top, Next: Overview, Prev: (dir), Up: (dir)
-Ada Mode Version 5.2.0
+Ada Mode Version 5.2.1
Copyright (C) 1999 - 2016 Free Software Foundation, Inc.
@@ -1705,6 +1705,8 @@ here's an overview.
* Package organization::
* OpenToken::
* ELPA::
+* Savannah::
+* ada-france::
File: ada-mode.info, Node: Directory structure, Next: Package organization,
Prev: Developer overview, Up: Developer overview
@@ -1992,6 +1994,26 @@ Gnu ELPA via git:
elpa workspace, and for building the elpa archive there.
+File: ada-mode.info, Node: Savannah, Prev: OpenToken, Up: Developer overview
+
+14.5 Savannah
+=============
+
+The ada-mode web page, mailing list, and tarball download are hosted on
+savannah.non-gnu.org, project Emacs Ada mode
+(<https://savannah.nongnu.org/projects/ada-mode/>). See the project
+admin page there for more information.
+
+
+File: ada-mode.info, Node: ada-france, Prev: OpenToken, Up: Developer
overview
+
+14.6 ada-france
+===============
+
+The source code for ada-mode is maintained in a monotone repository in
+the ada-france server <mtn://www.ada-france.org>.
+
+
File: ada-mode.info, Node: GNU Free Documentation License, Next: Index,
Prev: Developer overview, Up: Top
Appendix A GNU Free Documentation License
@@ -2538,15 +2560,17 @@ Node: Automatic casing53921
Node: Comment Handling56625
Node: Key summary57144
Node: Developer overview59771
-Node: Directory structure60111
-Node: Package organization64082
-Node: Ada mode64317
-Node: gpr mode66513
-Node: GNAT core66796
-Node: Wisi67630
-Node: OpenToken68530
-Node: ELPA69132
-Node: GNU Free Documentation License69742
-Node: Index94903
+Node: Directory structure60139
+Node: Package organization64110
+Node: Ada mode64345
+Node: gpr mode66541
+Node: GNAT core66824
+Node: Wisi67658
+Node: OpenToken68558
+Node: ELPA69160
+Node: Savannah69770
+Node: ada-france70108
+Node: GNU Free Documentation License70348
+Node: Index95509
End Tag Table
diff --git a/packages/ada-mode/ada-mode.texi b/packages/ada-mode/ada-mode.texi
index 51c7825..755347a 100755
--- 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.2.0
address@hidden Ada Mode Version 5.2.1
@page
@vskip 0pt plus 1filll
@insertcopying
@@ -36,7 +36,7 @@ developing GNU and promoting software freedom.''
@node Top, Overview, (dir), (dir)
-Ada Mode Version 5.2.0
+Ada Mode Version 5.2.1
@ifnottex
@insertcopying
@@ -1821,6 +1821,8 @@ sources, here's an overview.
* Package organization::
* OpenToken::
* ELPA::
+* Savannah::
+* ada-france::
@end menu
@node Directory structure, Package organization, Developer overview, Developer
overview
@@ -2095,6 +2097,20 @@ git clone <login>@@git.savannah.gnu.org/emacs/elpa.git
@file{build/Makefile} contains targets for copying Ada mode source to
the elpa workspace, and for building the elpa archive there.
address@hidden Savannah, , OpenToken, Developer overview
address@hidden Savannah
+
+The ada-mode web page, mailing list, and tarball download are hosted
+on savannah.non-gnu.org, project Emacs Ada mode
+(@url{https://savannah.nongnu.org/projects/ada-mode/}). See the
+project admin page there for more information.
+
address@hidden ada-france, , OpenToken, Developer overview
address@hidden ada-france
+
+The source code for ada-mode is maintained in a monotone repository in
+the ada-france server @url{mtn://www.ada-france.org}.
+
@node GNU Free Documentation License, Index, Developer overview, Top
@appendix GNU Free Documentation License
@include doclicense.texi
diff --git a/packages/ada-mode/ada-wisi-opentoken.el
b/packages/ada-mode/ada-wisi-opentoken.el
old mode 100644
new mode 100755
index fbc4daf..374c599
--- a/packages/ada-mode/ada-wisi-opentoken.el
+++ b/packages/ada-mode/ada-wisi-opentoken.el
@@ -1,7 +1,7 @@
;; ada-wisi-opentoken.el --- An indentation function for ada-wisi that indents
-*- lexical-binding:t -*-
;; OpenTokengrammar statements nicely.
-;; Copyright (C) 2013-2015 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
@@ -46,13 +46,22 @@
(let ((token-text (wisi-token-text (wisi-backward-token))))
(cond
((equal token-text "<=")
- (back-to-indentation)
- (+ (current-column) ada-indent-broken))
+ (+ (current-indentation) ada-indent-broken))
((member token-text '("+" "&"))
(while (not (equal "<=" (wisi-token-text (wisi-backward-token)))))
- (back-to-indentation)
- (+ (current-column) ada-indent-broken))
+ (+ (current-indentation) ada-indent-broken))
+
+ ((equal token-text "and")
+ (wisi-goto-containing (wisi-backward-cache))
+ ;; test/ada_mode-opentoken.ads
+ ;; Tokens.Statement <= Add_Statement and
+ ;; Add_Statement <=
+ ;; ... and
+ ;; Add_Statement <=
+ ;;
+ ;; point is on :=
+ (+ (current-indentation) ada-indent-broken))
))))
(defconst ada-wisi-opentoken-align
diff --git a/packages/ada-mode/ada-wisi.el b/packages/ada-mode/ada-wisi.el
old mode 100644
new mode 100755
index 57fd495..d4ae61f
--- a/packages/ada-mode/ada-wisi.el
+++ b/packages/ada-mode/ada-wisi.el
@@ -39,6 +39,8 @@
block-middle ;; not start of statement
block-start ;; start of block is start of statement
close-paren
+ expression-start
+ label
list-break
name
name-paren ;; anything that looks like a procedure call, since the grammar
can't distinguish most of them
@@ -54,137 +56,193 @@
;;;; indentation
(defun ada-wisi-current-indentation ()
- "Return indentation appropriate for point on current line:
-if not in paren, beginning of line
-if in paren, pos following paren."
- (if (not (ada-in-paren-p))
- (current-indentation)
-
- (or
- (save-excursion
- (let ((line (line-number-at-pos)))
- (ada-goto-open-paren 1)
- (when (= line (line-number-at-pos))
- (current-column))))
- (save-excursion
- (back-to-indentation)
- (current-column)))
- ))
-
-(defun ada-wisi-indent-cache (offset cache)
- "Return indentation of OFFSET plus indentation of line containing point.
Point must be at CACHE."
- (let ((indent (current-indentation)))
- (cond
- ;; special cases
- ;;
- ((eq 'LEFT_PAREN (wisi-cache-token cache))
- ;; test/ada_mode-long_paren.adb
- ;; (RT => RT,
- ;; Monitor => True,
- ;; RX_Enable =>
- ;; (RX_Torque_Subaddress |
- ;; indenting '(RX_'
- ;;
- ;; test/ada_mode-parens.adb
- ;; return Float (
- ;; Integer'Value
- ;; (Local_6));
- ;; indenting '(local_6)'; 'offset' = ada-indent - 1
- (+ (current-column) 1 offset))
-
- ((save-excursion
- (let ((containing (wisi-goto-containing-paren cache)))
- (and containing
- ;; test/ada_mode-conditional_expressions.adb
- ;; K2 : Integer := (if J > 42
- ;; then -1
- ;; indenting 'then'; offset = 0
- ;;
- ;; L1 : Integer := (case J is
- ;; when 42 => -1,
- ;;
- ;; test/indent.ads
- ;; C_S_Controls : constant
- ;; CSCL_Type :=
- ;; CSCL_Type'
- ;; (
- ;; 1 => -- Used to be aligned on "CSCL_Type'"
- ;; -- aligned with previous comment.
- ;; IO_CPU_Control_State_S_Pkg.CPU2_Fault_Status_Type'
- ;; (Unused2 => 10, -- Used to be aligned on "1 =>"
- ;; indenting '(Unused2'
- (+ (current-column) offset)))))
-
- ;; all other structures
- (t
- ;; current cache may be preceded by something on same
- ;; line. Handle common cases nicely.
- (while (and cache
- (or
- (not (= (current-column) indent))
- (eq 'EQUAL_GREATER (wisi-cache-token cache))))
- (when (and
- (eq 'WHEN (wisi-cache-token cache))
- (not (eq 'exit_statement (wisi-cache-nonterm cache))))
- (setq offset (+ offset ada-indent-when)))
- (setq cache (wisi-goto-containing cache))
- (setq indent (current-indentation)))
-
+ "Return indentation of current line, taking into account leading parens and
labels."
+ (let ((in-paren (ada-in-paren-p))
+ cache)
+ (save-excursion
+ (back-to-indentation)
(cond
- ((null cache)
- ;; test/ada_mode-opentoken.ads
- ;; private package GDS.Commands.Add_Statement is
- ;; type Instance is new Nonterminal.Instance with null record;
- ;;
- ;; test/ada_mode-nominal.adb
- ;; return B : Integer :=
- ;; (Local_Function);
- (+ indent offset))
+ ((and (eq ?\( (char-after (point)))
+ in-paren)
+ (forward-same-syntax) ;; skip all leading parens
+ (current-column))
- ((eq 'label_opt (wisi-cache-token cache))
- (+ indent (- ada-indent-label) offset))
+ ((and (setq cache (wisi-get-cache (point)))
+ (eq 'label (wisi-cache-class cache)))
+ (- (current-column) ada-indent-label))
(t
- ;; test/ada_mode-generic_instantiation.ads
- ;; function Function_1 is new Instance.Generic_Function
- ;; (Param_Type => Integer,
- ;;
- ;; test/ada_mode-nested_packages.adb
- ;; function Create (Model : in Integer;
- ;; Context : in String) return String is
- ;; ...
- ;; Cache : array (1 .. 10) of Boolean := (True, False, others =>
False);
- (+ indent offset))
- ))
- )))
+ (current-column))
-(defun ada-wisi-indent-containing (offset cache &optional before)
+ ))))
+
+(defun ada-wisi-indent-containing (offset cache &optional before indenting)
"Return indentation of OFFSET plus indentation of token containing CACHE.
-BEFORE should be t when called from ada-wisi-before-cache, nil otherwise."
- (save-excursion
- (cond
- ((markerp (wisi-cache-containing cache))
- (ada-wisi-indent-cache offset (wisi-goto-containing cache)))
+point should be at CACHE.
+BEFORE should be t when called from ada-wisi-before-cache, nil otherwise.
+If may be in parens, INDENTING must be point at indenting token."
+ ;; First move to the right containing token
+ (while
+ (and (progn
+ (when (and (eq (wisi-cache-token cache) 'WHEN)
+ (memq (wisi-cache-nonterm cache)
+ '(case_statement_alternative
+ ;; test/ada_mode-nominal.adb
+ ;; case Local_4 is
+ ;; when A =>
+ case_expression_alternative
+ ;; test/ada_mode-conditional_expressions.adb
+ ;; elsif K = 0 then
+ ;; (case J is
+ ;; when 42 => -1,
+ exception_handler
+ ;; test/ada_mode-nominal.adb
+ ;; exception
+ ;; when others =>
+ ;; return 0.0;
+ select_alternative
+ ;; test/ada_mode-nominal.adb
+ ;; or
+ ;; when Started => -- Ada mode 4.01
ada-when-indent, GPS ada-indent
+ variant
+ ;; test/generic_param.adb
+ ;; type Rte_Item_T (Item_Type : Item_Type_T :=
Fix) is record
+ ;; case Item_Type is
+ ;; when Fix | Airport =>
+ )))
+ (setq offset (+ offset ada-indent-when)))
+ (setq cache (wisi-goto-containing cache nil)))
+ (or (memq
+ (wisi-cache-token cache)
+ '(EQUAL_GREATER
+ ;; test/ada_mode-nominal.adb
+ ;; case Local_4 is
+ ;; when
+ ;; ...
+ ;; => -- Ada mode 4.01 indentation
+ ;; ...
+ ;; Loop_1 :
+ IS
+ ;; test/ada_mode-nominal.adb
+ ;; package body Ada_Mode.Nominal
+ ;; ...
+ ;; is
+ ;; use Ada.Strings;
+ ))
+ (memq
+ (wisi-cache-nonterm cache)
+ '(name
+ ;; test/ada_mode-nominal.adb
+ ;; raise Constraint_Error with Count'Image (Line (File)) &
+ ;; "foo";
+ ;;
+ ;; test/ada_mode-slices.adb
+ ;; Put_Line(Day'Image(D1) & " - " & Day'Image(D2) & " = " &
+ ;; Integer'Image(N));
+ ))
+ (memq
+ (wisi-cache-class cache)
+ '(list-break
+ ;; test/ada_mode-nominal.adb
+ ;; 3
+ ;; => (others => 3.0));
+ ))
+ (and (not (eq (current-column) (current-indentation)))
+ (memq (wisi-cache-class cache)
+ '(block-start
+ ;; test/ada_mode-nominal.adb
+ ;; or when Started
+ ;; =>
+ block-middle
+ ;; test/ada_mode-quantified_expressions.adb
+ ;; for Element : Float of reverse
+ ;; Board loop
+ ;; Element := Element * 2.0;
+ ))
+ (not (eq (wisi-cache-token cache) 'RECORD))
+ ;; test/ada_mode-nominal.ads
+ ;; is tagged record
+ ;; Component_1 : Integer; -- end 2
+ )
+ )))
- (t
+ (let ((cur-line (line-number-at-pos (point)))
+ (paren-line (line-number-at-pos (nth 1 (syntax-ppss)))))
+ (cond
+ (cache
(cond
- ((ada-in-paren-p)
- (ada-goto-open-paren 1)
- (+ (current-column) offset))
+ ((and (ada-in-paren-p)
+ (eq cur-line paren-line)
+ (memq (wisi-cache-class cache)
+ '(block-middle
+ ;; ada_mode-conditional_expressions.adb
+ ;; K := (if K < 0 then 42
+ ;; elsif K = 0 then
+
+ expression-start
+ ;; test/ada_mode-parens.adb
+ ;; := Local_11_Type'(A => Integer
+ ;; (1.0),
+
+ statement-start
+ ;; ada_mode-conditional_expressions.adb
+ ;; K1 : Integer := (if J > 42 then -1
+ ;; else +1);
+ )))
+
+ (wisi-indent-paren (1+ offset)))
+
+ ((eq 'LEFT_PAREN (wisi-cache-token cache))
+ ;; test/ada_mode-parens.adb
+ ;; or else ((B.all
+ ;; and then C)
+ ;; or else
+ ;;
+ ;; test/ada_mode-nominal.adb
+ ;; => (others
+ ;; => 2.0),
+ (goto-char indenting)
+ (wisi-indent-paren (1+ offset)))
+
+ ((memq (wisi-cache-class cache)
+ '(expression-start))
+ ;; test/indent.ads
+ ;; in higher-level parens, but that's not significant
+ ;; IO_CPU_Control_State_S_Pkg.CPU2_Fault_Status_Type'
+ ;; (Unused2 => 10, -- Used to be aligned on "1 =>"
+ ;;
+ ;; test/ada_mode-conditional_expressions.adb
+ ;; when B =>
+ ;; Fun (J) = 0
+ ;; or else M,
+ (+ (ada-wisi-current-indentation) offset))
(t
- ;; at outermost containing statement. If called from
- ;; ada-wisi-before-cache, we want to ignore OFFSET (indenting
- ;; 'package' in a package spec). If called from
- ;; ada-wisi-after-cache, we want to include offset (indenting
- ;; first declaration in the package).
- (if before 0 offset))
+ ;; not in paren
+ ;; test/ada_mode-nominal.adb
+ ;; function Local_Function return Integer
+ ;; is -- target 3
+ (+ (ada-wisi-current-indentation) offset))
))
- )))
+
+ (t
+ ;; at outermost containing statement. If called from
+ ;; ada-wisi-before-cache, we want to ignore OFFSET (indenting
+ ;; 'package' in a package spec). If called from
+ ;; ada-wisi-after-cache, we want to include offset (indenting
+ ;; first declaration in the package).
+ (if before
+ ;; test/ada_mode-nominal.adb
+ ;; package body Ada_Mode.Nominal
+ 0
+ ;; test/ada_mode-nominal.adb
+ ;; use Ada.Strings;
+ offset)
+ ))))
(defun ada-wisi-indent-list-break (cache prev-token)
- "Return indentation for a token contained by CACHE, which must be a
list-break.
-point must be on CACHE. PREV-TOKEN is the token before the one being indented."
+ "Return indentation for a token contained or preceeded by CACHE, which must
be a list-break.
+Point must be on CACHE. PREV-TOKEN is the token before the one being indented."
(let ((break-point (point))
(containing (wisi-goto-containing cache)))
(cl-ecase (wisi-cache-token containing)
@@ -195,15 +253,18 @@ point must be on CACHE. PREV-TOKEN is the token before
the one being indented."
;; test/parent.adb
;; Append_To (Formals,
;; Make_Parameter_Specification (Loc,
- ;; indenting 'Make_...'
;;
;; test/ada_mode-generic_instantiation.ads
;; function Function_1 is new Instance.Generic_Function
;; (Param_Type => Integer,
;; Result_Type => Boolean,
- ;; Threshold => 2);
- ;; indenting 'Result_Type'
+ ;;
+ ;; test/ada_mode-parens.adb
+ ;; Local_14 : Local_14_Type :=
+ ;; ("123",
+ ;; "456" &
(+ (current-column) 1)
+
;; else hanging
;;
;; test/ada_mode-parens.adb
@@ -212,7 +273,6 @@ point must be on CACHE. PREV-TOKEN is the token before the
one being indented."
;; 2 => (1, 1, 1),
;; 3 |
;; 4 => (2, 2, 2));
- ;; indenting '4 =>'
(+ (current-column) 1 ada-indent-broken)))
(IS
@@ -220,7 +280,6 @@ point must be on CACHE. PREV-TOKEN is the token before the
one being indented."
;; L1 : Integer := (case J is
;; when 42 => -1,
;; -- comment aligned with 'when'
- ;; indenting '-- comment'
(wisi-indent-paren (+ 1 ada-indent-when)))
(WITH
@@ -230,7 +289,6 @@ point must be on CACHE. PREV-TOKEN is the token before the
one being indented."
;; (Default_Parent with
;; Child_Element_1 => 10,
;; Child_Element_2 => 12.0,
- ;; indenting 'Child_Element_2'
(wisi-indent-paren 1))
(aspect_specification_opt
@@ -239,7 +297,6 @@ point must be on CACHE. PREV-TOKEN is the token before the
one being indented."
;; with
;; Constant_Indexing => Constant_Reference,
;; Variable_Indexing => Reference,
- ;; indenting 'Variable_Indexing'
(+ (current-indentation) ada-indent-broken))
))
)
@@ -247,595 +304,283 @@ point must be on CACHE. PREV-TOKEN is the token before
the one being indented."
(defun ada-wisi-before-cache ()
"Point is at indentation, before a cached token. Return new indentation for
point."
- (let ((pos-0 (point))
- (cache (wisi-get-cache (point)))
- (prev-token (save-excursion (wisi-backward-token)))
- )
- (when cache
- (cl-ecase (wisi-cache-class cache)
- (block-start
- (cl-case (wisi-cache-token cache)
- (IS ;; subprogram body
- (ada-wisi-indent-containing 0 cache t))
-
- (RECORD
- ;; test/ada_mode-nominal.ads; ada-indent-record-rel-type = 3
- ;; type Private_Type_2 is abstract tagged limited
- ;; record
- ;; indenting 'record'
- ;;
- ;; type Limited_Derived_Type_1d is
- ;; abstract limited new Private_Type_1 with
- ;; record
- ;; indenting 'record'
- ;;
- ;; for Record_Type_1 use
- ;; record
- ;; indenting 'record'
- (let ((containing (wisi-goto-containing cache)))
- (while (not (memq (wisi-cache-token containing) '(FOR TYPE)))
- (setq containing (wisi-goto-containing containing)))
- (+ (current-column) ada-indent-record-rel-type)))
-
- (t ;; other
- (ada-wisi-indent-containing ada-indent cache t))))
-
- (block-end
- (cl-case (wisi-cache-nonterm cache)
- (record_definition
- (save-excursion
- (wisi-goto-containing cache);; now on 'record'
- (current-indentation)))
-
- (t
- (ada-wisi-indent-containing 0 cache t))
- ))
-
- (block-middle
- (cl-case (wisi-cache-token cache)
- (WHEN
- (ada-wisi-indent-containing ada-indent-when cache t))
-
- (t
- (ada-wisi-indent-containing 0 cache t))
- ))
-
- (close-paren (wisi-indent-paren 0))
-
- (keyword
- ;; defer to after-cache)
- nil)
-
- (list-break
- ;; test/ada_mode-parens.adb
- ;; Foo (X
- ;; , -- used to get an error here; don't care about the
actual indentation
- ;; indenting ','
- ;;
- ;; We don't actually care what the indentation is, since this
- ;; should only occur while editing; defer to after-cache
- ;; avoids an error and does something reasonable.
- nil)
-
- (name
- (cond
- ((let ((temp (save-excursion (wisi-goto-containing cache))))
- (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)
- ))
-
- (name-paren
- ;; defer to ada-wisi-after-cache, for consistency
- nil)
+ (save-excursion
+ (let ((start (point))
+ (cache (wisi-get-cache (point))))
+ (when cache
+ (cl-ecase (wisi-cache-class cache)
+ (block-start
+ (cl-case (wisi-cache-token cache)
+ (IS ;; subprogram body
+ (ada-wisi-indent-containing 0 cache t))
- (open-paren
- (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; containing is '),' ; 0
+ (RECORD
+ ;; test/ada_mode-nominal.ads; ada-indent-record-rel-type = 3
+ ;; type Private_Type_2 is abstract tagged limited
+ ;; record
;;
- ;; 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))
- (cl-ecase (wisi-cache-token containing)
- (COMMA
- ;; test/ada_mode-long_paren.adb
- ;; (RT => RT,
- ;; Monitor => True,
- ;; RX_Enable =>
- ;; (RX_Torque_Subaddress |
- ;; indenting (RX_Torque
- (ada-wisi-indent-containing ada-indent-broken containing t))
- (LEFT_PAREN
- ;; test/ada_mode-parens.adb
- ;; (1 =>
- ;; (1 => 12,
- ;; indenting '(1 => 12'; containing is '=>'
- (ada-wisi-indent-cache (1- ada-indent) containing))
- (WHEN
- ;; test/ada_mode-conditional_expressions.adb
- ;; when 1 =>
- ;; (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)
- ;; test/ada_mode-nominal.adb
- ;; function Function_Access_11
- ;; (A_Param : in Float)
- ;; -- EMACSCMD:(test-face "function" font-lock-keyword-face)
- ;; return access function
- ;; (A_Param : in Float)
- ;; return
- ;; Standard.Float -- Ada mode 4.01, GPS do this differently
- ;; indenting second '(A_Param)
- (+ (current-indentation) -1 ada-indent))
-
- (LEFT_PAREN
- ;; test/ada_mode-parens.adb
- ;; or else ((B.all
- ;; and then C)
- ;; or else
- ;; (D
- ;; indenting (D
- (+ (current-column) 1 ada-indent-broken))
+ ;; type Limited_Derived_Type_1d is
+ ;; abstract limited new Private_Type_1 with
+ ;; record
+ ;;
+ ;; for Record_Type_1 use
+ ;; record
+ (let ((containing (wisi-goto-containing cache)))
+ (while (not (memq (wisi-cache-token containing) '(FOR TYPE)))
+ (setq containing (wisi-goto-containing containing)))
+ (+ (current-column) ada-indent-record-rel-type)))
(WHEN
;; test/ada_mode-nominal.adb
- ;;
- ;; when Local_1 = 0 and not
- ;; (Local_2 = 1)
- ;; indenting (Local_2
- ;;
- ;; entry E3
- ;; (X : Integer) when Local_1 = 0 and not
- ;; (Local_2 = 1)
- (+ (ada-wisi-current-indentation) ada-indent-broken))
+ ;; or
+ ;; when Started => -- Ada mode 4.01 ada-when-indent, GPS
ada-indent
+ (ada-wisi-indent-containing 0 cache t))
- ((IDENTIFIER selected_component name)
- ;; test/indent.ads
- ;; CSCL_Type'
- ;; (
- ;; identing (
- ;;
- ;; test/ada_mode-parens.adb
- ;; Check
- ;; ("foo bar",
- ;; A
- ;; (1),
- ;; A(2));
- ;; indenting (1)
- ;;
- ;; test/ada_mode-parens.adb
- ;; Local_11 : Local_11_Type := Local_11_Type'
- ;; (A => Integer
- ;; (1.0),
- ;; B => Integer
- ;; (2.0));
- ;;
- ;; test/ada_mode-parens.adb
- ;; Local_12 : Local_11_Type
- ;; := Local_11_Type'(A => Integer
- ;; (1.0),
- ;; indenting (1.0)
- (+ (ada-wisi-current-indentation) ada-indent-broken))
-
- (t
- (cond
- ((memq (wisi-cache-class containing) '(block-start
statement-start))
- ;; test/ada_mode-nominal.adb
- ;; entry E2
- ;; (X : Integer)
- ;; indenting (X
- (ada-wisi-indent-cache ada-indent-broken containing))
+ (t ;; other
+ (ada-wisi-indent-containing ada-indent cache t))))
- (t
- ;; Open paren in an expression.
- ;;
- ;; test/ada_mode-conditional_expressions.adb
- ;; L0 : Integer :=
- ;; (case J is when 42 => -1, when Integer'First .. 41 => 0,
when others => 1);
- ;; indenting (case
- (ada-wisi-indent-containing ada-indent-broken containing t))
- ))
- )))
+ (block-end
+ (cl-case (wisi-cache-nonterm cache)
+ (record_definition
+ (save-excursion
+ (wisi-goto-containing cache);; now on 'record'
+ (current-indentation)))
- (return-with-params;; parameter list
- (let ((return-pos (point)))
- (wisi-goto-containing cache nil) ;; matching 'function'
- (cond
- ((<= ada-indent-return 0)
- ;; indent relative to "("
- (wisi-forward-find-class 'open-paren return-pos)
- (+ (current-column) (- ada-indent-return)))
+ (t
+ (ada-wisi-indent-containing 0 cache t))
+ ))
- (t
- (+ (current-column) ada-indent-return))
- )))
+ (block-middle
+ (ada-wisi-indent-containing 0 cache t start))
- (return-without-params;; no parameter list
- (wisi-goto-containing cache nil) ;; matching 'function'
- (+ (current-column) ada-indent-broken))
+ (close-paren
+ (wisi-indent-paren 0))
- (statement-end
- (ada-wisi-indent-containing ada-indent-broken cache t))
+ (expression-start
+ ;; defer to after-cache)
+ nil)
- (statement-other
- (save-excursion
- (let ((containing (wisi-goto-containing cache nil)))
- (while (not (wisi-cache-nonterm containing))
- (setq containing (wisi-goto-containing containing)))
+ (label
+ ;; test/ada_mode-nominal.adb
+ ;; <<Label_1>>
+ ;;
+ ;; Block_1:
+ ;; declare -- label, no statements between begin, label
+ ;; indenting Block_1
+ (ada-wisi-indent-containing (+ ada-indent-label ada-indent) cache t))
- (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-broken))
- ))
+ (list-break
+ ;; test/ada_mode-parens.adb
+ ;; Slice_1 (1
+ ;; , -- used to get an error here; don't care about the
actual indentation
+ ;;
+ ;; We don't actually care what the indentation is, since this
+ ;; should only occur while editing; defer to after-cache
+ ;; avoids an error and does something reasonable.
+ nil)
- (object_renaming_declaration
- (+ (current-indentation) ada-indent-broken))
- ))
+ (name
+ (cond
+ ((let ((temp (wisi-get-containing-cache 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);
+ ;;
+ ;; not overriding function
+ ;; Function_2e (Param : in Parent_Type_1) return Float;
+ (ada-wisi-indent-containing ada-indent-broken cache t))
- (t
- (cl-ecase (wisi-cache-nonterm containing)
+ (t
+ ;; defer to ada-wisi-after-cache, for consistency
+ nil)
+ ))
- ;; abstract_subprogram_declaration with subprogram_body
+ (name-paren
+ ;; defer to ada-wisi-after-cache, for consistency
+ nil)
- (aggregate
- ;; test/ada_mode-nominal-child.adb
- ;; return (Parent_Type_1
- ;; with 1, 0.0, False);
- ;; indenting 'with'; containing is '('
- (+ (current-column) 1))
+ (open-paren
+ ;; In some cases, we indent the leading paren one less than
+ ;; normal, so the following lines look normal. However, when
+ ;; ada-indent-broken = 1- ada-indent, the distinction is
+ ;; moot.
+ (let ((content (save-excursion (wisi-forward-cache))))
+ (cond
+ ((or
+ (memq (wisi-cache-nonterm cache)
+ '(formal_part)
+ ;; test/ada_mode-nominal.adb
+ ;; entry E2
+ ;; (X : Integer)
+ )
+ (memq (wisi-cache-nonterm content)
+ '(case_expression
+ ;; test/ada_mode-conditional_expressions.adb
+ ;; K :=
+ ;; (case Bounded (K) is
+
+ if_expression
+ ;; test/ada_mode-conditional_expressions.adb
+ ;; when 1 =>
+ ;; (if J > 42
+ )))
+
+ (ada-wisi-indent-containing (1- ada-indent) cache t start))
- (component_declaration
- ;; test/ada_mode-nominal.ads Record_Type_3 ':'
- (+ (current-column) ada-indent-broken))
+ (t
+ (ada-wisi-indent-containing ada-indent-broken cache t start))
+ )))
+
+ (return-with-params
+ ;; test/ada_mode-options-intent_return_1.ads, _2, _3
+ ;; indenting 'return' after ()
+ (let ((return-pos (point)))
+ (wisi-goto-containing cache nil) ;; matching 'function'
+ (cond
+ ((<= ada-indent-return 0)
+ ;; indent relative to "("
+ (wisi-forward-find-class 'open-paren return-pos)
+ (+ (current-column) (- ada-indent-return)))
- (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))
+ (t
+ (+ (current-column) ada-indent-return))
+ )))
- ;; expression_function_declaration with subprogram_body
+ (return-without-params;; no parameter list
+ ;; test/ada_mode-options-intent_return_1.ads, _2, _3
+ ;; indenting 'return' with no ()
+ (wisi-goto-containing cache nil) ;; matching 'function'
+ (+ (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))
+ (statement-end
+ (ada-wisi-indent-containing ada-indent-broken cache t))
- ((full_type_declaration
-
- ;; shared code, but out of alphabetical order:
- protected_type_declaration
- single_protected_declaration
- single_task_declaration
- subtype_declaration
- task_type_declaration)
-
- (while (not (memq (wisi-cache-token containing)
'(PROTECTED SUBTYPE TASK TYPE)))
- (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'
- ;;
- ;; test/ada_mode.ads
- ;; protected Separate_Protected_Body
- ;; with
- ;; Priority => 5
- ;; indenting 'with'
- ;;
- ;; test/ada_nominal.ads
- ;; task type Task_Type_1 (Name : access String)
- ;; with
- ;; Storage_Size => 512 + 256
- ;; 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))
+ (statement-other
+ (cond
+ ((and (eq (wisi-cache-token cache) 'IS)
+ (memq (wisi-cache-nonterm cache)
+ '(expression_function_declaration
+ ;; test/ada_mode-expression-functions.ads
+ ;; function Square (A : in Float) return Float
+ ;; is (A * A);
+
+ null_procedure_declaration
+ ;; test/ada_mode-nominal.ads
+ ;; procedure Procedure_3c
+ ;; is null;
+ )))
+ (ada-wisi-indent-containing ada-indent-broken cache t start))
+
+ ((and (eq (wisi-cache-token cache) 'WITH)
+ (eq (wisi-cache-nonterm cache) 'derived_type_definition))
+ ;; test/ada_mode-nominal.ads
+ ;; type Limited_Derived_Type_2a is abstract limited new
Private_Type_1
+ ;; with record
+ (ada-wisi-indent-containing ada-indent-record-rel-type cache t
start))
- (generic_renaming_declaration
- ;; indenting keyword following 'generic'
- (current-column))
-
- ;; null_procedure_declaration with subprogram_body
-
- (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))
- ))
-
- ((package_declaration
- package_body)
- ;; test/ada_mode-nominal.ads
- ;; package Ada_Mode.Nominal
- ;; with
- ;; SPARK_Mode => On
- ;; is
- ;; indenting 'with'
- ;;
- ;; test/ada_mode-nominal.adb
- ;; package body Ada_Mode.Nominal
- ;; with
- ;; SPARK_Mode => On
- ;; is
- (save-excursion
- (current-column)))
-
- (private_extension_declaration
- (cl-ecase (wisi-cache-token cache)
- (WITH
- ;; test/aspects.ads
- ;; type Date_Set is tagged private
- ;; with
- ;; indenting 'with'
- (current-indentation))
-
- (t
- ;; test/ada_mode-nominal.ads
- ;; type Limited_Derived_Type_3 is abstract limited
- ;; new Private_Type_1 with private;
- ;; indenting 'new'
- (+ (current-indentation) ada-indent-broken))
- ))
-
- (private_type_declaration
- ;; test/aspects.ads
- ;; type Vector is tagged private
- ;; with
- ;; indenting 'with'
- (current-indentation))
-
- ;; protected_type_declaration with full_type_declaration
-
- (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))
-
- ;; single_protected_declaration with full_type_declaration
- ;; single_task_declaration with full_type_declaration
-
- (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
+ (t
+ (cl-case (wisi-cache-nonterm cache)
+ ((generic_renaming_declaration subprogram_renaming_declaration)
+ ;; special case for ada-indent-renames
+
+ (cl-ecase (wisi-cache-token cache)
+ ((FUNCTION PROCEDURE)
+ ;; test/ada_mode-generic_instantiation.ads
+ ;; generic
+ ;; function Gen_Function_4 renames Instance.Generic_Function;
+ ;;
+ ;; generic
+ ;; procedure
+ (ada-wisi-indent-containing 0 cache t start))
+
+ (RENAMES
+ ;; test/ada_mode-generic_instantiation.ads
+ ;; generic function Gen_Function_2
+ ;; renames Instance.Generic_Function;
+ (wisi-goto-containing cache)
+ (wisi-forward-find-token '(FUNCTION PROCEDURE) start)
+ (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 start 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-broken))
+ ))
+ ))
- ;; shared code, but out of alphabetical order:
- abstract_subprogram_declaration
- expression_function_declaration
- 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))
- ))
-
- ;; subtype_declaration, task_type_declaration with
full_type_declaration
-
- ))))
- )))) ;; end statement-other
-
- (statement-start
- (cond
- ((eq 'label_opt (wisi-cache-token cache))
- (ada-wisi-indent-containing (+ ada-indent-label ada-indent) cache t))
+ ((aggregate
+ ;; test/ada_mode-nominal-child.adb
+ ;; return (Parent_Type_1
+ ;; with 1, 0.0, False);
- (t
- (let ((containing-cache (wisi-get-containing-cache cache)))
- (if (not containing-cache)
- ;; at bob
- 0
- ;; not at bob
- (cl-case (wisi-cache-class containing-cache)
- ((block-start block-middle)
- (wisi-goto-containing cache)
- (cl-case (wisi-cache-nonterm containing-cache)
- (record_definition
- (+ (current-indentation) ada-indent))
+ aspect_specification_opt
+ ;; test/ada_mode-nominal.ads
+ ;; package Ada_Mode.Nominal
+ ;; with
+ ;;
+ ;; test/ada_mode-nominal.adb
+ ;; package body Ada_Mode.Nominal
+ ;; with
- (t
- (ada-wisi-indent-cache ada-indent containing-cache))
- ))
+ elsif_expression_item
+ ;; test/ada_mode-conditional_expressions.adb
+ ;; K := (if K < 0 then 42
+ ;; elsif K = 0 then
+
+ elsif_statement_item
+ ;; not in paren
+ ;; test/g-comlin.adb
+ ;; elsif Current_Argument < CL.Argument_Count then
+
+ generic_renaming_declaration
+ ;; test/ada_mode-generic_instantiation.ads
+ ;; generic
+ ;; procedure
+
+ subprogram_body
+ subprogram_declaration
+ subprogram_specification
+ overriding_indicator_opt
+ abstract_subprogram_declaration
+ expression_function_declaration
+ null_procedure_declaration
+ ;; test/ada_mode-nominal.ads
+ ;; not
+ ;; overriding
+ ;;
+ ;; not overriding
+ ;; procedure Procedure_1b
+ )
+ (ada-wisi-indent-containing 0 cache t start))
- (list-break
- (ada-wisi-indent-list-break cache prev-token))
+ (t
+ (ada-wisi-indent-containing ada-indent-broken cache t start))
+ ))
+ )) ;; end statement-other
- ))))
- ))
- ))
- ))
+ (statement-start
+ (ada-wisi-indent-containing ada-indent cache t start))
+ ))
+ )))
(defun ada-wisi-after-cache ()
- "Point is at indentation, not before a cached token. Find previous
-cached token, return new indentation for point."
+ "Point is at indentation. Find previous cached token, return
+new indentation for point."
(save-excursion
(let ((start (point))
(prev-token (save-excursion (wisi-backward-token)))
@@ -846,13 +591,16 @@ cached token, return new indentation for point."
0)
(t
- (while (memq (wisi-cache-class cache) '(keyword name name-paren type))
+ (while (memq (wisi-cache-class cache) '(name name-paren))
;; not useful for indenting
(setq cache (wisi-backward-cache)))
(cl-ecase (wisi-cache-class cache)
(block-end
;; indenting block/subprogram name after 'end'
+ ;; test/ada_mode-nominal.adb
+ ;; end
+ ;; Function_Access_11;
(wisi-indent-current ada-indent-broken))
(block-middle
@@ -861,152 +609,276 @@ cached token, return new indentation for point."
(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))
+ ;; test/ada_mode-nominal.adb
+ ;; case Param_1 is
+ ;; -- comment after "is", before "when"
+ (ada-wisi-indent-containing 0 cache))
(t
- (+ (ada-wisi-indent-containing ada-indent cache t)))
+ ;; test/ada_mode-nominal.adb
+ ;; function F2 (Param_1 : Discrete_Type_1; B : Float) return
Float
+ ;; is
+ ;; Local : Object_Access_Type_0a := new Float'(9.0);
+ (+ (ada-wisi-indent-containing ada-indent cache)))
))
((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)))
+ (cl-ecase (wisi-cache-nonterm cache)
+ ((asynchronous_select
+ ;; test/ada_mode-nominal.adb
+ ;; select
+ ;; delay 1.0;
+ ;; then
+ ;; -- The comment after 'null' below has no space
between ';'
+
+ if_statement
+ ;; test/ada_mode-nominal.adb
+ ;; if A_Param > 0.0 then
+ ;; -- EMACSCMD:(test-face "new"
font-lock-keyword-face)
+
+ elsif_statement_item
+ ;; test/ada_mode-nominal.adb
+ ;; then -- 2
+ ;; --EMACSCMD:(progn ...
+
+ selective_accept
+ ;; test/ada_mode-nominal.adb
+ ;; else
+ ;; -- comment after select else
+ )
+ ada-indent)
+
+ ((if_expression
+ ;; test/ada_mode-conditional_expressions.adb
+ ;; K3 : Integer := (if
+ ;; J > 42
+ ;; then
+ ;; -1
+ ;; else
+ ;; +1);
+ ;; indenting -1, +1
+ elsif_expression_item
+ ;; test/ada_mode-conditional_expressions.adb
+ ;; K := (if K < 0 then 42
+ ;; elsif K = 0 then
+ ;; (case J is
+ )
+ ada-indent-broken))))
+ (ada-wisi-indent-containing indent cache nil start)))
(WHEN
- ;; between 'when' and '=>'
- (+ (current-column) ada-indent-broken))
+ (cl-ecase (wisi-cache-nonterm cache)
+ ((case_expression_alternative
+ ;; test/ada_mode-conditional_expressions.adb
+ ;; L2 : Integer := (case J is
+ ;; when
+ ;; 42 => -1,
+
+ case_statement_alternative
+ ;; test/ada_mode-nominal.adb
+ ;; case Local_4 is
+ ;; when
+ ;; A | -- continuation line; ada-indent-broken = 2
+
+ exception_handler
+ ;; test/ada_mode-nominal.adb
+ ;; when -- 2
+ ;; Bad_Thing -- ada-mode 4.01 indentation
+ ;; => -- ""
+ )
+ (+ (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
+ ;; block-middle keyword other than above
+ ;; test/ada_mode-nominal.adb
+ ;; accept Middle_1 (Param_1 : in Integer) do
+ ;; -- a comment after 'do'
+ ;;
+ ;; begin
+ ;; --EMACSCMD:(progn
(ada-goto-declarative-region-start)(looking-at " -- target 5"))
(ada-wisi-indent-containing ada-indent cache nil))
))
(block-start
(cl-case (wisi-cache-nonterm cache)
- (exception_handler
- ;; between 'when' and '=>'
- (+ (current-column) ada-indent-broken))
-
- (if_expression
- (ada-wisi-indent-containing ada-indent-broken cache nil))
-
- (select_alternative
- (ada-wisi-indent-containing (+ ada-indent-when ada-indent-broken)
cache nil))
+ ((exception_handler
+ ;; test/ada_mode-nominal.adb
+ ;; when -- 2
+ ;; Bad_Thing -- ada-mode 4.01 indentation
+
+ select_alternative
+ ;; test/ada_mode-nominal.adb
+ ;; when
+ ;; Started =>
+ )
+ (+ (current-column) ada-indent-broken))
- (t ;; other; normal block statement
- (ada-wisi-indent-cache ada-indent cache))
+ (t
+ ;; test/ada_mode-nominal.adb
+ ;; task body Task_Type_1 is
+ ;; -- a more typical task
+ (+ (ada-wisi-current-indentation) ada-indent))
))
(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))
+ ;; test/ada_mode-parens.adb
+ ;; and then E))
+ ;; or else G
+ (ada-wisi-indent-containing ada-indent-broken cache nil start))
- (list-break
- (ada-wisi-indent-list-break cache prev-token))
+ (expression-start
+ (cond
+ ((eq 'LEFT_PAREN (wisi-cache-token cache))
+ (if (= (point) (cadr prev-token))
+ ;; test/ada_mode-parens.adb
+ ;; Local_9 : String := (
+ ;; "123" &
+ (1+ (current-column))
+
+ ;; not at token preceding indenting token
+ ;; test/ada_mode-nominal.adb
+ ;; 2
+ ;; => (others
+ ;; => 2.0),
+ ;;
+ ;; test/ada_mode-parens.adb
+ ;; A :=
+ ;; (1 |
+ ;; 2 => (0, 0, 0),
+ (+ 1 (current-column) ada-indent-broken)))
- (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:
- ;;
+ (t
+ (let* ((containing1 (wisi-get-containing-cache cache))
+ (containing2 (wisi-get-containing-cache containing1))
+ (containing3 (wisi-get-containing-cache containing2)))
+
+ (cond
+ ((and (eq 'EQUAL_GREATER (wisi-cache-token containing1))
+ (or
+ (eq 'aspect_specification_opt (wisi-cache-nonterm
containing2))
+ (and (eq 'association_list (wisi-cache-nonterm
containing2))
+ (eq 'aspect_specification_opt (wisi-cache-nonterm
containing3)))))
+ ;; special case for aspects
+ ;; test/aspects.ads
+ ;; with Pre => X > 10 and
+
+ (wisi-goto-containing cache);; EQUAL_GREATER
+ (let ((cache-col (current-column))
+ (cache-pos (point))
+ (line-end-pos (line-end-position)))
+ (if (= (+ 2 cache-pos) line-end-pos)
+ ;; Post =>
+ ;; Y >= X and
+ ;; Some_Very_Verbose_Predicate (X, Y);
+ (progn
+ (goto-char cache-pos)
+ (+ (current-indentation) ada-indent-broken))
+ ;; with Pre => X > 10 and
+ ;; X < 50 and
+ (+ 3 cache-col))
+ ))
+
+ (t
+ (let ((cur-line (line-number-at-pos (point)))
+ (paren-line (line-number-at-pos (nth 1 (syntax-ppss)))))
+ (cond
+ ((and (ada-in-paren-p)
+ (eq cur-line paren-line))
+ ;; test/ada_mode-parens.adb
+ ;; Local_2 : Integer := (1 + 2 +
+ ;; 3);
+ ;;
+ ;; test/ada_mode-parens.adb
+ ;; if A.all
+ ;; or else (B.all
+ ;; --EMACSCMD:(test-face "then"
'font-lock-keyword-face)
+ ;; and then C
+ (+ (current-column) ada-indent-broken))
+
+ (t
+ ;; test/ada_mode-conditional_expressions.adb
+ ;; L5 : Boolean :=
+ ;; (case C is
+ ;; when A =>
+ ;; J = 4
+ ;; or else M, -- test case from Piotr Trojanek
+ ;;
+ ;; test/ada_mode-nominal.adb
+ ;; return 1.0 +
+ ;; Function_2a (Parent_Type_1'(1, 2.0, False)) +
+ (+ (ada-wisi-current-indentation) ada-indent-broken))
+ )))
+ )))
+ ));; expression-start
+
+ (label
;; 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))))
+ ;; <<Label_1>>
+ ;; -- a comment after a label
+ (+ (current-column) (- ada-indent-label)))
- ((return-with-params return-without-params)
+ (list-break
;; test/ada_mode-nominal.adb
- ;; function Function_Access_1
- ;; (A_Param : in Float)
- ;; return
- ;; Standard.Float
- ;; indenting 'Standard.Float'
+ ;; with
+ ;; Storage_Size => 512 + 256,
+ ;; Priority => 5;
;;
- ;; test/ada_mode-expression_functions.ads
- ;; function Square (A : in Float) return Float
- ;; is (A * A);
- ;; indenting 'is'
+ ;; (1 => (others => 1.0),
+ ;; 2
;;
- ;; 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))
+ ;; test/format_paramlist.adb
+ ;; procedure X (Y : in Z 'Class := Default_Z;
+ ;; B : access Integer;
+ (ada-wisi-indent-list-break cache prev-token))
+
+ (open-paren
+ (cond
+ ((eq (cadr prev-token) (point))
+ ;; test/ada_mode-parens.adb
+ ;; return Float (
+ ;; Integer'Value
+ (goto-char start)
+ (wisi-indent-paren 1))
+
+ (t
+ ;; test/ada_mode-parens.adb
+ ;; (Left,
+ ;; Right : in Array_Type_1) -- ada-indent-broken to match 4.01
+ (goto-char start)
+ (wisi-indent-paren (1+ ada-indent-broken)))
+ ))
+
+ ((return-with-params
+ ;; test/ada_mode-nominal.adb
+ ;; function Function_Access_1
+ ;; (A_Param : in Float)
+ ;; return
+ ;; Standard.Float
+ ;;
+ ;; test/ada_mode-nominal.ads
+ ;; function Function_2g
+ ;; (Param : in Private_Type_1)
+ ;; return Float
+ ;; is abstract;
+ return-without-params
+ ;; test/ada_mode-nominal.adb
+ ;; type Function_Access_Type_2g is access protected function return
+ ;; access Standard.Float;
+ )
+ (+ (current-indentation) ada-indent-broken))
(statement-end
+ ;; test/ada_mode-nominal.ads
+ ;; pragma Elaborate_Body (Ada_Mode.Nominal);
+ ;; -- Comment after one line of code; broken versions of the
(ada-wisi-indent-containing 0 cache nil))
(statement-other
- (cl-ecase (wisi-cache-token cache)
+ (cl-case (wisi-cache-token cache)
(ABORT
+ ;; test/subdir/ada_mode-separate_task_body.adb
;; select
;; Please_Abort;
;; then
@@ -1015,25 +887,14 @@ cached token, return new indentation for point."
;; 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))
-
(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
+ ;; use Ada.Text_IO,
+ ;; Ada.Numerics, -- used to be indented with
ada-broken-indent
(ada-wisi-indent-containing ada-indent-use cache))
(with_clause
@@ -1047,194 +908,102 @@ cached token, return new indentation for point."
))
))
- (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'
- ;;
- ;; 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))
-
- (paren_expression
- ;; test/ada_mode-expression_functions.ads
- ;; (for some X of Y =>
- ;; Pred (X));
- ;; indenting "Pred"
- (+ (current-column) ada-indent))
-
- (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
+ (cond
+ ((or
+ (eq (wisi-cache-nonterm
+ (wisi-get-containing-cache cache))
+ 'aspect_specification_opt)
+ ;; test/aspects.ads
+ ;; with
+ ;; Pre =>
+ ;; X > 10 and
+ (eq (wisi-cache-nonterm
+ (wisi-get-containing-cache (wisi-get-containing-cache
cache)))
+ 'aspect_specification_opt)
+ ;; test/aspects.ads
+ ;; with Pre => X > 10 and
+ ;; X < 50 and
+ ;; F (X),
+ ;; Post =>
+ ;; Y >= X and
+ )
+ (ada-wisi-indent-containing (* 2 ada-indent-broken) cache))
+
+ ((memq
+ (wisi-cache-nonterm cache)
+ '(case_statement_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))
-
- )))
+ ;; when C =>
+ ;; --EMACSCMD:...
+ exception_handler
+ ;; test/ada_mode-nominal.adb
+ ;; when E : Constraint_Error =>
+ select_alternative
+ ;; test/test_select.adb
+ ;; or
+ ;; when Local = 0 =>
+ ;; --EMACSCMD:(test-face "E2"
'font-lock-function-name-face)
+ ))
+ (ada-wisi-indent-containing ada-indent cache nil start))
+
+ (t
+ ;; test/ada_mode-parens.adb
+ ;; (1 =>
+ ;; 1,
+ ;; 2 =>
+ ;; 1 + 2 * 3,
+ ;; indenting '1,' or '1 +'
+ ;;
+ ;; test/ada_mode-conditional_expressions.adb
+ ;; L3 : Integer := (case J is
+ ;; when 42 =>
+ ;; -1,
+ ;; when Integer'First .. 41 =>
+ ;; 0,
+ ;; indenting -1, 0
+ (ada-wisi-indent-containing ada-indent-broken cache nil start))
+ ))
(IS
- (setq cache (wisi-goto-containing cache))
- (cl-ecase (wisi-cache-nonterm cache)
+ (cl-case (wisi-cache-nonterm cache)
(full_type_declaration
- ;; ada_mode/nominal.ads
+ ;; test/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;
-
- private_type_declaration
- ;; type Private_Type_2 is abstract tagged limited
- ;; private;
- )
- (+ (current-column) ada-indent-broken))
+ (goto-char start)
+ (if (wisi-forward-find-token 'RECORD (line-end-position) t)
+ ;; 'record' on line being indented
+ (ada-wisi-indent-containing ada-indent-record-rel-type
cache)
+ ;; 'record' on later line
+ (ada-wisi-indent-containing ada-indent-broken cache)))
+
+ (t
+ ;; test/ada_mode-generic_package.ads
+ ;; type Synchronized_Formal_Derived_Type is abstract ...
+ ;; with private;
- (null_procedure_declaration
+ ;; test/ada_mode-nominal.ads
+ ;; subtype Subtype_2 is Signed_Integer_Type range 10 ..
+ ;; 20;
+ ;;
+ ;; type Private_Type_2 is abstract tagged limited
+ ;; private;
+ ;;
;; ada_mode-nominal.ads
;; procedure Procedure_3b is
;; null;
- ;; indenting null
- (+ (current-column) ada-indent-broken))
+ (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))
-
- (WHEN
- ;; test/ada_mode-parens.adb
- ;; exit when A.all
- ;; or else B.all
- (ada-wisi-indent-containing ada-indent-broken cache))
-
(WITH
(cl-ecase (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))
+ (wisi-indent-paren 1))
(aspect_specification_opt
;; test/aspects.ads
@@ -1247,42 +1016,53 @@ cached token, return new indentation for point."
(derived_type_definition
;; test/ada_mode-nominal-child.ads
;; type Child_Type_1 is new Parent_Type_1 with
- ;; -- comment between 'with' and 'record'
+ ;; -- comment between 'with' and 'record'
;; record
;; indenting comment
- (+ (current-indentation) ada-indent-broken))
+ (+ (current-indentation) ada-indent-record-rel-type))
))
- ;; otherwise just hanging
- ((ACCEPT FUNCTION PROCEDURE RENAMES)
- (back-to-indentation)
- (+ (current-column) ada-indent-broken))
-
+ (t
+ ;; test/ada_mode-nominal.ads
+ ;; type Record_Type_3 (Discriminant_1 : access Integer) is tagged
record
+ ;; Component_1 : Integer; -- end 2
+ ;; Component_2 :
+ ;; Integer;
+ ;;
+ ;; test/ada_mode-nominal.adb
+ ;; Local_3 : constant Float :=
+ ;; Local_2;
+ ;;
+ ;; test/g-comlin.adb
+ ;; elsif Index_Switches + Max_Length <= Switches'Last
+ ;; and then Switches (Index_Switches + Max_Length) = '?'
+ ;;
+ ;; test/ada_mode-long_paren.adb
+ ;; Packet := new Packet_Type'
+ ;; (RT => RT,
+ (+ (ada-wisi-current-indentation) ada-indent-broken))
))
(statement-start
(cl-case (wisi-cache-token cache)
- (WITH ;; with_clause
+ (WITH
+ ;; test/ada_mode-nominal.ads
+ ;; with
+ ;; Ada.Text_IO;
(+ (current-column) ada-indent-with))
- (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))
+ (if (ada-in-paren-p)
+ ;; test/ada_mode-conditional_expressions.adb
+ ;; K3 : Integer := (if
+ ;; J > 42
+ (wisi-indent-paren (1+ ada-indent-broken))
+
+ ;; not in paren
+ ;; test/ada_mode-generic_instantiation.ads
+ ;; procedure Procedure_8
+ ;; is new Instance.Generic_Procedure (Integer, Function_1);
+ (+ (ada-wisi-current-indentation) ada-indent-broken)))
))
)))
)))
@@ -1381,7 +1161,7 @@ cached token, return new indentation for point."
(defun ada-wisi-context-clause ()
"For `ada-fix-context-clause'."
- (wisi-validate-cache (point-max))
+ (wisi-validate-cache (point-max) t)
(save-excursion
(goto-char (point-min))
(let ((begin nil)
@@ -1429,45 +1209,39 @@ cached token, return new indentation for point."
(defun ada-wisi-goto-subunit-name ()
"For `ada-goto-subunit-name'."
- (wisi-validate-cache (point-max))
- (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))
- )))
+ (wisi-validate-cache (point-max) t)
+
+ (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"))
+ (wisi-validate-cache (point) t)
(let ((cache (wisi-get-cache (point)))
(done nil))
@@ -1512,9 +1286,7 @@ 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"))
+ (wisi-validate-cache (point) t)
(let ((done nil)
(first t)
@@ -1588,9 +1360,7 @@ Also return cache at start."
(defun ada-wisi-make-subprogram-body ()
"For `ada-make-subprogram-body'."
- (wisi-validate-cache (point))
- (when wisi-parse-failed
- (error "syntax parse failed; cannot create body"))
+ (wisi-validate-cache (point) t)
(let* ((begin (point))
(end (save-excursion (wisi-forward-find-class 'statement-end
(point-max)) (point)))
@@ -1600,7 +1370,7 @@ Also return cache at start."
(+ (point) (wisi-cache-last cache)))))
(goto-char end)
(newline)
- (insert " is begin\nnull;\nend ");; legal syntax; parse does not fail
+ (insert " is begin\n\nend ");; legal syntax; parse does not fail
(insert name)
(forward-char 1)
@@ -1608,14 +1378,12 @@ Also return cache at start."
(newline-and-indent)
(indent-region begin (point))
(forward-line -2)
- (back-to-indentation); before 'null;'
+ (back-to-indentation)
))
(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"))
+ (wisi-validate-cache end t)
(goto-char begin)
(let (token
@@ -1728,52 +1496,55 @@ Also return cache at start."
(defun ada-wisi-which-function ()
"For `ada-which-function'."
(wisi-validate-cache (point))
- (save-excursion
- (let ((result nil)
- (cache (condition-case nil (ada-wisi-goto-declaration-start) (error
nil))))
- (if (null cache)
- ;; bob or failed parse
- (setq result "")
-
- (when (memq (wisi-cache-nonterm cache)
- '(generic_package_declaration
generic_subprogram_declaration))
- ;; name is after next statement keyword
- (wisi-next-statement-cache cache)
- (setq cache (wisi-get-cache (point))))
-
- ;; add or delete 'body' as needed
- (cl-ecase (wisi-cache-nonterm cache)
- (package_body
- (setq result (ada-wisi-which-function-1 "package" nil)))
-
- ((package_declaration
- generic_package_declaration) ;; after 'generic'
- (setq result (ada-wisi-which-function-1 "package" t)))
-
- (protected_body
- (setq result (ada-wisi-which-function-1 "protected" nil)))
-
- ((protected_type_declaration single_protected_declaration)
- (setq result (ada-wisi-which-function-1 "protected" t)))
-
- ((abstract_subprogram_declaration
- subprogram_declaration
- generic_subprogram_declaration ;; after 'generic'
- null_procedure_declaration)
- (setq result (ada-wisi-which-function-1
- (wisi-cache-text (wisi-forward-find-token '(FUNCTION
PROCEDURE) (point-max)))
- nil))) ;; no 'body' keyword in subprogram bodies
-
- (subprogram_body
- (setq result (ada-wisi-which-function-1
- (wisi-cache-text (wisi-forward-find-token '(FUNCTION
PROCEDURE) (point-max)))
- nil)))
-
- (task_type_declaration
- (setq result (ada-wisi-which-function-1 "task" t)))
+ ;; no message on parse fail, since this could be called from which-func-mode
+ (when (> wisi-cache-max (point))
+ (save-excursion
+ (let ((result nil)
+ (cache (condition-case nil (ada-wisi-goto-declaration-start) (error
nil))))
+ (if (null cache)
+ ;; bob or failed parse
+ (setq result "")
+
+ (when (memq (wisi-cache-nonterm cache)
+ '(generic_package_declaration
generic_subprogram_declaration))
+ ;; name is after next statement keyword
+ (wisi-next-statement-cache cache)
+ (setq cache (wisi-get-cache (point))))
+
+ ;; add or delete 'body' as needed
+ (cl-ecase (wisi-cache-nonterm cache)
+ (package_body
+ (setq result (ada-wisi-which-function-1 "package" nil)))
+
+ ((package_declaration
+ generic_package_declaration) ;; after 'generic'
+ (setq result (ada-wisi-which-function-1 "package" t)))
+
+ (protected_body
+ (setq result (ada-wisi-which-function-1 "protected" nil)))
+
+ ((protected_type_declaration single_protected_declaration)
+ (setq result (ada-wisi-which-function-1 "protected" t)))
+
+ ((abstract_subprogram_declaration
+ subprogram_declaration
+ generic_subprogram_declaration ;; after 'generic'
+ null_procedure_declaration)
+ (setq result (ada-wisi-which-function-1
+ (wisi-cache-text (wisi-forward-find-token '(FUNCTION
PROCEDURE) (point-max)))
+ nil))) ;; no 'body' keyword in subprogram bodies
+
+ (subprogram_body
+ (setq result (ada-wisi-which-function-1
+ (wisi-cache-text (wisi-forward-find-token '(FUNCTION
PROCEDURE) (point-max)))
+ nil)))
+
+ (task_type_declaration
+ (setq result (ada-wisi-which-function-1 "task" t)))
- ))
- result)))
+ ))
+ result))
+ ))
;;;; debugging
(defun ada-wisi-debug-keys ()
diff --git a/packages/ada-mode/gnat-core.el b/packages/ada-mode/gnat-core.el
index c9cca70..66104c5 100644
--- a/packages/ada-mode/gnat-core.el
+++ b/packages/ada-mode/gnat-core.el
@@ -45,13 +45,13 @@
(setq project (plist-put project 'prj_dir prj-dir))
- (let ((process-environment (plist-get project 'proc_env)))
+ (let ((process-environment (cl-copy-list (plist-get project 'proc_env))))
(setenv "GPR_PROJECT_PATH"
(mapconcat 'identity
(plist-get project 'prj_dir)
(plist-get project 'path_sep)))
- (setq project (plist-put project 'proc_env process-environment))
+ (setq project (plist-put project 'proc_env (cl-copy-list
process-environment)))
)
project))
@@ -76,7 +76,7 @@
"Handle gnat-specific Emacs Ada project file settings.
Return new PROJECT if NAME recognized, nil otherwise.
See also `gnat-parse-emacs-final'."
- (let ((process-environment (plist-get project 'proc_env))); for
substitute-in-file-name
+ (let ((process-environment (cl-copy-list (plist-get project 'proc_env))));
for substitute-in-file-name
(cond
((or
;; we allow either name here for backward compatibility
@@ -264,7 +264,7 @@ Assumes current buffer is (gnat-run-buffer)"
(setq command (cl-delete-if 'null command))
- (let ((process-environment (ada-prj-get 'proc_env)) ;; for GPR_PROJECT_PATH
+ (let ((process-environment (cl-copy-list (ada-prj-get 'proc_env))) ;; for
GPR_PROJECT_PATH
status)
(insert (format "GPR_PROJECT_PATH=%s\n%s " (getenv "GPR_PROJECT_PATH")
exec)); for debugging
@@ -438,7 +438,7 @@ list."
(split-string (ada-prj-get 'gnat_stub_opts))))
(switches (when (ada-prj-get 'gnat_stub_switches)
(split-string (ada-prj-get 'gnat_stub_switches))))
- (process-environment (ada-prj-get 'proc_env)) ;; for GPR_PROJECT_PATH
+ (process-environment (cl-copy-list (ada-prj-get 'proc_env))) ;; for
GPR_PROJECT_PATH
)
;; Make sure all relevant files are saved to disk.
diff --git a/packages/ada-mode/gpr-query.el b/packages/ada-mode/gpr-query.el
index 222f2a5..0e8e651 100755
--- a/packages/ada-mode/gpr-query.el
+++ b/packages/ada-mode/gpr-query.el
@@ -58,13 +58,11 @@
(setf (gpr-query--session-buffer session) (gnat-run-buffer
gpr-query-buffer-name-prefix)))
(with-current-buffer (gpr-query--session-buffer session)
- (let ((process-environment (ada-prj-get 'proc_env)) ;; for GPR_PROJECT_PATH
+ (let ((process-environment (cl-copy-list (ada-prj-get 'proc_env))) ;; for
GPR_PROJECT_PATH
(project-file (file-name-nondirectory (ada-prj-get 'gpr_file))))
(erase-buffer); delete any previous messages, prompt
(setf (gpr-query--session-process session)
- ;; gnatcoll-1.6 can't handle aggregate projects; M910-032
- ;; gpr_query can handle some aggregate projects, but not all
(start-process (concat "gpr_query " (buffer-name))
(gpr-query--session-buffer session)
"gpr_query"
@@ -245,9 +243,9 @@ Uses `gpr_query'. Returns new list."
(defun gpr-query-compilation (identifier file line col cmd comp-err)
"Run gpr_query IDENTIFIER:FILE:LINE:COL CMD,
set compilation-mode with compilation-error-regexp-alist set to COMP-ERR."
- ;; Useful when gpr_query will return a list of references; we use
- ;; `compilation-start' to run gpr_query, so the user can navigate
- ;; to each result in turn via `next-error'.
+ ;; Useful when gpr_query will return a list of references; the user
+ ;; can navigate to each result in turn via `next-error'.
+ ;; FIXME: implement ada-xref-full-path.
(let ((cmd-1 (format "%s %s:%s:%d:%d" cmd identifier file line col))
(result-count 0)
target-file target-line target-col)
@@ -557,8 +555,9 @@ Enable mode if ARG is positive."
(message "parsing result ... done")
result)))
-(defun gpr-query-all (identifier file line col)
+(defun gpr-query-all (identifier file line col _local-only)
"For `ada-xref-all-function', using gpr_query."
+ ;; FIXME: implement local-only
(gpr-query-compilation identifier file line col "refs"
'gpr-query-ident-file))
(defun gpr-query-parents (identifier file line col)
diff --git a/packages/ada-mode/gpr-wisi.el b/packages/ada-mode/gpr-wisi.el
index 13c8dcd..586fa5d 100644
--- a/packages/ada-mode/gpr-wisi.el
+++ b/packages/ada-mode/gpr-wisi.el
@@ -1,6 +1,6 @@
;; gpr-wisi.el --- Indentation engine for gpr mode, using the wisi parser -*-
lexical-binding:t -*-
;;
-;; Copyright (C) 2013 - 2015 Free Software Foundation, Inc.
+;; Copyright (C) 2013 - 2016 Free Software Foundation, Inc.
;;
;; Author: Stephen Leake <address@hidden>
;;
@@ -161,16 +161,19 @@ or containing ancestor of CACHE that is at a line
beginning."
(defun gpr-wisi-which-function ()
"For `gpr-which-function'."
(wisi-validate-cache (point))
- (let ((cache (wisi-backward-cache)))
- (while (and cache
- (not (and
- (memq (wisi-cache-nonterm cache) '(package_spec
simple_project_declaration))
- (eq (wisi-cache-class cache) 'statement-start))))
- (setq cache (wisi-goto-containing cache)))
- (when cache
- (wisi-forward-token); package | project
- (wisi-token-text (wisi-forward-token)); name
- )))
+ ;; no message on parse fail, since this could be called from which-func-mode
+ (when (> wisi-cache-max (point))
+ (let ((cache (wisi-backward-cache)))
+ (while (and cache
+ (not (and
+ (memq (wisi-cache-nonterm cache) '(package_spec
simple_project_declaration))
+ (eq (wisi-cache-class cache) 'statement-start))))
+ (setq cache (wisi-goto-containing cache)))
+ (when cache
+ (wisi-forward-token); package | project
+ (wisi-token-text (wisi-forward-token)); name
+ ))
+ ))
;;; debugging
(defun gpr-wisi-debug-keys ()
diff --git a/packages/aggressive-indent/aggressive-indent.el
b/packages/aggressive-indent/aggressive-indent.el
index 3828bf2..a066c58 100644
--- a/packages/aggressive-indent/aggressive-indent.el
+++ b/packages/aggressive-indent/aggressive-indent.el
@@ -4,7 +4,7 @@
;; Author: Artur Malabarba <address@hidden>
;; URL: https://github.com/Malabarba/aggressive-indent-mode
-;; Version: 1.8.1
+;; Version: 1.8.3
;; Package-Requires: ((emacs "24.1") (cl-lib "0.5"))
;; Keywords: indent lisp maint tools
;; Prefix: aggressive-indent
@@ -105,7 +105,7 @@ Please include this in your report!"
(defvar aggressive-indent-mode)
;;; Configuring indentarion
-(defcustom aggressive-indent-dont-electric-modes '(ruby-mode)
+(defcustom aggressive-indent-dont-electric-modes nil
"List of major-modes where `electric-indent' should be disabled."
:type '(choice
(const :tag "Never use `electric-indent-mode'." t)
@@ -124,6 +124,9 @@ Please include this in your report!"
doc-view-mode
dos-mode
erc-mode
+ feature-mode
+ fortran-mode
+ f90-mode
jabber-chat-mode
haml-mode
haskell-mode
@@ -136,6 +139,7 @@ Please include this in your report!"
netcmd-mode
python-mode
sass-mode
+ scala-mode
slim-mode
special-mode
shell-mode
@@ -183,7 +187,7 @@ change."
:package-version '(aggressive-indent . "0.3"))
;;; Preventing indentation
-(defvar aggressive-indent--internal-dont-indent-if
+(defconst aggressive-indent--internal-dont-indent-if
'((memq this-command aggressive-indent-protected-commands)
(region-active-p)
buffer-read-only
@@ -239,6 +243,12 @@ This is for internal use only. For user customization, use
'(and (derived-mode-p 'coq-mode)
(not (string-match "\\.[[:space:]]*$"
(thing-at-point 'line))))))
+(eval-after-load 'ruby-mode
+ '(add-to-list 'aggressive-indent--internal-dont-indent-if
+ '(when (derived-mode-p 'ruby-mode)
+ (let ((line (thing-at-point 'line)))
+ (and (stringp line)
+ (string-match "\\b\\(if\\|case\\|do\\|begin\\) *$"
line))))))
(defcustom aggressive-indent-dont-indent-if '()
"List of variables and functions to prevent aggressive indenting.
@@ -366,6 +376,12 @@ or messages."
(setq aggressive-indent--changed-list
(cdr aggressive-indent--changed-list)))))
+(defcustom aggressive-indent-sit-for-time 0.05
+ "Time, in seconds, to wait before indenting.
+If you feel aggressive-indent is causing Emacs to hang while
+typing, try tweaking this number."
+ :type 'float)
+
(defun aggressive-indent--indent-if-changed ()
"Indent any region that changed in the last command loop."
(when aggressive-indent--changed-list
@@ -374,6 +390,7 @@ or messages."
(unless (or (run-hook-wrapped
'aggressive-indent--internal-dont-indent-if #'eval)
(aggressive-indent--run-user-hooks))
(while-no-input
+ (sit-for aggressive-indent-sit-for-time t)
(redisplay)
(aggressive-indent--proccess-changed-list-and-indent)))))))
diff --git a/packages/async/async.el b/packages/async/async.el
index 6619fff..99162cb 100644
--- a/packages/async/async.el
+++ b/packages/async/async.el
@@ -298,6 +298,42 @@ returns nil. It can still be useful, however, as an
argument to
"Evaluate FUNC in a separate Emacs process, synchronously."
`(async-get (async-start ,func)))
+(defun async--fold-left (fn forms bindings)
+ (let ((res forms))
+ (dolist (binding bindings)
+ (setq res (funcall fn res
+ (if (listp binding)
+ binding
+ (list binding)))))
+ res))
+
+(defmacro async-let (bindings &rest forms)
+ "Implements `let', but each binding is established asynchronously.
+For example:
+
+ (async-let ((x (foo))
+ (y (bar)))
+ (message \"%s %s\" x y))
+
+ expands to ==>
+
+ (async-start (foo)
+ (lambda (x)
+ (async-start (bar)
+ (lambda (y)
+ (message \"%s %s\" x y)))))"
+ (declare (indent 1))
+ (async--fold-left
+ (lambda (acc binding)
+ (let ((fun (pcase (cadr binding)
+ ((and (pred functionp) f) f)
+ (f `(lambda () ,f)))))
+ `(async-start ,fun
+ (lambda (,(car binding))
+ ,acc))))
+ `(progn ,@forms)
+ (reverse bindings)))
+
(provide 'async)
;;; async.el ends here
diff --git a/packages/async/dired-async.el b/packages/async/dired-async.el
index d0de789..ed37953 100644
--- a/packages/async/dired-async.el
+++ b/packages/async/dired-async.el
@@ -262,7 +262,7 @@ ESC or `q' to not overwrite any of the remaining files,
for destp = (file-exists-p to)
do (and bf destp
(with-current-buffer bf
- (set-visited-file-name to nil t))))))))
+ (set-visited-file-name to t t))))))))
;; Start async process.
(when async-fn-list
(async-start `(lambda ()
diff --git a/packages/beacon/beacon.el b/packages/beacon/beacon.el
index 9a3edac..2c33d5e 100644
--- a/packages/beacon/beacon.el
+++ b/packages/beacon/beacon.el
@@ -5,7 +5,7 @@
;; Author: Artur Malabarba <address@hidden>
;; URL: https://github.com/Malabarba/beacon
;; Keywords: convenience
-;; Version: 1.3.1
+;; Version: 1.3.2
;; Package-Requires: ((seq "2.14"))
;; This program is free software; you can redistribute it and/or modify
@@ -147,7 +147,13 @@ For instance, if you want to disable beacon on buffers
where
(add-hook \\='beacon-dont-blink-predicates
(lambda () (bound-and-true-p hl-line-mode)))")
+(defun beacon--compilation-mode-p ()
+ "Non-nil if this is some form of compilation mode."
+ (or (derived-mode-p 'compilation-mode)
+ (bound-and-true-p compilation-minor-mode)))
+
(add-hook 'beacon-dont-blink-predicates #'window-minibuffer-p)
+(add-hook 'beacon-dont-blink-predicates #'beacon--compilation-mode-p)
(defcustom beacon-dont-blink-major-modes '(t magit-status-mode magit-popup-mode
inf-ruby-mode
@@ -280,9 +286,10 @@ Only returns `beacon-size' elements."
(color-distance "white" bg)))
(make-list 3 (* beacon-color 65535)))
(t (make-list 3 (* (- 1 beacon-color) 65535))))))
- (apply #'seq-mapn (lambda (r g b) (format "#%04x%04x%04x" r g b))
- (mapcar (lambda (n) (butlast (beacon--int-range (elt fg n) (elt bg
n))))
- [0 1 2]))))
+ (when bg
+ (apply #'seq-mapn (lambda (r g b) (format "#%04x%04x%04x" r g b))
+ (mapcar (lambda (n) (butlast (beacon--int-range (elt fg n) (elt
bg n))))
+ [0 1 2])))))
;;; Blinking
diff --git a/packages/company/NEWS.md b/packages/company/NEWS.md
index 758f0be..32d05b3 100644
--- a/packages/company/NEWS.md
+++ b/packages/company/NEWS.md
@@ -1,5 +1,18 @@
# History of user-visible changes
+## 2016-11-12 (0.9.1)
+
+* `company-indent-or-complete-common` skips trying to indent if
+ `indent-line-function` is `indent-relative` or `indent-relative-maybe`.
+* Better visualization of search matches. New face
`company-tooltip-search-selection`.
+* New variable `company-files-exclusions`.
+* `company-next-page` and `company-previous-page` adhere to
+ `company-selection-wrap-around` docstring more closely and only wrap around
+ when the selection is at the start of the end of the list.
+* `company-pseudo-tooltip-unless-just-one-frontend-with-delay` handles custom
+ frontends derived from `company-preview-frontend` better.
+* `company-idle-delay` is automatically adjusted to a non-zero value.
+
## 2016-06-23 (0.9.0)
* Group of backends can now contain keyword `:separate`, which makes candidates
diff --git a/packages/company/company-dabbrev-code.el
b/packages/company/company-dabbrev-code.el
index 9331087..37f287c 100644
--- a/packages/company/company-dabbrev-code.el
+++ b/packages/company/company-dabbrev-code.el
@@ -96,7 +96,7 @@ comments or strings."
(`t (list major-mode))
(`code company-dabbrev-code-modes)
(`all `all))
- t)))
+ (not company-dabbrev-code-everywhere))))
(ignore-case company-dabbrev-code-ignore-case)
(duplicates t)))
diff --git a/packages/company/company-files.el
b/packages/company/company-files.el
index c19d3d6..4410281 100644
--- a/packages/company/company-files.el
+++ b/packages/company/company-files.el
@@ -1,4 +1,4 @@
-;;; company-files.el --- company-mode completion backend for file paths
+;;; company-files.el --- company-mode completion backend for file names
;; Copyright (C) 2009-2011, 2014-2015 Free Software Foundation, Inc.
@@ -28,14 +28,40 @@
(require 'company)
(require 'cl-lib)
+(defgroup company-files nil
+ "Completion backend for file names."
+ :group 'company)
+
+(defcustom company-files-exclusions nil
+ "File name extensions and directory names to ignore.
+The values should use the same format as `completion-ignored-extensions'."
+ :type '(const string)
+ :package-version '(company . "0.9.1"))
+
(defun company-files--directory-files (dir prefix)
- (ignore-errors
- ;; Don't use directory-files. It produces directories without trailing /.
- (let ((comp (sort (file-name-all-completions prefix dir)
- (lambda (s1 s2) (string-lessp (downcase s1) (downcase
s2))))))
- (if (equal prefix "")
- (delete "../" (delete "./" comp))
- comp))))
+ ;; Don't use directory-files. It produces directories without trailing /.
+ (condition-case err
+ (let ((comp (sort (file-name-all-completions prefix dir)
+ (lambda (s1 s2) (string-lessp (downcase s1) (downcase
s2))))))
+ (when company-files-exclusions
+ (setq comp (company-files--exclusions-filtered comp)))
+ (if (equal prefix "")
+ (delete "../" (delete "./" comp))
+ comp))
+ (file-error nil)))
+
+(defun company-files--exclusions-filtered (completions)
+ (let* ((dir-exclusions (cl-delete-if-not #'company-files--trailing-slash-p
+ company-files-exclusions))
+ (file-exclusions (cl-set-difference company-files-exclusions
+ dir-exclusions)))
+ (cl-loop for c in completions
+ unless (if (company-files--trailing-slash-p c)
+ (member c dir-exclusions)
+ (cl-find-if (lambda (exclusion)
+ (string-suffix-p exclusion c))
+ file-exclusions))
+ collect c)))
(defvar company-files--regexps
(let* ((root (if (eq system-type 'windows-nt)
diff --git a/packages/company/company-gtags.el
b/packages/company/company-gtags.el
index 5050783..82b8032 100644
--- a/packages/company/company-gtags.el
+++ b/packages/company/company-gtags.el
@@ -66,7 +66,8 @@ completion."
(with-temp-buffer
(let (tags)
(when (= 0 (call-process company-gtags-executable nil
- (list (current-buffer) nil) nil "-xGq" (concat
"^" prefix)))
+ ;; "-T" goes through all the tag files listed
in GTAGSLIBPATH
+ (list (current-buffer) nil) nil "-xGqT" (concat
"^" prefix)))
(goto-char (point-min))
(cl-loop while
(re-search-forward (concat
diff --git a/packages/company/company-keywords.el
b/packages/company/company-keywords.el
index e59eaa2..fac37f5 100644
--- a/packages/company/company-keywords.el
+++ b/packages/company/company-keywords.el
@@ -210,6 +210,14 @@
"do" "else" "elsif" "end" "ensure" "false" "for" "if" "in" "module"
"next" "nil" "not" "or" "redo" "rescue" "retry" "return" "self" "super"
"then" "true" "undef" "unless" "until" "when" "while" "yield")
+ ;; From https://doc.rust-lang.org/grammar.html#keywords
+ ;; but excluding unused reserved words:
https://www.reddit.com/r/rust/comments/34fq0k/is_there_a_good_list_of_rusts_keywords/cqucvnj
+ (rust-mode
+ "Self"
+ "as" "box" "break" "const" "continue" "crate" "else" "enum" "extern"
+ "false" "fn" "for" "if" "impl" "in" "let" "loop" "macro" "match" "mod"
+ "move" "mut" "pub" "ref" "return" "self" "static" "struct" "super"
+ "trait" "true" "type" "unsafe" "use" "where" "while")
(scala-mode
"abstract" "case" "catch" "class" "def" "do" "else" "extends" "false"
"final" "finally" "for" "forSome" "if" "implicit" "import" "lazy" "match"
@@ -225,8 +233,10 @@
)
;; aliases
(js2-mode . javascript-mode)
+ (js2-jsx-mode . javascript-mode)
(espresso-mode . javascript-mode)
(js-mode . javascript-mode)
+ (js-jsx-mode . javascript-mode)
(cperl-mode . perl-mode)
(jde-mode . java-mode)
(ess-julia-mode . julia-mode))
diff --git a/packages/company/company-tests.el
b/packages/company/company-tests.el
index f0d669d..5f7a852 100644
--- a/packages/company/company-tests.el
+++ b/packages/company/company-tests.el
@@ -1,6 +1,6 @@
;;; company-tests.el --- company-mode test helpers -*- lexical-binding: t -*-
-;; Copyright (C) 2011, 2013-2014 Free Software Foundation, Inc.
+;; Copyright (C) 2011, 2013-2016 Free Software Foundation, Inc.
;; Author: Dmitry Gutov
@@ -21,6 +21,9 @@
(require 'company)
+(defvar company-dir (file-name-directory (or load-file-name
+ buffer-file-name)))
+
(defun company--column (&optional pos)
(car (company--col-row pos)))
diff --git a/packages/company/company.el b/packages/company/company.el
index a2908af..32b4b1a 100644
--- a/packages/company/company.el
+++ b/packages/company/company.el
@@ -5,7 +5,7 @@
;; Author: Nikolaj Schumacher
;; Maintainer: Dmitry Gutov <address@hidden>
;; URL: http://company-mode.github.io/
-;; Version: 0.9.0
+;; Version: 0.9.2
;; Keywords: abbrev, convenience, matching
;; Package-Requires: ((emacs "24.1") (cl-lib "0.5"))
@@ -83,7 +83,17 @@ buffer-local wherever it is set."
(declare (debug defvar) (doc-string 3))
`(progn
(defvar ,var ,val ,docstring)
- (make-variable-buffer-local ',var)))))
+ (make-variable-buffer-local ',var))))
+
+ (unless (fboundp 'string-suffix-p)
+ (defun string-suffix-p (suffix string &optional ignore-case)
+ "Return non-nil if SUFFIX is a suffix of STRING.
+If IGNORE-CASE is non-nil, the comparison is done without paying
+attention to case differences."
+ (let ((start-pos (- (length string) (length suffix))))
+ (and (>= start-pos 0)
+ (eq t (compare-strings suffix nil nil
+ string start-pos nil ignore-case)))))))
(defgroup company nil
"Extensible inline text completion mechanism"
@@ -108,9 +118,13 @@ buffer-local wherever it is set."
"Face used for the selection in the tooltip.")
(defface company-tooltip-search
- '((default :inherit company-tooltip-selection))
+ '((default :inherit highlight))
"Face used for the search string in the tooltip.")
+(defface company-tooltip-search-selection
+ '((default :inherit highlight))
+ "Face used for the search string inside the selection in the tooltip.")
+
(defface company-tooltip-mouse
'((default :inherit highlight))
"Face used for the tooltip item under the mouse.")
@@ -683,6 +697,12 @@ asynchronous call into synchronous.")
(unless (keywordp b)
(company-init-backend b))))))
+(defun company--maybe-init-backend (backend)
+ (or (not (symbolp backend))
+ (eq t (get backend 'company-init))
+ (unless (get backend 'company-init)
+ (company-init-backend backend))))
+
(defcustom company-lighter-base "company"
"Base string to use for the `company-mode' lighter."
:type 'string
@@ -735,9 +755,6 @@ keymap during active completions (`company-active-map'):
nil company-lighter company-mode-map
(if company-mode
(progn
- (when (eq company-idle-delay t)
- (setq company-idle-delay 0)
- (warn "Setting `company-idle-delay' to t is deprecated. Set it to 0
instead."))
(add-hook 'pre-command-hook 'company-pre-command nil t)
(add-hook 'post-command-hook 'company-post-command nil t)
(mapc 'company-init-backend company-backends))
@@ -913,13 +930,16 @@ matches IDLE-BEGIN-AFTER-RE, return it wrapped in a cons."
(if (functionp company-backend)
(apply company-backend args)
(apply #'company--multi-backend-adapter company-backend args))
+ (user-error (user-error
+ "Company: backend %s user-error: %s"
+ company-backend (error-message-string err)))
(error (error "Company: backend %s error \"%s\" with args %s"
company-backend (error-message-string err) args))))
(defun company--multi-backend-adapter (backends command &rest args)
(let ((backends (cl-loop for b in backends
- when (not (and (symbolp b)
- (eq 'failed (get b 'company-init))))
+ when (or (keywordp b)
+ (company--maybe-init-backend b))
collect b))
(separate (memq :separate backends)))
@@ -1428,7 +1448,7 @@ prefix match (same case) will be prioritized."
(eq company-require-match t))))))
(defun company-auto-complete-p (input)
- "Return non-nil, if input starts with punctuation or parentheses."
+ "Return non-nil if INPUT should trigger auto-completion."
(and (if (functionp company-auto-complete)
(funcall company-auto-complete)
company-auto-complete)
@@ -1437,7 +1457,8 @@ prefix match (same case) will be prioritized."
(if (consp company-auto-complete-chars)
(memq (char-syntax (string-to-char input))
company-auto-complete-chars)
- (string-match (substring input 0 1) company-auto-complete-chars)))))
+ (string-match (regexp-quote (substring input 0 1))
+ company-auto-complete-chars)))))
(defun company--incremental-p ()
(and (> (point) company-point)
@@ -1521,10 +1542,7 @@ prefix match (same case) will be prioritized."
(setq prefix
(if (or (symbolp backend)
(functionp backend))
- (when (or (not (symbolp backend))
- (eq t (get backend 'company-init))
- (unless (get backend 'company-init)
- (company-init-backend backend)))
+ (when (company--maybe-init-backend backend)
(funcall backend 'prefix))
(company--multi-backend-adapter backend 'prefix)))
(when prefix
@@ -1638,11 +1656,13 @@ prefix match (same case) will be prioritized."
(company--perform)))
(if company-candidates
(company-call-frontends 'post-command)
- (and (numberp company-idle-delay)
+ (and (or (numberp company-idle-delay)
+ ;; Deprecated.
+ (eq company-idle-delay t))
(not defining-kbd-macro)
(company--should-begin)
(setq company-timer
- (run-with-timer company-idle-delay nil
+ (run-with-timer (company--idle-delay) nil
'company-idle-begin
(current-buffer) (selected-window)
(buffer-chars-modified-tick)
(point))))))
@@ -1651,6 +1671,11 @@ prefix match (same case) will be prioritized."
(company-cancel))))
(company-install-map))
+(defun company--idle-delay ()
+ (if (memql company-idle-delay '(t 0 0.0))
+ 0.01
+ company-idle-delay))
+
(defvar company--begin-inhibit-commands '(company-abort
company-complete-mouse
company-complete
@@ -1977,15 +2002,23 @@ With ARG, move by that many elements."
"Select the candidate one page further."
(interactive)
(when (company-manual-begin)
- (company-set-selection (+ company-selection
- company-tooltip-limit))))
+ (if (and company-selection-wrap-around
+ (= company-selection (1- company-candidates-length)))
+ (company-set-selection 0)
+ (let (company-selection-wrap-around)
+ (company-set-selection (+ company-selection
+ company-tooltip-limit))))))
(defun company-previous-page ()
"Select the candidate one page earlier."
(interactive)
(when (company-manual-begin)
- (company-set-selection (- company-selection
- company-tooltip-limit))))
+ (if (and company-selection-wrap-around
+ (zerop company-selection))
+ (company-set-selection (1- company-candidates-length))
+ (let (company-selection-wrap-around)
+ (company-set-selection (- company-selection
+ company-tooltip-limit))))))
(defvar company-pseudo-tooltip-overlay)
@@ -2075,6 +2108,9 @@ With ARG, move by that many elements."
(cond
((use-region-p)
(indent-region (region-beginning) (region-end)))
+ ((memq indent-line-function
+ '(indent-relative indent-relative-maybe))
+ (company-complete-common))
((let ((old-point (point))
(old-tick (buffer-chars-modified-tick))
(tab-always-indent t))
@@ -2450,22 +2486,24 @@ If SHOW-VERSION is non-nil, show the version in the
echo area."
'company-tooltip-common-selection
'company-tooltip-common)
line)
- (when selected
- (if (let ((re (funcall company-search-regexp-function
+ (when (let ((re (funcall company-search-regexp-function
company-search-string)))
(and (not (string= re ""))
(string-match re value (length company-prefix))))
- (pcase-dolist (`(,mbeg . ,mend) (company--search-chunks))
- (let ((beg (+ margin mbeg))
- (end (+ margin mend))
- (width (- width (length right))))
- (when (< beg width)
- (font-lock-prepend-text-property beg (min end width)
- 'face 'company-tooltip-search
- line))))
- (font-lock-append-text-property 0 width 'face
- 'company-tooltip-selection
- line)))
+ (pcase-dolist (`(,mbeg . ,mend) (company--search-chunks))
+ (let ((beg (+ margin mbeg))
+ (end (+ margin mend))
+ (width (- width (length right))))
+ (when (< beg width)
+ (font-lock-prepend-text-property beg (min end width) 'face
+ (if selected
+
'company-tooltip-search-selection
+ 'company-tooltip-search)
+ line)))))
+ (when selected
+ (font-lock-append-text-property 0 width 'face
+ 'company-tooltip-selection
+ line))
(font-lock-append-text-property 0 width 'face
'company-tooltip
line)
@@ -2865,20 +2903,20 @@ Returns a negative number if the tooltip should be
displayed above point."
(defun company-pseudo-tooltip-unless-just-one-frontend-with-delay (command)
"`compandy-pseudo-tooltip-frontend', but shown after a delay.
Delay is determined by `company-tooltip-idle-delay'."
+ (defvar company-preview-overlay)
+ (when (and (memq command '(pre-command hide))
+ company-tooltip-timer)
+ (cancel-timer company-tooltip-timer)
+ (setq company-tooltip-timer nil))
(cl-case command
- (pre-command
- (company-pseudo-tooltip-unless-just-one-frontend command)
- (when company-tooltip-timer
- (cancel-timer company-tooltip-timer)
- (setq company-tooltip-timer nil)))
(post-command
(if (or company-tooltip-timer
(overlayp company-pseudo-tooltip-overlay))
- (if (not (memq 'company-preview-frontend company-frontends))
+ (if (not (overlayp company-preview-overlay))
(company-pseudo-tooltip-unless-just-one-frontend command)
- (company-preview-frontend 'pre-command)
- (company-pseudo-tooltip-unless-just-one-frontend command)
- (company-preview-frontend 'post-command))
+ (let (company-tooltip-timer)
+ (company-call-frontends 'pre-command))
+ (company-call-frontends 'post-command))
(setq company-tooltip-timer
(run-with-timer company-tooltip-idle-delay nil
'company-pseudo-tooltip-unless-just-one-frontend-with-delay
diff --git a/packages/company/test/files-tests.el
b/packages/company/test/files-tests.el
new file mode 100644
index 0000000..2e89d8d
--- /dev/null
+++ b/packages/company/test/files-tests.el
@@ -0,0 +1,48 @@
+;;; filtes-tests.el --- company-mode tests -*- lexical-binding: t -*-
+
+;; Copyright (C) 2016 Free Software Foundation, Inc.
+
+;; Author: Dmitry Gutov
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
+
+(require 'company-tests)
+(require 'company-files)
+
+(ert-deftest company-files-candidates-normal ()
+ (let (company-files--completion-cache)
+ (should (member (expand-file-name "test/" company-dir)
+ (company-files 'candidates
+ company-dir)))))
+
+(ert-deftest company-files-candidates-normal-root ()
+ (let (company-files--completion-cache)
+ (should (member "/bin/"
+ (company-files 'candidates "/")))))
+
+(ert-deftest company-files-candidates-excluding-dir ()
+ (let ((company-files-exclusions '("test/"))
+ company-files--completion-cache)
+ (should-not (member (expand-file-name "test/" company-dir)
+ (company-files 'candidates
+ company-dir)))))
+
+(ert-deftest company-files-candidates-excluding-files ()
+ (let ((company-files-exclusions '(".el"))
+ company-files--completion-cache)
+ (should-not (member (expand-file-name "company.el" company-dir)
+ (company-files 'candidates
+ company-dir)))))
diff --git a/packages/company/test/frontends-tests.el
b/packages/company/test/frontends-tests.el
index 7b8ee61..9592bed 100644
--- a/packages/company/test/frontends-tests.el
+++ b/packages/company/test/frontends-tests.el
@@ -256,18 +256,18 @@
(should (ert-equal-including-properties
(company-fill-propertize "barfoo" nil 6 t nil nil)
#("barfoo"
- 0 3 (face (company-tooltip) mouse-face (company-tooltip-mouse))
- 3 6 (face (company-tooltip-search company-tooltip) mouse-face
(company-tooltip-mouse)))))
+ 0 3 (face (company-tooltip-selection company-tooltip)
mouse-face (company-tooltip-mouse))
+ 3 6 (face (company-tooltip-search-selection
company-tooltip-selection company-tooltip) mouse-face
(company-tooltip-mouse)))))
(should (ert-equal-including-properties
(company-fill-propertize "barfoo" nil 5 t "" " ")
#("barfo "
- 0 3 (face (company-tooltip) mouse-face (company-tooltip-mouse))
- 3 5 (face (company-tooltip-search company-tooltip) mouse-face
(company-tooltip-mouse))
- 5 6 (face (company-tooltip) mouse-face
(company-tooltip-mouse)))))
+ 0 3 (face (company-tooltip-selection company-tooltip)
mouse-face (company-tooltip-mouse))
+ 3 5 (face (company-tooltip-search-selection
company-tooltip-selection company-tooltip) mouse-face (company-tooltip-mouse))
+ 5 6 (face (company-tooltip-selection company-tooltip)
mouse-face (company-tooltip-mouse)))))
(should (ert-equal-including-properties
(company-fill-propertize "barfoo" nil 3 t " " " ")
#(" bar "
- 0 5 (face (company-tooltip) mouse-face
(company-tooltip-mouse)))))))
+ 0 5 (face (company-tooltip-selection company-tooltip)
mouse-face (company-tooltip-mouse)))))))
(ert-deftest company-fill-propertize-overrides-face-property ()
(let ((company-backend #'ignore)
diff --git a/packages/debbugs/Debbugs.wsdl b/packages/debbugs/Debbugs.wsdl
index f9657db..5ca86ee 100644
--- a/packages/debbugs/Debbugs.wsdl
+++ b/packages/debbugs/Debbugs.wsdl
@@ -331,10 +331,10 @@ along with GNU Emacs. If not, see
<http://www.gnu.org/licenses/>. -->
<wsdl:service name="Debbugs/SOAP/SERVICE">
<wsdl:port binding="tns:Debbugs/SOAP/BINDING" name="gnu.org">
- <wsdlsoap:address location="http://debbugs.gnu.org/cgi/soap.cgi"/>
+ <wsdlsoap:address location="https://debbugs.gnu.org/cgi/soap.cgi"/>
</wsdl:port>
<wsdl:port binding="tns:Debbugs/SOAP/BINDING" name="debian.org">
- <wsdlsoap:address location="http://bugs.debian.org/cgi-bin/soap.cgi"/>
+ <wsdlsoap:address location="https://bugs.debian.org/cgi-bin/soap.cgi"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
diff --git a/packages/debbugs/README b/packages/debbugs/README
index 74f8db8..7e29420 100644
--- a/packages/debbugs/README
+++ b/packages/debbugs/README
@@ -2,12 +2,14 @@ This package lets you access the GNU Bug Tracker from within
Emacs.
It defines the command `M-x debbugs-gnu' for listing bugs, and the
command `M-x debbugs-gnu-search' for bug searching. The command
-`M-x debbugs-gnu-usertags' shows existing user tags on bugs. In order
-to show bugs with known numbers, `M-x debbugs-gnu-bugs' could be used.
+`M-x debbugs-gnu-usertags' shows existing user tags on bugs, whilst
+the command `M-x debbugs-gnu-patches' lists bugs containing a patch.
+In order to show bugs with known numbers, `M-x debbugs-gnu-bugs' could
+be used.
If you prefer the listing of bugs as TODO items of `org-mode', you
-could use the commands `M-x debbugs-org', `M-x debbugs-org-search' and
-`M-x debbugs-org-bugs' instead.
+could use the commands `M-x debbugs-org', `M-x debbugs-org-search',
+`M-x debbugs-org-patches' and `M-x debbugs-org-bugs' instead.
A minor mode `debbugs-browse-mode' let you browse URLs to the GNU Bug
Tracker as well as bug identifiers prepared for `bug-reference-mode'.
diff --git a/packages/debbugs/debbugs-browse.el
b/packages/debbugs/debbugs-browse.el
index b4e87c7..2a98b7d 100644
--- a/packages/debbugs/debbugs-browse.el
+++ b/packages/debbugs/debbugs-browse.el
@@ -41,7 +41,7 @@ This can be either `debbugs-gnu-bugs' or `debbugs-org-bugs'."
(string-match
(format
"^%s\\(%s\\)?\\([[:digit:]]+\\)$"
- (regexp-quote "http://debbugs.gnu.org/")
+ "https?://debbugs\\.gnu\\.org/"
(regexp-quote "cgi/bugreport.cgi?bug="))
url))
(funcall debbugs-browse-function (string-to-number (match-string 2 url)))
diff --git a/packages/debbugs/debbugs-gnu.el b/packages/debbugs/debbugs-gnu.el
index 4a69f2b..42f2cb0 100644
--- a/packages/debbugs/debbugs-gnu.el
+++ b/packages/debbugs/debbugs-gnu.el
@@ -35,6 +35,7 @@
;; (autoload 'debbugs-gnu "debbugs-gnu" "" 'interactive)
;; (autoload 'debbugs-gnu-search "debbugs-gnu" "" 'interactive)
;; (autoload 'debbugs-gnu-usertags "debbugs-gnu" "" 'interactive)
+;; (autoload 'debbugs-gnu-patches "debbugs-gnu" "" 'interactive)
;; (autoload 'debbugs-gnu-bugs "debbugs-gnu" "" 'interactive)
;; The bug tracker is called interactively by
@@ -127,14 +128,26 @@
;; Unfortunately, it is not possible with the SOAP interface to show
;; all users who have tagged bugs. This list can be retrieved via
-;; <http://debbugs.gnu.org/cgi/pkgindex.cgi?indexon=users>.
+;; <https://debbugs.gnu.org/cgi/pkgindex.cgi?indexon=users>.
+
+;; A special command to show bugs containing patches is
+;;
+;; M-x debbugs-gnu-patches
+
+;; This command shows all unarchived bugs of the packages declared in
+;; `debbugs-gnu-default-packages', and tagged with "patch". This is
+;; useful for bug triages.
;; Finally, if you simply want to list some bugs with known bug
;; numbers, call the command
;;
;; M-x debbugs-gnu-bugs
-;; The bug numbers to be shown shall be entered as comma separated list.
+;; The bug numbers to be shown shall be entered as comma separated
+;; list. A bug number can also be a range of bugs like "123-456" or
+;; "-10". In the former case, all bugs from 123 until 456 are
+;; presented, and in the latter case the last 10 bugs are shown,
+;; counting from the highest bug number in the repository.
;;; Code:
@@ -189,7 +202,7 @@
(defcustom debbugs-gnu-default-severities '("serious" "important" "normal")
"The list severities bugs are searched for.
\"tagged\" is not a severity but marks locally tagged bugs."
- ;; <http://debbugs.gnu.org/Developer.html#severities>
+ ;; <https://debbugs.gnu.org/Developer.html#severities>
;; /ssh:debbugs:/etc/debbugs/config @gSeverityList
;; We don't use "critical" and "grave".
:group 'debbugs-gnu
@@ -227,8 +240,8 @@ If nil, the value of `send-mail-function' is used instead."
(defcustom debbugs-gnu-default-packages '("emacs")
"The list of packages to be searched for."
- ;; <http://debbugs.gnu.org/Packages.html>
- ;; <http://debbugs.gnu.org/cgi/pkgindex.cgi>
+ ;; <https://debbugs.gnu.org/Packages.html>
+ ;; <https://debbugs.gnu.org/cgi/pkgindex.cgi>
:group 'debbugs-gnu
:type `(set (const "adns")
(const "auctex")
@@ -345,13 +358,15 @@ The specification which bugs shall be suppressed is taken
from
:group 'debbugs-gnu
:type '(choice (const "24.5")
(const "25.1")
- (const "25.2"))
- :version "25.1")
+ (const "25.2")
+ (const "26.1"))
+ :version "25.2")
(defconst debbugs-gnu-emacs-blocking-reports
'(("24.5" . 19758)
("25.1" . 19759)
- ("25.2" . 21966))
+ ("25.2" . 21966)
+ ("26.1" . 24655))
"The IDs of the Emacs report used to track blocking bug reports.
It is a list of cons cells, each one containing the Emacs
version (a string) and the bug report number (a number).")
@@ -1421,7 +1436,7 @@ MERGED is the list of bugs merged with this one."
"Dynamic completion table for reading bug numbers.")
(defun debbugs-gnu-expand-bug-number-list (bug-number-list)
- "Expand BUG-NUMBER-LIST to a list of singe bug numbers.
+ "Expand BUG-NUMBER-LIST to a list of single bug numbers.
BUG-NUMBER-LIST is a list of bug numbers or bug number ranges, as
returned by `debbugs-gnu-bugs'."
(let (result)
@@ -1657,22 +1672,28 @@ The following commands are available:
(let ((args (get-text-property (line-beginning-position)
'tabulated-list-id)))
(when args (apply 'debbugs-gnu args))))
-(defcustom debbugs-gnu-default-bug-number-list "-10"
+(defcustom debbugs-gnu-default-bug-number-list
+ (propertize "-10" 'help-echo "The 10 most recent bugs.")
"The default value used in interactive call of `debbugs-gnu-bugs'.
-It must be a string, containing a comma separated list of bugs or bug ranges."
+It must be a string, containing a comma separated list of bugs or bug ranges.
+A negative value, -N, means the newest N bugs."
:group 'debbugs-gnu
:type 'string
:version "25.2")
;;;###autoload
(defun debbugs-gnu-bugs (&rest bugs)
- "List all BUGS, a list of bug numbers."
+ "List all BUGS, a list of bug numbers.
+In interactive calls, prompt for a comma separated list of bugs
+or bug ranges, with default to `debbugs-gnu-default-bug-number-list'."
(interactive
(mapcar
'string-to-number
(debbugs-gnu-expand-bug-number-list
(or
- (completing-read-multiple "Bug numbers: " debbugs-gnu-completion-table)
+ (completing-read-multiple
+ (format "Bug numbers (default %s): "
debbugs-gnu-default-bug-number-list)
+ debbugs-gnu-completion-table)
(split-string debbugs-gnu-default-bug-number-list "," t)))))
(dolist (elt bugs)
(unless (natnump elt) (signal 'wrong-type-argument (list 'natnump elt))))
diff --git a/packages/debbugs/debbugs-org.el b/packages/debbugs/debbugs-org.el
index c413d11..6c7f82f 100644
--- a/packages/debbugs/debbugs-org.el
+++ b/packages/debbugs/debbugs-org.el
@@ -32,6 +32,7 @@
;;
;; (autoload 'debbugs-org "debbugs-org" "" 'interactive)
;; (autoload 'debbugs-org-search "debbugs-org" "" 'interactive)
+;; (autoload 'debbugs-org-patches "debbugs-org" "" 'interactive)
;; (autoload 'debbugs-org-bugs "debbugs-org" "" 'interactive)
;; The bug tracker is called interactively by
@@ -89,12 +90,24 @@
;; opened presenting all related messages for this bug. Here you
;; could also send debbugs control messages by keystroke "C".
+;; A special command to show bugs containing patches is
+;;
+;; M-x debbugs-org-patches
+
+;; This command shows all unarchived bugs of the packages declared in
+;; `debbugs-gnu-default-packages', and tagged with "patch". This is
+;; useful for bug triages.
+
;; Finally, if you simply want to list some bugs with known bug
;; numbers, call the command
;;
;; M-x debbugs-org-bugs
-;; The bug numbers to be shown shall be entered as comma separated list.
+;; The bug numbers to be shown shall be entered as comma separated
+;; list. A bug number can also be a range of bugs like "123-456" or
+;; "-10". In the former case, all bugs from 123 until 456 are
+;; presented, and in the latter case the last 10 bugs are shown,
+;; counting from the highest bug number in the repository.
;;; Code:
@@ -315,7 +328,9 @@ the corresponding buffer (e.g. by closing Emacs)."
;;;###autoload
(defun debbugs-org-bugs ()
- "List all BUGS, a list of bug numbers."
+ "List all BUGS, a list of bug numbers.
+In interactive calls, prompt for a comma separated list of bugs
+or bug ranges, with default to `debbugs-gnu-default-bug-number-list'."
(interactive)
(cl-letf (((symbol-function 'debbugs-gnu-show-reports)
#'debbugs-org-show-reports))
diff --git a/packages/debbugs/debbugs-ug.info b/packages/debbugs/debbugs-ug.info
index 0d4ad7d..0cd822c 100644
--- a/packages/debbugs/debbugs-ug.info
+++ b/packages/debbugs/debbugs-ug.info
@@ -427,7 +427,7 @@ File: debbugs-ug.info, Node: Control Messages, Next:
Applying Patches, Prev:
Debbugs control messages are sent by email to the GNU Debbugs control
server. Their format is described in
-<http://debbugs.gnu.org/server-control.html>.
+<https://debbugs.gnu.org/server-control.html>.
A control message can be initiated in the tabulated list of bugs,
in the list of org TODO items, or in the GNUS ephemeral group or Rmail
@@ -587,7 +587,7 @@ option 'debbugs-browse-function' controls, whether
'debbugs-gnu-bugs'
or 'debbugs-org-bugs' is called.
This minor mode is applicable for all URLs, not only bug
-references. Any URL with the format <http://debbugs.gnu.org/12345>
+references. Any URL with the format <https://debbugs.gnu.org/12345>
will be shown in a bug report buffer, when 'debbugs-browse-mode' is
enabled.
@@ -675,10 +675,10 @@ Node: Presenting Bugs11360
Node: Tabulated Lists11936
Node: TODO Items15611
Node: Control Messages16667
-Node: Applying Patches19709
-Node: Minor Mode21075
-Node: Command Index22019
-Node: Variable Index22808
-Node: Key Index23882
+Node: Applying Patches19710
+Node: Minor Mode21076
+Node: Command Index22021
+Node: Variable Index22810
+Node: Key Index23884
End Tag Table
diff --git a/packages/debbugs/debbugs-ug.texi b/packages/debbugs/debbugs-ug.texi
index e63923a..7d5e429 100644
--- a/packages/debbugs/debbugs-ug.texi
+++ b/packages/debbugs/debbugs-ug.texi
@@ -491,7 +491,7 @@ When the bug attributes are shown by @code{org-cycle},
there is a link
Debbugs control messages are sent by email to the GNU Debbugs control
server. Their format is described in
address@hidden://debbugs.gnu.org/server-control.html}.
address@hidden://debbugs.gnu.org/server-control.html}.
A control message can be initiated in the tabulated list of bugs, in
the list of org TODO items, or in the GNUS ephemeral group or Rmail
@@ -657,7 +657,7 @@ user option @code{debbugs-browse-function} controls, whether
@code{debbugs-gnu-bugs} or @code{debbugs-org-bugs} is called.
This minor mode is applicable for all URLs, not only bug references.
-Any URL with the format @uref{http://debbugs.gnu.org/12345} will be
+Any URL with the format @uref{https://debbugs.gnu.org/12345} will be
shown in a bug report buffer, when @code{debbugs-browse-mode} is
enabled.
@@ -679,7 +679,7 @@ enabled.
@bye
@c Local Variables:
address@hidden bug-reference-url-format: "http://debbugs.gnu.org/%s"
address@hidden bug-reference-url-format: "https://debbugs.gnu.org/%s"
@c eval: (bug-reference-mode)
@c eval: (debbugs-browse-mode)
@c End:
diff --git a/packages/debbugs/debbugs.el b/packages/debbugs/debbugs.el
index cf1e643..ff85c35 100644
--- a/packages/debbugs/debbugs.el
+++ b/packages/debbugs/debbugs.el
@@ -5,7 +5,7 @@
;; Author: Michael Albinus <address@hidden>
;; Keywords: comm, hypermedia
;; Package: debbugs
-;; Version: 0.10
+;; Version: 0.12
;; Package-Requires: ((soap-client "3.1.1") (cl-lib "0.5"))
;; This file is not part of GNU Emacs.
@@ -29,7 +29,7 @@
;; server (see <http://wiki.debian.org/DebbugsSoapInterface>).
;; The function "get_versions" is not implemented (yet). "search_est"
-;; is an extension on <http://debbugs.gnu.org>.
+;; is an extension on <https://debbugs.gnu.org>.
;;; Code:
@@ -43,11 +43,11 @@
(defcustom debbugs-servers
'(("gnu.org"
- :wsdl "http://debbugs.gnu.org/cgi/soap.cgi?WSDL"
- :bugreport-url "http://debbugs.gnu.org/cgi/bugreport.cgi")
+ :wsdl "https://debbugs.gnu.org/cgi/soap.cgi?WSDL"
+ :bugreport-url "https://debbugs.gnu.org/cgi/bugreport.cgi")
("debian.org"
- :wsdl "http://bugs.debian.org/cgi-bin/soap.cgi?WSDL"
- :bugreport-url "http://bugs.debian.org/cgi-bin/bugreport.cgi"))
+ :wsdl "https://bugs.debian.org/cgi-bin/soap.cgi?WSDL"
+ :bugreport-url "https://bugs.debian.org/cgi-bin/bugreport.cgi"))
"*List of Debbugs server specifiers.
Each entry is a list that contains a string identifying the port
name and the server parameters in keyword-value form. Allowed
diff --git a/packages/debbugs/debbugs.info b/packages/debbugs/debbugs.info
index d401541..a77fd24 100644
--- a/packages/debbugs/debbugs.info
+++ b/packages/debbugs/debbugs.info
@@ -110,8 +110,8 @@ File: debbugs.info, Node: Configuration, Next: Requesting
bug numbers, Prev:
***************
'debbugs' is already configured to work with two main ports of Debbugs
-BTS: <http://bugs.debian.org> and <http://debbugs.gnu.org>. So if you
-intend to use one of these ports, you don't need to configure
+BTS: <https://bugs.debian.org> and <https://debbugs.gnu.org>. So if
+you intend to use one of these ports, you don't need to configure
'debbugs'. If you want to interact with a Debbugs port other than
those listed, you have to configure 'debbugs' by adding a new server
specifier to the 'debbugs-servers' variable. The actual port can be
@@ -142,8 +142,8 @@ selected by the 'debbugs-port' variable.
(add-to-list
'debbugs-servers
'("foobars.net"
- :wsdl "http://bugs.foobars.net/cgi/soap.cgi?WSDL"
- :bugreport-url "http://bugs.foobars.net/cgi/bugreport.cgi"))
+ :wsdl "https://bugs.foobars.net/cgi/soap.cgi?WSDL"
+ :bugreport-url "https://bugs.foobars.net/cgi/bugreport.cgi"))
-- Variable: debbugs-port
This variable holds the name of the currently used port. The
@@ -225,7 +225,7 @@ Debbugs server the list of bug numbers that match a user's
query.
GNU port: '"fixed"', '"notabug"', '"wontfix"',
'"unreproducible"', '"moreinfo"', '"patch"', '"pending"',
'"help"', '"security"', '"confirmed"', '"easy"'. See
- <http://debbugs.gnu.org/Developer.html#tags> for the actual
+ <https://debbugs.gnu.org/Developer.html#tags> for the actual
list of tags.
':owner'
@@ -725,10 +725,10 @@ Tag Table:
Node: Top1094
Node: Installation3235
Node: Configuration4334
-Node: Requesting bug numbers6685
-Node: Requesting bugs statuses12065
-Node: Searching bugs16357
-Node: Requesting messages23163
-Node: Requesting user tags26169
+Node: Requesting bug numbers6689
+Node: Requesting bugs statuses12070
+Node: Searching bugs16362
+Node: Requesting messages23168
+Node: Requesting user tags26174
End Tag Table
diff --git a/packages/debbugs/debbugs.texi b/packages/debbugs/debbugs.texi
index 6671bf2..e15410b 100644
--- a/packages/debbugs/debbugs.texi
+++ b/packages/debbugs/debbugs.texi
@@ -116,8 +116,8 @@ libraries than needed for installation on Emacs 22/23.
@chapter Configuration
@code{debbugs} is already configured to work with two main ports of
-Debbugs BTS: @uref{http://bugs.debian.org} and
address@hidden://debbugs.gnu.org}. So if you intend to use one of these
+Debbugs BTS: @uref{https://bugs.debian.org} and
address@hidden://debbugs.gnu.org}. So if you intend to use one of these
ports, you don't need to configure @code{debbugs}. If you want to
interact with a Debbugs port other than those listed, you have to
configure @code{debbugs} by adding a new server specifier to the
@@ -150,8 +150,8 @@ Example. Add a new Debbugs port with name "foobars.net":
(add-to-list
'debbugs-servers
'("foobars.net"
- :wsdl "http://bugs.foobars.net/cgi/soap.cgi?WSDL"
- :bugreport-url "http://bugs.foobars.net/cgi/bugreport.cgi"))
+ :wsdl "https://bugs.foobars.net/cgi/soap.cgi?WSDL"
+ :bugreport-url "https://bugs.foobars.net/cgi/bugreport.cgi"))
@end example
@end defvar
@@ -236,7 +236,7 @@ GNU port: @code{"fixed"}, @code{"notabug"},
@code{"wontfix"},
@code{"unreproducible"}, @code{"moreinfo"}, @code{"patch"},
@code{"pending"}, @code{"help"}, @code{"security"},
@code{"confirmed"}, @code{"easy"}. See
address@hidden://debbugs.gnu.org/Developer.html#tags} for the actual list
address@hidden://debbugs.gnu.org/Developer.html#tags} for the actual list
of tags.
@item :owner
diff --git a/packages/el-search/el-search-x.el
b/packages/el-search/el-search-x.el
index 7c050cf..9a98c87 100644
--- a/packages/el-search/el-search-x.el
+++ b/packages/el-search/el-search-x.el
@@ -33,15 +33,152 @@
;;; Code:
+(eval-when-compile (require 'subr-x))
(require 'el-search)
+;;;; `append and `l'
+
+(defun el-search--split (matcher1 matcher2 list)
+ "Helper for the \"append\" pattern type.
+
+When a splitting of LIST into two lists L1, L2 exist so that Li
+is matched by MATCHERi, return (L1 L2) for such Li, else return
+nil."
+ (let ((try-match (lambda (list1 list2)
+ (when (and (el-search--match-p matcher1 list1)
+ (el-search--match-p matcher2 list2))
+ (list list1 list2))))
+ (list1 list) (list2 '()) (match nil))
+ ;; don't use recursion, this could hit `max-lisp-eval-depth'
+ (while (and (not (setq match (funcall try-match list1 list2)))
+ (consp list1))
+ (let ((last-list1 (last list1)))
+ (if-let ((cdr-last-list1 (cdr last-list1)))
+ ;; list1 is a dotted list. Then list2 must be empty.
+ (progn (setcdr last-list1 nil)
+ (setq list2 cdr-last-list1))
+ (setq list1 (butlast list1 1)
+ list2 (cons (car last-list1) list2)))))
+ match))
+
+(el-search-defpattern append (&rest patterns)
+ "Matches any list factorable into lists matched by PATTERNS in order.
+
+PATTERNS is a list of patterns P1..Pn. Match any list L for that
+lists L1..Ln exist that are matched by P1..Pn in order and L is
+equal to the concatenation of L1..Ln. Ln is allowed to be no
+list.
+
+When different ways of matching are possible, it is unspecified
+which one is chosen.
+
+Example: the pattern
+
+ (append '(1 2 3) x (app car-safe 7))
+
+matches the list (1 2 3 4 5 6 7 8 9) and binds `x' to (4 5 6)."
+ (if (null patterns)
+ '(pred null)
+ (pcase-let ((`(,pattern . ,more-patterns) patterns))
+ (cond
+ ((null more-patterns) pattern)
+ ((null (cdr more-patterns))
+ `(and (pred listp)
+ (app ,(apply-partially #'el-search--split
+ (el-search--matcher pattern)
+ (el-search--matcher (car more-patterns)))
+ `(,,pattern ,,(car more-patterns)))))
+ (t `(append ,pattern (append ,@more-patterns)))))))
+
+(defun el-search--transform-nontrivial-lpat (expr)
+ (pcase expr
+ ((and (pred symbolp) (let symbol-name (symbol-name expr)))
+ `(or (symbol ,symbol-name)
+ `',(symbol ,symbol-name)
+ `#',(symbol ,symbol-name)))
+ ((pred stringp) `(string ,expr))
+ (_ expr)))
+
+(el-search-defpattern l (&rest lpats)
+ "Alternative pattern type for matching lists.
+Match any list with subsequent elements matched by all LPATS in
+order.
+
+The idea is to be able to search for pieces of code (i.e. lists)
+with very brief input by using a specialized syntax.
+
+An LPAT can take the following forms:
+
+SYMBOL Matches any symbol S matched by SYMBOL's name interpreted
+ as a regexp. Matches also 'S and #'S for any such S.
+STRING Matches any string matched by STRING interpreted as a
+ regexp
+_ Matches any list element
+__ Matches any number of list elements (including zero)
+^ Matches zero elements, but only at the beginning of a list
+$ Matches zero elements, but only at the end of a list
+PAT Anything else is interpreted as a normal pcase pattern, and
+ matches one list element matched by it
+
+^ is only valid as the first, $ as the last of the LPATS.
+
+Example: To match defuns that contain \"hl\" in their name and
+have at least one mandatory, but also optional arguments, you
+could use this pattern:
+
+ (l ^ 'defun hl (l _ &optional))"
+ (declare
+ (heuristic-matcher
+ (lambda (&rest lpats)
+ (lambda (atoms)
+ (cl-every
+ (lambda (lpat)
+ (pcase lpat
+ ((or '__ '_ '_? '^ '$) t)
+ ((pred symbolp)
+ (funcall (el-search-heuristic-matcher `(symbol ,(symbol-name
lpat))) atoms))
+ (_ (funcall (el-search-heuristic-matcher
(el-search--transform-nontrivial-lpat lpat))
+ atoms))))
+ lpats)))))
+ (let ((match-start nil) (match-end nil))
+ (when (eq (car-safe lpats) '^)
+ (setq match-start t)
+ (cl-callf cdr lpats))
+ (when (eq (car-safe (last lpats)) '$)
+ (setq match-end t)
+ (cl-callf butlast lpats 1))
+ `(append ,@(if match-start '() '(_))
+ ,@(mapcar
+ (lambda (elt)
+ (pcase elt
+ ('__ '_)
+ ('_ '`(,_))
+ ('_? '(or '() `(,_))) ;FIXME: useful - document? or should
we provide a (? PAT)
+ ;thing?
+ (_ ``(,,(el-search--transform-nontrivial-lpat elt)))))
+ lpats)
+ ,@(if match-end '() '(_)))))
+
+
;;;; `change', `changed'
(defvar diff-hl-reference-revision)
(declare-function diff-hl-changes "diff-hl")
+(declare-function vc-git-command "vc-git")
(defvar-local el-search--cached-changes nil)
+
+(defcustom el-search-change-revision-transformer-function nil
+ "Transformer function for the REVISION argument of `change' and `changed'.
+
+When specified, this function is called on the REVISION argument
+of `change' and `changed' before passing it to git. The default
+value is nil."
+ :group 'el-search
+ :type '(choice (const :tag "No transformer" nil)
+ (function :tag "User specified function")))
+
(defun el-search--changes-from-diff-hl (revision)
"Return a list of changed regions (as conses of positions) since REVISION.
Use variable `el-search--cached-changes' for caching."
@@ -51,25 +188,35 @@ Use variable `el-search--cached-changes' for caching."
(cdr el-search--cached-changes)
(when (buffer-modified-p)
(error "Buffer is modified - please save"))
+ (require 'vc)
(require 'diff-hl)
;; `diff-hl-changes' returns line numbers. We must convert them into
positions.
(save-restriction
(widen)
(save-excursion
- (let ((diff-hl-reference-revision revision)
+ (let ((diff-hl-reference-revision
+ (funcall (or el-search-change-revision-transformer-function
#'identity) revision))
(current-line-nbr 1) change-beg)
(goto-char 1)
(cdr (setq el-search--cached-changes
(cons (list revision (visited-file-modtime))
- (delq nil (mapcar (pcase-lambda (`(,start-line
,nbr-lines ,kind))
- (if (eq kind 'delete) nil
- (forward-line (- start-line
current-line-nbr))
- (setq change-beg (point))
- (forward-line (1- nbr-lines))
- (setq current-line-nbr (+
start-line nbr-lines -1))
- (cons (copy-marker change-beg)
- (copy-marker
(line-end-position)))))
- (diff-hl-changes)))))))))))
+ (and
+ (let ((file-name buffer-file-name))
+ (with-temp-buffer
+ (vc-git-command
+ (current-buffer) 128 file-name
+ "log" "--ignore-missing" "-1"
+ diff-hl-reference-revision "--" file-name)
+ (> (point-max) 1)))
+ (delq nil (mapcar (pcase-lambda (`(,start-line
,nbr-lines ,kind))
+ (if (eq kind 'delete) nil
+ (forward-line (- start-line
current-line-nbr))
+ (setq change-beg (point))
+ (forward-line (1- nbr-lines))
+ (setq current-line-nbr (+
start-line nbr-lines -1))
+ (cons (copy-marker
change-beg)
+ (copy-marker
(line-end-position)))))
+ (ignore-errors
(diff-hl-changes)))))))))))))
(defun el-search--change-p (posn &optional revision)
;; Non-nil when sexp after POSN is part of a change
@@ -98,15 +245,133 @@ Use variable `el-search--cached-changes' for caching."
"Matches the object if its text is part of a file change.
Requires library \"diff-hl\". REVISION defaults to the file's
-repository's HEAD commit."
- `(guard (el-search--change-p (point) ,revision)))
+repository's HEAD commit and is a git revision string. Customize
+`el-search-change-revision-transformer-function' to control how
+REVISION is interpreted."
+ `(guard (el-search--change-p (point) ,(or revision "HEAD"))))
(el-search-defpattern changed (&optional revision)
"Matches the object if its text contains a file change.
Requires library \"diff-hl\". REVISION defaults to the file's
-repository's HEAD commit."
- `(guard (el-search--changed-p (point) ,revision)))
+repository's HEAD commit and is a git revision string. Customize
+`el-search-change-revision-transformer-function' to control how
+REVISION is interpreted."
+ `(guard (el-search--changed-p (point) ,(or revision "HEAD"))))
+
+
+;;;; `keys'
+
+(defun el-search--match-key-sequence (keys expr)
+ (when-let ((expr-keys (pcase expr
+ ((or (pred stringp) (pred vectorp)) expr)
+ (`(kbd ,(and (pred stringp) string)) (ignore-errors
(kbd string))))))
+ (apply #'equal
+ (mapcar (lambda (keys) (ignore-errors (key-description keys)))
+ (list keys expr-keys)))))
+
+(el-search-defpattern keys (key-sequence)
+ "Matches descriptions of the KEY-SEQUENCE.
+KEY-SEQUENCE is a string or vector representing a key sequence,
+or an expression of the form (kbd STRING).
+
+Match any description of the same key sequence in any of these
+formats.
+
+Example: the pattern
+
+ (keys (kbd \"C-s\"))
+
+matches any of these expressions:
+
+ \"\\C-s\"
+ \"\C-s\"
+ (kbd \"C-s\")
+ [(control ?s)]"
+ (when (eq (car-safe key-sequence) 'kbd)
+ (setq key-sequence (kbd (cadr key-sequence))))
+ (el-search-defpattern--check-args
+ "keys" (list key-sequence) (lambda (x) (or (stringp x) (vectorp x)))
"argument not a string or vector")
+ `(pred (el-search--match-key-sequence ,key-sequence)))
+
+
+;;;; `but-not-parent' and `top-level'
+
+(el-search-defpattern but-not-parent (pattern &optional not-pattern)
+ "Matches when PATTERN matches but the parent sexp does not.
+For toplevel expressions, this is equivalent to PATTERN.
+
+Optional NOT-PATTERN defaults to PATTERN; when given, match when
+PATTERN matches but the parent sexp is not matched by
+NOT-PATTERN.
+
+
+This pattern is useful to match only the outermost expression
+when subexpressions would match recursively. For
+example, (but-not-parent _) matches only top-level expressions.
+Another example: For the `change' pattern, any subexpression of a
+match is typically also an according change. Wrapping the
+`change' pattern into `but-not-parent' prevents el-search from
+descending into any found expression - only the outermost
+expression matching the `change' pattern will be matched."
+ `(and ,pattern
+ (not (guard (save-excursion
+ (condition-case nil
+ (progn
+ (backward-up-list)
+ (el-search--match-p
+ ',(el-search--matcher (or not-pattern pattern))
+ (save-excursion (read (current-buffer)))))
+ (scan-error)))))))
+
+(el-search-defpattern top-level ()
+ "Matches any toplevel expression."
+ '(but-not-parent _))
+
+
+;;; Patterns for stylistic rewriting
+
+;;;; Iffy `if's
+
+(defun el-search--nested-if-1 (expr)
+ ;; EXPR is a (potentially nested) `if' expression. Return a list L so
+ ;; that (cond . L) is semantically equivalent to EXPR. For example,
+ ;; when EXPR == (if x 1 (if y 2 3)), return ((x 1) (y 2) (t 3))
+ (pcase-exhaustive expr
+ (`(if ,condition ,then ,(and `(if . ,_) inner-if))
+ `((,condition ,then) ,@(el-search--nested-if-1 inner-if)))
+ (`(if ,condition ,then)
+ `((,condition ,then)))
+ (`(if ,condition ,then . ,else)
+ `((,condition ,then)
+ (t . ,else)))))
+
+(el-search-defpattern -nested-if (&optional var)
+ (let ((test-pattern '`(if ,_ ,_ (if ,_ ,_ ,_ . ,_))))
+ (if (not var) test-pattern
+ (let ((cases (make-symbol "cases")))
+ `(and ,test-pattern
+ (app el-search--nested-if-1 ,cases)
+ (let ,var `(cond . ,,cases)))))))
+
+(el-search-defpattern iffy-if (&optional var)
+ "Matches `if'-clauses that could be replaced with a more suitable form.
+
+Match `if' clauses that would fit better into either `cond',
+`when' or `unless'. With symbol VAR given, bind that to such a
+semantically equivalent expression suitable to replace the
+current match."
+ (cl-callf or var '_)
+ (let ((condition (make-symbol "condition"))
+ (then (make-symbol "then"))
+ (clauses (make-symbol "clauses")))
+ `(or (-nested-if ,var)
+ (and `(if (not ,,condition) ,,then)
+ (let ,var `(unless ,,condition ,,then)))
+ (and `(if ,,condition ,,then)
+ (let ,var `(when ,,condition ,,then)))
+ (and `(if ,,condition ,,then (cond . ,,clauses))
+ (let ,var `(cond (,,condition ,,then) . ,,clauses))))))
(provide 'el-search-x)
diff --git a/packages/el-search/el-search.el b/packages/el-search/el-search.el
index c10a284..2dbd022 100644
--- a/packages/el-search/el-search.el
+++ b/packages/el-search/el-search.el
@@ -1,4 +1,4 @@
-;;; el-search.el --- Expression based incremental search for emacs-lisp-mode
-*- lexical-binding: t -*-
+;;; el-search.el --- Expression based interactive search for emacs-lisp-mode
-*- lexical-binding: t -*-
;; Copyright (C) 2015, 2016 Free Software Foundation, Inc
@@ -7,8 +7,8 @@
;; Created: 29 Jul 2015
;; Keywords: lisp
;; Compatibility: GNU Emacs 25
-;; Version: 0.2.3
-;; Package-Requires: ((emacs "25"))
+;; Version: 1.1.2
+;; Package-Requires: ((emacs "25") (stream "2.2.3"))
;; This file is not part of GNU Emacs.
@@ -29,10 +29,41 @@
;;; Commentary:
+;; Suggested key bindings
+;; ======================
+;;
+;; You can eval the following key definitions to try things out while
+;; reading this introduction. These are the bindings I use
+;; personally:
+;;
+;; (define-key emacs-lisp-mode-map [(control ?S)] #'el-search-pattern)
+;; (define-key emacs-lisp-mode-map [(control ?%)] #'el-search-query-replace)
+;; (define-key global-map [(control ?J)]
#'el-search-jump-to-search-head)
+;; (define-key global-map [(control ?N)]
#'el-search-continue-in-next-buffer)
+;;
+;; (define-key el-search-read-expression-map [(control ?S)]
#'exit-minibuffer)
+;;
+;; (define-key isearch-mode-map [(control ?S)]
#'el-search-search-from-isearch)
+;;
+;; (with-eval-after-load 'dired
+;; (define-key dired-mode-map [(control ?S)]
#'el-search-dired-marked-files))
+;;
+;; These bindings may not work in a console (if you have an idea for
+;; official bindings that fit better into the Emacs ecosystem, please
+;; mail me).
+;;
+;; The binding in `isearch-mode-map' lets you switch to "el-search"
+;; from isearch reusing already the given input. The binding in
+;; `el-search-read-expression-map' allows you to hit C-S twice to
+;; start a search using the last search pattern, similar to isearch.
+;;
+;; Don't be afraid of the long introduction, it's only verbose (sorry)
+;; but not complicated.
+;;
+;;
;; Introduction
;; ============
;;
-;;
;; The main user entry point is `el-search-pattern'. This command
;; prompts for a `pcase' pattern and searches the current buffer for
;; matching expressions by iteratively `read'ing buffer contents. For
@@ -45,9 +76,9 @@
;; pattern types and to combine them with other patterns in a natural
;; and transparent way out of the box.
;;
-;; It doesn't matter how the code is actually formatted. Comments are
-;; ignored, and strings are treated as atomic objects, their contents
-;; are not being searched.
+;; When searching, it doesn't matter how code is actually formatted.
+;; Comments are ignored, and strings are treated as atomic objects,
+;; their contents are not being searched.
;;
;;
;; Example 1: if you enter
@@ -66,15 +97,12 @@
;;
;; you search for all defvar forms that don't specify an init value.
;;
-;; The following will search for defvar forms with a docstring whose
-;; first line is longer than 70 characters:
+;; The following pattern will search for defvar forms with a docstring
+;; whose first line is longer than 70 characters:
;;
;; `(defvar ,_ ,_
-;; ,(and s (guard (< 70 (length (car (split-string s "\n")))))))
-;;
-;;
-;; When a search pattern is processed, the searched buffer is current
-;; with point at the beginning of the currently tested expression.
+;; ,(and (pred stringp) s
+;; (guard (< 70 (length (car (split-string s "\n")))))))
;;
;;
;; Convenience
@@ -89,8 +117,8 @@
;;
;; Example 3:
;;
-;; If you want to search a buffer for symbols that are defined in
-;; "cl-lib", you can use this pattern
+;; If you wanted to search a buffer for symbols that are defined in
+;; "cl-lib", you could use this pattern
;;
;; (guard (and (symbolp exp)
;; (when-let ((file (symbol-file exp)))
@@ -109,13 +137,14 @@
;;
;; It's cumbersome to write out the same complicated pattern
;; constructs in the minibuffer again and again. You can define your
-;; own pcase pattern types for the purpose of el-search with
+;; own `pcase' pattern types for the purpose of el-searching with
;; `el-search-defpattern'. It is just like `pcase-defmacro', but the
-;; effect is limited to this package. See C-h f `el-search-pattern'
-;; for a list of predefined additional pattern forms.
+;; effect is limited to this package (i.e. it uses a separate name
+;; space). See C-h f `el-search-pattern' for a list of predefined
+;; pattern forms.
;;
;; Some additional pattern definitions can be found in the file
-;; "el-search-x.el".
+;; "el-search-x" which is part of this package.
;;
;;
;; Replacing
@@ -125,7 +154,7 @@
;; You are queried for a (pcase) pattern and a replacement expression.
;; For each match of the pattern, the replacement expression is
;; evaluated with the bindings created by the pcase matching in
-;; effect, and printed to produce the replacement string.
+;; effect, and printed to a string to produce the replacement.
;;
;; Example: In some buffer you want to swap the two expressions at the
;; places of the first two arguments in all calls of function `foo',
@@ -156,29 +185,129 @@
;; in a `el-search-query-replace' session.
;;
;;
-;; Suggested key bindings
-;; ======================
+;; Multi Searching
+;; ===============
;;
-;; (define-key emacs-lisp-mode-map [(control ?S)] #'el-search-pattern)
-;; (define-key emacs-lisp-mode-map [(control ?%)] #'el-search-query-replace)
+;; "el-search" is capable of performing "multi searches" - searches
+;; spanning multiple files or buffers. When no more matches can be
+;; found in the current buffer, the search automatically switches to
+;; the next buffer. Examples for search commands starting a multi
+;; search are `el-search-buffers' (search all living elisp mode
+;; buffers), `el-search-directory' (search all elisp files in a
+;; specified directory), `el-search-emacs-elisp-sources' (search all
+;; Emacs elisp sources) and `el-search-dired-marked-files'. Actually,
+;; every search is internally a multi search.
;;
-;; (define-key isearch-mode-map [(control ?S)]
#'el-search-search-from-isearch)
-;; (define-key isearch-mode-map [(control ?%)]
#'el-search-replace-from-isearch)
+;; You can pause any (multi) search by just doing something different,
+;; the state of the search is automatically saved. You can continue
+;; searching by calling `el-search-jump-to-search-head': this command
+;; jumps to the last match and re-activates the search.
+
+;; `el-search-continue-in-next-buffer' skips all remaining matches in
+;; the current buffer and continues searching in the next buffer.
;;
-;; (define-key el-search-read-expression-map [(control ?S)]
#'exit-minibuffer)
+;; Matches found in the current buffer are recorded; use
+;; `el-search-previous-match' to revisit them in reverse order (this
+;; is actually the poor-man's version of a backward search, since a
+;; real backward el-search would be slow).
+;;
+;; There is no multi query-replace currently implemented; I don't know
+;; if it would be that useful as a separate command anyway. If you
+;; want to query-replace in multiple buffers or files, call an
+;; appropriate multi-search command, and every time a first match is
+;; found in any buffer, start an ordinary `el-search-query-replace';
+;; after finishing, check that everything is ok, save etc, and resume
+;; the multi search with one of the above commands.
+;;
+;; There is currently nothing like `occur' for el-search. However,
+;; you can get a list of matches in the form
+;; (file-name-or-buffer . match-position) with
+;;
+;; (el-search-all-matches (el-search-make-search pattern stream))
+;;
+;; where PATTERN is the search pattern and STREAM is a stream of
+;; buffers or files (typical ways to construct such a STREAM are to
+;; call the `stream' function on a list of buffers, or to use
+;; `el-search-stream-of-directory-files').
+;;
+;; For example,
+;;
+;; (el-search-all-matches
+;; (el-search-make-search
+;; ''require
+;; (seq-filter
+;; (lambda (buffer)
+;; (with-current-buffer buffer (derived-mode-p 'emacs-lisp-mode)))
+;; (stream (buffer-list)))))
+;;
+;; would return a list of matches for the symbol require in all elisp
+;; mode buffers.
+;;
+;;
+;; Multiple multi searches
+;; =======================
+;;
+;; Every search is collected in a history. You can resume older
+;; searches from the position of the last match by calling
+;; `el-search-jump-to-search-head' with a prefix argument. That let's
+;; you select an older search to resume and switches to the buffer and
+;; position where this search had been suspended.
+;;
+;; There is no special command to restart a prior search from the
+;; beginning. I suggest to use `repeat-complex-command'.
+;;
+;;
+;; Writing replacement rules for semi-automatic code rewriting
+;; ===========================================================
+;;
+;; When you want to rewrite larger code parts programmatically, it is
+;; often useful to define dedicated patterns for performing the
+;; replacement. Here is an example:
+;;
+;; You heard that in many situations, `dolist' is faster than an
+;; equivalent `mapc'. You use `mapc' quite often in your code and
+;; want to query-replace many occurrences in your stuff. Instead of
+;; using an ad hoc replacing rule, it's cleaner to define a dedicated
+;; named pattern using `el-search-defpattern'. Make this pattern
+;; accept an argument and use this argument to bind the replacement
+;; expression to a variable you specify. In our case, the pattern
+;; could look like this:
+;;
+;; (el-search-defpattern el-search-mapc->dolist (new)
+;; (let ((var (make-symbol "var"))
+;; (body (make-symbol "body"))
+;; (list (make-symbol "list")))
+;; `(and `(mapc (lambda (,,var) . ,,body) ,,list)
+;; (let ,new `(dolist (,,var ,,list) . ,,body)))))
+;;
+;; The first condition in the `and' performs the matching and binds
+;; the essential parts of the `mapc' form to variables. The second,
+;; the `let' part, binds the pattern specified argument NEW (as said,
+;; typically just a variable to receive the rewritten code) to the
+;; rewritten expression - in our case, a `dolist' form is constructed
+;; with the remembered code parts filled in.
+;;
+;; Now, in `el-search-query-replace', you just specify the following
+;; rule:
+;;
+;; (el-search-mapc->dolist replacement) -> replacement
+;;
+;; And when you want to replace in multiple buffers or files, call an
+;; appropriate multi el-search command, e.g. `el-search-directory',
+;; and specify
+;;
+;; (el-search-mapc->dolist replacement)
+;;
+;; as search pattern.
;;
-;; The bindings in `isearch-mode-map' let you conveniently switch to
-;; "el-search" searching from isearch. The binding in
-;; `el-search-read-expression-map' allows you to hit C-S twice to
-;; start a search for the last search pattern.
;;
;;
;; Bugs, Known Limitations
;; =======================
;;
-;; - Replacing: in some cases the reader syntax of forms
-;; is changing due to reading+printing. "Some" because we can treat
-;; that problem in most cases.
+;; - Replacing: in some cases the reader syntax of forms is changing
+;; due to reading+printing. "Some" because we can handle this problem
+;; in most cases.
;;
;; - Similarly: Comments are normally preserved (where it makes
;; sense). But when replacing like `(foo ,a ,b) -> `(foo ,b ,a)
@@ -187,13 +316,11 @@
;;
;; (foo
;; a
-;; ;;a comment
+;; ;; comment
;; b)
;;
;; the comment will be lost.
;;
-;; FIXME: when we have resumable sessions, pause and warn about this case.
-;;
;;
;; Acknowledgments
;; ===============
@@ -201,35 +328,53 @@
;; Thanks to Stefan Monnier for corrections and advice.
;;
;;
+;; Notes for developers
+;; ====================
+;;
+;; We use the following model for multi buffer/file searches: a search
+;; (object) is represented by a struct "el-search-object" that
+;; contains a stream of matches M and a search head object H that
+;; contains a compiled matcher according to the given search pattern,
+;; the buffer and buffer position where to continue searching, and the
+;; stream of buffers or files yet to search.
+;;
+;; When elements are requested from M, H is updated accordingly. H
+;; can be manipulated directly to influence how M will find further
+;; elements when requested (useful for skipping buffers on the fly).
+;;
+;;
;; TODO:
;;
-;; - implement backward searching
+;; - The default keys are not available in the terminal
+;;
+;; - Handle buffers killed/files closed when resuming a search
+;;
+;; - Make el-search-previous-match behave correctly when a buffer has
+;; been modified and data is outdated
;;
-;; - Make `el-search-pattern' accept an &optional limit, at least for
-;; the non-interactive use case?
+;; - Make the non-command `el-search-forward' accept an &optional
+;; LIMIT argument
;;
-;; - improve docstrings
+;; - Make searching work in comments, too? (->
+;; `parse-sexp-ignore-comments'). Related: should the pattern
+;; `symbol' also match strings that contain matches for a symbol so
+;; that it's possible to replace also occurrences of a symbol in
+;; docstrings?
;;
-;; - Make it work in comments, too? (-> `parse-sexp-ignore-comments').
-;; Related: should the pattern `symbol' also match strings that
-;; contain matches for a symbol so that it's possible to replace
-;; also occurrences of a symbol in docstrings?
+;; - Implement an occur like interface?
;;
-;; - handle more reader syntaxes, e.g. #n, #n#
+;; - Port this to non Emacs Lisp modes? How? Would it already
+;; work using only syntax tables, sexp scanning and font-lock?
;;
-;; - Implement sessions; add multi-file support based on iterators. A
-;; file list is read in (or the user can specify an iterator as a
-;; variable). The state in the current buffer is just (buffer
-;; . marker). Or should this be abstracted into an own lib? Could
-;; be named "files-session" or so.
+;; - For query-replace, maybe we should save the original buffer
+;; string in a buffer-local variable, and make that ediff'able
+;; against the new version. Or should we even save multiple
+;; versions when appropriate?
;;
-;; - Make `el-search--format-replacement' work non-heuristically.
-;; Idea: When replacing, for every variable V bound by the search
-;; pattern that directly corresponds to some text T, provide some
-;; "match data" V -> T. Use this when formatting the replacement.
-;; Maybe use a special marker to "paste" in expressions, like (paste
-;; V), whereby the `paste' flag lands in the replacement and can be
-;; replaced textually afterwards.
+;; - Replace: pause and warn when replacement might be wrong
+;; (ambiguous reader syntaxes; lost comments, comments that can't
+;; non-ambiguously be assigned to rewritten code)
+
@@ -243,7 +388,9 @@
(require 'cl-lib)
(require 'elisp-mode)
(require 'thingatpt)
+(require 'stream)
(require 'help-fns) ;el-search--make-docstring
+(require 'ring) ;el-search-history
;;;; Configuration stuff
@@ -254,65 +401,57 @@
(defcustom el-search-this-expression-identifier 'exp
"Identifier ID referring to the current expression in pattern input.
-When entering a PATTERN in an interactive \"el-search\" command,
-the pattern actually used will be (and ID PATTERN).
-The default value is `exp'."
+When entering a pattern in an interactive \"el-search\" command,
+the pattern actually used will be (and ID PATTERN). The default
+value is `exp'."
:type 'symbol)
-(defface el-search-match '((((background dark)) (:background "#0000A0"))
- (t (:background "DarkSlateGray3")))
- "Face for highlighting the current match.")
-
-(defface el-search-other-match '((((background dark)) (:background "#202060"))
- (t (:background
"DarkSlateGray1")))
- "Face for highlighting the other matches.")
-
-(defcustom el-search-smart-case-fold-search t
- "Whether to use smart case folding in pattern matching.
-When an \"el-search\" pattern involves regexp matching (like for
-\"string\" or \"source\") and this option is non-nil,
-case-fold-search will be temporarily bound to t if the according
-regexp contains any upper case letter, and nil else. This is
-done independently for every single matching operation.
-
-If nil, the value of `case-fold-search' is decisive."
- :type 'boolean)
-
-(defcustom el-search-use-sloppy-strings nil
- "Whether to allow the usage of \"sloppy strings\".
-When this option is turned on, for faster typing you are allowed
-to specify symbols instead of strings as arguments to an
-\"el-search\" pattern type that would otherwise accept only
-strings, and their names will be used as input (with other words,
-this spares you to type the string delimiters in many cases).
-
-For example,
-
- \(source ^cl\)
+(defvar el-search-optimized-search t
+ "Whether to use optimized searching.
+When turned on, use a fast pre-processing algorithm to sort out
+buffers that can be proved to not contain a match.
-is then equivalent to
+Setting this to nil should not have any effect apart from making
+multi-buffer searching slower in most cases.")
- \(source \"^cl\"\)
-
-When this option is off, the first form would just signal an
-error."
- :type 'boolean)
-
-
-;;;; Helpers
+(defface el-search-match '((((background dark))
+ ;; (:background "#0000A0")
+ (:background "#600000"))
+ (t (:background "DarkSlateGray3")))
+ "Face for highlighting the current match.")
-(defun el-search--smart-string-match-p (regexp string)
- "`string-match-p' taking `el-search-smart-case-fold-search' into account."
- (let ((case-fold-search (if el-search-smart-case-fold-search
- (not (let ((case-fold-search nil))
- (string-match-p "[[:upper:]]" regexp)))
- case-fold-search)))
- (string-match-p regexp string)))
+(defface el-search-other-match '((((background dark))
+ ;; (:background "#202060")
+ (:background "#603030"))
+ (t (:background "DarkSlateGray1")))
+ "Face for highlighting the other matches.")
-(defun el-search--pp-to-string (expr)
- (let ((print-length nil)
- (print-level nil))
- (pp-to-string expr)))
+(defvar el-search-display-buffer-action
+ '((display-buffer-reuse-window display-buffer-pop-up-frame)
+ (reusable-frames . visible))
+ "The `display-buffer' action used by `el-search-jump-to-search-head'.")
+
+(defcustom el-search-ignored-directory-regexps
+ (mapcar
+ (lambda (name) (format "\\`%s\\'" (regexp-quote name)))
+ ;; this is just the default value of `grep-find-ignored-directories':
+ '("SCCS" "RCS" "CVS" "MCVS" ".src" ".svn" ".git" ".hg" ".bzr" "_MTN"
"_darcs" "{arch}"))
+ "List of regexps defining directories that el-search should ignore.
+
+The value influences the behavior of the commands that perform
+directory searches like `el-search-directory' or
+`el-search-dired-marked-files'. It is consulted by all streams
+`el-search-stream-of-directory-files' returns."
+ :type '(choice (repeat :tag "Ignored directories" regexp)
+ (const :tag "No ignored directories" nil)))
+
+(defvar el-search-map
+ (let ((map (make-sparse-keymap)))
+ (define-key map [(control ?D)] #'el-search-skip-directory)
+ (define-key map [(control ?N)] #'el-search-continue-in-next-buffer)
+ (define-key map [(control ?R)] #'el-search-previous-match)
+ map)
+ "Used by search commands as transient-map.")
(defvar el-search-read-expression-map
(let ((map (make-sparse-keymap)))
@@ -324,6 +463,62 @@ error."
map)
"Map for reading input with `el-search-read-expression'.")
+
+;;;; Helpers and Definitions
+
+(defvar el-search--current-pattern nil
+ "Current search pattern or nil when no search in progress.")
+
+(defvar el-search--current-search nil
+ "The currently active search, an `el-search-object'.")
+
+(defvar el-search--current-matcher nil
+ "The matcher according to `el-search--current-pattern'.")
+
+(defvar-local el-search--temp-buffer-flag nil
+ "Non-nil tags (file) buffers as temporarily opened for searching.")
+
+(defvar el-search--success nil
+ "Non-nil when last search command was successful.")
+
+(defvar-local el-search--this-buffer-matches (stream-empty)
+ "Stream of the matches that were found in current buffer."
+ ;; Internally, simply the substream of the matches of the current
+ ;; search with all matches before current buffer cut off
+ )
+
+(defun el-search-true (&rest _ignore)
+ "Ignore the arguments and return t."
+ t)
+
+(defun el-search--message-no-log (format-string &rest args)
+ "Like `message' but with `message-log-max' bound to nil."
+ (let ((message-log-max nil))
+ (apply #'message format-string args)))
+
+(defun el-search--string-match-p (eregexp string)
+ "Non-nil when extended regexp EREGEXP matches the STRING."
+ (let ((match-bindings ()) regexp)
+ (pcase eregexp
+ ((pred stringp) (setq regexp eregexp))
+ (`(,binds ,real-regexp)
+ (setq regexp real-regexp)
+ (setq match-bindings binds)))
+ (setq match-bindings
+ (mapcar (lambda (binding)
+ (pcase binding
+ ((pred symbolp) (list binding nil))
+ (`(,(and (pred symbolp) symbol)) (list symbol nil))
+ (_ binding)))
+ match-bindings))
+ (cl-progv (mapcar #'car match-bindings) (mapcar #'cadr match-bindings)
+ (string-match-p regexp string))))
+
+(defun el-search--pp-to-string (expr)
+ (let ((print-length nil)
+ (print-level nil))
+ (pp-to-string expr)))
+
(defun el-search--setup-minibuffer ()
(let ((inhibit-read-only t))
(put-text-property 1 (minibuffer-prompt-end) 'font-lock-face
'minibuffer-prompt))
@@ -343,22 +538,28 @@ error."
(append minibuffer-default more-defaults)
(cons minibuffer-default more-defaults)))))))
-;; $$$$$FIXME: this should be in Emacs! There is only a helper
`read--expression'.
(defun el-search-read-expression (prompt &optional initial-contents hist
default read)
- "Read expression for `my-eval-expression'."
+ "Conveniently read an expression from the minibuffer."
(minibuffer-with-setup-hook #'el-search--setup-minibuffer
(read-from-minibuffer prompt initial-contents
el-search-read-expression-map read
(or hist 'read-expression-history) default)))
-(defvar el-search-history '()
- "List of search input strings.")
+(defvar el-search-pattern-history ()
+ "List of search pattern input strings.")
+
+(defvar el-search-history (make-ring 10) ;$$$$FIXME: Make `10' customizable?
+ "History of previous searches."
+ ;; Elements have the form (search-object pattern)
+ )
-(defvar el-search-query-replace-history '()
+(defvar el-search-query-replace-history ()
"List of input strings from `el-search-query-replace'.")
(defvar el-search--initial-mb-contents nil)
(defun el-search--pushnew-to-history (input histvar)
+ ;; Push INPUT to history in HISTVAR unless it's already "the same" as
+ ;; the history's head element
(let ((hist-head (car (symbol-value histvar))))
(unless (or (string-match-p "\\`\\'" input)
(and (stringp hist-head)
@@ -373,23 +574,64 @@ error."
input)
(symbol-value histvar)))))
+(defun el-search--maybe-warn-about-unquoted-symbol (pattern)
+ (when (and (symbolp pattern)
+ (not (eq pattern '_))
+ (or (not (boundp pattern))
+ (not (eq (symbol-value pattern) pattern))))
+ (error "Unbound symbol: %S" pattern)))
+
(defun el-search--read-pattern (prompt &optional default histvar)
- (cl-callf or histvar 'el-search-history)
- (let ((input (el-search-read-expression
- prompt el-search--initial-mb-contents histvar default)))
+ (cl-callf or histvar 'el-search-pattern-history)
+ (let ((input (el-search-read-expression prompt
el-search--initial-mb-contents histvar default)))
(el-search--pushnew-to-history input histvar)
(if (not (string= input "")) input (car (symbol-value histvar)))))
+(defun el-search--read-pattern-for-interactive ()
+ (let* ((input (el-search--read-pattern "Find pcase pattern: " (car
el-search-pattern-history)))
+ (pattern (read input)))
+ ;; A very common mistake: input "foo" instead of "'foo"
+ (el-search--maybe-warn-about-unquoted-symbol pattern)
+ (setq this-command 'el-search-pattern) ;in case we come from isearch
+ ;; Make input available also in query-replace history
+ (el-search--pushnew-to-history input 'el-search-query-replace-history)
+ pattern))
+
+
(defun el-search--end-of-sexp ()
- ;;Point must be at sexp beginning
+ ;; Assumes point is at sexp beginning
(or (scan-sexps (point) 1) (point-max)))
+(defun el-search--skip-expression (expression &optional read)
+ ;; Move forward at least one character. Don't move into a string or
+ ;; comment. Don't move further than the beginning of the next sexp.
+ ;; Try to move as far as possible under these conditions. Point must
+ ;; be at the beginning of an expression. If there are positions where
+ ;; `read' would succeed, but that do not represent a valid sexp start,
+ ;; move past them (e.g. when before "#'" move past both characters).
+ ;;
+ ;; EXPRESSION must equal the (read) expression at point, but with READ
+ ;; non-nil, ignore the first argument and use the read expression at
+ ;; point instead.
+ (when read (setq expression (save-excursion (read (current-buffer)))))
+ (cond
+ ((eq '@ expression) ;bug#24542
+ (forward-char))
+ ((or (null expression)
+ (equal [] expression)
+ (not (or (listp expression) (vectorp expression))))
+ (goto-char (el-search--end-of-sexp)))
+ ((looking-at (rx (or ",@" "," "#'" "'")))
+ (goto-char (match-end 0)))
+ (t (forward-char))))
+
(defun el-search--ensure-sexp-start ()
"Move point to the next sexp beginning position.
-Don't move if already at beginning of a sexp. Point must not be
-inside a string or comment. `read' the expression at that point
-and return it."
- ;; This doesn't catch end-of-buffer to keep the return value non-ambiguous
+Do nothing if already at beginning of a sexp. `read' the
+expression at that point and return it. Point must not be inside
+a string or comment."
+ ;; We donn't catch end-of-buffer to keep the return value
+ ;; non-ambiguous
(let ((not-done t) res)
(while not-done
(let ((stop-here nil)
@@ -420,13 +662,14 @@ and return it."
(error (forward-char))))
res))
+
(defvar el-search--pcase-macros '()
"List of additional \"el-search\" pcase macros.")
(defun el-search--make-docstring (name)
;; code mainly from `pcase--make-docstring'
(let* ((main (documentation (symbol-function name) 'raw))
- (ud (help-split-fundoc main 'pcase)))
+ (ud (help-split-fundoc main name)))
(with-temp-buffer
(insert (or (cdr ud) main))
(mapc
@@ -440,27 +683,68 @@ and return it."
(let ((combined-doc (buffer-string)))
(if ud (help-add-fundoc-usage combined-doc (car ud)) combined-doc)))))
-(put 'el-search-pattern 'function-documentation '(el-search--make-docstring
'el-search-pattern))
+(defvar el-search--heuristic-matchers ()
+ "Alist of heuristic matchers.
+Keys are pattern names (i.e. symbols), and values the associated
+heuristic matcher functions.")
(defmacro el-search-defpattern (name args &rest body)
- "Like `pcase-defmacro', but limited to el-search patterns.
-The semantics is exactly that of `pcase-defmacro', but the scope
-of the definitions is limited to \"el-search\".
+ "Like `pcase-defmacro', but for defining el-search patterns.
-\(fn NAME ARGLIST &optional DOCSTRING &rest BODY)"
+The semantics is exactly that of `pcase-defmacro', but the scope
+of the definitions is limited to \"el-search\", using a separate
+name space. The expansion is allowed to use any defined `pcase'
+pattern as well as any defined el-search pattern.
+
+The docstring may be followed by a `defun' style declaration list
+DECL. There is only one respected specification, it has the form
+
+ \(heuristic-matcher MATCHER-FUNCTION\)
+
+and specifies the heuristic MATCHER-FUNCTION to be associated
+with the defined pattern NAME.
+
+The purpose of a heuristic matcher function is to speed up multi
+buffer searching. When specified, the MATCHER-FUNCTION should be
+a function accepting the same arguments as the defined pattern.
+When called with the ARGS, this function should return a function
+that accepts a list of atoms, which is the complete list of atoms
+found in the buffer to search, and that returns non-nil when this
+buffer could contain a match for the pattern (NAME . ARGS), and
+nil when we can be sure that it contains no match (whereby an
+atom here is anything whose parts aren't searched by
+el-searching, like integers or strings, but unlike arrays). When
+in doubt, this function must return non-nil. When el-searching
+is started with a certain PATTERN, a heuristic matcher function
+is constructed by recursively destructuring PATTERN and combining
+the heuristic matchers of the subpatterns. The resulting
+function is then used to dismiss any buffer for that can be
+proved that it can not contain any match.
+
+\(fn NAME ARGLIST &optional DOCSTRING DECL &rest BODY)"
(declare (indent 2) (debug defun))
- `(setf (alist-get ',name el-search--pcase-macros)
- (lambda ,args ,@body)))
+ (let ((doc nil) (set-heuristic-matcher ()))
+ (when (stringp (car body))
+ (setq doc (car body)
+ body (cdr body)))
+ (pcase (car body)
+ (`(declare (heuristic-matcher ,heuristic-matcher))
+ (setq set-heuristic-matcher
+ `((setf (alist-get ',name el-search--heuristic-matchers)
,heuristic-matcher)))
+ (setq body (cdr body))))
+ `(progn
+ ,@set-heuristic-matcher
+ (setf (alist-get ',name el-search--pcase-macros)
+ (lambda ,args ,doc ,@body)))))
(defmacro el-search--with-additional-pcase-macros (&rest body)
- `(cl-letf ,(mapcar (pcase-lambda (`(,symbol . ,fun))
- `((get ',symbol 'pcase-macroexpander) #',fun))
+ `(cl-letf ,(mapcar (pcase-lambda (`(,symbol . ,fun)) `((get ',symbol
'pcase-macroexpander) #',fun))
el-search--pcase-macros)
,@body))
(defun el-search--macroexpand-1 (pattern)
"Expand \"el-search\" PATTERN.
-This is like `pcase--macroexpand', but expands only patterns
+This is like `pcase--macroexpand' but expands only patterns
defined with `el-search-defpattern' and performs only one
expansion step.
@@ -492,261 +776,376 @@ Return PATTERN if this pattern type was not defined with
(defun el-search--wrap-pattern (pattern)
`(and ,el-search-this-expression-identifier ,pattern))
-(defun el-search--skip-expression (expression &optional read)
- ;; Move forward at least one character. Don't move into a string or
- ;; comment. Don't move further than the beginning of the next sexp.
- ;; Try to move as far as possible. Point must be at the beginning
- ;; of an expression.
- ;; If there are positions where `read' would succeed, but that do
- ;; not represent a valid sexp start, move past them (e.g. when
- ;; before "#'" move past both characters).
- ;;
- ;; EXPRESSION must be the (read) expression at point, but when READ
- ;; is non-nil, ignore the first argument and read the expression at
- ;; point instead.
- (when read (setq expression (save-excursion (read (current-buffer)))))
- (cond
- ((or (null expression)
- (equal [] expression)
- (not (or (listp expression) (vectorp expression))))
- (goto-char (el-search--end-of-sexp)))
- ((looking-at (rx (or ",@" "," "#'" "'")))
- (goto-char (match-end 0)))
- (t (forward-char))))
(defun el-search--search-pattern-1 (matcher &optional noerror)
- (let ((match-beg nil) (opoint (point)) current-expr)
-
- ;; when inside a string or comment, move past it
- (let ((syntax-here (syntax-ppss)))
- (when (nth 3 syntax-here) ;inside a string
- (goto-char (nth 8 syntax-here))
- (forward-sexp))
- (when (nth 4 syntax-here) ;inside a comment
- (forward-line 1)
- (while (and (not (eobp)) (looking-at (rx (and (* space) ";"))))
- (forward-line 1))))
-
- (if (catch 'no-match
- (while (not match-beg)
- (condition-case nil
- (setq current-expr (el-search--ensure-sexp-start))
- (end-of-buffer
- (goto-char opoint)
- (throw 'no-match t)))
- (if (el-search--match-p matcher current-expr)
- (setq match-beg (point)
- opoint (point))
- (el-search--skip-expression current-expr))))
- (if noerror nil (signal 'end-of-buffer nil)))
- match-beg))
-
-(defun el-search--search-pattern (pattern &optional noerror)
- "Search for el-search PATTERN in current buffer.
-Set point to the beginning of the occurrence found and return
-point. Optional second argument, if non-nil, means if fail just
-return nil (no error)."
+ (if (not (derived-mode-p 'emacs-lisp-mode))
+ (if noerror nil (error "Buffer not in emacs-lisp-mode: %s"
(buffer-name)))
+ (let ((match-beg nil) (opoint (point)) current-expr)
+
+ ;; when inside a string or comment, move past it
+ (let ((syntax-here (syntax-ppss)))
+ (when (nth 3 syntax-here) ;inside a string
+ (goto-char (nth 8 syntax-here))
+ (forward-sexp))
+ (when (nth 4 syntax-here) ;inside a comment
+ (forward-line 1)
+ (while (and (not (eobp)) (looking-at (rx (and (* space) ";"))))
+ (forward-line 1))))
+
+ (if (catch 'no-match
+ (while (not match-beg)
+ (condition-case nil
+ (setq current-expr (el-search--ensure-sexp-start))
+ (end-of-buffer
+ (goto-char opoint)
+ (throw 'no-match t)))
+ (if (el-search--match-p matcher current-expr)
+ (setq match-beg (point)
+ opoint (point))
+ (el-search--skip-expression current-expr))))
+ (if noerror nil (signal 'end-of-buffer nil))
+ match-beg))))
+
+(defun el-search-forward (pattern &optional noerror)
+ "Search for el-search PATTERN in current buffer from point.
+Set point to the beginning of the occurrence found and return the
+new value of point. Optional second argument, if non-nil, means
+if fail just return nil (no error)."
(el-search--search-pattern-1 (el-search--matcher pattern) noerror))
-(defun el-search--replace-hunk (region to-insert)
- "Replace the text in REGION in current buffer with string TO-INSERT.
-Add line breaks before and after TO-INSERT when appropriate and
-reindent."
- (atomic-change-group
- (let* ((inhibit-message t)
- (opoint (point))
- (original-text (prog1 (apply #'buffer-substring-no-properties
region)
- (goto-char (car region))
- (apply #'delete-region region)))
- ;; care about other sexps in this line
- (sexp-before-us (not (looking-back "\(\\|^\\s-*"
(line-beginning-position))))
- (sexp-after-us (not (looking-at "\\s-*[;\)]\\|$")))
- (insert-newline-before
- (or
- (and (string-match-p "\n" to-insert)
- (not (string-match-p "\n" original-text))
- (or (and sexp-before-us sexp-after-us)
- (looking-back
- (rx (or (syntax word) (syntax symbol))
- (+ blank)
- (or (syntax word) (syntax symbol))
- (* any))
- (line-beginning-position))))
- ;; (and sexp-before-us
- ;; (> (+ (apply #'max (mapcar #'length (split-string
to-insert "\n")))
- ;; (- (point) (line-beginning-position)))
- ;; fill-column))
- ))
- (insert-newline-after (and insert-newline-before sexp-after-us)))
- (when insert-newline-before
- (when (looking-back "\\s-+" (line-beginning-position))
- (delete-region (match-beginning 0) (match-end 0)))
- (insert "\n"))
- (insert to-insert)
- (when insert-newline-after
- (insert "\n"))
- (indent-region opoint (1+ (point))))))
-(defun el-search--format-replacement (replacement original replace-expr-input
splice)
- ;; Return a printed representation of REPLACEMENT. Try to reuse the
- ;; layout of subexpressions shared with the original (replaced)
- ;; expression and the replace expression.
- (if (and splice (not (listp replacement)))
- (error "Expression to splice in is an atom")
- (let ((orig-buffer (generate-new-buffer "orig-expr")))
- (with-current-buffer orig-buffer
- (emacs-lisp-mode)
- (insert original)
- (when replace-expr-input (insert "\n\n" replace-expr-input)))
- (unwind-protect
- (with-temp-buffer
- (emacs-lisp-mode)
- (insert (if splice
- (mapconcat #'el-search--pp-to-string replacement " ")
- (el-search--pp-to-string replacement)))
- (goto-char 1)
- (let (start this-sexp end orig-match-start orig-match-end done)
- (while (and (< (point) (point-max))
- (condition-case nil
- (progn
- (setq start (point)
- this-sexp (read (current-buffer))
- end (point))
- t)
- (end-of-buffer nil)))
- (setq done nil orig-match-start nil)
- (with-current-buffer orig-buffer
- (goto-char 1)
- (if (el-search--search-pattern `',this-sexp t)
- (setq orig-match-start (point)
- orig-match-end (progn (forward-sexp) (point)))
- (setq done t)))
- ;; find out whether we have a sequence of equal expressions
- (while (and (not done)
- (condition-case nil
- (progn (setq this-sexp (read
(current-buffer))) t)
- ((invalid-read-syntax end-of-buffer end-of-file)
nil)))
- (if (with-current-buffer orig-buffer
- (condition-case nil
- (if (not (equal this-sexp (read (current-buffer))))
- nil
- (setq orig-match-end (point))
- t)
- ((invalid-read-syntax end-of-buffer end-of-file)
nil)))
- (setq end (point))
- (setq done t)))
- ;; FIXME: there could be another occurrence of THIS-SEXP in
ORIG-BUFFER with more
- ;; subsequent equal expressions after it
- (if orig-match-start
- (el-search--replace-hunk
- (list start end)
- (with-current-buffer orig-buffer
- (buffer-substring-no-properties orig-match-start
orig-match-end)))
- (goto-char start)
- (el-search--skip-expression nil t))
- (condition-case nil
- (el-search--ensure-sexp-start)
- (end-of-buffer (goto-char (point-max))))))
- (goto-char 1)
- (forward-sexp (if splice (length replacement) 1))
- (let ((result (buffer-substring 1 (point))))
- (if (equal replacement (read (if splice (format "(%s)" result)
result)))
- result
- (error "Error in `el-search--format-replacement' - please make
a bug report"))))
- (kill-buffer orig-buffer)))))
-
-(defun el-search--check-pattern-args (type args predicate &optional message)
+(defun el-search-defpattern--check-args (type args predicate &optional message)
"Check whether all ARGS fulfill PREDICATE.
Raise an error if not. The string arguments TYPE and optional
MESSAGE are used to construct the error message."
- (mapc (lambda (arg)
- (unless (funcall predicate arg)
- (error (concat "Pattern `%s': "
- (or message (format "argument doesn't fulfill %S"
predicate))
- ": %S")
- type arg)))
- args))
-
-(defvar el-search-current-pattern nil)
-
-(defvar el-search-success nil)
+ (dolist (arg args)
+ (unless (funcall predicate arg)
+ (error (concat "Pattern `%s': "
+ (or message (format "argument doesn't fulfill %S"
predicate))
+ ": %S")
+ type arg))))
+
+(defun el-search--elisp-file-name-p (file)
+ (and (string-match-p "\\.el\\'" file)
+ (file-exists-p file)
+ (not (file-directory-p file))))
+
+(cl-defstruct el-search-object
+ head ;an `el-search-head' instance, modified ("moved") while searching
+ matches ;the stream of matches in the form (buffer position file)
+ last-match ;position of last match found
+ )
+
+(cl-defstruct el-search-head
+ matcher ;for the search pattern
+ heuristic-buffer-matcher ;for the search pattern
+ buffer ;currently searched buffer, or nil meaning
"continue in next buffer"
+ file ;name of currently searched file, or nil
+ position ;where to continue search in this buffer
+ buffers ;stream of buffers and/or files yet to search
+ )
+
+(defun el-search-kill-left-over-search-buffers (&optional not-current-buffer)
+ "Kill all buffers that were opened for searching."
+ (interactive)
+ (dolist (buffer (buffer-list))
+ (when (with-current-buffer buffer el-search--temp-buffer-flag)
+ (unless (or (buffer-modified-p buffer)
+ (and not-current-buffer (eq buffer (current-buffer))))
+ (kill-buffer buffer)))))
+
+(defun el-search-heuristic-matcher (pattern)
+ "Return a heuristic matcher for PATTERN.
+This is a predicate accepting a list of a file's or buffer's
+atoms and returns nil when we can be sure that this file or
+buffer can't contain a match for PATTERN, and non-nil else."
+ (pcase pattern
+ ((pred symbolp) #'el-search-true)
+ ((pred pcase--self-quoting-p) (apply-partially #'member pattern))
+ (`',tree
+ (pcase (el-search--flatten-tree tree)
+ (`(,tree) (apply-partially #'member tree))
+ (flattened (let ((matchers (mapcar (lambda (atom)
(el-search-heuristic-matcher `',atom))
+ flattened)))
+ (lambda (atoms) (cl-every (lambda (matcher) (funcall
matcher atoms)) matchers))))))
+ (``,qpat
+ (cond
+ ((eq (car-safe qpat) '\,) (el-search-heuristic-matcher (cadr qpat)))
+ ((vectorp qpat)
+ (let ((matchers (mapcar (lambda (inner-qpat)
(el-search-heuristic-matcher (list '\` inner-qpat)))
+ qpat)))
+ (lambda (atoms) (cl-every (lambda (matcher) (funcall matcher atoms))
matchers))))
+ ((consp qpat)
+ (el-search-heuristic-matcher
+ `(and
+ ,(list '\` (car qpat))
+ ,(if (cdr qpat) (list '\` (cdr qpat)) '_))))
+ ((or (stringp qpat) (integerp qpat) (symbolp qpat)) (apply-partially
#'member qpat))
+ (t #'el-search-true)))
+ (`(and . ,patterns)
+ (let ((matchers (mapcar #'el-search-heuristic-matcher patterns)))
+ (lambda (atoms) (cl-every (lambda (matcher) (funcall matcher atoms))
matchers))))
+ (`(or . ,patterns)
+ (let ((matchers (mapcar #'el-search-heuristic-matcher patterns)))
+ (lambda (atoms) (cl-some (lambda (matcher) (funcall matcher atoms))
matchers))))
+ (`(,(or 'app 'let 'pred 'guard) . ,_) #'el-search-true)
+ ((and `(,name . ,args)
+ (let matcher (alist-get name el-search--heuristic-matchers)) (guard
matcher))
+ (ignore name) ;quite byte compiler
+ (apply matcher args))
+ ((and (app el-search--macroexpand-1 expanded)
+ (guard (not (eq expanded pattern))))
+ (el-search-heuristic-matcher expanded))
+ (_ #'el-search-true)))
+
+(defun el-search-atom-list (buffer)
+ (with-current-buffer buffer
+ (apply #'append
+ (mapcar #'el-search--flatten-tree
+ (save-excursion
+ (goto-char (point-min))
+ (let ((forms ()))
+ (condition-case err
+ (while t (push (read (current-buffer)) forms))
+ (end-of-file forms)
+ (error "Unexpected error whilst reading %s position
%s: %s"
+ buffer (point) err))))))))
+
+(defun el-search--flatten-tree (tree)
+ (let ((elements ()))
+ (cl-labels ((walker (object)
+ (if (or (not (sequencep object)) (stringp object)
(null object)
+ (char-table-p object) (bool-vector-p object))
+ (push object elements)
+ (if (consp object)
+ (progn
+ (while (consp object)
+ (walker (car object))
+ (setq object (cdr object)))
+ (when object ;dotted list
+ (walker object)))
+ (cl-loop for elt being the elements of object do
(walker elt))))))
+ (walker tree)
+ elements)))
+
+(defun el-search-heuristic-buffer-matcher (pattern)
+ (let ((heuristic-matcher (el-search-heuristic-matcher pattern)))
+ (lambda (file-name-or-buffer)
+ (el-search--message-no-log "Searching in %s"
+ (if (stringp file-name-or-buffer)
+ file-name-or-buffer
+ (buffer-name file-name-or-buffer)))
+ (if (bufferp file-name-or-buffer)
+ (and (buffer-live-p file-name-or-buffer)
+ (funcall heuristic-matcher (el-search-atom-list
(current-buffer))))
+ (with-temp-buffer
+ (insert-file-contents file-name-or-buffer)
+ (funcall heuristic-matcher (el-search-atom-list
(current-buffer))))))))
+
+(defvar warning-minimum-level)
+(defun el-search--next-buffer (search &optional predicate)
+ ;; Prepare to continue SEARCH in the next buffer in line. Move
+ ;; SEARCH's head accordingly. When specified, PREDICATE should accept
+ ;; a file name or a buffer, and we skip all buffers and files not
+ ;; fulfilling it. Return the new buffer to search in or nil if done.
+ (el-search-hl-remove)
+ (el-search-kill-left-over-search-buffers t)
+ (let ((original-predicate (or predicate #'el-search-true))
+ (heuristic-buffer-matcher
+ (el-search-head-heuristic-buffer-matcher (el-search-object-head
search))))
+ (setq predicate
+ (lambda (file-name-or-buffer)
+ (and (funcall original-predicate file-name-or-buffer)
+ (or (not el-search-optimized-search)
+ (funcall heuristic-buffer-matcher
file-name-or-buffer))))))
+ (let ((head (el-search-object-head search)))
+ (let ((buffer-stream (el-search-head-buffers head))
+ (buffer-list-before (buffer-list))
+ (done nil) next buffer)
+ (while (and (not done) (not (stream-empty-p buffer-stream)))
+ (setq next (stream-first buffer-stream)
+ buffer-stream (stream-rest buffer-stream)
+ done (or (not predicate) (funcall predicate next))))
+ (if (not done)
+ (progn
+ (setf (el-search-head-buffer head) nil
+ (el-search-head-buffers head) buffer-stream) ;i.e. the
empty stream
+ nil)
+ (setf (el-search-head-buffers head) buffer-stream
+ (el-search-head-position head) 1)
+ (if (bufferp next)
+ (setq buffer next)
+ (setf (el-search-head-file head) next)
+ (setq buffer (let ((warning-minimum-level :error))
(find-file-noselect next))))
+ (unless (memq buffer buffer-list-before)
+ (with-current-buffer buffer
+ (setq-local el-search--temp-buffer-flag t)))
+ (setf (el-search-head-buffer head) buffer)
+ (when (bufferp buffer)
+ (with-current-buffer buffer
+ (setq-local el-search--this-buffer-matches
+ (el-search-object-matches search))
+ (when (and (buffer-narrowed-p)
+ (y-or-n-p (format "Widen buffer \"%s\"? "
+ (buffer-name))))
+ ;;FIXME: Is this always appropriate?
+ (widen))))
+ buffer))))
+
+(defun el-search--skip-to-next-buffer (&optional predicate)
+ ;; Find next buffer fulfilling the PREDICATE and continue search there
+ (el-search--next-buffer el-search--current-search predicate)
+ (el-search-continue-search))
+
+(defun el-search-make-search (pattern stream)
+ "Create and return a new `el-search-object' instance.
+MATCHER is the result of calling `el-search--matcher' on the
+pattern to search. STREAM is a stream of buffers and/or files to
+search."
+ (let* ((matcher (el-search--matcher pattern))
+ (head (make-el-search-head
+ :matcher matcher
+ :buffers stream
+ :heuristic-buffer-matcher (el-search-heuristic-buffer-matcher
pattern))))
+ (letrec ((search
+ (make-el-search-object
+ :head head
+ :matches
+ (seq-filter
+ #'identity ;we use `nil' as a "skip" tag
+ (funcall
+ (letrec ((get-stream
+ (lambda ()
+ (stream-make
+ (if-let ((buffer (or (el-search-head-buffer head)
+ (el-search--next-buffer
search))))
+ (with-current-buffer buffer
+ (save-excursion
+ ;; Widening already happens in
`el-search-continue-search'
+ (goto-char (el-search-head-position
head))
+ (el-search--message-no-log "Searching in
%s"
+ (or
(el-search-head-file head)
+
(el-search-head-buffer head)))
+ (if-let ((match
(el-search--search-pattern-1
+ (el-search-head-matcher
head) t)))
+ (progn
+ (setf (el-search-object-last-match
search)
+ (copy-marker (point)))
+ (el-search--skip-expression nil t)
+ (setf (el-search-head-position
head)
+ (copy-marker (point)))
+ (cons
+ (list (el-search-head-buffer head)
+ match
+ (el-search-head-file head))
+ (funcall get-stream)))
+ (setf (el-search-head-buffer head) nil
+ (el-search-head-file head) nil)
+ (el-search--next-buffer search)
+ ;; retry with the next buffer
+ (cons nil (funcall get-stream)))))
+ ;; end of stream (no buffers left to search in)
+ nil)))))
+ get-stream))))))
+ search)))
+
+(defun el-search-setup-search (pattern stream &optional from-here)
+ "Create and start a new search.
+PATTERN is the search pattern. STREAM is a stream of buffers
+and/or files (i.e. file names) to search in.
+
+With optional FROM-HERE non-nil, the first buffer in STREAM
+should be the current buffer, and searching will start at the
+current buffer's point instead of its beginning."
+ (setq el-search--success nil)
+ (setq el-search--current-search (el-search-make-search
(el-search--wrap-pattern pattern) stream))
+ (setq el-search--current-matcher
+ (el-search-head-matcher (el-search-object-head
el-search--current-search)))
+ (setq el-search--current-pattern pattern)
+ (ring-insert el-search-history (list el-search--current-search pattern))
+ (when from-here (setq el-search--temp-buffer-flag nil))
+ (el-search-continue-search from-here))
+
+(defun el-search-stream-of-directory-files (&optional directory recurse)
+ "Return a stream of emacs-lisp files in DIRECTORY.
+DIRECTORY defaults to `default-directory'. The returned stream
+will recurse into DIRECTORY's subdirectories when RECURSE is
+non-nil unless their name is matched by one of the
+`el-search-ignored-directory-regexps'."
+ (stream-of-directory-files
+ (or directory default-directory)
+ t nil
+ (and recurse
+ (lambda (dir-name)
+ (not (cl-some (lambda (regexp) (string-match-p regexp dir-name))
+ el-search-ignored-directory-regexps))))
+ t #'el-search--elisp-file-name-p))
;;;; Additional pattern type definitions
-(defun el-search--split (matcher1 matcher2 list)
- "Helper for the append pattern type.
-
-When a splitting of LIST into two lists L1, L2 exist so that Li
-is matched by MATCHERi, return (L1 L2) for such Li, else return
-nil."
- (let ((try-match (lambda (list1 list2)
- (when (and (el-search--match-p matcher1 list1)
- (el-search--match-p matcher2 list2))
- (list list1 list2))))
- (list1 list) (list2 '()) (match nil))
- ;; don't use recursion, this could hit `max-lisp-eval-depth'
- (while (and (not (setq match (funcall try-match list1 list2)))
- (consp list1))
- (let ((last-list1 (last list1)))
- (if-let ((cdr-last-list1 (cdr last-list1)))
- ;; list1 is a dotted list. Then list2 must be empty.
- (progn (setcdr last-list1 nil)
- (setq list2 cdr-last-list1))
- (setq list1 (butlast list1 1)
- list2 (cons (car last-list1) list2)))))
- match))
-
-(el-search-defpattern append (&rest patterns)
- "Matches any list factorable into lists matched by PATTERNS in order.
-
-PATTERNS is a list of patterns P1..Pn. Match any list L for that
-lists L1..Ln exist that are matched by P1..Pn in order and L is
-equal to the concatenation of L1..Ln. Ln is allowed to be no
-list.
-
-When different ways of matching are possible, it is unspecified
-which one is chosen.
-
-Example: the pattern
-
- (append '(1 2 3) x (app car-safe 7))
-
-matches the list (1 2 3 4 5 6 7 8 9) and binds `x' to (4 5 6)."
- (if (null patterns)
- '(pred null)
- (pcase-let ((`(,pattern . ,more-patterns) patterns))
- (cond
- ((null more-patterns) pattern)
- ((null (cdr more-patterns))
- `(and (pred listp)
- (app ,(apply-partially #'el-search--split
- (el-search--matcher pattern)
- (el-search--matcher (car more-patterns)))
- `(,,pattern ,,(car more-patterns)))))
- (t `(append ,pattern (append ,@more-patterns)))))))
-
-(defun el-search--stringish-p (thing)
- (or (stringp thing) (and el-search-use-sloppy-strings (symbolp thing))))
+(defun el-search--eregexp-p (thing)
+ ;; Return non-nil when THING is an "extended regexp" in the sense of
+ ;; the "string" pattern type
+ (pcase thing
+ ((pred stringp) t)
+ (`(,(and (pred listp) bindings)
+ ,(pred stringp))
+ (cl-every
+ (lambda (binding) (pcase binding ((or (pred symbolp) `(,(pred symbolp))
`(,(pred symbolp) ,_)) t)))
+ bindings))))
(el-search-defpattern string (&rest regexps)
- "Matches any string that is matched by all REGEXPS."
- (el-search--check-pattern-args "string" regexps #'el-search--stringish-p
- "Argument not a string")
+ "Matches any string that is matched by all REGEXPS.
+
+Any of the REGEXPS can also be an \"extended\" regexp of the form
+
+ \(bindings regexp\)
+
+where REGEXP is the actual regexp to match and BINDINGS is a
+let-style list of variable bindings.
+
+Example: (((case-fold-search nil)) \"foo\") is an extended regexp
+matching \"foo\", but not \"Foo\" even when `case-fold-search' is
+currently enabled."
+ (declare (heuristic-matcher
+ (lambda (&rest eregexps)
+ (let ((matchers
+ (mapcar (lambda (eregexp) (apply-partially
#'el-search--string-match-p eregexp))
+ eregexps)))
+ (lambda (atoms)
+ (cl-some
+ (lambda (atom)
+ (and (stringp atom)
+ (cl-every (lambda (matcher) (funcall matcher atom))
matchers)))
+ atoms))))))
+ (el-search-defpattern--check-args "string" regexps #'el-search--eregexp-p
+ "argument not a regexp")
`(and (pred stringp)
- ,@(mapcar (lambda (thing) `(pred (el-search--smart-string-match-p
- ,(if (symbolp thing) (symbol-name thing)
thing))))
+ ,@(mapcar (lambda (thing) `(pred (el-search--string-match-p ',thing)))
regexps)))
(el-search-defpattern symbol (&rest regexps)
- "Matches any symbol whose name is matched by all REGEXPS."
- (el-search--check-pattern-args "symbol" regexps #'el-search--stringish-p
- "Argument not a string")
- `(and (pred symbolp)
- (app symbol-name (string ,@regexps))))
+ "Matches any symbol whose name is matched by all REGEXPS.
+Any of the REGEXPS can be an extended regexp of the form
+\(bindings regexp\) like in the \"string\" pattern."
+ (declare (heuristic-matcher
+ (lambda (&rest eregexps)
+ (let ((matchers
+ (mapcar (lambda (eregexp) (apply-partially
#'el-search--string-match-p eregexp))
+ eregexps)))
+ (lambda (atoms)
+ (cl-some
+ (lambda (atom)
+ (when-let ((symbol-name (and (symbolp atom) (symbol-name
atom))))
+ (cl-every (lambda (matcher) (funcall matcher
symbol-name)) matchers)))
+ atoms))))))
+ (el-search-defpattern--check-args "symbol" regexps #'el-search--eregexp-p
+ "argument not a regexp")
+ `(and (pred symbolp) (app symbol-name (string ,@regexps))))
(defun el-search--contains-p (matcher exp)
- "Return non-nil when tree EXP contains a match for MATCHER.
+ "Return non-nil when expression tree EXP contains a match for MATCHER.
Recurse on all types of sequences. In the positive case the
return value is (t elt), where ELT is a matching element found in
EXP."
@@ -760,11 +1159,22 @@ EXP."
(cl-some try-match exp))))))
(el-search-defpattern contains (&rest patterns)
- "Matches trees that contain a match for all PATTERNs.
-Searches any tree of sequences recursively for matches. Objects
-of any kind matched by all PATTERNs are also matched.
+ "Matches expressions that contain a match for all PATTERNs.
+
+Example:
+
+ \(contains (string \"H\") 17)
- Example: (contains (string \"H\") 17) matches ((\"Hallo\") x (5 [1 17]))"
+matches
+
+ \((\"Hallo\") x (5 [1 17])).
+
+The expression itself is included, so for example `1' is matched
+by \(contains 1\)."
+ (declare (heuristic-matcher
+ (lambda (&rest patterns)
+ (let ((matchers (mapcar #'el-search-heuristic-matcher patterns)))
+ (lambda (atoms) (cl-every (lambda (matcher) (funcall matcher
atoms)) matchers))))))
(cond
((null patterns) '_)
((null (cdr patterns))
@@ -775,120 +1185,29 @@ of any kind matched by all PATTERNs are also matched.
(el-search-defpattern not (pattern)
"Matches any object that is not matched by PATTERN."
+ (declare (heuristic-matcher ;We can't just negate the hm of the PATTERN!
+ (lambda (_pattern) #'el-search-true)))
`(app ,(apply-partially #'el-search--match-p (el-search--matcher pattern))
(pred not)))
-(defun el-search--match-symbol-file (regexp symbol)
- (when-let ((symbol-file (and (symbolp symbol)
- (symbol-file symbol))))
- (el-search--smart-string-match-p
- (if (symbolp regexp) (concat "\\`" (symbol-name regexp) "\\'") regexp)
+(defun el-search--match-symbol-file (eregexp symbol)
+ (when-let ((symbol-file (and (symbolp symbol) (symbol-file symbol))))
+ (el-search--string-match-p
+ eregexp
(file-name-sans-extension (file-name-nondirectory symbol-file)))))
-(el-search-defpattern source (regexp)
+(el-search-defpattern symbol-file (regexp)
"Matches any symbol whose `symbol-file' is matched by REGEXP.
This pattern matches when the object is a symbol for that
-`symbol-file' returns a (non-nil) FILE-NAME that fulfills
- (string-match-p REGEXP (file-name-sans-extension
- (file-name-nondirectory FILENAME)))
-
-REGEXP can also be a symbol, in which case
-
- (concat \"^\" (symbol-name regexp) \"$\")
-
-is used as regular expression."
- (el-search--check-pattern-args "source" (list regexp)
#'el-search--stringish-p
- "Argument not a string")
- `(pred (el-search--match-symbol-file ,(if (symbolp regexp) (symbol-name
regexp) regexp))))
-
-(defun el-search--match-key-sequence (keys expr)
- (when-let ((expr-keys (pcase expr
- ((or (pred stringp) (pred vectorp)) expr)
- (`(kbd ,(and (pred stringp) string)) (ignore-errors
(kbd string))))))
- (apply #'equal
- (mapcar (lambda (keys) (ignore-errors (key-description keys)))
- (list keys expr-keys)))))
-
-(el-search-defpattern keys (key-sequence)
- "Matches descriptions of the KEY-SEQUENCE.
-KEY-SEQUENCE is a string or vector representing a key sequence,
-or an expression of the form (kbd STRING).
-
-Match any description of the same key sequence in any of these
-formats.
-
-Example: the pattern
-
- (keys (kbd \"C-s\"))
-
-matches any of these expressions:
-
- \"\\C-s\"
- \"\C-s\"
- (kbd \"C-s\")
- [(control ?s)]"
- (when (eq (car-safe key-sequence) 'kbd)
- (setq key-sequence (kbd (cadr key-sequence))))
- (el-search--check-pattern-args "keys" (list key-sequence) (lambda (x) (or
(stringp x) (vectorp x)))
- "argument not a string or vector")
- `(pred (el-search--match-key-sequence ,key-sequence)))
-
-(defun el-search--transform-nontrivial-lpat (expr)
- (pcase expr
- ((and (pred symbolp) (let symbol-name (symbol-name expr)))
- `(or (symbol ,symbol-name)
- `',(symbol ,symbol-name)
- `#',(symbol ,symbol-name)))
- ((pred stringp) `(string ,expr))
- (_ expr)))
-
-(el-search-defpattern l (&rest lpats)
- "Alternative pattern type for matching lists.
-Match any list with subsequent elements matched by all LPATS in
-order.
-
-The idea is to be able to search for pieces of code (i.e. lists)
-with very brief input by using a specialized syntax.
-
-An LPAT can take the following forms:
-
-SYMBOL Matches any symbol S matched by SYMBOL's name interpreted
- as a regexp. Matches also 'S and #'S for any such S.
-STRING Matches any string matched by STRING interpreted as a
- regexp
-_ Matches any list element
-__ Matches any number of list elements (including zero)
-^ Matches zero elements, but only at the beginning of a list
-$ Matches zero elements, but only at the end of a list
-PAT Anything else is interpreted as a normal pcase pattern, and
- matches one list element matched by it
-
-^ is only valid as the first, $ as the last of the LPATS.
-
-Example: To match defuns that contain \"hl\" in their name and
-have at least one mandatory, but also optional arguments, you
-could use this pattern:
-
- (l ^ 'defun hl (l _ &optional))"
- (let ((match-start nil) (match-end nil))
- (when (eq (car-safe lpats) '^)
- (setq match-start t)
- (cl-callf cdr lpats))
- (when (eq (car-safe (last lpats)) '$)
- (setq match-end t)
- (cl-callf butlast lpats 1))
- `(append ,@(if match-start '() '(_))
- ,@(mapcar
- (lambda (elt)
- (pcase elt
- ('__ '_)
- ('_ '`(,_))
- ('_? '(or '() `(,_))) ;FIXME: useful - document? or should
we provide a (? PAT)
- ;thing?
- (_ ``(,,(el-search--transform-nontrivial-lpat elt)))))
- lpats)
- ,@(if match-end '() '(_)))))
+`symbol-file' returns a (non-nil) FILE-NAME so that
+
+ (file-name-sans-extension (file-name-nondirectory FILENAME)))
+
+is matched by the REGEXP."
+ (el-search-defpattern--check-args "symbol-file" (list regexp)
#'el-search--eregexp-p
+ "argument not a regexp")
+ `(pred (el-search--match-symbol-file ',regexp)))
(el-search-defpattern char-prop (property)
"Matches the object if completely covered with PROPERTY.
@@ -896,9 +1215,9 @@ This pattern matches the object if its representation in
the
search buffer is completely covered with the character property
PROPERTY.
-This pattern always tests the complete expression in the search
-buffer, it is not possible to test subexpressions calculated in
-the search pattern."
+This pattern should only be used to match against the current
+object (so it can't be used inside an `app' pattern for
+example)."
`(guard (and (get-char-property (point) ',property)
,(macroexp-let2 nil limit '(scan-sexps (point) 1)
`(= (next-single-char-property-change
@@ -911,9 +1230,9 @@ This pattern matches the object if its representation in
the
search buffer is partly covered with the character property
PROPERTY.
-This pattern always tests the complete expression in the search
-buffer, it is not possible to test subexpressions calculated in
-the search pattern."
+This pattern should only be used to match against the current
+object (so it can't be used inside an `app' pattern for
+example)."
`(guard (or (get-char-property (point) ',property)
,(macroexp-let2 nil limit '(scan-sexps (point) 1)
`(not (= (next-single-char-property-change
@@ -927,24 +1246,55 @@ the search pattern."
(defvar-local el-search-hl-other-overlays '())
-(defvar el-search-keep-hl nil)
+(defvar el-search-keep-hl nil
+ "Non-nil indicates we should not remove any highlighting.")
(defun el-search-hl-sexp (&optional bounds)
- (let ((bounds (or bounds
- (list (point) (el-search--end-of-sexp)))))
+ (let ((bounds (or bounds (list (point) (el-search--end-of-sexp)))))
(if (overlayp el-search-hl-overlay)
(apply #'move-overlay el-search-hl-overlay bounds)
(overlay-put (setq el-search-hl-overlay (apply #'make-overlay bounds))
'face 'el-search-match))
- (overlay-put el-search-hl-overlay 'priority 1002))
+ (overlay-put el-search-hl-overlay 'priority 1002)
+
+ ;; Vertically scroll the current sexp into view when appropriate -- we
+ ;; must redisplay to get updated window bounds. The selected frame
+ ;; must apparently be displayed for this to work.
+ (while (not (eq t (frame-visible-p (selected-frame))))
+ (sleep-for .1))
+ (redisplay)
+ (let ((wheight (window-height)))
+ ;; FIXME: make the following integer constants customizable,
+ ;; presumably, named in analogy to the scroll- options?
+ (unless (pos-visible-in-window-p
+ (save-excursion (goto-char (cadr bounds))
+ (line-end-position (max +3 (/ wheight 25)))))
+ (scroll-up (min
+ (max
+ ;; make at least sexp end + a small margin visible
+ (- (line-number-at-pos (cadr bounds))
+ (line-number-at-pos (window-end))
+ (- (max 2 (/ wheight 4))))
+ ;; also try to center current sexp
+ (- (/ ( + (line-number-at-pos (car bounds))
+ (line-number-at-pos (cadr bounds)))
+ 2)
+ (/ (+ (line-number-at-pos (window-start))
+ (line-number-at-pos (window-end)))
+ 2)))
+ ;; but also ensure at least a small margin is left between
point and window start
+ (- (line-number-at-pos (car bounds))
+ (line-number-at-pos (window-start))
+ 3))))))
+
(add-hook 'post-command-hook #'el-search-hl-post-command-fun t t))
-(defun el-search--hl-other-matches-1 (pattern from to)
+(defun el-search--hl-other-matches-1 (matcher from to)
+ ;; Highlight all matches between FROM and TO with face
+ ;; `el-search-other-match'.
(mapc #'delete-overlay el-search-hl-other-overlays)
(setq el-search-hl-other-overlays '())
- (let ((matcher (el-search--matcher pattern))
- this-match-beg this-match-end
- (done nil))
+ (let (this-match-beg this-match-end (done nil))
(save-excursion
(goto-char from)
(while (not done)
@@ -960,9 +1310,13 @@ the search pattern."
(goto-char this-match-end)
(when (>= (point) to) (setq done t))))))))
-(defun el-search-hl-other-matches (pattern)
- "Highlight all matches visible in the selected window."
- (el-search--hl-other-matches-1 pattern
+(defun el-search-hl-other-matches (matcher)
+ "Highlight all visible matches.
+
+Highlight all matches visible in the selected window with face
+`el-search-other-match' and add `el-search--after-scroll' to the
+local binding of `window-scroll-functions'."
+ (el-search--hl-other-matches-1 matcher
(save-excursion
(goto-char (window-start))
(beginning-of-defun-raw)
@@ -971,7 +1325,7 @@ the search pattern."
(add-hook 'window-scroll-functions #'el-search--after-scroll t t))
(defun el-search--after-scroll (_win start)
- (el-search--hl-other-matches-1 el-search-current-pattern
+ (el-search--hl-other-matches-1 el-search--current-matcher
(save-excursion
(goto-char start)
(beginning-of-defun-raw)
@@ -990,24 +1344,158 @@ the search pattern."
(eq this-command 'el-search-query-replace)
(eq this-command 'el-search-pattern))
(el-search-hl-remove)
- (remove-hook 'post-command-hook 'el-search-hl-post-command-fun t)))
+ (remove-hook 'post-command-hook 'el-search-hl-post-command-fun t)
+ (setq el-search--temp-buffer-flag nil)))
;;;; Core functions
+(defun el-search-continue-in-next-buffer ()
+ "Skip current search buffer and continue with the next."
+ (interactive)
+ (el-search--skip-to-next-buffer
+ (lambda (buffer-or-file)
+ (not (if (bufferp buffer-or-file)
+ (eq buffer-or-file (current-buffer))
+ (file-equal-p buffer-or-file buffer-file-name))))))
+
+(defun el-search-all-matches (search)
+ "Perform SEARCH non-interactively and return a list of all matches.
+
+SEARCH is an `el-search-object'. Execute SEARCH
+non-interactively until finished and return a list of matches in
+the form \(file-name-or-buffer . match-position)."
+ (mapcar
+ (pcase-lambda (`(,buffer ,position ,file))
+ (cons (if (buffer-live-p buffer) buffer file) position))
+ (seq-into-sequence (el-search-object-matches search))))
+
+(defun el-search-jump-to-search-head (&optional previous-search)
+ (interactive "P")
+ "Switch to current search buffer and go to the last match.
+With prefix arg, prompt for a prior search to resume, and make
+that the current search."
+ (when previous-search
+ (let ((entry (ring-ref
+ el-search-history
+ (string-to-number
+ (let ((completion-extra-properties
+ `(:annotation-function
+ ,(lambda (elt)
+ (format " Search in %S for %S"
+ (el-search-head-buffer
+ (el-search-object-head
+ (car (ring-ref el-search-history
(string-to-number elt)))))
+ (cadr (ring-ref el-search-history
(string-to-number elt))))))))
+ (completing-read
+ "Resume previous search: "
+ (mapcar #'prin1-to-string
+ (number-sequence 0 (1- (ring-length
el-search-history))))))))))
+ (setq el-search--current-search (car entry))
+ (setq el-search--current-pattern (cadr entry)))
+ (setq el-search--current-matcher
+ (el-search-head-matcher (el-search-object-head
el-search--current-search)))
+ (el-search--pushnew-to-history
+ (el-search--pp-to-string el-search--current-pattern)
+ 'el-search-pattern-history))
+ (if-let ((search el-search--current-search)
+ (current-head (el-search-object-head search))
+ (current-search-buffer (el-search-head-buffer current-head)))
+ (progn
+ (setq this-command 'el-search-pattern)
+ (let ((win (display-buffer current-search-buffer
el-search-display-buffer-action)))
+ (select-frame-set-input-focus (window-frame win))
+ (select-window win))
+ (let ((last-match (el-search-object-last-match search)))
+ (if (not (and last-match
+ (eq (marker-buffer last-match) (current-buffer))))
+ ;; this should only happen for bad search patterns
+ (goto-char (el-search-head-position current-head))
+ (goto-char last-match)
+ (el-search-hl-sexp)
+ (el-search-hl-other-matches el-search--current-matcher)
+ (set-transient-map el-search-map))))
+ (error "Last search finished")))
+
+(defun el-search-continue-search (&optional from-here)
+ "Continue or resume the current search.
+
+With prefix arg FROM-HERE given, the current search buffer should
+be the current buffer, and the search will be resumed from point
+instead of the position where the search would normally be
+continued."
+ (interactive "P")
+ (setq this-command 'el-search-pattern)
+ (setq el-search--current-matcher
+ (el-search-head-matcher (el-search-object-head
el-search--current-search)))
+ (let ((old-current-buffer (current-buffer)))
+ (when from-here
+ (let* ((head (el-search-object-head el-search--current-search))
+ (current-search-buffer
+ (or (el-search-head-buffer head)
+ (el-search--next-buffer el-search--current-search))))
+ (cond
+ ((eq (current-buffer) current-search-buffer)
+ (setf (el-search-head-position head) (copy-marker (point))))
+ ((and current-search-buffer (buffer-live-p current-search-buffer))
+ (error "Please resume from buffer %s" (buffer-name
current-search-buffer)))
+ (current-search-buffer
+ (error "Invalid search head: buffer killed")))))
+ (unwind-protect
+ (let ((stream-of-matches (el-search-object-matches
el-search--current-search)))
+ (if (not (stream-empty-p stream-of-matches))
+ (let ((match (stream-first stream-of-matches)))
+ (switch-to-buffer (car match))
+ (goto-char (cadr match))
+ (cl-callf stream-rest (el-search-object-matches
el-search--current-search))
+ (el-search-hl-sexp)
+ (unless (and (eq this-command last-command)
+ el-search--success
+ (eq (current-buffer) old-current-buffer))
+ (el-search-hl-other-matches el-search--current-matcher))
+ (set-transient-map el-search-map)
+ (setq el-search--success t))
+ (setq el-search--success nil)
+ (set-transient-map nil)
+ (el-search-kill-left-over-search-buffers)
+ (message "Done!")))
+ (unless el-search--success (setq el-search--current-pattern nil)))))
+
+(defun el-search-skip-directory (directory)
+ "Skip all subsequent matches in files located under DIRECTORY."
+ (interactive
+ (list (expand-file-name
+ (read-directory-name "Skip all files under directory: " nil
+ (if-let ((search el-search--current-search)
+ (current-head (el-search-object-head
search))
+ (current-file (el-search-head-file
current-head)))
+ (file-name-directory current-file)
+ default-directory)
+ t))))
+ (el-search--skip-to-next-buffer
+ (lambda (buffer-or-file-name)
+ (or (bufferp buffer-or-file-name)
+ ;; `file-in-directory-p' would be perfect here, but it calls
+ ;; file-truename on both args what we don't want, so we use this:
+ (string-match-p "\\`\\.\\." (file-relative-name buffer-or-file-name
directory))))))
+
;;;###autoload
-(defun el-search-pattern (pattern &optional no-error)
- "Start new or resume last elisp search.
+(defun el-search-pattern (pattern)
+ "Start new or resume last elisp buffer search.
Search current buffer for expressions that are matched by `pcase'
PATTERN. Use `read' to transform buffer contents into
expressions.
-Use `emacs-lisp-mode' for reading input. Some keys in the
-minibuffer have a special binding: to make it possible to edit
-multi line input, C-j inserts a newline, and up and down move the
-cursor vertically - see `el-search-read-expression-map' for more
-details.
+When called from the current search's current search buffer,
+continue that search from point. Otherwise or when a new PATTERN
+is given, start a new single-buffer search from point.
+
+Use `emacs-lisp-mode' for reading the input pattern. Some keys
+in the minibuffer have a special binding: to make it possible to
+edit multi line input, C-j inserts a newline, and up and down
+move the cursor vertically - see `el-search-read-expression-map'
+for details.
Additional `pcase' pattern types to be used with this command can
@@ -1015,40 +1503,228 @@ be defined with `el-search-defpattern'.
The following additional pattern types are currently defined:"
(interactive (list (if (and (eq this-command last-command)
- el-search-success)
- el-search-current-pattern
- (let* ((input (el-search--read-pattern "Find pcase
pattern: "
- (car
el-search-history)))
- (pattern (read input)))
- ;; A very common mistake: input "foo" instead of
"'foo"
- (when (and (symbolp pattern)
- (not (eq pattern '_))
- (or (not (boundp pattern))
- (not (eq (symbol-value pattern)
pattern))))
- (error "Please don't forget the quote when
searching for a symbol"))
- ;; Make input available also in query-replace history
- (el-search--pushnew-to-history input
'el-search-query-replace-history)
- ;; and wrap the PATTERN
- (el-search--wrap-pattern pattern)))))
- (if (not (called-interactively-p 'any))
- (el-search--search-pattern pattern no-error)
- (setq this-command 'el-search-pattern) ;in case we come from isearch
- (setq el-search-current-pattern pattern)
- (let ((opoint (point)))
- (when (and (eq this-command last-command) el-search-success)
- (el-search--skip-expression nil t))
- (setq el-search-success nil)
- (when (condition-case nil
- (el-search--search-pattern pattern)
- (end-of-buffer (message "No match")
- (goto-char opoint)
- (el-search-hl-remove)
- (ding)
- nil))
- (setq el-search-success t)
- (el-search-hl-sexp)
- (unless (eq this-command last-command)
- (el-search-hl-other-matches pattern))))))
+ el-search--success)
+ el-search--current-pattern
+ (el-search--read-pattern-for-interactive))))
+ (cond
+ ((and (eq this-command last-command)
+ (eq pattern el-search--current-pattern))
+ (progn
+ (el-search--skip-expression nil t)
+ (el-search-continue-search 'from-here)))
+ ((and (equal pattern el-search--current-pattern)
+ (eq (current-buffer)
+ (el-search-head-buffer (el-search-object-head
el-search--current-search))))
+ (el-search-continue-search 'from-here))
+ (t ;; create a new search single-buffer search
+ (el-search-setup-search pattern (stream (list (current-buffer)))
'from-here))))
+
+(put 'el-search-pattern 'function-documentation '(el-search--make-docstring
'el-search-pattern))
+
+(defun el-search-previous-match ()
+ "Revisit found matches in the current buffer in reverse order."
+ ;; Implementing backward el-searching is very hard (or very slow,
+ ;; alternatively), so let's use this for now...
+ (interactive)
+ (if (not (el-search-head-buffer (el-search-object-head
el-search--current-search)))
+ ;; FIXME: This case is tricky; the user would expect that when he hits
+ ;; C-S afterwards, the search is restored with the old matches
+ ;; "merged". So for now, we raise this:
+ (error "Last search completed, please start a new search")
+ (setq this-command 'el-search-pattern)
+ (let ((last-match-beg (el-search-object-last-match
el-search--current-search)))
+ (if (< last-match-beg (point))
+ (el-search-jump-to-search-head)
+ (let ((go-there nil) (matches el-search--this-buffer-matches))
+ (catch 'done
+ (while (and (not (stream-empty-p matches))
+ (< (cadr (stream-first matches)) (point)))
+ (setq go-there (cadr (stream-first matches)))
+ (stream-pop matches)))
+ (if (not go-there)
+ (el-search--message-no-log "[Beginning of this buffer's recorded
matches]")
+ (goto-char go-there)
+ (el-search-hl-sexp)
+ (set-transient-map el-search-map)))))))
+
+;;;###autoload
+(defun el-search-buffers (pattern)
+ "Search all live elisp buffers for PATTERN."
+ (interactive (list (el-search--read-pattern-for-interactive)))
+ (el-search-setup-search
+ pattern
+ (seq-filter
+ (lambda (buffer) (with-current-buffer buffer (derived-mode-p
'emacs-lisp-mode)))
+ (stream (buffer-list)))))
+
+;;;###autoload
+(defun el-search-directory (pattern directory &optional recursively)
+ "Search all elisp files in DIRECTORY for PATTERN.
+With prefix arg RECURSIVELY non-nil, search subdirectories recursively."
+ (interactive (list (el-search--read-pattern-for-interactive)
+ (expand-file-name
+ (read-directory-name (format "el-search directory%s: "
+ (if current-prefix-arg "
recursively" ""))
+ nil default-directory t))
+ current-prefix-arg))
+ (el-search-setup-search
+ pattern
+ (el-search-stream-of-directory-files directory recursively)))
+
+;;;###autoload
+(defun el-search-emacs-elisp-sources (pattern)
+ "Search Emacs elisp sources for PATTERN.
+This command recursively searches all elisp files under
+\(expand-file-name \"lisp/\" source-directory\)."
+ (interactive (list (el-search--read-pattern-for-interactive)))
+ (el-search-setup-search
+ pattern
+ (el-search-stream-of-directory-files
+ (expand-file-name "lisp/" source-directory)
+ t)))
+
+;;;###autoload
+(defun el-search-load-path (pattern)
+ "Search PATTERN in the elisp files in all directories of `load-path'.
+nil elements in `load-path' (standing for `default-directory')
+are ignored."
+ (interactive (list (el-search--read-pattern-for-interactive)))
+ (el-search-setup-search
+ pattern
+ (stream-concatenate
+ (seq-map (lambda (path) (el-search-stream-of-directory-files path nil))
+ (stream (delq nil load-path))))))
+
+(declare-function dired-get-marked-files "dired")
+
+;;;###autoload
+(defun el-search-dired-marked-files (pattern &optional recursively)
+ "el-search marked files and directories in dired.
+With RECURSIVELY given (the prefix arg in an interactive call),
+search directories recursively."
+ (interactive (list (el-search--read-pattern-for-interactive)
current-prefix-arg))
+ (el-search-setup-search
+ pattern
+ (stream-concatenate
+ (seq-map
+ (lambda (file)
+ (if (file-directory-p file)
+ (el-search-stream-of-directory-files file recursively)
+ (stream (list file))))
+ (stream (dired-get-marked-files))))))
+
+
+;;;; Query-replace
+
+(defun el-search--replace-hunk (region to-insert)
+ "Replace the text in REGION in current buffer with string TO-INSERT.
+Add line breaks before and after TO-INSERT when appropriate and
+reindent."
+ (atomic-change-group
+ (let* ((inhibit-message t)
+ (opoint (point))
+ (original-text (prog1 (apply #'buffer-substring-no-properties
region)
+ (goto-char (car region))
+ (apply #'delete-region region)))
+ ;; care about other sexps in this line
+ (sexp-before-us (not (looking-back "\(\\|^\\s-*"
(line-beginning-position))))
+ (sexp-after-us (not (looking-at "\\s-*[;\)]\\|$")))
+ (insert-newline-before
+ (or
+ (and (string-match-p "\n" to-insert)
+ (not (string-match-p "\n" original-text))
+ (or (and sexp-before-us sexp-after-us)
+ (looking-back
+ (rx (or (syntax word) (syntax symbol))
+ (+ blank)
+ (or (syntax word) (syntax symbol))
+ (* any))
+ (line-beginning-position))))
+ ;; (and sexp-before-us
+ ;; (> (+ (apply #'max (mapcar #'length (split-string
to-insert "\n")))
+ ;; (- (point) (line-beginning-position)))
+ ;; fill-column))
+ ))
+ (insert-newline-after (and insert-newline-before sexp-after-us)))
+ (when insert-newline-before
+ (when (looking-back "\\s-+" (line-beginning-position))
+ (delete-region (match-beginning 0) (match-end 0)))
+ (insert "\n"))
+ (insert to-insert)
+ (when insert-newline-after
+ (insert "\n"))
+ (save-excursion
+ ;; the whole enclosing sexp might need re-indenting
+ (condition-case nil (up-list) (scan-error))
+ (indent-region opoint (1+ (point)))))))
+
+(defun el-search--format-replacement (replacement original replace-expr-input
splice)
+ ;; Return a printed representation of REPLACEMENT. Try to reuse the
+ ;; layout of subexpressions shared with the original (replaced)
+ ;; expression and the replace expression.
+ (if (and splice (not (listp replacement)))
+ (error "Expression to splice in is an atom")
+ (let ((orig-buffer (generate-new-buffer "orig-expr")))
+ (with-current-buffer orig-buffer
+ (emacs-lisp-mode)
+ (insert original)
+ (when replace-expr-input (insert "\n\n" replace-expr-input)))
+ (unwind-protect
+ (with-temp-buffer
+ (emacs-lisp-mode)
+ (insert (if splice
+ (mapconcat #'el-search--pp-to-string replacement " ")
+ (el-search--pp-to-string replacement)))
+ (goto-char 1)
+ (let (start this-sexp end orig-match-start orig-match-end done)
+ (while (and (< (point) (point-max))
+ (condition-case nil
+ (progn
+ (setq start (point)
+ this-sexp (read (current-buffer))
+ end (point))
+ t)
+ (end-of-buffer nil)))
+ (setq done nil orig-match-start nil)
+ (with-current-buffer orig-buffer
+ (goto-char 1)
+ (if (el-search-forward `',this-sexp t)
+ (setq orig-match-start (point)
+ orig-match-end (progn (forward-sexp) (point)))
+ (setq done t)))
+ ;; find out whether we have a sequence of equal expressions
+ (while (and (not done)
+ (condition-case nil
+ (progn (setq this-sexp (read
(current-buffer))) t)
+ ((invalid-read-syntax end-of-buffer end-of-file)
nil)))
+ (if (with-current-buffer orig-buffer
+ (condition-case nil
+ (if (not (equal this-sexp (read (current-buffer))))
+ nil
+ (setq orig-match-end (point))
+ t)
+ ((invalid-read-syntax end-of-buffer end-of-file)
nil)))
+ (setq end (point))
+ (setq done t)))
+ ;; FIXME: there could be another occurrence of THIS-SEXP in
ORIG-BUFFER with more
+ ;; subsequent equal expressions after it
+ (if orig-match-start
+ (el-search--replace-hunk
+ (list start end)
+ (with-current-buffer orig-buffer
+ (buffer-substring-no-properties orig-match-start
orig-match-end)))
+ (goto-char start)
+ (el-search--skip-expression nil t))
+ (condition-case nil
+ (el-search--ensure-sexp-start)
+ (end-of-buffer (goto-char (point-max))))))
+ (goto-char 1)
+ (forward-sexp (if splice (length replacement) 1))
+ (let ((result (buffer-substring 1 (point))))
+ (if (equal replacement (read (if splice (format "(%s)" result)
result)))
+ result
+ (error "Error in `el-search--format-replacement' - please make
a bug report"))))
+ (kill-buffer orig-buffer)))))
(defvar el-search-search-and-replace-help-string
"\
@@ -1070,95 +1746,105 @@ Hit any key to proceed."
(let ((replace-all nil) (nbr-replaced 0) (nbr-skipped 0) (done nil)
(el-search-keep-hl t) (opoint (point))
(get-replacement (el-search--matcher pattern replacement))
- (skip-matches-in-replacement 'ask))
+ (skip-matches-in-replacement 'ask)
+ (matcher (setq el-search--current-matcher
+ (el-search--matcher (el-search--wrap-pattern
pattern)))))
(unwind-protect
- (while (and (not done) (el-search--search-pattern pattern t))
- (setq opoint (point))
- (unless replace-all
- (el-search-hl-sexp)
- (unless (eq this-command last-command)
- (el-search-hl-other-matches pattern)))
- (let* ((region (list (point) (el-search--end-of-sexp)))
- (original-text (apply #'buffer-substring-no-properties
region))
- (expr (read original-text))
- (replaced-this nil)
- (new-expr (funcall get-replacement expr))
- (get-replacement-string
- (lambda () (el-search--format-replacement new-expr
original-text to-input-string splice)))
- (to-insert (funcall get-replacement-string))
- (replacement-contains-another-match
- (with-temp-buffer
- (emacs-lisp-mode)
- (insert to-insert)
- (goto-char 1)
- (el-search--skip-expression new-expr)
- (condition-case nil
- (progn (el-search--ensure-sexp-start)
- (el-search--search-pattern pattern t))
- (end-of-buffer nil))))
- (do-replace
- (lambda ()
- (save-excursion
- (save-restriction
- (widen)
- (el-search--replace-hunk (list (point)
(el-search--end-of-sexp)) to-insert)))
- (el-search--ensure-sexp-start) ;skip potentially newly
added whitespace
- (el-search-hl-sexp (list opoint (point)))
- (cl-incf nbr-replaced)
- (setq replaced-this t))))
- (if replace-all
- (funcall do-replace)
- (while (not (pcase (if replaced-this
- (read-char-choice "[SPC ! q] (? for
help)"
- '(?\ ?! ?q ?\C-g ?n ??))
- (read-char-choice
- (concat "Replace this occurrence"
- (if (or (string-match-p "\n"
to-insert)
- (< 40 (length to-insert)))
- "" (format " with `%s'"
to-insert))
- "? "
- (if splice "{splice} " "")
- "[y SPC r ! s q] (? for help)" )
- '(?y ?n ?r ?\ ?! ?q ?\C-g ?s ??)))
- (?r (funcall do-replace)
- nil)
- (?y (funcall do-replace)
- t)
- ((or ?\ ?n)
- (unless replaced-this (cl-incf nbr-skipped))
- t)
- (?! (unless replaced-this
- (funcall do-replace))
- (setq replace-all t)
- t)
- (?s (cl-callf not splice)
- (setq to-insert (funcall
get-replacement-string))
- nil)
- ((or ?q ?\C-g)
- (setq done t)
- t)
- (?? (ignore (read-char
el-search-search-and-replace-help-string))
- nil)))))
- (unless (or done (eobp))
- (cond
- ((not (and replaced-this replacement-contains-another-match))
- (el-search--skip-expression nil t))
- ((eq skip-matches-in-replacement 'ask)
- (if (setq skip-matches-in-replacement
- (yes-or-no-p "Match in replacement - always skip? "))
- (forward-sexp)
+ (progn
+
+ ;; Try to avoid to call time consuming `el-search-hl-other-matches'
in the loop
+ (el-search-hl-other-matches matcher)
+ (add-hook 'window-scroll-functions #'el-search--after-scroll t t)
+
+ (while (and (not done) (el-search--search-pattern-1 matcher t))
+ (setq opoint (point))
+ (unless replace-all
+ (el-search-hl-sexp))
+ (let* ((region (list (point) (el-search--end-of-sexp)))
+ (original-text (apply #'buffer-substring-no-properties
region))
+ (expr (read original-text))
+ (replaced-this nil)
+ (new-expr (funcall get-replacement expr))
+ (get-replacement-string
+ (lambda () (el-search--format-replacement
+ new-expr original-text to-input-string splice)))
+ (to-insert (funcall get-replacement-string))
+ (replacement-contains-another-match
+ (with-temp-buffer
+ (emacs-lisp-mode)
+ (insert to-insert)
+ (goto-char 1)
+ (el-search--skip-expression new-expr)
+ (condition-case nil
+ (progn (el-search--ensure-sexp-start)
+ (el-search-forward pattern t))
+ (end-of-buffer nil))))
+ (do-replace
+ (lambda ()
+ (save-excursion
+ (save-restriction
+ (widen)
+ (el-search--replace-hunk (list (point)
(el-search--end-of-sexp)) to-insert)))
+ (el-search--ensure-sexp-start) ;skip potentially newly
added whitespace
+ (unless replace-all (el-search-hl-sexp (list opoint
(point))))
+ (cl-incf nbr-replaced)
+ (setq replaced-this t))))
+ (if replace-all
+ (funcall do-replace)
+ (redisplay) ;FIXME: why is this necessary? Without this,
read-char-choice recenters!?!
+ (while (not (pcase (if replaced-this
+ (read-char-choice "[SPC ! q] (? for
help)"
+ '(?\ ?! ?q ?\C-g ?n
??))
+ (read-char-choice
+ (concat "Replace this occurrence"
+ (if (or (string-match-p "\n"
to-insert)
+ (< 40 (length
to-insert)))
+ "" (format " with `%s'"
to-insert))
+ "? "
+ (if splice "{splice} " "")
+ "[y SPC r ! s q] (? for help)" )
+ '(?y ?n ?r ?\ ?! ?q ?\C-g ?s ??)))
+ (?r (funcall do-replace)
+ nil)
+ (?y (funcall do-replace)
+ t)
+ ((or ?\ ?n)
+ (unless replaced-this (cl-incf nbr-skipped))
+ t)
+ (?! (unless replaced-this
+ (funcall do-replace))
+ (setq replace-all t)
+ t)
+ (?s (cl-callf not splice)
+ (setq to-insert (funcall
get-replacement-string))
+ nil)
+ ((or ?q ?\C-g)
+ (setq done t)
+ t)
+ (?? (ignore (read-char
el-search-search-and-replace-help-string))
+ nil)))))
+ (when replacement-contains-another-match
+ (el-search-hl-other-matches matcher))
+ (unless (or done (eobp))
+ (cond
+ ((not (and replaced-this replacement-contains-another-match))
+ (el-search--skip-expression nil t))
+ ((eq skip-matches-in-replacement 'ask)
+ (if (setq skip-matches-in-replacement
+ (yes-or-no-p "Match in replacement - always skip?
"))
+ (forward-sexp)
+ (el-search--skip-expression nil t)
+ (when replace-all
+ (setq replace-all nil)
+ (message "Falling back to interactive mode")
+ (sit-for 3.))))
+ (skip-matches-in-replacement (forward-sexp))
+ (t
(el-search--skip-expression nil t)
- (when replace-all
- (setq replace-all nil)
- (message "Falling back to interactive mode")
- (sit-for 3.))))
- (skip-matches-in-replacement (forward-sexp))
- (t
- (el-search--skip-expression nil t)
- (message "Replacement contains another match%s"
- (if replace-all " - falling back to interactive mode"
""))
- (setq replace-all nil)
- (sit-for 2.)))))))
+ (message "Replacement contains another match%s"
+ (if replace-all " - falling back to interactive
mode" ""))
+ (setq replace-all nil)
+ (sit-for 2.))))))))
(el-search-hl-remove)
(goto-char opoint)
(message "Replaced %d matches%s"
@@ -1171,10 +1857,13 @@ Hit any key to proceed."
(let ((from-input (let ((el-search--initial-mb-contents
(or el-search--initial-mb-contents
(and (eq last-command 'el-search-pattern)
- (car el-search-history)))))
+ (if (equal (read (car
el-search-pattern-history))
+ (read (car
el-search-query-replace-history)))
+ (car el-search-query-replace-history)
+ (car el-search-pattern-history))))))
(el-search--read-pattern "Query replace pattern: " nil
'el-search-query-replace-history)))
- from to)
+ from to read-from read-to)
(with-temp-buffer
(emacs-lisp-mode)
(insert from-input)
@@ -1182,11 +1871,11 @@ Hit any key to proceed."
(forward-sexp)
(skip-chars-forward " \t\n")
;; FIXME: maybe more sanity tests here...
- (if (not (looking-at "->"))
+ (if (not (looking-at "->\\|=>\\|>"))
(setq from from-input
to (let ((el-search--initial-mb-contents nil))
(el-search--read-pattern "Replace with result of
evaluation of: " from)))
- (delete-char 2)
+ (delete-region (point) (match-end 0))
(goto-char 1)
(forward-sexp)
(setq from (buffer-substring 1 (point)))
@@ -1208,8 +1897,14 @@ Hit any key to proceed."
(indent-region 1 (point-max))
(buffer-string))
el-search-query-replace-history))
- (el-search--pushnew-to-history from 'el-search-history)
- (list (el-search--wrap-pattern (read from)) (read to) to)))
+ (el-search--pushnew-to-history from 'el-search-pattern-history)
+ (setq read-from (read from))
+ (setq read-to (read to))
+ (el-search--maybe-warn-about-unquoted-symbol read-from)
+ (when (and (symbolp read-to)
+ (not (el-search--contains-p (el-search--matcher `',read-to)
read-from)))
+ (el-search--maybe-warn-about-unquoted-symbol read-to))
+ (list read-from read-to to)))
;;;###autoload
(defun el-search-query-replace (from-pattern to-expr &optional textual-to)
@@ -1228,11 +1923,12 @@ you can also give an input of the form
FROM-PATTERN -> TO-EXPR
-to the first prompt and specify both expressions at once. This
-format is also used for history entries."
+\(\">\" and \"=>\" are also allowed as a separator) to the first
+prompt and specify both expressions at once. This format is also
+used for history entries."
(interactive (el-search-query-replace--read-args))
(setq this-command 'el-search-query-replace) ;in case we come from isearch
- (setq el-search-current-pattern from-pattern)
+ (setq el-search--current-pattern from-pattern)
(barf-if-buffer-read-only)
(el-search--search-and-replace-pattern from-pattern to-expr nil textual-to))
@@ -1244,22 +1940,24 @@ format is also used for history entries."
(goto-char other-end))
input))
+
+;;;; Invoking from Isearch
+
;;;###autoload
(defun el-search-search-from-isearch ()
- ;; FIXME: an interesting alternative would be to really integrate it
- ;; with Isearch, using `isearch-search-fun-function'.
- ;; Alas, this is not trivial if we want to transfer our optimizations.
+ "Switch to an el-search session from isearch.
+Reuse already given input."
(interactive)
(let ((el-search--initial-mb-contents (concat "'"
(el-search--take-over-from-isearch))))
;; use `call-interactively' so we get recorded in
`extended-command-history'
(call-interactively #'el-search-pattern)))
-;;;###autoload
-(defun el-search-replace-from-isearch ()
- (interactive)
- (let ((el-search--initial-mb-contents (concat "'"
(el-search--take-over-from-isearch t))))
- (call-interactively #'el-search-query-replace)))
-
+;; Is this useful at all?
+;; ;;;###autoload
+;; (defun el-search-replace-from-isearch ()
+;; (interactive)
+;; (let ((el-search--initial-mb-contents (concat "'"
(el-search--take-over-from-isearch t))))
+;; (call-interactively #'el-search-query-replace)))
(provide 'el-search)
diff --git a/packages/excorporate/NEWS b/packages/excorporate/NEWS
index 4bb3a9c..d7d449d 100644
--- a/packages/excorporate/NEWS
+++ b/packages/excorporate/NEWS
@@ -1,5 +1,11 @@
GNU Emacs Excorporate NEWS -- history of user-visible changes.
+* Excorporate 0.7.6
+
+Released 2016-10-05
+
+** Require some NTLM compatibility fixes via updated dependencies
+
* Excorporate 0.7.5
Released 2016-06-16
diff --git a/packages/excorporate/excorporate.el
b/packages/excorporate/excorporate.el
index 9f9f504..071da2b 100644
--- a/packages/excorporate/excorporate.el
+++ b/packages/excorporate/excorporate.el
@@ -5,10 +5,10 @@
;; Author: Thomas Fitzsimmons <address@hidden>
;; Maintainer: Thomas Fitzsimmons <address@hidden>
;; Created: 2014-09-19
-;; Version: 0.7.5
+;; Version: 0.7.6
;; Keywords: calendar
;; Homepage: https://www.fitzsim.org/blog/
-;; Package-Requires: ((emacs "24.1") (fsm "0.2") (soap-client "3.1.1")
(url-http-ntlm "2.0.2"))
+;; Package-Requires: ((emacs "24.1") (fsm "0.2") (soap-client "3.1.1")
(url-http-ntlm "2.0.3"))
;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@@ -99,6 +99,9 @@
;; Erik Hetzner <address@hidden> tested on Office 365 and helped debug
;; Office 365 support.
+;; Fabio Leimgruber <address@hidden> tested NTLM
+;; authentication against a challenging server configuration.
+
;;; Code:
;; Implementation-visible functions and variables.
diff --git a/packages/excorporate/excorporate.texi
b/packages/excorporate/excorporate.texi
index 99cb9d1..00bd77f 100644
--- a/packages/excorporate/excorporate.texi
+++ b/packages/excorporate/excorporate.texi
@@ -43,10 +43,10 @@ and modified without restriction.
Excorporate provides Exchange Web Services (EWS) support for Emacs.
If the Exchange server you access is configured to provide EWS
-support, then there's a 76% chance that Excorporate will enable you to
-retrieve your calendar entries from the comfort of Emacs.
+support, then there's an 83% chance that Excorporate will enable you
+to retrieve your calendar entries from the comfort of Emacs.
-The 24% failure rate is because accessing -- in particular,
+The 17% failure rate is because accessing -- in particular,
authenticating against -- an Exchange server can be challenging.
Known to fail are Kerberos/GSSAPI authentication and accessing the
diff --git a/packages/ggtags/README.rst b/packages/ggtags/README.rst
index eda0427..2f5d982 100644
--- a/packages/ggtags/README.rst
+++ b/packages/ggtags/README.rst
@@ -8,9 +8,8 @@ list-packages``) and is also available on `MELPA
The goal is to make working with GNU Global in Emacs as effortlessly
and intuitively as possible and to integrate tightly with standard
-emacs packages. ``ggtags.el`` is tested in emacs 24.1, 24.2, 24.3,
-24.4 and trunk. Patches, feature requests and bug reports are welcome.
-Thanks.
+emacs packages. ``ggtags.el`` is tested in Emacs 24 and 25. Patches,
+feature requests and bug reports are welcome. Thanks.
Features
~~~~~~~~
@@ -30,7 +29,8 @@ Features
#. Highlight (definition) tag at point.
#. Abbreviated display of file names.
#. Support all Global search backends: ``grep``, ``idutils`` etc.
-#. Support `exuberant ctags <http://ctags.sourceforge.net/>`_ backend.
+#. Support `exuberant ctags <http://ctags.sourceforge.net/>`_ and
+ ``pygments`` backend.
#. Support all Global's output formats: ``grep``, ``ctags-x``,
``cscope`` etc.
#. Support projects on remote hosts (e.g. via ``tramp``).
@@ -114,8 +114,8 @@ directory. The mode line will display the directory name
next to the
buffer name. If point is at a valid definition tag, it is underlined.
``ggtags`` is similar to the standard ``etags`` package. For example
-these keys ``M-.``, ``M-,``, ``M-*`` and ``C-M-.`` should work as
-expected in ``ggtags-mode``.
+these keys ``M-.``, ``M-,`` and ``C-M-.`` should work as expected in
+``ggtags-mode``.
The following search commands are available:
@@ -213,10 +213,10 @@ turned on to facilitate locating the right match.
``RET``
- Found the right match so exit navigation mode. Resumable by ``M-,``
- (``tags-loop-continue``).
+ Found the right match so exit navigation mode. Resumable by
+ ``M-x tags-loop-continue``.
-``M-*``
+``M-,`` (``M-*`` if Emacs < 25)
Abort and go back to the location where the search was started.
@@ -227,8 +227,9 @@ Commands are available from the ``Ggtags`` menu in
``ggtags-mode``.
ggtags-prev-mark
- Move to the previously (older) visited location. Unlike ``M-*``
- this doesn't delete the location from the tag ring.
+ Move to the previously (older) visited location. Unlike ``M-,``
+ (``M-*`` if Emacs < 25) this doesn't delete the location from the
+ tag ring.
ggtags-next-mark
@@ -313,6 +314,17 @@ Integration with other packages
NEWS
~~~~
+[2016-10-02 Sun] 0.8.12
++++++++++++++++++++++++
+
+#. Work with Emacs 25.
+#. ``ggtags-navigation-mode`` is more discreet in displaying lighter
+ when ``ggtags-enable-navigation-keys`` is set to nil.
+#. ``ggtags-make-project`` tries harder to find TAG files respecting
+ ``GTAGSDBPATH``.
+#. Fix error "Selecting deleted buffer"
+ (`#89 <https://github.com/leoliu/ggtags/issues/89>`_).
+
[2015-12-15 Tue] 0.8.11
+++++++++++++++++++++++
@@ -378,7 +390,7 @@ NEWS
[2014-04-12 Sat] 0.8.3
++++++++++++++++++++++
-#. Tweak mode-line ligter in ``ggtags-navigation-mode``.
+#. Tweak mode-line lighter in ``ggtags-navigation-mode``.
[2014-04-05 Sat] 0.8.2
++++++++++++++++++++++
diff --git a/packages/ggtags/ggtags.el b/packages/ggtags/ggtags.el
index aefe3af..b3172fb 100644
--- a/packages/ggtags/ggtags.el
+++ b/packages/ggtags/ggtags.el
@@ -1,9 +1,9 @@
;;; ggtags.el --- emacs frontend to GNU Global source code tagging system -*-
lexical-binding: t; -*-
-;; Copyright (C) 2013-2015 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
;; Author: Leo Liu <address@hidden>
-;; Version: 0.8.11
+;; Version: 0.8.12
;; Keywords: tools, convenience
;; Created: 2013-01-29
;; URL: https://github.com/leoliu/ggtags
@@ -30,17 +30,21 @@
;; Usage:
;;
;; `ggtags' is similar to the standard `etags' package. These keys
-;; `M-.', `M-,', `M-*' and `C-M-.' should work as expected in
-;; `ggtags-mode'. See the README in https://github.com/leoliu/ggtags
-;; for more details.
+;; `M-.', `M-,' and `C-M-.' should work as expected in `ggtags-mode'.
+;; See the README in https://github.com/leoliu/ggtags for more
+;; details.
;;
;; All commands are available from the `Ggtags' menu in `ggtags-mode'.
-;;; NEWS 0.8.11 (2015-12-15):
+;;; NEWS 0.8.12 (2016-10-02):
-;; - `ggtags-highlight-tag-delay' is renamed to `ggtags-highlight-tag'
-;; - Tag highlighting can be disabled by setting
-;; `ggtags-highlight-tag' to nil.
+;; - Work with Emacs 25
+;; - `ggtags-navigation-mode' is more discreet in displaying lighter
+;; when `ggtags-enable-navigation-keys' is set to nil
+;; - `ggtags-make-project' tries harder to find TAG files respecting
+;; `GTAGSDBPATH'
+;; - Fix error "Selecting deleted buffer"
+;; https://github.com/leoliu/ggtags/issues/89
;;
;; See full NEWS on https://github.com/leoliu/ggtags#news
@@ -91,7 +95,14 @@
(or (fboundp 'read-only-mode) ;24.3
(defalias 'read-only-mode 'toggle-read-only))
(or (fboundp 'register-read-with-preview) ;24.4
- (defalias 'register-read-with-preview 'read-char)))
+ (defalias 'register-read-with-preview 'read-char))
+ (or (boundp 'xref--marker-ring) ;25.1
+ (defvaralias 'xref--marker-ring 'find-tag-marker-ring))
+ (or (fboundp 'xref-push-marker-stack) ;25.1
+ (defun xref-push-marker-stack (&optional m)
+ (ring-insert xref--marker-ring (or m (point-marker)))))
+ (or (fboundp 'xref-pop-marker-stack)
+ (defalias 'xref-pop-marker-stack 'pop-tag-mark)))
(defgroup ggtags nil
"GNU Global source code tagging system."
@@ -465,32 +476,36 @@ Set to nil to disable tag highlighting."
(defun ggtags-make-project (root)
(cl-check-type root string)
- (pcase (nthcdr 5 (file-attributes (expand-file-name "GTAGS" root)))
- (`(,mtime ,_ ,tag-size . ,_)
- (let* ((default-directory (file-name-as-directory root))
- (rtags-size (nth 7 (file-attributes "GRTAGS")))
- (has-refs
- (when rtags-size
- (and (or (> rtags-size (* 32 1024))
- (with-demoted-errors "ggtags-make-project: %S"
- (not (equal "" (ggtags-process-string "global"
"-crs")))))
- 'has-refs)))
- ;; http://thread.gmane.org/gmane.comp.gnu.global.bugs/1518
- (has-path-style
- (and (ggtags-process-succeed-p "global" "--path-style" "shorter"
"--help")
- 'has-path-style))
- ;; http://thread.gmane.org/gmane.comp.gnu.global.bugs/1542
- (has-color (and (ggtags-process-succeed-p "global" "--color"
"--help")
- 'has-color)))
- (puthash default-directory
- (ggtags-project--make :root default-directory
- :tag-size tag-size
- :has-refs has-refs
- :has-path-style has-path-style
- :has-color has-color
- :mtime (float-time mtime)
- :timestamp (float-time))
- ggtags-projects)))))
+ (let* ((default-directory (file-name-as-directory root))
+ ;; NOTE: use of GTAGSDBPATH is not recommended. -- GLOBAL(1)
+ ;; ROOT and DB can be different directories due to GTAGSDBPATH.
+ (dbdir (concat (file-remote-p root)
+ (ggtags-process-string "global" "-p"))))
+ (pcase (nthcdr 5 (file-attributes (expand-file-name "GTAGS" dbdir)))
+ (`(,mtime ,_ ,tag-size . ,_)
+ (let* ((rtags-size (nth 7 (file-attributes (expand-file-name "GRTAGS"
dbdir))))
+ (has-refs
+ (when rtags-size
+ (and (or (> rtags-size (* 32 1024))
+ (with-demoted-errors "ggtags-make-project: %S"
+ (not (equal "" (ggtags-process-string "global"
"-crs")))))
+ 'has-refs)))
+ ;; http://thread.gmane.org/gmane.comp.gnu.global.bugs/1518
+ (has-path-style
+ (and (ggtags-process-succeed-p "global" "--path-style"
"shorter" "--help")
+ 'has-path-style))
+ ;; http://thread.gmane.org/gmane.comp.gnu.global.bugs/1542
+ (has-color (and (ggtags-process-succeed-p "global" "--color"
"--help")
+ 'has-color)))
+ (puthash default-directory
+ (ggtags-project--make :root default-directory
+ :tag-size tag-size
+ :has-refs has-refs
+ :has-path-style has-path-style
+ :has-color has-color
+ :mtime (float-time mtime)
+ :timestamp (float-time))
+ ggtags-projects))))))
(defun ggtags-project-expired-p (project)
(or (< (ggtags-project-timestamp project) 0)
@@ -924,7 +939,7 @@ blocking emacs."
(defun ggtags-global-save-start-marker ()
(when (markerp ggtags-global-start-marker)
(setq ggtags-tag-ring-index nil)
- (ring-insert find-tag-marker-ring ggtags-global-start-marker)
+ (xref-push-marker-stack ggtags-global-start-marker)
(setq ggtags-global-start-marker t)))
(defun ggtags-global-start (command &optional directory)
@@ -1362,17 +1377,16 @@ Use \\[jump-to-register] to restore the search session."
(defun ggtags-next-mark (&optional arg)
"Move to the next (newer) mark in the tag marker ring."
(interactive)
- (and (ring-empty-p find-tag-marker-ring) (user-error "Tag ring empty"))
+ (and (ring-empty-p xref--marker-ring) (user-error "Tag ring empty"))
(setq ggtags-tag-ring-index
;; Note `ring-minus1' gets newer item.
(funcall (if arg #'ring-plus1 #'ring-minus1)
(or ggtags-tag-ring-index
- (progn
- (ring-insert find-tag-marker-ring (point-marker))
- 0))
- (ring-length find-tag-marker-ring)))
- (let ((m (ring-ref find-tag-marker-ring ggtags-tag-ring-index))
- (i (- (ring-length find-tag-marker-ring) ggtags-tag-ring-index)))
+ (progn (xref-push-marker-stack)
+ 0))
+ (ring-length xref--marker-ring)))
+ (let ((m (ring-ref xref--marker-ring ggtags-tag-ring-index))
+ (i (- (ring-length xref--marker-ring) ggtags-tag-ring-index)))
(ggtags-echo "%d%s marker%s" i (pcase (mod i 10)
;; ` required for 24.1 and 24.2
(`1 "st")
@@ -1407,7 +1421,7 @@ commands `next-error' and `previous-error'.
\\{ggtags-view-tag-history-mode-map}"
(interactive)
- (and (ring-empty-p find-tag-marker-ring)
+ (and (ring-empty-p xref--marker-ring)
(user-error "Tag ring empty"))
(let ((split-window-preferred-function ggtags-split-window-function)
(inhibit-read-only t))
@@ -1419,8 +1433,8 @@ commands `next-error' and `previous-error'.
(setq tabulated-list-entries
;; Use a function so that revert can work properly.
(lambda ()
- (let ((counter (ring-length find-tag-marker-ring))
- (elements (or (ring-elements find-tag-marker-ring)
+ (let ((counter (ring-length xref--marker-ring))
+ (elements (or (ring-elements xref--marker-ring)
(user-error "Tag ring empty")))
(action (lambda (_button) (next-error 0)))
(get-line (lambda (m)
@@ -1677,11 +1691,18 @@ ggtags: history match invalid, jump to first match
instead")
'compilation-message)))
;; There are multiple matches so pop up the buffer.
(and ggtags-navigation-mode (ggtags-global--display-buffer))
- ;; For the `compilation-auto-jump' in idle timer to run.
- ;; See also: http://debbugs.gnu.org/13829
- (sit-for 0)
+ ;; Manually run the `compilation-auto-jump' timer. Hackish but
+ ;; everything else seems unreliable. See:
+ ;;
+ ;; - http://debbugs.gnu.org/13829
+ ;; - http://debbugs.gnu.org/23987
+ ;; - https://github.com/leoliu/ggtags/issues/89
+ ;;
+ (pcase (cl-find 'compilation-auto-jump timer-list :key #'timer--function)
+ (`nil )
+ (timer (timer-event-handler timer)))
(ggtags-navigation-mode -1)
- (ggtags-navigation-mode-cleanup buf 0)))))
+ (ggtags-navigation-mode-cleanup buf t)))))
(defvar ggtags-global-mode-font-lock-keywords
'(("^Global \\(exited
abnormally\\|interrupt\\|killed\\|terminated\\)\\(?:.*with code
\\([0-9]+\\)\\)?.*"
@@ -1749,7 +1770,8 @@ ggtags: history match invalid, jump to first match
instead")
(define-key map "\M-o" 'ggtags-navigation-visible-mode)
(define-key map [return] 'ggtags-navigation-mode-done)
(define-key map "\r" 'ggtags-navigation-mode-done)
- (define-key map [remap pop-tag-mark] 'ggtags-navigation-mode-abort)
+ (define-key map [remap pop-tag-mark] 'ggtags-navigation-mode-abort) ;Emacs
24
+ (define-key map [remap xref-pop-marker-stack]
'ggtags-navigation-mode-abort)
map))
(defvar ggtags-mode-map-alist
@@ -1804,7 +1826,7 @@ ggtags: history match invalid, jump to first match
instead")
(goto-char (match-beginning 0))
(goto-char orig))))))
-(defun ggtags-navigation-mode-cleanup (&optional buf time)
+(defun ggtags-navigation-mode-cleanup (&optional buf kill)
(let ((buf (or buf ggtags-global-last-buffer)))
(and (buffer-live-p buf)
(with-current-buffer buf
@@ -1813,7 +1835,7 @@ ggtags: history match invalid, jump to first match
instead")
(when (and (derived-mode-p 'ggtags-global-mode)
(get-buffer-window))
(quit-windows-on (current-buffer)))
- (and time (run-with-idle-timer time nil #'kill-buffer buf))))))
+ (and kill (kill-buffer buf))))))
(defun ggtags-navigation-mode-done ()
(interactive)
@@ -1826,13 +1848,13 @@ ggtags: history match invalid, jump to first match
instead")
"Abort navigation and return to where the search was started."
(interactive)
(ggtags-navigation-mode -1)
- (ggtags-navigation-mode-cleanup nil 0)
+ (ggtags-navigation-mode-cleanup nil t)
;; Run after (ggtags-navigation-mode -1) or
;; ggtags-global-start-marker might not have been saved.
(when (and ggtags-global-start-marker
(not (markerp ggtags-global-start-marker)))
(setq ggtags-global-start-marker nil)
- (pop-tag-mark)))
+ (xref-pop-marker-stack)))
(defun ggtags-navigation-next-file (n)
(interactive "p")
@@ -1941,7 +1963,12 @@ ggtags: history match invalid, jump to first match
instead")
"Ligher for `ggtags-navigation-mode'; set to nil to disable it.")
(define-minor-mode ggtags-navigation-mode nil
- :lighter ggtags-navigation-mode-lighter
+ ;; If `ggtags-enable-navigation-keys' is set to nil only display the
+ ;; lighter in `ggtags-mode' buffers.
+ ;; See https://github.com/leoliu/ggtags/issues/124
+ :lighter (:eval (and (or ggtags-enable-navigation-keys
+ ggtags-mode)
+ ggtags-navigation-mode-lighter))
:global t
(if ggtags-navigation-mode
(progn
@@ -2136,7 +2163,7 @@ When finished invoke CALLBACK in BUFFER with process exit
status."
(define-key menu [view-tag]
'(menu-item "View tag history" ggtags-view-tag-history))
(define-key menu [pop-mark]
- '(menu-item "Pop mark" pop-tag-mark
+ '(menu-item "Pop mark" xref-pop-marker-stack
:help "Pop to previous mark and destroy it"))
(define-key menu [next-mark]
'(menu-item "Next mark" ggtags-next-mark))
@@ -2168,6 +2195,8 @@ When finished invoke CALLBACK in BUFFER with process exit
status."
'(menu-item "Show definition" ggtags-show-definition))
(define-key menu [find-reference]
'(menu-item "Find reference" ggtags-find-reference))
+ ;; TODO: bind `find-tag-continue' to `M-*' after dropping support
+ ;; for emacs < 25.
(define-key menu [find-tag-continue]
'(menu-item "Continue find tag" tags-loop-continue))
(define-key menu [find-tag]
diff --git a/packages/highlight-escape-sequences/README.md
b/packages/highlight-escape-sequences/README.md
new file mode 100644
index 0000000..cd91176
--- /dev/null
+++ b/packages/highlight-escape-sequences/README.md
@@ -0,0 +1,15 @@
+Highlight Escape Sequences
+----
+
+
+
+Look inside for instructions.
+
+The theme on the screenshot is
+[espresso](https://github.com/dgutov/espresso-theme), with the
+following addition:
+
+```
+(put 'hes-escape-backslash-face 'face-alias 'font-lock-builtin-face)
+(put 'hes-escape-sequence-face 'face-alias 'font-lock-builtin-face)
+```
diff --git a/packages/highlight-escape-sequences/highlight-escape-sequences.el
b/packages/highlight-escape-sequences/highlight-escape-sequences.el
new file mode 100644
index 0000000..e829ab3
--- /dev/null
+++ b/packages/highlight-escape-sequences/highlight-escape-sequences.el
@@ -0,0 +1,250 @@
+;;; highlight-escape-sequences.el --- Highlight escape sequences -*-
lexical-binding: t -*-
+
+;; Copyright (C) 2013, 2015, 2016 Free Software Foundation, Inc.
+
+;; Author: Dmitry Gutov <address@hidden>
+;; Pavel Matcula <address@hidden>
+;; URL: https://github.com/dgutov/highlight-escape-sequences
+;; Keywords: convenience
+;; Version: 0.3
+
+;; This file is part of GNU Emacs.
+
+;; This file is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This file is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This global minor mode highlights escape sequences in strings and
+;; other kinds of literals with `hes-escape-sequence-face' and with
+;; `hes-escape-backslash-face'. They inherit from faces
+;; `font-lock-regexp-grouping-construct' and
+;; `font-lock-regexp-grouping-backslash' by default, respectively.
+
+;; It currently supports `ruby-mode', `emacs-lisp-mode', JS escape
+;; sequences in both popular modes, C escapes is `c-mode', `c++-mode'
+;; and `objc-mode', and Java escapes in `java-mode' and `clojure-mode'.
+
+;; To enable it elsewhere, customize `hes-mode-alist'.
+
+;; Put this in the init file:
+;;
+;; (hes-mode)
+
+;;; Code:
+
+(defgroup hes-mode nil
+ "Highlight escape sequences."
+ :group 'convenience)
+
+(defface hes-escape-backslash-face
+ '((default :inherit font-lock-regexp-grouping-backslash))
+ "Face to highlight an escape backslash.")
+
+(defface hes-escape-sequence-face
+ '((default :inherit font-lock-regexp-grouping-construct))
+ "Face to highlight an escape sequence.")
+
+(defconst hes-common-escape-sequence-re
+ (rx (submatch
+ (and ?\\ (submatch
+ (or (repeat 1 3 (in "0-7"))
+ (and ?x (repeat 2 xdigit))
+ (and ?u (repeat 4 xdigit))
+ (any "\"\'\\bfnrtv"))))))
+ "Regexp to match the most common escape sequences.
+
+Currently handles:
+- octals (\\0 to \\777),
+- hexadecimals (\\x00 to \\xFF),
+- unicodes (\\u0000 to \\uFFFF),
+- and backslash followed by one of \"\'\\bfnrtv.")
+
+(defconst hes-c/c++/objc-escape-sequence-re
+ (rx (submatch
+ (and ?\\ (submatch
+ (or (repeat 1 3 (in "0-7"))
+ (and ?x (1+ xdigit))
+ (and ?u (repeat 4 xdigit))
+ (and ?U (repeat 8 xdigit))
+ (any "\"\'\?\\abfnrtv"))))))
+ "Regexp to match C/C++/ObjC escape sequences.
+
+Currently handles:
+- octals (\\0 to \\777),
+- hexadecimals (\\x0 to \\xF..),
+- unicodes (\\u0000 to \\uFFFF, \\U00000000 to \\UFFFFFFFF),
+- and backslash followed by one of \"\'\?\\abfnrtv.")
+
+(defconst hes-java-escape-sequence-re
+ (rx (submatch
+ (and ?\\ (submatch
+ (or (repeat 1 3 (in "0-7"))
+ (and ?u (repeat 4 xdigit))
+ (any "\"\'\\bfnrt"))))))
+ "Regexp to match Java escape sequences.
+
+Currently handles:
+- octals (\\0 to \\777),
+- unicodes (\\u0000 to \\uFFFF),
+- and backslash followed by one of \"\'\\bfnrt.")
+
+(defconst hes-js-escape-sequence-re
+ (rx (submatch
+ (and ?\\ (submatch
+ (or (repeat 1 3 (in "0-7"))
+ (and ?x (repeat 2 xdigit))
+ (and ?u (repeat 4 xdigit))
+ ;; (any "\"\'\\bfnrtv")
+ not-newline))))) ;; deprecated
+ "Regexp to match JavaScript escape sequences.
+
+Currently handles:
+- octals (\\0 to \\777),
+- hexadecimals (\\x00 to \\xFF),
+- unicodes (\\u0000 to \\uFFFF),
+- and backslash followed by anything else.")
+
+(defconst hes-ruby-escape-sequence-re
+ (rx (submatch
+ (and ?\\ (submatch
+ (or (repeat 1 3 (in "0-7"))
+ (and ?x (repeat 1 2 xdigit))
+ (and ?u
+ (or (repeat 4 xdigit)
+ (and ?{
+ (repeat 1 6 xdigit)
+ (0+ (1+ space)
+ (repeat 1 6 xdigit))
+ ?})))
+ not-newline)))))
+ "Regexp to match Ruby escape sequences.
+
+Currently handles:
+- octals (\\0 to \\777),
+- hexadecimals (\\x0 to \\xFF),
+- unicodes (\\u0000 to \\uFFFF),
+- unicodes in the \\u{} form,
+- and backslash followed by anything else.
+
+Currently doesn't handle \\C-, \\M-, etc.")
+
+(defconst hes-ruby-escape-sequence-keywords
+ `((,hes-ruby-escape-sequence-re
+ (0 (let* ((state (syntax-ppss))
+ (term (nth 3 state)))
+ (when (or (and (eq term ?')
+ (member (match-string 2) '("\\" "'")))
+ (if (fboundp 'ruby-syntax-expansion-allowed-p)
+ (ruby-syntax-expansion-allowed-p state)
+ (memq term '(?\" ?/ ?\n ?` t))))
+ ;; TODO: Switch to `add-face-text-property' when we're
+ ;; fine with only supporting Emacs 24.4 and up.
+ (font-lock-prepend-text-property (match-beginning 1) (match-end 1)
+ 'face 'hes-escape-backslash-face)
+ (font-lock-prepend-text-property (match-beginning 2) (match-end 2)
+ 'face 'hes-escape-sequence-face)
+ nil))
+ prepend))))
+
+(defconst hes-elisp-escape-sequence-re
+ (rx (submatch
+ (and ?\\ (submatch
+ (or
+ (and ?u (repeat 4 xdigit))
+ (and ?U ?0 ?0 (repeat 6 xdigit))
+ (and ?x (+ xdigit)) ;; variable number hex digits
+ (+ (in "0-7")) ;; variable number octal digits
+ not-newline)))))
+
+ "Regexp to match Emacs Lisp escape sequences.
+
+Currently handles:
+- unicodes (\\uNNNN and \\U00NNNNNN)
+- hexadecimal (\\x...) and octal (\\0-7), variable number of digits
+- backslash followed by anything else.")
+
+(defun hes-make-simple-escape-sequence-keywords(re)
+ `((,re
+ (1 (when (nth 3 (syntax-ppss))
+ 'hes-escape-backslash-face)
+ prepend)
+ (2 (when (nth 3 (syntax-ppss))
+ 'hes-escape-sequence-face)
+ prepend))))
+
+(defcustom hes-mode-alist
+ `((c-mode . ,hes-c/c++/objc-escape-sequence-re)
+ (c++-mode . ,hes-c/c++/objc-escape-sequence-re)
+ (objc-mode . ,hes-c/c++/objc-escape-sequence-re)
+ (java-mode . ,hes-java-escape-sequence-re)
+ (clojure-mode . ,hes-java-escape-sequence-re)
+ (js-mode . ,hes-js-escape-sequence-re)
+ (js2-mode . ,hes-js-escape-sequence-re)
+ (ruby-mode . ,hes-ruby-escape-sequence-keywords)
+ (emacs-lisp-mode . ,hes-elisp-escape-sequence-re))
+ "Alist of regexps or `font-lock-keywords' elements for major modes."
+ :type '(repeat function)
+ :set (lambda (symbol value)
+ (if (bound-and-true-p hes-mode)
+ (progn
+ (hes-mode -1)
+ (set-default symbol value)
+ (hes-mode 1))
+ (set-default symbol value))))
+
+;;;###autoload
+(defun turn-on-hes-mode()
+ "Turn on highlighting of escape sequences."
+ (interactive)
+ (dolist (mode hes-mode-alist)
+ (if (atom mode)
+ (font-lock-add-keywords
+ mode
+ (hes-make-simple-escape-sequence-keywords
hes-common-escape-sequence-re)
+ 'append)
+ (when (stringp (cdr mode))
+ (font-lock-add-keywords
+ (car mode)
+ (hes-make-simple-escape-sequence-keywords (cdr mode))
+ 'append))
+ (when (listp (cdr mode))
+ (font-lock-add-keywords (car mode) (cdr mode) 'append)))))
+
+;;;###autoload
+(defun turn-off-hes-mode()
+ "Turn off highlighting of escape sequences"
+ (interactive)
+ (dolist (mode hes-mode-alist)
+ (if (atom mode)
+ (font-lock-remove-keywords
+ mode
+ (hes-make-simple-escape-sequence-keywords
hes-common-escape-sequence-re))
+ (when (stringp (cdr mode))
+ (font-lock-remove-keywords
+ (car mode)
+ (hes-make-simple-escape-sequence-keywords (cdr mode))))
+ (when (listp (cdr mode))
+ (font-lock-remove-keywords (car mode) (cdr mode))))))
+
+;;;###autoload
+(define-minor-mode hes-mode
+ "Toggle highlighting of escape sequences."
+ :lighter "" :global t
+ (if hes-mode
+ (turn-on-hes-mode)
+ (turn-off-hes-mode)))
+
+(provide 'highlight-escape-sequences)
+
+;;; highlight-escape-sequences.el ends here
diff --git a/packages/highlight-escape-sequences/highlight-escape-sequences.png
b/packages/highlight-escape-sequences/highlight-escape-sequences.png
new file mode 100644
index 0000000..6f0f1de
Binary files /dev/null and
b/packages/highlight-escape-sequences/highlight-escape-sequences.png differ
diff --git a/packages/metar/metar.el b/packages/metar/metar.el
index b6989ea..570e6b1 100644
--- a/packages/metar/metar.el
+++ b/packages/metar/metar.el
@@ -83,7 +83,7 @@
(const :tag "Degree Kelvin" degK)
(const :tag "Degree Fahrenheit" degF)))))
-(defcustom metar-stations-info-url "http://weather.noaa.gov/data/nsd_bbsss.txt"
+(defcustom metar-stations-info-url
"http://tgftp.nws.noaa.gov/data/nsd_cccc.txt"
"URL to use for retrieving station meta information."
:group 'metar
:type 'string)
@@ -117,23 +117,21 @@ If this variable is nil, the information is retrieved
from the Internet."
(split-string entry ";"))
(split-string (buffer-string) "\n")))))
(setq metar-stations nil)
- (while data
- (when (and (nth 7 (car data)) (nth 8 (car data))
- (not (string= (nth 2 (car data)) "----")))
+ (dolist (entry data)
+ (when (and (nth 7 entry) (nth 8 entry)
+ (not (string= (nth 0 entry) "----")))
(setq metar-stations
(append
- (let ((item (car data)))
- (list
- (list (cons 'code (nth 2 item))
- (cons 'name (nth 3 item))
- (cons 'country (nth 5 item))
- (cons 'latitude
- (metar-station-convert-dms-to-deg (nth 7
item)))
- (cons 'longitude
- (metar-station-convert-dms-to-deg (nth 8
item)))
- (cons 'altitude (string-to-number (nth 12 item))))))
- metar-stations)))
- (setq data (cdr data)))
+ (list
+ (list (cons 'code (nth 0 entry))
+ (cons 'name (nth 3 entry))
+ (cons 'country (nth 5 entry))
+ (cons 'latitude
+ (metar-station-convert-dms-to-deg (nth 7
entry)))
+ (cons 'longitude
+ (metar-station-convert-dms-to-deg (nth 8
entry)))
+ (cons 'altitude (string-to-number (nth 11 entry)))))
+ metar-stations))))
;; (unless metar-timer
;; (setq metar-timer
;; (run-with-timer 600 nil (lambda () (setq metar-stations nil)))))
@@ -281,7 +279,7 @@ It must have the signature of `math-convert-units', which
is the default."
pure))))
(defcustom metar-url
- "http://weather.noaa.gov/pub/data/observations/metar/stations/%s.TXT"
+ "http://tgftp.nws.noaa.gov/data/observations/metar/stations/%s.TXT"
"URL used to fetch station specific information.
%s is replaced with the 4 letter station code."
:group 'metar
diff --git a/packages/nameless/nameless.el b/packages/nameless/nameless.el
index 3f21756..eede973 100644
--- a/packages/nameless/nameless.el
+++ b/packages/nameless/nameless.el
@@ -5,7 +5,7 @@
;; Author: Artur Malabarba <address@hidden>
;; URL: https://github.com/Malabarba/nameless
;; Keywords: convenience, lisp
-;; Version: 1.0.1
+;; Version: 1.0.2
;; Package-Requires: ((emacs "24.4"))
;; This program is free software; you can redistribute it and/or modify
@@ -229,7 +229,9 @@ configured, or if `nameless-current-name' is nil."
(user-error "No name for current buffer, see
`nameless-current-name'")))))
(defun nameless-insert-name-or-self-insert (&optional self-insert)
- "Insert the name of current package, with a hyphen."
+ "Insert the name of current package, with a hyphen.
+If point is in an argument list, or if we're typing an escaped
+character, insert the current character literally instead."
(interactive "P")
(let ((l (point)))
(call-interactively #'self-insert-command)
diff --git a/packages/parsec/.gitignore b/packages/parsec/.gitignore
new file mode 100644
index 0000000..4206e73
--- /dev/null
+++ b/packages/parsec/.gitignore
@@ -0,0 +1,3 @@
+*.hs
+*.hi
+*.o
diff --git a/packages/parsec/README.org b/packages/parsec/README.org
new file mode 100644
index 0000000..53d08db
--- /dev/null
+++ b/packages/parsec/README.org
@@ -0,0 +1,378 @@
+#+TITLE: parsec.el
+
+A parser combinator library for Emacs Lisp similar to Haskell's Parsec library.
+
+* Overview
+
+This work is based on [[https://github.com/jwiegley/][John Wiegley]]'s
[[https://github.com/jwiegley/emacs-pl][emacs-pl]]. The original
[[https://github.com/jwiegley/emacs-pl][emacs-pl]] is awesome,
+but I found following problems when I tried to use it:
+
+- It only contains a very limited set of combinators
+- Some of its functions (combinators) have different behaviors than their
+ Haskell counterparts
+- It can't show error messages when parsing fails
+
+So I decided to make a new library on top of it. This library, however,
contains
+most of the parser combinators in =Text.Parsec.Combinator=, which should be
+enough in most use cases. Of course more combinators can be added if necessary!
+Most of the parser combinators have the same behavior as their Haskell
+counterparts. =parsec.el= also comes with a simple error handling mechanism so
+that it can display an error message showing how the parser fails.
+
+So we can
+
+- use these parser combinators to write parsers easily from scratch in Emacs
+ Lisp like what we can do in Haskell
+- port existing Haskell program using Parsec to its equivalent Emacs Lisp
+ program easily
+
+* Parsing Functions & Parser Combinators
+
+ We compare the functions and macros defined in this library with their
Haskell
+ counterparts, assuming you're already familiar with Haskell's Parsec. If you
+ don't have any experience with parser combinators, look at the docstrings of
+ these functions and macros and try them to see the results! They are really
+ easy to learn and use!
+
+ The *Usage* column for each function/combinator in the following tables is
+ much simplified. Check the docstring of the function/combinator to see the
+ full description.
+
+** Basic Parsing Functions
+ These parsing functions are used as the basic building block for a parser.
By
+ default, their return value is a *string*.
+
+ | parsec.el | Haskell's Parsec | Usage
|
+
|------------------------+------------------+-------------------------------------------------------|
+ | parsec-ch | char | parse a character
|
+ | parsec-any-ch | anyChar | parse an arbitrary character
|
+ | parsec-satisfy | satisfy | parse a character satisfying a
predicate |
+ | parsec-newline | newline | parse '\n'
|
+ | parsec-crlf | crlf | parse '\r\n'
|
+ | parsec-eol | eol | parse newline or CRLF
|
+ | parsec-eof, parsec-eob | eof | parse end of file
|
+ | parsec-eol-or-eof | *N/A* | parse EOL or EOL
|
+ | parsec-re | *N/A* | parse using a regular
expression |
+ | parsec-one-of | oneOf | parse one of the characters
|
+ | parsec-none-of | noneOf | parse any character other than
the supplied ones |
+ | parsec-str | *N/A* | parse a string but consume
input only when successful |
+ | parsec-string | string | parse a string and consume
input for partial matches |
+ | parsec-num | *N/A* | parse a number
|
+ | parsec-letter | letter | parse a letter
|
+ | parsec-digit | digit | parse a digit
|
+
+ Note:
+ - =parsec-str= and =parsec-string= are different. =parsec-string= behaves the
+ same as =string= in Haskell, and =parsec-str= is more like combining
+ =string= and =try= in Haskell. Personally I found =parsec-str= easier to
use
+ because =parsec-str= is "atomic", which is similar to =parsec-ch=.
+ - Use the power of regular expressions provided by =parsec-re= and simplify
the parser!
+
+** Parser Combinators
+ These combinators can be used to combine different parsers.
+
+ | parsec.el | Haskell's Parsec | Usage
|
+
|---------------------------+------------------+--------------------------------------------------------------|
+ | parsec-or | choice | try the parsers until one
succeeds |
+ | parsec-try | try | try parser and consume no
input when an error occurs |
+ | parsec-lookahead | lookahead | try parser and consume no
input when successful |
+ | parsec-peek | try && lookahead | try parser without
comsuming any input |
+ | parsec-peek-p | try && lookahead | same as parsec-peek except
the return value for failure |
+ | parsec-with-error-message | <?> (similar) | use the new error message
when an error occurs |
+ | parsec-many | many | apply the parser zero or
more times |
+ | parsec-many1 | many1 | apply the parser one or
more times |
+ | parsec-many-till | manyTill | apply parser zero or more
times until end succeeds |
+ | parsec-until | *N/A* | parse until end succeeds
|
+ | parsec-not-followed-by | notFollowedBy | succeed when the parser
fails |
+ | parsec-endby | endby | apply parser zero or more
times, separated and ended by end |
+ | parsec-sepby | sepby | apply parser zero or more
times, separated by sep |
+ | parsec-between | between | apply parser between open
and close |
+ | parsec-count | count | apply parser n times
|
+ | parsec-option | option | apply parser, if it fails,
return opt |
+ | parsec-optional | *N/A* | apply parser zero or one
time and return the result |
+ | parsec-optional* | optional | apply parser zero or one
time and discard the result |
+ | parsec-optional-maybe | optionMaybe | apply parser zero or one
time and return the result in Maybe |
+
+ Note:
+ - =parsec-or= can also be used to replace =<|>=.
+ - =parsec-with-error-message= is slightly different from =<?>=. It will
+ replace the error message even when the input is consumed.
+ - By default, =parsec-many-till= behaves as Haskell's =manyTill=. However,
+ =parsec-many-till= and =parsec-until= can accept an optional argument to
+ specify which part(s) to be returned. You can use =:both= or =:end= as the
+ optional argument to change the default behavior. See the docstrings for
+ more information.
+
+** Parser Utilities
+ These utilities can be used together with parser combinators to build a
+ parser and ease the translation process if you're trying to port an existing
+ Haskell program.
+
+ | parsec.el | Haskell's Parsec | Usage
|
+
|----------------------------------+------------------+---------------------------------------------------------|
+ | parsec-and | do block | try all parsers and
return the last result |
+ | parsec-return | do block | try all parsers and
return the first result |
+ | parsec-ensure | *N/A* | quit the parsing
when an error occurs |
+ | parsec-ensure-with-error-message | *N/A* | quit the parsing
when an error occurs with new message |
+ | parsec-collect | sequence | try all parsers and
collect the results into a list |
+ | parsec-collect* | *N/A* | try all parsers and
collect non-nil results into a list |
+ | parsec-start | parse | entry point
|
+ | parsec-parse | parse | entry point (same as
parsec-start) |
+ | parsec-with-input | parse | perform parsers on
input |
+ | parsec-from-maybe | fromMaybe | retrieve value from
Maybe |
+ | parsec-maybe-p | *N/A* | is a Maybe value or
not |
+ | parsec-query | *N/A* | change the parser's
return value |
+
+** Variants that Return a String
+
+ By default, the macros/functions that return multiple values will put the
+ values into a list. These macros/functions are:
+ - =parsec-many=
+ - =parsec-many1=
+ - =parsec-many-till=
+ - =parsec-until=
+ - =parsec-count=
+ - =parsec-collect= and =parsec-collect*=
+
+ They all have a variant that returns a string by concatenating the results
in
+ the list:
+ - =parsec-many-as-string= or =parsec-many-s=
+ - =parsec-many1-as-string= or =parsec-many1-s=
+ - =parsec-many-till-as-string= or =parsec-many-till-s=
+ - =parsec-until-as-string= or =parsec-until-s=
+ - =parsec-collect-as-string= or =parsec-collect-s=
+ - =parsec-count-as-string= or =parsec-count-s=
+
+ The =*-s= and =*-as-string= variants are the same, except the =*-s= variants
+ have a shorter name. Using these =*-s= functions are recommended if you're
+ dealing with strings very frequently in your code. These variants accept the
+ same arguments and have the same behavior as their original counterpart that
+ returns a list. The only difference is the return value.
+* Code Examples
+ Some very simple examples are given here. You can see many code examples in
+ the test files in this GitHub repo.
+
+ The following code extract the "hello" from the comment:
+ #+BEGIN_SRC elisp
+ (parsec-with-input "/* hello */"
+ (parsec-string "/*")
+ (parsec-many-till-as-string (parsec-any-ch)
+ (parsec-try
+ (parsec-string "*/"))))
+ #+END_SRC
+
+ The following Haskell program does a similar thing:
+ #+BEGIN_SRC haskell
+ import Text.Parsec
+
+ main :: IO ()
+ main = print $ parse p "" "/* hello */"
+ where
+ p = do string "/*"
+ manyTill anyChar (try (string "*/"))
+ #+END_SRC
+
+ The following code returns the "aeiou" before "end":
+ #+BEGIN_SRC elisp
+ (parsec-with-input "if aeiou end"
+ (parsec-str "if ")
+ (parsec-return
+ (parsec-many-as-string (parsec-one-of ?a ?e ?i ?o ?u))
+ (parsec-str " end")))
+ #+END_SRC
+
+* Write a Parser: a Simple CSV Parser
+ You can find the code in =examples/simple-csv-parser.el=. The code is based
+ on the Haskell code in
[[http://book.realworldhaskell.org/read/using-parsec.html][Using Parsec]].
+
+ An end-of-line should be a string =\n=. We use =(parsec-str "\n")= to parse
it
+ (Note that since =\n= is also one character, =(parsec-ch ?\n)= also works).
+ Some files may not contain a newline at the end, but we can view end-of-file
+ as the end-of-line for the last line, and use =parsec-eof= (or =parsec-eob=)
+ to parse the end-of-file. We use =parsec-or= to combine these two
combinators:
+ #+BEGIN_SRC elisp
+ (defun s-csv-eol ()
+ (parsec-or (parsec-str "\n")
+ (parsec-eof)))
+ #+END_SRC
+
+ A CSV file contains many lines and ends with an end-of-file. Use
+ =parsec-return= to return the result of the first parser as the result.
+ #+BEGIN_SRC elisp
+ (defun s-csv-file ()
+ (parsec-return (parsec-many (s-csv-line))
+ (parsec-eof)))
+ #+END_SRC
+
+ A CSV line contains many CSV cells and ends with an end-of-line, and we
+ should return the cells as the results:
+ #+BEGIN_SRC elisp
+ (defun s-csv-line ()
+ (parsec-return (s-csv-cells)
+ (s-csv-eol)))
+ #+END_SRC
+
+ CSV cells is a list, containing the first cell and the remaining cells:
+ #+BEGIN_SRC elisp
+ (defun s-csv-cells ()
+ (cons (s-csv-cell-content) (s-csv-remaining-cells)))
+ #+END_SRC
+
+ A CSV cell consists any character that is not =,= or =\n=, and we use the
+ =parsec-many-as-string= variant to return the whole content as a string
+ instead of a list of single-character strings:
+ #+BEGIN_SRC elisp
+ (defun s-csv-cell-content ()
+ (parsec-many-as-string (parsec-none-of ?, ?\n)))
+ #+END_SRC
+
+ For the remaining cells: if followed by a comma =,=, we try to parse more csv
+ cells. Otherwise, we should return the =nil=:
+ #+BEGIN_SRC elisp
+ (defun s-csv-remaining-cells ()
+ (parsec-or (parsec-and (parsec-ch ?,) (s-csv-cells)) nil))
+ #+END_SRC
+
+ OK. Our parser is almost done. To begin parsing the content in buffer =foo=,
+ you need to wrap the parser inside =parsec-start= (or =parsec-parse=):
+ #+BEGIN_SRC elisp
+ (with-current-buffer "foo"
+ (goto-char (point-min))
+ (parsec-parse
+ (s-csv-file)))
+ #+END_SRC
+
+ If you want to parse a string instead, we provide a simple wrapper macro
+ =parsec-with-input=, and you feed a string as the input and put arbitraty
+ parsers inside the macro body. =parsec-start= or =parsec-parse= is not
needed.
+ #+BEGIN_SRC elisp
+ (parsec-with-input "a1,b1,c1\na2,b2,c2"
+ (s-csv-file))
+ #+END_SRC
+
+ The above code returns:
+ #+BEGIN_SRC elisp
+ (("a1" "b1" "c1") ("a2" "b2" "c2"))
+ #+END_SRC
+
+ Note that if we replace =parsec-many-as-string= with =parsec-many= in
+ =s-csv-cell-content=:
+ #+BEGIN_SRC elisp
+ (defun s-csv-cell-content ()
+ (parsec-many (parsec-none-of ?, ?\n)))
+ #+END_SRC
+
+ The result would be:
+ #+BEGIN_SRC elisp
+ ((("a" "1") ("b" "1") ("c" "1")) (("a" "2") ("b" "2") ("c" "2")))
+ #+END_SRC
+
+* More Parser Examples
+ I translate some Haskell Parsec examples into Emacs Lisp using =parsec.el=.
+ You can see from these examples that it is very easy to write parsers using
+ =parsec.el=, and if you know haskell, you can see that basically I just
+ translate the Haskell into Emacs Lisp one by one because most of them are
just
+ the same!
+
+ You can find five examples under the =examples/= directory.
+
+ Three of the examples are taken from the chapter
[[http://book.realworldhaskell.org/read/using-parsec.html][Using Parsec]] in
the book of
+ [[http://book.realworldhaskell.org/read/][Real World Haskell]]:
+ - =simple-csv-parser.el=: a simple csv parser with no support for quoted
+ cells, as explained in previous section.
+ - =full-csv-parser.el=: a full csv parser
+ - =url-str-parser.el=: parser parameters in URL
+
+ =pjson.el= is a translation of Haskell's
[[https://hackage.haskell.org/package/json-0.9.1/docs/src/Text-JSON-Parsec.html][json
library using Parsec]].
+
+ =scheme.el= is a much simplified Scheme parser based on
[[https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours/][Write
Yourself a
+ Scheme in 48 Hours]].
+
+ They're really simple but you can see how this library works!
+
+* Change the Return Values using =parsec-query=
+ Parsing has side-effects such as forwarding the current point. In the
original
+ [[https://github.com/jwiegley/emacs-pl][emacs-pl]], you can specify some
optional arguments to some parsing functions
+ (=pl-ch=, =pl-re= etc.) to change the return values. In =parsec.el=, these
+ functions don't have such a behavior. Instead, we provide a unified interface
+ =parsec-query=, which accepts any parser, and changes the return value of the
+ parser.
+
+ You can speicify following arguments:
+ #+BEGIN_EXAMPLE
+ :beg --> return the point before applying the PARSER
+ :end --> return the point after applying the PARSER
+ :nil --> return nil
+ :groups N --> return Nth group for `parsec-re'."
+ #+END_EXAMPLE
+
+ So instead of returning "b" as the result, the following code returns 2:
+ #+BEGIN_SRC elisp
+ (parsec-with-input "ab"
+ (parsec-ch ?a)
+ (parsec-query (parsec-ch ?b) :beg))
+ #+END_SRC
+
+ Returning a point means that you can also incorporate =parsec.el= with Emacs
+ Lisp functions that can operate on points/regions, such as =goto-char= and
+ =kill-region=.
+
+ =:group= can be specified when using =parsec-re=:
+ #+BEGIN_SRC elisp
+ (parsec-with-input "ab"
+ (parsec-query (parsec-re "\\(a\\)\\(b\\)") :group 2))
+ #+END_SRC
+
+ The above code will return "b" instead of "ab".
+* Error Messages
+
+ =parsec.el= implements a simple error handling mechanism. When an error
+ happens, it will show how the parser fails.
+
+ For example, the following code fails:
+ #+BEGIN_SRC elisp
+ (parsec-with-input "aac"
+ (parsec-count 2 (parsec-ch ?a))
+ (parsec-ch ?b))
+ #+END_SRC
+
+ The return value is:
+ #+BEGIN_SRC elisp
+ (parsec-error . "Found \"c\" -> Expected \"b\"")
+ #+END_SRC
+
+ This also works when parser combinators fail:
+ #+BEGIN_SRC elisp
+ (parsec-with-input "a"
+ (parsec-or (parsec-ch ?b)
+ (parsec-ch ?c)))
+ #+END_SRC
+
+ The return value is:
+ #+BEGIN_SRC elisp
+ (parsec-error . "None of the parsers succeeds:
+ Found \"a\" -> Expected \"c\"
+ Found \"a\" -> Expected \"b\"")
+ #+END_SRC
+
+ If an error occurs, the return value is a cons cell that contains the error
+ message in its =cdr=. Compared to Haskell's Parsec, it's really simple, but
at
+ least the error message could tell us some information. Yeah, not perfect but
+ usable.
+
+ To test whether a parser returns an error, use =parsec-error-p=. If it
returns
+ an error, you can use =parsec-error-str= to retrieve the error message as a
+ string.
+
+ You can decide what to do based on the return value of a parser:
+ #+BEGIN_SRC elisp
+ (let ((res (parsec-with-input "hello"
+ (parsec-str "world"))))
+ (if (parsec-error-p res)
+ (message "Parser failed:\n%s" (parsec-error-str res))
+ (message "Parser succeeded by returning %s" res)))
+ #+END_SRC
+
+* Acknowledgement
+ - Daan Leijen for Haskell's Parsec
+ - [[https://github.com/jwiegley/][John Wiegley]] for
[[https://github.com/jwiegley/emacs-pl][emacs-pl]]
diff --git a/packages/parsec/examples/.nosearch
b/packages/parsec/examples/.nosearch
new file mode 100644
index 0000000..e69de29
diff --git a/packages/parsec/examples/full-csv-parser-tests.el
b/packages/parsec/examples/full-csv-parser-tests.el
new file mode 100644
index 0000000..fdf4c5e
--- /dev/null
+++ b/packages/parsec/examples/full-csv-parser-tests.el
@@ -0,0 +1,51 @@
+;;; full-csv-parser-tests.el --- Tests for full-csv-parser -*-
lexical-binding: t; -*-
+
+;; Copyright (C) 2016 Free Software Foundation, Inc.
+
+;; Author: Junpeng Qiu <address@hidden>
+;; Keywords:
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(require 'ert)
+(require 'full-csv-parser)
+
+(ert-deftest test-full-csv ()
+ (should
+ (equal
+ (parse-csv "\"a,1,s\",b,\r\nd,e,f")
+ '(("a,1,s" "b" "")
+ ("d" "e" "f"))))
+ (should
+ (equal
+ (parse-csv "\"e\"\",f")
+ (parsec-error-new-2 "\"" "`EOF'")))
+ (should
+ (equal
+ (parse-csv "\"a,1,\r\n")
+ (parsec-error-new-2 "\"" "`EOF'")))
+ (should
+ (equal
+ (parse-csv "\"a,1,\",b,\r\nd,,f")
+ '(("a,1," "b" "")
+ ("d" "" "f")))))
+
+(provide 'full-csv-parser-tests)
+;;; full-csv-parser-tests.el ends here
diff --git a/packages/parsec/examples/full-csv-parser.el
b/packages/parsec/examples/full-csv-parser.el
new file mode 100644
index 0000000..156fbd9
--- /dev/null
+++ b/packages/parsec/examples/full-csv-parser.el
@@ -0,0 +1,61 @@
+;;; full-csv-parser.el --- Sample csv parser using parsec.el -*-
lexical-binding: t; -*-
+
+;; Copyright (C) 2016 Free Software Foundation, Inc.
+
+;; Author: Junpeng Qiu <address@hidden>
+;; Keywords: extensions
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Ref: http://book.realworldhaskell.org/read/using-parsec.html
+
+;;; Code:
+
+(defun csv-file ()
+ (parsec-start
+ (parsec-return (parsec-endby (csv-line) (csv-eol))
+ (parsec-eob))))
+
+(defun csv-line ()
+ (parsec-sepby (csv-cell) (parsec-ch ?,)))
+
+(defun csv-cell ()
+ (parsec-or (csv-quoted-cell) (parsec-many-as-string
+ (parsec-none-of ?, ?\r ?\n))))
+
+(defun csv-quoted-cell ()
+ (parsec-and (parsec-ch ?\")
+ (parsec-return (parsec-many-as-string (csv-quoted-char))
+ (parsec-ch ?\"))))
+
+(defun csv-quoted-char ()
+ (parsec-or (parsec-re "[^\"]")
+ (parsec-and (parsec-str "\"\"")
+ "\"")))
+
+(defun csv-eol ()
+ (parsec-or (parsec-str "\n\r")
+ (parsec-str "\r\n")
+ (parsec-str "\n")
+ (parsec-str "\r")
+ (parsec-eob)))
+
+(defun parse-csv (input)
+ (parsec-with-input input
+ (csv-file)))
+
+(provide 'full-csv-parser)
+;;; full-csv-parser.el ends here
diff --git a/packages/parsec/examples/pjson-tests.el
b/packages/parsec/examples/pjson-tests.el
new file mode 100644
index 0000000..7c7f6ed
--- /dev/null
+++ b/packages/parsec/examples/pjson-tests.el
@@ -0,0 +1,102 @@
+;;; pjson-tests.el --- Test for parsec json parser -*- lexical-binding: t;
-*-
+
+;; Copyright (C) 2016 Free Software Foundation, Inc.
+
+;; Author: Junpeng Qiu <address@hidden>
+;; Keywords:
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(require 'ert)
+(require 'pjson)
+
+(ert-deftest test-pjson-number ()
+ (should
+ (equal
+ (parsec-with-input "123"
+ (pjson-number))
+ 123)))
+
+(ert-deftest test-pjson-boolean ()
+ (should
+ (equal
+ (parsec-with-input "false"
+ (pjson-boolean))
+ nil)))
+
+(ert-deftest test-pjson-null ()
+ (should
+ (equal
+ (parsec-with-input "null"
+ (pjson-null))
+ nil)))
+
+(ert-deftest test-pjson-array ()
+ (should
+ (equal
+ (parsec-with-input "[1,true,1,\"abc\",[1],null)"
+ (pjson-array))
+ (parsec-error-new-2 "]" ")")))
+ (should
+ (equal
+ (parsec-with-input "[1,true,1,\"abc\",[1],null]"
+ (pjson-array))
+ (vector 1 t 1 "abc"
+ (vector 1)
+ nil))))
+(ert-deftest test-pjson-string ()
+ (should
+ (equal
+ (parsec-with-input "\"asdf\""
+ (pjson-string))
+ "asdf")))
+
+(ert-deftest test-pjson-object ()
+ (should
+ (equal
+ (parsec-with-input "{\"a\" :1, \"b\":2, \"c\":[1,true] }"
+ (pjson-object))
+ '(("a" . 1)
+ ("b" . 2)
+ ("c" .
+ [1 t])))))
+
+(ert-deftest test-pjson-jvalue ()
+ (should
+ (equal
+ (parsec-with-input "[false]" (pjson-jvalue))
+ (vector nil))))
+
+(ert-deftest test-pjson-parse ()
+ (should
+ (equal
+ (pjson-parse "{\"a\" :1, \"b\":2, \"c\":[1,{\"d\":null}]}")
+ '(("a" . 1)
+ ("b" . 2)
+ ("c" .
+ [1
+ (("d"))]))))
+ (should
+ (equal
+ (pjson-parse "{\"a\" :1, \"b\":2, [{ \"c\":[1,true] }]}")
+ (parsec-error-new-2 "\"" "["))))
+
+(provide 'pjson-tests)
+;;; pjson-tests.el ends here
diff --git a/packages/parsec/examples/pjson.el
b/packages/parsec/examples/pjson.el
new file mode 100644
index 0000000..f34f4d9
--- /dev/null
+++ b/packages/parsec/examples/pjson.el
@@ -0,0 +1,124 @@
+;;; pjson.el --- JSON parser using parsec.el -*- lexical-binding: t;
-*-
+
+;; Copyright (C) 2016 Free Software Foundation, Inc.
+
+;; Author: Junpeng Qiu <address@hidden>
+;; Keywords: extensions
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Ref:
https://hackage.haskell.org/package/json-0.9.1/docs/src/Text-JSON-Parsec.html
+
+;;; Code:
+
+(defvar pjson-special-chars
+ '((?\" . ?\")
+ (?\\ . ?\\)
+ (?/ . ?/)
+ (?b . ?\b)
+ (?f . ?\f)
+ (?n . ?\n)
+ (?r . ?\r)
+ (?t . ?\t))
+ "Characters which are escaped in JSON, with their elisp counterparts.")
+
+(defsubst pjson-spaces ()
+ (parsec-many-as-string
+ (parsec-re "[[:space:]\r\n]")))
+
+(defmacro pjson-tok (parser)
+ `(parsec-return ,parser
+ (pjson-spaces)))
+
+(defun pjson-value ()
+ (parsec-and
+ (pjson-spaces)
+ (pjson-jvaule)))
+
+(defun pjson-jvalue ()
+ (parsec-or (pjson-null)
+ (pjson-boolean)
+ (pjson-number)
+ (pjson-string)
+ (pjson-array)
+ (pjson-object)))
+
+(defsubst pjson-null ()
+ (parsec-and
+ (pjson-tok (parsec-str "null"))
+ nil))
+
+(defsubst pjson-boolean ()
+ (parsec-or (parsec-and
+ (pjson-tok (parsec-str "true"))
+ t)
+ (parsec-and
+ (pjson-tok (parsec-str "false"))
+ nil)))
+
+(defsubst pjson-array ()
+ (apply #'vector
+ (parsec-between (pjson-tok (parsec-ch ?\[))
+ (pjson-tok (parsec-ch ?\]))
+ (parsec-sepby
+ (pjson-jvalue)
+ (pjson-tok (parsec-ch ?,))))))
+
+(defun pjson-char ()
+ (parsec-or
+ (parsec-and (parsec-ch ?\\) (pjson-esc))
+ (parsec-none-of ?\" ?\\)))
+
+(defun pjson-esc ()
+ (parsec-or
+ (assoc-default
+ (parsec-satisfy (lambda (x) (assq x pjson-special-chars)))
+ pjson-special-chars)
+ (parsec-and (parsec-ch ?u)
+ (pjson-uni))))
+
+(defun pjson-uni ()
+ (format "%c" (string-to-number
+ (parsec-re "[0-9a-zA-z]\\{4\\}")
+ 16)))
+
+(defsubst pjson-string ()
+ (parsec-between (pjson-tok (parsec-ch ?\"))
+ (pjson-tok (parsec-ch ?\"))
+ (parsec-many-as-string (pjson-char))))
+
+(defun pjson-field ()
+ (cons (parsec-return (pjson-string)
+ (pjson-tok (parsec-ch ?:)))
+ (pjson-jvalue)))
+
+(defun pjson-object ()
+ (parsec-between (pjson-tok (parsec-ch ?\{))
+ (pjson-tok (parsec-ch ?\}))
+ (parsec-sepby
+ (pjson-field)
+ (pjson-tok (parsec-ch ?,)))))
+
+(defun pjson-number ()
+ (pjson-tok (string-to-number
+ (parsec-re
"\\+?\\([0-9]+\\)\\(\\.[0-9]+\\)?\\([Ee][+-]?[0-9]+\\)?"))))
+
+(defun pjson-parse (input)
+ (parsec-with-input input
+ (pjson-object)))
+
+(provide 'pjson)
+;;; pjson.el ends here
diff --git a/packages/parsec/examples/scheme-tests.el
b/packages/parsec/examples/scheme-tests.el
new file mode 100644
index 0000000..9b30ff2
--- /dev/null
+++ b/packages/parsec/examples/scheme-tests.el
@@ -0,0 +1,88 @@
+;;; scheme-tests.el --- Tests for scheme parser -*- lexical-binding: t;
-*-
+
+;; Copyright (C) 2016 Free Software Foundation, Inc.
+
+;; Author: Junpeng Qiu <address@hidden>
+;; Keywords:
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(require 'ert)
+(require 'scheme)
+
+(ert-deftest test-scheme-number ()
+ (should
+ (equal (scheme-read "25")
+ (scheme-number 25))))
+
+(ert-deftest test-scheme-string ()
+ (should
+ (equal
+ (scheme-read "\"This is a string\"")
+ "This is a string")))
+
+(ert-deftest test-scheme-list ()
+ (should
+ (equal
+ (scheme-read "(symbol)")
+ '(List
+ (Atom . "symbol"))))
+ (should
+ (equal
+ (scheme-read "(a test)")
+ '(List
+ (Atom . "a")
+ (Atom . "test")))))
+
+(ert-deftest test-scheme-dotted-list ()
+ (should
+ (equal
+ (scheme-read "(a . test)")
+ '(DottedList
+ ((Atom . "a"))
+ Atom . "test"))))
+
+(ert-deftest test-scheme-nested ()
+ (should
+ (equal
+ (scheme-read "(a (nested) test)")
+ '(List
+ (Atom . "a")
+ (List
+ (Atom . "nested"))
+ (Atom . "test")))))
+
+(ert-deftest test-scheme-quoted ()
+ (should
+ (equal
+ (scheme-read "(a '(quoted (dotted . list)) test)")
+ '(List
+ (Atom . "a")
+ (List
+ (Atom . "quote")
+ (List
+ (Atom . "quoted")
+ (DottedList
+ ((Atom . "dotted"))
+ Atom . "list")))
+ (Atom . "test")))))
+
+(provide 'scheme-tests)
+;;; scheme-tests.el ends here
diff --git a/packages/parsec/examples/scheme.el
b/packages/parsec/examples/scheme.el
new file mode 100644
index 0000000..7d33953
--- /dev/null
+++ b/packages/parsec/examples/scheme.el
@@ -0,0 +1,108 @@
+;;; scheme.el --- Scheme parser using parsec.el -*- lexical-binding: t;
-*-
+
+;; Copyright (C) 2016 Free Software Foundation, Inc.
+
+;; Author: Junpeng Qiu <address@hidden>
+;; Keywords: extensions
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Ref: https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours/
+
+;;; Code:
+
+(defsubst scheme-bool (value)
+ (cons 'Bool value))
+
+(defsubst scheme-true ()
+ (scheme-bool 'True))
+
+(defsubst scheme-false ()
+ (scheme-bool 'False))
+
+(defsubst scheme-atom (atom)
+ (cons 'Atom atom))
+
+(defsubst scheme-number (number)
+ (cons 'Number number))
+
+(defsubst scheme-list (&rest values)
+ (cons 'List values))
+
+(defsubst scheme-dotted-list (head tail)
+ (cons 'DottedList (cons head tail)))
+
+(defsubst scheme-symbol ()
+ (parsec-re "[$!#%&|*+/:<=>address@hidden"))
+
+(defsubst scheme-spaces ()
+ (parsec-many (parsec-ch ? )))
+
+(defun scheme-parse-string ()
+ (parsec-and (parsec-ch ?\")
+ (parsec-return (parsec-many-as-string (parsec-none-of ?\"))
+ (parsec-ch ?\"))))
+
+(defun scheme-parse-atom ()
+ (let (first rest atom)
+ (parsec-and (setq first (parsec-or (parsec-letter) (scheme-symbol)))
+ (setq rest (parsec-many (parsec-or (parsec-letter)
+ (parsec-digit)
+ (scheme-symbol)))))
+ (setq atom (parsec-list-to-string (cons first rest)))
+ (cond
+ ((string= atom "#t") (scheme-true))
+ ((string= atom "#f") (scheme-false))
+ (t (scheme-atom atom)))))
+
+(defun scheme-parse-number ()
+ (scheme-number
+ (string-to-number (parsec-many1-as-string (parsec-digit)))))
+
+(defun scheme-parse-list ()
+ (apply #'scheme-list (parsec-sepby (scheme-parse-expr) (scheme-spaces))))
+
+(defun scheme-parse-dotted-list ()
+ (scheme-dotted-list (parsec-endby (scheme-parse-expr) (scheme-spaces))
+ (parsec-and
+ (parsec-ch ?.)
+ (scheme-spaces)
+ (scheme-parse-expr))))
+
+(defun scheme-parse-quoted ()
+ (parsec-and
+ (parsec-ch ?\')
+ (scheme-list (scheme-atom "quote") (scheme-parse-expr))))
+
+(defun scheme-parse-expr ()
+ (parsec-or (scheme-parse-atom)
+ (scheme-parse-string)
+ (scheme-parse-number)
+ (scheme-parse-quoted)
+ (parsec-between
+ (parsec-ch ?\()
+ (parsec-ch ?\))
+ (parsec-or
+ (parsec-try
+ (scheme-parse-list))
+ (scheme-parse-dotted-list)))))
+
+(defun scheme-read (expr)
+ (parsec-with-input expr
+ (scheme-parse-expr)))
+
+(provide 'scheme)
+;;; scheme.el ends here
diff --git a/packages/parsec/examples/simple-csv-parser-tests.el
b/packages/parsec/examples/simple-csv-parser-tests.el
new file mode 100644
index 0000000..9ae5063
--- /dev/null
+++ b/packages/parsec/examples/simple-csv-parser-tests.el
@@ -0,0 +1,39 @@
+;;; simple-csv-parser-tests.el --- Tests for simple csv parser -*-
lexical-binding: t; -*-
+
+;; Copyright (C) 2016 Free Software Foundation, Inc.
+
+;; Author: Junpeng Qiu <address@hidden>
+;; Keywords:
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(require 'ert)
+(require 'simple-csv-parser)
+
+(ert-deftest test-simple-csv ()
+ (should
+ (equal
+ (s-parse-csv "a1s,b,d,e,f\na,,c,d,\n")
+ '(("a1s" "b" "d" "e" "f")
+ ("a" "" "c" "d" "")))))
+
+
+(provide 'simple-csv-parser-tests)
+;;; simple-csv-parser-tests.el ends here
diff --git a/packages/parsec/examples/simple-csv-parser.el
b/packages/parsec/examples/simple-csv-parser.el
new file mode 100644
index 0000000..af9d286
--- /dev/null
+++ b/packages/parsec/examples/simple-csv-parser.el
@@ -0,0 +1,55 @@
+;;; simple-csv-parser.el --- Simple CSV parser using parsec.el -*-
lexical-binding: t; -*-
+
+;; Copyright (C) 2016 Free Software Foundation, Inc.
+
+;; Author: Junpeng Qiu <address@hidden>
+;; Keywords: extensions
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Ref: http://book.realworldhaskell.org/read/using-parsec.html
+
+;;; Code:
+
+(require 'parsec)
+
+(defun s-csv-file ()
+ (parsec-return (parsec-many (s-csv-line))
+ (parsec-eof)))
+
+(defun s-csv-line ()
+ (parsec-return (s-csv-cells)
+ (s-csv-eol)))
+
+(defun s-csv-eol ()
+ (parsec-or (parsec-str "\n")
+ (parsec-eof)))
+
+(defun s-csv-cells ()
+ (cons (s-csv-cell-content) (s-csv-remaining-cells)))
+
+(defun s-csv-cell-content ()
+ (parsec-many-as-string (parsec-none-of ?, ?\n)))
+
+(defun s-csv-remaining-cells ()
+ (parsec-or (parsec-and (parsec-ch ?,) (s-csv-cells)) nil))
+
+(defun s-parse-csv (input)
+ (parsec-with-input input
+ (s-csv-file)))
+
+(provide 'simple-csv-parser)
+;;; simple-csv-parser.el ends here
diff --git a/packages/parsec/examples/url-str-parser-tests.el
b/packages/parsec/examples/url-str-parser-tests.el
new file mode 100644
index 0000000..2444c8c
--- /dev/null
+++ b/packages/parsec/examples/url-str-parser-tests.el
@@ -0,0 +1,48 @@
+;;; url-str-parser-tests.el --- Tests for url-str-parser -*- lexical-binding:
t; -*-
+
+;; Copyright (C) 2016 Free Software Foundation, Inc.
+
+;; Author: Junpeng Qiu <address@hidden>
+;; Keywords:
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(require 'ert)
+(require 'url-str-parser)
+
+(ert-deftest test-url-str ()
+ (should
+ (equal
+ (url-str-parse "foo=bar&a%21=b+c")
+ '(("foo" Just . "bar")
+ ("a!" Just . "b c"))))
+ (should
+ (equal
+ (url-str-parse "foo=&a%21=b+c")
+ '(("foo" Just . "")
+ ("a!" Just . "b c"))))
+ (should
+ (equal
+ (url-str-parse "foo&a%21=b+c")
+ '(("foo" . Nothing)
+ ("a!" Just . "b c")))))
+
+(provide 'url-str-parser-tests)
+;;; url-str-parser-tests.el ends here
diff --git a/packages/parsec/examples/url-str-parser.el
b/packages/parsec/examples/url-str-parser.el
new file mode 100644
index 0000000..9c39c3f
--- /dev/null
+++ b/packages/parsec/examples/url-str-parser.el
@@ -0,0 +1,56 @@
+;;; url-str-parser.el --- URL-encoded query string parser using parsec.el -*-
lexical-binding: t; -*-
+
+;; Copyright (C) 2016 Free Software Foundation, Inc.
+
+;; Author: Junpeng Qiu <address@hidden>
+;; Keywords: extensions
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Ref: http://book.realworldhaskell.org/read/using-parsec.html
+
+;;; Code:
+
+
+(defun url-str-query ()
+ (parsec-sepby (url-str-pair) (parsec-ch ?&)))
+
+(defun url-str-pair ()
+ (cons
+ (parsec-many1-as-string (url-str-char))
+ (parsec-optional-maybe
+ (parsec-and (parsec-ch ?=) (parsec-many-as-string (url-str-char))))))
+
+(defun url-str-char ()
+ (parsec-or (parsec-re "[a-zA-z0-9$_.!*'(),-]")
+ (parsec-and (parsec-ch ?+) " ")
+ (url-str-hex)))
+
+(defun url-str-hex ()
+ (parsec-and
+ (parsec-ch ?%)
+ (format "%c"
+ (string-to-number (format "%s%s"
+ (parsec-re "[0-9a-zA-z]")
+ (parsec-re "[0-9a-zA-z]"))
+ 16))))
+
+(defun url-str-parse (input)
+ (parsec-with-input input
+ (url-str-query)))
+
+(provide 'url-str-parser)
+;;; url-str-parser.el ends here
diff --git a/packages/parsec/parsec-tests.el b/packages/parsec/parsec-tests.el
new file mode 100644
index 0000000..359fcb7
--- /dev/null
+++ b/packages/parsec/parsec-tests.el
@@ -0,0 +1,481 @@
+;;; parsec-tests.el --- Tests for parsec.el -*- lexical-binding: t;
-*-
+
+;; Copyright (C) 2016 Free Software Foundation, Inc.
+
+;; Author: Junpeng Qiu <address@hidden>
+;; Keywords:
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(require 'ert)
+(require 'parsec)
+
+(ert-deftest test-parsec-ch ()
+ (should
+ (equal
+ (parsec-with-input "ab"
+ (parsec-ch ?a)
+ (parsec-ch ?b))
+ "b"))
+ (should
+ (equal
+ (parsec-with-input "ab"
+ (parsec-query (parsec-ch ?a) :beg))
+ 1)))
+
+(ert-deftest test-parsec-satisfy ()
+ (should
+ (equal
+ (parsec-with-input "ab"
+ (parsec-ch ?a)
+ (parsec-satisfy (lambda (c) (char-equal c ?b))))
+ "b"))
+ (should
+ (equal
+ (parsec-with-input "ab"
+ (parsec-ch ?a)
+ (parsec-query (parsec-satisfy (lambda (c) (char-equal c ?b))) :end))
+ 3)))
+
+(ert-deftest test-parsec-eol ()
+ (should
+ (equal
+ (parsec-with-input "\na"
+ (parsec-newline)
+ (parsec-ch ?a))
+ "a"))
+ (should
+ (equal
+ (parsec-with-input "\r\na"
+ (parsec-crlf)
+ (parsec-ch ?a))
+ "a"))
+ (should
+ (equal
+ (parsec-with-input "\r\na"
+ (parsec-eol)
+ (parsec-ch ?a))
+ "a"))
+ (should
+ (equal
+ (parsec-with-input "\na"
+ (parsec-eol)
+ (parsec-ch ?a))
+ "a"))
+ (should
+ (equal
+ (parsec-with-input "\ra"
+ (parsec-eol)
+ (parsech-ch ?a))
+ (parsec-error-new-2 "\n" "a"))))
+
+(ert-deftest test-parsec-eof ()
+ (should
+ (equal
+ (parsec-with-input "\r\na"
+ (parsec-eol)
+ (parsec-ch ?a)
+ (parsec-eof))
+ nil)))
+
+(ert-deftest test-parsec-re ()
+ (should
+ (equal
+ (parsec-with-input "abc"
+ (parsec-query
+ (parsec-re "\\(a\\)\\(bc\\)")
+ :group 2))
+ "bc")))
+
+(ert-deftest test-parsec-make-alternatives ()
+ (should
+ (equal
+ (parsec-make-alternatives '(?-))
+ "-"))
+ (should
+ (equal
+ (parsec-make-alternatives '(?- ?\] ?a ?^))
+ "]a^-"))
+ (should
+ (equal
+ (parsec-make-alternatives '(?- ?^))
+ "-^"))
+ (should
+ (equal
+ (parsec-make-alternatives '(?^ ?\"))
+ "\"^")))
+
+(ert-deftest test-parsec-one-of ()
+ (should
+ (equal
+ (parsec-with-input "^]-"
+ (parsec-many-as-string (parsec-one-of ?^ ?\] ?-)))
+ "^]-"))
+ (should
+ (equal
+ (parsec-with-input "^-"
+ (parsec-many-as-string (parsec-one-of ?^ ?-)))
+ "^-")))
+
+(ert-deftest test-parsec-none-of ()
+ (should
+ (equal
+ (parsec-with-input "-[]"
+ (parsec-none-of ?\] ?^)
+ (parsec-one-of ?\[ ?\])
+ (parsec-none-of ?- ?^))
+ "]")))
+
+(ert-deftest test-parsec-str ()
+ (should
+ (equal
+ (parsec-with-input "abc"
+ (parsec-str "abc"))
+ "abc"))
+ (should
+ (equal
+ (parsec-with-input "abc"
+ (parsec-or (parsec-str "ac")
+ (parsec-ch ?a)))
+ "a")))
+
+(ert-deftest test-parsec-string ()
+ (should
+ (equal
+ (parsec-with-input "abc"
+ (parsec-string "abc"))
+ "abc"))
+ (should
+ (equal
+ (parsec-with-input "abc"
+ (parsec-or (parsec-string "ac")
+ (parsec-ch ?a)))
+ (parsec-error-new-2 "c" "b")))
+ (should
+ (equal
+ (parsec-with-input "abc"
+ (parsec-or (parsec-try (parsec-string "ac"))
+ (parsec-ch ?a)))
+ "a")))
+
+(ert-deftest test-parsec-or ()
+ (should
+ (equal
+ (parsec-with-input "1"
+ (parsec-or (parsec-letter)
+ (parsec-digit)))
+ "1"))
+ (should
+ (equal
+ (parsec-with-input "124"
+ (parsec-or (parsec-string "13")
+ (parsec-ch ?1)))
+ (parsec-error-new-2 "3" "2")))
+ (should
+ (equal
+ (parsec-with-input "124"
+ (parsec-or (parsec-str "13")
+ (parsec-ch ?1)))
+ "1")))
+
+(ert-deftest test-parsec-collect-optional ()
+ (should
+ (equal
+ (parsec-with-input "abc-def"
+ (parsec-collect-as-string
+ (parsec-and
+ (parsec-ch ?a)
+ (parsec-str "bc"))
+ (parsec-optional (parsec-ch ?-))
+ (parsec-and
+ (parsec-return (parsec-str "de")
+ (parsec-ch ?f)))))
+ "bc-de"))
+ (should
+ (equal
+ (parsec-with-input "abcdef"
+ (parsec-collect-as-string
+ (parsec-and
+ (parsec-ch ?a)
+ (parsec-str "bc"))
+ (parsec-optional (parsec-ch ?-))
+ (parsec-and
+ (parsec-return (parsec-str "de")
+ (parsec-ch ?f)))))
+ "bcde")))
+
+(ert-deftest test-parsec-try ()
+ (should
+ (equal
+ (parsec-with-input "abc"
+ (parsec-or (parsec-try (parsec-string "abd"))
+ (parsec-str "abc")))
+ "abc")))
+
+(ert-deftest test-parsec-lookahead ()
+ (should
+ (equal
+ (parsec-with-input "abc"
+ (parsec-lookahead (parsec-str "abc"))
+ (point))
+ (point-min)))
+ (should
+ (equal
+ (parsec-with-input "abc"
+ (parsec-start
+ (parsec-lookahead
+ (parsec-and
+ (parsec-ch ?a)
+ (parsec-ch ?c))))
+ (point))
+ (1+ (point-min))))
+ (should
+ (equal
+ (parsec-with-input "abc"
+ (parsec-start
+ (parsec-try
+ (parsec-lookahead
+ (parsec-and
+ (parsec-ch ?a)
+ (parsec-ch ?c)))))
+ (point))
+ (point-min))))
+
+(ert-deftest test-parsec-error-handles ()
+ (should
+ (equal
+ (parsec-with-input "abc"
+ (parsec-with-error-message "foo"
+ (parsec-str "abd")))
+ (parsec-error-new "foo")))
+ (should
+ (equal
+ (parsec-with-input "abc"
+ (parsec-with-error-message "foo"
+ (parsec-str "abc")))
+ "abc"))
+ (should
+ (equal
+ (condition-case err
+ (parsec-with-input "abc"
+ (parsec-ensure-with-error-message "foo"
+ (parsec-str "abd")))
+ (error (cdr err)))
+ '("foo")))
+ (should
+ (equal
+ (condition-case err
+ (parsec-with-input "abc"
+ (parsec-ensure-with-error-message "foo"
+ (parsec-str "abc")))
+ (error (cdr err)))
+ "abc")))
+
+(ert-deftest test-parsec-many ()
+ (should
+ (equal
+ (parsec-with-input "aaaaab"
+ (parsec-collect-as-string
+ (parsec-many-as-string (parsec-ch ?a))
+ (parsec-many-as-string (parsec-ch ?c))
+ (parsec-many1-as-string (parsec-ch ?b))))
+ "aaaaab"))
+ (should
+ (equal
+ (parsec-with-input "aaaaab"
+ (parsec-collect-as-string
+ (parsec-many-as-string (parsec-ch ?a))
+ (parsec-many-as-string (parsec-ch ?c))
+ (parsec-many1-as-string (parsec-ch ?b))
+ (parsec-many1-as-string (parsec-ch ?c))))
+ (parsec-error-new-2 "c" "`EOF'")))
+ (should
+ (equal
+ (parsec-with-input "abababaa"
+ (parsec-many1-as-string (parsec-string "ab")))
+ (parsec-error-new-2 "b" "a")))
+ (should
+ (equal
+ (parsec-with-input "abababaa"
+ (parsec-many1-as-string (parsec-try (parsec-string "ab")))
+ (parsec-str "aa"))
+ "aa"))
+ (should
+ (equal
+ (parsec-with-input "abababaa"
+ (parsec-many1-as-string (parsec-str "ab"))
+ (parsec-str "aa"))
+ "aa")))
+
+
+(ert-deftest test-parsec-till ()
+ (should
+ (equal
+ (parsec-with-input "abcd"
+ (parsec-many-till-as-string (parsec-any-ch) (parsec-ch ?d)))
+ "abc"))
+ (should
+ (equal
+ (parsec-with-input "abcd"
+ (parsec-many-till-as-string (parsec-any-ch) (parsec-ch ?d) :both))
+ '("abc" . "d")))
+ (should
+ (equal
+ (parsec-with-input "abcd"
+ (parsec-many-till-as-string (parsec-any-ch) (parsec-ch ?d) :end))
+ "d"))
+ (should
+ (equal
+ (parsec-with-input "abcd"
+ (parsec-with-error-message "eof"
+ (parsec-many-till-as-string (parsec-any-ch) (parsec-ch ?e))))
+ (parsec-error-new "eof")))
+ (should
+ (equal
+ (parsec-with-input "abc"
+ (parsec-until-as-string (parsec-ch ?c)))
+ "ab"))
+ (should
+ (equal
+ (parsec-with-input "abc"
+ (parsec-until-as-string (parsec-ch ?c) :end))
+ "c"))
+ (should
+ (equal
+ (parsec-with-input "abc"
+ (parsec-query (parsec-until-as-string (parsec-ch ?c)) :beg))
+ 1)))
+
+(ert-deftest test-parsec-not-followed-by ()
+ (should
+ (equal
+ (parsec-with-input "abd"
+ (parsec-collect*
+ (parsec-str "ab")
+ (parsec-not-followed-by (parsec-ch ?c))
+ (parsec-ch ?d)))
+ '("ab" "d")))
+ (should
+ (equal
+ (parsec-with-input "abd"
+ (parsec-collect*
+ (parsec-str "ab")
+ (parsec-or (parsec-not-followed-by (parsec-ch ?d))
+ (parsec-not-followed-by (parsec-ch ?c)))
+ (parsec-ch ?d)))
+ '("ab" "d"))))
+
+(ert-deftest test-parsec-endby ()
+ (should
+ (equal
+ (parsec-with-input "abc\ndef"
+ (parsec-endby (parsec-many-as-string (parsec-letter))
+ (parsec-eol-or-eof)))
+ '("abc" "def"))))
+
+(ert-deftest test-parsec-sepby ()
+ (should
+ (equal
+ (parsec-with-input "ab,cd,ef"
+ (parsec-sepby (parsec-many-as-string (parsec-re "[^,]"))
+ (parsec-ch ?,)))
+ '("ab" "cd" "ef"))))
+
+(ert-deftest test-parsec-between ()
+ (should
+ (equal
+ (parsec-with-input "{abc}"
+ (parsec-between
+ (parsec-ch ?\{) (parsec-ch ?\})
+ (parsec-or
+ (parsec-str "ac")
+ (parsec-many-as-string (parsec-letter)))))
+ "abc"))
+ (should
+ (equal
+ (parsec-with-input "{abc}"
+ (parsec-between
+ (parsec-ch ?\{) (parsec-ch ?\})
+ (parsec-or
+ (parsec-string "ac")
+ (parsec-many-as-string (parsec-letter)))))
+ (parsec-error-new-2 "c" "b"))))
+
+(ert-deftest test-parsec-count ()
+ (should
+ (equal
+ (parsec-with-input "aaaab"
+ (parsec-return (parsec-count-as-string 3 (parsec-ch ?a))
+ (parsec-many1 (parsec-one-of ?a ?b))))
+ "aaa")))
+
+(ert-deftest test-parsec-option ()
+ (should
+ (equal
+ (parsec-with-input "ab"
+ (parsec-option "opt" (parsec-string "ac")))
+ (parsec-error-new-2 "c" "b")))
+ (should
+ (equal
+ (parsec-with-input "ab"
+ (parsec-option "opt" (parsec-str "ac")))
+ "opt"))
+ (should
+ (equal
+ (parsec-with-input "ab"
+ (parsec-option "opt" (parsec-string "ab")))
+ "ab")))
+
+(ert-deftest test-parsec-optional ()
+ (should
+ (equal
+ (parsec-with-input "abcdef"
+ (parsec-collect-as-string
+ (parsec-str "abc")
+ (parsec-optional (parsec-ch ?-))
+ (parsec-str "def")))
+ "abcdef"))
+ (should
+ (equal
+ (parsec-with-input "abc-def"
+ (parsec-collect-as-string
+ (parsec-str "abc")
+ (parsec-optional (parsec-ch ?-))
+ (parsec-str "def")))
+ "abc-def"))
+ (should
+ (equal
+ (parsec-with-input "abcdef"
+ (parsec-collect-as-string
+ (parsec-str "abc")
+ (parsec-from-maybe (parsec-optional-maybe (parsec-ch ?-)))
+ (parsec-str "def")))
+ "abcdef"))
+ (should
+ (equal
+ (parsec-with-input "abc-def"
+ (parsec-collect-as-string
+ (parsec-str "abc")
+ (parsec-from-maybe (parsec-optional-maybe (parsec-ch ?-)))
+ (parsec-str "def")))
+ "abc-def")))
+
+(provide 'parsec-tests)
+;;; parsec-tests.el ends here
diff --git a/packages/parsec/parsec.el b/packages/parsec/parsec.el
new file mode 100644
index 0000000..3432e3d
--- /dev/null
+++ b/packages/parsec/parsec.el
@@ -0,0 +1,1042 @@
+;;; parsec.el --- Parser combinator library -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2016 Free Software Foundation, Inc.
+
+;; Author: Junpeng Qiu <address@hidden>
+;; Maintainer: Junpeng Qiu <address@hidden>
+;; URL: https://github.com/cute-jumper/parsec.el
+;; Version: 0.1.3
+;; Package-Requires: ((emacs "24") (cl-lib "0.5"))
+;; Keywords: extensions
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; _____________
+
+;; PARSEC.EL
+
+;; Junpeng Qiu
+;; _____________
+
+
+;; Table of Contents
+;; _________________
+
+;; 1 Overview
+;; 2 Parsing Functions & Parser Combinators
+;; .. 2.1 Basic Parsing Functions
+;; .. 2.2 Parser Combinators
+;; .. 2.3 Parser Utilities
+;; .. 2.4 Variants that Return a String
+;; 3 Code Examples
+;; 4 Write a Parser: a Simple CSV Parser
+;; 5 More Parser Examples
+;; 6 Change the Return Values using `parsec-query'
+;; 7 Error Messages
+;; 8 Acknowledgement
+
+
+;; A parser combinator library for Emacs Lisp similar to Haskell's Parsec
+;; library.
+
+
+;; 1 Overview
+;; ==========
+
+;; This work is based on [John Wiegley]'s [emacs-pl]. The original
+;; [emacs-pl] is awesome, but I found following problems when I tried to
+;; use it:
+
+;; - It only contains a very limited set of combinators
+;; - Some of its functions (combinators) have different behaviors than
+;; their Haskell counterparts
+;; - It can't show error messages when parsing fails
+
+;; So I decided to make a new library on top of it. This library,
+;; however, contains most of the parser combinators in
+;; `Text.Parsec.Combinator', which should be enough in most use cases. Of
+;; course more combinators can be added if necessary! Most of the parser
+;; combinators have the same behavior as their Haskell counterparts.
+;; `parsec.el' also comes with a simple error handling mechanism so that
+;; it can display an error message showing how the parser fails.
+
+;; So we can
+
+;; - use these parser combinators to write parsers easily from scratch in
+;; Emacs Lisp like what we can do in Haskell
+;; - port existing Haskell program using Parsec to its equivalent Emacs
+;; Lisp program easily
+
+
+;; [John Wiegley] https://github.com/jwiegley/
+
+;; [emacs-pl] https://github.com/jwiegley/emacs-pl
+
+
+;; 2 Parsing Functions & Parser Combinators
+;; ========================================
+
+;; We compare the functions and macros defined in this library with their
+;; Haskell counterparts, assuming you're already familiar with Haskell's
+;; Parsec. If you don't have any experience with parser combinators, look
+;; at the docstrings of these functions and macros and try them to see
+;; the results! They are really easy to learn and use!
+
+;; The *Usage* column for each function/combinator in the following
+;; tables is much simplified. Check the docstring of the
+;; function/combinator to see the full description.
+
+
+;; 2.1 Basic Parsing Functions
+;; ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+;; These parsing functions are used as the basic building block for a
+;; parser. By default, their return value is a *string*.
+
+;; parsec.el Haskell's Parsec Usage
+;;
-------------------------------------------------------------------------------------------------
+;; parsec-ch char parse a character
+;; parsec-any-ch anyChar parse an arbitrary character
+;; parsec-satisfy satisfy parse a character satisfying a
predicate
+;; parsec-newline newline parse '\n'
+;; parsec-crlf crlf parse '\r\n'
+;; parsec-eol eol parse newline or CRLF
+;; parsec-eof, parsec-eob eof parse end of file
+;; parsec-eol-or-eof *N/A* parse EOL or EOL
+;; parsec-re *N/A* parse using a regular
expression
+;; parsec-one-of oneOf parse one of the characters
+;; parsec-none-of noneOf parse any character other than
the supplied ones
+;; parsec-str *N/A* parse a string but consume
input only when successful
+;; parsec-string string parse a string and consume
input for partial matches
+;; parsec-num *N/A* parse a number
+;; parsec-letter letter parse a letter
+;; parsec-digit digit parse a digit
+
+;; Note:
+;; - `parsec-str' and `parsec-string' are different. `parsec-string'
+;; behaves the same as `string' in Haskell, and `parsec-str' is more
+;; like combining `string' and `try' in Haskell. Personally I found
+;; `parsec-str' easier to use because `parsec-str' is "atomic", which
+;; is similar to `parsec-ch'.
+;; - Use the power of regular expressions provided by `parsec-re' and
+;; simplify the parser!
+
+
+;; 2.2 Parser Combinators
+;; ~~~~~~~~~~~~~~~~~~~~~~
+
+;; These combinators can be used to combine different parsers.
+
+;; parsec.el Haskell's Parsec Usage
+;;
-----------------------------------------------------------------------------------------------------------
+;; parsec-or choice try the parsers until one
succeeds
+;; parsec-try try try parser and consume no
input when an error occurs
+;; parsec-lookahead lookahead try parser and consume no
input when successful
+;; parsec-peek try && lookahead try parser without
comsuming any input
+;; parsec-peek-p try && lookahead same as parsec-peek except
the return value for failure
+;; parsec-with-error-message <?> (similar) use the new error message
when an error occurs
+;; parsec-many many apply the parser zero or
more times
+;; parsec-many1 many1 apply the parser one or
more times
+;; parsec-many-till manyTill apply parser zero or more
times until end succeeds
+;; parsec-until *N/A* parse until end succeeds
+;; parsec-not-followed-by notFollowedBy succeed when the parser
fails
+;; parsec-endby endby apply parser zero or more
times, separated and ended by end
+;; parsec-sepby sepby apply parser zero or more
times, separated by sep
+;; parsec-between between apply parser between open
and close
+;; parsec-count count apply parser n times
+;; parsec-option option apply parser, if it fails,
return opt
+;; parsec-optional *N/A* apply parser zero or one
time and return the result
+;; parsec-optional* optional apply parser zero or one
time and discard the result
+;; parsec-optional-maybe optionMaybe apply parser zero or one
time and return the result in Maybe
+
+;; Note:
+;; - `parsec-or' can also be used to replace `<|>'.
+;; - `parsec-with-error-message' is slightly different from `<?>'. It
+;; will replace the error message even when the input is consumed.
+;; - By default, `parsec-many-till' behaves as Haskell's `manyTill'.
+;; However, `parsec-many-till' and `parsec-until' can accept an
+;; optional argument to specify which part(s) to be returned. You can
+;; use `:both' or `:end' as the optional argument to change the default
+;; behavior. See the docstrings for more information.
+
+
+;; 2.3 Parser Utilities
+;; ~~~~~~~~~~~~~~~~~~~~
+
+;; These utilities can be used together with parser combinators to build
+;; a parser and ease the translation process if you're trying to port an
+;; existing Haskell program.
+
+;; parsec.el Haskell's Parsec Usage
+;;
-------------------------------------------------------------------------------------------------------------
+;; parsec-and do block try all parsers and
return the last result
+;; parsec-return do block try all parsers and
return the first result
+;; parsec-ensure *N/A* quit the parsing
when an error occurs
+;; parsec-ensure-with-error-message *N/A* quit the parsing
when an error occurs with new message
+;; parsec-collect sequence try all parsers and
collect the results into a list
+;; parsec-collect* *N/A* try all parsers and
collect non-nil results into a list
+;; parsec-start parse entry point
+;; parsec-parse parse entry point (same as
parsec-start)
+;; parsec-with-input parse perform parsers on
input
+;; parsec-from-maybe fromMaybe retrieve value from
Maybe
+;; parsec-maybe-p *N/A* is a Maybe value or
not
+;; parsec-query *N/A* change the parser's
return value
+
+
+;; 2.4 Variants that Return a String
+;; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+;; By default, the macros/functions that return multiple values will put
+;; the values into a list. These macros/functions are:
+;; - `parsec-many'
+;; - `parsec-many1'
+;; - `parsec-many-till'
+;; - `parsec-until'
+;; - `parsec-count'
+;; - `parsec-collect' and `parsec-collect*'
+
+;; They all have a variant that returns a string by concatenating the
+;; results in the list:
+;; - `parsec-many-as-string' or `parsec-many-s'
+;; - `parsec-many1-as-string' or `parsec-many1-s'
+;; - `parsec-many-till-as-string' or `parsec-many-till-s'
+;; - `parsec-until-as-string' or `parsec-until-s'
+;; - `parsec-collect-as-string' or `parsec-collect-s'
+;; - `parsec-count-as-string' or `parsec-count-s'
+
+;; The `*-s' and `*-as-string' variants are the same, except the `*-s'
+;; variants have a shorter name. Using these `*-s' functions are
+;; recommended if you're dealing with strings very frequently in your
+;; code. These variants accept the same arguments and have the same
+;; behavior as their original counterpart that returns a list. The only
+;; difference is the return value.
+
+
+;; 3 Code Examples
+;; ===============
+
+;; Some very simple examples are given here. You can see many code
+;; examples in the test files in this GitHub repo.
+
+;; The following code extract the "hello" from the comment:
+;; ,----
+;; | (parsec-with-input "/* hello */"
+;; | (parsec-string "/*")
+;; | (parsec-many-till-as-string (parsec-any-ch)
+;; | (parsec-try
+;; | (parsec-string "*/"))))
+;; `----
+
+;; The following Haskell program does a similar thing:
+;; ,----
+;; | import Text.Parsec
+;; |
+;; | main :: IO ()
+;; | main = print $ parse p "" "/* hello */"
+;; | where
+;; | p = do string "/*"
+;; | manyTill anyChar (try (string "*/"))
+;; `----
+
+;; The following code returns the "aeiou" before "end":
+;; ,----
+;; | (parsec-with-input "if aeiou end"
+;; | (parsec-str "if ")
+;; | (parsec-return
+;; | (parsec-many-as-string (parsec-one-of ?a ?e ?i ?o ?u))
+;; | (parsec-str " end")))
+;; `----
+
+
+;; 4 Write a Parser: a Simple CSV Parser
+;; =====================================
+
+;; You can find the code in `examples/simple-csv-parser.el'. The code is
+;; based on the Haskell code in [Using Parsec].
+
+;; An end-of-line should be a string `\n'. We use `(parsec-str "\n")' to
+;; parse it (Note that since `\n' is also one character, `(parsec-ch
+;; ?\n)' also works). Some files may not contain a newline at the end,
+;; but we can view end-of-file as the end-of-line for the last line, and
+;; use `parsec-eof' (or `parsec-eob') to parse the end-of-file. We use
+;; `parsec-or' to combine these two combinators:
+;; ,----
+;; | (defun s-csv-eol ()
+;; | (parsec-or (parsec-str "\n")
+;; | (parsec-eof)))
+;; `----
+
+;; A CSV file contains many lines and ends with an end-of-file. Use
+;; `parsec-return' to return the result of the first parser as the
+;; result.
+;; ,----
+;; | (defun s-csv-file ()
+;; | (parsec-return (parsec-many (s-csv-line))
+;; | (parsec-eof)))
+;; `----
+
+;; A CSV line contains many CSV cells and ends with an end-of-line, and
+;; we should return the cells as the results:
+;; ,----
+;; | (defun s-csv-line ()
+;; | (parsec-return (s-csv-cells)
+;; | (s-csv-eol)))
+;; `----
+
+;; CSV cells is a list, containing the first cell and the remaining
+;; cells:
+;; ,----
+;; | (defun s-csv-cells ()
+;; | (cons (s-csv-cell-content) (s-csv-remaining-cells)))
+;; `----
+
+;; A CSV cell consists any character that is not =,= or `\n', and we use
+;; the `parsec-many-as-string' variant to return the whole content as a
+;; string instead of a list of single-character strings:
+;; ,----
+;; | (defun s-csv-cell-content ()
+;; | (parsec-many-as-string (parsec-none-of ?, ?\n)))
+;; `----
+
+;; For the remaining cells: if followed by a comma =,=, we try to parse
+;; more csv cells. Otherwise, we should return the `nil':
+;; ,----
+;; | (defun s-csv-remaining-cells ()
+;; | (parsec-or (parsec-and (parsec-ch ?,) (s-csv-cells)) nil))
+;; `----
+
+;; OK. Our parser is almost done. To begin parsing the content in buffer
+;; `foo', you need to wrap the parser inside `parsec-start' (or
+;; `parsec-parse'):
+;; ,----
+;; | (with-current-buffer "foo"
+;; | (goto-char (point-min))
+;; | (parsec-parse
+;; | (s-csv-file)))
+;; `----
+
+;; If you want to parse a string instead, we provide a simple wrapper
+;; macro `parsec-with-input', and you feed a string as the input and put
+;; arbitraty parsers inside the macro body. `parsec-start' or
+;; `parsec-parse' is not needed.
+;; ,----
+;; | (parsec-with-input "a1,b1,c1\na2,b2,c2"
+;; | (s-csv-file))
+;; `----
+
+;; The above code returns:
+;; ,----
+;; | (("a1" "b1" "c1") ("a2" "b2" "c2"))
+;; `----
+
+;; Note that if we replace `parsec-many-as-string' with `parsec-many' in
+;; `s-csv-cell-content':
+;; ,----
+;; | (defun s-csv-cell-content ()
+;; | (parsec-many (parsec-none-of ?, ?\n)))
+;; `----
+
+;; The result would be:
+;; ,----
+;; | ((("a" "1") ("b" "1") ("c" "1")) (("a" "2") ("b" "2") ("c" "2")))
+;; `----
+
+
+;; [Using Parsec] http://book.realworldhaskell.org/read/using-parsec.html
+
+
+;; 5 More Parser Examples
+;; ======================
+
+;; I translate some Haskell Parsec examples into Emacs Lisp using
+;; `parsec.el'. You can see from these examples that it is very easy to
+;; write parsers using `parsec.el', and if you know haskell, you can see
+;; that basically I just translate the Haskell into Emacs Lisp one by one
+;; because most of them are just the same!
+
+;; You can find five examples under the `examples/' directory.
+
+;; Three of the examples are taken from the chapter [Using Parsec] in the
+;; book of [Real World Haskell]:
+;; - `simple-csv-parser.el': a simple csv parser with no support for
+;; quoted cells, as explained in previous section.
+;; - `full-csv-parser.el': a full csv parser
+;; - `url-str-parser.el': parser parameters in URL
+
+;; `pjson.el' is a translation of Haskell's [json library using Parsec].
+
+;; `scheme.el' is a much simplified Scheme parser based on [Write
+;; Yourself a Scheme in 48 Hours].
+
+;; They're really simple but you can see how this library works!
+
+
+;; [Using Parsec] http://book.realworldhaskell.org/read/using-parsec.html
+
+;; [Real World Haskell] http://book.realworldhaskell.org/read/
+
+;; [json library using Parsec]
+;;
https://hackage.haskell.org/package/json-0.9.1/docs/src/Text-JSON-Parsec.html
+
+;; [Write Yourself a Scheme in 48 Hours]
+;; https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours/
+
+
+;; 6 Change the Return Values using `parsec-query'
+;; ===============================================
+
+;; Parsing has side-effects such as forwarding the current point. In the
+;; original [emacs-pl], you can specify some optional arguments to some
+;; parsing functions (`pl-ch', `pl-re' etc.) to change the return values.
+;; In `parsec.el', these functions don't have such a behavior. Instead,
+;; we provide a unified interface `parsec-query', which accepts any
+;; parser, and changes the return value of the parser.
+
+;; You can speicify following arguments:
+;; ,----
+;; | :beg --> return the point before applying the PARSER
+;; | :end --> return the point after applying the PARSER
+;; | :nil --> return nil
+;; | :groups N --> return Nth group for `parsec-re'."
+;; `----
+
+;; So instead of returning "b" as the result, the following code returns
+;; 2:
+;; ,----
+;; | (parsec-with-input "ab"
+;; | (parsec-ch ?a)
+;; | (parsec-query (parsec-ch ?b) :beg))
+;; `----
+
+;; Returning a point means that you can also incorporate `parsec.el' with
+;; Emacs Lisp functions that can operate on points/regions, such as
+;; `goto-char' and `kill-region'.
+
+;; `:group' can be specified when using `parsec-re':
+;; ,----
+;; | (parsec-with-input "ab"
+;; | (parsec-query (parsec-re "\\(a\\)\\(b\\)") :group 2))
+;; `----
+
+;; The above code will return "b" instead of "ab".
+
+
+;; [emacs-pl] https://github.com/jwiegley/emacs-pl
+
+
+;; 7 Error Messages
+;; ================
+
+;; `parsec.el' implements a simple error handling mechanism. When an
+;; error happens, it will show how the parser fails.
+
+;; For example, the following code fails:
+;; ,----
+;; | (parsec-with-input "aac"
+;; | (parsec-count 2 (parsec-ch ?a))
+;; | (parsec-ch ?b))
+;; `----
+
+;; The return value is:
+;; ,----
+;; | (parsec-error . "Found \"c\" -> Expected \"b\"")
+;; `----
+
+;; This also works when parser combinators fail:
+;; ,----
+;; | (parsec-with-input "a"
+;; | (parsec-or (parsec-ch ?b)
+;; | (parsec-ch ?c)))
+;; `----
+
+;; The return value is:
+;; ,----
+;; | (parsec-error . "None of the parsers succeeds:
+;; | Found \"a\" -> Expected \"c\"
+;; | Found \"a\" -> Expected \"b\"")
+;; `----
+
+;; If an error occurs, the return value is a cons cell that contains the
+;; error message in its `cdr'. Compared to Haskell's Parsec, it's really
+;; simple, but at least the error message could tell us some information.
+;; Yeah, not perfect but usable.
+
+;; To test whether a parser returns an error, use `parsec-error-p'. If it
+;; returns an error, you can use `parsec-error-str' to retrieve the error
+;; message as a string.
+
+;; You can decide what to do based on the return value of a parser:
+;; ,----
+;; | (let ((res (parsec-with-input "hello"
+;; | (parsec-str "world"))))
+;; | (if (parsec-error-p res)
+;; | (message "Parser failed:\n%s" (parsec-error-str res))
+;; | (message "Parser succeeded by returning %s" res)))
+;; `----
+
+
+;; 8 Acknowledgement
+;; =================
+
+;; - Daan Leijen for Haskell's Parsec
+;; - [John Wiegley] for [emacs-pl]
+
+
+;; [John Wiegley] https://github.com/jwiegley/
+
+;; [emacs-pl] https://github.com/jwiegley/emacs-pl
+
+;;; Code:
+
+(require 'cl-lib)
+
+(defgroup parsec nil
+ "Parser combinators for Emacs Lisp"
+ :group 'development)
+
+(defvar parsec-last-error-message nil)
+
+(defun parsec-eof-or-char-as-string ()
+ (let ((c (char-after)))
+ (if c
+ (char-to-string c)
+ "`EOF'")))
+
+(defun parsec-error-new (msg)
+ (cons 'parsec-error msg))
+
+(defun parsec-error-new-2 (expected found)
+ (parsec-error-new (format "Found \"%s\" -> Expected \"%s\""
+ found expected)))
+
+(defun parsec-error-p (obj)
+ (and (consp obj)
+ (eq (car obj) 'parsec-error)))
+
+(defalias 'parsec-error-str 'cdr)
+
+(defsubst parsec-throw (msg)
+ (throw 'parsec-failed msg))
+
+(defun parsec-stop (&rest args)
+ (parsec-throw
+ (setq parsec-last-error-message
+ (let ((msg (plist-get args :message))
+ (expected (plist-get args :expected))
+ (found (plist-get args :found)))
+ (when (or (stringp msg)
+ (and (stringp expected)
+ (stringp found)))
+ (if (stringp msg)
+ (parsec-error-new msg)
+ (parsec-error-new-2 expected found)))))))
+
+(defun parsec-ch (ch)
+ "Parse a character CH."
+ (let ((next-char (char-after)))
+ (if (and (not (eobp))
+ (char-equal next-char ch))
+ (progn (forward-char 1)
+ (char-to-string ch))
+ (parsec-stop :expected (char-to-string ch)
+ :found (parsec-eof-or-char-as-string)))))
+
+(defun parsec-any-ch ()
+ "Parse any character."
+ (if (not (eobp))
+ (prog1 (char-to-string (char-after))
+ (forward-char))
+ (parsec-stop :expected "any char"
+ :found (parsec-eof-or-char-as-string))))
+
+(defun parsec-satisfy (pred)
+ "Parse any character that satisfies the predicate PRED."
+ (let ((next-char (char-after)))
+ (if (and (not (eobp))
+ (funcall pred next-char))
+ (progn (forward-char 1)
+ (char-to-string next-char))
+ (parsec-stop :expected (format "%s" pred)
+ :found (parsec-eof-or-char-as-string)))))
+
+(defun parsec-re (regexp)
+ "Parse the input matching the regular expression REGEXP."
+ (if (looking-at regexp)
+ (progn (goto-char (match-end 0))
+ (match-string 0))
+ (parsec-stop :expected regexp
+ :found (parsec-eof-or-char-as-string))))
+
+(defun parsec-make-alternatives (chars)
+ (let ((regex-head "")
+ (regex-str "")
+ (regex-end "")
+ contains-caret-p)
+ (dolist (c chars)
+ (cond
+ ((char-equal c ?\]) (setq regex-head "]"))
+ ((char-equal c ?-) (setq regex-end "-"))
+ ((char-equal c ?^) (setq contains-caret-p t))
+ (t (setq regex-str (concat regex-str (char-to-string c))))))
+ (when contains-caret-p
+ (if (and
+ (string-equal regex-end "-")
+ (string-equal regex-head "")
+ (string-equal regex-str ""))
+ (setq regex-end "-^")
+ (setq regex-str (concat regex-str "^"))))
+ (concat regex-head regex-str regex-end)))
+
+(defun parsec-one-of (&rest chars)
+ "Succeed if the current character is in the supplied list of CHARS.
+Return the parsed character.
+
+> (parsec-one-of ?a ?e ?i ?o ?u)
+
+Note this function is just a wrapper of `parsec-re'. For complicated use
cases,
+consider using `parsec-re' instead."
+ (parsec-re (format "[%s]" (parsec-make-alternatives chars))))
+
+(defun parsec-none-of (&rest chars)
+ "Succeed if the current character not in the supplied list of CHARS.
+Return the parsed character.
+
+> (parsec-none-of ?a ?e ?i ?o ?u)
+
+Note this function is just a wrapper of `parsec-re'. For complicated use
cases,
+consider using `parsec-re' instead."
+ (parsec-re (format "[^%s]" (parsec-make-alternatives chars))))
+
+(defsubst parsec-str (str)
+ "Parse STR and only consume the input for an exact match.
+Return the parsed string.
+
+Note this function's behavior is different from the `string'
+function of Haskll's Parsec. Use `parsec-string' if you want the
+same behavior as in Haskell."
+ (parsec-re (regexp-quote str)))
+
+(defsubst parsec-string (str)
+ "Parse STR and consume the input even for a partial match.
+Return the parsed string.
+
+It is equivalent to calling `parsec-ch' multiples times so the
+input will be consumed if the parser fails in the middle of the
+STR. This function has the same behavior as the `string' function
+of Haskell's Parsec. See also `parsec-str'."
+ (mapc (lambda (c) (parsec-ch c)) str))
+
+(defsubst parsec-num (num)
+ "Parse the number NUM and return the parsed number as a string."
+ (parsec-re (regexp-quote (number-to-string num))))
+
+(defsubst parsec-letter ()
+ "Parse any English letter."
+ (parsec-re "[a-zA-Z]"))
+
+(defsubst parsec-digit ()
+ "Parse any digit."
+ (parsec-re "[0-9]"))
+
+(defmacro parsec-or (&rest parsers)
+ "Try the PARSERS one by one.
+If the current parser succeeds, return its results. If the
+current parser fails without consuming any input, try the next
+parser if available. This combinator fails if the current parser
+fails after consuming some input or there is no more parsers."
+ (let ((parser-sym (make-symbol "parser"))
+ (error-sym (make-symbol "err"))
+ (error-str-list-sym (make-symbol "err-list")))
+ `(let (,error-str-list-sym ,parser-sym ,error-sym)
+ (catch 'parsec-failed-or
+ ,@(mapcar
+ (lambda (parser)
+ `(parsec-protect-atom parsec-or
+ (parsec-start
+ (throw 'parsec-failed-or
+ (parsec-eavesdrop-error ,error-sym
+ (parsec-make-atom parsec-or ,parser)
+ (push (parsec-error-str ,error-sym)
,error-str-list-sym))))))
+ parsers)
+ (parsec-stop
+ :message
+ (replace-regexp-in-string
+ "\n" "\n\t"
+ (concat "None of the parsers succeeds:\n"
+ (mapconcat #'identity ,error-str-list-sym "\n"))))))))
+
+(defalias 'parsec-and 'progn
+ "Eval BODY sequentially and return the result of the last parser.
+This combinator fails if one of the parsers fails.")
+
+(defalias 'parsec-return 'prog1
+ "Eval FIRST and BODY sequentially and return the results of the first parser.
+This combinator fails if one of the parsers fails.")
+
+(defalias 'parsec-collect 'list
+ "Collect the results of all the parsers OBJECTS into a list.")
+
+(defun parsec-collect* (&rest args)
+ "Collect the non-nil results of all the parsers ARGS into a list."
+ (delq nil (apply #'parsec-collect args)))
+
+(defmacro parsec-collect-as-string (&rest forms)
+ "Collect the results of all the parsers FORMS as a string."
+ `(parsec-list-to-string (parsec-collect ,@forms)))
+
+(defalias 'parsec-collect-s 'parsec-collect-as-string)
+
+(defmacro parsec-start (&rest forms)
+ "Eval the parsers FORMS and return the results or a `parsec-error'.
+This combinator should be used at the top level as the entry
+point of your parsing program."
+ `(catch 'parsec-failed ,@forms))
+
+(defalias 'parsec-parse 'parsec-start)
+
+(defmacro parsec-try (parser)
+ "Try PARSER, and pretend that no input is consumed when an error occurs."
+ (let ((orig-pt-sym (make-symbol "orig-pt"))
+ (error-sym (make-symbol "err")))
+ `(let ((,orig-pt-sym (point)))
+ (parsec-eavesdrop-error ,error-sym
+ (parsec-and ,parser)
+ (goto-char ,orig-pt-sym)))))
+
+(defmacro parsec-lookahead (parser)
+ "Try PARSER, and pretend that no input is consumed when it succeeds."
+ (let ((orig-pt-sym (make-symbol "orig-pt")))
+ `(let ((,orig-pt-sym (point)))
+ (parsec-return ,parser
+ (goto-char ,orig-pt-sym)))))
+
+(defsubst parsec--atom-tag (name)
+ (intern (format "parsec-failed-at-half-%s" name)))
+
+(defmacro parsec-protect-atom (name parser)
+ "This must be used together with `parsec-make-atom'."
+ (declare (indent 1))
+ (let ((tag (parsec--atom-tag name)))
+ `(catch 'parsec-failed-protect-atom
+ (parsec-throw (catch ',tag
+ (throw 'parsec-failed-protect-atom ,parser))))))
+
+(defmacro parsec-make-atom (name parser)
+ (let ((orig-pt-sym (make-symbol "orig-pt"))
+ (error-sym (make-symbol "err"))
+ (tag (parsec--atom-tag name)))
+ `(let ((,orig-pt-sym (point)))
+ (parsec-eavesdrop-error ,error-sym
+ ,parser
+ (unless (= (point) ,orig-pt-sym)
+ (throw ',tag ,error-sym))))))
+
+(defmacro parsec-eavesdrop-error (error-sym parser &rest handler)
+ (declare (indent 2))
+ `(catch 'parsec-failed-eavesdrop-error
+ (let ((,error-sym (parsec-start
+ (throw 'parsec-failed-eavesdrop-error ,parser))))
+ ,@handler
+ (parsec-throw ,error-sym))))
+
+(defmacro parsec-with-error-message (msg &rest forms)
+ "Use MSG as the error message if an error occurs when Evaling the FORMS."
+ (declare (indent 1))
+ `(parsec-eavesdrop-error _
+ (parsec-and ,@forms)
+ (parsec-throw (parsec-error-new ,msg))))
+
+(defmacro parsec-ensure (&rest forms)
+ "Exit the program immediately if FORMS fail."
+ (let ((error-sym (make-symbol "err")))
+ `(parsec-eavesdrop-error ,error-sym
+ (parsec-and ,@forms)
+ (error "%s" (parsec-error-str ,error-sym)))))
+
+(defmacro parsec-ensure-with-error-message (msg &rest forms)
+ "Exit the program immediately with MSG if FORMS fail."
+ (declare (indent 1))
+ `(parsec-ensure
+ (parsec-with-error-message ,msg
+ (parsec-and ,@forms))))
+
+(defmacro parsec-many (parser)
+ "Apply the PARSER zero or more times and return a list of the results."
+ (let ((res-sym (make-symbol "results")))
+ `(let (,res-sym)
+ (parsec-protect-atom parsec-many
+ (parsec-start
+ (while (not (eobp))
+ (push (parsec-make-atom parsec-many ,parser) ,res-sym))))
+ (nreverse ,res-sym))))
+
+(defmacro parsec-many1 (parser)
+ "Apply the PARSER one or more times and return a list of the results."
+ `(cons ,parser (parsec-many ,parser)))
+
+(defsubst parsec-list-to-string (l)
+ (if (stringp l)
+ l
+ (mapconcat #'identity l "")))
+
+(defmacro parsec-many-as-string (parser)
+ "Apply the PARSER zero or more times and return the results as a string."
+ `(mapconcat #'identity (parsec-many ,parser) ""))
+
+(defalias 'parsec-many-s 'parsec-many-as-string)
+
+(defmacro parsec-many1-as-string (parser)
+ "Apply the PARSER one or more times and return the results as a string."
+ `(mapconcat #'identity (parsec-many1 ,parser) ""))
+
+(defalias 'parsec-many1-s 'parsec-many1-as-string)
+
+(defmacro parsec-many-till (parser end &optional type)
+ "Apply PARSER zero or more times until END succeeds.
+The return value is determined by TYPE. If TYPE is `:both', return
+the cons `(many . end)'. If TYPE is `:end', return the result of END.
+In other cases, return the result of PARSER.
+
+Used to scan comments:
+
+> (parsec-and
+> (parsec-str \"<--\")
+> (parsec-many-till (parsec-any-ch) (parsec-str \"-->\")))"
+
+ (let ((res-sym (make-symbol "results"))
+ (end-res-sym (make-symbol "end-result")))
+ `(let ((,res-sym nil) ,end-res-sym)
+ (setq ,end-res-sym
+ (catch 'parsec-failed-many-till
+ (while t
+ (parsec-or (throw 'parsec-failed-many-till ,end)
+ (push ,parser ,res-sym)))))
+ (setq ,res-sym (nreverse ,res-sym))
+ ,(cond
+ ((eq type :both) `(cons ,res-sym ,end-res-sym))
+ ((eq type :end) end-res-sym)
+ (t res-sym)))))
+
+(defmacro parsec-many-till-as-string (parser end &optional type)
+ "Apply PARSER zero or more times until END succeeds.
+Return the result of PARSER or END as a string. TYPE has the same
+meaning as `parsec-many-till'."
+ (let ((res-sym (make-symbol "results")))
+ (cond
+ ((eq type :both)
+ `(let ((,res-sym (parsec-many-till ,parser ,end ,type)))
+ (cons (parsec-list-to-string (car ,res-sym))
+ (parsec-list-to-string (cdr ,res-sym)))))
+ (t
+ `(parsec-list-to-string (parsec-many-till ,parser ,end ,type))))))
+
+(defalias 'parsec-many-till-s 'parsec-many-till-as-string)
+
+(defmacro parsec-until (parser &optional type)
+ "Parse any characters until PARSER succeeds.
+TYPE has the same meaning as `parsec-many-till'."
+ `(parsec-many-till (parsec-any-ch) ,parser ,type))
+
+(defmacro parsec-until-as-string (parser &optional type)
+ "Parse any characters until PARSER succeeds.
+Return the result of either part as a string. TYPE has the same
+meaning as `parsec-many-till'."
+ `(parsec-many-till-as-string (parsec-any-ch) ,parser ,type))
+
+(defalias 'parsec-until-s 'parsec-until-as-string)
+
+(defmacro parsec-not-followed-by (parser)
+ "Succeed only when PARSER fails. Consume no input."
+ (let ((res-sym (make-symbol "results")))
+ `(catch 'parsec-failed-not-followed-by-out
+ (parsec-try
+ (let ((,res-sym
+ (catch 'parsec-failed-not-followed-by-in
+ (throw 'parsec-failed-not-followed-by-out
+ (parsec-or (throw 'parsec-failed-not-followed-by-in
(parsec-try ,parser))
+ nil)))))
+ (parsec-stop :message (format "Unexpected followed by: %s"
,res-sym)))))))
+
+(defmacro parsec-endby (parser end)
+ "Parse zero or more occurrences of PARSER, separated and ended by END.
+Return a list of values returned by PARSER."
+ `(parsec-many (parsec-return ,parser
+ ,end)))
+
+(defmacro parsec-sepby (parser separator)
+ "Parse zero or more occurrences of PARSER, separated by SEPARATOR.
+Return a list of values returned by PARSER."
+ `(parsec-or
+ (cons ,parser (parsec-many (parsec-and ,separator ,parser)))
+ nil))
+
+(defmacro parsec-between (open close parser)
+ "Parse OPEN, followed by PARSER and CLOSE.
+Return the value returned by PARSER."
+ `(parsec-and
+ ,open
+ (parsec-return ,parser
+ ,close)))
+
+(defmacro parsec-count (n parser)
+ "Parse N occurrences of PARSER.
+Return a list of N values returned by PARSER."
+ (let ((res-sym (make-symbol "results")))
+ `(let (,res-sym)
+ (dotimes (_ ,n ,res-sym)
+ (push ,parser ,res-sym)))))
+
+(defmacro parsec-count-as-string (n parser)
+ "Parse N occurrences of PARSER.
+Return the N values returned by PARSER as a string."
+ `(parsec-list-to-string (parsec-count ,n ,parser)))
+
+(defalias 'parsec-count-s 'parsec-count-as-string)
+
+(defmacro parsec-option (opt parser)
+ "Try to apply PARSER and return OPT if PARSER fails without comsuming input."
+ `(parsec-or ,parser ,opt))
+
+(defmacro parsec-optional (parser)
+ "Apply PARSER zero or one time. Fail if PARSER fails after consuming input.
+Return the result of PARSER or nil.
+
+Note this combinator doesn't discard the result of PARSER so it is
+different from the `optional' function of Haskell's Parsec. If
+you want the Haskell's behavior, use `parsec-optional*'."
+ `(parsec-or ,parser nil))
+
+(defmacro parsec-optional* (parser)
+ "Apply PARSER zero or one time and discard the result.
+Fail if PARSER fails after consuming input.
+
+This combinator has the same behavior as the `optional' function of
+Haskell's Parsec."
+ `(parsec-and ,parser nil))
+
+(defmacro parsec-peek (parser)
+ "Apply PARSER without consuming any input.
+When PARSER succeeds, the result of the PARSER is returned.
+Otherwise, the return value is an error. Use `parsec-error-p' on
+the return value to see whether the PARSER fails or not. Use
+`parsec-peek-p' if you want nil to be returned when PARSER fails.
+
+This is a shortcut of combining `parsec-start', `parsec-try' and
+`parsec-lookahead'. Since arbitrary parser is allowed, this
+function can be viewed as a more powerful version of `looking-at'
+in Emacs Lisp."
+ `(parsec-start
+ (parsec-try
+ (parsec-lookahead ,parser))))
+
+(defmacro parsec-peek-p (parser)
+ "Same as `parsec-peek' except a nil is returned when the PARSER fails."
+ (let ((res-sym (make-symbol "res")))
+ `(let ((,res-sym (parsec-peek ,parser)))
+ (unless (parsec-error-p ,res-sym)
+ ,res-sym))))
+
+(defmacro parsec-query (parser &rest args)
+ "Get an alternative return value of the PARSER specified by the ARGS.
+
+The args can be in the following forms:
+
+ :beg --> return the point before applying the PARSER
+ :end --> return the point after applying the PARSER
+ :nil --> return nil
+ :groups N --> return Nth group for `parsec-re'."
+ (let ((orig-pt-sym (make-symbol "orig-pt"))
+ (res-sym (make-symbol "results")))
+ `(let ((,orig-pt-sym (point))
+ (,res-sym ,parser))
+ ,(cond
+ ((memq :beg args) orig-pt-sym)
+ ((memq :end args) '(point))
+ ((memq :nil args) nil)
+ ((and (memq :group args)
+ (consp parser)
+ (eq (car parser) 'parsec-re))
+ (let ((group
+ (cl-loop named outer for arg on args
+ when (eq (car arg) :group) do
+ (cl-return-from outer (cadr arg)))))
+ (if (and group (integerp group))
+ `(match-string ,group)
+ (error "Invalid query :group %s" group))))
+ (t res-sym)))))
+
+(defsubst parsec-just (x) (cons 'Just x))
+
+(defconst parsec-nothing 'Nothing)
+
+(defun parsec-maybe-p (x)
+ (or (eq x parsec-nothing)
+ (and
+ (consp x)
+ (eq (car x) 'Just))))
+
+(defun parsec-from-maybe (x)
+ "Retrieve the value from Maybe monad X.
+If X is `(Just . p)', return p. Otherwise return nil."
+ (and (consp x)
+ (eq (car x) 'Just)
+ (cdr x)))
+
+(defmacro parsec-optional-maybe (parser)
+ "Apply PARSER zero or one time and return the value in a Maybe monad.
+If PARSER fails without consuming any input, return `parsec-nothing'.
+Otherwise, return `(Just . p)' where p is the result of PARSER."
+ (let ((res-sym (make-symbol "result")))
+ `(let ((,res-sym (parsec-optional ,parser)))
+ (if ,res-sym
+ (parsec-just ,res-sym)
+ parsec-nothing))))
+
+(defun parsec-newline ()
+ "Parse a newline character \"\\n\"."
+ (parsec-ch ?\n))
+
+(defun parsec-crlf ()
+ "Parse a carriage return (\'\\r\') followed by a newline \"\\n\"."
+ (parsec-and (parsec-ch ?\r) (parsec-ch ?\n)))
+
+(defun parsec-eol ()
+ "Parse a newline or a CRLF and return \"\\n\"."
+ (parsec-or (parsec-newline) (parsec-crlf)))
+
+(defun parsec-eob ()
+ "Indicate the end of file (buffer)."
+ (unless (eobp)
+ (parsec-stop :expected "`EOF'"
+ :found (parsec-eof-or-char-as-string))))
+
+(defalias 'parsec-eof 'parsec-eob)
+
+(defun parsec-eol-or-eof ()
+ "Indicate either eol or eof."
+ (parsec-or (parsec-eol) (parsec-eof)))
+
+(defmacro parsec-with-input (input &rest parsers)
+ "With INPUT, start parsing by applying PARSERS sequentially."
+ (declare (indent 1))
+ `(with-temp-buffer
+ (insert ,input)
+ (goto-char (point-min))
+ (parsec-start
+ ,@parsers)))
+
+(provide 'parsec)
+;;; parsec.el ends here
diff --git a/packages/seq/seq-24.el b/packages/seq/seq-24.el
index 04688d3..3f9cd88 100644
--- a/packages/seq/seq-24.el
+++ b/packages/seq/seq-24.el
@@ -371,6 +371,13 @@ SEQUENCE must be a sequence of numbers or markers."
SEQUENCE must be a sequence of numbers or markers."
(apply #'max (seq-into sequence 'list)))
+(defun seq-random-elt (sequence)
+ "Return a random element from SEQUENCE.
+Signal an error if SEQUENCE is empty."
+ (if (seq-empty-p sequence)
+ (error "Sequence cannot be empty")
+ (seq-elt sequence (random (seq-length sequence)))))
+
(defun seq--drop-list (list n)
"Return a list from LIST without its first N elements.
This is an optimization for lists in `seq-drop'."
diff --git a/packages/seq/seq-25.el b/packages/seq/seq-25.el
index a497f70..c2268dd 100644
--- a/packages/seq/seq-25.el
+++ b/packages/seq/seq-25.el
@@ -91,7 +91,7 @@ given, and the match does not fail."
ARGS can also include the `&rest' marker followed by a variable
name to be bound to the rest of SEQUENCE."
- (declare (indent 2) (debug t))
+ (declare (indent 2) (debug (sexp form body)))
`(pcase-let ((,(seq--make-pcase-patterns args) ,sequence))
,@body))
@@ -494,5 +494,12 @@ SEQUENCE must be a sequence of numbers or markers."
If no element is found, return nil."
(ignore-errors (seq-elt sequence n))))
+(cl-defgeneric seq-random-elt (sequence)
+ "Return a random element from SEQUENCE.
+Signal an error if SEQUENCE is empty."
+ (if (seq-empty-p sequence)
+ (error "Sequence cannot be empty")
+ (seq-elt sequence (random (seq-length sequence)))))
+
(provide 'seq-25)
;;; seq-25.el ends here
diff --git a/packages/seq/seq.el b/packages/seq/seq.el
index 9f96ec8..6bbb307 100644
--- a/packages/seq/seq.el
+++ b/packages/seq/seq.el
@@ -4,7 +4,7 @@
;; Author: Nicolas Petton <address@hidden>
;; Keywords: sequences
-;; Version: 2.16
+;; Version: 2.19
;; Package: seq
;; Maintainer: address@hidden
diff --git a/packages/seq/tests/seq-tests.el b/packages/seq/tests/seq-tests.el
index cf3da78..5d729b1 100644
--- a/packages/seq/tests/seq-tests.el
+++ b/packages/seq/tests/seq-tests.el
@@ -350,5 +350,20 @@ Evaluate BODY for each created sequence.
(should (equal (seq-sort-by #'seq-length #'> seq)
["xxx" "xx" "x"]))))
+(ert-deftest test-seq-random-elt-take-all ()
+ (let ((seq '(a b c d e))
+ (elts '()))
+ (should (= 0 (length elts)))
+ (dotimes (_ 1000)
+ (let ((random-elt (seq-random-elt seq)))
+ (add-to-list 'elts
+ random-elt)))
+ (should (= 5 (length elts)))))
+
+(ert-deftest test-seq-random-elt-signal-on-empty ()
+ (should-error (seq-random-elt nil))
+ (should-error (seq-random-elt []))
+ (should-error (seq-random-elt "")))
+
(provide 'seq-tests)
;;; seq-tests.el ends here
diff --git a/packages/sml-mode/sml-mode.el b/packages/sml-mode/sml-mode.el
index f4adf11..dc51c99 100644
--- a/packages/sml-mode/sml-mode.el
+++ b/packages/sml-mode/sml-mode.el
@@ -556,7 +556,6 @@ Regexp match data 0 points to the chars."
(`(:before . "withtype") 0)
(`(:before . "d=")
(cond
- ((smie-rule-parent-p "fun") 2)
((smie-rule-parent-p "datatype") (if (smie-rule-bolp) 2))
((smie-rule-parent-p "structure" "signature" "functor") 0)))
;; Indent an expression starting with "local" as if it were starting
diff --git a/packages/sml-mode/testcases.sml b/packages/sml-mode/testcases.sml
index 4ed3312..7ed53f7 100644
--- a/packages/sml-mode/testcases.sml
+++ b/packages/sml-mode/testcases.sml
@@ -1,4 +1,4 @@
-(* Copyright 1999,2004,2007,2010-2012,2014 Stefan Monnier <address@hidden> *)
+(* Copyright 1999,2004,2007,2010-2016 Stefan Monnier <address@hidden> *)
(* sml-mode here treats the second `=' as an equal op because it
* thinks it's seeing something like "... type t = (s.t = ...)". FIXME! *)
@@ -71,6 +71,11 @@ type node' = node
type obj = t
end
+fun test1 None =
+ 4
+ | test1 (Some x) =
+ 5
+
datatype exp_node
= Let of varpat_t list * rhs_t * exp_t
| Do of simpleexp_t * exp_t
diff --git a/packages/sotlisp/sotlisp.el b/packages/sotlisp/sotlisp.el
index 2ceb382..792fe1d 100644
--- a/packages/sotlisp/sotlisp.el
+++ b/packages/sotlisp/sotlisp.el
@@ -6,7 +6,7 @@
;; URL: https://github.com/Malabarba/speed-of-thought-lisp
;; Keywords: convenience, lisp
;; Package-Requires: ((emacs "24.1"))
-;; Version: 1.5.2
+;; Version: 1.6.2
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@@ -81,6 +81,7 @@
;; (with-temp-buffer (insert text))
;;; Code:
+(require 'skeleton)
;;; Predicates
(defun sotlisp--auto-paired-p ()
@@ -101,7 +102,7 @@ Specially, avoids matching inside argument lists."
(not (sotlisp--looking-back
"(\\(defun\\s-+.*\\|\\(lambda\\|dolist\\|dotimes\\)\\s-+\\)("))
(save-excursion
(forward-char -1)
- (condition-case er
+ (condition-case nil
(progn
(backward-up-list)
(forward-sexp -1)
@@ -203,8 +204,14 @@ See `sotlisp-define-function-abbrev'."
(skip-chars-backward (rx alnum))
(let* ((name (buffer-substring (point) r))
(expansion (gethash name sotlisp--function-table)))
- (if (not expansion)
- (progn (goto-char r) nil)
+ (cond
+ ((not expansion) (progn (goto-char r) nil))
+ ((consp expansion)
+ (delete-region (point) r)
+ (let ((skeleton-end-newline nil))
+ (skeleton-insert (cons "" expansion)))
+ t)
+ ((stringp expansion)
(delete-region (point) r)
(if (sotlisp--function-quote-p)
;; After #' use the simple expansion.
@@ -214,7 +221,7 @@ See `sotlisp-define-function-abbrev'."
(when (string-match "\\$" expansion)
(setq sotlisp--needs-moving t)))
;; Must be last.
- (sotlisp--post-expansion-cleanup)))))
+ (sotlisp--post-expansion-cleanup))))))
(put 'sotlisp--expand-function 'no-self-insert t)
@@ -295,12 +302,12 @@ The space char is not included. Any \"$\" are also
removed."
("jos" . "just-one-space")
("jr" . "json-read$")
("jtr" . "jump-to-register ")
- ("k" . "kbd \"$\"")
+ ("k" . ("kbd " (format "%S" (key-description (read-key-sequence-vector
"Key: ")))))
("kb" . "kill-buffer")
("kn" . "kill-new ")
("kp" . "keywordp ")
("l" . "lambda ($)")
- ("la" . "looking-at \"$\"")
+ ("la" . ("looking-at \"" - "\""))
("lap" . "looking-at-p \"$\"")
("lb" . "looking-back \"$\"")
("lbp" . "line-beginning-position")
diff --git a/packages/spinner/spinner.el b/packages/spinner/spinner.el
index 24e9cea..da75a8f 100644
--- a/packages/spinner/spinner.el
+++ b/packages/spinner/spinner.el
@@ -3,7 +3,7 @@
;; Copyright (C) 2015 Free Software Foundation, Inc.
;; Author: Artur Malabarba <address@hidden>
-;; Version: 1.7.1
+;; Version: 1.7.3
;; URL: https://github.com/Malabarba/spinner.el
;; Keywords: processes mode-line
@@ -183,7 +183,7 @@ own spinner animations."
(frames (spinner--type-to-frames type))
(counter 0)
(fps (or frames-per-second spinner-frames-per-second))
- (timer (timer-create) :read-only)
+ (timer (timer-create))
(active-p nil)
(buffer (when buffer-local
(if (bufferp buffer-local)
diff --git a/packages/stream/stream.el b/packages/stream/stream.el
index ef19918..afb739f 100644
--- a/packages/stream/stream.el
+++ b/packages/stream/stream.el
@@ -4,7 +4,7 @@
;; Author: Nicolas Petton <address@hidden>
;; Keywords: stream, laziness, sequences
-;; Version: 2.2.2
+;; Version: 2.2.3
;; Package-Requires: ((emacs "25"))
;; Package: stream
@@ -110,7 +110,7 @@ SEQ can be a list, vector or string."
(cl-defmethod stream ((buffer buffer) &optional pos)
"Return a stream of the characters of the buffer BUFFER.
BUFFER may be a buffer or a string (buffer name).
-The sequence starts at POS if non-nil, 1 otherwise."
+The sequence starts at POS if non-nil, `point-min' otherwise."
(with-current-buffer buffer
(unless pos (setq pos (point-min)))
(if (>= pos (point-max))
@@ -166,11 +166,12 @@ range is infinite."
(list stream--identifier (thunk-delay nil)))
(defun stream-empty-p (stream)
- "Return non-nil is STREAM is empty, nil otherwise."
+ "Return non-nil if STREAM is empty, nil otherwise."
(null (thunk-force (cadr stream))))
(defun stream-first (stream)
- "Return the first element of STREAM."
+ "Return the first element of STREAM.
+Return nil if STREAM is empty."
(car (thunk-force (cadr stream))))
(defun stream-rest (stream)
@@ -273,12 +274,13 @@ stream will simply be accordingly shorter, or even
empty)."
(cl-defmethod seq-take ((stream stream) n)
"Return a stream of the first N elements of STREAM."
- (if (or (zerop n)
- (stream-empty-p stream))
- (stream-empty)
- (stream-cons
- (stream-first stream)
- (seq-take (stream-rest stream) (1- n)))))
+ (stream-make
+ (if (or (zerop n)
+ (stream-empty-p stream))
+ nil
+ (cons
+ (stream-first stream)
+ (seq-take (stream-rest stream) (1- n))))))
(cl-defmethod seq-drop ((stream stream) n)
"Return a stream of STREAM without its first N elements."
@@ -327,16 +329,14 @@ kind of nonlocal exit."
(cl-defmethod seq-filter (pred (stream stream))
"Return a stream of the elements for which (PRED element) is non-nil in
STREAM."
- (if (stream-empty-p stream)
- stream
- (stream-make
- (while (not (or (stream-empty-p stream)
- (funcall pred (stream-first stream))))
- (setq stream (stream-rest stream)))
- (if (stream-empty-p stream)
- nil
- (cons (stream-first stream)
- (seq-filter pred (stream-rest stream)))))))
+ (stream-make
+ (while (not (or (stream-empty-p stream)
+ (funcall pred (stream-first stream))))
+ (setq stream (stream-rest stream)))
+ (if (stream-empty-p stream)
+ nil
+ (cons (stream-first stream)
+ (seq-filter pred (stream-rest stream))))))
(defmacro stream-delay (expr)
"Return a new stream to be obtained by evaluating EXPR.
diff --git a/packages/url-http-ntlm/url-http-ntlm.el
b/packages/url-http-ntlm/url-http-ntlm.el
index 58622ad..841dc6c 100644
--- a/packages/url-http-ntlm/url-http-ntlm.el
+++ b/packages/url-http-ntlm/url-http-ntlm.el
@@ -4,10 +4,10 @@
;; Author: Tom Schutzer-Weissmann <address@hidden>
;; Maintainer: Thomas Fitzsimmons <address@hidden>
-;; Version: 2.0.2
+;; Version: 2.0.3
;; Keywords: comm, data, processes, hypermedia
;; Homepage: https://code.google.com/p/url-http-ntlm/
-;; Package-Requires: ((cl-lib "0.5") (ntlm "2.0.0"))
+;; Package-Requires: ((cl-lib "0.5") (ntlm "2.1.0"))
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@@ -148,16 +148,9 @@ request to the host in URL's server slot."
(defun url-http-ntlm--get-stage (args)
"Determine what stage of the NTLM handshake we are at.
-PROMPT and ARGS come from `url-ntlm-auth''s caller,
-`url-get-authentication'. Their meaning depends on the current
-implementation - this function is well and truly coupled.
-
-`url-get-authentication' calls `url-ntlm-auth' once when checking
-what authentication schemes are supported (PROMPT and ARGS are
-nil), and then twice for every stage of the handshake: the first
-time PROMPT is nil, the second, t; ARGS contains the server
-response's \"WWW-Authenticate\" header, munged by
-`url-parse-args'."
+ARGS comes from `url-ntlm-auth''s caller,
+`url-get-authentication'. Its meaning depends on the current
+implementation -- this function is well and truly coupled."
(cl-declare (special url-http-extra-headers))
(let* ((response-rxp "^NTLM TlRMTVNTUAADAAA")
(challenge-rxp "^TLRMTVNTUAACAAA")
@@ -275,36 +268,47 @@ two-step process, this function expects to be called
twice, first
to generate the NTLM type 1 message (request), then to respond to
the server's type 2 message (challenge) with a suitable response.
-PROMPT, OVERWRITE, and REALM are ignored.
+url-get-authentication' calls `url-ntlm-auth' once when checking
+what authentication schemes are supported (PROMPT and ARGS are
+nil), and then twice for every stage of the handshake: the first
+time PROMPT is nil, the second, t; ARGS contains the server
+response's \"WWW-Authenticate\" header, munged by
+`url-parse-args'.
+
+If PROMPT is not t then this function just returns nil. This is
+to avoid calculating responses twice.
+
+OVERWRITE and REALM are ignored.
ARGS is expected to contain the WWW-Authentication header from
the server's last response. These are used by
`url-http-get-stage' to determine what stage we are at."
- (url-http-ntlm--ensure-keepalive)
- (let* ((user-url (url-http-ntlm--ensure-user url))
- (stage (url-http-ntlm--get-stage args)))
- (url-debug 'url-http-ntlm "Stage: %s" stage)
- (cl-case stage
- ;; NTLM Type 1 message: the request
- (:request
- (url-http-ntlm--detect-loop user-url)
- (cl-destructuring-bind (&optional key hash)
- (url-http-ntlm--authorization user-url nil realm)
- (when (cl-third key)
- (url-http-ntlm--string
- (ntlm-build-auth-request (cl-second key) (cl-third key))))))
- ;; NTLM Type 3 message: the response
- (:response
- (url-http-ntlm--detect-loop user-url)
- (let ((challenge (url-http-ntlm--get-challenge)))
- (cl-destructuring-bind (key hash)
+ (when (eq prompt t)
+ (url-http-ntlm--ensure-keepalive)
+ (let* ((user-url (url-http-ntlm--ensure-user url))
+ (stage (url-http-ntlm--get-stage args)))
+ (url-debug 'url-http-ntlm "Stage: %s" stage)
+ (cl-case stage
+ ;; NTLM Type 1 message: the request
+ (:request
+ (url-http-ntlm--detect-loop user-url)
+ (cl-destructuring-bind (&optional key hash)
(url-http-ntlm--authorization user-url nil realm)
- (url-http-ntlm--string
- (ntlm-build-auth-response challenge
- (cl-second key)
- hash)))))
- (:error
- (url-http-ntlm--authorization user-url :clear)))))
+ (when (cl-third key)
+ (url-http-ntlm--string
+ (ntlm-build-auth-request (cl-second key) (cl-third key))))))
+ ;; NTLM Type 3 message: the response
+ (:response
+ (url-http-ntlm--detect-loop user-url)
+ (let ((challenge (url-http-ntlm--get-challenge)))
+ (cl-destructuring-bind (key hash)
+ (url-http-ntlm--authorization user-url nil realm)
+ (url-http-ntlm--string
+ (ntlm-build-auth-response challenge
+ (cl-second key)
+ hash)))))
+ (:error
+ (url-http-ntlm--authorization user-url :clear))))))
;;; Register `url-ntlm-auth' HTTP authentication method.
diff --git a/packages/validate/validate.el b/packages/validate/validate.el
index 7ca4b0a..f2dcc23 100644
--- a/packages/validate/validate.el
+++ b/packages/validate/validate.el
@@ -4,8 +4,8 @@
;; Author: Artur Malabarba <address@hidden>
;; Keywords: lisp
-;; Package-Requires: ((emacs "24.1") (cl-lib "0.5"))
-;; Version: 0.5
+;; Package-Requires: ((emacs "24.1") (cl-lib "0.5") (seq "2.16"))
+;; Version: 1.0.2
;;; Commentary:
;;
@@ -96,7 +96,7 @@ If they don't match, return an explanation."
((wtype 'list))
(t (let ((subschema (car args)))
(seq-some (lambda (v) (validate--check v
subschema)) value)))))
- ((const function-item variable-item) (unless (eq value (car
args))
+ ((const function-item variable-item) (unless (equal value (car
args))
"not the expected
value"))
(file (cond ((wtype 'string))
((file-exists-p value) nil)
@@ -165,7 +165,7 @@ indicate a failure."
(let ((report (validate--check value schema)))
(if report
(unless noerror
- (user-error report))
+ (user-error "%s" report))
value)))
;;;###autoload
diff --git a/packages/wisi/NEWS b/packages/wisi/NEWS
index 4a9f690..06470ae 10