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

Method parse_alias_region_decl

cranelift/reader/src/parser.rs:1943–1976  ·  view source on GitHub ↗

Parse an alias region decl alias-region-decl ::= * AliasRegion(region) "=" Integer String

(&mut self)

Source from the content-addressed store, hash-verified

1941 //
1942 // alias-region-decl ::= * AliasRegion(region) "=" Integer String
1943 fn parse_alias_region_decl(&mut self) -> ParseResult<(ir::AliasRegion, ir::AliasRegionData)> {
1944 let ar_num = match self.token() {
1945 Some(Token::AliasRegion(n)) => n,
1946 _ => return err!(self.loc, "expected alias region number"),
1947 };
1948 self.consume();
1949 let ar = ir::AliasRegion::new(usize::try_from(ar_num).unwrap());
1950
1951 self.match_token(Token::Equal, "expected '=' in alias region decl")?;
1952
1953 let user_id = match self.token() {
1954 Some(Token::Integer(s)) => u32::from_str_radix(s, 10)
1955 .map_err(|_| self.error("expected integer user_id for alias region"))?,
1956 _ => return err!(self.loc, "expected integer user_id for alias region"),
1957 };
1958 self.consume();
1959
1960 let description = match self.token() {
1961 Some(Token::String(s)) => s.to_owned(),
1962 _ => return err!(self.loc, "expected string description for alias region"),
1963 };
1964 self.consume();
1965
1966 let data = ir::AliasRegionData {
1967 user_id,
1968 description: std::borrow::Cow::Owned(description),
1969 };
1970
1971 // Collect any trailing comments.
1972 self.token();
1973 self.claim_gathered_comments(ir::AliasRegion::new(usize::try_from(ar_num).unwrap()));
1974
1975 Ok((ar, data))
1976 }
1977
1978 // Parse a stack limit decl
1979 //

Callers 1

parse_preambleMethod · 0.80

Calls 8

OkFunction · 0.85
tokenMethod · 0.80
match_tokenMethod · 0.80
newFunction · 0.50
consumeMethod · 0.45
unwrapMethod · 0.45
errorMethod · 0.45

Tested by

no test coverage detected