Crate plotnik_lib

Crate plotnik_lib 

Source
Expand description

Plotnik: Query language for tree-sitter AST with type inference.

§Example

use plotnik_lib::Query;

let source = r#"
    Expr = [(identifier) (number)]
    (assignment left: (Expr) @lhs right: (Expr) @rhs)
"#;

let query = Query::try_from(source).expect("out of fuel");
eprintln!("{}", query.diagnostics().render(query.source_map()));

Re-exports§

pub use colors::Colors;
pub use diagnostics::Diagnostics;
pub use diagnostics::DiagnosticsPrinter;
pub use diagnostics::Severity;
pub use diagnostics::Span;
pub use query::Query;
pub use query::QueryBuilder;
pub use query::SourceId;
pub use query::SourceMap;

Modules§

analyze
Semantic analysis passes.
bytecode
Bytecode module for compiled Plotnik queries.
colors
ANSI color codes for terminal output.
compile
Thompson-like NFA construction for query compilation.
diagnostics
emit
Bytecode emission from compiled queries.
engine
Runtime engine for executing compiled Plotnik queries.
parser
Parser infrastructure for the query language.
query
Query facade for Plotnik compilation.
type_system
Core type system definitions shared between analysis and bytecode.
typegen
Type declaration generation from compiled bytecode.

Enums§

Error
Errors that can occur during query parsing.

Type Aliases§

PassResult
Result type for analysis passes that produce both output and diagnostics.
Result
Result type for query operations.