| 100 | } |
| 101 | |
| 102 | fn parse_parameters(node: &Node, out: &mut Vec<Symbol>, ctx: &mut ParserContext) -> Result<()> { |
| 103 | let mut cursor = node.walk(); |
| 104 | cursor.goto_first_child(); |
| 105 | |
| 106 | loop { |
| 107 | if Parameter::matches_node(cursor.node()) { |
| 108 | let symbol = Parameter::parse_symbol(cursor.node(), ctx)?; |
| 109 | out.push(symbol); |
| 110 | } |
| 111 | |
| 112 | if !cursor.goto_next_sibling() { |
| 113 | break; |
| 114 | } |
| 115 | } |
| 116 | |
| 117 | Ok(()) |
| 118 | } |
| 119 | |
| 120 | fn find_docs(node: &Node, ctx: &ParserContext) -> Option<String> { |
| 121 | if let Some(body) = node.child_by_field_name("body") { |