Skip to content

Syntax overhaul before 1.0 release #40

@sleipi

Description

@sleipi

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions