public DataArray VisitArray(JSONParser.ArrayContext context) { if (context.composite_value() != null && context.composite_value().Length > 0) { DataArray array = new DataArray(); foreach (var p in context.composite_value()) { if (p.value() != null) { array.AddValue(JToken.Parse(p.value().GetText()).ToString()); } else { array.AddValue(VisitComplex_value(p.complex_value())); } } return(array); } else { return(new DataArray()); } }
private static SyntaxNode JArray(JSONParser.ArrayContext array, Func <ParserRuleContext, Scope, SyntaxNode> continuation, Scope scope) { var values = new List <ExpressionSyntax>(); foreach (var value in array.value()) { Debug.Assert(value is JSONParser.ValueContext); var expr = (ExpressionSyntax)JValue(value, continuation, scope); if (expr != null) //empty ok { values.Add(expr); } } return(CSharp .ImplicitArrayCreationExpression(CSharp .InitializerExpression(SyntaxKind.ArrayInitializerExpression, CSharp.SeparatedList( values)))); }
/// <summary> /// Enter a parse tree produced by <see cref="JSONParser.array"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void EnterArray([NotNull] JSONParser.ArrayContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="JSONParser.array"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitArray([NotNull] JSONParser.ArrayContext context) { return(VisitChildren(context)); }
public override ParserNode VisitArray(JSONParser.ArrayContext context) => GetNode(context, ARRAY, context.item());