Rework identifier handling, adds typedef statement.
This commit is contained in:
@@ -6,7 +6,7 @@ using namespace MalachScript::Parser;
|
||||
#define KEYWORD_TEST(script, symbol) \
|
||||
TEST_CASE("Lex " script) { \
|
||||
MalachScript::Diagnostics::Diagnostics diag; \
|
||||
auto lexer = Lexer(u8##script, u8##script, &diag); \
|
||||
auto lexer = Lexer(u8##script, u8##script, &diag); \
|
||||
const auto* token = lexer.Lex(); \
|
||||
CHECK(diag.GetMessages().empty()); \
|
||||
CHECK(token->GetKind() == LexTokenKind::symbol); \
|
||||
@@ -93,11 +93,11 @@ namespace doctest {
|
||||
#define IDENTIFIER_TEST(identifier) \
|
||||
TEST_CASE("Lex identifier " identifier) { \
|
||||
MalachScript::Diagnostics::Diagnostics diag; \
|
||||
auto lexer = Lexer(u8##identifier, u8##identifier, &diag); \
|
||||
auto lexer = Lexer(u8##identifier, u8##identifier, &diag); \
|
||||
const auto* token = lexer.Lex(); \
|
||||
CHECK(diag.GetMessages().empty()); \
|
||||
REQUIRE(token->GetKind() == LexTokenKind::Identifier); \
|
||||
auto value = ((IdentifierToken*)token)->GetValue(); \
|
||||
auto value = ((IdentifierToken*)token)->GetValue().GetString(); \
|
||||
CHECK(value == std::u8string(reinterpret_cast<const char8_t*>(identifier))); \
|
||||
CHECK(token->GetNext()->GetKind() == LexTokenKind::EndOfFile); \
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user