Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Feature Flags

Sipha uses feature flags to enable optional functionality.

Backend Features

backend-ll

Enable LL(k) parser backend (default).

[dependencies]
sipha = { version = "0.5.0", features = ["backend-ll"] }

backend-lr

Enable LR parser backend.

[dependencies]
sipha = { version = "0.5.0", features = ["backend-lr"] }

backend-glr

Enable GLR parser backend (requires backend-lr).

[dependencies]
sipha = { version = "0.5.0", features = ["backend-lr", "backend-glr"] }

Optional Features

diagnostics

Enable rich error diagnostics with miette.

[dependencies]
sipha = { version = "0.5.0", features = ["diagnostics"] }

unicode

Enable full Unicode support for identifiers.

[dependencies]
sipha = { version = "0.5.0", features = ["unicode"] }

visitor

Enable syntax tree visitor patterns.

[dependencies]
sipha = { version = "0.5.0", features = ["visitor"] }

query

Enable XPath-like query API for syntax trees.

[dependencies]
sipha = { version = "0.5.0", features = ["query"] }

tree-utils

Enable tree diffing and validation utilities.

[dependencies]
sipha = { version = "0.5.0", features = ["tree-utils"] }

Feature Combinations

Minimal

[dependencies]
sipha = "0.5.0"  # Only backend-ll

Full

[dependencies]
sipha = { 
    version = "0.5.0", 
    features = [
        "backend-ll",
        "backend-lr",
        "backend-glr",
        "diagnostics",
        "unicode",
        "visitor",
        "query",
        "tree-utils",
    ]
}

Language Server

[dependencies]
sipha = { 
    version = "0.5.0", 
    features = [
        "backend-ll",
        "diagnostics",
        "visitor",
        "query",
    ]
}

Default Features

By default, only backend-ll is enabled.

Next Steps