mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 19:40:18 +00:00
some fix
This commit is contained in:
parent
ca5881b6cc
commit
f359d07a02
@ -112,7 +112,7 @@ struct CodeEmitContext {
|
|||||||
CodeObject_ co; // 1 CodeEmitContext <=> 1 CodeObject_
|
CodeObject_ co; // 1 CodeEmitContext <=> 1 CodeObject_
|
||||||
vector<Expr_> s_expr;
|
vector<Expr_> s_expr;
|
||||||
int level;
|
int level;
|
||||||
vector<Str> global_names;
|
vector<StrName> global_names;
|
||||||
|
|
||||||
CodeEmitContext(VM* vm, CodeObject_ co, int level) : vm(vm), co(co), level(level) {}
|
CodeEmitContext(VM* vm, CodeObject_ co, int level) : vm(vm), co(co), level(level) {}
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ struct PyTypeInfo {
|
|||||||
PyTypeInfo(PyObject* obj, Type base, PyObject* mod, StrName name, bool subclass_enabled, Vt vt = {}) :
|
PyTypeInfo(PyObject* obj, Type base, PyObject* mod, StrName name, bool subclass_enabled, Vt vt = {}) :
|
||||||
obj(obj), base(base), mod(mod), name(name), subclass_enabled(subclass_enabled), vt(vt) {}
|
obj(obj), base(base), mod(mod), name(name), subclass_enabled(subclass_enabled), vt(vt) {}
|
||||||
|
|
||||||
vector<StrName> annotated_fields = {};
|
vector<StrName> annotated_fields;
|
||||||
|
|
||||||
// unary operators
|
// unary operators
|
||||||
Str (*m__repr__)(VM* vm, PyVar) = nullptr;
|
Str (*m__repr__)(VM* vm, PyVar) = nullptr;
|
||||||
|
@ -425,7 +425,7 @@ void Compiler::exprCall() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Compiler::exprName() {
|
void Compiler::exprName() {
|
||||||
Str name = prev().str();
|
StrName name(prev().sv());
|
||||||
NameScope scope = name_scope();
|
NameScope scope = name_scope();
|
||||||
if(ctx()->global_names.contains(name)) { scope = NAME_GLOBAL; }
|
if(ctx()->global_names.contains(name)) { scope = NAME_GLOBAL; }
|
||||||
ctx()->s_expr.push_back(make_expr<NameExpr>(name, scope));
|
ctx()->s_expr.push_back(make_expr<NameExpr>(name, scope));
|
||||||
@ -882,7 +882,7 @@ void Compiler::compile_stmt() {
|
|||||||
case TK("global"):
|
case TK("global"):
|
||||||
do {
|
do {
|
||||||
consume(TK("@id"));
|
consume(TK("@id"));
|
||||||
ctx()->global_names.push_back(prev().sv());
|
ctx()->global_names.push_back(StrName(prev().sv()));
|
||||||
} while(match(TK(",")));
|
} while(match(TK(",")));
|
||||||
consume_end_stmt();
|
consume_end_stmt();
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user