mirror of
https://github.com/kmc7468/cs420.git
synced 2025-12-16 07:28:52 +00:00
Update grader
This commit is contained in:
@@ -527,7 +527,12 @@ impl TryFrom<&ast::Constant> for Constant {
|
||||
ast::IntegerBase::Octal => Self::OCTAL,
|
||||
ast::IntegerBase::Hexadecimal => Self::HEXADECIMAL,
|
||||
};
|
||||
let value = u128::from_str_radix(integer.number.deref(), pat).unwrap();
|
||||
|
||||
let value = if integer.suffix.unsigned {
|
||||
u128::from_str_radix(integer.number.deref(), pat).unwrap()
|
||||
} else {
|
||||
i128::from_str_radix(integer.number.deref(), pat).unwrap() as u128
|
||||
};
|
||||
|
||||
let is_signed = !integer.suffix.unsigned && {
|
||||
// Even if `suffix` represents `signed`, integer literal cannot be translated
|
||||
|
||||
@@ -580,6 +580,14 @@ peg::parser! {
|
||||
suffix,
|
||||
}
|
||||
}
|
||||
/
|
||||
"0" suffix:ast_integer_suffix() {
|
||||
ast::Integer {
|
||||
base: ast::IntegerBase::Decimal,
|
||||
number: Box::from("0"),
|
||||
suffix,
|
||||
}
|
||||
}
|
||||
/
|
||||
"<ast_integer>" {
|
||||
todo!()
|
||||
|
||||
Reference in New Issue
Block a user