svelte-syntax 0.1.1

Lightweight syntax-layer crate for the Rust Svelte toolchain
Documentation

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>(())