Skip to content

Conversation

ddotsdot
Copy link

@ddotsdot ddotsdot commented Oct 9, 2025

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

  1. Index Syntax (Probable Documentation Typo)

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 syntax k 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

  1. Attribute Order (startval vs. priority)

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.

@bzfkocht
Copy link
Contributor

This is ok and can be merged.
That priority has to be before startval is undocumented (but true).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants