use crate::error::YamlError;
use crate::io::traits::ISource;
use crate::parser::lexer::Token;
pub fn expected_specific_token(source: &mut dyn ISource, expected: Token) -> YamlError {
crate::parser::utils::error_builder::expected_error(source, &format!("token {:?}", expected))
}
pub fn expected_plain_scalar(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::expected_error(source, "plain scalar")
}
pub fn expected_quoted_scalar(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::expected_error(source, "quoted scalar")
}
pub fn expected_scalar(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::expected_error(source, "scalar")
}
pub fn parser_did_not_advance_syntax(source: &mut dyn ISource, context: &str) -> YamlError {
crate::parser::utils::error_builder::syntax_error(
source,
&format!(
"Syntax error: Parser did not advance when parsing {} (possible malformed input)",
context
),
)
}
pub fn parser_did_not_advance_structure(source: &mut dyn ISource, context: &str) -> YamlError {
crate::parser::utils::error_builder::structure_error(
source,
&format!(
"Parser did not advance when parsing {} (possible malformed input)",
context
),
)
}
pub fn expected_plain_scalar_eof(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::syntax_error(source, "Expected plain scalar, got EOF")
}
pub fn expected_quoted_scalar_eof(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::syntax_error(source, "Expected quoted scalar, got EOF")
}
pub fn expected_scalar_eof(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::syntax_error(source, "Expected scalar, got EOF")
}
pub fn empty_token_name(source: &mut dyn ISource, message: &'static str) -> YamlError {
crate::parser::utils::error_builder::syntax_error(source, message)
}
pub fn duplicate_tag_found(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::syntax_error(source, "Duplicate tag found")
}
pub fn duplicate_anchor_found(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::syntax_error(source, "Duplicate anchor found")
}
pub fn invalid_tag_handle_usage(source: &mut dyn ISource, message: &str) -> YamlError {
crate::parser::utils::error_builder::syntax_error(source, message)
}
pub fn unterminated_single_quoted_eof(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::syntax_error(
source,
"YAML compliance error: Unterminated single-quoted string (unexpected EOF)",
)
}
pub fn unterminated_double_quoted_eof_after_escape(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::syntax_error(
source,
"YAML compliance error: Unterminated double-quoted string (unexpected EOF after escape)",
)
}
pub fn document_marker_in_double_quoted(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::syntax_error(
source,
"YAML compliance error: Document marker (--- or ...) found inside double-quoted scalar; unterminated string",
)
}
pub fn document_marker_in_single_quoted(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::syntax_error(
source,
"YAML compliance error: Document marker (--- or ...) found inside single-quoted scalar; unterminated string",
)
}
pub fn tab_as_indentation_in_double_quoted(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::syntax_error(
source,
"Syntax error: Tab character used as indentation in double-quoted scalar continuation line; only spaces are valid for indentation",
)
}
pub fn unterminated_double_quoted_eof(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::syntax_error(
source,
"YAML compliance error: Unterminated double-quoted string (unexpected EOF)",
)
}
pub fn invalid_escape_x_expected_2_hex(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::syntax_error(
source,
"YAML compliance error: Invalid \\x escape sequence, expected 2 hex digits",
)
}
pub fn invalid_escape_u_expected_4_hex(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::syntax_error(
source,
"YAML compliance error: Invalid \\u escape sequence, expected 4 hex digits",
)
}
pub fn invalid_escape_u_expected_8_hex(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::syntax_error(
source,
"YAML compliance error: Invalid \\U escape sequence, expected 8 hex digits",
)
}
pub fn invalid_unicode_codepoint_u4(source: &mut dyn ISource, code: u32) -> YamlError {
crate::parser::utils::error_builder::syntax_error(
source,
&format!(
"YAML compliance error: Invalid unicode codepoint U+{:04X}",
code
),
)
}
pub fn invalid_unicode_codepoint_u8(source: &mut dyn ISource, code: u32) -> YamlError {
crate::parser::utils::error_builder::syntax_error(
source,
&format!(
"YAML compliance error: Invalid unicode codepoint U+{:08X}",
code
),
)
}
pub fn invalid_escape_generic(source: &mut dyn ISource, ch: char) -> YamlError {
crate::parser::utils::error_builder::syntax_error(
source,
&format!(
"YAML compliance error: Invalid escape sequence '\\{}' in double-quoted string",
ch
),
)
}
pub fn unexpected_token_in_value(source: &mut dyn ISource, token: &Token) -> YamlError {
crate::parser::utils::error_builder::syntax_error(
source,
&format!("Unexpected token in value: {:?}", token),
)
}
pub fn expected_scalar_token(source: &mut dyn ISource, current: &str) -> YamlError {
crate::parser::utils::error_builder::syntax_error(
source,
&format!("Expected a scalar token, got {}", current),
)
}
pub fn document_unexpected_plain_after_top_level_sequence(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::structure_error(
source,
"Unexpected plain scalar after top-level sequence; missing '---' between documents",
)
}
pub fn unexpected_comma_after_tag_in_block_value(source: &mut dyn ISource) -> YamlError {
crate::parser::utils::error_builder::syntax_error(
source,
"Unexpected comma after tag in block context",
)
}