boostorg/spirit_x4

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

开放

#62 创建于 2025年10月5日

 (0 条评论) (0 个反应) (0 位负责人)C++ (3 个派生)auto 404
documentationenhancementgood first issuehelp wanted

仓库指标

星标
 (37 个星标)
PR 合并指标
 (30 天内没有已合并 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

贡献者指南