mirror of
https://github.com/erg-lang/erg.git
synced 2025-08-04 10:49:54 +00:00
feat: add some object
methods
This commit is contained in:
parent
2887a77f70
commit
e220381fa2
3 changed files with 48 additions and 0 deletions
|
@ -63,6 +63,26 @@ impl Context {
|
|||
8,
|
||||
);
|
||||
obj.register_py_builtin(FUNDAMENTAL_STR, fn0_met(Obj, Str), Some(FUNDAMENTAL_STR), 9);
|
||||
obj.register_py_builtin(FUNDAMENTAL_CLASS, ClassType, Some(FUNDAMENTAL_CLASS), 10);
|
||||
obj.register_py_builtin(FUNDAMENTAL_DOC, ClassType, Some(FUNDAMENTAL_DOC), 11);
|
||||
obj.register_py_builtin(
|
||||
FUNDAMENTAL_DIR,
|
||||
fn0_met(Obj, unknown_len_list_t(Str)),
|
||||
Some(FUNDAMENTAL_GETATTRIBUTE),
|
||||
12,
|
||||
);
|
||||
obj.register_py_builtin(
|
||||
FUNDAMENTAL_GETATTRIBUTE,
|
||||
fn1_met(Obj, Str, Obj),
|
||||
Some(FUNDAMENTAL_GETATTRIBUTE),
|
||||
13,
|
||||
);
|
||||
obj.register_py_builtin(
|
||||
FUNDAMENTAL_FORMAT,
|
||||
fn1_met(Obj, Str, Str),
|
||||
Some(FUNDAMENTAL_FORMAT),
|
||||
14,
|
||||
);
|
||||
// Obj does not implement Eq
|
||||
let mut complex = Self::builtin_mono_class(COMPLEX, 2);
|
||||
complex.register_superclass(Obj, &obj);
|
||||
|
@ -885,6 +905,20 @@ impl Context {
|
|||
Some(FUNC_ENCODE),
|
||||
60,
|
||||
);
|
||||
str_.register_py_builtin(FUNC_CASEFOLD, fn0_met(Str, Str), Some(FUNC_CASEFOLD), 23);
|
||||
str_.register_py_builtin(
|
||||
FUNC_CENTER,
|
||||
fn_met(
|
||||
Str,
|
||||
vec![kw(KW_WIDTH, Nat)],
|
||||
None,
|
||||
vec![kw(KW_FILLCHAR, Str)],
|
||||
None,
|
||||
Str,
|
||||
),
|
||||
Some(FUNC_CENTER),
|
||||
33,
|
||||
);
|
||||
str_.register_builtin_erg_impl(
|
||||
FUNC_FORMAT,
|
||||
fn_met(
|
||||
|
|
|
@ -178,6 +178,8 @@ const MUT_BOOL: &str = "Bool!";
|
|||
const STR: &str = "Str";
|
||||
const MUT_STR: &str = "Str!";
|
||||
const FUNC_REPLACE: &str = "replace";
|
||||
const FUNC_CASEFOLD: &str = "casefold";
|
||||
const FUNC_CENTER: &str = "center";
|
||||
const FUNC_ENCODE: &str = "encode";
|
||||
const FUNC_FORMAT: &str = "format";
|
||||
const FUNC_LOWER: &str = "lower";
|
||||
|
@ -585,6 +587,11 @@ const FUNDAMENTAL_FILE: &str = "__file__";
|
|||
const FUNDAMENTAL_PACKAGE: &str = "__package__";
|
||||
const FUNDAMENTAL_HASH: &str = "__hash__";
|
||||
const FUNDAMENTAL_STR: &str = "__str__";
|
||||
const FUNDAMENTAL_GETATTRIBUTE: &str = "__getattribute__";
|
||||
const FUNDAMENTAL_CLASS: &str = "__class__";
|
||||
const FUNDAMENTAL_DOC: &str = "__doc__";
|
||||
const FUNDAMENTAL_DIR: &str = "__dir__";
|
||||
const FUNDAMENTAL_FORMAT: &str = "__format__";
|
||||
const FUNDAMENTAL_INT: &str = "__int__";
|
||||
const FUNDAMENTAL_BOOL: &str = "__bool__";
|
||||
const FUNDAMENTAL_FLOAT: &str = "__float__";
|
||||
|
@ -668,6 +675,8 @@ const KW_PAT: &str = "pat";
|
|||
const KW_INTO: &str = "into";
|
||||
const KW_ENCODING: &str = "encoding";
|
||||
const KW_ERRORS: &str = "errors";
|
||||
const KW_FILLCHAR: &str = "fillchar";
|
||||
const KW_WIDTH: &str = "width";
|
||||
const KW_ARGS: &str = "args";
|
||||
const KW_KWARGS: &str = "kwargs";
|
||||
const KW_IDX: &str = "idx";
|
||||
|
|
|
@ -7,3 +7,8 @@
|
|||
__repr__: (self: .Obj) -> Str
|
||||
__sizeof__: (self: .Obj) -> Nat
|
||||
__str__: (self: .Obj) -> Str
|
||||
__class__: ClassType
|
||||
__doc__: Str
|
||||
__dir__: (self: .Obj) -> [Str; _]
|
||||
__getattribute__: (self: .Obj, name: Str) -> .Obj
|
||||
__format__: (self: .Obj, format_spec: Str) -> Str
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue