예제 #1
0
 public void AppendTo(StringBuilder sb)
 {
     sb.Append("for-in: ");
     sb.Append("object=");
     ObjectExpr.AppendTo(sb);
     sb.AppendLine("{");
     Expr.AppendTo(sb);
     sb.AppendLine("}");
 }
예제 #2
0
        public override void WriteToStream(IndentStream stream)
        {
            stream.Write("TRIGGER ");
            TriggerName.WriteToStream(stream);
            stream.Write(" ON ");
            ObjectExpr.WriteToStream(stream);

            if (WithExecuteAs != null)
            {
                stream.Write(" ");
                WithExecuteAs.WriteToStream(stream);
            }

            if (AfterExpr != null)
            {
                stream.Write(" ");
                AfterExpr.WriteToStream(stream);
            }
        }
예제 #3
0
 private bool ReadValuePair(StringReader p, ObjectExpr obj)
 {
     var saved = p.Position;
     string pairName;
     if (ReadIdent(p, out pairName) || p.AnyQuoted(out pairName))
     {
         if (p.ThisText(":"))
         {
             ExprPiece pairValue;
             ReqVal(p, out pairValue);
             (obj.Pairs ?? (obj.Pairs = new Dictionary<string, ExprPiece>())).Add(pairName, pairValue);
             return true;
         }
         p.Position = saved;
     }
     return false;
 }
예제 #4
0
 private bool ReadObjectValue(StringReader p, out ExprPiece value)
 {
     if (p.ThisText("{"))
     {
         var obj = new ObjectExpr();
         while (ReadValuePair(p, obj))
             if (!p.ThisText(","))
                 break;
         ReqText(p, "}");
         value = obj;
         return true;
     }
     value = null;
     return false;
 }