diff options
| author | Julian Andres Klode <jak@debian.org> | 2020-02-03 13:26:41 +0000 |
|---|---|---|
| committer | Julian Andres Klode <jak@debian.org> | 2020-02-03 13:26:41 +0000 |
| commit | 3ee6fdc08a91ef65e5a69f8857de3bf86a8fe1ad (patch) | |
| tree | d7f2bed62c67b05e01095865056634db0f9b6be7 /apt-pkg/cachefilter-patterns.h | |
| parent | efc52f1fc9acb6ec815f695506bc8d5045c76834 (diff) | |
| parent | 404771d0ec11f26a0b631018719e2918a049455b (diff) | |
Merge branch 'pu/short-patterns' into 'master'
Implement short patterns
See merge request apt-team/apt!100
Diffstat (limited to 'apt-pkg/cachefilter-patterns.h')
| -rw-r--r-- | apt-pkg/cachefilter-patterns.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/apt-pkg/cachefilter-patterns.h b/apt-pkg/cachefilter-patterns.h index bd8ce7e7e..4eeb68594 100644 --- a/apt-pkg/cachefilter-patterns.h +++ b/apt-pkg/cachefilter-patterns.h @@ -39,6 +39,8 @@ struct PatternTreeParser size_t start = 0; size_t end = 0; + explicit Node(size_t start = 0, size_t end = 0) : start(start), end(end) {} + virtual std::ostream &render(std::ostream &os) { return os; }; std::nullptr_t error(std::string message); }; @@ -71,7 +73,7 @@ struct PatternTreeParser struct State { - off_t offset = 0; + size_t offset = 0; }; APT::StringView sentence; @@ -90,11 +92,18 @@ struct PatternTreeParser /// There may not be anything before or after the pattern, except for /// whitespace. std::unique_ptr<Node> parseTop(); + std::unique_ptr<Node> parse(); // public for test cases only private: - std::unique_ptr<Node> parse(); + std::unique_ptr<Node> parseOr(); + std::unique_ptr<Node> parseAnd(); + std::unique_ptr<Node> parseUnary(); + std::unique_ptr<Node> parsePrimary(); + std::unique_ptr<Node> parseGroup(); std::unique_ptr<Node> parsePattern(); - std::unique_ptr<Node> parseWord(); + std::unique_ptr<Node> parseShortPattern(); + std::unique_ptr<Node> parseArgument(bool shrt); + std::unique_ptr<Node> parseWord(bool shrt); std::unique_ptr<Node> parseQuotedWord(); }; |
