use crate::syntax::{SyntaxGraphArgs, SyntaxGraphError, SyntaxNode};
use crate::NodeId;
pub fn build_do_statement_node(
args: &mut SyntaxGraphArgs<'_>,
n_id: NodeId,
block: NodeId,
conditional: NodeId,
) -> Result<NodeId, SyntaxGraphError> {
args.syntax_graph.add_node(
n_id,
SyntaxNode::DoStatement {
block_id: block,
condition_id: conditional,
},
);
args.metadata.control_flow_stack.push(n_id);
let built_block = args.generic(block)?;
args.syntax_graph.add_ast_edge(n_id, built_block);
args.metadata.control_flow_stack.pop();
let built_condition = args.generic(conditional)?;
args.syntax_graph.add_ast_edge(n_id, built_condition);
Ok(n_id)
}