MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / parse_typevalue

Method parse_typevalue

cranelift/isle/isle/src/parser.rs:282–304  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

280 }
281
282 fn parse_typevalue(&mut self) -> Result<TypeValue> {
283 let pos = self.pos();
284 self.expect_lparen()?;
285 if self.eat_sym_str("primitive")? {
286 let primitive_ident = self.parse_ident()?;
287 self.expect_rparen()?;
288 Ok(TypeValue::Primitive(primitive_ident, pos))
289 } else if self.eat_sym_str("enum")? {
290 let mut variants = vec![];
291 while !self.is_rparen() {
292 let variant = self.parse_type_variant()?;
293 variants.push(variant);
294 }
295 self.expect_rparen()?;
296 Ok(TypeValue::Enum(variants, pos))
297 } else if self.eat_sym_str("struct")? {
298 let fields = self.parse_fields()?;
299 self.expect_rparen()?;
300 Ok(TypeValue::Struct(fields, pos))
301 } else {
302 Err(self.error(pos, "Unknown type definition".to_string()))
303 }
304 }
305
306 fn parse_type_variant(&mut self) -> Result<Variant> {
307 if self.is_sym() {

Callers 1

parse_typeMethod · 0.80

Calls 13

OkFunction · 0.85
EnumClass · 0.85
expect_lparenMethod · 0.80
eat_sym_strMethod · 0.80
parse_identMethod · 0.80
expect_rparenMethod · 0.80
is_rparenMethod · 0.80
parse_type_variantMethod · 0.80
parse_fieldsMethod · 0.80
posMethod · 0.45
pushMethod · 0.45
errorMethod · 0.45

Tested by

no test coverage detected