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§
- Pass
Result - Result type for analysis passes that produce both output and diagnostics.
- Result
- Result type for query operations.