comments added to config

This commit is contained in:
herbglitch 2025-03-24 00:32:44 -06:00
parent 0918b6f225
commit 44f0acecf7
2 changed files with 81 additions and 46 deletions

View file

@ -229,6 +229,9 @@ uint32_t ARC_Config_GetStringIdFn(ARC_String *string){
if(ARC_String_EqualsCStringWithStrlen(string, "<valueArgs>")){
return ARC_CONFIG_VALUE_ARGS;
}
if(ARC_String_EqualsCStringWithStrlen(string, "<array>")){
return ARC_CONFIG_ARRAY;
}
if(ARC_String_EqualsCStringWithStrlen(string, "<variable>")){
return ARC_CONFIG_VARIABLE;
}
@ -259,7 +262,24 @@ uint32_t ARC_Config_GetStringIdFn(ARC_String *string){
if(ARC_String_EqualsCStringWithStrlen(string, "<whitespace>")){
return ARC_CONFIG_WHITESPACE;
}
if(ARC_String_EqualsCStringWithStrlen(string, "<comment>")){
return ARC_CONFIG_COMMENT;
}
if(ARC_String_EqualsCStringWithStrlen(string, "<lineComment>")){
return ARC_CONFIG_LINE_COMMENT;
}
if(ARC_String_EqualsCStringWithStrlen(string, "<multiLineComment>")){
return ARC_CONFIG_MULTI_LINE_COMMENT;
}
if(ARC_String_EqualsCStringWithStrlen(string, "<lineChars>")){
return ARC_CONFIG_LINE_CHARS;
}
if(ARC_String_EqualsCStringWithStrlen(string, "<multiLineChars>")){
return ARC_CONFIG_MULTI_LINE_CHARS;
}
if(ARC_String_EqualsCStringWithStrlen(string, "<commentChar>")){
return ARC_CONFIG_COMMENT_CHAR;
}
return ~(uint32_t)0;
}
@ -289,7 +309,7 @@ void ARC_Config_GroupDataHashtableDestroyKeyValueFn(void *key, void *value){
free(typeData);
}
//<variableLine> -> <whitespace> <type> <whitespace> <variable> <whitespace> EQUAL <whitespace> <value> <whitespace> SEMICOLON
//<variableLine> -> <whitespace> <type> <whitespace> <variable> <whitespace> <array> <whitespace> EQUAL <whitespace> <value> <whitespace> SEMICOLON
void ARC_ConfigData_RunVariableLineTag(ARC_ParserTagToken *tagToken, ARC_Config *config){
//skip whitespace and check for group name
ARC_ParserTagToken *childTagToken = (ARC_ParserTagToken *)ARC_Vector_Get(tagToken->tagTokens, 1);
@ -342,7 +362,7 @@ void ARC_ConfigData_RunVariableLineTag(ARC_ParserTagToken *tagToken, ARC_Config
ARC_String_Destroy(variableString);
//get <value>
childTagToken = (ARC_ParserTagToken *)ARC_Vector_Get(tagToken->tagTokens, 7);
childTagToken = (ARC_ParserTagToken *)ARC_Vector_Get(tagToken->tagTokens, 9);
//check if <value> is a reference
ARC_String *valueString;
@ -526,7 +546,7 @@ void ARC_ConfigData_RunLanguageTag(ARC_ParserTagToken *tagToken, ARC_Config *con
}
continue;
//this is for whitespace and any oddities
//this is for whitespace, comments, and any oddities
default:
continue;
}
@ -553,34 +573,42 @@ void ARC_Config_Create(ARC_Config **config){
/* ~ define the language as a string ~ */
char *languageCString =
"<language> -> <group> <language> | <variableLines> <language> | <whitespace>\n"
"<language> -> <group> <language> | <variableLines> <language> | <whitespace>\n"
"<group> -> <whitespace> <groupName> <whitespace> <variable> <whitespace> OPEN_CURLY_BRACE <groupArgs> <whitespace> CLOSE_CURLY_BRACE\n"
"<groupName> -> <variable>\n"
"<groupArgs> -> <whitespace> <variableLines> | LAMBDA\n"
"<group> -> <whitespace> <groupName> <whitespace> <variable> <whitespace> OPEN_CURLY_BRACE <groupArgs> <whitespace> CLOSE_CURLY_BRACE\n"
"<groupName> -> <variable>\n"
"<groupArgs> -> <whitespace> <variableLines> | LAMBDA\n"
"<variableLines> -> <variableLine> <whitespace> <variableLines> | <variableLine>\n"
"<variableLine> -> <whitespace> <type> <whitespace> <variable> <whitespace> EQUAL <whitespace> <value> <whitespace> SEMICOLON\n"
"<allowSpace> -> SPACE <allowSpace> | TAB <allowSpace> | LAMBDA\n"
"<variableLines> -> <comment> <variableLines> | <variableLine> <whitespace> <variableLines> | <variableLine>\n"
"<variableLine> -> <whitespace> <type> <whitespace> <variable> <whitespace> <array> <whitespace> EQUAL <whitespace> <value> <whitespace> SEMICOLON\n"
"<allowSpace> -> SPACE <allowSpace> | TAB <allowSpace> | LAMBDA\n"
"<type> -> <variable>\n"
"<value> -> <variable> | <numberSign> | <string> | <nestedValue>\n"
"<nestedValue> -> OPEN_CURLY_BRACE <whitespace> <valueArgs> <whitespace> CLOSE_CURLY_BRACE\n"
"<valueArgs> -> <value> <whitespace> COMMA <whitespace> <valueArgs> | <value>\n"
"<type> -> <variable> | <variable> <whitespace> <array>\n"
"<value> -> <variable> | <numberSign> | <string> | <nestedValue>\n"
"<nestedValue> -> OPEN_CURLY_BRACE <whitespace> <valueArgs> <whitespace> CLOSE_CURLY_BRACE\n"
"<valueArgs> -> <value> <whitespace> COMMA <whitespace> <valueArgs> | <value>\n"
"<variable> -> ALPHA_UPPER_CHAR <variableName> | ALPHA_LOWER_CHAR <variableName> | UNDERSCORE <variableName>\n"
"<variableName> -> <variableChar> <variableName> | LAMBDA\n"
"<variableChar> -> ALPHA_UPPER_CHAR | ALPHA_LOWER_CHAR | UNDERSCORE | NUMBER\n"
"<array> -> OPEN_BRACKET <whitespace> CLOSE_BRACKET | LAMBDA\n"
"<variable> -> ALPHA_UPPER_CHAR <variableName> | ALPHA_LOWER_CHAR <variableName> | UNDERSCORE <variableName>\n"
"<variableName> -> <variableChar> <variableName> | LAMBDA\n"
"<variableChar> -> ALPHA_UPPER_CHAR | ALPHA_LOWER_CHAR | UNDERSCORE | NUMBER\n"
"<string> -> QUOTE <stringChars> QUOTE\n"
"<stringChars> -> <stringChar> <stringChars> | <escapeChar> <stringChars> | LAMBDA\n"
"<stringChar> -> TAB | SPACE | BANG | HASH | DOLLAR | PERCENT | AMPERSAND | SINGLE_QUOTE | OPEN_PAREN | CLOSE_PAREN | ASTERISK | PLUS | COMMA | MINUS | PERIOD | SLASH | NUMBER | COLON | SEMICOLON | LESS_THAN | GREATER_THAN | EQUAL | QUESTION_MARK | AT | ALPHA_UPPER_CHAR | OPEN_BRACKET | CLOSE_BRACKET | CARET | UNDERSCORE | GRAVE | ALPHA_LOWER_CHAR | OPEN_CURLY_BRACE | VERTICAL_LINE | CLOSE_CURLY_BRACE | TILDE\n"
"<escapeChar> -> BACKSLASH BACKSLASH | BACKSLASH QUOTE | BACKSLASH ALPHA_UPPER_CHAR | BACKSLASH ALPHA_LOWER_CHAR\n"
"<string> -> QUOTE <stringChars> QUOTE\n"
"<stringChars> -> <stringChar> <stringChars> | <escapeChar> <stringChars> | LAMBDA\n"
"<stringChar> -> TAB | SPACE | BANG | HASH | DOLLAR | PERCENT | AMPERSAND | SINGLE_QUOTE | OPEN_PAREN | CLOSE_PAREN | ASTERISK | PLUS | COMMA | MINUS | PERIOD | SLASH | NUMBER | COLON | SEMICOLON | LESS_THAN | GREATER_THAN | EQUAL | QUESTION_MARK | AT | ALPHA_UPPER_CHAR | OPEN_BRACKET | CLOSE_BRACKET | CARET | UNDERSCORE | GRAVE | ALPHA_LOWER_CHAR | OPEN_CURLY_BRACE | VERTICAL_LINE | CLOSE_CURLY_BRACE | TILDE\n"
"<escapeChar> -> BACKSLASH BACKSLASH | BACKSLASH QUOTE | BACKSLASH ALPHA_UPPER_CHAR | BACKSLASH ALPHA_LOWER_CHAR\n"
"<numberSign> -> MINUS <number> | <number>\n"
"<number> -> NUMBER <number> | NUMBER\n"
"<numberSign> -> MINUS <number> | <number>\n"
"<number> -> NUMBER <number> | NUMBER\n"
"<whitespace> -> SPACE <whitespace> | TAB <whitespace> | NEWLINE <whitespace> | LAMBDA\n";
"<whitespace> -> SPACE <whitespace> | TAB <whitespace> | NEWLINE <whitespace> | LAMBDA\n"
"<comment> -> <whitespace> <lineComment> | <whitespace> <multiLineComment>\n"
"<lineComment> -> SLASH SLASH <lineChars> NEWLINE\n"
"<multiLineComment> -> SLASH ASTERISK <multiLineChars>\n"
"<lineChars> -> <commentChar> <lineChars> | LAMBDA\n"
"<multiLineChars> -> ASTERISK SLASH | NEWLINE <multiLineChars> | <commentChar> <multiLineChars>\n"
"<commentChar> -> TAB | SPACE | BANG | QUOTE | HASH | DOLLAR | PERCENT | AMPERSAND | SINGLE_QUOTE | OPEN_PAREN | CLOSE_PAREN | ASTERISK | PLUS | COMMA | MINUS | PERIOD | SLASH | NUMBER | COLON | SEMICOLON | LESS_THAN | GREATER_THAN | EQUAL | QUESTION_MARK | AT | ALPHA_UPPER_CHAR | OPEN_BRACKET | BACKSLASH | CLOSE_BRACKET | CARET | UNDERSCORE | GRAVE | ALPHA_LOWER_CHAR | OPEN_CURLY_BRACE | VERTICAL_LINE | CLOSE_CURLY_BRACE | TILDE\n";
/* ~ define the language as a string ~ */
ARC_String *languageString;