1 /** 2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html 3 */ 4 package net.sourceforge.pmd.lang; 5 6 import java.io.Reader; 7 8 /** 9 * This is a generic implementation of the Parser interface. 10 * 11 * @see Parser 12 */ 13 public abstract class AbstractParser implements Parser { 14 protected final ParserOptions parserOptions; 15 16 public AbstractParser(ParserOptions parserOptions) { 17 this.parserOptions = parserOptions; 18 } 19 20 public ParserOptions getParserOptions() { 21 return parserOptions; 22 } 23 24 public TokenManager getTokenManager(String fileName, Reader source) { 25 TokenManager tokenManager = createTokenManager(source); 26 tokenManager.setFileName(fileName); 27 return tokenManager; 28 } 29 30 protected abstract TokenManager createTokenManager(Reader source); 31 }