(&mut self)
| 177 | } |
| 178 | |
| 179 | fn parse_def(&mut self) -> Result<Def> { |
| 180 | self.expect_lparen()?; |
| 181 | let pos = self.pos(); |
| 182 | let def = match &self.expect_symbol()?[..] { |
| 183 | "pragma" => Def::Pragma(self.parse_pragma()?), |
| 184 | "type" => Def::Type(self.parse_type()?), |
| 185 | "decl" => Def::Decl(self.parse_decl()?), |
| 186 | "spec" => Def::Spec(self.parse_spec()?), |
| 187 | "model" => Def::Model(self.parse_model()?), |
| 188 | "form" => Def::Form(self.parse_form()?), |
| 189 | "instantiate" => Def::Instantiation(self.parse_instantiation()?), |
| 190 | "rule" => Def::Rule(self.parse_rule()?), |
| 191 | "extractor" => Def::Extractor(self.parse_etor()?), |
| 192 | "extern" => Def::Extern(self.parse_extern()?), |
| 193 | "convert" => Def::Converter(self.parse_converter()?), |
| 194 | s => { |
| 195 | return Err(self.error(pos, format!("Unexpected identifier: {s}"))); |
| 196 | } |
| 197 | }; |
| 198 | self.expect_rparen()?; |
| 199 | Ok(def) |
| 200 | } |
| 201 | |
| 202 | fn str_to_ident(&self, pos: Pos, s: &str) -> Result<Ident> { |
| 203 | let first = s |
no test coverage detected