aboutsummaryrefslogtreecommitdiffstats
path: root/solidityScanner.cpp
diff options
context:
space:
mode:
authorChristian <c@ethdev.com>2014-10-16 20:08:54 +0800
committerChristian <c@ethdev.com>2014-10-16 20:08:54 +0800
commitee06ed2ff8fab08bc31662c298796c50009c2a11 (patch)
tree874f6ff1604dd45284d6c290cf9166d6221a4479 /solidityScanner.cpp
parentc2f3d27940cb36d1991d2464f36f320d9d656577 (diff)
downloaddexon-solidity-ee06ed2ff8fab08bc31662c298796c50009c2a11.tar.gz
dexon-solidity-ee06ed2ff8fab08bc31662c298796c50009c2a11.tar.zst
dexon-solidity-ee06ed2ff8fab08bc31662c298796c50009c2a11.zip
Corrected coding style.
Diffstat (limited to 'solidityScanner.cpp')
-rw-r--r--solidityScanner.cpp155
1 files changed, 80 insertions, 75 deletions
diff --git a/solidityScanner.cpp b/solidityScanner.cpp
index 759d2f10..d2a960cf 100644
--- a/solidityScanner.cpp
+++ b/solidityScanner.cpp
@@ -23,116 +23,121 @@
#include <libsolidity/Scanner.h>
#include <boost/test/unit_test.hpp>
-namespace dev {
-namespace solidity {
-namespace test {
+namespace dev
+{
+namespace solidity
+{
+namespace test
+{
BOOST_AUTO_TEST_SUITE(SolidityScanner)
BOOST_AUTO_TEST_CASE(test_empty)
{
- Scanner scanner(CharStream(""));
- BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::EOS);
+ Scanner scanner(CharStream(""));
+ BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::EOS);
}
BOOST_AUTO_TEST_CASE(smoke_test)
{
- Scanner scanner(CharStream("function break;765 \t \"string1\",'string2'\nidentifier1"));
- BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::FUNCTION);
- BOOST_CHECK_EQUAL(scanner.next(), Token::BREAK);
- BOOST_CHECK_EQUAL(scanner.next(), Token::SEMICOLON);
- BOOST_CHECK_EQUAL(scanner.next(), Token::NUMBER);
- BOOST_CHECK_EQUAL(scanner.getCurrentLiteral(), "765");
- BOOST_CHECK_EQUAL(scanner.next(), Token::STRING_LITERAL);
- BOOST_CHECK_EQUAL(scanner.getCurrentLiteral(), "string1");
- BOOST_CHECK_EQUAL(scanner.next(), Token::COMMA);
- BOOST_CHECK_EQUAL(scanner.next(), Token::STRING_LITERAL);
- BOOST_CHECK_EQUAL(scanner.getCurrentLiteral(), "string2");
- BOOST_CHECK_EQUAL(scanner.next(), Token::IDENTIFIER);
- BOOST_CHECK_EQUAL(scanner.getCurrentLiteral(), "identifier1");
- BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
+ Scanner scanner(CharStream("function break;765 \t \"string1\",'string2'\nidentifier1"));
+ BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::FUNCTION);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::BREAK);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::SEMICOLON);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::NUMBER);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLiteral(), "765");
+ BOOST_CHECK_EQUAL(scanner.next(), Token::STRING_LITERAL);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLiteral(), "string1");
+ BOOST_CHECK_EQUAL(scanner.next(), Token::COMMA);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::STRING_LITERAL);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLiteral(), "string2");
+ BOOST_CHECK_EQUAL(scanner.next(), Token::IDENTIFIER);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLiteral(), "identifier1");
+ BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
}
BOOST_AUTO_TEST_CASE(string_escapes)
{
- Scanner scanner(CharStream(" { \"a\\x61\""));
- BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::LBRACE);
- BOOST_CHECK_EQUAL(scanner.next(), Token::STRING_LITERAL);
- BOOST_CHECK_EQUAL(scanner.getCurrentLiteral(), "aa");
+ Scanner scanner(CharStream(" { \"a\\x61\""));
+ BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::LBRACE);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::STRING_LITERAL);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLiteral(), "aa");
}
BOOST_AUTO_TEST_CASE(string_escapes_with_zero)
{
- Scanner scanner(CharStream(" { \"a\\x61\\x00abc\""));
- BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::LBRACE);
- BOOST_CHECK_EQUAL(scanner.next(), Token::STRING_LITERAL);
- BOOST_CHECK_EQUAL(scanner.getCurrentLiteral(), std::string("aa\0abc", 6));
+ Scanner scanner(CharStream(" { \"a\\x61\\x00abc\""));
+ BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::LBRACE);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::STRING_LITERAL);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLiteral(), std::string("aa\0abc", 6));
}
BOOST_AUTO_TEST_CASE(string_escape_illegal)
{
- Scanner scanner(CharStream(" bla \"\\x6rf\" (illegalescape)"));
- BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::IDENTIFIER);
- BOOST_CHECK_EQUAL(scanner.next(), Token::ILLEGAL);
- BOOST_CHECK_EQUAL(scanner.getCurrentLiteral(), "");
- // TODO recovery from illegal tokens should be improved
- BOOST_CHECK_EQUAL(scanner.next(), Token::ILLEGAL);
- BOOST_CHECK_EQUAL(scanner.next(), Token::IDENTIFIER);
- BOOST_CHECK_EQUAL(scanner.next(), Token::ILLEGAL);
- BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
+ Scanner scanner(CharStream(" bla \"\\x6rf\" (illegalescape)"));
+ BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::IDENTIFIER);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::ILLEGAL);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLiteral(), "");
+ // TODO recovery from illegal tokens should be improved
+ BOOST_CHECK_EQUAL(scanner.next(), Token::ILLEGAL);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::IDENTIFIER);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::ILLEGAL);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
}
BOOST_AUTO_TEST_CASE(hex_numbers)
{
- Scanner scanner(CharStream("var x = 0x765432536763762734623472346;"));
- BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::VAR);
- BOOST_CHECK_EQUAL(scanner.next(), Token::IDENTIFIER);
- BOOST_CHECK_EQUAL(scanner.next(), Token::ASSIGN);
- BOOST_CHECK_EQUAL(scanner.next(), Token::NUMBER);
- BOOST_CHECK_EQUAL(scanner.getCurrentLiteral(), "0x765432536763762734623472346");
- BOOST_CHECK_EQUAL(scanner.next(), Token::SEMICOLON);
- BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
+ Scanner scanner(CharStream("var x = 0x765432536763762734623472346;"));
+ BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::VAR);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::IDENTIFIER);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::ASSIGN);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::NUMBER);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLiteral(), "0x765432536763762734623472346");
+ BOOST_CHECK_EQUAL(scanner.next(), Token::SEMICOLON);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
}
BOOST_AUTO_TEST_CASE(locations)
{
- Scanner scanner(CharStream("function_identifier has ; -0x743/*comment*/\n ident //comment"));
- BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::IDENTIFIER);
- BOOST_CHECK_EQUAL(scanner.getCurrentLocation().start, 0);
- BOOST_CHECK_EQUAL(scanner.getCurrentLocation().end, 19);
- BOOST_CHECK_EQUAL(scanner.next(), Token::IDENTIFIER);
- BOOST_CHECK_EQUAL(scanner.getCurrentLocation().start, 20);
- BOOST_CHECK_EQUAL(scanner.getCurrentLocation().end, 23);
- BOOST_CHECK_EQUAL(scanner.next(), Token::SEMICOLON);
- BOOST_CHECK_EQUAL(scanner.getCurrentLocation().start, 24);
- BOOST_CHECK_EQUAL(scanner.getCurrentLocation().end, 25);
- BOOST_CHECK_EQUAL(scanner.next(), Token::SUB);
- BOOST_CHECK_EQUAL(scanner.getCurrentLocation().start, 26);
- BOOST_CHECK_EQUAL(scanner.getCurrentLocation().end, 27);
- BOOST_CHECK_EQUAL(scanner.next(), Token::NUMBER);
- BOOST_CHECK_EQUAL(scanner.getCurrentLocation().start, 27);
- BOOST_CHECK_EQUAL(scanner.getCurrentLocation().end, 32);
- BOOST_CHECK_EQUAL(scanner.next(), Token::IDENTIFIER);
- BOOST_CHECK_EQUAL(scanner.getCurrentLocation().start, 45);
- BOOST_CHECK_EQUAL(scanner.getCurrentLocation().end, 50);
- BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
+ Scanner scanner(CharStream("function_identifier has ; -0x743/*comment*/\n ident //comment"));
+ BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::IDENTIFIER);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLocation().start, 0);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLocation().end, 19);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::IDENTIFIER);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLocation().start, 20);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLocation().end, 23);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::SEMICOLON);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLocation().start, 24);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLocation().end, 25);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::SUB);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLocation().start, 26);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLocation().end, 27);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::NUMBER);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLocation().start, 27);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLocation().end, 32);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::IDENTIFIER);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLocation().start, 45);
+ BOOST_CHECK_EQUAL(scanner.getCurrentLocation().end, 50);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
}
BOOST_AUTO_TEST_CASE(ambiguities)
{
- // test scanning of some operators which need look-ahead
- Scanner scanner(CharStream("<=""<""+ +=a++ =>""<<"));
- BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::LTE);
- BOOST_CHECK_EQUAL(scanner.next(), Token::LT);
- BOOST_CHECK_EQUAL(scanner.next(), Token::ADD);
- BOOST_CHECK_EQUAL(scanner.next(), Token::ASSIGN_ADD);
- BOOST_CHECK_EQUAL(scanner.next(), Token::IDENTIFIER);
- BOOST_CHECK_EQUAL(scanner.next(), Token::INC);
- BOOST_CHECK_EQUAL(scanner.next(), Token::ARROW);
- BOOST_CHECK_EQUAL(scanner.next(), Token::SHL);
+ // test scanning of some operators which need look-ahead
+ Scanner scanner(CharStream("<=""<""+ +=a++ =>""<<"));
+ BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::LTE);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::LT);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::ADD);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::ASSIGN_ADD);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::IDENTIFIER);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::INC);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::ARROW);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::SHL);
}
BOOST_AUTO_TEST_SUITE_END()
-} } } // end namespaces
+}
+}
+} // end namespaces