Beispiel #1
0
        private void BuildIndexMapHelper(string exp, List <string> indexMap, LanguageAST.JsonIdentifierExpression.IndexNestedNameExpression nameExpression, string objectName, JArray arr)
        {
            var indexToInt = AssignEvaluation.indexToInt(LanguageAST.Index.Star, arr).ToList();

            foreach (var i in indexToInt)
            {
                if (!string.IsNullOrEmpty(exp))
                {
                    var indexed    = objectName + @"(" + i + @")";
                    var updatedExp = exp.Replace(objectName + @"(*)", indexed);
                    indexMap.Add(updatedExp);
                    BuildIndexMap(nameExpression.Item.Next, updatedExp, indexMap, arr[i - 1] as JContainer);
                }
            }
        }
Beispiel #2
0
        private void BuildFromIndexNestedNameExpression(string exp, JContainer container, LanguageAST.JsonIdentifierExpression.IndexNestedNameExpression nameExpression)
        {
            var        objectName = nameExpression.Item.ObjectName;
            JArray     arr        = null;
            JContainer obj;

            obj = TryGetObjectOrArray(container, objectName, ref arr);

            if (arr != null)
            {
                BuildIndexFromJArray(exp, nameExpression, objectName, arr);
            }
            else
            {
                if (!nameExpression.Item.Next.IsTerminal)
                {
                    Build(nameExpression.Item.Next, exp, obj);
                }
            }
        }