KiCad PCB EDA Suite
Loading...
Searching...
No Matches
KIEVAL_TEXT_TOKENIZER Class Reference

Public Member Functions

 KIEVAL_TEXT_TOKENIZER (std::string_view input, calc_parser::ERROR_COLLECTOR *error_collector=nullptr, EDA_UNITS default_units=EDA_UNITS::MM)
 
TextEvalToken get_next_token (calc_parser::TOKEN_TYPE &token_value)
 
constexpr bool has_more_tokens () const noexcept
 
constexpr size_t get_line () const noexcept
 
constexpr size_t get_column () const noexcept
 

Private Types

enum class  TOKENIZER_CONTEXT { TEXT , EXPRESSION }
 
using CLASSIFIER = utf8_utils::CHARACTER_CLASSIFIER
 
using SI_HANDLER = utf8_utils::SI_PREFIX_HANDLER
 

Private Member Functions

constexpr char32_t current_char () const noexcept
 
constexpr char32_t peek_char (size_t offset=1) const noexcept
 
constexpr void advance_position (size_t count=1) noexcept
 
void skip_whitespace () noexcept
 
void add_error (std::string_view message) const
 
calc_parser::TOKEN_TYPE parse_string_literal (char32_t quote_char)
 
calc_parser::TOKEN_TYPE parse_number ()
 
calc_parser::TOKEN_TYPE parse_identifier ()
 
calc_parser::TOKEN_TYPE parse_text_content ()
 

Static Private Member Functions

static calc_parser::TOKEN_TYPE make_string_token (std::string value) noexcept
 
static constexpr calc_parser::TOKEN_TYPE make_number_token (double value) noexcept
 

Private Attributes

std::u32string m_text
 
size_t m_pos { 0 }
 
size_t m_line { 1 }
 
size_t m_column { 1 }
 
TOKENIZER_CONTEXT m_context { TOKENIZER_CONTEXT::TEXT }
 
int m_braceNestingLevel { 0 }
 
calc_parser::ERROR_COLLECTORm_errorCollector { nullptr }
 
EDA_UNITS m_defaultUnits { EDA_UNITS::MM }
 

Detailed Description

Definition at line 451 of file text_eval_wrapper.cpp.

Member Typedef Documentation

◆ CLASSIFIER

◆ SI_HANDLER

Member Enumeration Documentation

◆ TOKENIZER_CONTEXT

enum class KIEVAL_TEXT_TOKENIZER::TOKENIZER_CONTEXT
strongprivate
Enumerator
TEXT 
EXPRESSION 

Definition at line 454 of file text_eval_wrapper.cpp.

Constructor & Destructor Documentation

◆ KIEVAL_TEXT_TOKENIZER()

KIEVAL_TEXT_TOKENIZER::KIEVAL_TEXT_TOKENIZER ( std::string_view input,
calc_parser::ERROR_COLLECTOR * error_collector = nullptr,
EDA_UNITS default_units = EDA_UNITS::MM )
inlineexplicit

Member Function Documentation

◆ add_error()

void KIEVAL_TEXT_TOKENIZER::add_error ( std::string_view message) const
inlineprivate

Definition at line 506 of file text_eval_wrapper.cpp.

References m_column, m_errorCollector, and m_line.

Referenced by parse_number(), and parse_string_literal().

◆ advance_position()

void KIEVAL_TEXT_TOKENIZER::advance_position ( size_t count = 1)
inlineconstexprprivatenoexcept

◆ current_char()

char32_t KIEVAL_TEXT_TOKENIZER::current_char ( ) const
inlinenodiscardconstexprprivatenoexcept

◆ get_column()

size_t KIEVAL_TEXT_TOKENIZER::get_column ( ) const
inlinenodiscardconstexprnoexcept

Definition at line 1001 of file text_eval_wrapper.cpp.

References m_column.

◆ get_line()

size_t KIEVAL_TEXT_TOKENIZER::get_line ( ) const
inlinenodiscardconstexprnoexcept

Definition at line 1000 of file text_eval_wrapper.cpp.

References m_line.

◆ get_next_token()

◆ has_more_tokens()

bool KIEVAL_TEXT_TOKENIZER::has_more_tokens ( ) const
inlinenodiscardconstexprnoexcept

Definition at line 999 of file text_eval_wrapper.cpp.

References m_pos, and m_text.

◆ make_number_token()

static constexpr calc_parser::TOKEN_TYPE KIEVAL_TEXT_TOKENIZER::make_number_token ( double value)
inlinestaticnodiscardconstexprprivatenoexcept

Definition at line 525 of file text_eval_wrapper.cpp.

References calc_parser::TOKEN_TYPE::isString.

Referenced by parse_number().

◆ make_string_token()

static calc_parser::TOKEN_TYPE KIEVAL_TEXT_TOKENIZER::make_string_token ( std::string value)
inlinestaticnodiscardprivatenoexcept

◆ parse_identifier()

calc_parser::TOKEN_TYPE KIEVAL_TEXT_TOKENIZER::parse_identifier ( )
inlinenodiscardprivate

◆ parse_number()

◆ parse_string_literal()

calc_parser::TOKEN_TYPE KIEVAL_TEXT_TOKENIZER::parse_string_literal ( char32_t quote_char)
inlinenodiscardprivate

◆ parse_text_content()

calc_parser::TOKEN_TYPE KIEVAL_TEXT_TOKENIZER::parse_text_content ( )
inlinenodiscardprivate

◆ peek_char()

char32_t KIEVAL_TEXT_TOKENIZER::peek_char ( size_t offset = 1) const
inlinenodiscardconstexprprivatenoexcept

Definition at line 477 of file text_eval_wrapper.cpp.

References m_pos, and m_text.

Referenced by get_next_token(), parse_string_literal(), and parse_text_content().

◆ skip_whitespace()

void KIEVAL_TEXT_TOKENIZER::skip_whitespace ( )
inlineprivatenoexcept

Member Data Documentation

◆ m_braceNestingLevel

int KIEVAL_TEXT_TOKENIZER::m_braceNestingLevel { 0 }
private

Definition at line 465 of file text_eval_wrapper.cpp.

Referenced by get_next_token().

◆ m_column

size_t KIEVAL_TEXT_TOKENIZER::m_column { 1 }
private

Definition at line 463 of file text_eval_wrapper.cpp.

Referenced by add_error(), advance_position(), and get_column().

◆ m_context

TOKENIZER_CONTEXT KIEVAL_TEXT_TOKENIZER::m_context { TOKENIZER_CONTEXT::TEXT }
private

Definition at line 464 of file text_eval_wrapper.cpp.

Referenced by get_next_token(), and parse_number().

◆ m_defaultUnits

EDA_UNITS KIEVAL_TEXT_TOKENIZER::m_defaultUnits { EDA_UNITS::MM }
private

Definition at line 467 of file text_eval_wrapper.cpp.

Referenced by KIEVAL_TEXT_TOKENIZER(), and parse_number().

◆ m_errorCollector

calc_parser::ERROR_COLLECTOR* KIEVAL_TEXT_TOKENIZER::m_errorCollector { nullptr }
private

Definition at line 466 of file text_eval_wrapper.cpp.

Referenced by add_error(), and KIEVAL_TEXT_TOKENIZER().

◆ m_line

size_t KIEVAL_TEXT_TOKENIZER::m_line { 1 }
private

Definition at line 462 of file text_eval_wrapper.cpp.

Referenced by add_error(), advance_position(), and get_line().

◆ m_pos

◆ m_text


The documentation for this class was generated from the following file: