#include using namespace vl; using namespace vl::collections; using namespace vl::filesystem; using namespace vl::glr; using namespace vl::glr::xml; using namespace vl::regex; using namespace vl::console; using namespace vl::stream; extern Regex regexInclude; extern Regex regexSystemInclude; extern Regex regexInstruction; extern const vint include_path; extern const vint systemInclude_path; extern const vint instruction_name; extern const vint instruction_param; inline WString ReadFile(const FilePath& path) { WString text; BomEncoder::Encoding encoding; bool containsBom; File(path).ReadAllTextWithEncodingTesting(text, encoding, containsBom); return text; } extern LazyList GetCppFiles( const FilePath& folder, List& exceptions ); extern LazyList GetHeaderFiles( const FilePath& folder, List& exceptions ); extern void CategorizeCodeFiles( Ptr config, LazyList files, Group& categorizedFiles, Dictionary& inputFileToCategories ); extern LazyList GetIncludedFiles( const FilePath& codeFile, const Dictionary& skippedImportFiles, Dictionary>& cachedFileToIncludes, Group>& conditionOns, Group>& conditionOffs ); extern void Combine( const Dictionary& inputFileToOutputFiles, const Dictionary& skippedImportFiles, Dictionary>& cachedFileToIncludes, Group>& conditionOns, Group>& conditionOffs, const List& files, FilePath outputFilePath, FilePath outputIncludeFilePath, SortedList& systemIncludes, LazyList externalIncludes );