mirror of
https://github.com/pocketpy/pocketpy
synced 2025-12-07 18:50:19 +00:00
some rename
This commit is contained in:
parent
0312dbc829
commit
878db5a828
@ -24,7 +24,7 @@ inline int pkpy_Str__size(const pkpy_Str* self){
|
|||||||
return self->size;
|
return self->size;
|
||||||
}
|
}
|
||||||
|
|
||||||
int pkpy_utils__u8len(unsigned char c, bool suppress);
|
int pkpy_utils__u8_header(unsigned char c, bool suppress);
|
||||||
void pkpy_Str__ctor(pkpy_Str* self, const char* data);
|
void pkpy_Str__ctor(pkpy_Str* self, const char* data);
|
||||||
void pkpy_Str__ctor2(pkpy_Str* self, const char* data, int size);
|
void pkpy_Str__ctor2(pkpy_Str* self, const char* data, int size);
|
||||||
void pkpy_Str__dtor(pkpy_Str* self);
|
void pkpy_Str__dtor(pkpy_Str* self);
|
||||||
|
|||||||
@ -31,7 +31,7 @@ void c11_vector__reserve(c11_vector* self, int capacity);
|
|||||||
#define c11__getitem(T, self, index) ((T*)(self)->data)[index]
|
#define c11__getitem(T, self, index) ((T*)(self)->data)[index]
|
||||||
#define c11__setitem(T, self, index, value) ((T*)(self)->data)[index] = value;
|
#define c11__setitem(T, self, index, value) ((T*)(self)->data)[index] = value;
|
||||||
|
|
||||||
#define c11_vector__push_back(T, self, elem) \
|
#define c11_vector__append(T, self, elem) \
|
||||||
do{ \
|
do{ \
|
||||||
if((self)->count == (self)->capacity) c11_vector__reserve((self), (self)->capacity*2); \
|
if((self)->count == (self)->capacity) c11_vector__reserve((self), (self)->capacity*2); \
|
||||||
((T*)(self)->data)[(self)->count] = (elem); \
|
((T*)(self)->data)[(self)->count] = (elem); \
|
||||||
@ -43,7 +43,7 @@ void c11_vector__reserve(c11_vector* self, int capacity);
|
|||||||
(self)->count--; \
|
(self)->count--; \
|
||||||
}while(0)
|
}while(0)
|
||||||
|
|
||||||
#define c11_vector__extend(T, self, p, size) \
|
#define c11_vector__push(T, self, p, size) \
|
||||||
do{ \
|
do{ \
|
||||||
c11_vector__reserve((self), (self)->count + (size)); \
|
c11_vector__reserve((self), (self)->count + (size)); \
|
||||||
memcpy((T*)(self)->data + (self)->count, (p), (size) * sizeof(T)); \
|
memcpy((T*)(self)->data + (self)->count, (p), (size) * sizeof(T)); \
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
int pkpy_utils__u8len(unsigned char c, bool suppress) {
|
int pkpy_utils__u8_header(unsigned char c, bool suppress) {
|
||||||
if((c & 0b10000000) == 0) return 1;
|
if((c & 0b10000000) == 0) return 1;
|
||||||
if((c & 0b11100000) == 0b11000000) return 2;
|
if((c & 0b11100000) == 0b11000000) return 2;
|
||||||
if((c & 0b11110000) == 0b11100000) return 3;
|
if((c & 0b11110000) == 0b11100000) return 3;
|
||||||
@ -135,13 +135,13 @@ pkpy_Str pkpy_Str__replace2(const pkpy_Str *self, const pkpy_Str *old, const pkp
|
|||||||
int i = pkpy_Str__index(self, old, start);
|
int i = pkpy_Str__index(self, old, start);
|
||||||
if(i == -1) break;
|
if(i == -1) break;
|
||||||
pkpy_Str tmp = pkpy_Str__substr2(self, start, i - start);
|
pkpy_Str tmp = pkpy_Str__substr2(self, start, i - start);
|
||||||
c11_vector__extend(char, &buffer, pkpy_Str__data(&tmp), tmp.size);
|
c11_vector__push(char, &buffer, pkpy_Str__data(&tmp), tmp.size);
|
||||||
pkpy_Str__dtor(&tmp);
|
pkpy_Str__dtor(&tmp);
|
||||||
c11_vector__extend(char, &buffer, pkpy_Str__data(new_), new_->size);
|
c11_vector__push(char, &buffer, pkpy_Str__data(new_), new_->size);
|
||||||
start = i + old->size;
|
start = i + old->size;
|
||||||
}
|
}
|
||||||
pkpy_Str tmp = pkpy_Str__substr2(self, start, self->size - start);
|
pkpy_Str tmp = pkpy_Str__substr2(self, start, self->size - start);
|
||||||
c11_vector__extend(char, &buffer, pkpy_Str__data(&tmp), tmp.size);
|
c11_vector__push(char, &buffer, pkpy_Str__data(&tmp), tmp.size);
|
||||||
pkpy_Str__dtor(&tmp);
|
pkpy_Str__dtor(&tmp);
|
||||||
pkpy_Str retval = {
|
pkpy_Str retval = {
|
||||||
.size = buffer.count,
|
.size = buffer.count,
|
||||||
@ -166,7 +166,7 @@ pkpy_Str pkpy_Str__u8_getitem(const pkpy_Str *self, int i){
|
|||||||
i = pkpy_Str__unicode_index_to_byte(self, i);
|
i = pkpy_Str__unicode_index_to_byte(self, i);
|
||||||
return pkpy_Str__substr2(
|
return pkpy_Str__substr2(
|
||||||
self, i,
|
self, i,
|
||||||
pkpy_utils__u8len(pkpy_Str__data(self)[i], false)
|
pkpy_utils__u8_header(pkpy_Str__data(self)[i], false)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -177,14 +177,14 @@ pkpy_Str pkpy_Str__u8_slice(const pkpy_Str *self, int start, int stop, int step)
|
|||||||
if(self->is_ascii){
|
if(self->is_ascii){
|
||||||
const char* p = pkpy_Str__data(self);
|
const char* p = pkpy_Str__data(self);
|
||||||
for (int i=start; step>0 ? i<stop : i>stop; i+=step) {
|
for (int i=start; step>0 ? i<stop : i>stop; i+=step) {
|
||||||
c11_vector__push_back(char, &buffer, p[i]);
|
c11_vector__append(char, &buffer, p[i]);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
for (int i=start; step>0 ? i<stop : i>stop; i+=step) {
|
for (int i=start; step>0 ? i<stop : i>stop; i+=step) {
|
||||||
pkpy_Str unicode = pkpy_Str__u8_getitem(self, i);
|
pkpy_Str unicode = pkpy_Str__u8_getitem(self, i);
|
||||||
const char* p = pkpy_Str__data(&unicode);
|
const char* p = pkpy_Str__data(&unicode);
|
||||||
for(int j = 0; j < unicode.size; j++){
|
for(int j = 0; j < unicode.size; j++){
|
||||||
c11_vector__push_back(char, &buffer, p[j]);
|
c11_vector__append(char, &buffer, p[j]);
|
||||||
}
|
}
|
||||||
pkpy_Str__dtor(&unicode);
|
pkpy_Str__dtor(&unicode);
|
||||||
}
|
}
|
||||||
@ -207,7 +207,7 @@ int pkpy_Str__unicode_index_to_byte(const pkpy_Str* self, int i) {
|
|||||||
const char* p = pkpy_Str__data(self);
|
const char* p = pkpy_Str__data(self);
|
||||||
int j = 0;
|
int j = 0;
|
||||||
while(i > 0) {
|
while(i > 0) {
|
||||||
j += pkpy_utils__u8len(p[j], false);
|
j += pkpy_utils__u8_header(p[j], false);
|
||||||
i--;
|
i--;
|
||||||
}
|
}
|
||||||
return j;
|
return j;
|
||||||
|
|||||||
@ -108,7 +108,7 @@ Error* Lexer::eat_name() noexcept{
|
|||||||
curr_char--;
|
curr_char--;
|
||||||
while(true) {
|
while(true) {
|
||||||
unsigned char c = peekchar();
|
unsigned char c = peekchar();
|
||||||
int u8bytes = pkpy_utils__u8len(c, true);
|
int u8bytes = pkpy_utils__u8_header(c, true);
|
||||||
if(u8bytes == 0) return SyntaxError("invalid char: %c", c);
|
if(u8bytes == 0) return SyntaxError("invalid char: %c", c);
|
||||||
if(u8bytes == 1) {
|
if(u8bytes == 1) {
|
||||||
if(isalpha(c) || c == '_' || isdigit(c)) {
|
if(isalpha(c) || c == '_' || isdigit(c)) {
|
||||||
|
|||||||
@ -49,7 +49,7 @@ void StringIter::_register(VM* vm, PyObject* mod, PyObject* type) {
|
|||||||
Str& s = PK_OBJ_GET(Str, self.ref);
|
Str& s = PK_OBJ_GET(Str, self.ref);
|
||||||
if(self.i == s.size) return 0;
|
if(self.i == s.size) return 0;
|
||||||
int start = self.i;
|
int start = self.i;
|
||||||
int len = pkpy_utils__u8len(s[self.i], false);
|
int len = pkpy_utils__u8_header(s[self.i], false);
|
||||||
self.i += len;
|
self.i += len;
|
||||||
vm->s_data.push(VAR(s.substr(start, len)));
|
vm->s_data.push(VAR(s.substr(start, len)));
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user