Parse double + fix Boolean parse

This commit is contained in:
jeffcheasey88 2023-12-21 23:07:07 +01:00
parent 700aa28779
commit 7be045fdb4

View file

@ -45,7 +45,11 @@ public class JsonParser extends Parser<Json>{
content.then(new RedirectStateTree<>(base, (global, local) -> global.set(local.get()))).end(); content.then(new RedirectStateTree<>(base, (global, local) -> global.set(local.get()))).end();
content.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.STRING), (bag, token) -> bag.set(token))).end(); content.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.STRING), (bag, token) -> bag.set(token))).end();
content.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.CHAR), (bag, token) -> bag.set(token))).end(); content.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.CHAR), (bag, token) -> bag.set(token))).end();
content.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME), (bag, token) -> bag.set(token))).end(); StateTree<Json> number = content.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME), (bag, token) -> bag.set(token)));
number.end();
number.then((validator) -> validator.validate((token) -> token.getValue().equals("."), (bag, token) -> bag.set(bag.<Token>get().concat(token))))
.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME), (bag, token) -> bag.set(bag.<Token>get().concat(token))))
.end();
StateTree<Json> mapper = new StateTree<>(); StateTree<Json> mapper = new StateTree<>();
StateTree<Json> mapper_key = mapper.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.STRING), (bag, token) -> { StateTree<Json> mapper_key = mapper.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.STRING), (bag, token) -> {
@ -110,10 +114,10 @@ public class JsonParser extends Parser<Json>{
return Long.parseLong(content); return Long.parseLong(content);
}catch(Exception _){ }catch(Exception _){
try { try {
return Boolean.parseBoolean(content); return Double.parseDouble(content);
}catch(Exception __){ }catch(Exception __){
try{ try{
return Double.parseDouble(content); return Boolean.parseBoolean(content);
}catch(Exception ___){} }catch(Exception ___){}
} }
} }