19#ifndef _LOG4CXX_HELPER_PATTERN_CONVERTER_H
20#define _LOG4CXX_HELPER_PATTERN_CONVERTER_H
34typedef std::function<PatternConverterPtr(
const std::vector<LogString>& options)>
PatternConstructor;
35typedef std::map<LogString, PatternConstructor>
PatternMap;
50class LOG4CXX_EXPORT PatternParser
55 static const logchar ESCAPE_CHAR;
87 static size_t extractConverter(
89 LogString::size_type i,
LogString& convBuf,
99 static size_t extractOptions(
const LogString&
pattern, LogString::size_type i,
100 std::vector<LogString>& options);
103#if LOG4CXX_ABI_VERSION <= 15
112 [[ deprecated(
"Parsing into two vectors is longer supported" ) ]]
115 std::vector<PatternConverterPtr>& patternConverters,
116 std::vector<FormattingInfoPtr>& formattingInfos,
141 static PatternConverterPtr createConverter(
145 std::vector<LogString>& options);
160 static size_t finalizeConverter(
164 PatternConverterList& patternConverter
167 static bool isUnicodeIdentifierStart(logchar c);
168 static bool isUnicodeIdentifierPart(logchar c);
static void parse(const LogString &pattern, std::vector< PatternConverterPtr > &patternConverters, std::vector< FormattingInfoPtr > &formattingInfos, const PatternMap &rules)
Parse a format specifier.
static PatternConverterList parse(const LogString &pattern, const PatternMap &rules)
Convert pattern to converters using rules.
Definition cacheddateformat.h:26
std::function< PatternConverterPtr(const std::vector< LogString > &options)> PatternConstructor
Definition patternparser.h:34
std::map< LogString, PatternConstructor > PatternMap
Definition patternparser.h:35
std::shared_ptr< FormattingInfo > FormattingInfoPtr
Definition formattinginfo.h:32
LOG4CXX_LIST_DEF(PatternConverterList, PatternConverterPtr)
std::basic_string< logchar > LogString
Definition logstring.h:60