public IParserType HandleCharacter(char character) { if (character == ']') { return((IParserType)GetParent()); } else if (character == '#') { _isCommented = true; } else if (character == '\n') { _isCommented = false; } else if (character != ' ' && !_isCommented) { var val = new ParserValue(); val.SetParent("", this); val.HandleCharacter(character); return(val); } return(this); }
public IParserType HandleCharacter(char character) { switch (character) { case '}': return((IParserType)GetParent()); case '{': var obj = new ParserObject(); obj.SetParent(_key, this); _key = ""; return(obj); case '[': var arr = new ParserArray(); arr.SetParent(_key, this); _key = ""; return(arr); case '=': _key = _value; _value = ""; break; case ' ': if (_isQuoted) { _value += character; } break; case '"': _isQuoted = !_isQuoted; break; case '#': _isCommented = true; break; case '\n': _isCommented = false; break; default: if (!_isCommented) { if (_key != "") { var val = new ParserValue(); val.SetParent(_key, this); _key = ""; return(val.HandleCharacter(character)); } else { _value += character; } } break; } return(this); }