clang-tools  7.0.0
Classes | Namespaces | Typedefs | Functions
Iterator.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <memory>
#include <vector>
Include dependency graph for Iterator.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  clang::clangd::dex::Iterator
 Iterator is the interface for Query Tree node. More...
 

Namespaces

 clang
 ===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
 
 clang::clangd
 
 clang::clangd::dex
 

Typedefs

using clang::clangd::dex::DocID = uint32_t
 Symbol position in the list of all index symbols sorted by a pre-computed symbol quality. More...
 
using clang::clangd::dex::PostingList = std::vector< DocID >
 Contains sorted sequence of DocIDs all of which belong to symbols matching certain criteria, i.e. More...
 
using clang::clangd::dex::PostingListRef = llvm::ArrayRef< DocID >
 Immutable reference to PostingList object. More...
 

Functions

std::vector< DocID > clang::clangd::dex::consume (Iterator &It)
 Exhausts given iterator and returns all processed DocIDs. More...
 
std::unique_ptr< Iterator > clang::clangd::dex::create (PostingListRef Documents)
 Returns a document iterator over given PostingList. More...
 
std::unique_ptr< Iterator > clang::clangd::dex::createAnd (std::vector< std::unique_ptr< Iterator >> Children)
 Returns AND Iterator which performs the intersection of the PostingLists of its children. More...
 
std::unique_ptr< Iterator > clang::clangd::dex::createOr (std::vector< std::unique_ptr< Iterator >> Children)
 Returns OR Iterator which performs the union of the PostingLists of its children. More...
 
template<typename... Args>
std::unique_ptr< Iterator > clang::clangd::dex::createAnd (Args... args)
 This allows createAnd(create(...), create(...)) syntax. More...
 
template<typename... Args>
std::unique_ptr< Iterator > clang::clangd::dex::createOr (Args... args)
 This allows createOr(create(...), create(...)) syntax. More...
 
template<typename HeadT , typename... TailT>
void clang::clangd::dex::populateChildren (std::vector< std::unique_ptr< Iterator >> &Children, HeadT &Head, TailT &... Tail)
 
template<typename HeadT >
void clang::clangd::dex::populateChildren (std::vector< std::unique_ptr< Iterator >> &Children, HeadT &Head)