Continue removing MyError.

This commit is contained in:
Tom Alexander 2023-10-17 10:35:33 -04:00
parent e776a051ad
commit 20c4a0f8f7
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
13 changed files with 29 additions and 37 deletions

View File

@ -10,11 +10,12 @@ pub enum CustomError {
Static(&'static str),
IO(std::io::Error),
BoxedError(Box<dyn std::error::Error>),
Parser(ErrorKind),
}
impl<I: std::fmt::Debug> ParseError<I> for CustomError {
fn from_error_kind(input: I, kind: ErrorKind) -> Self {
CustomError::Text(format!("{:?} {:?}", kind, input))
CustomError::Parser(kind)
}
fn append(_input: I, _kind: ErrorKind, /*mut*/ other: Self) -> Self {

View File

@ -137,7 +137,7 @@ fn _global_prefix_end<'b, 'g, 'r, 's>(
unreachable!("Exceeded citation global prefix bracket depth.")
}
if current_depth == 0 {
let close_bracket = tag::<&str, OrgSource<'_>, CustomError<OrgSource<'_>>>("]")(input);
let close_bracket = tag::<_, _, CustomError>("]")(input);
if close_bracket.is_ok() {
return close_bracket;
}
@ -191,7 +191,7 @@ fn _global_suffix_end<'b, 'g, 'r, 's>(
unreachable!("Exceeded citation global suffix bracket depth.")
}
if current_depth == 0 {
let close_bracket = tag::<&str, OrgSource<'_>, CustomError<OrgSource<'_>>>("]")(input);
let close_bracket = tag::<_, _, CustomError>("]")(input);
if close_bracket.is_ok() {
return close_bracket;
}

View File

@ -150,7 +150,7 @@ fn _key_prefix_end<'b, 'g, 'r, 's>(
unreachable!("Exceeded citation key prefix bracket depth.")
}
if current_depth == 0 {
let close_bracket = tag::<&str, OrgSource<'_>, CustomError<OrgSource<'_>>>("]")(input);
let close_bracket = tag::<_, _, CustomError>("]")(input);
if close_bracket.is_ok() {
return close_bracket;
}
@ -180,7 +180,7 @@ fn _key_suffix_end<'b, 'g, 'r, 's>(
unreachable!("Exceeded citation key suffix bracket depth.")
}
if current_depth == 0 {
let close_bracket = tag::<&str, OrgSource<'_>, CustomError<OrgSource<'_>>>("]")(input);
let close_bracket = tag::<_, _, CustomError>("]")(input);
if close_bracket.is_ok() {
return close_bracket;
}

View File

@ -125,7 +125,7 @@ fn document_org_source<'b, 'g, 'r, 's>(
.get_global_settings()
.file_access
.read_file(setup_file)
.map_err(|err| nom::Err::<CustomError<OrgSource<'_>>>::Failure(err.into()))
.map_err(|err| nom::Err::<CustomError>::Failure(err.into()))
})
.collect::<Result<Vec<_>, _>>()?;
for setup_file in setup_files.iter().map(String::as_str) {
@ -171,14 +171,14 @@ fn document_org_source<'b, 'g, 'r, 's>(
let (remaining, mut document) = _document(&parser_context, input)
.map(|(rem, out)| (Into::<&str>::into(rem), out))?;
apply_post_parse_in_buffer_settings(&mut document)
.map_err(|err| nom::Err::<CustomError<OrgSource<'_>>>::Failure(err.into()))?;
.map_err(|err| nom::Err::<CustomError>::Failure(err.into()))?;
return Ok((remaining.into(), document));
}
}
// Find final in-buffer settings that do not impact parsing
apply_post_parse_in_buffer_settings(&mut document)
.map_err(|err| nom::Err::<CustomError<OrgSource<'_>>>::Failure(err.into()))?;
.map_err(|err| nom::Err::<CustomError>::Failure(err.into()))?;
Ok((remaining.into(), document))
}

View File

@ -57,7 +57,7 @@ fn name<'b, 'g, 'r, 's>(
) -> Res<OrgSource<'s>, (&'g EntityDefinition<'s>, OrgSource<'s>, bool)> {
for entity in context.get_global_settings().entities {
let result = tuple((
tag::<_, _, CustomError<_>>(entity.name),
tag::<_, _, CustomError>(entity.name),
alt((
verify(map(tag("{}"), |_| true), |_| !entity.name.ends_with(' ')),
map(peek(recognize(entity_end)), |_| false),

View File

@ -231,9 +231,6 @@ fn greater_block_body<'c, 'b, 'g, 'r, 's>(
context_name: &'c str,
) -> Res<OrgSource<'s>, (&'s str, Vec<Element<'s>>)> {
if in_section(context, context_name) {
return Err(CustomError::Static(
"Cannot nest objects of the same element",
));
return Err(nom::Err::Error(CustomError::Static(
"Cannot nest objects of the same element",
)));

View File

@ -259,7 +259,7 @@ fn heading_keyword<'b, 'g, 'r, 's>(
.iter()
.map(String::as_str)
{
let result = tag::<_, _, CustomError<_>>(todo_keyword)(input);
let result = tag::<_, _, CustomError>(todo_keyword)(input);
if let Ok((remaining, ent)) = result {
return Ok((remaining, (TodoKeywordType::Todo, ent)));
}
@ -269,7 +269,7 @@ fn heading_keyword<'b, 'g, 'r, 's>(
.iter()
.map(String::as_str)
{
let result = tag::<_, _, CustomError<_>>(todo_keyword)(input);
let result = tag::<_, _, CustomError>(todo_keyword)(input);
if let Ok((remaining, ent)) = result {
return Ok((remaining, (TodoKeywordType::Done, ent)));
}

View File

@ -35,7 +35,7 @@ pub(crate) fn scan_for_in_buffer_settings<'s>(
let mut remaining = input;
loop {
// Skip text until possible in_buffer_setting
let start_of_pound = take_until::<_, _, CustomError<_>>("#+")(remaining);
let start_of_pound = take_until::<_, _, CustomError>("#+")(remaining);
let start_of_pound = if let Ok((start_of_pound, _)) = start_of_pound {
start_of_pound
} else {
@ -47,7 +47,7 @@ pub(crate) fn scan_for_in_buffer_settings<'s>(
let (remain, maybe_kw) = match filtered_keyword(in_buffer_settings_key)(start_of_line) {
Ok((remain, kw)) => (remain, Some(kw)),
Err(_) => {
let end_of_line = take_until::<_, _, CustomError<_>>("\n")(start_of_pound);
let end_of_line = take_until::<_, _, CustomError>("\n")(start_of_pound);
if let Ok((end_of_line, _)) = end_of_line {
(end_of_line, None)
} else {

View File

@ -49,10 +49,8 @@ fn _filtered_keyword<'s, F: Fn(OrgSource<'s>) -> Res<OrgSource<'s>, OrgSource<'s
// TODO: When key is a member of org-element-parsed-keywords, value can contain the standard set objects, excluding footnote references.
let (remaining, (consumed_input, (_, _, parsed_key, _))) =
consumed(tuple((space0, tag("#+"), key_parser, tag(":"))))(input)?;
if let Ok((remaining, _)) = tuple((
space0::<OrgSource<'_>, CustomError<OrgSource<'_>>>,
alt((line_ending, eof)),
))(remaining)
if let Ok((remaining, _)) =
tuple((space0::<_, CustomError>, alt((line_ending, eof))))(remaining)
{
return Ok((
remaining,
@ -161,10 +159,7 @@ fn plain_affiliated_key<'b, 'g, 'r, 's>(
) -> Res<OrgSource<'s>, OrgSource<'s>> {
for keyword in context.get_global_settings().element_affiliated_keywords {
let result = map(
tuple((
tag_no_case::<_, _, CustomError<_>>(*keyword),
peek(tag(":")),
)),
tuple((tag_no_case::<_, _, CustomError>(*keyword), peek(tag(":")))),
|(key, _)| key,
)(input);
if let Ok((remaining, ent)) = result {
@ -182,7 +177,7 @@ fn dual_affiliated_key<'b, 'g, 'r, 's>(
) -> Res<OrgSource<'s>, OrgSource<'s>> {
for keyword in context.get_global_settings().element_dual_keywords {
let result = recognize(tuple((
tag_no_case::<_, _, CustomError<_>>(*keyword),
tag_no_case::<_, _, CustomError>(*keyword),
tag("["),
optval,
tag("]"),
@ -221,7 +216,7 @@ fn _optval_end<'s>(
unreachable!("Exceeded optval bracket depth.")
}
if current_depth == 0 {
let close_bracket = tag::<_, _, CustomError<_>>("]")(input);
let close_bracket = tag::<_, _, CustomError>("]")(input);
if close_bracket.is_ok() {
return close_bracket;
}

View File

@ -96,7 +96,7 @@ fn org_macro_arg<'b, 'g, 'r, 's>(
loop {
not(parser_with_context!(exit_matcher_parser)(context))(remaining)?;
not(peek(tag("}}}")))(remaining)?;
if peek(tuple((space0::<OrgSource<'_>, CustomError<_>>, tag(")"))))(remaining).is_ok() {
if peek(tuple((space0::<_, CustomError>, tag(")"))))(remaining).is_ok() {
break;
}
@ -108,7 +108,7 @@ fn org_macro_arg<'b, 'g, 'r, 's>(
}
if next_char == '\\' {
escaping = true;
if peek(tag::<_, _, CustomError<_>>(")"))(new_remaining).is_ok() {
if peek(tag::<_, _, CustomError>(")"))(new_remaining).is_ok() {
// Special case for backslash at the end of a macro
remaining = new_remaining;
break;

View File

@ -261,7 +261,7 @@ pub(crate) fn protocol<'b, 'g, 'r, 's>(
input: OrgSource<'s>,
) -> Res<OrgSource<'s>, OrgSource<'s>> {
for link_parameter in context.get_global_settings().link_parameters {
let result = tag_no_case::<_, _, CustomError<_>>(*link_parameter)(input);
let result = tag_no_case::<_, _, CustomError>(*link_parameter)(input);
if let Ok((remaining, ent)) = result {
return Ok((remaining, ent));
}
@ -324,8 +324,7 @@ fn impl_path_plain_end<'b, 'g, 'r, 's>(
}
if current_depth == 0 {
let close_parenthesis =
tag::<&str, OrgSource<'_>, CustomError<OrgSource<'_>>>(")")(remaining);
let close_parenthesis = tag::<_, _, CustomError>(")")(remaining);
if close_parenthesis.is_ok() {
return close_parenthesis;
}
@ -415,13 +414,13 @@ fn _path_plain_parenthesis_end<'s>(
unreachable!("Exceeded plain link parenthesis depth.")
}
if current_depth == 0 {
let close_parenthesis = tag::<&str, OrgSource<'_>, CustomError<OrgSource<'_>>>(")")(input);
let close_parenthesis = tag::<_, _, CustomError>(")")(input);
if close_parenthesis.is_ok() {
return close_parenthesis;
}
}
if current_depth == 1 {
let open_parenthesis = tag::<&str, OrgSource<'_>, CustomError<OrgSource<'_>>>("(")(input);
let open_parenthesis = tag::<_, _, CustomError>("(")(input);
if open_parenthesis.is_ok() {
return open_parenthesis;
}

View File

@ -91,7 +91,7 @@ impl<'x> RematchObject<'x> for PlainText<'x> {
break;
}
let is_not_whitespace = is_not::<&str, &str, CustomError<_>>(" \t\r\n")(goal);
let is_not_whitespace = is_not::<_, _, CustomError>(" \t\r\n")(goal);
if let Ok((new_goal, payload)) = is_not_whitespace {
let (new_remaining, _) = tuple((
tag_no_case(payload),
@ -107,7 +107,7 @@ impl<'x> RematchObject<'x> for PlainText<'x> {
}
let is_whitespace = recognize(many1(alt((
recognize(one_of::<&str, &str, CustomError<_>>(" \t")),
recognize(one_of::<_, _, CustomError>(" \t")),
line_ending,
))))(goal);
if let Ok((new_goal, _)) = is_whitespace {

View File

@ -38,7 +38,7 @@ pub(crate) fn detect_subscript_or_superscript<'s>(input: OrgSource<'s>) -> Res<O
// This does not have to detect all valid subscript/superscript but all that it detects must be valid.
let (remaining, _) = one_of("_^")(input)?;
pre(input)?;
if tag::<_, _, CustomError<_>>("*")(remaining).is_ok() {
if tag::<_, _, CustomError>("*")(remaining).is_ok() {
return Ok((input, ()));
}
let (remaining, _) = opt(one_of("+-"))(remaining)?;
@ -281,7 +281,7 @@ fn _script_with_parenthesis_end<'s>(
unreachable!("Exceeded citation key suffix bracket depth.")
}
if current_depth == 0 {
let close_parenthesis = tag::<&str, OrgSource<'_>, CustomError<OrgSource<'_>>>(")")(input);
let close_parenthesis = tag::<_, _, CustomError>(")")(input);
if close_parenthesis.is_ok() {
return close_parenthesis;
}