comments added to config
This commit is contained in:
parent
0918b6f225
commit
44f0acecf7
2 changed files with 81 additions and 46 deletions
|
|
@ -186,27 +186,34 @@ void ARC_Config_UnloadFromFile(ARC_Config *config, ARC_String *data);
|
||||||
#define ARC_CONFIG_CLOSE_CURLY_BRACE 0x25
|
#define ARC_CONFIG_CLOSE_CURLY_BRACE 0x25
|
||||||
#define ARC_CONFIG_TILDE 0x26
|
#define ARC_CONFIG_TILDE 0x26
|
||||||
|
|
||||||
#define ARC_CONFIG_LANGUAGE 0x27
|
#define ARC_CONFIG_LANGUAGE 0x27
|
||||||
#define ARC_CONFIG_GROUP 0x28
|
#define ARC_CONFIG_GROUP 0x28
|
||||||
#define ARC_CONFIG_GROUP_NAME 0x29
|
#define ARC_CONFIG_GROUP_NAME 0x29
|
||||||
#define ARC_CONFIG_GROUP_ARGS 0x2A
|
#define ARC_CONFIG_GROUP_ARGS 0x2A
|
||||||
#define ARC_CONFIG_VARIABLE_LINES 0x2B
|
#define ARC_CONFIG_VARIABLE_LINES 0x2B
|
||||||
#define ARC_CONFIG_VARIABLE_LINE 0x2C
|
#define ARC_CONFIG_VARIABLE_LINE 0x2C
|
||||||
#define ARC_CONFIG_ALLOW_SPACE 0x2D
|
#define ARC_CONFIG_ALLOW_SPACE 0x2D
|
||||||
#define ARC_CONFIG_TYPE 0x2E
|
#define ARC_CONFIG_TYPE 0x2E
|
||||||
#define ARC_CONFIG_VALUE 0x2F
|
#define ARC_CONFIG_VALUE 0x2F
|
||||||
#define ARC_CONFIG_NESTED_VALUE 0x30
|
#define ARC_CONFIG_NESTED_VALUE 0x30
|
||||||
#define ARC_CONFIG_VALUE_ARGS 0x31
|
#define ARC_CONFIG_VALUE_ARGS 0x31
|
||||||
#define ARC_CONFIG_VARIABLE 0x32
|
#define ARC_CONFIG_ARRAY 0x32
|
||||||
#define ARC_CONFIG_VARIABLE_NAME 0x33
|
#define ARC_CONFIG_VARIABLE 0x33
|
||||||
#define ARC_CONFIG_VARIABLE_CHAR 0x34
|
#define ARC_CONFIG_VARIABLE_NAME 0x34
|
||||||
#define ARC_CONFIG_STRING 0x35
|
#define ARC_CONFIG_VARIABLE_CHAR 0x35
|
||||||
#define ARC_CONFIG_STRING_CHARS 0x36
|
#define ARC_CONFIG_STRING 0x36
|
||||||
#define ARC_CONFIG_STRING_CHAR 0x37
|
#define ARC_CONFIG_STRING_CHARS 0x37
|
||||||
#define ARC_CONFIG_ESCAPE_CHAR 0x38
|
#define ARC_CONFIG_STRING_CHAR 0x38
|
||||||
#define ARC_CONFIG_NUMBER_SIGN 0x39
|
#define ARC_CONFIG_ESCAPE_CHAR 0x39
|
||||||
#define ARC_CONFIG_NUMBER_TAG 0x3A
|
#define ARC_CONFIG_NUMBER_SIGN 0x3A
|
||||||
#define ARC_CONFIG_WHITESPACE 0x3B
|
#define ARC_CONFIG_NUMBER_TAG 0x3B
|
||||||
|
#define ARC_CONFIG_WHITESPACE 0x3C
|
||||||
|
#define ARC_CONFIG_COMMENT 0x3D
|
||||||
|
#define ARC_CONFIG_LINE_COMMENT 0x3E
|
||||||
|
#define ARC_CONFIG_MULTI_LINE_COMMENT 0x3F
|
||||||
|
#define ARC_CONFIG_LINE_CHARS 0x40
|
||||||
|
#define ARC_CONFIG_MULTI_LINE_CHARS 0x41
|
||||||
|
#define ARC_CONFIG_COMMENT_CHAR 0x42
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief TODO: write this
|
* @brief TODO: write this
|
||||||
|
|
|
||||||
|
|
@ -229,6 +229,9 @@ uint32_t ARC_Config_GetStringIdFn(ARC_String *string){
|
||||||
if(ARC_String_EqualsCStringWithStrlen(string, "<valueArgs>")){
|
if(ARC_String_EqualsCStringWithStrlen(string, "<valueArgs>")){
|
||||||
return ARC_CONFIG_VALUE_ARGS;
|
return ARC_CONFIG_VALUE_ARGS;
|
||||||
}
|
}
|
||||||
|
if(ARC_String_EqualsCStringWithStrlen(string, "<array>")){
|
||||||
|
return ARC_CONFIG_ARRAY;
|
||||||
|
}
|
||||||
if(ARC_String_EqualsCStringWithStrlen(string, "<variable>")){
|
if(ARC_String_EqualsCStringWithStrlen(string, "<variable>")){
|
||||||
return ARC_CONFIG_VARIABLE;
|
return ARC_CONFIG_VARIABLE;
|
||||||
}
|
}
|
||||||
|
|
@ -259,7 +262,24 @@ uint32_t ARC_Config_GetStringIdFn(ARC_String *string){
|
||||||
if(ARC_String_EqualsCStringWithStrlen(string, "<whitespace>")){
|
if(ARC_String_EqualsCStringWithStrlen(string, "<whitespace>")){
|
||||||
return ARC_CONFIG_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;
|
return ~(uint32_t)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -289,7 +309,7 @@ void ARC_Config_GroupDataHashtableDestroyKeyValueFn(void *key, void *value){
|
||||||
free(typeData);
|
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){
|
void ARC_ConfigData_RunVariableLineTag(ARC_ParserTagToken *tagToken, ARC_Config *config){
|
||||||
//skip whitespace and check for group name
|
//skip whitespace and check for group name
|
||||||
ARC_ParserTagToken *childTagToken = (ARC_ParserTagToken *)ARC_Vector_Get(tagToken->tagTokens, 1);
|
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);
|
ARC_String_Destroy(variableString);
|
||||||
|
|
||||||
//get <value>
|
//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
|
//check if <value> is a reference
|
||||||
ARC_String *valueString;
|
ARC_String *valueString;
|
||||||
|
|
@ -526,7 +546,7 @@ void ARC_ConfigData_RunLanguageTag(ARC_ParserTagToken *tagToken, ARC_Config *con
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
//this is for whitespace and any oddities
|
//this is for whitespace, comments, and any oddities
|
||||||
default:
|
default:
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -553,34 +573,42 @@ void ARC_Config_Create(ARC_Config **config){
|
||||||
|
|
||||||
/* ~ define the language as a string ~ */
|
/* ~ define the language as a string ~ */
|
||||||
char *languageCString =
|
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"
|
"<group> -> <whitespace> <groupName> <whitespace> <variable> <whitespace> OPEN_CURLY_BRACE <groupArgs> <whitespace> CLOSE_CURLY_BRACE\n"
|
||||||
"<groupName> -> <variable>\n"
|
"<groupName> -> <variable>\n"
|
||||||
"<groupArgs> -> <whitespace> <variableLines> | LAMBDA\n"
|
"<groupArgs> -> <whitespace> <variableLines> | LAMBDA\n"
|
||||||
|
|
||||||
"<variableLines> -> <variableLine> <whitespace> <variableLines> | <variableLine>\n"
|
"<variableLines> -> <comment> <variableLines> | <variableLine> <whitespace> <variableLines> | <variableLine>\n"
|
||||||
"<variableLine> -> <whitespace> <type> <whitespace> <variable> <whitespace> EQUAL <whitespace> <value> <whitespace> SEMICOLON\n"
|
"<variableLine> -> <whitespace> <type> <whitespace> <variable> <whitespace> <array> <whitespace> EQUAL <whitespace> <value> <whitespace> SEMICOLON\n"
|
||||||
"<allowSpace> -> SPACE <allowSpace> | TAB <allowSpace> | LAMBDA\n"
|
"<allowSpace> -> SPACE <allowSpace> | TAB <allowSpace> | LAMBDA\n"
|
||||||
|
|
||||||
"<type> -> <variable>\n"
|
"<type> -> <variable> | <variable> <whitespace> <array>\n"
|
||||||
"<value> -> <variable> | <numberSign> | <string> | <nestedValue>\n"
|
"<value> -> <variable> | <numberSign> | <string> | <nestedValue>\n"
|
||||||
"<nestedValue> -> OPEN_CURLY_BRACE <whitespace> <valueArgs> <whitespace> CLOSE_CURLY_BRACE\n"
|
"<nestedValue> -> OPEN_CURLY_BRACE <whitespace> <valueArgs> <whitespace> CLOSE_CURLY_BRACE\n"
|
||||||
"<valueArgs> -> <value> <whitespace> COMMA <whitespace> <valueArgs> | <value>\n"
|
"<valueArgs> -> <value> <whitespace> COMMA <whitespace> <valueArgs> | <value>\n"
|
||||||
|
|
||||||
"<variable> -> ALPHA_UPPER_CHAR <variableName> | ALPHA_LOWER_CHAR <variableName> | UNDERSCORE <variableName>\n"
|
"<array> -> OPEN_BRACKET <whitespace> CLOSE_BRACKET | LAMBDA\n"
|
||||||
"<variableName> -> <variableChar> <variableName> | LAMBDA\n"
|
"<variable> -> ALPHA_UPPER_CHAR <variableName> | ALPHA_LOWER_CHAR <variableName> | UNDERSCORE <variableName>\n"
|
||||||
"<variableChar> -> ALPHA_UPPER_CHAR | ALPHA_LOWER_CHAR | UNDERSCORE | NUMBER\n"
|
"<variableName> -> <variableChar> <variableName> | LAMBDA\n"
|
||||||
|
"<variableChar> -> ALPHA_UPPER_CHAR | ALPHA_LOWER_CHAR | UNDERSCORE | NUMBER\n"
|
||||||
|
|
||||||
"<string> -> QUOTE <stringChars> QUOTE\n"
|
"<string> -> QUOTE <stringChars> QUOTE\n"
|
||||||
"<stringChars> -> <stringChar> <stringChars> | <escapeChar> <stringChars> | LAMBDA\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"
|
"<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"
|
"<escapeChar> -> BACKSLASH BACKSLASH | BACKSLASH QUOTE | BACKSLASH ALPHA_UPPER_CHAR | BACKSLASH ALPHA_LOWER_CHAR\n"
|
||||||
|
|
||||||
"<numberSign> -> MINUS <number> | <number>\n"
|
"<numberSign> -> MINUS <number> | <number>\n"
|
||||||
"<number> -> NUMBER <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 ~ */
|
/* ~ define the language as a string ~ */
|
||||||
ARC_String *languageString;
|
ARC_String *languageString;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue