libxr
Embedded C++ framework for bare-metal, RTOS and Linux
Loading...
Searching...
No Matches
SourceSyntax::SourceAnalysisScratch< MaxFieldCount > Struct Template Reference

仅源串分析阶段使用的保守临时累加器 / Conservative temporary accumulator used during source-only analysis More...

#include <format_frontend_source.hpp>

Public Member Functions

consteval Error Text (size_t, size_t) const
 
consteval Error Field (const ParsedField &field)
 
consteval Error Text (size_t, size_t) const
 
consteval Error Field (const Conversion &conversion)
 

Public Attributes

std::array< size_t, MaxFieldCount > order {}
 按字段顺序排列的源参数索引 / field-ordered source argument indexes
 
size_t field_count = 0
 已解析的替换字段数量 / parsed replacement-field count
 
size_t required_argument_count
 调用点至少需要的参数个数 / minimum call-site argument count
 
Error error = Error::None
 首个解析错误 / first parse error
 
size_t argument_count
 最高引用到的参数个数 / highest referenced argument count
 

Detailed Description

template<size_t MaxFieldCount>
struct SourceSyntax::SourceAnalysisScratch< MaxFieldCount >

仅源串分析阶段使用的保守临时累加器 / Conservative temporary accumulator used during source-only analysis

供位置参数分析使用的仅源串临时摘要 / Source-only scratch summary for positional argument analysis

Template Parameters
MaxFieldCount已解析字段数量的保守上界 / Conservative upper bound for parsed field count
MaxFieldCount已解析转换项数量的保守上界 / Conservative upper bound for parsed conversion count

Definition at line 15 of file printf_frontend_source.hpp.

Member Function Documentation

◆ Field() [1/2]

template<size_t MaxFieldCount>
Error SourceSyntax::SourceAnalysisScratch< MaxFieldCount >::Field ( const Conversion & conversion)
inlinenodiscardconsteval

Definition at line 26 of file printf_frontend_source.hpp.

27 {
28 order[field_count++] = conversion.arg_index;
29 size_t used_argument_count = conversion.arg_index + 1;
30 if (used_argument_count > argument_count)
31 {
32 argument_count = used_argument_count;
33 }
34 return Error::None;
35 }
size_t arg_index
当前字段消耗的源参数索引 / source argument index consumed by this field
std::array< size_t, MaxFieldCount > order
按字段顺序排列的源参数索引 / field-ordered source argument indexes
size_t argument_count
最高引用到的参数个数 / highest referenced argument count
size_t field_count
已解析的替换字段数量 / parsed replacement-field count

◆ Field() [2/2]

template<size_t MaxFieldCount>
Error SourceSyntax::SourceAnalysisScratch< MaxFieldCount >::Field ( const ParsedField & field)
inlinenodiscardconsteval

Definition at line 39 of file format_frontend_source.hpp.

40 {
41 order[field_count++] = field.arg_index;
42 size_t used_argument_count = field.arg_index + 1;
43 if (used_argument_count > required_argument_count)
44 {
45 required_argument_count = used_argument_count;
46 }
47 return Error::None;
48 }
size_t required_argument_count
调用点至少需要的参数个数 / minimum call-site argument count

◆ Text() [1/2]

template<size_t MaxFieldCount>
Error SourceSyntax::SourceAnalysisScratch< MaxFieldCount >::Text ( size_t ,
size_t  ) const
inlinenodiscardconsteval

Definition at line 37 of file format_frontend_source.hpp.

37{ return Error::None; }

◆ Text() [2/2]

template<size_t MaxFieldCount>
Error SourceSyntax::SourceAnalysisScratch< MaxFieldCount >::Text ( size_t ,
size_t  ) const
inlinenodiscardconsteval

Definition at line 24 of file printf_frontend_source.hpp.

24{ return Error::None; }

Member Data Documentation

◆ argument_count

template<size_t MaxFieldCount>
size_t SourceSyntax::SourceAnalysisScratch< MaxFieldCount >::argument_count
Initial value:
=
0

最高引用到的参数个数 / highest referenced argument count

Definition at line 20 of file printf_frontend_source.hpp.

◆ error

template<size_t MaxFieldCount>
Error SourceSyntax::SourceAnalysisScratch< MaxFieldCount >::error = Error::None

首个解析错误 / first parse error

首个解析或分析错误 / first parse/analysis error

Definition at line 35 of file format_frontend_source.hpp.

◆ field_count

template<size_t MaxFieldCount>
size_t SourceSyntax::SourceAnalysisScratch< MaxFieldCount >::field_count = 0

已解析的替换字段数量 / parsed replacement-field count

已解析的转换项数量 / parsed conversion count

Definition at line 32 of file format_frontend_source.hpp.

◆ order

template<size_t MaxFieldCount>
std::array< size_t, MaxFieldCount > SourceSyntax::SourceAnalysisScratch< MaxFieldCount >::order {}

按字段顺序排列的源参数索引 / field-ordered source argument indexes

按字段顺序记录参数索引的临时缓冲区 conservative field-order scratch buffer

Definition at line 30 of file format_frontend_source.hpp.

30{};

◆ required_argument_count

template<size_t MaxFieldCount>
size_t SourceSyntax::SourceAnalysisScratch< MaxFieldCount >::required_argument_count
Initial value:
=
0

调用点至少需要的参数个数 / minimum call-site argument count

Definition at line 33 of file format_frontend_source.hpp.


The documentation for this struct was generated from the following files: