Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions specifications/OCPS-1.0.md
Original file line number Diff line number Diff line change
@@ -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

Expand Down Expand Up @@ -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
Expand All @@ -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 without a preceding wildcard or range (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.
Expand All @@ -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. |