68 lines
1.5 KiB
Java
68 lines
1.5 KiB
Java
package dev.peerat.parser.java.value;
|
|
|
|
import java.util.Collection;
|
|
import java.util.List;
|
|
import java.util.function.Function;
|
|
import java.util.function.Predicate;
|
|
|
|
import dev.peerat.parser.java.JavaElement;
|
|
import dev.peerat.parser.java.visitor.JavaVisitor;
|
|
import dev.peerat.parser.visitor.TokenVisitor;
|
|
import dev.peerat.parser.visitor.Visitor;
|
|
import dev.peerat.parser.visitor.VisitorBag;
|
|
|
|
public class BiValue extends Value{
|
|
|
|
private Value left;
|
|
private String action;
|
|
private Value right;
|
|
|
|
public BiValue(Value left, String action, Value right){
|
|
this.left = left;
|
|
this.action = action;
|
|
this.right = right;
|
|
}
|
|
|
|
public Value left(){
|
|
return left;
|
|
}
|
|
|
|
public String getAction(){
|
|
return this.action;
|
|
}
|
|
|
|
public Value right(){
|
|
return right;
|
|
}
|
|
|
|
@Override
|
|
public <E extends JavaElement> E find(Predicate<JavaElement> finder) {
|
|
// TODO Auto-generated method stub
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public <E extends JavaElement> void findAll(Predicate<JavaElement> finder, Collection<E> collector) {
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
|
|
@Override
|
|
public String toString(){
|
|
return "[BiValue] "+left+" "+action+" "+right;
|
|
}
|
|
|
|
@Override
|
|
public VisitorBag visit(Visitor<JavaElement> visitor) {
|
|
if(visitor.canVisit(getClass())) return visitor.visit(this);
|
|
VisitorBag bag = new VisitorBag();
|
|
bag.merge(left.visit(visitor));
|
|
bag.merge(right.visit(visitor));
|
|
return bag;
|
|
}
|
|
|
|
@Override
|
|
public VisitorBag visit(TokenVisitor visitor){
|
|
return new VisitorBag();
|
|
}
|
|
}
|