Fix compil
This commit is contained in:
@@ -39,6 +39,6 @@ public class ScalaLanguageHandler extends AbstractPmdLanguageVersionHandler {
|
||||
|
||||
@Override
|
||||
public ScalaParser getParser(ParserOptions parserOptions) {
|
||||
return new ScalaParser(dialect, parserOptions);
|
||||
return new ScalaParser(dialect);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
package net.sourceforge.pmd.lang.scala.ast;
|
||||
|
||||
import net.sourceforge.pmd.lang.ast.AstInfo;
|
||||
import net.sourceforge.pmd.lang.ast.Parser.ParserTask;
|
||||
import net.sourceforge.pmd.lang.ast.RootNode;
|
||||
|
||||
import scala.meta.Source;
|
||||
@@ -13,10 +15,22 @@ import scala.meta.Source;
|
||||
*/
|
||||
public final class ASTSource extends AbstractScalaNode<Source> implements RootNode {
|
||||
|
||||
private AstInfo<ASTSource> astInfo;
|
||||
|
||||
ASTSource(Source scalaNode) {
|
||||
super(scalaNode);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public AstInfo<ASTSource> getAstInfo() {
|
||||
return astInfo;
|
||||
}
|
||||
|
||||
void addTaskInfo(ParserTask task) {
|
||||
this.astInfo = new AstInfo<>(task, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <P, R> R acceptVisitor(ScalaParserVisitor<? super P, ? extends R> visitor, P data) {
|
||||
return visitor.visit(this, data);
|
||||
|
||||
@@ -4,14 +4,8 @@
|
||||
|
||||
package net.sourceforge.pmd.lang.scala.ast;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
|
||||
import net.sourceforge.pmd.lang.AbstractParser;
|
||||
import net.sourceforge.pmd.lang.ParserOptions;
|
||||
import net.sourceforge.pmd.lang.ast.ParseException;
|
||||
import net.sourceforge.pmd.lang.ast.Parser;
|
||||
|
||||
import scala.meta.Dialect;
|
||||
import scala.meta.Source;
|
||||
@@ -23,7 +17,7 @@ import scala.meta.internal.parsers.ScalametaParser;
|
||||
* Scalameta. This parser then wraps all of ScalaMeta's Nodes in Java versions
|
||||
* for compatibility.
|
||||
*/
|
||||
public final class ScalaParser extends AbstractParser {
|
||||
public final class ScalaParser implements Parser {
|
||||
private final Dialect dialect;
|
||||
|
||||
/**
|
||||
@@ -31,25 +25,18 @@ public final class ScalaParser extends AbstractParser {
|
||||
*
|
||||
* @param scalaDialect
|
||||
* the Scala Dialect for this parser
|
||||
* @param parserOptions
|
||||
* any additional options for this parser
|
||||
*/
|
||||
public ScalaParser(Dialect scalaDialect, ParserOptions parserOptions) {
|
||||
super(parserOptions);
|
||||
public ScalaParser(Dialect scalaDialect) {
|
||||
this.dialect = scalaDialect;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ASTSource parse(String fileName, Reader source) throws ParseException {
|
||||
Input.VirtualFile virtualFile;
|
||||
try {
|
||||
String sourceString = IOUtils.toString(source);
|
||||
virtualFile = new Input.VirtualFile(fileName, sourceString);
|
||||
} catch (IOException e) {
|
||||
throw new ParseException(e);
|
||||
}
|
||||
public ASTSource parse(ParserTask task) throws ParseException {
|
||||
Input.VirtualFile virtualFile = new Input.VirtualFile(task.getFileDisplayName(), task.getSourceText());
|
||||
Source src = new ScalametaParser(virtualFile, dialect).parseSource();
|
||||
return (ASTSource) new ScalaTreeBuilder().build(src);
|
||||
ASTSource root = (ASTSource) new ScalaTreeBuilder().build(src);
|
||||
root.addTaskInfo(task);
|
||||
return root;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user