mirror of
https://github.com/erg-lang/erg.git
synced 2025-09-29 12:24:45 +00:00
55 lines
2 KiB
Rust
55 lines
2 KiB
Rust
use erg_common::vis::Visibility;
|
|
|
|
use crate::ty::constructors::{array_mut, array_t, func0, func1, mono, proc1};
|
|
use crate::ty::typaram::TyParam;
|
|
use crate::ty::Type;
|
|
use Type::*;
|
|
|
|
use crate::context::Context;
|
|
use crate::varinfo::Mutability;
|
|
use Mutability::*;
|
|
use Visibility::*;
|
|
|
|
impl Context {
|
|
pub(crate) fn init_py_sys_mod() -> Self {
|
|
let mut sys = Context::builtin_module("sys", 15);
|
|
sys.register_builtin_impl(
|
|
"argv",
|
|
array_t(Str, TyParam::erased(Nat)),
|
|
Immutable,
|
|
Public,
|
|
);
|
|
sys.register_builtin_impl("byteorder", Str, Immutable, Public);
|
|
sys.register_builtin_impl(
|
|
"builtin_module_names",
|
|
array_t(Str, TyParam::erased(Nat)),
|
|
Immutable,
|
|
Public,
|
|
);
|
|
sys.register_builtin_impl("copyright", Str, Immutable, Public);
|
|
sys.register_builtin_impl("executable", Str, Immutable, Public);
|
|
sys.register_builtin_impl("exit", func1(Int, Never), Immutable, Public);
|
|
sys.register_builtin_impl("getdefaultencoding", func0(Str), Immutable, Public);
|
|
sys.register_builtin_impl(
|
|
"path",
|
|
array_mut(Str, TyParam::erased(Nat)),
|
|
Immutable,
|
|
Public,
|
|
);
|
|
sys.register_builtin_impl("platform", Str, Immutable, Public);
|
|
sys.register_builtin_impl("prefix", Str, Immutable, Public);
|
|
sys.register_builtin_impl("ps1", mono("Str!"), Immutable, Public);
|
|
sys.register_builtin_impl("ps2", mono("Str!"), Immutable, Public);
|
|
sys.register_builtin_impl(
|
|
"setrecursionlimit!",
|
|
proc1(Int, NoneType),
|
|
Immutable,
|
|
Public,
|
|
);
|
|
sys.register_builtin_impl("stderr", mono("TextIOWrapper!"), Immutable, Public);
|
|
sys.register_builtin_impl("stdin", mono("TextIOWrapper!"), Immutable, Public);
|
|
sys.register_builtin_impl("stdout", mono("TextIOWrapper!"), Immutable, Public);
|
|
sys.register_builtin_impl("version", Str, Immutable, Public);
|
|
sys
|
|
}
|
|
}
|