Compare commits
No commits in common. "d402407ae20d2837245988f352a3ecadb4a806f9" and "9b87621a35899dae931a00a6b741948ff6574501" have entirely different histories.
d402407ae2
...
9b87621a35
2 changed files with 11 additions and 40 deletions
|
@ -178,8 +178,8 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
|
|
||||||
StateTree<JavaElement> type = new StateTree<JavaElement>();
|
StateTree<JavaElement> type = new StateTree<JavaElement>();
|
||||||
StateTree<JavaElement> type_ = type.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME),concat));
|
StateTree<JavaElement> type_ = type.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME),concat));
|
||||||
// type_.then((validator) -> validator.validate((token) -> token.getValue().equals("."), concat)) //only dot?
|
type_.then((validator) -> validator.validate((token) -> token.getValue().equals("."), concat))
|
||||||
// .then(type_);
|
.then(type_);
|
||||||
StateTree<JavaElement> gen = new StateTree<>();
|
StateTree<JavaElement> gen = new StateTree<>();
|
||||||
type_.then(gen);
|
type_.then(gen);
|
||||||
StateTree<JavaElement> type_begin = gen.then((validator) -> validator.validate((token) -> token.getValue().equals("<"), concat));
|
StateTree<JavaElement> type_begin = gen.then((validator) -> validator.validate((token) -> token.getValue().equals("<"), concat));
|
||||||
|
@ -291,10 +291,7 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
.end((a,b) -> a)
|
.end((a,b) -> a)
|
||||||
.multiple(braces_container)
|
.multiple(braces_container)
|
||||||
.unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a);
|
.unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a);
|
||||||
value_name = value_name.then(new RedirectStateTree<>(type, (global, local) -> {
|
value_name = value_name.then(new RedirectStateTree<>(type, (global, local) -> global.set(local.get())));
|
||||||
if(global.get() == null) global.set(local.get());
|
|
||||||
else global.set(global.<Token>get().concat(local.get()));
|
|
||||||
}));
|
|
||||||
value_name.end((parent,bag) -> {
|
value_name.end((parent,bag) -> {
|
||||||
Value result = new Value(bag.<Token>get());
|
Value result = new Value(bag.<Token>get());
|
||||||
bag.set(result);
|
bag.set(result);
|
||||||
|
@ -305,27 +302,8 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME)))
|
.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME)))
|
||||||
.end((a,b) -> a);
|
.end((a,b) -> a);
|
||||||
|
|
||||||
StateTree<JavaElement> value_call = value_name.then((validator) -> validator.validate(
|
StateTree<JavaElement> value_call = value_name.then((validator) -> validator.validate((token) -> token.getValue().equals(".")));
|
||||||
(token) -> token.getValue().equals("."),
|
|
||||||
(bag, token) -> {
|
|
||||||
Value prev = bag.get("prev");
|
|
||||||
if(prev == null){
|
|
||||||
bag.set("prev", new Value(bag.<Token>get()));
|
|
||||||
}else{
|
|
||||||
Integer paramters = bag.get("args");
|
|
||||||
List<Value> list = null;
|
|
||||||
if(paramters != null){
|
|
||||||
list = new ArrayList<>();
|
|
||||||
for(int i = 0; i < paramters; i++) list.add(bag.<Bag>get("arg"+i).get());
|
|
||||||
bag.remove("args");
|
|
||||||
}
|
|
||||||
MethodCallValue methodCall = new MethodCallValue(prev, bag.get(), list);
|
|
||||||
bag.set("prev", methodCall);
|
|
||||||
}
|
|
||||||
bag.set(token);
|
|
||||||
}));
|
|
||||||
value_call.end((a,b) -> a);
|
value_call.end((a,b) -> a);
|
||||||
value_call.then(new RedirectStateTree<>(gen, (global, local) -> global.set(global.<Token>get().concat(local.get())))).then(value_name);
|
|
||||||
value_call.then(value_name);
|
value_call.then(value_name);
|
||||||
StateTree<JavaElement> value_array_begin = value_name.then((validator) -> validator.validate((token) -> token.getValue().equals("[")));
|
StateTree<JavaElement> value_array_begin = value_name.then((validator) -> validator.validate((token) -> token.getValue().equals("[")));
|
||||||
StateTree<JavaElement> value_array_end = value_array_begin.then((validator) -> validator.validate((token) -> token.getValue().equals("]")));
|
StateTree<JavaElement> value_array_end = value_array_begin.then((validator) -> validator.validate((token) -> token.getValue().equals("]")));
|
||||||
|
@ -353,7 +331,9 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
for(int i = 0; i < paramters; i++) list.add(bag.<Bag>get("arg"+i).get());
|
for(int i = 0; i < paramters; i++) list.add(bag.<Bag>get("arg"+i).get());
|
||||||
}
|
}
|
||||||
|
|
||||||
MethodCallValue methodCall = new MethodCallValue(bag.get("prev"), bag.get(), list);
|
MethodCallValue methodCall = new MethodCallValue(bag.get(), list);
|
||||||
|
//take arguments from bag
|
||||||
|
System.out.println("MethodCall "+bag);
|
||||||
bag.set(methodCall);
|
bag.set(methodCall);
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
|
@ -1181,7 +1161,7 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception{
|
public static void main(String[] args) throws Exception{
|
||||||
File file = new File("C:\\Users\\jeffc\\eclipse-workspace\\peer-at-code-backend\\src\\dev\\peerat\\backend\\routes\\users\\ChangePassword.java");
|
File file = new File("C:\\Users\\jeffc\\eclipse-workspace\\peer-at-code-backend\\src\\dev\\peerat\\backend\\routes\\users\\Register.java");
|
||||||
|
|
||||||
BufferedReader reader = new BufferedReader(new FileReader(file));
|
BufferedReader reader = new BufferedReader(new FileReader(file));
|
||||||
|
|
||||||
|
@ -1194,7 +1174,7 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
List<Value> values = new ArrayList<>();
|
List<Value> values = new ArrayList<>();
|
||||||
jFile.findAll((e) -> e instanceof Value, values);
|
jFile.findAll((e) -> e instanceof Value, values);
|
||||||
System.out.println("Find "+values.size()+" values");
|
System.out.println("Find "+values.size()+" values");
|
||||||
for(Value v : values) System.out.println(v.getClass().getSimpleName()+" ->"+v);
|
for(Value v : values) System.out.println(v);
|
||||||
|
|
||||||
|
|
||||||
System.out.println((System.currentTimeMillis()-time)+"ms");
|
System.out.println((System.currentTimeMillis()-time)+"ms");
|
||||||
|
|
|
@ -152,20 +152,14 @@ public class Value extends JavaElement{
|
||||||
|
|
||||||
public static class MethodCallValue extends Value{
|
public static class MethodCallValue extends Value{
|
||||||
|
|
||||||
private Value base;
|
|
||||||
private Token token;
|
private Token token;
|
||||||
private List<Value> parameters;
|
private List<Value> parameters;
|
||||||
|
|
||||||
public MethodCallValue(Value base, Token token, List<Value> parameters){
|
public MethodCallValue(Token token, List<Value> parameters){
|
||||||
this.base = base;
|
|
||||||
this.token = token;
|
this.token = token;
|
||||||
this.parameters = parameters;
|
this.parameters = parameters;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Value base(){
|
|
||||||
return this.base;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Token getToken(){
|
public Token getToken(){
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
@ -176,7 +170,7 @@ public class Value extends JavaElement{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString(){
|
public String toString(){
|
||||||
return base+token.getValue()+((parameters == null ? "":parameters));
|
return token.getValue()+((parameters == null ? "":parameters));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -186,7 +180,6 @@ public class Value extends JavaElement{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <E extends JavaElement> E find(Function<JavaElement, Boolean> finder){
|
public <E extends JavaElement> E find(Function<JavaElement, Boolean> finder){
|
||||||
if(finder.apply(base)) return (E) base;
|
|
||||||
if(parameters != null){
|
if(parameters != null){
|
||||||
for(Value value : parameters){
|
for(Value value : parameters){
|
||||||
if(finder.apply(value)) return (E) value;
|
if(finder.apply(value)) return (E) value;
|
||||||
|
@ -197,8 +190,6 @@ public class Value extends JavaElement{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
|
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
|
||||||
if(finder.apply(base)) list.add((E) base);
|
|
||||||
base.findAll(finder, list);
|
|
||||||
if(parameters != null){
|
if(parameters != null){
|
||||||
for(Value value : parameters){
|
for(Value value : parameters){
|
||||||
if(finder.apply(value)) list.add((E) value);
|
if(finder.apply(value)) list.add((E) value);
|
||||||
|
|
Loading…
Add table
Reference in a new issue