StateTree -> import (only firstone)

This commit is contained in:
jeffcheasey88 2023-07-16 19:35:22 +02:00
parent 427e3f2fc9
commit 12155a6bc8

View file

@ -37,20 +37,44 @@ public class JavaParser extends Parser<JavaFile> {
Tokenizer tokenizer = new Tokenizer();
StateTree<JavaFile> importState = new StateTree<>();
importState.then((validator) -> {
if(validator.validate(
(token) -> token.getValue().equals("import"),
(bag, token) -> bag.set(new LinkedList<>()))){
validator.validate(
(token) -> token.getValue().equals("static"),
(bag, token) -> bag.set("static", null));
while(validator.validate(
(token) -> !token.getValue().equals(";"),
(bag, token) -> bag.<List<Token>>get().add(token))
);
return validator.validate((token) -> token.getValue().equals(";"));
}
return false;
}).<JavaElement>end((javafile, bag) -> javafile.addImport(bag));
StateTree<JavaFile> main = new StateTree<>();
main.then((validator) -> {
if(validator.validate(
(token) -> token.getValue().equals("package"),
(bag, token) -> bag.set(new LinkedList<>()))){
while(validator.validate(
(token) -> !token.getValue().equals(";"),
(bag, token) -> bag.<List<Token>>get().add(token))
);
return validator.validate((token) -> token.getValue().equals(";"));
}
return false;
}).<JavaElement>end((javafile, bag) -> javafile.setPackage(bag));
}).<JavaElement>end((javafile, bag) -> javafile.setPackage(bag))
.thenNoChild(importState);
System.out.println((System.currentTimeMillis()-time)+"ms");