fixed basic parse test, by updated lexer check index after successful recurse

This commit is contained in:
herbglitch 2024-11-14 00:59:04 -07:00
parent 5f34dbfeca
commit fcc41aa576
2 changed files with 36 additions and 4 deletions

View file

@ -118,6 +118,9 @@ ARC_Bool ARC_Parser_ParseTag(ARC_Parser *parser, uint32_t *lexerIndex, uint32_t
break;
}
//increase the lexer check index as a recursed rule was found
lexerCheckIndex = *lexerIndex;
//this will probably never be called as lambda is usually the last instruction, but just in case we can continue instead of break
continue;
}

View file

@ -80,17 +80,46 @@ ARC_TEST(Parser_Basic_Parse){
};
ARC_Parser_Create(&parser, &languageArray, TEST_Parser_InitLexerRulesFn);
ARC_String *tempString;
//ARC_String_CreateWithStrlen(&tempString, "myvar1");
ARC_String_CreateWithStrlen(&tempString, "m");
//first variable test
ARC_String_CreateWithStrlen(&tempString, "myvar1");
//this destroys string, so no need for cleanup
ARC_Parser_Parse(parser, &tempString);
ARC_Parser_Destroy(parser);
ARC_CHECK(arc_errno == 0);
//second variable test
ARC_String_CreateWithStrlen(&tempString, "z1xwvq");
//this destroys string, so no need for cleanup
ARC_Parser_Parse(parser, &tempString);
ARC_CHECK(arc_errno == 0);
//third variable test
ARC_String_CreateWithStrlen(&tempString, "z1234");
//this destroys string, so no need for cleanup
ARC_Parser_Parse(parser, &tempString);
ARC_CHECK(arc_errno == 0);
//fourth variable test
ARC_String_CreateWithStrlen(&tempString, "aaaaa");
//this destroys string, so no need for cleanup
ARC_Parser_Parse(parser, &tempString);
ARC_CHECK(arc_errno == 0);
ARC_Parser_Destroy(parser);
}
ARC_TEST(Parser_Basic_ParseError){