Archeus 0.0.0
A C library and game engine that focuses on documentation
Loading...
Searching...
No Matches
parser.c File Reference
#include "../test.h"
#include "arc/std/bool.h"
#include "arc/std/errno.h"
#include "arc/std/parser.h"
#include "arc/std/parser/helpers.h"
#include "arc/std/lexer.h"
#include "arc/std/vector.h"
#include <stddef.h>
#include <stdlib.h>

Go to the source code of this file.

Functions

void TEST_ParserData_CreateStringFn (void **data, ARC_ParserTagToken *parsedData, void *userData)
 
void TEST_ParserData_DestroyStringFn (void *data, ARC_Bool clear, void *userData)
 
void TEST_Parser_InitLexerRulesFn (ARC_Lexer *lexer)
 
 ARC_TEST (Parser_Init)
 
 ARC_TEST (Parser_Basic_Parse)
 
 ARC_TEST (Parser_Basic_ParseError)
 
 ARC_TEST (Parser_Basic_GetParsedValue)
 
 ARC_TEST (Parser_ParserLang_BasicVector)
 
void TEST_Parser_InitBasicLexerTokenRules (ARC_Lexer *lexer)
 
uint32_t TEST_Parser_GetStringIdFn (ARC_String *string)
 
void TEST_ParserData_CreateCharFn (void **data, ARC_ParserTagToken *parsedData, void *userData)
 
void TEST_ParserData_DestroyCharFn (void *data, ARC_Bool clear, void *userData)
 
 ARC_TEST (Parser_Parser_BasicCreateWithStringTest)
 

Variables

const uint32_t TEST_PARSER_CHAR_OR_NUM = 23
 
const uint32_t TEST_PARSER_VARIABLE_NAME = 24
 
const uint32_t TEST_PARSER_VARIABLE = 25
 
const uint32_t TEST_PARSER_ALPHA_LOWER_CHAR = 1
 
const uint32_t TEST_PARSER_ALPHA_UPPER_CHAR = 2
 
const uint32_t TEST_PARSER_ALPHA_CHAR = 3
 
uint32_t * charOrNumTokens [] = { (uint32_t[]){ 1, ARC_LEXER_TOKEN_ALPHA_LOWER_CHAR }, (uint32_t[]){ 1, ARC_LEXER_TOKEN_NUMBER } }
 
uint32_t * variableNameTags [] = { (uint32_t[]){ 2, TEST_PARSER_CHAR_OR_NUM, TEST_PARSER_VARIABLE_NAME }, (uint32_t[]){ 1, ARC_PARSER_TAG_LAMBDA } }
 
uint32_t * variableTokensOrTags [] = { (uint32_t[]){ 2, ARC_LEXER_TOKEN_ALPHA_LOWER_CHAR, TEST_PARSER_VARIABLE_NAME } }
 
ARC_ParserTag testTags [3]
 
ARC_Array languageArray
 

Function Documentation

◆ ARC_TEST() [1/6]

ARC_TEST ( Parser_Basic_GetParsedValue )

Definition at line 167 of file parser.c.

