diff --git a/specifications/OCPS-1.0.md b/specifications/OCPS-1.0.md index 70f509a..5467ee9 100644 --- a/specifications/OCPS-1.0.md +++ b/specifications/OCPS-1.0.md @@ -1,8 +1,8 @@ # OCPS 1.0: The Baseline **Status:** FINAL -**Revision:** 1 -**Date:** 2025-10-28 +**Revision:** 2 +**Date:** 2025-11-21 ## 1. Introduction @@ -97,7 +97,7 @@ In OCPS 1.0, the special characters are combined within a single field to create 1. **List Separation (`,`)**: The comma is the top-level separator. It breaks a field into a list of independent sub-expressions. The final set of values for the field is the union (logical `OR`) of the results of each sub-expression. 2. **Range (`-`) or Wildcard (`*`)**: Within each sub-expression, a range (`10-20`) or a wildcard (`*`) defines the initial set of numbers. A wildcard is equivalent to the full possible range for that field (e.g., `0-59` for minutes). -3. **Step (`/`)**: The step is an operator that filters the set generated by a range or wildcard. The resulting set includes the lowest value of the range, plus every S-th value after that which also falls within the range. +3. **Step (`/`)**: The step is an operator that filters the set generated by a range or wildcard. The resulting set includes the lowest value of the range, plus every N-th value after that (where N is the step value) which also falls within the range. --- ## 6. Operational Semantics @@ -115,8 +115,10 @@ A parser MUST reject a pattern if any numeric value falls outside the allowed ra #### Invalid Ranges A range `A-B` where `A` is greater than `B` is invalid. A parser MUST treat this as a parsing error. -#### Invalid Step Values -A step value of `0` has no logical definition and is invalid. A parser MUST reject any field containing `/0` as a parsing error. +#### Invalid Step Syntax +A parser MUST reject the following step-related patterns as parsing errors: +* A step value of `0` (e.g., `*/0`), as it has no logical definition. +* A step operator not preceded by `*` or a full range `A-B` (e.g., `/30`, `0/15`, or `10/10`). The `/` character MUST be preceded by either `*` or a range in the form `A-B` where both A and B are specified (e.g., `*/30` or `10-50/10` are valid, but `/30`, `0/15`, or `10/10` are not). #### Impossible Date Combinations A pattern containing a valid but impossible date (e.g., `* * 31 2 *` for February 31st) MUST be considered syntactically valid and MUST NOT cause a parsing error. @@ -140,4 +142,5 @@ A compliant parser or scheduler MUST interpret the pattern against the implement | Revision | Date | Author(s) | Description of Changes | | :--- | :--- | :--- | :--- | +| 2 | 2025-11-21 | The OCPS Authors | Clarified step notation syntax requirements: step operator (`/`) must be preceded by either wildcard (`*`) or range (`A-B`). Added explicit parsing error for invalid syntax like `/30`. | | 1 | 2025-10-28 | The OCPS Authors | Initial publication of the 1.0 specification. |