Updated tree-sitter grammar to match v0.3.0 LALRPOP parser: Grammar updates: - Schedule: block-based syntax with extends, override, recurrence - Life arc: requires clause for field validation - Template: uses behaviors/schedules syntax - Behavior: correct keywords (choose/then/repeat with optional params) - Type system: concept_comparison with any/is_condition - Removed concept semicolon requirement Query file updates: - highlights.scm: updated node names to *_declaration - outline.scm: updated for new declaration node names - indents.scm: updated node names, removed concept semicolon Corpus test updates: - Created schedules.txt with v0.3.0 syntax tests - Created highlights.txt for highlighting tests - Updated type_system.txt for v0.3.0 type syntax - Updated behaviors.txt for correct expression wrapping - Updated declarations.txt to use correct node names - Updated basic.txt to use character_declaration/character_body - Deleted obsolete v0.2.0 syntax tests Integration tests: - Added tree_sitter_integration.rs test suite - Fixed test_any_type to use correct v0.3.0 syntax - Fixed test_tree_sitter_grammar_builds to use generate command
59 lines
934 B
Plaintext
59 lines
934 B
Plaintext
==================
|
|
Simple character
|
|
==================
|
|
|
|
character Alice {
|
|
age: 7
|
|
}
|
|
|
|
---
|
|
|
|
(source_file
|
|
(declaration
|
|
(character_declaration
|
|
name: (identifier)
|
|
body: (character_body
|
|
(field
|
|
name: (dotted_path (identifier))
|
|
value: (value (integer)))))))
|
|
|
|
==================
|
|
Use declaration
|
|
==================
|
|
|
|
use schema::core::Item;
|
|
|
|
---
|
|
|
|
(source_file
|
|
(declaration
|
|
(use_declaration
|
|
(path_segments
|
|
(identifier)
|
|
(identifier)
|
|
(identifier)))))
|
|
|
|
==================
|
|
Prose block
|
|
==================
|
|
|
|
character Bob {
|
|
---backstory
|
|
This is Bob's story.
|
|
---
|
|
}
|
|
|
|
---
|
|
|
|
(source_file
|
|
(declaration
|
|
(character_declaration
|
|
name: (identifier)
|
|
body: (character_body
|
|
(field
|
|
(prose_block
|
|
marker: (prose_marker)
|
|
tag: (identifier)
|
|
content: (prose_content)
|
|
end: (prose_marker)))))))
|