Пример #1
0
        private void CompileTryBlock(IBuildContext ctx)
        {
            var scope = ctx.EnterScope <TryScope>();

            ctx.Compile(_tryExpression);
            ctx.LeaveScope(scope);
        }
Пример #2
0
        internal void Compile(IBuildContext ctx)
        {
            ctx.Generator.BeginCatchBlock(ExceptionType);
            var scope = ctx.EnterScope <CatchScope>();

            ctx.Compile(_preCatchExpression);
            ctx.Compile(_catchExpression);
            ctx.LeaveScope(scope);
        }
Пример #3
0
        private void CompileFinallyBlock(IBuildContext ctx)
        {
            ctx.Generator.BeginFinallyBlock();

            var scope = ctx.EnterScope <FinallyScope>();

            ctx.Compile(_finallyExpression);
            ctx.LeaveScope(scope);
        }
Пример #4
0
        internal override void Compile(IBuildContext ctx, int expressionId)
        {
            var scope = ctx.EnterScope <VoidBlockScope>();

            foreach (var expression in _expressions)
            {
                ctx.Compile(expression);
            }
            ctx.LeaveScope(scope);
        }