] function_body_declaration #[tracable_parser] #[packrat_parser] pub(crate) fn function_declaration(s: Span) -> IResult<Span, FunctionDeclaration> { let (s, a) = keyword("function")(s)?; let (s, b) = opt(lifetime)(s)?; let (s, c) = function_body_declaration(s)?; Ok((s, FunctionDeclaration { nodes: (a, b, c) })) } #[derive(Clone, Debug, PartialEq, Node)] pub struct FunctionDeclaration { pub nodes: (Keyword, Option<Lifetime>, FunctionBodyDeclaration), }