//===- FuzzerDictionary.h - Internal header for the Fuzzer ------*- C++ -* ===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // fuzzer::Dictionary //===----------------------------------------------------------------------===// #ifndef LLVM_FUZZER_DICTIONARY_H #define LLVM_FUZZER_DICTIONARY_H #include "FuzzerDefs.h" #include "FuzzerIO.h" #include "FuzzerUtil.h" #include <algorithm> #include <limits> namespace fuzzer { // A simple POD sized array of bytes. template <size_t kMaxSizeT> class FixedWord { … }; Word; class DictionaryEntry { … }; class Dictionary { … }; // Parses one dictionary entry. // If successful, writes the entry to Unit and returns true, // otherwise returns false. bool ParseOneDictionaryEntry(const std::string &Str, Unit *U); // Parses the dictionary file, fills Units, returns true iff all lines // were parsed successfully. bool ParseDictionaryFile(const std::string &Text, std::vector<Unit> *Units); } // namespace fuzzer #endif // LLVM_FUZZER_DICTIONARY_H