Skip to main content

submilli_engine/
lib.rs

1//! Submilli interpreter library.
2//!
3
4pub mod arena;
5pub(crate) mod artifact_f64;
6pub mod asi;
7pub mod ast;
8pub mod authority;
9pub mod backtrace;
10pub mod capability_derivation;
11pub mod codegen;
12pub mod compile;
13mod compile_capabilities;
14pub mod compiler_error;
15pub mod compiler_limits;
16pub mod diagnostics;
17pub mod did_you_mean;
18pub mod doc_comment;
19pub mod doc_directives;
20pub mod docs_view;
21pub mod lexer;
22pub(crate) mod literal_units;
23pub mod lower_patterns;
24pub mod mangle;
25pub mod package_config;
26pub mod package_declaration;
27pub mod packages;
28pub mod parser;
29pub mod rendering;
30pub mod runtime;
31pub mod shape;
32pub mod source;
33mod source_validation;
34pub mod span;
35pub mod stdlib;
36pub mod token;
37pub mod tree_height;
38pub mod type_info;
39mod type_rendering;
40pub mod type_size;
41mod type_walk;
42pub mod typechecker;
43pub mod typed_ast;
44pub mod types;
45
46pub use asi::Asi;
47pub use ast::{
48    AccessorKind, ArrayLiteralElement, ArrowBody, Ast, BinOp, Binding, BindingKind, CatchClause,
49    ChainPart, ClassMember, ClassModifiers, EnumInitializer, EnumMember, ExportedDecl, Expr,
50    ExprId, ExprKind, Ident, ImportKind, ImportSpecifier, IndexSignatureAnnotation,
51    InterfaceMember, ObjectLiteralField, ObjectLiteralMember, ObjectPatternField, ParamDecl,
52    PatternOrigin, PostfixOp, Stmt, StmtId, StmtKind, SwitchCase, SwitchDefault, TypeAnnotation,
53    TypeAnnotationField, TypeAnnotationKind, TypePredicateAnnotation, UnOp, Visibility,
54};
55pub use authority::{
56    AuthorityCallable, AuthorityCallableKind, AuthorityCheck, AuthorityEdge, AuthorityEffect,
57    AuthorityExposure, AuthorityMap, AuthorityPosition, AuthorityRoute, AuthorityRouteEffect,
58    AuthoritySpan, AuthorityWitnessStep,
59};
60pub use backtrace::{BacktraceMode, failure_message, render as render_backtrace};
61pub use capability_derivation::{DerivedCapability, derive_call_site_capability};
62pub use codegen::{SymbolTable, codegen};
63pub use compile::{
64    CompiledPackage, CompiledScript, PackageSourceModule, PackageSurface, PackageTestSurface,
65    ParsedScript, PhaseTimings, ScriptImports, compile_package, compile_package_test,
66    compile_package_with_transitive, compile_parsed_script_timed, compile_script,
67    compile_script_owned_by, parse_script, typecheck, typecheck_package_to_typed_ast,
68    typecheck_to_typed_ast,
69};
70pub use diagnostics::{Diagnostic, Severity};
71pub use doc_comment::{
72    DocCapability, DocCapabilityBinding, DocCapabilityBindingKind, DocCapabilityDiagnostic,
73    DocCapabilityLiteral, DocComment, DocParam, DocReturns, DocText, DocUnknownTag, RawDoc, doc,
74    parse_doc_comment,
75};
76pub use lexer::Lexer;
77pub use lower_patterns::lower as lower_patterns;
78pub use mangle::MangledName;
79pub use package_declaration::{
80    AccessorSig, ClassExtends, DefaultValue, Dispatch, EnumVariantValue, FieldSig, MethodSig,
81    NamespaceSymbol, PackageDeclaration, Param, PropertySig, RuntimeFunction, TypeKind, TypeSymbol,
82    ValueKind, ValueSymbol, VirtualDispatch,
83};
84pub use parser::parse;
85pub use runtime::{RunResult, RuntimeConfig, dispatch_main_async, instantiate_program_async};
86pub use shape::Shape;
87pub use source::{ModulePath, SourceFile, Sources};
88pub use span::{FileId, LineIndex, Span};
89pub use stdlib::{OptionalPackage, Stdlib};
90pub use token::{Token, TokenKind};
91pub use type_info::{FieldInfo, TypeInfo, TypeInfoId, TypeInfoIndex, TypeInfoKind, TypeInfoTable};
92pub use typechecker::{capability_binding_type, capture, check, desugar, infer, infer_package};
93pub use typed_ast::{
94    CapturedVar, ClosureBody, EnumVariantPayload, ExportEntry, ExportKind, FieldNarrowingCheck,
95    FieldNarrowingTest, ForOfKind, GenericArgument, GlobalKind, InterfaceCarrier,
96    InterfaceNarrowingTest, InternalModuleExports, Intrinsic, PostfixTarget, TypedArrayElement,
97    TypedAst, TypedCatchClause, TypedChainPart, TypedClassAccessor, TypedClassConstructor,
98    TypedClassDecl, TypedClassField, TypedClassMethod, TypedExpr, TypedExprKind, TypedFunction,
99    TypedGlobal, TypedInterfaceDecl, TypedInterfaceMember, TypedNumberEnumDecl,
100    TypedNumberEnumMember, TypedObjectFieldOrigin, TypedObjectFieldSource, TypedObjectLiteralField,
101    TypedObjectMember, TypedParam, TypedStmt, TypedStmtKind, TypedStringEnumDecl,
102    TypedStringEnumMember, TypedSwitchCase, TypedSwitchValue, TypedTypeAliasDecl, TypedTypeDecl,
103    TypeofTagKind,
104};
105pub use types::{IndexSignature, ObjectField, Package, TupleType, Type, TypePredicate};