MCPcopy Create free account
hub / github.com/agenticsorg/lean-agentic / parse_constructor

Method parse_constructor

leanr-syntax/src/parser.rs:189–208  ·  view source on GitHub ↗

Parse a constructor

(&mut self)

Source from the content-addressed store, hash-verified

187
188 /// Parse a constructor
189 fn parse_constructor(&mut self) -> crate::Result<Constructor> {
190 let name = self.parse_ident()?;
191 let params = self.parse_params()?;
192
193 let type_ = if self.check(&TokenKind::Colon) {
194 self.advance();
195 Some(Box::new(self.parse_expr()?))
196 } else {
197 None
198 };
199
200 let end = type_.as_ref().map(|t| t.span()).unwrap_or(name.span);
201
202 Ok(Constructor {
203 span: name.span.to(end),
204 name,
205 params,
206 type_,
207 })
208 }
209
210 /// Parse structure declaration
211 fn parse_structure(&mut self) -> crate::Result<StructureDecl> {

Callers 1

parse_inductiveMethod · 0.80

Calls 7

parse_identMethod · 0.80
parse_paramsMethod · 0.80
parse_exprMethod · 0.80
spanMethod · 0.80
toMethod · 0.80
checkMethod · 0.45
advanceMethod · 0.45

Tested by

no test coverage detected