167 {
168 ARC_Parser *parser;
169
172
173 ARC_Parser_Create(&parser, &languageArray, TEST_Parser_InitLexerRulesFn, &createStringFn, &destroyStringFn, NULL);
174
175 ARC_String *tempString;
176
177
178 /* ~ first test ~ */
179 ARC_String_CreateWithStrlen(&tempString, "myvar1");
180
181 //this destroys string, so no need for cleanup
182 ARC_Parser_Parse(parser, &tempString);
183
184 ARC_CHECK(arc_errno == 0);
185
186 ARC_String *checkValue = (ARC_String *)ARC_Parser_GetData(parser);
187 ARC_CHECK(ARC_String_EqualsCStringWithStrlen(checkValue, "myvar1"));
188
189
190 /* ~ cleanup ~ */
191 ARC_Parser_Destroy(parser);
192}
int32_t arc_errno
Definition errno.c:5
void(* ARC_ParserData_CreateFn)(void **data, ARC_ParserTagToken *parsedData, void *userData)
TODO: write this.
Definition parser.h:57
void(* ARC_ParserData_DestroyFn)(void *data, ARC_Bool clear, void *userData)
TODO: write this.
Definition parser.h:62
void ARC_Parser_Create(ARC_Parser **parser, ARC_Array *language, ARC_Parser_InitLexerRulesFn initLexerRulesFn, ARC_ParserData_CreateFn *createDataFn, ARC_ParserData_DestroyFn *destroyDataFn, void *userData)
creates an ARC_Parser type
Definition parser.c:24
void ARC_Parser_Parse(ARC_Parser *parser, ARC_String **data)
Definition parser.c:297
void ARC_Parser_Destroy(ARC_Parser *parser)
destroys an ARC_Parser type
Definition parser.c:127
void * ARC_Parser_GetData(ARC_Parser *parser)
Definition parser.c:368
void ARC_String_CreateWithStrlen(ARC_String **string, char *data)
creates ARC_String type with strinlen
Definition string.c:32
ARC_Bool ARC_String_EqualsCStringWithStrlen(ARC_String *string, const char *cstring)
check if ARC_String and cstring match
Definition string.c:171
substring position within a string
Definition string.h:14
#define ARC_CHECK(TEST)
Definition test.h:33
void TEST_Parser_InitLexerRulesFn(ARC_Lexer *lexer)
Definition parser.c:62
ARC_Array languageArray
Definition parser.c:57
void TEST_ParserData_DestroyStringFn(void *data, ARC_Bool clear, void *userData)
Definition parser.c:25
void TEST_ParserData_CreateStringFn(void **data, ARC_ParserTagToken *parsedData, void *userData)
Definition parser.c:19

References ARC_CHECK, arc_errno, ARC_Parser_Create(), ARC_Parser_Destroy(), ARC_Parser_GetData(), ARC_Parser_Parse(), ARC_String_CreateWithStrlen(), ARC_String_EqualsCStringWithStrlen(), languageArray, TEST_Parser_InitLexerRulesFn(), TEST_ParserData_CreateStringFn(), and TEST_ParserData_DestroyStringFn().

◆ ARC_TEST() [2/6]

ARC_TEST ( Parser_Basic_Parse )

Definition at line 75 of file parser.c.

75 {
76 ARC_Parser *parser;
78
79 ARC_String *tempString;
80
81
82 /* ~ first test ~ */
83 ARC_String_CreateWithStrlen(&tempString, "myvar1");
84
85 //this destroys string, so no need for cleanup
86 ARC_Parser_Parse(parser, &tempString);
87
88 ARC_CHECK(arc_errno == 0);
89
90
91 /* ~ second test ~ */
92 ARC_String_CreateWithStrlen(&tempString, "z1xwvq");
93 //this destroys string, so no need for cleanup
94 ARC_Parser_Parse(parser, &tempString);
95
96
97 ARC_CHECK(arc_errno == 0);
98
99
100 /* ~ third test ~ */
101 ARC_String_CreateWithStrlen(&tempString, "z1234");
102
103 //this destroys string, so no need for cleanup
104 ARC_Parser_Parse(parser, &tempString);
105
106 ARC_CHECK(arc_errno == 0);
107
108
109 /* ~ fourth test ~ */
110 ARC_String_CreateWithStrlen(&tempString, "aaaaa");
111
112 //this destroys string, so no need for cleanup
113 ARC_Parser_Parse(parser, &tempString);
114
115 ARC_CHECK(arc_errno == 0);
116
117
118 /* ~ cleanup ~ */
119 ARC_Parser_Destroy(parser);
120}

References ARC_CHECK, arc_errno, ARC_Parser_Create(), ARC_Parser_Destroy(), ARC_Parser_Parse(), ARC_String_CreateWithStrlen(), languageArray, and TEST_Parser_InitLexerRulesFn().

◆ ARC_TEST() [3/6]

ARC_TEST ( Parser_Basic_ParseError )

Definition at line 122 of file parser.c.

122 {
123 ARC_Parser *parser;
125
126 ARC_String *tempString;
127
128
129 /* ~ first test ~ */
130 ARC_String_CreateWithStrlen(&tempString, "!myVar1");
131
132 //this destroys string, so no need for cleanup
133 ARC_Parser_Parse(parser, &tempString);
134
136
137
138 /* ~ second test ~ */
139 //check again with moved character
140 arc_errno = 0;
141 ARC_String_CreateWithStrlen(&tempString, "my!Var1");
142
143 //this destroys string, so no need for cleanup
144 ARC_Parser_Parse(parser, &tempString);
145
147
148
149 /* ~ third test ~ */
150 //check again with moved character
151 arc_errno = 0;
152 ARC_String_CreateWithStrlen(&tempString, "myVar1!");
153
154 //this destroys string, so no need for cleanup
155 ARC_Parser_Parse(parser, &tempString);
156
158
159
160 /* ~ cleanup ~ */
161 ARC_Parser_Destroy(parser);
162
163 //reset for next test
164 arc_errno = 0;
165}
#define ARC_ERRNO_DATA
Definition errno.h:7

