public override SqlObject VisitObjectCreateScalarExpression(AntlrSqlParser.ObjectCreateScalarExpressionContext context) { Contract.Requires(context != null); // '{' object_propertty_list? '}' List <SqlObjectProperty> properties = new List <SqlObjectProperty>(); if (context.object_propertty_list() != null) { AntlrSqlParser.Object_propertyContext[] propertyContexts = context.object_propertty_list().object_property(); foreach (AntlrSqlParser.Object_propertyContext objectPropertyContext in propertyContexts) { string name = CstToAstVisitor.GetStringValueFromNode(objectPropertyContext.STRING_LITERAL()); SqlScalarExpression value = (SqlScalarExpression)this.Visit(objectPropertyContext.scalar_expression()); SqlObjectProperty property = SqlObjectProperty.Create( SqlPropertyName.Create(name), value); properties.Add(property); } } return(SqlObjectCreateScalarExpression.Create(properties)); }
/// <summary> /// Visit a parse tree produced by the <c>ObjectCreateScalarExpression</c> /// labeled alternative in <see cref="AntlrSqlParser.scalar_expression"/>. /// <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 VisitObjectCreateScalarExpression([NotNull] AntlrSqlParser.ObjectCreateScalarExpressionContext context) { return(VisitChildren(context)); }