Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions crates/plotnik-lib/src/analyze/link.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@ use super::visitor::{Visitor, walk};
use crate::diagnostics::{DiagnosticKind, Diagnostics};
use crate::parser::ast::{self, Expr, NamedNode};
use crate::parser::{SyntaxKind, SyntaxToken, token_src};
use crate::query::query::AstMap;
use crate::query::source_map::{SourceId, SourceMap};
use crate::query::{AstMap, SourceId, SourceMap};

/// Link query against a language grammar.
///
Expand Down
2 changes: 1 addition & 1 deletion crates/plotnik-lib/src/analyze/recursion.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ use super::visitor::{Visitor, walk_expr, walk_named_node};
use crate::Diagnostics;
use crate::diagnostics::DiagnosticKind;
use crate::parser::{AnonymousNode, Def, Expr, NamedNode, Ref, Root, SeqExpr};
use crate::query::source_map::SourceId;
use crate::query::SourceId;

/// Validate recursion using the pre-computed dependency analysis.
pub fn validate_recursion(
Expand Down
2 changes: 1 addition & 1 deletion crates/plotnik-lib/src/analyze/symbol_table.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use crate::diagnostics::DiagnosticKind;
use crate::parser::{Root, ast, token_src};

use super::visitor::Visitor;
use crate::query::source_map::{SourceId, SourceMap};
use crate::query::{SourceId, SourceMap};

/// Sentinel name for unnamed definitions (bare expressions at root level).
/// Code generators can emit whatever name they want for this.
Expand Down
2 changes: 1 addition & 1 deletion crates/plotnik-lib/src/analyze/type_check/infer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ use crate::parser::{
AltExpr, AltKind, AnonymousNode, CapturedExpr, Def, Expr, FieldExpr, NamedNode, QuantifiedExpr,
Ref, Root, SeqExpr, SyntaxKind, is_truly_empty_scope,
};
use crate::query::source_map::SourceId;
use crate::query::SourceId;

/// Type annotation kind from `@capture :: Type` syntax.
///
Expand Down
2 changes: 1 addition & 1 deletion crates/plotnik-lib/src/analyze/type_check/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ use crate::analyze::dependencies::DependencyAnalysis;
use crate::analyze::symbol_table::{SymbolTable, UNNAMED_DEF};
use crate::diagnostics::Diagnostics;
use crate::parser::Root;
use crate::query::source_map::SourceId;
use crate::query::SourceId;

/// Run type inference on all definitions.
///
Expand Down
2 changes: 1 addition & 1 deletion crates/plotnik-lib/src/emit/emitter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ use crate::bytecode::{
Entrypoint, FieldSymbol, Header, NodeSymbol, SECTION_ALIGN, TriviaEntry, TypeMetaHeader,
};
use crate::compile::Compiler;
use crate::query::query::LinkedQuery;
use crate::query::LinkedQuery;

use super::EmitError;
use super::layout::CacheAligned;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
use crate::Query;
use crate::query::query::QueryBuilder;
use crate::{Query, query::QueryBuilder};
use indoc::indoc;

#[test]
Expand Down
22 changes: 11 additions & 11 deletions crates/plotnik-lib/src/query/mod.rs
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
//! Query facade for Plotnik compilation.

mod dump;
mod printer;
pub mod source_map;

pub use printer::QueryPrinter;
pub use query::{Query, QueryBuilder, QueryContext};
pub use source_map::{SourceId, SourceMap};

#[allow(clippy::module_inception)]
pub mod query;

// Re-export from analyze/ for backwards compatibility
pub use crate::analyze::SymbolTable;
mod source_map;
mod stages;

#[cfg(test)]
mod printer_tests;
#[cfg(test)]
mod query_tests;
#[cfg(test)]
mod source_map_tests;

// Public API
pub use printer::QueryPrinter;
pub use source_map::{Source, SourceId, SourceKind, SourceMap};
pub use stages::{
AstMap, LinkedQuery, Query, QueryAnalyzed, QueryBuilder, QueryConfig, QueryContext, QueryParsed,
};
5 changes: 2 additions & 3 deletions crates/plotnik-lib/src/query/printer.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
//! AST/CST pretty-printer for debugging and test snapshots.

use std::collections::HashMap;
use std::fmt::Write;

use indexmap::IndexSet;
Expand All @@ -8,7 +9,7 @@ use rowan::NodeOrToken;
use crate::parser::{self as ast, SyntaxNode};

use super::Query;
use super::source_map::SourceKind;
use super::SourceKind;
use crate::analyze::type_check::Arity;

/// Returns indentation string for the given level.
Expand Down Expand Up @@ -111,8 +112,6 @@ impl<'q> QueryPrinter<'q> {
}

fn format_symbols(&self, w: &mut impl Write) -> std::fmt::Result {
use std::collections::HashMap;

let symbols = &self.query.symbol_table;
if symbols.is_empty() {
return Ok(());
Expand Down
8 changes: 3 additions & 5 deletions crates/plotnik-lib/src/query/query_tests.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
use plotnik_langs::{Lang, from_name};

use crate::{
SourceMap,
bytecode::Module,
query::query::{LinkedQuery, QueryAnalyzed, QueryBuilder},
};
use crate::{SourceMap, bytecode::Module};

use super::{LinkedQuery, QueryAnalyzed, QueryBuilder};

fn javascript() -> Lang {
from_name("javascript").expect("javascript lang")
Expand Down
2 changes: 1 addition & 1 deletion crates/plotnik-lib/src/query/source_map_tests.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use super::source_map::{SourceId, SourceKind, SourceMap};
use super::{SourceId, SourceKind, SourceMap};

#[test]
fn single_one_liner() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ use indexmap::IndexMap;
use plotnik_core::{Interner, NodeFieldId, NodeTypeId, Symbol};
use plotnik_langs::Lang;

use super::{SourceId, SourceMap};
use crate::Diagnostics;
use crate::analyze::link;
use crate::analyze::symbol_table::{SymbolTable, resolve_names};
use crate::analyze::type_check::{self, Arity, TypeContext};
use crate::analyze::validation::{validate_alt_kinds, validate_anchors};
use crate::analyze::{dependencies, validate_recursion};
use crate::parser::{Parser, Root, SyntaxNode, lex};
use crate::query::source_map::{SourceId, SourceMap};

const DEFAULT_QUERY_PARSE_FUEL: u32 = 1_000_000;
const DEFAULT_QUERY_PARSE_MAX_DEPTH: u32 = 4096;
Expand Down