org.unlaxer.TokenKind Maven / Gradle / Ivy
package org.unlaxer;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;
public enum TokenKind{
matchOnly,
consumed,
// vitrualToken means not exists token on source. generated by parser
virtualTokenMatchOnly,
virtualTokenConsumed,
;
public static TokenKind of(boolean doConsume){
return doConsume ? TokenKind.consumed : matchOnly;
}
public boolean isConsumed(){
return this == TokenKind.consumed ||
this == TokenKind.virtualTokenConsumed;
}
public boolean isMatchOnly(){
return this == TokenKind.matchOnly ||
this == TokenKind.virtualTokenMatchOnly ;
}
public boolean isReal() {
return this == TokenKind.consumed ||
this == TokenKind.matchOnly;
}
public boolean isVirtual() {
return this == TokenKind.virtualTokenConsumed ||
this == TokenKind.virtualTokenMatchOnly;
}
public Predicate passFilter = token-> token.tokenKind == this;
public Predicate cutFilter = token-> token.tokenKind != this;
public List pass(List tokens){
return tokens.stream()
.filter(passFilter)
.collect(Collectors.toList());
}
public List cut(List tokens){
return tokens.stream()
.filter(cutFilter)
.collect(Collectors.toList());
}
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy