public override void Emit(ICodeGateEvaluator writer) { if (Label.IsEvaluated) { writer.Append(Label.Name); } else { if (TraceFlags.EmitComments) { writer.Append("/* " + Label + " */ "); } OriginalGate.Emit(writer); } }
public override void Emit(ICodeGateEvaluator writer) { if (IsInverted) { writer.Append("!"); } writer.EmitVariable(Variable); }
/// <summary> /// Emits the gate into a code writer. /// </summary> /// <param name="writer"></param> public virtual void Emit(ICodeGateEvaluator writer) { if (Type.IsFixed()) { writer.Append(this.ToString()); return; } Debug.Assert(Type.IsLogical()); var first = true; foreach (var i in this.GetInputs()) { if (first) { first = false; } else { writer.EmitBinaryOperator(Type); } var brackets = i.Type.IsLogical() && Type != i.Type; if (brackets) { writer.Append("("); } i.Emit(writer); if (brackets) { writer.Append(")"); } } }
/// <summary> /// Emits the gate into a code writer. /// </summary> /// <param name="writer"></param> public virtual void Emit(ICodeGateEvaluator writer) { if(Type.IsFixed()) { writer.Append(this.ToString()); return; } Debug.Assert(Type.IsLogical()); var first = true; foreach(var i in this.GetInputs()) { if(first) { first = false; } else { writer.EmitBinaryOperator(Type); } var brackets = i.Type.IsLogical() && Type != i.Type; if(brackets) { writer.Append("("); } i.Emit(writer); if (brackets) { writer.Append(")"); } } }
public override void Emit(ICodeGateEvaluator writer) { if(IsInverted) { writer.Append("!"); } writer.EmitVariable(Variable); }