public override DataApiNode VisitAliasExp(EqlGrammerParser.AliasExpContext context)
            {
                var        name  = context.alias.name.GetText();
                var        query = context.entity.GetText();
                Expression result;

                if (_selectContext == null)
                {
                    // top level are queries on the context
                    var exp  = EqlCompiler.Compile(query, _schemaProvider, _methodProvider).Expression;
                    var node = new DataApiNode(name, exp.Body, exp.Parameters.First(), null);
                    return(node);
                }
                else
                {
                    result = EqlCompiler.CompileWith(query, _selectContext, _schemaProvider, _methodProvider).Expression.Body;
                    var node = new DataApiNode(name, result, null, null);
                    return(node);
                }
            }
Exemple #2
0
 /// <summary>
 /// Visit a parse tree produced by <see cref="EqlGrammerParser.aliasExp"/>.
 /// <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 VisitAliasExp([NotNull] EqlGrammerParser.AliasExpContext context)
 {
     return(VisitChildren(context));
 }