Example usage for org.antlr.v4.runtime.tree ParseTreeProperty removeFrom

List of usage examples for org.antlr.v4.runtime.tree ParseTreeProperty removeFrom

Introduction

In this page you can find the example usage for org.antlr.v4.runtime.tree ParseTreeProperty removeFrom.

Prototype

public V removeFrom(ParseTree node) 

Source Link

Usage

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;
}