This commit is contained in:
blueloveTH 2024-04-14 15:25:01 +08:00
parent bcff54fe78
commit 5a8d9bb5f7
4 changed files with 12 additions and 14 deletions

View File

@ -46,16 +46,17 @@ print(code)
```
```txt
pkpy:1.4.4
pkpy:1.4.5
0
|print|
=1
print
=6
5,1,0,
6,1,5,1,0,
42,1,1,
8,1,1,S48656c6c6f2c20776f726c6421
43,1,0,
3,1,0,
6,0,,,
42,,1,
8,,,S48656c6c6f2c20776f726c6421
43,,0,
3,,,
```

View File

@ -132,7 +132,7 @@ struct TokenDeserializer{
TokenDeserializer(const char* source): curr(source), source(source) {}
char read_char(){ return *curr++; }
char peek_char(){ return *curr; }
bool match_char(char c){ if(*curr == c) { curr++; return true; } return false; }
std::string_view read_string(char c);
Str read_string_from_hex(char c);

View File

@ -1252,13 +1252,10 @@ __EAT_DOTS_END:
if(is_raw_string_used(token.type)){
ss << token_indices[token.sv()] << ',';
}
if(i>0 && tokens[i-1].line == token.line) ss << ',';
else ss << token.line << ',';
if(i>0 && tokens[i-1].brackets_level == token.brackets_level) ss << ',';
else ss << token.brackets_level << ',';
// visit token value
std::visit([&ss](auto&& arg){
using T = std::decay_t<decltype(arg)>;
@ -1306,13 +1303,13 @@ __EAT_DOTS_END:
t.length = 0;
}
if(deserializer.peek_char() == ','){
if(deserializer.match_char(',')){
t.line = tokens.back().line;
}else{
t.line = (int)deserializer.read_uint(',');
}
if(deserializer.peek_char() == ','){
if(deserializer.match_char(',')){
t.brackets_level = tokens.back().brackets_level;
}else{
t.brackets_level = (int)deserializer.read_uint(',');

View File

@ -176,7 +176,7 @@ void add_module_os(VM* vm){
std::filesystem::directory_iterator di;
try{
di = std::filesystem::directory_iterator(path);
}catch(std::filesystem::filesystem_error& e){
}catch(std::filesystem::filesystem_error&){
vm->IOError(path.string());
}
List ret;