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, JitConfig, JitMetrics, JitNyiDoc, JitNyiReason, JitSnapshot, JitTrace,
13 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::{HostImport, OpCode, Program, TypeMap, Value, ValueType};
33pub fn builtin_call_index(name: &str) -> Option<u16> {
34 use builtins::BuiltinFunction;
35
36 match name {
37 "len" => Some(BuiltinFunction::Len.call_index()),
38 "slice" => Some(BuiltinFunction::Slice.call_index()),
39 "concat" => Some(BuiltinFunction::Concat.call_index()),
40 "get" => Some(BuiltinFunction::Get.call_index()),
41 "has" => Some(BuiltinFunction::Has.call_index()),
42 "set" => Some(BuiltinFunction::Set.call_index()),
43 "keys" => Some(BuiltinFunction::Keys.call_index()),
44 "string_contains" => Some(BuiltinFunction::StringContains.call_index()),
45 "string_replace_literal" => Some(BuiltinFunction::StringReplaceLiteral.call_index()),
46 "string_lower_ascii" => Some(BuiltinFunction::StringLowerAscii.call_index()),
47 "string_split_literal" => Some(BuiltinFunction::StringSplitLiteral.call_index()),
48 _ => BuiltinFunction::from_namespaced_name(name).map(|builtin| builtin.call_index()),
49 }
50}
51pub use compiler::diagnostics::{render_compile_error, render_source_error};
52pub use compiler::source_map::{LineSpanMapping, LoweredSource, SourceId, SourceMap, Span};
53pub use compiler::{
54 AssignmentKind, ClosureExpr, CompileError, CompileSourceFileOptions, CompiledProgram,
55 CompiledReplProgram, Compiler, Expr, FormatError, FrontendImportSyntax, FrontendIr,
56 FunctionDecl, ImportClause, InferredLocalTypeHint, LocalIrBuilder, LocalSlot, ModuleImport,
57 NamedImport, ParseError, ParserDialect, ReplLocalBinding, ReplLocalState, SharedParserOptions,
58 SourceError, SourceFlavor, SourcePathError, SourcePlugin, Stmt, UnknownInferredLocal,
59 collect_inferred_local_type_hints, collect_inferred_local_type_hints_at_path_with_options,
60 collect_inferred_local_type_hints_with_options, compile_source,
61 compile_source_at_path_with_flavor_and_options, compile_source_file,
62 compile_source_file_with_options, compile_source_for_repl, compile_source_for_repl_with_locals,
63 compile_source_for_repl_with_state, compile_source_with_flavor,
64 compile_source_with_flavor_and_options, format_source, format_source_with_flavor,
65 format_source_with_flavor_and_options, lint_trailing_function_return_semicolons,
66 lint_unknown_inferred_local_types, lint_unknown_inferred_local_types_at_path_with_options,
67 lint_unknown_inferred_local_types_with_options, lint_unknown_type_annotations,
68 parse_source_with_dialect,
69};
70pub use debug_info::{ArgInfo, DebugFunction, DebugInfo, LineInfo, LocalInfo};
71#[cfg(feature = "runtime")]
72pub use debugger::{
73 DebugCommandBridge, DebugCommandBridgeError, DebugCommandBridgeResponse,
74 DebugCommandBridgeStatus, Debugger, StepMode, VmRecording, VmRecordingError, VmRecordingFrame,
75 VmRecordingReplayResponse, VmRecordingReplayState, replay_recording_stdio,
76 run_recording_replay_command,
77};
78#[cfg(feature = "runtime")]
79pub use jit::{
80 JitAttempt, JitConfig, JitMetrics, JitNyiDoc, JitNyiReason, JitSnapshot, JitTrace,
81 JitTraceTerminal, TraceJitEngine,
82};
83#[cfg(feature = "runtime")]
84pub use vm::diagnostics::render_vm_error;
85#[cfg(feature = "runtime")]
86pub use vm::{
87 AotArtifactError, CallOutcome, CallReturn, EpochCheckpoint, EpochHandle, FuelCheckpoint,
88 HostArgsFunction, HostAsyncBridge, HostBindingPlan, HostFunction, HostFunctionRegistry,
89 HostOpId, HostStackFunction, StaticHostArgsFunction, StaticHostFunction,
90 StaticHostStackFunction, Store, Vm, VmError, VmResult, VmStatus, VmYieldReason,
91};
92#[cfg(feature = "runtime")]
93pub use vmbc::{
94 DisassembleOptions, ValidationError, WireError, decode_program, disassemble_program,
95 disassemble_program_with_options, disassemble_vmbc, disassemble_vmbc_with_options,
96 encode_program, infer_local_count, validate_program,
97};