Syntax-only Svelte parsing utilities.
This crate exposes the Svelte AST, CST, and parser entrypoints without the
compiler pipeline.
Examples
Parse a component into the public AST:
use svelte_syntax::{parse, ParseMode, ParseOptions};
let document = parse(
"<script>let count = 0;</script><button>{count}</button>",
ParseOptions {
mode: ParseMode::Modern,
..ParseOptions::default()
},
)?;
assert!(matches!(document.root, svelte_syntax::ast::Root::Modern(_)));
# Ok::<(), svelte_syntax::CompileError>(())
Parse raw source into a tree-sitter CST:
use svelte_syntax::{SourceId, SourceText, parse_svelte};
let source = SourceText::new(SourceId::new(0), "<div class='greeting'>hi</div>", None);
let cst = parse_svelte(source)?;
assert_eq!(cst.root_kind(), "document");
# Ok::<(), svelte_syntax::CompileError>(())