Added grammar rules for v0.3 type system declarations: - concept_declaration: semicolon-terminated base type - sub_concept: enum and record forms with dot notation - concept_comparison: nested pattern matching with variant_pattern - any_type: named node for the 'any' keyword - template species extension: optional ': Species' syntax Updated query files: - highlights.scm: new keywords and named field highlights - outline.scm: concept/sub_concept/concept_comparison in outline - indents.scm: indentation for new brace-delimited nodes Fixed pre-existing query issues: - Replaced invalid repeat_node reference with decorator_node - Removed invalid '?' punctuation reference Added comprehensive test corpus (type_system.txt) covering: - concept declaration (simple and multiple) - sub_concept enum and record forms - concept_comparison with any/is conditions - template with species extension - full combined example
tree-sitter-storybook
Tree-sitter grammar for the Storybook narrative DSL.
Overview
This is a Tree-sitter grammar for Storybook, a domain-specific language for narrative design and character development. The grammar provides syntax highlighting, code navigation, and other editor features through Tree-sitter.
Features
- Syntax highlighting for all Storybook constructs
- Symbol outline for navigating characters, templates, relationships, etc.
- Bracket matching including special handling for prose blocks
- Auto-indentation support
Installation
For development
# Install dependencies
npm install
# Generate parser
npm run build
# Run tests
npm run test
For Zed editor
This grammar is integrated into the Zed Storybook extension. See the zed-storybook directory for the extension.
Grammar Structure
The grammar supports the following top-level declarations:
use- Import statementscharacter- Character definitionstemplate- Reusable field templateslife_arc- State machines for character developmentschedule- Daily schedules and routinesbehavior- Behavior trees for AIinstitution- Organizations and groupsrelationship- Multi-party relationshipslocation- Places and settingsspecies- Species definitions with templatesenum- Enumeration types
Special Features
Prose Blocks
The grammar includes an external scanner (written in C) to handle prose blocks:
---backstory
This is a prose block that can contain
multiple lines of narrative text.
---
Expression Support
Full support for expressions in life arc transitions:
on self.age >= 18 and self.location is wonderland -> adult_state
Testing
The grammar includes comprehensive tests. Run them with:
tree-sitter test
To test parsing a specific file:
tree-sitter parse path/to/file.sb
License
MIT