1mod builtins;
2
3pub mod assembler;
4pub mod bytecode;
5pub mod compiler;
6pub mod debug_info;
7#[cfg(feature = "runtime")]
8pub mod debugger;
9#[cfg(feature = "runtime")]
10pub mod jit {
11 pub use crate::vm::jit::{
12 JitAttempt, JitCallSiteProfile, JitConfig, JitExitProfile, JitMetrics, JitNyiDoc,
13 JitNyiReason, JitSnapshot, JitTrace, JitTraceTerminal, TraceJitEngine,
14 };
15}
16#[cfg(feature = "cli")]
17pub mod cli;
18#[cfg(feature = "runtime")]
19pub mod vm;
20#[cfg(feature = "runtime")]
21pub mod vmbc;
22
23pub use assembler::{AsmParseError, Assembler, AssemblerError, BytecodeBuilder, assemble};
24#[cfg(feature = "runtime")]
25pub use builtins::runtime::print::{PrintHostFunction, PrintlnHostFunction, format_value};
26pub use builtins::{
27 BuiltinFunction, BuiltinNamespaceMemberSpec, BuiltinNamespaceSpec, CallableDef, CallableParam,
28 CallableParamType, CallableSignature, LanguageBuiltinSpec, builtin_namespace_specs,
29 callable_signatures_for_builtin_namespace_member, default_host_callables, is_builtin_namespace,
30 language_builtin_specs, resolve_builtin_namespace_call,
31};
32pub use bytecode::{
33 CallableEnvironment, CallableKind, CallablePrototype, CallableTarget, CallableValue,
34 CaptureBindingMode, ExportedCallable, FunctionRegion, HostImport, OpCode, Program,
35 RootCallableBinding, ScriptFunction, TypeMap, Value, ValueType,
36};
37pub fn builtin_call_index(name: &str) -> Option<u16> {
38 use builtins::BuiltinFunction;
39
40 match name {
41 "len" => Some(BuiltinFunction::Len.call_index()),
42 "slice" => Some(BuiltinFunction::Slice.call_index()),
43 "concat" => Some(BuiltinFunction::Concat.call_index()),
44 "get" => Some(BuiltinFunction::Get.call_index()),
45 "has" => Some(BuiltinFunction::Has.call_index()),
46 "set" => Some(BuiltinFunction::Set.call_index()),
47 "keys" => Some(BuiltinFunction::Keys.call_index()),
48 "string_contains" => Some(BuiltinFunction::StringContains.call_index()),
49 "string_replace_literal" => Some(BuiltinFunction::StringReplaceLiteral.call_index()),
50 "string_lower_ascii" => Some(BuiltinFunction::StringLowerAscii.call_index()),
51 "string_split_literal" => Some(BuiltinFunction::StringSplitLiteral.call_index()),
52 _ => BuiltinFunction::from_namespaced_name(name).map(|builtin| builtin.call_index()),
53 }
54}
55pub use compiler::diagnostics::{render_compile_error, render_source_error};
56pub use compiler::source_map::{LineSpanMapping, LoweredSource, SourceId, SourceMap, Span};
57pub use compiler::{
58 AssignmentKind, ClosureExpr, CompileError, CompileSourceFileOptions, CompiledProgram,
59 CompiledReplProgram, Compiler, Expr, FormatError, FrontendImportSyntax, FrontendIr,
60 FunctionDecl, ImportClause, InferredLocalTypeHint, LocalIrBuilder, LocalSlot, ModuleImport,
61 NamedImport, ParseError, ParserDialect, ReplLocalBinding, ReplLocalState, SharedParserOptions,
62 SourceError, SourceFlavor, SourcePathError, SourcePlugin, Stmt, UnknownInferredLocal,
63 collect_inferred_local_type_hints, collect_inferred_local_type_hints_at_path_with_options,
64 collect_inferred_local_type_hints_with_options, compile_source,
65 compile_source_at_path_with_flavor_and_options, compile_source_file,
66 compile_source_file_with_options, compile_source_for_repl, compile_source_for_repl_with_locals,
67 compile_source_for_repl_with_state, compile_source_with_flavor,
68 compile_source_with_flavor_and_options, format_source, format_source_with_flavor,
69 format_source_with_flavor_and_options, lint_trailing_function_return_semicolons,
70 lint_unknown_inferred_local_types, lint_unknown_inferred_local_types_at_path_with_options,
71 lint_unknown_inferred_local_types_with_options, lint_unknown_type_annotations,
72 parse_source_with_dialect,
73};
74pub use debug_info::{ArgInfo, DebugFunction, DebugInfo, LineInfo, LocalInfo};
75#[cfg(feature = "runtime")]
76pub use debugger::{
77 DebugCommandBridge, DebugCommandBridgeError, DebugCommandBridgeResponse,
78 DebugCommandBridgeStatus, Debugger, StepMode, VmRecording, VmRecordingError, VmRecordingFrame,
79 VmRecordingReplayResponse, VmRecordingReplayState, replay_recording_stdio,
80 run_recording_replay_command,
81};
82#[cfg(feature = "runtime")]
83pub use jit::{
84 JitAttempt, JitCallSiteProfile, JitConfig, JitExitProfile, JitMetrics, JitNyiDoc, JitNyiReason,
85 JitSnapshot, JitTrace, JitTraceTerminal, TraceJitEngine,
86};
87#[cfg(feature = "runtime")]
88pub use vm::diagnostics::render_vm_error;
89#[cfg(feature = "runtime")]
90pub use vm::{
91 AotArtifactError, CallOutcome, CallReturn, DEFAULT_MAX_SCRIPT_CALL_DEPTH, EpochCheckpoint,
92 EpochHandle, FuelCheckpoint, HostArgsFunction, HostAsyncBridge, HostBindingPlan, HostFunction,
93 HostFunctionRegistry, HostOpId, HostStackFunction, IntoScriptValue, QueuedScriptInvocation,
94 ScriptArgs, ScriptCallback, ScriptResult, StaticHostArgsFunction, StaticHostFunction,
95 StaticHostStackFunction, Store, Vm, VmError, VmResult, VmStatus, VmYieldReason,
96};
97#[cfg(feature = "runtime")]
98pub use vmbc::{
99 DisassembleOptions, ValidationError, WireError, decode_program, disassemble_program,
100 disassemble_program_with_options, disassemble_vmbc, disassemble_vmbc_with_options,
101 encode_program, infer_local_count, validate_program,
102};