private void GenerateChecks(IPredicate predicate, Context ctx, Assembly asm) { var relation = predicate as Relation; if (relation != null) { GenerateChecks(relation.Left, ctx, asm); GenerateChecks(relation.Right, ctx, asm); } else { LastPredicate = predicate; predicate.Generate(asm, ctx); var labelToJump = predicate.JumpToElse ? Else.BeginLabel : Code.BeginLabel; asm.Add($"{predicate.Jump} {labelToJump}"); } }