12#if !defined(_INCLUDE_MM_PARSER_H_)
18#define _INCLUDE_MM_PARSER_H_
20#define MFMT_PARSER_STATE_SIZE 48
23#define MFMT_PLACE_MAX_NUM 16
26#define MFMT_PLACE_MAX_WIDTH 32
29#define MFMT_CHRONO_PLACE_MAX_NUM 8
#define MSTR_EXPORT_API(ret)
Definition mm_cfg.h:421
struct tagMStrFmtValueFormatSpec MStrFmtValueFormatSpec
一般变量的格式化描述标记
#define MFMT_CHRONO_PLACE_MAX_NUM
日期和时间最多支持的placement数目
Definition mm_parser.h:29
struct tagMStrFmtFormatSpec MStrFmtFormatSpec
格式化标记
tagMStrFmtChronoValueType
日期和时间的值类型
Definition mm_parser.h:221
@ MStrFmtChronoValueType_Hour
时 (12h制)
Definition mm_parser.h:244
@ MStrFmtChronoValueType_Minute
分
Definition mm_parser.h:235
@ MStrFmtChronoValueType_Week
星期
Definition mm_parser.h:247
@ MStrFmtChronoValueType_SubSecond
子秒
Definition mm_parser.h:241
@ MStrFmtChronoValueType_Day
日
Definition mm_parser.h:229
@ MStrFmtChronoValueType_Hour24
时 (24h制)
Definition mm_parser.h:232
@ MStrFmtChronoValueType_Year
年
Definition mm_parser.h:223
@ MStrFmtChronoValueType_Month
月
Definition mm_parser.h:226
@ MStrFmtChronoValueType_Second
秒
Definition mm_parser.h:238
mstr_fmt_parser_end_position(MStrFmtParserState *state, const char *pbeg)
计算parser停止的位置
Definition mm_parser.c:432
mstr_fmt_parser_init(byte_t *mem, const char *inp, MStrFmtParserState **ppstate)
初始化Parser状态
Definition mm_parser.c:386
mstr_fmt_parse_goal(MStrFmtParserState *state, MStrFmtParseResult *result)
解析 replacement field
Definition mm_parser.c:403
struct tagMStrFmtArgProperty MStrFmtArgProperty
解析过程中的参数额外属性
struct tagMStrFmtFormatDescript MStrFmtFormatDescript
分析器的格式化标记
tagMStrFmtSignDisplay
格式化值时候的符号显示方式
Definition mm_parser.h:152
@ MStrFmtSignDisplay_NegOnly
仅在值小于0时显示符号
Definition mm_parser.h:157
@ MStrFmtSignDisplay_Always
总是显示符号
Definition mm_parser.h:154
@ MStrFmtSignDisplay_Neg_Or_Space
在小于0时显示负号, 大于0时显示为空格
Definition mm_parser.h:160
struct tagMStrFmtChronoFormatSpec MStrFmtChronoFormatSpec
时间的格式化描述标记
enum tagMStrFmtSignDisplay MStrFmtSignDisplay
格式化值时候的符号显示方式
struct tagMStrFmtParseResult MStrFmtParseResult
解析器结果
enum tagMStrFmtArgType MStrFmtArgType
格式化参数的类型
tagMStrFmtArgClass
指定参数的分类
Definition mm_parser.h:47
@ MStrFmtArgClass_Value
表示该位置是一个值
Definition mm_parser.h:49
@ MStrFmtArgClass_EscapeChar
表示该位置是一个转义字符
Definition mm_parser.h:55
@ MStrFmtArgClass_Array
表示该位置是一个数组
Definition mm_parser.h:52
tagMStrFmtAlign
格式化参数的对齐方式
Definition mm_parser.h:136
@ MStrFmtAlign_Right
右对齐, 在左侧填充内容
Definition mm_parser.h:144
@ MStrFmtAlign_Left
左对齐, 在右侧填充内容
Definition mm_parser.h:138
@ MStrFmtAlign_Center
居中, 在两侧填充内容
Definition mm_parser.h:141
tagMStrFmtArgType
格式化参数的类型
Definition mm_parser.h:63
@ MStrFmtArgType_Array_CString
C字符串指针组成的数组
Definition mm_parser.h:119
@ MStrFmtArgType_QuantizedValue
量化值
Definition mm_parser.h:92
@ MStrFmtArgType_Array_Time
时间结构体组成的数组
Definition mm_parser.h:122
@ MStrFmtArgType_Array_Uint16
无符号16位整数数组(const uint16_t*)
Definition mm_parser.h:113
@ MStrFmtArgType_Time
时间
Definition mm_parser.h:89
@ MStrFmtArgType_Array_Uint8
无符号8位整数数组(const uint8_t*)
Definition mm_parser.h:110
@ MStrFmtArgType_Uint16
无符号16位整数值
Definition mm_parser.h:80
@ MStrFmtArgType_Array_QuantizedValue
量化值数组
Definition mm_parser.h:125
@ MStrFmtArgType_Array_Uint32
无符号32位整数数组(const uint32_t*)
Definition mm_parser.h:116
@ MStrFmtArgType_Uint32
无符号32位整数值
Definition mm_parser.h:83
@ MStrFmtArgType_Unknown
未知参数类型
Definition mm_parser.h:65
@ MStrFmtArgType_Array_Int8
8位整数数组(const int8_t*)
Definition mm_parser.h:101
@ MStrFmtArgType_Array_Int32
32位整数数组(const int32_t*)
Definition mm_parser.h:107
@ MStrFmtArgType_Int8
8位整数值
Definition mm_parser.h:68
@ MStrFmtArgType_Array_Int16
16位整数数组(const int16_t*)
Definition mm_parser.h:104
@ MStrFmtArgType_QuantizedUnsignedValue
无符号量化值
Definition mm_parser.h:95
@ MStrFmtArgType_Array_Bit
Array type, 要和上面的值顺序一致
Definition mm_parser.h:98
@ MStrFmtArgType_Int16
16位整数值
Definition mm_parser.h:71
@ MStrFmtArgType_CString
C字符串指针
Definition mm_parser.h:86
@ MStrFmtArgType_Array_QuantizedUnsignedValue
无符号量化值数组
Definition mm_parser.h:128
@ MStrFmtArgType_Int32
32位整数值
Definition mm_parser.h:74
@ MStrFmtArgType_Uint8
无符号8位整数值
Definition mm_parser.h:77
enum tagMStrFmtFormatType MStrFmtFormatType
进行格式化的方式
struct tagMStrFmtChronoValueFormatSpec MStrFmtChronoValueFormatSpec
日期和时间的值的格式化描述
struct tagMStrFmtParseResultValueResult MStrFmtParseResultValueResult
解析结果的值, 表示一个值的解析结果
enum tagMStrFmtAlign MStrFmtAlign
格式化参数的对齐方式
enum tagMStrFmtArgClass MStrFmtArgClass
指定参数的分类
enum tagMStrFmtChronoValueType MStrFmtChronoValueType
日期和时间的值类型
struct tagMStrFmtChronoItemFormatSpec MStrFmtChronoItemFormatSpec
时间的格式化描述标记的项
union tagMStrFmtParseResultValue MStrFmtParseResultValue
解析结果的值
union tagMStrFmtFormatSpecUnion MStrFmtFormatSpecUnion
格式化标记
struct tagMStrFmtParseResultArrayResult MStrFmtParseResultArrayResult
解析结果的值, 表示一个数组的解析结果
tagMStrFmtFormatType
进行格式化的方式
Definition mm_parser.h:168
@ MStrFmtFormatType_UnSpec
未指定的转换方式
Definition mm_parser.h:170
@ MStrFmtFormatType_Hex_UpperCase_WithPrefix
大写十六进制值, 带"0X"前缀
Definition mm_parser.h:191
@ MStrFmtFormatType_Binary
二进制值字符串
Definition mm_parser.h:173
@ MStrFmtFormatType_Hex_WithPrefix
小写十六进制值, 带"0x"前缀
Definition mm_parser.h:188
@ MStrFmtFormatType_Hex_UpperCase
大写十六进制值字符串
Definition mm_parser.h:185
@ MStrFmtFormatType_Hex
小写十六进制值字符串
Definition mm_parser.h:182
@ MStrFmtFormatType_Oct
八进制值字符串
Definition mm_parser.h:176
@ MStrFmtFormatType_Deciaml
十进制值字符串
Definition mm_parser.h:179
enum tagMStrResult mstr_result_t
结果类型
uint8_t byte_t
字节(无符号)
Definition mm_type.h:26
bool mstr_bool_t
布尔值
Definition mm_type.h:57
size_t usize_t
尺寸(无符号)
Definition mm_type.h:32
解析过程中的参数额外属性
Definition mm_parser.h:337
uint32_t a
Definition mm_parser.h:338
uint32_t b
Definition mm_parser.h:338
解析结果的值, 表示一个数组的解析结果
Definition mm_parser.h:368
const char * split_end
split chars结束位置
Definition mm_parser.h:385
uint32_t id
参数位置
Definition mm_parser.h:370
MStrFmtArgProperty ele_prop
附带参数
Definition mm_parser.h:376
MStrFmtArgType ele_typ
参数类型
Definition mm_parser.h:373
MStrFmtFormatDescript spec
格式化描述
Definition mm_parser.h:379
const char * split_beg
split chars, 引用自fmt, [beg, end)是需要的split char
Definition mm_parser.h:382
解析结果的值, 表示一个值的解析结果
Definition mm_parser.h:346
const char * reserved[2]
align
Definition mm_parser.h:360
MStrFmtArgProperty prop
附带参数
Definition mm_parser.h:354
MStrFmtFormatDescript spec
格式化描述
Definition mm_parser.h:357
MStrFmtArgType typ
参数类型
Definition mm_parser.h:351
uint32_t id
参数位置
Definition mm_parser.h:348
解析器结果
Definition mm_parser.h:408
MStrFmtParseResultValue val
值
Definition mm_parser.h:413
MStrFmtArgClass arg_class
参数分类
Definition mm_parser.h:410
分析器状态
Definition mm_parser.c:273
解析结果的值
Definition mm_parser.h:392
char escape_char
[MStrFmtArgClass: EscapeChar] 转义字符
Definition mm_parser.h:394
MStrFmtParseResultValueResult val
[MStrFmtArgClass: Value] 格式化信息
Definition mm_parser.h:397
MStrFmtParseResultArrayResult arr
[MStrFmtArgClass: Array] 格式化信息
Definition mm_parser.h:400