Improve the trigger/complete expression handling ECFLOW-2112#397
Merged
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #397 +/- ##
===========================================
+ Coverage 52.08% 52.10% +0.01%
===========================================
Files 1247 1248 +1
Lines 101710 101827 +117
Branches 15135 15155 +20
===========================================
+ Hits 52974 53052 +78
- Misses 48736 48775 +39 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
marcosbento
force-pushed
the
task/expression_spec
branch
from
July 22, 2026 18:44
0c1a176 to
db62862
Compare
marcosbento
marked this pull request as ready for review
July 22, 2026 20:29
Document the expression language used by the trigger and complete attributes as a dedicated, reference-level page in the User Manual. The specification is derived from the expression lexer/parser and the abstract syntax tree it produces, and covers the operands and operators, a two-layer (lexical and syntactic) EBNF grammar, operator precedence and associativity, and worked examples showing the fully-bracketed parse of representative expressions. Re ECFLOW-2112
Define each expression's fully-bracketed AST rendering and assert it byte-for-byte, to lock parser behaviour. Defines also invalid_expressions, for which parser refusal is asserted. Also adds test for expressions with attached tokens for keyword/operand glue cases. Re ECFLOW-2112
Keywords (word operators, states, event states, flags, integers,
datetimes) matched via bare prefix rules, so glued tokens like
"completeand" or "515and" were silently split in two and misparsed
instead of rejected.
Require a trailing word boundary on each, via an inlined zero-width
lookahead kept inside the lexeme scope; the boundary also counts '.'
so a keyword glued to a relative path ("and./12") is rejected.
Also make variable paths contiguous (no space around ':').
Re ECFLOW-2112
marcosbento
force-pushed
the
task/expression_spec
branch
from
July 22, 2026 20:31
db62862 to
75bfde6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
/p/n1 == completeand /p/n2 == complete)Contributor Declaration
By opening this pull request, I affirm the following:
🌦️ >> Documentation << 🌦️
https://sites.ecmwf.int/docs/dev-section/ecflow/pull-requests/PR-397