mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 11:30:18 +00:00
some fix
This commit is contained in:
parent
1ac08cfc2b
commit
72723d24f5
@ -281,8 +281,8 @@ static Error* eat_name(pk_Lexer* self){
|
|||||||
static Error* eat_string_until(pk_Lexer* self, char quote, bool raw, py_Str* out) {
|
static Error* eat_string_until(pk_Lexer* self, char quote, bool raw, py_Str* out) {
|
||||||
// previous char is quote
|
// previous char is quote
|
||||||
bool quote3 = match_n_chars(self, 2, quote);
|
bool quote3 = match_n_chars(self, 2, quote);
|
||||||
// small_vector_2<char, 32> buff;
|
|
||||||
pk_SStream buff;
|
pk_SStream buff;
|
||||||
|
pk_SStream__ctor(&buff);
|
||||||
while(true) {
|
while(true) {
|
||||||
char c = eatchar_include_newline(self);
|
char c = eatchar_include_newline(self);
|
||||||
if(c == quote) {
|
if(c == quote) {
|
||||||
@ -721,7 +721,7 @@ Error* pk_Lexer__process(pk_SourceData_ src, c11_array* out_tokens){
|
|||||||
|
|
||||||
if(src->is_precompiled) {
|
if(src->is_precompiled) {
|
||||||
Error* err = from_precompiled(&lexer);
|
Error* err = from_precompiled(&lexer);
|
||||||
// set out tokens
|
// TODO: set out tokens
|
||||||
pk_Lexer__dtor(&lexer);
|
pk_Lexer__dtor(&lexer);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -739,6 +739,13 @@ Error* pk_Lexer__process(pk_SourceData_ src, c11_array* out_tokens){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// set out_tokens
|
// set out_tokens
|
||||||
|
*out_tokens = (c11_array){
|
||||||
|
.data = lexer.nexts.data,
|
||||||
|
.count = lexer.nexts.count,
|
||||||
|
.elem_size = lexer.nexts.elem_size
|
||||||
|
};
|
||||||
|
c11_vector__ctor(&lexer.nexts, sizeof(Token));
|
||||||
|
|
||||||
pk_Lexer__dtor(&lexer);
|
pk_Lexer__dtor(&lexer);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
|
#include "pocketpy/objects/sourcedata.h"
|
||||||
#include "pocketpy/pocketpy.h"
|
#include "pocketpy/pocketpy.h"
|
||||||
|
|
||||||
#include "pocketpy/common/utils.h"
|
#include "pocketpy/common/utils.h"
|
||||||
#include "pocketpy/objects/object.h"
|
#include "pocketpy/objects/object.h"
|
||||||
#include "pocketpy/interpreter/vm.h"
|
#include "pocketpy/interpreter/vm.h"
|
||||||
|
#include "pocketpy/compiler/compiler.h"
|
||||||
|
|
||||||
pk_VM* pk_current_vm;
|
pk_VM* pk_current_vm;
|
||||||
static pk_VM pk_default_vm;
|
static pk_VM pk_default_vm;
|
||||||
@ -22,6 +24,11 @@ void py_finalize() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int py_exec(const char* source) {
|
int py_exec(const char* source) {
|
||||||
|
pk_SourceData_ src = pk_SourceData__rcnew(source, "main.py", EXEC_MODE);
|
||||||
|
Error* err = pk_compile(src);
|
||||||
|
PK_DECREF(src);
|
||||||
|
if(err) abort();
|
||||||
|
|
||||||
CodeObject* co = NULL;
|
CodeObject* co = NULL;
|
||||||
pk_VM* vm = pk_current_vm;
|
pk_VM* vm = pk_current_vm;
|
||||||
Frame* frame = Frame__new(co, &vm->main, NULL, vm->stack.sp, vm->stack.sp, co);
|
Frame* frame = Frame__new(co, &vm->main, NULL, vm->stack.sp, vm->stack.sp, co);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user