Fix: Parsing Issues from ZIMPL Documentation Example #3
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.
Summary
This PR fixes two parsing issues encountered when executing a variable definition example found in the ZIMPL documentation (see Section 5.1 on page 16). The two issues concern index syntax for dynamic bounds and the strict ordering of variable attributes using ZIMPL v3.6.2.
Issues Addressed
The parser requires angle brackets
<k> in K
for the index variable when it's used in the bounds, but the documentation example appears to use the syntaxk in K
leading to an error.Code Snippet:
var t[k in K] integer >= 1 <= 3 * k; #fails with error 800
var t[<k> in K] integer >= 1 <= 3 * k; #works
The parser enforces an apparent strict order for variable attributes in the documentation example, causing an Error 800 if priority precedes startval. It is currently unclear if this is a bug or an undocumented syntax rule.
Code Snippet:
var t[<k> in K] integer >= 1 <= 3 * k startval 2 * k priority 50; #fails with error 800
var t[<k> in K] integer >= 1 <= 3 * k priority 50 startval 2 * k; #works
Proposed Solution
This PR implements necessary adjustments to the documentation so that the example runs successfully.