Exemple #1
0
        private Expression IfElseStatementRule()
        {
            Expect(TokenType.If);
            var cond = ExpressionRule();

            Expect(TokenType.Colon);

            var scope = scopeManager.PushBlock();
            var body  = StatementSuiteRule().ToList();

            var comp   = Expression.Dynamic(runtime.GetUnaryCallSite(ExpressionType.IsTrue), typeof(Any), cond);
            var ifElse = Expression.IfThen(Expression.Equal(comp, Expression.Constant(Bool.True)), scope.Pack(body));

            scopeManager.Pop();

            return(ifElse);
        }