#include "../test.h" #include "arc/std/lexer.h" ARC_TEST(Lexer_Char_Match){ ARC_Lexer *lexer; ARC_Lexer_Create(&lexer); ARC_Lexer_InitBasicTokenRules(lexer); ARC_String *simple; ARC_String_CreateWithStrlen(&simple, "::{}!/."); ARC_Lexer_LexString(lexer, &simple); ARC_LexerToken token; token = ARC_Lexer_GetToken(lexer, 0); ARC_CHECK(token.rule == ARC_LEXER_TOKEN_COLON_ID); token = ARC_Lexer_GetToken(lexer, 1); ARC_CHECK(token.rule == ARC_LEXER_TOKEN_COLON_ID); token = ARC_Lexer_GetToken(lexer, 2); ARC_CHECK(token.rule == ARC_LEXER_TOKEN_LEFT_CURLY_BRACE_ID); token = ARC_Lexer_GetToken(lexer, 3); ARC_CHECK(token.rule == ARC_LEXER_TOKEN_RIGHT_CURLY_BRACE_ID); token = ARC_Lexer_GetToken(lexer, 4); ARC_CHECK(token.rule == ARC_LEXER_TOKEN_BANG_ID); token = ARC_Lexer_GetToken(lexer, 5); ARC_CHECK(token.rule == ARC_LEXER_TOKEN_FORWARD_SLASH_ID); token = ARC_Lexer_GetToken(lexer, 6); ARC_CHECK(token.rule == ARC_LEXER_TOKEN_PERIOD_ID); ARC_Lexer_Destroy(lexer); }