References ARC_CHECK, arc_errno, ARC_ERRNO_DATA, ARC_Parser_Create(), ARC_Parser_Destroy(), ARC_Parser_Parse(), ARC_String_CreateWithStrlen(), languageArray, and TEST_Parser_InitLexerRulesFn().

◆ ARC_TEST() [4/6]

ARC_TEST ( Parser_Init )

Definition at line 66 of file parser.c.

66 {
67 ARC_Parser *parser;
69
70 ARC_Parser_Destroy(parser);
71
72 ARC_CHECK(arc_errno == 0);
73}

References ARC_CHECK, arc_errno, ARC_Parser_Create(), ARC_Parser_Destroy(), languageArray, and TEST_Parser_InitLexerRulesFn().

◆ ARC_TEST() [5/6]

ARC_TEST ( Parser_Parser_BasicCreateWithStringTest )

Definition at line 266 of file parser.c.

266 {
267 ARC_Parser *parser;
268
269 /* ~ create the language ~ */
270 ARC_String *languageString;
271 ARC_String_CreateWithStrlen(&languageString, "<alphaChar> -> ALPHA_LOWER_CHAR | ALPHA_UPPER_CHAR\n");
272
275 ARC_Parser_CreateFromString(&parser, languageString, TEST_Parser_InitBasicLexerTokenRules, TEST_Parser_GetStringIdFn, &createCharFn, &destroyCharFn, NULL);
276
277 ARC_String_Destroy(languageString);
278
279 ARC_CHECK(arc_errno == 0);
280
281
282 /* ~ check if a can be parsed ~ */
283 ARC_String *tempString;
284 ARC_String_CreateWithStrlen(&tempString, "a");
285
286 ARC_Parser_Parse(parser, &tempString);
287
288 char *data = (char *)ARC_Parser_GetData(parser);
289
290 ARC_CHECK(*data == 'a');
291
292 ARC_Parser_ClearData(parser);
293
294
295 /* ~ check if Z can be parsed ~ */
296 ARC_String_CreateWithStrlen(&tempString, "Z");
297
298 ARC_Parser_Parse(parser, &tempString);
299
300 data = (char *)ARC_Parser_GetData(parser);
301
302 ARC_CHECK(*data == 'Z');
303
304 ARC_Parser_ClearData(parser);
305
306
307 /* ~ check if 8 errors ~ */
308 ARC_String_CreateWithStrlen(&tempString, "8");
309
310 ARC_Parser_Parse(parser, &tempString);
311
312 data = (char *)ARC_Parser_GetData(parser);
313
315 arc_errno = 0;
316
317 ARC_Parser_ClearData(parser);
318
319
320 //cleanup
321 ARC_Parser_Destroy(parser);
322}
void ARC_Parser_CreateFromString(ARC_Parser **parser, ARC_String *languageString, ARC_Parser_InitLexerRulesFn initLexerRulesFn, ARC_Parser_GetStringIdFn getStringIdFn, ARC_ParserData_CreateFn *createDataFn, ARC_ParserData_DestroyFn *destroyDataFn, void *userData)
creates an ARC_Parser type from a string
Definition parser.c:105
void ARC_Parser_ClearData(ARC_Parser *parser)
Definition parser.c:358
void ARC_String_Destroy(ARC_String *string)
destroys ARC_String type
Definition string.c:52
uint32_t TEST_Parser_GetStringIdFn(ARC_String *string)
Definition parser.c:228
void TEST_ParserData_CreateCharFn(void **data, ARC_ParserTagToken *parsedData, void *userData)
Definition parser.c:244
void TEST_ParserData_DestroyCharFn(void *data, ARC_Bool clear, void *userData)
Definition parser.c:258
void TEST_Parser_InitBasicLexerTokenRules(ARC_Lexer *lexer)
Definition parser.c:219

