/// These functions are used to consume the parse tree generated by the `pest` parser into a syntax tree.
/// Functions that are private are only used by other functions within the module, especially within the `matches_nodes!` macro.
/// See `pest_consume` documentation for more details on how to use this macro. The main idea is to apply the consume functions to the children of a parse node whenver they matce the arm.
/// Functions that are `pub(crate)` are used by the pratt parser to consume the parse tree and build the syntax tree with priorities
Ok(identifiers.iter().map(|name| ActDecl { identifier: name.clone(), args: Vec::new(), span: span.into() }).collect())
Ok(identifiers.iter().map(|name| ActDecl { identifier: name.clone(), args: args.clone(), span: span.into() }).collect())
Rule::ActionRenameRuleSpec => rename_declarations.append(&mut Mcrl2Parser::ActionRenameRuleSpec(child)?),
Ok(ids.iter().map(|identifier| SortDecl::new(identifier.clone(), None, span.into())).collect())
Ok(decl.iter().map(|element| SortDecl::new(element.identifier.clone(), Some(element.sort.clone()), span.into())).collect())
pub(crate) fn ProjDeclList(input: ParseNode) -> ParseResult<Vec<(Option<String>, SortExpression)>> {