#![allow(unused)]
use crate::lexer::PtxToken;
use crate::parser::{PtxParseError, PtxParser, PtxTokenStream, Span};
use crate::r#type::common::*;
pub mod section_0 {
use super::*;
use crate::r#type::instruction::cvt_pack::section_0::*;
impl PtxParser for Abtype {
fn parse(stream: &mut PtxTokenStream) -> Result<Self, PtxParseError> {
{
let saved_pos = stream.position();
if stream.expect_string(".s32").is_ok() {
return Ok(Abtype::S32);
}
stream.set_position(saved_pos);
}
let span = stream
.peek()
.map(|(_, s)| s.clone())
.unwrap_or(Span { start: 0, end: 0 });
let expected = &[".s32"];
let found = stream
.peek()
.map(|(t, _)| format!("{:?}", t))
.unwrap_or_else(|_| "<end of input>".to_string());
Err(crate::parser::unexpected_value(span, expected, found))
}
}
impl PtxParser for Converttype {
fn parse(stream: &mut PtxTokenStream) -> Result<Self, PtxParseError> {
{
let saved_pos = stream.position();
if stream.expect_string(".u16").is_ok() {
return Ok(Converttype::U16);
}
stream.set_position(saved_pos);
}
let saved_pos = stream.position();
{
let saved_pos = stream.position();
if stream.expect_string(".s16").is_ok() {
return Ok(Converttype::S16);
}
stream.set_position(saved_pos);
}
stream.set_position(saved_pos);
let span = stream
.peek()
.map(|(_, s)| s.clone())
.unwrap_or(Span { start: 0, end: 0 });
let expected = &[".u16", ".s16"];
let found = stream
.peek()
.map(|(t, _)| format!("{:?}", t))
.unwrap_or_else(|_| "<end of input>".to_string());
Err(crate::parser::unexpected_value(span, expected, found))
}
}
impl PtxParser for CvtPackSatConverttypeAbtype {
fn parse(stream: &mut PtxTokenStream) -> Result<Self, PtxParseError> {
stream.expect_string("cvt")?;
stream.expect_string(".pack")?;
let pack = ();
stream.expect_complete()?;
stream.expect_string(".sat")?;
let sat = ();
stream.expect_complete()?;
let converttype = Converttype::parse(stream)?;
stream.expect_complete()?;
let abtype = Abtype::parse(stream)?;
stream.expect_complete()?;
let d = GeneralOperand::parse(stream)?;
stream.expect_complete()?;
stream.expect(&PtxToken::Comma)?;
let a = GeneralOperand::parse(stream)?;
stream.expect_complete()?;
stream.expect(&PtxToken::Comma)?;
let b = GeneralOperand::parse(stream)?;
stream.expect_complete()?;
stream.expect_complete()?;
stream.expect(&PtxToken::Semicolon)?;
Ok(CvtPackSatConverttypeAbtype {
pack,
sat,
converttype,
abtype,
d,
a,
b,
})
}
}
}
pub mod section_1 {
use super::*;
use crate::r#type::instruction::cvt_pack::section_1::*;
impl PtxParser for Abtype {
fn parse(stream: &mut PtxTokenStream) -> Result<Self, PtxParseError> {
{
let saved_pos = stream.position();
if stream.expect_string(".s32").is_ok() {
return Ok(Abtype::S32);
}
stream.set_position(saved_pos);
}
let span = stream
.peek()
.map(|(_, s)| s.clone())
.unwrap_or(Span { start: 0, end: 0 });
let expected = &[".s32"];
let found = stream
.peek()
.map(|(t, _)| format!("{:?}", t))
.unwrap_or_else(|_| "<end of input>".to_string());
Err(crate::parser::unexpected_value(span, expected, found))
}
}
impl PtxParser for Converttype {
fn parse(stream: &mut PtxTokenStream) -> Result<Self, PtxParseError> {
{
let saved_pos = stream.position();
if stream.expect_string(".u2").is_ok() {
return Ok(Converttype::U2);
}
stream.set_position(saved_pos);
}
let saved_pos = stream.position();
{
let saved_pos = stream.position();
if stream.expect_string(".s2").is_ok() {
return Ok(Converttype::S2);
}
stream.set_position(saved_pos);
}
stream.set_position(saved_pos);
let saved_pos = stream.position();
{
let saved_pos = stream.position();
if stream.expect_string(".u4").is_ok() {
return Ok(Converttype::U4);
}
stream.set_position(saved_pos);
}
stream.set_position(saved_pos);
let saved_pos = stream.position();
{
let saved_pos = stream.position();
if stream.expect_string(".s4").is_ok() {
return Ok(Converttype::S4);
}
stream.set_position(saved_pos);
}
stream.set_position(saved_pos);
let saved_pos = stream.position();
{
let saved_pos = stream.position();
if stream.expect_string(".u8").is_ok() {
return Ok(Converttype::U8);
}
stream.set_position(saved_pos);
}
stream.set_position(saved_pos);
let saved_pos = stream.position();
{
let saved_pos = stream.position();
if stream.expect_string(".s8").is_ok() {
return Ok(Converttype::S8);
}
stream.set_position(saved_pos);
}
stream.set_position(saved_pos);
let span = stream
.peek()
.map(|(_, s)| s.clone())
.unwrap_or(Span { start: 0, end: 0 });
let expected = &[".u2", ".s2", ".u4", ".s4", ".u8", ".s8"];
let found = stream
.peek()
.map(|(t, _)| format!("{:?}", t))
.unwrap_or_else(|_| "<end of input>".to_string());
Err(crate::parser::unexpected_value(span, expected, found))
}
}
impl PtxParser for Ctype {
fn parse(stream: &mut PtxTokenStream) -> Result<Self, PtxParseError> {
{
let saved_pos = stream.position();
if stream.expect_string(".b32").is_ok() {
return Ok(Ctype::B32);
}
stream.set_position(saved_pos);
}
let span = stream
.peek()
.map(|(_, s)| s.clone())
.unwrap_or(Span { start: 0, end: 0 });
let expected = &[".b32"];
let found = stream
.peek()
.map(|(t, _)| format!("{:?}", t))
.unwrap_or_else(|_| "<end of input>".to_string());
Err(crate::parser::unexpected_value(span, expected, found))
}
}
impl PtxParser for CvtPackSatConverttypeAbtypeCtype {
fn parse(stream: &mut PtxTokenStream) -> Result<Self, PtxParseError> {
stream.expect_string("cvt")?;
stream.expect_string(".pack")?;
let pack = ();
stream.expect_complete()?;
stream.expect_string(".sat")?;
let sat = ();
stream.expect_complete()?;
let converttype = Converttype::parse(stream)?;
stream.expect_complete()?;
let abtype = Abtype::parse(stream)?;
stream.expect_complete()?;
let ctype = Ctype::parse(stream)?;
stream.expect_complete()?;
let d = GeneralOperand::parse(stream)?;
stream.expect_complete()?;
stream.expect(&PtxToken::Comma)?;
let a = GeneralOperand::parse(stream)?;
stream.expect_complete()?;
stream.expect(&PtxToken::Comma)?;
let b = GeneralOperand::parse(stream)?;
stream.expect_complete()?;
stream.expect(&PtxToken::Comma)?;
let c = GeneralOperand::parse(stream)?;
stream.expect_complete()?;
stream.expect_complete()?;
stream.expect(&PtxToken::Semicolon)?;
Ok(CvtPackSatConverttypeAbtypeCtype {
pack,
sat,
converttype,
abtype,
ctype,
d,
a,
b,
c,
})
}
}
}