/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.lang.plsql; import java.io.Reader; import java.util.HashMap; import java.util.Map; import net.sourceforge.pmd.lang.AbstractParser; import net.sourceforge.pmd.lang.ParserOptions; import net.sourceforge.pmd.lang.TokenManager; import net.sourceforge.pmd.lang.ast.AbstractTokenManager; import net.sourceforge.pmd.lang.ast.Node; import net.sourceforge.pmd.lang.ast.ParseException; import net.sourceforge.pmd.util.IOUtil; /** * Adapter for the PLSQLParser. */ public class PLSQLParser extends AbstractParser { public PLSQLParser(ParserOptions parserOptions) { super(parserOptions); } @Override public TokenManager createTokenManager(Reader source) { return new PLSQLTokenManager(IOUtil.skipBOM(source)); } /** * Subclass should override this method to modify the PLSQLParser as needed. */ protected net.sourceforge.pmd.lang.plsql.ast.PLSQLParser createPLSQLParser(Reader source) throws ParseException { Reader in = IOUtil.skipBOM(source); // Wrapped PLSQL AST Parser net.sourceforge.pmd.lang.plsql.ast.PLSQLParser parser = new net.sourceforge.pmd.lang.plsql.ast.PLSQLParser(in); return parser; } public boolean canParse() { return true; } public Node parse(String fileName, Reader source) throws ParseException { AbstractTokenManager.setFileName(fileName); return createPLSQLParser(source).Input(); } public Map<Integer, String> getSuppressMap() { return new HashMap<>(); // FIXME } }