StateTree -> import (only firstone)
This commit is contained in:
parent
427e3f2fc9
commit
12155a6bc8
1 changed files with 25 additions and 1 deletions
|
@ -37,20 +37,44 @@ public class JavaParser extends Parser<JavaFile> {
|
||||||
Tokenizer tokenizer = new Tokenizer();
|
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<>();
|
StateTree<JavaFile> main = new StateTree<>();
|
||||||
|
|
||||||
main.then((validator) -> {
|
main.then((validator) -> {
|
||||||
if(validator.validate(
|
if(validator.validate(
|
||||||
(token) -> token.getValue().equals("package"),
|
(token) -> token.getValue().equals("package"),
|
||||||
(bag, token) -> bag.set(new LinkedList<>()))){
|
(bag, token) -> bag.set(new LinkedList<>()))){
|
||||||
|
|
||||||
while(validator.validate(
|
while(validator.validate(
|
||||||
(token) -> !token.getValue().equals(";"),
|
(token) -> !token.getValue().equals(";"),
|
||||||
(bag, token) -> bag.<List<Token>>get().add(token))
|
(bag, token) -> bag.<List<Token>>get().add(token))
|
||||||
);
|
);
|
||||||
|
|
||||||
return validator.validate((token) -> token.getValue().equals(";"));
|
return validator.validate((token) -> token.getValue().equals(";"));
|
||||||
}
|
}
|
||||||
return false;
|
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");
|
System.out.println((System.currentTimeMillis()-time)+"ms");
|
||||||
|
|
Loading…
Add table
Reference in a new issue