mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Scanner properly scans multiline natspec comments
- Single and multiline natspect comments get the initial whitespace skipped now - Some rules introduced for the multiline comments. If first line is empty then no newline is added to the literal. Same thing with the last line. Finally in all lines initial '*' are skipped
This commit is contained in:
parent
734a609d69
commit
00d6c1ac34
@ -157,14 +157,14 @@ BOOST_AUTO_TEST_CASE(documentation_comments_parsed_begin)
|
||||
{
|
||||
Scanner scanner(CharStream("/// Send $(value / 1000) chocolates to the user"));
|
||||
BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::EOS);
|
||||
BOOST_CHECK_EQUAL(scanner.getCurrentCommentLiteral(), " Send $(value / 1000) chocolates to the user");
|
||||
BOOST_CHECK_EQUAL(scanner.getCurrentCommentLiteral(), "Send $(value / 1000) chocolates to the user");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(multiline_documentation_comments_parsed_begin)
|
||||
{
|
||||
Scanner scanner(CharStream("/** Send $(value / 1000) chocolates to the user*/"));
|
||||
BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::EOS);
|
||||
BOOST_CHECK_EQUAL(scanner.getCurrentCommentLiteral(), " Send $(value / 1000) chocolates to the user");
|
||||
BOOST_CHECK_EQUAL(scanner.getCurrentCommentLiteral(), "Send $(value / 1000) chocolates to the user");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(documentation_comments_parsed)
|
||||
@ -174,7 +174,19 @@ BOOST_AUTO_TEST_CASE(documentation_comments_parsed)
|
||||
BOOST_CHECK_EQUAL(scanner.next(), Token::IDENTIFIER);
|
||||
BOOST_CHECK_EQUAL(scanner.next(), Token::IDENTIFIER);
|
||||
BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
|
||||
BOOST_CHECK_EQUAL(scanner.getCurrentCommentLiteral(), " Send $(value / 1000) chocolates to the user");
|
||||
BOOST_CHECK_EQUAL(scanner.getCurrentCommentLiteral(), "Send $(value / 1000) chocolates to the user");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(multiline_documentation_comments_parsed)
|
||||
{
|
||||
Scanner scanner(CharStream("some other tokens /**\n"
|
||||
"* Send $(value / 1000) chocolates to the user\n"
|
||||
"*/"));
|
||||
BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::IDENTIFIER);
|
||||
BOOST_CHECK_EQUAL(scanner.next(), Token::IDENTIFIER);
|
||||
BOOST_CHECK_EQUAL(scanner.next(), Token::IDENTIFIER);
|
||||
BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
|
||||
BOOST_CHECK_EQUAL(scanner.getCurrentCommentLiteral(), "Send $(value / 1000) chocolates to the user");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(comment_before_eos)
|
||||
@ -191,6 +203,13 @@ BOOST_AUTO_TEST_CASE(documentation_comment_before_eos)
|
||||
BOOST_CHECK_EQUAL(scanner.getCurrentCommentLiteral(), "");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(empty_multiline_documentation_comment_before_eos)
|
||||
{
|
||||
Scanner scanner(CharStream("/***/"));
|
||||
BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::EOS);
|
||||
BOOST_CHECK_EQUAL(scanner.getCurrentCommentLiteral(), "");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(comments_mixed_in_sequence)
|
||||
{
|
||||
Scanner scanner(CharStream("hello_world ///documentation comment \n"
|
||||
|
Loading…
Reference in New Issue
Block a user