public static SCode Make(PrimitiveIsNegative predicate, SCode consequent, SCode alternative)
 {
     return
         (predicate is PrimitiveIsNegativeL) ? PCondIsNegativeL.Make ((PrimitiveIsNegativeL) predicate, consequent, alternative) :
         (consequent is LexicalVariable) ? PCondIsNegativeSL.Make (predicate, (LexicalVariable) consequent, alternative) :
         (consequent is Quotation) ? PCondIsNegativeSQ.Make (predicate, (Quotation) consequent, alternative) :
         (alternative is LexicalVariable) ? PCondIsNegativeSSL.Make (predicate, consequent, (LexicalVariable) alternative) :
         (alternative is Quotation) ? PCondIsNegativeSSQ.Make (predicate, consequent, (Quotation) alternative) :
         new PCondIsNegative (predicate, consequent, alternative);
 }
 public static SCode Make(PrimitiveIsNegative predicate, SCode consequent, Quotation alternative)
 {
     return new PCondIsNegativeSSQ (predicate, consequent, alternative);
 }
 public static SCode Make(PrimitiveIsNegative predicate, SCode consequent, LexicalVariable alternative)
 {
     return new PCondIsNegativeSSL (predicate, consequent, alternative);
 }
 protected PCondIsNegativeSSQ(PrimitiveIsNegative predicate, SCode consequent, Quotation alternative)
     : base(predicate, consequent, alternative)
 {
     this.alternativeValue = alternative.Quoted;
 }
        public static SCode Make(PrimitiveIsNegative predicate, Quotation consequent, Quotation alternative)
        {
            //if (consequent.Quoted == alternative.Quoted) {
            //    Debug.WriteLine ("; Optimize (if <expr> <literal> <literal>) => (begin <expr> <literal>)");
            //    return Sequence2.Make (predicate, consequent);
            //}
            //else if (Configuration.EnableTrueUnspecific && consequent.Quoted == Constant.Unspecific) {
            //    Debug.WriteLine ("; Optimize (if <expr> <unspecific> <literal>) => (begin <expr> <literal>)");
            //    return Sequence2.Make (predicate, alternative);
            //}
            //else if (Configuration.EnableTrueUnspecific && alternative.Quoted == Constant.Unspecific) {
            //    Debug.WriteLine ("; Optimize (if <expr> <literal> <unspecific>) => (begin <expr> <literal>)");
            //    return Sequence2.Make (predicate, consequent);
            //}

            return new PCondIsNegativeSQQ (predicate, consequent, alternative);
        }
 protected PCondIsNegativeSSL(PrimitiveIsNegative predicate, SCode consequent, LexicalVariable alternative)
     : base(predicate, consequent, alternative)
 {
     this.alternativeName = alternative.Name;
     this.alternativeDepth = alternative.Depth;
     this.alternativeOffset = alternative.Offset;
 }
 protected PCondIsNegativeSQL(PrimitiveIsNegative predicate, Quotation consequent, LexicalVariable alternative)
     : base(predicate, consequent, alternative)
 {
 }
 public static SCode Make(PrimitiveIsNegative predicate, Quotation consequent, LexicalVariable alternative)
 {
     throw new NotImplementedException ();
 }
 public static SCode Make(PrimitiveIsNegative predicate, Quotation consequent, SCode alternative)
 {
     return
         (alternative is LexicalVariable) ? PCondIsNegativeSQL.Make (predicate, consequent, (LexicalVariable) alternative) :
         (alternative is Quotation) ? PCondIsNegativeSQQ.Make (predicate, consequent, (Quotation) alternative) :
         new PCondIsNegativeSQ (predicate, consequent, alternative);
 }
 protected PCondIsNegativeSQ(PrimitiveIsNegative predicate, Quotation consequent, SCode alternative)
     : base(predicate, consequent, alternative)
 {
     this.consequentValue = consequent.Quoted;
 }
 protected PCondIsNegativeSLQ(PrimitiveIsNegative predicate, LexicalVariable consequent, Quotation alternative)
     : base(predicate, consequent, alternative)
 {
     this.alternativeValue = alternative.Quoted;
 }
 protected PCondIsNegativeSL(PrimitiveIsNegative predicate, LexicalVariable consequent, SCode alternative)
     : base(predicate, consequent, alternative)
 {
     this.consequentName = consequent.Name;
     this.consequentDepth = consequent.Depth;
     this.consequentOffset = consequent.Offset;
 }
 protected PCondIsNegative(PrimitiveIsNegative predicate, SCode consequent, SCode alternative)
     : base(predicate, consequent, alternative)
 {
 }