JsonValue GetModifiers(IEnumerable<CSharpModifierToken> modifierTokens) { List<CSharpModifierToken> modifierList = new List<CSharpModifierToken>(); foreach (CSharpModifierToken modifier in modifierTokens) { modifierList.Add(modifier); } int count = modifierList.Count; int lastIndex = count - 1; if (count > 1) { JsonArray modifierArr = new JsonArray(); modifierArr.Comment = "GetModifiers"; for (int i = 0; i < count; i++) { modifierList[i].AcceptVisitor(this); modifierArr.AddJsonValue(Pop()); } return modifierArr; } else if (count == 1) { modifierList[0].AcceptVisitor(this); return Pop(); } else//count = 0; { JsonElement nullElement = new JsonElement(); nullElement.SetValue(null); return nullElement; } }
JsonElement ReadJsonElement() { JsonElement element = new JsonElement(); switch (CurrentChar) { case '"': //read string element.SetValue(GetString()); break; case 'n': //try read null if (GetStringUtilSpaceOrComma() == "null") { element = new JsonElement(null); break; } element.SetValueType(JsonValueType.Error); break; case 't': //try read true if (GetStringUtilSpaceOrComma() == "true") { element = new JsonElement(true); break; } element.SetValueType(JsonValueType.Error); break; case 'f': //try read false if (GetStringUtilSpaceOrComma() == "false") { element = new JsonElement(false); break; } element.SetValueType(JsonValueType.Error); break; default: //try read number or error element = TryCatchNumber(GetStringUtilSpaceOrComma()); break; } if (element.ValueType == JsonValueType.Error) { throw new Exception("Something wrong"); } return element; }
public void VisitCSharpTokenNode(CSharpTokenNode cSharpTokenNode) { tokennodeCounter++; if (tokennodeCounter == 26) { } CSharpModifierToken mod = cSharpTokenNode as CSharpModifierToken; if (mod != null) { JsonElement element = new JsonElement(); element.SetValue(CSharpModifierToken.GetModifierName(mod.Modifier)); Push(element); } else { throw new NotSupportedException("Should never visit individual tokens"); } }