SquidAstVisitorContextImpl<Grammar> savci = new SquidAstVisitorContextImpl<Grammar>(new SourceProject("Custom Grammar")); AstScanner.Builder b = AstScanner.builder(savci); b.setBaseParser(ExampleParser.create()); b.setCommentAnalyser(new CommentAnalyser { @override public bool isBlank(String line) { return true; } @override public String getContents(String comment) { return ""; } }); b.setFileMetric(FILES); // I am not sure what a 'Metric' is as both the documentation and source are unclear on that, you may have to experiment with this value. b.withSquidAstVisitor(new ExampleRule()); AstScanner<Grammar> as = b.build(); as.scanFile(new File("path/to/source"));
public void scan(Iterable<File> files) { SourceProject project = new SourceProject("Java Project"); index.index(project); project.setSourceCodeIndexer(index); simpleScan(files); }
protected AstScanner(Builder<G> builder) { this.visitors = Lists.newArrayList(builder.visitors); this.parser = builder.baseParser; this.context = builder.context; this.context.setGrammar(parser.getGrammar()); this.context.getProject().setSourceCodeIndexer(indexer); this.context.setCommentAnalyser(builder.commentAnalyser); this.metrics = builder.metrics; this.filesMetric = builder.filesMetric; indexer.index(context.getProject()); }
public Squid(SquidConfiguration conf) { pico = new TransientPicoContainer(); pico.addComponent(conf); project = new SourceProject("Project"); squidIndex = new SquidIndex(); squidIndex.index(project); pico.addComponent(squidIndex); pico.addComponent(project); pico.addComponent(graph); }
public static AstScanner<Grammar> create(PythonConfiguration conf, SquidAstVisitor<Grammar>... visitors) { final SquidAstVisitorContextImpl<Grammar> context = new SquidAstVisitorContextImpl<Grammar>(new SourceProject("Python Project")); final Parser<Grammar> parser = PythonParser.create(conf); AstScanner.Builder<Grammar> builder = AstScanner.<Grammar>builder(context).setBaseParser(parser); builder.withMetrics(PythonMetric.values()); builder.setFilesMetric(PythonMetric.FILES); setCommentAnalyser(builder); setClassesAnalyser(builder); setMethodAnalyser(builder); setMetrics(conf, builder); /* External visitors (typically Check ones) */ for (SquidAstVisitor<Grammar> visitor : visitors) { if (visitor instanceof CharsetAwareVisitor) { ((CharsetAwareVisitor) visitor).setCharset(conf.getCharset()); } builder.withSquidAstVisitor(visitor); } return builder.build(); }
public static AstScanner<ObjectiveCGrammar> create(ObjectiveCConfiguration conf, SquidAstVisitor<ObjectiveCGrammar>... visitors) { final SquidAstVisitorContextImpl<ObjectiveCGrammar> context = new SquidAstVisitorContextImpl<ObjectiveCGrammar>(new SourceProject("Objective-C Project")); final Parser<ObjectiveCGrammar> parser = ObjectiveCParser.create(conf);
public static AstScanner<ObjectiveCGrammar> create(ObjectiveCConfiguration conf, SquidAstVisitor<ObjectiveCGrammar>... visitors) { final SquidAstVisitorContextImpl<ObjectiveCGrammar> context = new SquidAstVisitorContextImpl<ObjectiveCGrammar>(new SourceProject("Objective-C Project")); final Parser<ObjectiveCGrammar> parser = ObjectiveCParser.create(conf);
public static AstScanner<SwiftGrammar> create(SwiftConfiguration conf, SquidAstVisitor<SwiftGrammar>... visitors) { final SquidAstVisitorContextImpl<SwiftGrammar> context = new SquidAstVisitorContextImpl<SwiftGrammar>(new SourceProject("Objective-C Project")); final Parser<SwiftGrammar> parser = SwiftParser.create(conf);
/** * Returns a scanner from configuration and visitors. * * @param config apex configuration. * @param visitors list of visitors. * @return a scanner. */ public static AstScanner<Grammar> create(ApexConfiguration config, SquidAstVisitor<Grammar>... visitors) { final SourceProject sourceProject = new SourceProject(PROJECT_NAME); final SquidAstVisitorContextImpl<Grammar> context = new SquidAstVisitorContextImpl<>(sourceProject); final Parser<Grammar> parser = ApexParser.create(config); AstScanner.Builder<Grammar> builder = AstScanner.<Grammar>builder(context).setBaseParser(parser); builder.withMetrics(ApexMetric.values()); builder.setFilesMetric(ApexMetric.FILES); setCommentAnalyser(builder); setClassesAnalyser(builder); setMethodAnalyser(builder); setMetrics(config, builder); for (SquidAstVisitor<Grammar> visitor : visitors) { builder.withSquidAstVisitor(visitor); } return builder.build(); }
public static AstScanner<LexerlessGrammar> create(CssConfiguration conf, @Nullable SonarComponents sonarComponents, SquidAstVisitor<LexerlessGrammar>... visitors) { final SquidAstVisitorContextImpl<LexerlessGrammar> context = new SquidAstVisitorContextImpl<LexerlessGrammar>(new SourceProject("Css Project")); final Parser<LexerlessGrammar> parser = new ParserAdapter<LexerlessGrammar>(conf.charset(), CssGrammar.createGrammar());
public static AstScanner<Grammar> create(CSharpConfiguration conf, SquidAstVisitor<Grammar>... visitors) { final SquidAstVisitorContextImpl<Grammar> context = new SquidAstVisitorContextImpl<Grammar>(new SourceProject("C# Project")); final Parser<Grammar> parser = CSharpParser.create(conf);
public static AstScanner<LexerlessGrammar> create(FlexConfiguration conf, SquidAstVisitor<LexerlessGrammar>... visitors) { final SquidAstVisitorContextImpl<LexerlessGrammar> context = new SquidAstVisitorContextImpl<LexerlessGrammar>(new SourceProject("Flex Project")); final Parser<LexerlessGrammar> parser = FlexParser.create(conf);
public static AstScanner<LexerlessGrammar> create(EcmaScriptConfiguration conf, SquidAstVisitor<LexerlessGrammar>... visitors) { final SquidAstVisitorContextImpl<LexerlessGrammar> context = new SquidAstVisitorContextImpl<LexerlessGrammar>(new SourceProject("JavaScript Project")); final Parser<LexerlessGrammar> parser = EcmaScriptParser.create(conf);
public static AstScanner<LexerlessGrammar> create(Charset charset, SquidAstVisitor<LexerlessGrammar>... visitors) { final SquidAstVisitorContextImpl<LexerlessGrammar> context = new SquidAstVisitorContextImpl<LexerlessGrammar>( new SourceProject("Erlang Project")); final Parser<LexerlessGrammar> parser = new ParserAdapter<LexerlessGrammar>(charset, ErlangGrammarImpl.createGrammar());