References ARC_CHECK, arc_errno, ARC_ERRNO_DATA, ARC_Parser_ClearData(), ARC_Parser_CreateFromString(), ARC_Parser_Destroy(), ARC_Parser_GetData(), ARC_Parser_Parse(), ARC_String_CreateWithStrlen(), ARC_String_Destroy(), TEST_Parser_GetStringIdFn(), TEST_Parser_InitBasicLexerTokenRules(), TEST_ParserData_CreateCharFn(), and TEST_ParserData_DestroyCharFn().

◆ ARC_TEST() [6/6]

ARC_TEST ( Parser_ParserLang_BasicVector )

Definition at line 194 of file parser.c.

194 {
195 ARC_Vector *testLanguage;
196 ARC_Vector_Create(&testLanguage, NULL, NULL);
197
198 ARC_Vector_Add(testLanguage, testTags + 0);
199 ARC_Vector_Add(testLanguage, testTags + 1);
200 ARC_Vector_Add(testLanguage, testTags + 2);
201
202 ARC_Parser *parser;
203 ARC_Parser_CreateFromVector(&parser, testLanguage, TEST_Parser_InitLexerRulesFn, NULL, NULL, NULL);
204
205 ARC_String *tempString;
206 ARC_String_CreateWithStrlen(&tempString, "variablename");
207
208 //this destroys string, so no need for cleanup
209 ARC_Parser_Parse(parser, &tempString);
210
211 //cleanup
212 ARC_Parser_Destroy(parser);
213 ARC_Vector_Destroy(testLanguage);
214
215 ARC_CHECK(arc_errno == 0);
216}
void ARC_Parser_CreateFromVector(ARC_Parser **parser, ARC_Vector *language, ARC_Parser_InitLexerRulesFn initLexerRulesFn, ARC_ParserData_CreateFn *createDataFn, ARC_ParserData_DestroyFn *destroyDataFn, void *userData)
creates an ARC_Parser type from an arc vector
Definition parser.c:85
a private dynamic array type
Definition vector.c:12
ARC_ParserTag testTags[3]
Definition parser.c:39
void ARC_Vector_Add(ARC_Vector *vector, void *data)
adds an item to an ARC_Vector
Definition vector.c:70
void ARC_Vector_Destroy(ARC_Vector *vector)
destroys an ARC_Vector
Definition vector.c:54
void ARC_Vector_Create(ARC_Vector **vector, ARC_Vector_CompareDataFn *compareDataFn, ARC_Vector_DestroyDataFn *destroyDataFn)
creates an ARC_Vector which is an "expandable" array
Definition vector.c:31

References ARC_CHECK, arc_errno, ARC_Parser_CreateFromVector(), ARC_Parser_Destroy(), ARC_Parser_Parse(), ARC_String_CreateWithStrlen(), ARC_Vector_Add(), ARC_Vector_Create(), ARC_Vector_Destroy(), TEST_Parser_InitLexerRulesFn(), and testTags.

◆ TEST_Parser_GetStringIdFn()

uint32_t TEST_Parser_GetStringIdFn ( ARC_String * string)

Definition at line 228 of file parser.c.

228 {
229 if(ARC_String_EqualsCStringWithStrlen(string, "<alphaChar>")){
231 }
232
233 if(ARC_String_EqualsCStringWithStrlen(string, "ALPHA_LOWER_CHAR")){
235 }
236
237 if(ARC_String_EqualsCStringWithStrlen(string, "ALPHA_UPPER_CHAR")){
239 }
240
241 return ~(uint32_t)0;
242}
const uint32_t TEST_PARSER_ALPHA_CHAR
Definition parser.c:17
const uint32_t TEST_PARSER_ALPHA_LOWER_CHAR
Definition parser.c:15
const uint32_t TEST_PARSER_ALPHA_UPPER_CHAR
Definition parser.c:16

References ARC_String_EqualsCStringWithStrlen(), TEST_PARSER_ALPHA_CHAR, TEST_PARSER_ALPHA_LOWER_CHAR, and TEST_PARSER_ALPHA_UPPER_CHAR.

Referenced by ARC_TEST().

◆ TEST_Parser_InitBasicLexerTokenRules()

void TEST_Parser_InitBasicLexerTokenRules ( ARC_Lexer * lexer)

Definition at line 219 of file parser.c.

