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); } } }
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); } } }