Титульная страница | Пространства имен | Иерархия классов | Алфавитный указатель | Классы | Файлы | Члены пространства имен | Члены классов | Описания | Примеры

Пространство имен cls_2


Подробное описание

Основное пространство имен проекта Curl Like Syntax.


Классы

struct  cls_2::syn_state_trans_t
struct  cls_2::syn_state_t
class  cls_2::file_scope_tag_t
class  cls_2::_parser_t
class  cls_2::input_stream_t
 Базовый класс для входного потока. Подробнее...

class  cls_2::error_stream_t
class  cls_2::msg_storage_t
class  cls_2::tag_formatter_t
class  cls_2::parser_context_t
 Контекст, на котором должен производиться разбор. Подробнее...

class  cls_2::tag_t
 Base class for tag. Подробнее...

class  cls_2::parser_t
class  cls_2::def_msg_storage_t
class  cls_2::def_tag_formatter_t< Writter >
class  cls_2::es_file_line_num_t
 Класс потока ошибок, который отображает имя файла и текущий номер строки. Подробнее...

class  cls_2::es_tag_stack_t
 Класс потока ошибок, который отображает содержимое стека разбираемых тегов. Подробнее...

class  cls_2::input_stream_file_t
class  cls_2::lex_t
 Лексический анализатор. Подробнее...

class  cls_2::simple_tag_formatter_t< Writter >
class  cls_2::tfactory_t
class  cls_2::tfactory_constraint_t
class  cls_2::tag_by_factory_t
class  cls_2::tag_no_value_t
 Tag which do not accept token "NONSPACE" or "STRING". Подробнее...

class  cls_2::tag_text_t
class  cls_2::tag_vector_of_tags_t< Tag >
 Tag to parse multiple instances of one tag. Подробнее...

class  cls_2::tag_vector_of_tags_t< Tag >::const_iterator
 Класс константного итератора. Подробнее...

class  cls_2::to_cls_format_t
 Вспомогательный класс для облегчения преобразования значений в формат CLS. Подробнее...

class  cls_2::scalar_constraint_t< T >
class  cls_2::scalar_format_t< T >
class  cls_2::scalar_format_t< long >
class  cls_2::scalar_format_t< unsigned long >
class  cls_2::scalar_format_t< int >
class  cls_2::scalar_format_t< unsigned int >
class  cls_2::scalar_format_t< double >
class  cls_2::scalar_format_t< std::string >
class  cls_2::scalar_nonspace_format_t
class  cls_2::tag_scalar_t< T, Format >
 Шаблон тега обрабатывающего одиночные скалярные значения. Подробнее...

class  cls_2::tag_scalar_vector_t< T, Format >
class  cls_2::tag_scalar_vector_t< T, Format >::const_iterator
 Класс константного итератора. Подробнее...


Коды ошибок.

const int c_ok = 0
 Нет ошибок.

const int c_syntax_error = 1
 Синтаксическая ошибка.

const int c_semantic_error = 2
 Семантическая ошибка.

const int c_eof = 3
 Ошибка преждевременного достижения конца входного потока.

const int c_io_error = 4
 Ошибка ввода вывода.

const int c_lex_error = 5
 Лексическая ошибка.

const int c_no_input_stream = 6
 Отсутствие входного потока при попытке проведения разбора.


Определения типов

typedef int(_parser_t::* pfn_state_proc_t )(parser_context_t &context)
typedef void(_parser_t::* pfn_token_proc_t )(parser_context_t &context, char ch)

Функции

bool check_hex_digits (const char *p)
bool check_oct_digits (const char *p)
bool check_bin_digits (const char *p)
bool check_dec_digits (const char *p)
bool check_double_digits (const char *p)
void parse_binary (const char *s, long &result)
bool parse_digits (const char *pcsz, long &result, char base_mark)
 Попытка разбора знакового длинного целого.

void parse_binary (const char *s, unsigned long &result)
bool parse_digits (const char *pcsz, unsigned long &result, char base_mark)
 Попытка разбора беззнакового длинного целого.

bool parse_digits (const char *pcsz, double &result)
bool is_eol (char ch)
bool is_char_must_be_ignored (char ch)
bool is_space (char ch)
bool is_spec_char (char c)
 Является ли символ управляющим и нужно ли его преобразовывать в шестнадцатиричное представление.

size_t calc_required_capacity (const char *v)
void translate (const char *v, char *r)

Переменные

