Syntax Overhaul before 1.0
Breaking changes to be implemented before the 1.0 release. Acceptable since we are pre-1.0.
Changes
| # |
Change |
Breaking? |
Effort |
| 1 |
# lines in body are comments (not expected output). To test stdout starting with #, use [asserts] with line N startsWith "#" |
Yes, minor |
Parser |
| 2 |
Section headers lowercase: [asserts], [captures], [finally], [prompts] |
Yes |
Parser + all tests/examples |
| 3 |
Move later to front: later stdout contains "done" instead of stdout contains later "done" |
Yes |
Parser + assert evaluation |
| 4 |
Capture syntax: id = stdout instead of id: stdout |
Yes |
Parser + tests |
| 5 |
Remove [Options] section from SPEC (never implemented, directives cover everything) |
No |
Docs only |
| 6 |
Bare-value semantics: everything after the predicate is the value (including spaces, quotes optional) |
Potentially |
Parser (value parsing) |
Open Decision
- Section headers: accept only lowercase vs. parse case-insensitively?
Context
- Splitting
EXIT NEVER into its own concept (vs. exit code declaration) will be handled separately
- Emerged from a brainstorm session on syntax cleanup before 1.0
Syntax Overhaul before 1.0
Breaking changes to be implemented before the 1.0 release. Acceptable since we are pre-1.0.
Changes
#lines in body are comments (not expected output). To test stdout starting with#, use[asserts]withline N startsWith "#"[asserts],[captures],[finally],[prompts]laterto front:later stdout contains "done"instead ofstdout contains later "done"id = stdoutinstead ofid: stdout[Options]section from SPEC (never implemented, directives cover everything)Open Decision
Context
EXIT NEVERinto its own concept (vs. exit code declaration) will be handled separately