Handle nodes that do not have a contents begin like fixed width areas.

This commit is contained in:
Tom Alexander 2023-08-20 16:25:57 -04:00
parent 13a73efdcf
commit cfc9153c28
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE

@ -98,12 +98,25 @@ fn build_ast_node<'a>(
.as_atom()?; .as_atom()?;
let position = get_bounds(original_source, current_token)?; let position = get_bounds(original_source, current_token)?;
let mut children = Vec::new(); let mut children = Vec::new();
let mut contents_begin = get_contents_begin(current_token)?; let original_contents_begin = get_contents_begin(current_token);
for child in parameters.into_iter().skip(2) { match original_contents_begin {
let new_ast_node = build_ast_node(original_source, Some(contents_begin), child)?; Ok(original_contents_begin) => {
contents_begin = new_ast_node.position.end_character; let mut contents_begin = original_contents_begin;
children.push(new_ast_node); for child in parameters.into_iter().skip(2) {
} let new_ast_node =
build_ast_node(original_source, Some(contents_begin), child)?;
contents_begin = new_ast_node.position.end_character;
children.push(new_ast_node);
}
}
Err(_) => {
// Some nodes don't have a contents begin, so hopefully plain text can't be inside them.
for child in parameters.into_iter().skip(2) {
let new_ast_node = build_ast_node(original_source, None, child)?;
children.push(new_ast_node);
}
}
};
AstNode { AstNode {
name: name.to_owned(), name: name.to_owned(),