219 {
220 //null
222
223 //alpha char
226}
void ARC_Lexer_RegisterTokenRule(ARC_Lexer *lexer, ARC_LexerTokenRule tokenRule)
adds a token rule to a lexer
Definition lexer.c:79
ARC_LexerTokenRule ARC_LexerTokenRule_CreateAndReturnMatchCharRule(uint32_t id, char character)
creates a ARC_LexerTokenRule with a given id and character
Definition lexer.c:378
ARC_LexerTokenRule ARC_LexerTokenRule_CreateAndReturnMatchCharOrBetween(uint32_t id, char start, char end)
creates a ARC_LexerTokenRule with a given id and character range
Definition lexer.c:400
#define ARC_PARSER_TAG_LAMBDA
basic tag for letting the parser know it is ok to end
Definition parser.h:150

References ARC_Lexer_RegisterTokenRule(), ARC_LexerTokenRule_CreateAndReturnMatchCharOrBetween(), ARC_LexerTokenRule_CreateAndReturnMatchCharRule(), ARC_PARSER_TAG_LAMBDA, TEST_PARSER_ALPHA_LOWER_CHAR, and TEST_PARSER_ALPHA_UPPER_CHAR.

Referenced by ARC_TEST().

◆ TEST_Parser_InitLexerRulesFn()

void TEST_Parser_InitLexerRulesFn ( ARC_Lexer * lexer)

Definition at line 62 of file parser.c.

62 {
64}
void ARC_Lexer_InitBasicTokenRules(ARC_Lexer *lexer)
adds a bunch of basic token rules (matching the BasicTokens above)
Definition lexer.c:472

References ARC_Lexer_InitBasicTokenRules().

Referenced by ARC_TEST(), ARC_TEST(), ARC_TEST(), ARC_TEST(), and ARC_TEST().

◆ TEST_ParserData_CreateCharFn()

void TEST_ParserData_CreateCharFn ( void ** data,
ARC_ParserTagToken * parsedData,
void * userData )

Definition at line 244 of file parser.c.

244 {
245 if(parsedData == NULL){
246 *data = NULL;
247 return;
248 }
249
250 char *alphaChar = (char *)malloc(sizeof(char));
251
252 ARC_ParserTagToken *tagToken = (ARC_ParserTagToken *)ARC_Vector_Get(parsedData->tagTokens, 0);
253 *alphaChar = tagToken->token->data->data[0];
254
255 *data = (void *)alphaChar;
256}
ARC_String * data
Definition lexer.h:20
a parser type used inside of the parser data create function
Definition parser.h:35
ARC_LexerToken * token
Definition parser.h:38
ARC_Vector * tagTokens
Definition parser.h:39
char * data
Definition string.h:15
void * ARC_Vector_Get(ARC_Vector *vector, uint32_t index)
gets an item from an ARC_Vector at a position index
Definition vector.c:153

References ARC_Vector_Get(), ARC_LexerToken::data, ARC_String::data, ARC_ParserTagToken::tagTokens, and ARC_ParserTagToken::token.

Referenced by ARC_TEST().

◆ TEST_ParserData_CreateStringFn()

void TEST_ParserData_CreateStringFn ( void ** data,
ARC_ParserTagToken * parsedData,
void * userData )

Definition at line 19 of file parser.c.

19 {
20 ARC_String_Create((ARC_String **)data, NULL, 0);
21
23}
void ARC_ParserData_HelperRecurseStringAdd(ARC_String **data, ARC_ParserTagToken *tagToken)
recurses through a tag token adding token strings to a main string
Definition helpers.c:4
void ARC_String_Create(ARC_String **string, char *data, uint64_t length)
creates ARC_String type
Definition string.c:9

References ARC_ParserData_HelperRecurseStringAdd(), and ARC_String_Create().

Referenced by ARC_TEST().

◆ TEST_ParserData_DestroyCharFn()

void TEST_ParserData_DestroyCharFn ( void * data,
ARC_Bool clear,
void * userData )

Definition at line 258 of file parser.c.

258 {
259 if(data == NULL){
260 return;
261 }
262
263 free((char *)data);
264}

Referenced by ARC_TEST().

◆ TEST_ParserData_DestroyStringFn()

void TEST_ParserData_DestroyStringFn ( void * data,
ARC_Bool clear,
void * userData )

Definition at line 25 of file parser.c.

25 {
26 if(data == NULL){
27 return;
28 }
29
31}

References ARC_String_Destroy().

