Removed useless INIT state that was the same as the LINE_BREAK state and added the - character as allowed for parameters and values

This commit is contained in:
anschrammh 2020-12-08 21:54:11 +01:00
parent 5225520669
commit 5fd0675044

View File

@ -1,6 +1,6 @@
#include "CFGFileParser.h"
CFGFileParser::CFGFileParser(SDCardManager &sdCardManager, const char *file):AbstractParser(file), _state(INIT), _type(PARAMETER), _quotedParameter(false), _quotedValue(false), _sdCardManager(sdCardManager)
CFGFileParser::CFGFileParser(SDCardManager &sdCardManager, const char *file):AbstractParser(file), _state(LINE_BREAK), _type(PARAMETER), _quotedParameter(false), _quotedValue(false), _sdCardManager(sdCardManager)
{
}
@ -22,7 +22,7 @@ void *CFGFileParser::parseFile()
return NULL;
}
_state = INIT;
_state = LINE_BREAK;
while(file.available())
{
readChar = (char)file.read();
@ -30,24 +30,6 @@ void *CFGFileParser::parseFile()
//Do work
switch(_state)
{
case INIT:
if(readChar == '#') _state = COMMENT_SECTION;
else if((readChar >= 65 && readChar <= 90) || (readChar >= 97 && readChar <= 122) || (readChar >= 48 && readChar <= 57))
{
_state = PARAM_SECTION;
parsedParameter = addChar(parsedParameter, readChar);
if(parsedParameter == NULL)
_state = ERROR;
//printf("%c",readChar);
}
else if(readChar == '\'')
{
_state = OPENING_QUOTE;
_type = PARAMETER;
}
else
_state = ERROR;
break;
case COMMENT_SECTION:
if(readChar == '\r' || readChar == '\n') _state = LINE_BREAK;
break;
@ -55,7 +37,7 @@ void *CFGFileParser::parseFile()
if(readChar == '#')
_state = COMMENT_SECTION;
else if(readChar == '\r' || readChar == '\n') _state = LINE_BREAK;
else if((readChar >= 65 && readChar <= 90) || (readChar >= 97 && readChar <= 122) || (readChar >= 48 && readChar <= 57))
else if((readChar >= 65 && readChar <= 90) || (readChar >= 97 && readChar <= 122) || (readChar >= 48 && readChar <= 57) || readChar == '-' || readChar == '_')
{
_state = PARAM_SECTION;
//printf("%c",readChar);
@ -89,7 +71,7 @@ void *CFGFileParser::parseFile()
}
}
else if(readChar == ' ') _state = PARAM_SECTION;
else if((readChar >= 65 && readChar <= 90) || (readChar >= 97 && readChar <= 122) || readChar == '_' || (readChar >= 48 && readChar <= 57))
else if((readChar >= 65 && readChar <= 90) || (readChar >= 97 && readChar <= 122) || readChar == '_' || readChar == '-' || (readChar >= 48 && readChar <= 57))
{
if(_type == PARAMETER)
{
@ -117,7 +99,7 @@ void *CFGFileParser::parseFile()
else
_quotedValue = true;
}
else if((readChar >= 65 && readChar <= 90) || (readChar >= 97 && readChar <= 122) || readChar == ' ' || readChar == '_' || (readChar >= 48 && readChar <= 57))
else if((readChar >= 65 && readChar <= 90) || (readChar >= 97 && readChar <= 122) || readChar == ' ' || readChar == '_' || readChar == '-' || (readChar >= 48 && readChar <= 57))
{
//printf("%c",readChar);
if(_type == PARAMETER)
@ -140,7 +122,7 @@ void *CFGFileParser::parseFile()
_type = VALUE;
if(readChar == '\'')_state = OPENING_QUOTE;
else if(readChar == ' ') _state = PARAM_SECTION;
else if((readChar >= 65 && readChar <= 90) || (readChar >= 97 && readChar <= 122) || (readChar >= 48 && readChar <= 57))
else if((readChar >= 65 && readChar <= 90) || (readChar >= 97 && readChar <= 122) || (readChar >= 48 && readChar <= 57) || readChar == '-' || readChar == '_')
{
_state = PARAM_SECTION;