boostorg/spirit_x4

The domain of integral bounds given to `repeat_directive` is underspecified

オープン

#62 opened on 2025/10/05

 (0 件のコメント) (0 件のリアクション) (0 人の担当者)C++ (3 件のフォーク)auto 404
documentationenhancementgood first issuehelp wanted

Repository metrics

Stars
 (37 個のスター)
PR merge metrics
 (30d に merged PR はありません)

説明

Perhaps this should be both rejected in the code and described in the new documentation.

  • The documentation should note that repeat operates on closed bounds.
  • x4::repeat(negative) should be rejected
  • x4::repat(negative, ...) and x4::repat(..., negative) should be rejected
  • x4::repeat(max, min) should be rejected
  • x4::repeat(0) should be rejected
    • This is semantically very vague.
    • As of now, I confirmed that it actually results in always succeeding parser (regardless of the underlying parser p given to repeat(0)[p]), similar to eps

Proposed solution:

  • The basic concept should be changed from std::integral to std::unsigned_integral
  • x4::repeat(max, min) should throw std::domain_error
  • x4::repeat(0) should throw std::domain_error

コントリビューターガイド