lib/pluck/src/toplevel/context.zig

daab053ee43316e1809a84551d573ddd1e5bf3d2

  1 const std = @import("std");
  2 const alloc_arena = @import("alloc_arena");
  3 const pluck = @import("../root.zig");
  4 const Allocator = std.mem.Allocator;
  5 
  6 const pexpr = pluck.pexpr;
  7 const Definitions = pexpr.Definitions;
  8 const TypeRegistry = pexpr.TypeRegistry;
  9 
 10 const evaluator = pluck.evaluator;
 11 const IncrementalLPSMC = evaluator.IncrementalLPSMC;
 12 
 13 const bdd = pluck.bdd;
 14 const Manager = bdd.Manager;
 15 
 16 const query_context = pluck.query_context;
 17 const top_types = @import("types.zig");
 18 const config_owner = @import("config.zig");
 19 const lifecycle = @import("lifecycle.zig");
 20 const incremental = @import("incremental.zig");
 21 const definitions = @import("definitions.zig");
 22 const diagnostics = @import("diagnostics.zig");
 23 const forms = @import("forms.zig");
 24 const query = @import("query.zig");
 25 const script = @import("script.zig");
 26 const prepared = @import("prepared.zig");
 27 const source = @import("source.zig");
 28 
 29 const ToplevelConfig = config_owner.ToplevelConfig;
 30 pub const ToplevelContext = struct {
 31     allocator: Allocator,
 32     owns_shared: bool = true,
 33     owns_arena: bool = true,
 34 
 35     arena: *alloc_arena.Arena,
 36 
 37     query_arena: *alloc_arena.Arena,
 38 
 39     types: TypeRegistry,
 40 
 41     definitions: Definitions,
 42 
 43     manager: *Manager,
 44 
 45     config: ToplevelConfig,
 46 
 47     loading_stdlib: bool = false,
 48 
 49     last_query_constructor_typo: ?top_types.QueryConstructorTypo = null,
 50 
 51     current_source: ?[]const u8 = null,
 52 
 53     last_error_span: ?top_types.SourceSpan = null,
 54 
 55     incremental_lpsmc: ?*IncrementalLPSMC = null,
 56 
 57     const Self = @This();
 58 
 59     pub const QueryConstructorTypo: type = top_types.QueryConstructorTypo;
 60 
 61     const SharedContext: type = query_context.SharedContext;
 62     const QueryContext: type = query_context.QueryContext;
 63     const RunContext: type = query_context.RunContext;
 64     const QueryConfig: type = query_context.QueryConfig;
 65     const SessionConfig: type = query_context.SessionConfig;
 66 
 67     pub const QueryResultCallback: type = source.QueryResultCallback;
 68 
 69     pub const init = lifecycle.init;
 70     pub const initWorker = lifecycle.initWorker;
 71     pub const deinit = lifecycle.deinit;
 72     pub const setConfig = lifecycle.setConfig;
 73     pub const patchConfig = lifecycle.patchConfig;
 74     pub const asSharedContext = lifecycle.asSharedContext;
 75     pub const createQueryContext = lifecycle.createQueryContext;
 76     pub const reset = lifecycle.reset;
 77 
 78     pub const enableIncrementalLPSMC = incremental.enableIncrementalLPSMC;
 79     pub const disableIncrementalLPSMC = incremental.disableIncrementalLPSMC;
 80     pub const isIncrementalLPSMCEnabled = incremental.isIncrementalLPSMCEnabled;
 81     pub const getIncrementalLPSMC = incremental.getIncrementalLPSMC;
 82     pub const getLPSMCVarianceStats = incremental.getLPSMCVarianceStats;
 83     pub const getLpsmcRunStats = incremental.getLpsmcRunStats;
 84     pub const refinementAffectsPathChoices = incremental.refinementAffectsPathChoices;
 85     pub const invalidateForRefinement = incremental.invalidateForRefinement;
 86     pub const clearLPSMCCaches = incremental.clearLPSMCCaches;
 87 
 88     pub const clearUserDefinitions = definitions.clearUserDefinitions;
 89     pub const removeUserDefinition = definitions.removeUserDefinition;
 90     pub const isDefined = definitions.isDefined;
 91     pub const lookup = definitions.lookup;
 92     pub const define = definitions.define;
 93     pub const defineWithDoc = definitions.defineWithDoc;
 94     pub const defineWithDocTrackChange = definitions.defineWithDocTrackChange;
 95 
 96     pub const formatParseError = diagnostics.formatParseError;
 97     pub const formatError = diagnostics.formatError;
 98     pub const lastErrorSpan = diagnostics.lastErrorSpan;
 99     pub const formatToplevelError = diagnostics.formatToplevelError;
100 
101     pub const processForm = forms.processForm;
102     pub const runQueryExpr = query.runQueryExpr;
103     pub const parseSourceForms = script.parseSourceForms;
104     pub const executeSource = script.executeSource;
105     pub const prepareQuery = prepared.prepareQuery;
106     pub const runPreparedQuery = prepared.runPreparedQuery;
107 
108     pub const loadFile = source.loadFile;
109     pub const loadFileWithWriter = source.loadFileWithWriter;
110     pub const processSource = source.processSource;
111     pub const processSourceSexprNoWriter = source.processSourceSexprNoWriter;
112     pub const processSourceWithWriter = source.processSourceWithWriter;
113     pub const processSourceWithCallback = source.processSourceWithCallback;
114     pub const processSourceSexprWithWriter = source.processSourceSexprWithWriter;
115     pub const processSourceSexprWithCallback = source.processSourceSexprWithCallback;
116 };