ptx_parser/parser/instruction/
elect_sync.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::elect_sync::section_0::*;
14
15 impl PtxParser for ElectSync {
16 fn parse(stream: &mut PtxTokenStream) -> Result<Self, PtxParseError> {
17 stream.expect_string("elect")?;
18 stream.expect_string(".sync")?;
19 let sync = ();
20 stream.expect_complete()?;
21 let d = GeneralOperand::parse(stream)?;
22 stream.expect(&PtxToken::Pipe)?;
23 let p = GeneralOperand::parse(stream)?;
24 stream.expect_complete()?;
25 stream.expect(&PtxToken::Comma)?;
26 let membermask = GeneralOperand::parse(stream)?;
27 stream.expect_complete()?;
28 stream.expect_complete()?;
29 stream.expect(&PtxToken::Semicolon)?;
30 Ok(ElectSync {
31 sync,
32 d,
33 p,
34 membermask,
35 })
36 }
37 }
38}