fixed lexer, continous should now work fairly efficiently
This commit is contained in:
parent
136344c009
commit
5b2b8ef21c
3 changed files with 74 additions and 77 deletions
|
|
@ -48,6 +48,8 @@ ARC_TEST(Lexer_Check_Id_Basic){
|
|||
ARC_Lexer_RegisterTokenRule(lexer, ARC_LexerTokenRule_CreateAndReturnMatchCharRule(3, ':'));
|
||||
ARC_Lexer_RegisterTokenRule(lexer, ARC_LexerTokenRule_CreateAndReturnMatchCharRule(4, ':'));
|
||||
|
||||
ARC_CHECK(ARC_Lexer_IsContinious(lexer) == ARC_True);
|
||||
|
||||
ARC_CHECK(ARC_Lexer_IsTokenId(lexer, 0) == ARC_True );
|
||||
ARC_CHECK(ARC_Lexer_IsTokenId(lexer, 7) == ARC_False);
|
||||
ARC_CHECK(ARC_Lexer_IsTokenId(lexer, 2) == ARC_True );
|
||||
|
|
@ -67,6 +69,8 @@ ARC_TEST(Lexer_Check_Id_Unordered_But_Continious){
|
|||
ARC_Lexer_RegisterTokenRule(lexer, ARC_LexerTokenRule_CreateAndReturnMatchCharRule(1, ':'));
|
||||
ARC_Lexer_RegisterTokenRule(lexer, ARC_LexerTokenRule_CreateAndReturnMatchCharRule(4, ':'));
|
||||
|
||||
ARC_CHECK(ARC_Lexer_IsContinious(lexer) == ARC_True);
|
||||
|
||||
ARC_CHECK(ARC_Lexer_IsTokenId(lexer, 0) == ARC_True );
|
||||
ARC_CHECK(ARC_Lexer_IsTokenId(lexer, 7) == ARC_False);
|
||||
ARC_CHECK(ARC_Lexer_IsTokenId(lexer, 2) == ARC_True );
|
||||
|
|
@ -86,6 +90,8 @@ ARC_TEST(Lexer_Check_Id_Unordered_Not_Continious){
|
|||
ARC_Lexer_RegisterTokenRule(lexer, ARC_LexerTokenRule_CreateAndReturnMatchCharRule(1, ':'));
|
||||
ARC_Lexer_RegisterTokenRule(lexer, ARC_LexerTokenRule_CreateAndReturnMatchCharRule(4, ':'));
|
||||
|
||||
ARC_CHECK(ARC_Lexer_IsContinious(lexer) == ARC_False);
|
||||
|
||||
ARC_CHECK(ARC_Lexer_IsTokenId(lexer, 8) == ARC_True );
|
||||
ARC_CHECK(ARC_Lexer_IsTokenId(lexer, 7) == ARC_False);
|
||||
ARC_CHECK(ARC_Lexer_IsTokenId(lexer, 2) == ARC_True );
|
||||
|
|
@ -94,33 +100,3 @@ ARC_TEST(Lexer_Check_Id_Unordered_Not_Continious){
|
|||
|
||||
ARC_Lexer_Destroy(lexer);
|
||||
}
|
||||
|
||||
ARC_TEST(Lexer_Check_Continious){
|
||||
ARC_Lexer *lexer;
|
||||
ARC_Lexer_Create(&lexer);
|
||||
|
||||
ARC_Lexer_RegisterTokenRule(lexer, ARC_LexerTokenRule_CreateAndReturnMatchCharRule(2, ':'));
|
||||
ARC_Lexer_RegisterTokenRule(lexer, ARC_LexerTokenRule_CreateAndReturnMatchCharRule(0, 0 ));
|
||||
ARC_Lexer_RegisterTokenRule(lexer, ARC_LexerTokenRule_CreateAndReturnMatchCharRule(3, ':'));
|
||||
ARC_Lexer_RegisterTokenRule(lexer, ARC_LexerTokenRule_CreateAndReturnMatchCharRule(1, ':'));
|
||||
ARC_Lexer_RegisterTokenRule(lexer, ARC_LexerTokenRule_CreateAndReturnMatchCharRule(4, ':'));
|
||||
|
||||
ARC_CHECK(ARC_Lexer_IsContinious(lexer) == ARC_True);
|
||||
|
||||
ARC_Lexer_Destroy(lexer);
|
||||
}
|
||||
|
||||
ARC_TEST(Lexer_Check_Not_Continious){
|
||||
ARC_Lexer *lexer;
|
||||
ARC_Lexer_Create(&lexer);
|
||||
|
||||
ARC_Lexer_RegisterTokenRule(lexer, ARC_LexerTokenRule_CreateAndReturnMatchCharRule(2, ':'));
|
||||
ARC_Lexer_RegisterTokenRule(lexer, ARC_LexerTokenRule_CreateAndReturnMatchCharRule(8, 0 ));
|
||||
ARC_Lexer_RegisterTokenRule(lexer, ARC_LexerTokenRule_CreateAndReturnMatchCharRule(3, ':'));
|
||||
ARC_Lexer_RegisterTokenRule(lexer, ARC_LexerTokenRule_CreateAndReturnMatchCharRule(1, ':'));
|
||||
ARC_Lexer_RegisterTokenRule(lexer, ARC_LexerTokenRule_CreateAndReturnMatchCharRule(4, ':'));
|
||||
|
||||
ARC_CHECK(ARC_Lexer_IsContinious(lexer) == ARC_False);
|
||||
|
||||
ARC_Lexer_Destroy(lexer);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue