From 4181043d7439648b351be2d080a6e3cb1e1259c3 Mon Sep 17 00:00:00 2001 From: Edward Klimoshenko Date: Thu, 21 Jul 2022 22:46:50 +0000 Subject: [PATCH] Invoke `SummitAST` from `ApexParser` - Add call to `SummitAST` in `ApexParser` - Fix NPE involving `suppressMap` to allow `ApexTreeBuilder` to run - Remove unused `TopLevelVisitor` --- .../pmd/lang/apex/ast/ApexParser.java | 45 ++----------------- .../pmd/lang/apex/ast/ApexTreeBuilder.java | 4 +- 2 files changed, 7 insertions(+), 42 deletions(-) diff --git a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexParser.java b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexParser.java index f760b1b141..064e878a9c 100644 --- a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexParser.java +++ b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexParser.java @@ -4,7 +4,6 @@ package net.sourceforge.pmd.lang.apex.ast; -import com.google.summit.ast.CompilationUnit; import java.io.IOException; import java.io.Reader; import java.util.Map; @@ -15,6 +14,9 @@ import net.sourceforge.pmd.lang.apex.ApexParserOptions; import net.sourceforge.pmd.lang.ast.ParseException; import net.sourceforge.pmd.util.IOUtil; +import com.google.summit.SummitAST; +import com.google.summit.ast.CompilationUnit; + /** * @deprecated Internal API */ @@ -31,15 +33,7 @@ public class ApexParser { } public CompilationUnit parseApex(final String sourceCode) throws ParseException { - /* - TopLevelVisitor visitor = new TopLevelVisitor(); - Locations.useIndexFactory(); - CompilerService.INSTANCE.visitAstFromString(sourceCode, visitor); - - return visitor.getTopLevel(); - */ - // TODO(b/239648780) - return null; + return SummitAST.INSTANCE.parseAndTranslate(sourceCode, null); } public ApexNode parse(final Reader reader) { @@ -62,35 +56,4 @@ public class ApexParser { public Map getSuppressMap() { return suppressMap; } - - /* - private class TopLevelVisitor extends AstVisitor { - Compilation topLevel; - - public Compilation getTopLevel() { - return topLevel; - } - - @Override - public void visitEnd(UserClass node, AdditionalPassScope scope) { - topLevel = node; - } - - @Override - public void visitEnd(UserEnum node, AdditionalPassScope scope) { - topLevel = node; - } - - @Override - public void visitEnd(UserInterface node, AdditionalPassScope scope) { - topLevel = node; - } - - @Override - public void visitEnd(UserTrigger node, AdditionalPassScope scope) { - topLevel = node; - } - } - */ - // TODO(b/239648780) } diff --git a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexTreeBuilder.java b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexTreeBuilder.java index 98af7b12a3..55d73edb4a 100644 --- a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexTreeBuilder.java +++ b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexTreeBuilder.java @@ -431,7 +431,9 @@ public final class ApexTreeBuilder { } public Map getSuppressMap() { - return commentInfo.suppressMap; +// return commentInfo.suppressMap; + // TODO(b/239648780) + return new HashMap<>(); } /*