Ejemplo n.º 1
0
 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;
     }
 }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
        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");
            }
        }