Update grader

This commit is contained in:
Chunmyong Park
2020-07-02 06:54:19 +00:00
parent 114f38cbb6
commit d64e9f622e
36 changed files with 314 additions and 149 deletions

View File

@@ -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

View File

@@ -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!()