Cover five missing language constructs identified from comparison with
the existing tree-sitter-rune crate by zhuhaow:
- impl_item: impl blocks with optional name and visibility
- const_item: const declarations with visibility support
- try_expression: postfix ? operator at precedence 13
- loop_label/label: 'name: labels on loop/while/for, referenced in
break/continue
- object_pattern/object_pattern_entry: #{ key: pat } destructuring in
match with shorthand, string keys, and rest patterns
All 55 tests pass (28 existing + 27 new).
- Remove raw string handling from scanner, make scanner stateless
- Add template_content external token for backtick template scanning
- Add template_literal and interpolation grammar rules
- Add select_expression with select_arm for async select blocks
- Add object_literal (#{ key: value }) syntax
- Add is_expression and is_not_expression type check operators
- Verify yield_expression works as expected
Strip type system (generics, lifetimes, trait bounds, type annotations),
ownership/unsafe/extern rules, macro definitions, labels, shebang, and
simplify declarations (fn, struct, enum, let, closure) for Rune's
dynamically-typed model. Rename scanner symbols from rust to rune.