refactor: fix code to not result in compile warning

This commit is contained in:
TopchetoEU 2023-12-24 14:30:31 +02:00
parent 797585f539
commit 3d275c52c0
Signed by: topchetoeu
GPG Key ID: 6531B8583E5F6ED4
2 changed files with 11 additions and 6 deletions

View File

@ -69,6 +69,9 @@ public class ParseRes<T> {
@SafeVarargs @SafeVarargs
public static <T> ParseRes<? extends T> any(ParseRes<? extends T> ...parsers) { public static <T> ParseRes<? extends T> any(ParseRes<? extends T> ...parsers) {
return any(List.of(parsers));
}
public static <T> ParseRes<? extends T> any(List<ParseRes<? extends T>> parsers) {
ParseRes<? extends T> best = null; ParseRes<? extends T> best = null;
ParseRes<? extends T> error = ParseRes.failed(); ParseRes<? extends T> error = ParseRes.failed();

View File

@ -216,8 +216,10 @@ public class Parsing {
currToken.append(c); currToken.append(c);
continue; continue;
case CURR_SCIENTIFIC_NOT: case CURR_SCIENTIFIC_NOT:
if (c == '-') currStage = CURR_NEG_SCIENTIFIC_NOT; if (c == '-') {
else if (!isDigit(c)) { if (currToken.toString().endsWith("e")) currStage = CURR_NEG_SCIENTIFIC_NOT;
}
if (currStage == CURR_SCIENTIFIC_NOT && !isDigit(c)) {
i--; start--; i--; start--;
break; break;
} }
@ -565,7 +567,8 @@ public class Parsing {
} }
private static double parseNumber(Location loc, String value) { private static double parseNumber(Location loc, String value) {
var res = parseNumber(false, value); var res = parseNumber(false, value);
if (res == null) throw new SyntaxException(loc, "Invalid number format."); if (res == null)
throw new SyntaxException(loc, "Invalid number format.");
else return res; else return res;
} }
@ -1022,9 +1025,8 @@ public class Parsing {
return ParseRes.res(res.result, n); return ParseRes.res(res.result, n);
} }
@SuppressWarnings("all")
public static ParseRes<? extends Statement> parseSimple(Filename filename, List<Token> tokens, int i, boolean statement) { public static ParseRes<? extends Statement> parseSimple(Filename filename, List<Token> tokens, int i, boolean statement) {
var res = new ArrayList<>(); var res = new ArrayList<ParseRes<? extends Statement>>();
if (!statement) { if (!statement) {
res.add(parseObject(filename, tokens, i)); res.add(parseObject(filename, tokens, i));
@ -1047,7 +1049,7 @@ public class Parsing {
parseDelete(filename, tokens, i) parseDelete(filename, tokens, i)
)); ));
return ParseRes.any(res.toArray(ParseRes[]::new)); return ParseRes.any(res);
} }
public static ParseRes<VariableStatement> parseVariable(Filename filename, List<Token> tokens, int i) { public static ParseRes<VariableStatement> parseVariable(Filename filename, List<Token> tokens, int i) {