archeus/tests/std/parser.c

46 lines
1.2 KiB
C
Raw Normal View History

#include "../test.h"
#include "arc/std/parser.h"
#define LAMBDA 0
#define CHAR 1
#define NUM 2
#define CHAR_OR_NUM 3
#define VARIABLE_NAME 4
#define VARIABLE 5
ARC_TEST(Lexer_Char_Match){
ARC_Parser *parser;
uint32_t *charOrNumTokens[] = { (uint32_t[]){ 1, CHAR }, (uint32_t[]){ 1, NUM } };
uint32_t *variableNameTags[] = { (uint32_t[]){ 2, CHAR_OR_NUM, VARIABLE_NAME }, (uint32_t[]){ 1, LAMBDA } };
uint32_t *variableTokensOrTags[] = { (uint32_t[]){ 2, CHAR, VARIABLE_NAME } };
ARC_ParserLanguageTag testTags[3] = {
{
CHAR_OR_NUM, //tagId
charOrNumTokens, //tokensOrTags
2 //tokenOrTagsSize
},
{
VARIABLE_NAME, //tagId
variableNameTags, //tokensOrTags
2 //tokenOrTagsSize
},
{
VARIABLE, //tagId
variableTokensOrTags, //tokensOrTags
1 //tokenOrTagsSize
}
};
ARC_Array languageArray = {
3, //size
testTags //data
};
ARC_Parser_Create(&parser, &languageArray);
ARC_Parser_Destroy(parser);
ARC_CHECK(1 == 1);
}