mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Make `abstract
` keyword instead of reserved
This commit is contained in:
parent
5b8ff78176
commit
caa127e2a8
@ -143,6 +143,7 @@ namespace langutil
|
|||||||
/* Inline Assembly Operators */ \
|
/* Inline Assembly Operators */ \
|
||||||
T(AssemblyAssign, ":=", 2) \
|
T(AssemblyAssign, ":=", 2) \
|
||||||
/* Keywords */ \
|
/* Keywords */ \
|
||||||
|
K(Abstract, "abstract", 0) \
|
||||||
K(Anonymous, "anonymous", 0) \
|
K(Anonymous, "anonymous", 0) \
|
||||||
K(As, "as", 0) \
|
K(As, "as", 0) \
|
||||||
K(Assembly, "assembly", 0) \
|
K(Assembly, "assembly", 0) \
|
||||||
@ -231,7 +232,6 @@ namespace langutil
|
|||||||
T(Identifier, nullptr, 0) \
|
T(Identifier, nullptr, 0) \
|
||||||
\
|
\
|
||||||
/* Keywords reserved for future use. */ \
|
/* Keywords reserved for future use. */ \
|
||||||
K(Abstract, "abstract", 0) \
|
|
||||||
K(After, "after", 0) \
|
K(After, "after", 0) \
|
||||||
K(Alias, "alias", 0) \
|
K(Alias, "alias", 0) \
|
||||||
K(Apply, "apply", 0) \
|
K(Apply, "apply", 0) \
|
||||||
@ -313,7 +313,7 @@ namespace TokenTraits
|
|||||||
|
|
||||||
constexpr bool isEtherSubdenomination(Token op) { return op == Token::SubWei || op == Token::SubSzabo || op == Token::SubFinney || op == Token::SubEther; }
|
constexpr bool isEtherSubdenomination(Token op) { return op == Token::SubWei || op == Token::SubSzabo || op == Token::SubFinney || op == Token::SubEther; }
|
||||||
constexpr bool isTimeSubdenomination(Token op) { return op == Token::SubSecond || op == Token::SubMinute || op == Token::SubHour || op == Token::SubDay || op == Token::SubWeek || op == Token::SubYear; }
|
constexpr bool isTimeSubdenomination(Token op) { return op == Token::SubSecond || op == Token::SubMinute || op == Token::SubHour || op == Token::SubDay || op == Token::SubWeek || op == Token::SubYear; }
|
||||||
constexpr bool isReservedKeyword(Token op) { return (Token::Abstract <= op && op <= Token::Unchecked); }
|
constexpr bool isReservedKeyword(Token op) { return (Token::After <= op && op <= Token::Unchecked); }
|
||||||
|
|
||||||
inline Token AssignmentToBinaryOp(Token op)
|
inline Token AssignmentToBinaryOp(Token op)
|
||||||
{
|
{
|
||||||
|
@ -121,7 +121,7 @@ BOOST_AUTO_TEST_SUITE(SolidityParser)
|
|||||||
BOOST_AUTO_TEST_CASE(reserved_keywords)
|
BOOST_AUTO_TEST_CASE(reserved_keywords)
|
||||||
{
|
{
|
||||||
BOOST_CHECK(!TokenTraits::isReservedKeyword(Token::Identifier));
|
BOOST_CHECK(!TokenTraits::isReservedKeyword(Token::Identifier));
|
||||||
BOOST_CHECK(TokenTraits::isReservedKeyword(Token::Abstract));
|
BOOST_CHECK(TokenTraits::isReservedKeyword(Token::After));
|
||||||
BOOST_CHECK(TokenTraits::isReservedKeyword(Token::Unchecked));
|
BOOST_CHECK(TokenTraits::isReservedKeyword(Token::Unchecked));
|
||||||
BOOST_CHECK(!TokenTraits::isReservedKeyword(Token::Illegal));
|
BOOST_CHECK(!TokenTraits::isReservedKeyword(Token::Illegal));
|
||||||
}
|
}
|
||||||
@ -532,7 +532,6 @@ BOOST_AUTO_TEST_CASE(multiple_visibility_specifiers)
|
|||||||
BOOST_AUTO_TEST_CASE(keyword_is_reserved)
|
BOOST_AUTO_TEST_CASE(keyword_is_reserved)
|
||||||
{
|
{
|
||||||
auto keywords = {
|
auto keywords = {
|
||||||
"abstract",
|
|
||||||
"after",
|
"after",
|
||||||
"alias",
|
"alias",
|
||||||
"apply",
|
"apply",
|
||||||
@ -568,6 +567,8 @@ BOOST_AUTO_TEST_CASE(keyword_is_reserved)
|
|||||||
"unchecked"
|
"unchecked"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(std::size(keywords), static_cast<int>(Token::Unchecked) - static_cast<int>(Token::After) + 1);
|
||||||
|
|
||||||
for (auto const& keyword: keywords)
|
for (auto const& keyword: keywords)
|
||||||
{
|
{
|
||||||
auto text = std::string("contract ") + keyword + " {}";
|
auto text = std::string("contract ") + keyword + " {}";
|
||||||
|
Loading…
Reference in New Issue
Block a user