Skip to main content

pddl_ish_parser/parser/
error_context.rs

1pub fn get_error_context(input: &str) -> String {
2    let lines: Vec<&str> = input.lines().collect();
3    let error_line_index = lines.iter().position(|&line| line.contains(")")).unwrap_or(0);
4
5    let previous_line = lines.get(error_line_index.saturating_sub(1)).unwrap_or(&"");
6    let error_line = lines.get(error_line_index).unwrap_or(&"");
7    let next_line = lines.get(error_line_index + 1).unwrap_or(&"");
8
9    format!("Lines (pre, error and next): {}\n{}\n{}", previous_line, error_line, next_line)
10}