private void HandleColon() { _currentKeyValuePair = _keyValueStack.Peek(); _currentItem = _itemStack.Peek(); _syntaxChars.Push(':'); if (!_pendingForPairValue) { JKeyValuePair pair = new JKeyValuePair(JItemFactory.JSingleValue(_JItemContentsBuffer.ToString()), null); (_currentItem as JCollection).Add(pair); _keyValueStack.Push(pair); } else { //throw new InvalidEnumArgumentException(); } _pendingForPairValue = true; _JItemContentsBuffer.Clear(); }
private void HandleCurlyBracket() { _currentKeyValuePair = _keyValueStack.Peek(); _currentItem = _itemStack.Peek(); if (_pendingForPairValue) { JObject item = new JObject(_currentItem); _currentKeyValuePair.Value = item; _JItemContentsBuffer.Clear(); CacheKeyValueAndCurrentItem(item); _pendingForPairValue = false; } else { JObject nItm = new JObject(_currentItem); (_currentItem as JCollection).Add(nItm); nItm.Parent = _currentItem; _itemStack.Push(nItm); } }
private void HandleClosingCurlyBracket() { _currentKeyValuePair = _keyValueStack.Peek(); _currentItem = _itemStack.Peek(); if (_pendingForPairValue) { JItem item = JItemFactory.JSingleValue(_JItemContentsBuffer.ToString(), _currentItem); _currentKeyValuePair.Value = item; _JItemContentsBuffer.Clear(); _keyValueStack.Pop(); _pendingForPairValue = false; } else { if (!string.IsNullOrWhiteSpace(_JItemContentsBuffer.ToString())) { _currentItem.Add(JItemFactory.JSingleValue(_JItemContentsBuffer.ToString(), _currentItem)); _JItemContentsBuffer.Clear(); } } _itemStack.Pop(); }
private void HandleComma() { _currentKeyValuePair = _keyValueStack.Peek(); _currentItem = _itemStack.Peek(); if (_pendingForPairValue) { JItem jI = JItemFactory.JSingleValue(_JItemContentsBuffer.ToString(), _currentItem); _currentKeyValuePair.Value = jI; _keyValueStack.Pop(); _pendingForPairValue = false; } else { if (!string.IsNullOrWhiteSpace(_JItemContentsBuffer.ToString())) { (_currentItem as JCollection).Add(JItemFactory.JSingleValue(_JItemContentsBuffer.ToString(), _currentItem)); _JItemContentsBuffer.Clear(); return; } } _syntaxChars.Push(','); _JItemContentsBuffer.Clear(); }
public JKeyValuePair(JItem parent) : base(parent) { }
private void CacheKeyValueAndCurrentItem(JItem item) { _keyValueStack.Push(_currentKeyValuePair); _itemStack.Push(item); }
public virtual bool Equals(JItem jitem) { return(false); }
public JObject(JItem parent, params JItem[] jItems) : base(parent, jItems) { }
public JItem(JItem parent = null) { Parent = parent; }
public JArray(JItem parent) : base(parent) { }
public JSingleValue(string value, JItem parent = null) : base(parent) { Contents = value; }
public JCollection(JItem parent, params JItem[] jItems) : base(parent) { Items = new List <JItem>(); Add(jItems); }
public JCollection(JItem parent) : base(parent) { Items = new List <JItem>(); }