ptx_parser/parser/instruction/
st_bulk.rs1#![allow(unused)]
6
7use crate::lexer::PtxToken;
8use crate::parser::{PtxParseError, PtxParser, PtxTokenStream, Span};
9use crate::r#type::common::*;
10
11pub mod section_0 {
12 use super::*;
13 use crate::r#type::instruction::st_bulk::section_0::*;
14
15 impl PtxParser for StBulkWeakSharedCta {
16 fn parse(stream: &mut PtxTokenStream) -> Result<Self, PtxParseError> {
17 stream.expect_string("st")?;
18 stream.expect_string(".bulk")?;
19 let bulk = ();
20 stream.expect_complete()?;
21 let saved_pos = stream.position();
22 let weak = stream.expect_string(".weak").is_ok();
23 if !weak {
24 stream.set_position(saved_pos);
25 }
26 stream.expect_complete()?;
27 let saved_pos = stream.position();
28 let shared_cta = stream.expect_string(".shared::cta").is_ok();
29 if !shared_cta {
30 stream.set_position(saved_pos);
31 }
32 stream.expect_complete()?;
33 let a = AddressOperand::parse(stream)?;
34 stream.expect_complete()?;
35 stream.expect(&PtxToken::Comma)?;
36 let size = GeneralOperand::parse(stream)?;
37 stream.expect_complete()?;
38 stream.expect(&PtxToken::Comma)?;
39 let initval = GeneralOperand::parse(stream)?;
40 stream.expect_complete()?;
41 stream.expect_complete()?;
42 stream.expect(&PtxToken::Semicolon)?;
43 Ok(StBulkWeakSharedCta {
44 bulk,
45 weak,
46 shared_cta,
47 a,
48 size,
49 initval,
50 })
51 }
52 }
53
54
55}
56