8 #ifndef INCLUDED_ORCUS_YAML_PARSER_BASE_HPP 9 #define INCLUDED_ORCUS_YAML_PARSER_BASE_HPP 11 #include "orcus/parser_base.hpp" 12 #include "orcus/pstring.hpp" 17 namespace orcus {
namespace yaml {
24 static void throw_with(
const char* msg_before,
char c,
const char* msg_after);
25 static void throw_with(
const char* msg_before,
const char* p,
size_t n,
const char* msg_after);
47 std::unique_ptr<impl> mp_impl;
52 static const size_t parse_indent_blank_line;
55 static const size_t parse_indent_end_of_stream;
57 static const size_t scope_empty;
77 size_t parse_indent();
91 size_t get_scope()
const;
93 void push_scope(
size_t scope_width);
95 scope_t get_scope_type()
const;
97 void set_scope_type(scope_t type);
106 void push_line_back(
const char* p,
size_t n);
110 bool has_line_buffer()
const;
112 size_t get_line_buffer_count()
const;
122 const char* get_doc_hash()
const;
131 void set_doc_hash(
const char* hash);
133 keyword_t parse_keyword(
const char* p,
size_t len);
135 key_value parse_key_value(
const char* p,
size_t len);
137 pstring parse_single_quoted_string_value(
const char*& p,
size_t max_length);
139 pstring parse_double_quoted_string_value(
const char*& p,
size_t max_length);
141 void skip_blanks(
const char*& p,
size_t len);
143 void start_literal_block();
145 bool in_literal_block()
const;
147 void handle_line_in_literal(
size_t indent);
149 void handle_line_in_multi_line_string();
Definition: yaml_parser_base.hpp:59
Definition: pstring.hpp:24
Definition: parser_base.hpp:34
Definition: yaml_parser_base.hpp:19
Definition: parser_base.hpp:20
Definition: base64.hpp:15
Definition: yaml_parser_base.hpp:44