Fix json parser special chars

This commit is contained in:
jeffcheasey88 2024-04-14 14:36:47 +02:00
parent 5be25735ae
commit c2e9e9e5bf

View file

@ -5,7 +5,7 @@ import be.jeffcheasey88.peeratcode.parser.TokenType;
import be.jeffcheasey88.peeratcode.parser.Tokenizer;
public class JsonTokenizer extends Tokenizer{
@Override
public void parse(String line){
for(int i = 0; i < line.length(); i++){
@ -29,7 +29,22 @@ public class JsonTokenizer extends Tokenizer{
for(; j < line.length(); j++){
c = line.charAt(j);
if(c == '\\'){
buffer+=c+line.charAt(++j);
c = line.charAt(++j);
switch(c){
case 'n':
buffer+='\n';
break;
case 'r':
buffer+='\r';
break;
case 't':
buffer+='\t';
break;
default:
buffer+=c;
break;
}
continue;
}
if(c == '\"') break;
buffer+=c;
@ -38,21 +53,6 @@ public class JsonTokenizer extends Tokenizer{
i=j;
continue;
}
if(c == '\''){
String buffer = "";
int j = i+1;
for(; j < line.length(); j++){
c = line.charAt(j);
if(c == '\\'){
buffer+=c+line.charAt(++j);
}
if(c == '\'') break;
buffer+=c;
}
getTokens().add(new Token(1, i+1, buffer, TokenType.CHAR));
i=j;
continue;
}
getTokens().add(new Token(1, i+1, ""+c, TokenType.DELIMITER));
}
}