Example usage for org.antlr.v4.runtime CharStreams fromReader

List of usage examples for org.antlr.v4.runtime CharStreams fromReader

Introduction

In this page you can find the example usage for org.antlr.v4.runtime CharStreams fromReader.

Prototype

public static CodePointCharStream fromReader(Reader r, String sourceName) throws IOException 

Source Link

Document

Creates a CharStream given a Reader and its source name.

Usage

From source file:org.luossfi.internal.logic.fnwd.DefinitionFileParser.java

License:Open Source License

/**
 * Parse the definition files.// w  ww. j a  va2  s  .  c om
 *
 * @return the set of package rules in the same ordering as they where written
 *         in the definition file.
 * @throws WatchDogException the watch dog exception if one of the definition
 *           files cannot be accessed by the parser or if the parser found
 *           syntax problems.
 */
public Set<PackageRule> parse() throws WatchDogException {

    ConventionDefinitionVisitor visitor = new ConventionDefinitionVisitor(placeholderValues);

    for (Path definitionFile : definitionFiles) {
        try (InputStreamReader reader = new InputStreamReader(Files.newInputStream(definitionFile), "UTF-8")) {
            CharStream antlrInputStream = CharStreams.fromReader(reader,
                    definitionFile.getFileName().toString());

            ErrorCollectingListener listener = new ErrorCollectingListener();

            ConventionDefinitionLexer lexer = new ConventionDefinitionLexer(antlrInputStream);
            lexer.removeErrorListeners();
            lexer.addErrorListener(listener);

            ConventionDefinitionParser parser = new ConventionDefinitionParser(new CommonTokenStream(lexer));
            parser.removeErrorListeners();
            parser.addErrorListener(listener);

            visitor.visitConventionDefinition(parser.conventionDefinition());

            checkForErrors(listener, visitor, definitionFile);
        } catch (IOException e) {
            String message = ErrorMessageTranslator.translate(ErrorMessageConstants.DEF_FILE_READ_FAILED,
                    definitionFile.normalize().toString());
            throw new WatchDogException(message, e);
        }
    }

    return visitor.getPackageRules();
}