public override object VisitConstLambda([NotNull] ChessVCParser.ConstLambdaContext context)
        {
            lambdavar    = (string)Visit(context.identifier());
            lambdaParam1 = Expression.Parameter(typeof(Location), lambdavar);
            object     o    = Visit(context.lambdaexpr());
            Expression exp  = (Expression)o;
            var        l    = Expression.Lambda <Func <Location, bool> >(exp, new[] { lambdaParam1 });
            var        func = l.Compile();

            return((ConditionalLocationDelegate)(location => func(location)));
        }
Esempio n. 2
0
 /// <summary>
 /// Visit a parse tree produced by the <c>ConstLambda</c>
 /// labeled alternative in <see cref="ChessVCParser.literal"/>.
 /// <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 VisitConstLambda([NotNull] ChessVCParser.ConstLambdaContext context)
 {
     return(VisitChildren(context));
 }
Esempio n. 3
0
 /// <summary>
 /// Exit a parse tree produced by the <c>ConstLambda</c>
 /// labeled alternative in <see cref="ChessVCParser.literal"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitConstLambda([NotNull] ChessVCParser.ConstLambdaContext context)
 {
 }