Beispiel #1
0
        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());
            }
        }
Beispiel #2
0
        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))));
        }
Beispiel #3
0
 /// <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)
 {
 }
Beispiel #4
0
 /// <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));
 }
Beispiel #5
0
 public override ParserNode VisitArray(JSONParser.ArrayContext context) => GetNode(context, ARRAY, context.item());