org.unlaxer.parser.combinator.Chain Maven / Gradle / Ivy
package org.unlaxer.parser.combinator;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import org.unlaxer.Name;
import org.unlaxer.Parsed;
import org.unlaxer.TokenKind;
import org.unlaxer.context.ParseContext;
import org.unlaxer.parser.HasChildrenParser;
import org.unlaxer.parser.Parser;
public class Chain extends ConstructedCombinatorParser implements ChainInterface{
private static final long serialVersionUID = 6972883578352108945L;
public Chain(List children) {
super(children);
}
@SafeVarargs
public Chain(Parser... children) {
super(children);
}
public Chain(Name name, List children) {
super(name, children);
}
public Chain(Name name, Parser... children) {
super(name, children);
}
@Override
public Parsed parse(ParseContext parseContext, TokenKind tokenKind, boolean invertMatch) {
return ChainInterface.super.parse(parseContext, tokenKind, invertMatch);
}
@Override
public Chain newFiltered(Predicate cutFilter){
Predicate passFilter = cutFilter.negate();
List newChildren = getChildren().stream()
.filter(passFilter)
.collect(Collectors.toList());
return new Chain(getName() , newChildren);
}
@Override
public HasChildrenParser createWith(List children) {
return new Chain(getName() , children);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy