Skip to content

Simplify ARO syntax: remove brackets from actions, optional for objects#199

Closed
KrisSimon wants to merge 11 commits intomainfrom
feature/syntax
Closed

Simplify ARO syntax: remove brackets from actions, optional for objects#199
KrisSimon wants to merge 11 commits intomainfrom
feature/syntax

Conversation

@KrisSimon
Copy link
Copy Markdown
Member

@KrisSimon KrisSimon commented Feb 18, 2026

Summary

  • Remove angle brackets from actions: <Extract>Extract
  • Make angle brackets optional for simple objects: <console>console
  • Breaking change for actions - old <Action> syntax no longer accepted
  • Backward compatible for objects - both <console> and console work

Before

<Extract> the <user> from the <request: body>.
<Log> "Hello" to the <console>.

After

Extract the <user> from the <request: body>.
Log "Hello" to console.

Rules

  • Actions: No brackets, capitalized verb (e.g., Extract, Log, Return)
  • Results: Still use brackets with optional qualifier (e.g., <user>, <data: json>)
  • Simple objects: Brackets optional (e.g., console, user-repository)
  • Qualified objects: Brackets required (e.g., <request: body>, <env: PATH>)

Test plan

  • All 1199 tests pass
  • Examples run correctly with new syntax
  • Bare object syntax works with hyphenated identifiers
  • Qualified objects still require brackets

🤖 Generated with Claude Code

Breaking change: Actions are now written as capitalized identifiers
without angle brackets.

Before: <Extract> the <user> from <request>.
After:  Extract the <user> from <request>.

Changes:
- Parser now expects actions as capitalized identifiers (Extract, Log, Return, etc.)
- Publish and Require also drop angle brackets for consistency
- Testing keywords (when, then, assert) recognized as action verbs
- Fixed member access parsing to not confuse .Action with property access

Updated:
- 89 example files in Examples/
- 46 test files in Tests/
- 111 Book markdown files
- All Proposals
- cards/facts.yaml
- CLAUDE.md documentation
Adds backward-compatible support for bare identifiers as objects:
- `Log "Hello" to console.` (new)
- `Log "Hello" to the <console>.` (still works)
- `Store <data> into user-repository.` (hyphenated supported)

Qualified objects still require brackets:
- `Extract <data> from the <request: body>.`

Parser change reuses existing parseCompoundIdentifier() for hyphenated
identifier support. Adds 8 new tests for bare object syntax.
@KrisSimon KrisSimon changed the title Syntax improvements Simplify ARO syntax: remove brackets from actions, optional for objects Feb 18, 2026
- ErrorHandling: Add angle brackets to Throw result (results still need brackets)
- FileChecks: Add .exists keyword as valid action verb in parser
- HashPluginDemo: Remove angle brackets from DJB2 and FNV1a actions
- test-examples.pl: Update regex patterns for socket/file detection
  (Start the <socket-server> instead of <Start> the <socket-server>)

All 66 example tests now pass.
Add nav-toggle button and mobile-menu div to subpages that were
missing mobile navigation:
- getting-started.html
- fdd.html
- docs.html
- disclaimer.html
- imprint.html
- doc-template.html
- doc-template-nested.html
Rename isArticleFollowedByAngle() to isObjectPattern() and document
the semantic distinction:
- Article + <x> or bare identifier = object
- <x> without article = expression (variable reference)

This distinction is intentional and enables both object references
and variable expressions using similar syntax.
Remove angle brackets from action verbs to match the simplified
syntax: Set, Compute, Log, etc. instead of <Set>, <Compute>, <Log>.
Replace <Action> with Action throughout the website documentation:
- Set, Extract, Return, Log, Compute, Store, Retrieve, etc.

This matches the simplified syntax where action verbs no longer
require angle brackets.
- Update all code examples in LSP handlers to use actions without
  angle brackets (Extract instead of <Extract>)
- Update MCP tool and prompt providers with new syntax
- Fix SignatureHelpHandler regex to detect actions without brackets
- Update documentation strings to reflect syntax change
- Fix LSP test for signature help
Update VSCode and IntelliJ plugins to match the new ARO syntax where
actions are bare capitalized words (Extract, Log, Return) instead of
angle-bracketed (<Extract>, <Log>, <Return>).

Changes:
- Update TextMate grammar patterns in both plugins
- Update all code snippets and live templates
- Update README documentation and examples
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant