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" #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; return NULL;
} }
_state = INIT; _state = LINE_BREAK;
while(file.available()) while(file.available())
{ {
readChar = (char)file.read(); readChar = (char)file.read();
@ -30,24 +30,6 @@ void *CFGFileParser::parseFile()
//Do work //Do work
switch(_state) 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: case COMMENT_SECTION:
if(readChar == '\r' || readChar == '\n') _state = LINE_BREAK; if(readChar == '\r' || readChar == '\n') _state = LINE_BREAK;
break; break;
@ -55,7 +37,7 @@ void *CFGFileParser::parseFile()
if(readChar == '#') if(readChar == '#')
_state = COMMENT_SECTION; _state = COMMENT_SECTION;
else if(readChar == '\r' || readChar == '\n') _state = LINE_BREAK; 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; _state = PARAM_SECTION;
//printf("%c",readChar); //printf("%c",readChar);
@ -89,7 +71,7 @@ void *CFGFileParser::parseFile()
} }
} }
else if(readChar == ' ') _state = PARAM_SECTION; 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) if(_type == PARAMETER)
{ {
@ -117,7 +99,7 @@ void *CFGFileParser::parseFile()
else else
_quotedValue = true; _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); //printf("%c",readChar);
if(_type == PARAMETER) if(_type == PARAMETER)
@ -140,7 +122,7 @@ void *CFGFileParser::parseFile()
_type = VALUE; _type = VALUE;
if(readChar == '\'')_state = OPENING_QUOTE; if(readChar == '\'')_state = OPENING_QUOTE;
else if(readChar == ' ') _state = PARAM_SECTION; 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; _state = PARAM_SECTION;