fix more modules
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
|
||||
package net.sourceforge.pmd.lang.html;
|
||||
|
||||
import net.sourceforge.pmd.lang.LanguageRegistry;
|
||||
import net.sourceforge.pmd.lang.impl.SimpleLanguageModuleBase;
|
||||
|
||||
public final class HtmlLanguageModule extends SimpleLanguageModuleBase {
|
||||
@@ -17,4 +18,8 @@ public final class HtmlLanguageModule extends SimpleLanguageModuleBase {
|
||||
.extensions("html", "htm", "xhtml", "xht", "shtml"),
|
||||
new HtmlHandler());
|
||||
}
|
||||
|
||||
public static HtmlLanguageModule getInstance() {
|
||||
return (HtmlLanguageModule) LanguageRegistry.PMD.getLanguageById(TERSE_NAME);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,20 +11,33 @@ import net.sourceforge.pmd.cpd.SourceCode;
|
||||
import net.sourceforge.pmd.cpd.TokenEntry;
|
||||
import net.sourceforge.pmd.cpd.Tokenizer;
|
||||
import net.sourceforge.pmd.cpd.Tokens;
|
||||
import net.sourceforge.pmd.lang.LanguageProcessor;
|
||||
import net.sourceforge.pmd.lang.LanguageProcessorRegistry;
|
||||
import net.sourceforge.pmd.lang.ast.Parser.ParserTask;
|
||||
import net.sourceforge.pmd.lang.ast.SemanticErrorReporter;
|
||||
import net.sourceforge.pmd.lang.document.CpdCompat;
|
||||
import net.sourceforge.pmd.lang.document.TextDocument;
|
||||
import net.sourceforge.pmd.lang.document.TextFile;
|
||||
import net.sourceforge.pmd.lang.html.HtmlLanguageModule;
|
||||
|
||||
public class HtmlTokenizer implements Tokenizer {
|
||||
|
||||
@Override
|
||||
public void tokenize(SourceCode sourceCode, Tokens tokenEntries) {
|
||||
try (TextDocument textDoc = TextDocument.create(CpdCompat.cpdCompat(sourceCode))) {
|
||||
HtmlLanguageModule html = HtmlLanguageModule.getInstance();
|
||||
TextFile tf = TextFile.forCharSeq(
|
||||
sourceCode.getCodeBuffer(),
|
||||
sourceCode.getFileName(),
|
||||
html.getDefaultVersion()
|
||||
);
|
||||
|
||||
try (LanguageProcessor processor = html.createProcessor(html.newPropertyBundle());
|
||||
TextDocument textDoc = TextDocument.create(tf)) {
|
||||
|
||||
ParserTask task = new ParserTask(
|
||||
textDoc,
|
||||
SemanticErrorReporter.noop(),// fixme
|
||||
lpRegistry);
|
||||
SemanticErrorReporter.noop(), // fixme
|
||||
LanguageProcessorRegistry.singleton(processor)
|
||||
);
|
||||
|
||||
HtmlParser parser = new HtmlParser();
|
||||
ASTHtmlDocument root = parser.parse(task);
|
||||
@@ -32,6 +45,8 @@ public class HtmlTokenizer implements Tokenizer {
|
||||
traverse(root, tokenEntries);
|
||||
} catch (IOException e) {
|
||||
throw new UncheckedIOException(e);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
} finally {
|
||||
tokenEntries.add(TokenEntry.EOF);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user