Continue removing MyError.
This commit is contained in:
		
							parent
							
								
									e776a051ad
								
							
						
					
					
						commit
						20c4a0f8f7
					
				| @ -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 { | ||||
|  | ||||
| @ -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; | ||||
|         } | ||||
|  | ||||
| @ -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; | ||||
|         } | ||||
|  | ||||
| @ -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)) | ||||
| } | ||||
|  | ||||
| @ -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), | ||||
|  | ||||
| @ -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", | ||||
|         ))); | ||||
|  | ||||
| @ -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))); | ||||
|             } | ||||
|  | ||||
| @ -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 { | ||||
|  | ||||
| @ -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; | ||||
|         } | ||||
|  | ||||
| @ -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; | ||||
|  | ||||
| @ -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; | ||||
|         } | ||||
|  | ||||
| @ -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 { | ||||
|  | ||||
| @ -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; | ||||
|         } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Tom Alexander
						Tom Alexander