FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Support constant ranges in set literals: ['0'..'9'] by TetzkatLipHoka · Pull Request #309 · remobjects/pascalscript · GitHub

Support constant ranges in set literals: ['0'..'9'] - #309

Open
TetzkatLipHoka wants to merge 1 commit into
remobjects:masterfrom
TetzkatLipHoka:feature/set-range-literals
Open

TetzkatLipHoka wants to merge 1 commit into
remobjects:masterfrom
TetzkatLipHoka:feature/set-range-literals

Conversation

Copy link
Copy Markdown

Set/array literals only accepted single elements; the common Pascal
notation with ranges failed to parse ('Closing square bracket
expected'):

if c in ['0'..'9'] then ...
if b in [1..5, 250..255] then ...
if f in [frBanana..frDate] then ...

ReadArray now expands constant '..' ranges into individual constant
elements while parsing. Rules match Delphi where applicable:

  • both bounds must be compile-time ordinal constants of the same family
    (char/char, integer/integer, or values of the identical enum type),
  • ranges can be mixed freely with single elements,
  • an inverted range ('z'..'a') contributes no elements,
  • a range spanning 256 or more values is rejected (a set cannot hold
    more), reported as a type mismatch.

Dynamic bounds stay unsupported (they would require runtime set
construction); the bounds must be constants, mirroring the previous
all-constant behaviour of set literals.

🤖 Generated with Claude Code

Set/array literals only accepted single elements; the common Pascal
notation with ranges failed to parse ('Closing square bracket
expected'):

  if c in ['0'..'9'] then ...
  if b in [1..5, 250..255] then ...
  if f in [frBanana..frDate] then ...

ReadArray now expands constant '..' ranges into individual constant
elements while parsing. Rules match Delphi where applicable:

- both bounds must be compile-time ordinal constants of the same family
  (char/char, integer/integer, or values of the identical enum type),
- ranges can be mixed freely with single elements,
- an inverted range ('z'..'a') contributes no elements,
- a range spanning 256 or more values is rejected (a set cannot hold
  more), reported as a type mismatch.

Dynamic bounds stay unsupported (they would require runtime set
construction); the bounds must be constants, mirroring the previous
all-constant behaviour of set literals.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant


Back | FazBrowse Home | New Git URL