ptx_parser/parser/instruction/
brx_idx.rs1#![allow(unused)]
7
8use crate::lexer::PtxToken;
9use crate::parser::{PtxParseError, PtxParser, PtxTokenStream, Span};
10use crate::r#type::common::*;
11
12pub mod section_0 {
13 use super::*;
14 use crate::r#type::instruction::brx_idx::section_0::*;
15
16 impl PtxParser for BrxIdxUni {
17 fn parse(stream: &mut PtxTokenStream) -> Result<Self, PtxParseError> {
18 stream.expect_string("brx")?;
19 stream.expect_string(".idx")?;
20 let idx = ();
21 stream.expect_complete()?;
22 let saved_pos = stream.position();
23 let uni = stream.expect_string(".uni").is_ok();
24 if !uni {
25 stream.set_position(saved_pos);
26 }
27 stream.expect_complete()?;
28 let index = GeneralOperand::parse(stream)?;
29 stream.expect_complete()?;
30 stream.expect(&PtxToken::Comma)?;
31 let tlist = GeneralOperand::parse(stream)?;
32 stream.expect_complete()?;
33 stream.expect_complete()?;
34 stream.expect(&PtxToken::Semicolon)?;
35 Ok(BrxIdxUni {
36 idx,
37 uni,
38 index,
39 tlist,
40 })
41 }
42 }
43
44 impl PtxParser for BrxIdxUni1 {
45 fn parse(stream: &mut PtxTokenStream) -> Result<Self, PtxParseError> {
46 stream.expect_string("brx")?;
47 stream.expect_string(".idx")?;
48 let idx = ();
49 stream.expect_complete()?;
50 let saved_pos = stream.position();
51 let uni = stream.expect_string(".uni").is_ok();
52 if !uni {
53 stream.set_position(saved_pos);
54 }
55 stream.expect_complete()?;
56 let index = GeneralOperand::parse(stream)?;
57 stream.expect_complete()?;
58 stream.expect(&PtxToken::Comma)?;
59 let tlist = GeneralOperand::parse(stream)?;
60 stream.expect_complete()?;
61 stream.expect_complete()?;
62 stream.expect(&PtxToken::Semicolon)?;
63 Ok(BrxIdxUni1 {
64 idx,
65 uni,
66 index,
67 tlist,
68 })
69 }
70 }
71}