public void Emit_Or_Shortcut(parse_tree.boolean2 left, parse_tree.boolean_expression right) { System.Reflection.Emit.Label l2 = gen.DefineLabel(); left.emit_code(this, 0); gen.Emit(OpCodes.Dup); gen.Emit(System.Reflection.Emit.OpCodes.Brtrue, l2); right.emit_code(this, 0); Emit_Or(); gen.MarkLabel(l2); }
public void Emit_And_Shortcut(parse_tree.boolean_parseable left, parse_tree.boolean2 right, bool left_negated) { if (left_negated) { Emit_Not(); } left.emit_code(this, 0); stream.Write(" && "); right.emit_code(this, 0); }
public void Emit_And_Shortcut(parse_tree.boolean_parseable left, parse_tree.boolean2 right, bool left_negated) { System.Reflection.Emit.Label l2 = gen.DefineLabel(); left.emit_code(this, 0); if (left_negated) { Emit_Not(); } gen.Emit(OpCodes.Dup); gen.Emit(System.Reflection.Emit.OpCodes.Brfalse, l2); right.emit_code(this, 0); Emit_And(); gen.MarkLabel(l2); }
public void Emit_Or_Shortcut(parse_tree.boolean2 left, parse_tree.boolean_expression right) { left.emit_code(this, 0); stream.Write(" || "); right.emit_code(this, 0); }
public void Emit_Or_Shortcut(parse_tree.boolean2 left, parse_tree.boolean_expression right) { strings.Append("||"); }
public void Emit_And_Shortcut(parse_tree.boolean_parseable left, parse_tree.boolean2 right, bool left_negated) { strings.Append("&&"); }