Parse binop expressions
Signed-off-by: CHatingPython <chatingpython@gmail.com>
This commit is contained in:
+13
-13
@@ -18,17 +18,17 @@ using namespace std::string_view_literals;
|
||||
|
||||
TEST(Lexer, Tokens) {
|
||||
lexer lexer("<TEMP>", "()\n\t\t{\n}[\"shto-to\"]; :,.main return func");
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Lparen, "("sv }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Rparen, ")"sv }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Lbrace, "{"sv }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Rbrace, "}"sv }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Lbracket, "["sv }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Lparen }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Rparen }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Lbrace }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Rbrace }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Lbracket }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::String, "shto-to"sv }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Rbracket, "]"sv }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Semicolon, ";"sv }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Colon, ":"sv }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Comma, ","sv }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Dot, "."sv }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Rbracket }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Semicolon }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Colon }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Comma }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Dot }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Identifier, "main"sv }));
|
||||
EXPECT_TOKEN(lexer, (token{ keyword_token::Return }));
|
||||
EXPECT_TOKEN(lexer, (token{ keyword_token::Func }));
|
||||
@@ -37,10 +37,10 @@ TEST(Lexer, Tokens) {
|
||||
|
||||
TEST(Lexer, Comments) {
|
||||
lexer lexer("<TEMP>", "(/** skibidi **/func{//)\n}");
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Lparen, "("sv }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Lparen, "("sv })); // left out the string-view deliberately
|
||||
EXPECT_TOKEN(lexer, (token{ keyword_token::Func }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Lbrace, "{"sv }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Rbrace, "}"sv }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Lbrace }));
|
||||
EXPECT_TOKEN(lexer, (token{ token_t::Rbrace }));
|
||||
EXPECT_EOF(lexer);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user