Fix compil

This commit is contained in:
Clément Fournier
2020-11-15 18:16:27 +01:00
parent 99ca901fbb
commit d4ad2f5011
31 changed files with 127 additions and 143 deletions

View File

@@ -39,6 +39,6 @@ public class ScalaLanguageHandler extends AbstractPmdLanguageVersionHandler {
@Override
public ScalaParser getParser(ParserOptions parserOptions) {
return new ScalaParser(dialect, parserOptions);
return new ScalaParser(dialect);
}
}

View File

@@ -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);

View File

@@ -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;
}
}