From 6fcf509c8a9936cce46d5fc1eac16121e723bb6e Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Wed, 27 Jul 2022 20:36:13 +0200 Subject: [PATCH] [parsing] add missing cases in wildcard rules of ACSL parser --- src/kernel_internals/parsing/logic_parser.mly | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/kernel_internals/parsing/logic_parser.mly b/src/kernel_internals/parsing/logic_parser.mly index fb91e861657..d2bd2fcccbc 100644 --- a/src/kernel_internals/parsing/logic_parser.mly +++ b/src/kernel_internals/parsing/logic_parser.mly @@ -1145,7 +1145,13 @@ contract: // use that to detect potentially missing ';' at end of clause clause_kw: | ADMIT_REQUIRES { "admit requires" } +| ADMIT_INVARIANT { "admit invariant" } +| ADMIT_LEMMA { "admit lemma" } +| ADMIT_LOOP { "admit loop" } | CHECK_REQUIRES { "check requires" } +| CHECK_INVARIANT { "check invariant" } +| CHECK_LEMMA { "check lemma" } +| CHECK_LOOP { "check loop" } | REQUIRES { "requires" } | ASSUMES {"assumes"} | ASSIGNS { "assigns" } @@ -1495,6 +1501,8 @@ beg_pragma_or_code_annotation: | INVARIANT {} | CHECK_INVARIANT {} | ADMIT_INVARIANT {} +| CHECK_LOOP {} +| ADMIT_LOOP {} | EXT_CODE_ANNOT {} ; @@ -1871,7 +1879,7 @@ identifier_or_typename: /* allowed as C field names */ | is_acsl_typename { $1 } | TYPENAME { $1 } /* followed by the same list than 'identifier' */ | IDENTIFIER { $1 } -/* token list used inside ascl clauses: */ +/* token list used inside acsl clauses: */ | BEHAVIORS { "behaviors" } | LABEL { "label" } | READS { "reads" } @@ -1880,7 +1888,7 @@ identifier_or_typename: /* allowed as C field names */ identifier: /* part included into 'identifier_or_typename', but duplicated to avoid parsing conflicts */ | IDENTIFIER { $1 } -/* token list used inside ascl clauses: */ +/* token list used inside acsl clauses: */ | BEHAVIORS { "behaviors" } | LABEL { "label" } | READS { "reads" } @@ -1975,8 +1983,14 @@ is_acsl_decl_or_code_annot: | IMPACT { "impact" } | INDUCTIVE { "inductive" } | INVARIANT { "invariant" } +| ADMIT_INVARIANT { "admit invariant" } +| CHECK_INVARIANT { "check invariant" } | LEMMA { "lemma" } +| ADMIT_LEMMA { "admit lemma" } +| CHECK_LEMMA { "check lemma" } | LOOP { "loop" } +| ADMIT_LOOP { "admit loop" } +| CHECK_LOOP { "check loop" } | PRAGMA { "pragma" } | PREDICATE { "predicate" } | SLICE { "slice" } -- GitLab