List of usage examples for org.antlr.v4.runtime.tree ParseTreeProperty removeFrom
public V removeFrom(ParseTree node)
From source file:edu.clemson.cs.rsrg.misc.Utilities.java
License:Open Source License
/** * <p>Returns a list of {@code E} given: an expected type {@code T}, some * number of concrete syntax {@code nodes}, and a mapping from rule contexts * to some number of elements descending from {@code E}.</p> * * @param expectedType The class type to inhabit the returned list * @param nodes A list of concrete syntax nodes, as obtained through * a visitor, listener, etc.// ww w . j av a2 s. c o m * @param annotations A map from rule context to the primary supertype * of {@code expectedType} ({@code E}). * @param <E> Super type of {@code expectedType}. * @param <T> The expected type. * @return A list of {@code T}. */ public static <E, T extends E> List<T> collect(Class<T> expectedType, List<? extends ParseTree> nodes, ParseTreeProperty<? extends E> annotations) { List<T> result = new ArrayList<>(); for (ParseTree node : nodes) { result.add(expectedType.cast(annotations.removeFrom(node))); } return result; }