Skip to content

feat(parser): add PUBLISH/SUBSCRIBE/UNSUBSCRIBE and DEFINE EVENT parsing#30

Merged
LostRhapsody merged 1 commit intomasterfrom
feat/publish-subscribe
Apr 10, 2026
Merged

feat(parser): add PUBLISH/SUBSCRIBE/UNSUBSCRIBE and DEFINE EVENT parsing#30
LostRhapsody merged 1 commit intomasterfrom
feat/publish-subscribe

Conversation

@LostRhapsody
Copy link
Copy Markdown
Contributor

Implement full parsing support for ABL's event system:

  • Named event statements: PUBLISH, SUBSCRIBE, UNSUBSCRIBE
  • Class event declaration: DEFINE EVENT with SIGNATURE VOID(...)
  • 7 new keywords via codegen (PUBLISH, SUBSCRIBE, UNSUBSCRIBE, ANYWHERE, EVENT, SIGNATURE, RUN-PROCEDURE)
  • Hand-rolled event-name parser to avoid function-call ambiguity
  • Shared parse_run_arguments() helper extracted for reuse
  • SubscribeTarget enum for required IN/ANYWHERE choice
  • 19 new tests covering all syntax variants + disambiguation

Implement full parsing support for ABL's event system:
- Named event statements: PUBLISH, SUBSCRIBE, UNSUBSCRIBE
- Class event declaration: DEFINE EVENT with SIGNATURE VOID(...)
- 7 new keywords via codegen (PUBLISH, SUBSCRIBE, UNSUBSCRIBE, ANYWHERE, EVENT, SIGNATURE, RUN-PROCEDURE)
- Hand-rolled event-name parser to avoid function-call ambiguity
- Shared parse_run_arguments() helper extracted for reuse
- SubscribeTarget enum for required IN/ANYWHERE choice
- 19 new tests covering all syntax variants + disambiguation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@codspeed-hq
Copy link
Copy Markdown
Contributor

codspeed-hq bot commented Apr 10, 2026

Merging this PR will improve performance by 10.69%

⚠️ Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 1 improved benchmark
✅ 14 untouched benchmarks

Performance Changes

Benchmark BASE HEAD Efficiency
temp_tables 177.5 µs 160.3 µs +10.69%

Comparing feat/publish-subscribe (233af8c) with master (ae26e42)

Open in CodSpeed

@LostRhapsody LostRhapsody merged commit 4eb3af4 into master Apr 10, 2026
6 checks passed
@LostRhapsody LostRhapsody deleted the feat/publish-subscribe branch April 10, 2026 01:41
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