List of usage examples for org.antlr.v4.runtime CharStreams fromReader
public static CodePointCharStream fromReader(Reader r, String sourceName) throws IOException
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(); }