const size_t c_tag_stack_capacity = 64
const size_t c_cnt_capacity = 256
syn_state_t g_state_start
syn_state_trans_t g_state_start_trans []
syn_state_t g_state_finish
syn_state_trans_t g_state_finish_trans []
syn_state_t g_state_tag_content
syn_state_trans_t g_state_tag_content_trans []
syn_state_t g_state_wait_tag_name
syn_state_trans_t g_state_wait_tag_name_trans []
syn_state_t g_state_fill_tag_name
syn_state_trans_t g_state_fill_tag_name_trans []
syn_state_t g_state_tag_complete
syn_state_trans_t g_state_tag_complete_trans []
syn_state_t g_state_tag_cnt_space
syn_state_trans_t g_state_tag_cnt_space_trans []
syn_state_t g_state_tag_cnt_nonspace
syn_state_trans_t g_state_tag_cnt_nonspace_trans []
syn_state_t g_state_tag_cnt_string
syn_state_trans_t g_state_tag_cnt_string_trans []
const size_t children_tag_list_capacity = 8
const int c_msg_undefined_mandatory_tag = 1
const int c_msg_unfinished_back_slash_seq = 2
const int c_msg_invalid_back_slash_seq = 3
const int c_msg_unclosed_comment = 4
const int c_msg_tag_expected = 5
const int c_msg_syntax_error = 6
const int c_msg_tag_name_expected = 7
const int c_msg_fill_tag_name_error = 8
const int c_msg_enclosed_string = 9
const int c_msg_unexpected_eof = 10
const int c_msg_missmatched_close_block_count = 11
const int c_msg_unknown_tag = 12
const int c_msg_tag_already_defined = 13
const int c_msg_tag_value_must_be_specified = 14
const int c_msg_invalid_value = 15
const int c_msg_unexpected_tok_string = 16
const int c_msg_unexpected_tok_nonspace = 17
const int c_msg_value_out_of_range = 18
const int c_tok_space = 1
const int c_tok_nonspace = 2
const int c_tok_dquote = 3
const int c_tok_open_block = 4
const int c_tok_close_block = 5
const int c_tok_eof = 6
const int c_tok_error = 7
const int c_tok_any = 8
char g_chars_to_ignore [] = "\r"
char g_eol_chars [] = "\n"
const size_t c_file_buffer_capacity = 2048
const char c_eol_char = '\n'
const size_t c_text_capacity = 32
char g_special_chars [] = "{}|\\\"\n\r\t"


Функции

bool cls_2::parse_digits const char *  str,
unsigned long &  result,
char  base_mark = '0'
 

Попытка разбора беззнакового длинного целого.

Допускаются представления:

d* - decimal (d = [0-9]) Mxd* | MXd* - hex (d = [0-9a-fA-F], M = [0\]) Mod* | MOd* - octal (d = [0-7], M = [0\]) Mbd* | MBd* - binary (d = [01], M = [0\])

Возвращает:
true, если разбор удалось осуществить.
Аргументы:
str  Что нужно разобрать.
result  Куда поместить результат.
base_mark  Первый символ, который указывает, что следом будет идти показатель системы счисления (0 для обычных числовых значений, обратная косая для представлений символов).

bool cls_2::parse_digits const char *  str,
long &  result,
char  base_mark = '0'
 

Попытка разбора знакового длинного целого.

Допускаются представления:

d* - decimal (d = [0-9]) -d* - negative decimal (d = [0-9], M = [0\]) Mxd* | MXd* - hex (d = [0-9a-fA-F], M = [0\]) Mod* | MOd* - octal (d = [0-7], M = [0\]) Mbd* | MBd* - binary (d = [01], M = [0\])

Возвращает:
true, если разбор удалось осуществить.
Аргументы:
str  Что нужно разобрать.
result  Куда поместить результат.
base_mark  Первый символ, который указывает, что следом будет идти показатель системы счисления (0 для обычных числовых значений, обратная косая для представлений символов).


Переменные

const int cls_2::c_lex_error = 5
 

Лексическая ошибка.

Один из вариантов синтаксической ошибки, вызыванный невозможностью корректного разбора какого-либо из токенов.

const int cls_2::c_semantic_error = 2
 

Семантическая ошибка.

Ошибка, связанная с неправильными или недопустимым использованием тегов и их значений.

syn_state_t cls_2::g_state_fill_tag_name
 

Инициализатор

{ 0, &_parser_t::on_exit_fill_tag_name, g_state_fill_tag_name_trans, c_msg_fill_tag_name_error, "state_fill_tag_name" }

syn_state_trans_t cls_2::g_state_fill_tag_name_trans
 

Инициализатор

{ { &g_state_fill_tag_name, c_tok_nonspace, &_parser_t::on_token_default, true } ,{ &g_state_tag_content, c_tok_space, 0, true } ,{ &g_state_tag_complete, c_tok_close_block, 0, false } ,{ 0, 0, 0, false } }