Referenced by ARC_TEST().

Variable Documentation

◆ charOrNumTokens

uint32_t* charOrNumTokens[] = { (uint32_t[]){ 1, ARC_LEXER_TOKEN_ALPHA_LOWER_CHAR }, (uint32_t[]){ 1, ARC_LEXER_TOKEN_NUMBER } }

Definition at line 33 of file parser.c.

33{ (uint32_t[]){ 1, ARC_LEXER_TOKEN_ALPHA_LOWER_CHAR }, (uint32_t[]){ 1, ARC_LEXER_TOKEN_NUMBER } };
#define ARC_LEXER_TOKEN_ALPHA_LOWER_CHAR
Definition lexer.h:250
#define ARC_LEXER_TOKEN_NUMBER
Definition lexer.h:249

◆ languageArray

ARC_Array languageArray
Initial value:
= {
3,
}

Definition at line 57 of file parser.c.

57 {
58 3, //size
59 testTags //data
60};

Referenced by ARC_Parser_CreateFromVector(), ARC_TEST(), ARC_TEST(), ARC_TEST(), and ARC_TEST().

◆ TEST_PARSER_ALPHA_CHAR

const uint32_t TEST_PARSER_ALPHA_CHAR = 3

Definition at line 17 of file parser.c.

Referenced by TEST_Parser_GetStringIdFn().

◆ TEST_PARSER_ALPHA_LOWER_CHAR

const uint32_t TEST_PARSER_ALPHA_LOWER_CHAR = 1

Definition at line 15 of file parser.c.

Referenced by TEST_Parser_GetStringIdFn(), and TEST_Parser_InitBasicLexerTokenRules().

◆ TEST_PARSER_ALPHA_UPPER_CHAR

const uint32_t TEST_PARSER_ALPHA_UPPER_CHAR = 2

Definition at line 16 of file parser.c.

Referenced by TEST_Parser_GetStringIdFn(), and TEST_Parser_InitBasicLexerTokenRules().

◆ TEST_PARSER_CHAR_OR_NUM

const uint32_t TEST_PARSER_CHAR_OR_NUM = 23

Definition at line 11 of file parser.c.

◆ TEST_PARSER_VARIABLE

const uint32_t TEST_PARSER_VARIABLE = 25

Definition at line 13 of file parser.c.

◆ TEST_PARSER_VARIABLE_NAME

const uint32_t TEST_PARSER_VARIABLE_NAME = 24

Definition at line 12 of file parser.c.

◆ testTags

ARC_ParserTag testTags[3]
Initial value:
= {
{
1
},
{
2
},
{
2
}
}
const uint32_t TEST_PARSER_VARIABLE_NAME
Definition parser.c:12
uint32_t * variableTokensOrTags[]
Definition parser.c:35
const uint32_t TEST_PARSER_VARIABLE
Definition parser.c:13
uint32_t * variableNameTags[]
Definition parser.c:34
uint32_t * charOrNumTokens[]
Definition parser.c:33
const uint32_t TEST_PARSER_CHAR_OR_NUM
Definition parser.c:11

Definition at line 39 of file parser.c.

39 {
40 {
42 variableTokensOrTags, //tokensOrTags
43 1 //tokenOrTagsSize
44 },
45 {
47 variableNameTags, //tokensOrTags
48 2 //tokenOrTagsSize
49 },
50 {
52 charOrNumTokens, //tokensOrTags
53 2 //tokenOrTagsSize
54 }
55};

Referenced by ARC_TEST().

◆ variableNameTags

uint32_t* variableNameTags[] = { (uint32_t[]){ 2, TEST_PARSER_CHAR_OR_NUM, TEST_PARSER_VARIABLE_NAME }, (uint32_t[]){ 1, ARC_PARSER_TAG_LAMBDA } }

Definition at line 34 of file parser.c.

34{ (uint32_t[]){ 2, TEST_PARSER_CHAR_OR_NUM, TEST_PARSER_VARIABLE_NAME }, (uint32_t[]){ 1, ARC_PARSER_TAG_LAMBDA } };

◆ variableTokensOrTags

uint32_t* variableTokensOrTags[] = { (uint32_t[]){ 2, ARC_LEXER_TOKEN_ALPHA_LOWER_CHAR, TEST_PARSER_VARIABLE_NAME } }

Definition at line 35 of file parser.c.