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
45 impl PtxParser for BrxIdxUni1 {
46 fn parse(stream: &mut PtxTokenStream) -> Result<Self, PtxParseError> {
47 stream.expect_string("brx")?;
48 stream.expect_string(".idx")?;
49 let idx = ();
50 stream.expect_complete()?;
51 let saved_pos = stream.position();
52 let uni = stream.expect_string(".uni").is_ok();
53 if !uni {
54 stream.set_position(saved_pos);
55 }
56 stream.expect_complete()?;
57 let index = GeneralOperand::parse(stream)?;
58 stream.expect_complete()?;
59 stream.expect(&PtxToken::Comma)?;
60 let tlist = GeneralOperand::parse(stream)?;
61 stream.expect_complete()?;
62 stream.expect_complete()?;
63 stream.expect(&PtxToken::Semicolon)?;
64 Ok(BrxIdxUni1 {
65 idx,
66 uni,
67 index,
68 tlist,
69 })
70 }
71 }
72
73
74}
75