docs: @Override
    public void execute(SensorContext context) {
  
      List<SquidAstVisitor<Grammar>> visitors = new ArrayList<>((Collection) checks.all());
      visitors.add(new CxxHighlighterVisitor(context));
      visitors.add(new CxxFileLinesVisitor(language, fileLinesContextFactory, context));
  
      visitors.add(
        new CxxCpdVisitor(
          context,
          this.language.getBooleanOption(CPD_IGNORE_LITERALS_KEY).orElse(Boolean.FALSE),
          this.language.getBooleanOption(CPD_IGNORE_IDENTIFIERS_KEY).orElse(Boolean.FALSE)));
  
      CxxConfiguration cxxConf = createConfiguration(context.fileSystem(), context);
      cxxConf.setCollectMissingIncludes(visitors.stream().anyMatch(v -> v instanceof MissingIncludeFileCheck));
      AstScanner<Grammar> scanner = CxxAstScanner.create(this.language, cxxConf,
        visitors.toArray(new SquidAstVisitor[visitors.size()]));
  
      Iterable<InputFile> inputFiles = context.fileSystem().inputFiles(context.fileSystem().predicates()
        .and(context.fileSystem().predicates()
          .hasLanguage(this.language.getKey()), context.fileSystem().predicates()
          .hasType(InputFile.Type.MAIN)));
  
      List<File> files = new ArrayList<>();
      for (InputFile file : inputFiles) {
        files.add(new File(file.uri().getPath()));
      }
  
      scanner.scanFiles(files);
  
      Collection<SourceCode> squidSourceFiles = scanner.getIndex().search(new QueryByType(SourceFile.class));
      save(squidSourceFiles, context);
    }