syn_state_t cls_2::g_state_finish
 

Инициализатор

{ &_parser_t::on_enter_finish, 0, g_state_finish_trans, 0, "state_finish" }

syn_state_trans_t cls_2::g_state_finish_trans
 

Инициализатор

{ { 0, 0, 0, false } }

syn_state_t cls_2::g_state_start
 

Инициализатор

{ 0, 0, g_state_start_trans, c_msg_tag_expected, "state_start" }

syn_state_trans_t cls_2::g_state_start_trans
 

Инициализатор

{ { &g_state_start, c_tok_space, 0, true } ,{ &g_state_finish, c_tok_eof, 0, false } ,{ &g_state_tag_content, c_tok_open_block, 0, false } ,{ 0, 0, 0, false } }

syn_state_t cls_2::g_state_tag_cnt_nonspace
 

Инициализатор

{ &_parser_t::on_enter_tag_cnt_nonspace, &_parser_t::on_exit_tag_cnt_nonspace, g_state_tag_cnt_nonspace_trans, c_msg_syntax_error, "state_tag_cnt_nonspace" }

syn_state_trans_t cls_2::g_state_tag_cnt_nonspace_trans
 

Инициализатор

{ { &g_state_tag_cnt_nonspace, c_tok_nonspace, &_parser_t::on_token_default, true } ,{ &g_state_tag_content, c_tok_any, 0, false } ,{ 0, 0, 0, false } }

syn_state_t cls_2::g_state_tag_cnt_space
 

Инициализатор

{ &_parser_t::on_enter_tag_cnt_space, &_parser_t::on_exit_tag_cnt_space, g_state_tag_cnt_space_trans, c_msg_syntax_error, "state_tag_cnt_space" }

syn_state_trans_t cls_2::g_state_tag_cnt_space_trans
 

Инициализатор

{ { &g_state_tag_cnt_space, c_tok_space, &_parser_t::on_token_default, true } ,{ &g_state_tag_content, c_tok_any, 0, false } ,{ 0, 0, 0, false } }

syn_state_t cls_2::g_state_tag_cnt_string
 

Инициализатор

{ &_parser_t::on_enter_tag_cnt_string, &_parser_t::on_exit_tag_cnt_string, g_state_tag_cnt_string_trans, c_msg_enclosed_string, "state_tag_cnt_string" }

syn_state_trans_t cls_2::g_state_tag_cnt_string_trans
 

Инициализатор

{ { &g_state_tag_cnt_string, c_tok_nonspace, &_parser_t::on_token_default, true } ,{ &g_state_tag_cnt_string, c_tok_space, &_parser_t::on_token_default, true } ,{ &g_state_tag_content, c_tok_dquote, 0, true } ,{ 0, 0, 0, false } }

syn_state_t cls_2::g_state_tag_complete
 

Инициализатор

{ &_parser_t::on_enter_tag_complete, &_parser_t::on_exit_tag_complete, g_state_tag_complete_trans, c_msg_syntax_error, "state_tag_complete" }

syn_state_trans_t cls_2::g_state_tag_complete_trans
 

Инициализатор

{ { &g_state_tag_content, c_tok_close_block, 0, true } ,{ 0, 0, 0, false } }

syn_state_t cls_2::g_state_tag_content
 

Инициализатор

{ 0, 0, g_state_tag_content_trans, c_msg_syntax_error, "state_tag_content" }

syn_state_trans_t cls_2::g_state_tag_content_trans
 

Инициализатор

{ { &g_state_wait_tag_name, c_tok_open_block, 0, true } ,{ &g_state_tag_complete, c_tok_close_block, 0, false } ,{ &g_state_tag_cnt_space, c_tok_space, 0, false } ,{ &g_state_tag_cnt_nonspace, c_tok_nonspace, 0, false } ,{ &g_state_tag_cnt_string, c_tok_dquote, 0, true } ,{ &g_state_finish, c_tok_eof, 0, false } ,{ 0, 0, 0, false } }

syn_state_t cls_2::g_state_wait_tag_name
 

Инициализатор

{ &_parser_t::on_enter_wait_tag_name, 0, g_state_wait_tag_name_trans, c_msg_tag_name_expected, "state_wait_tag_name" }

syn_state_trans_t cls_2::g_state_wait_tag_name_trans
 

Инициализатор

{ { &g_state_fill_tag_name, c_tok_nonspace, &_parser_t::on_token_default, true } ,{ 0, 0, 0, false } }


Документация по cls_2. Последние изменения: Wed Aug 4 15:13:00 2004. Создано системой doxygen 1.3.7
Hosted by uCoz