bool WriteAnnotation(int idx, YNode n) { string s = GetAnnotation(idx, n); if (s != null) { Write(n.Depth, " # {0}", s); return(true); } return(false); }
public new List<YNode> Walk(object key,object o) { var nodes=new List<YNode>(); foreach(Node i in base.Walk(key,o)) { int dupidx=i.Dupidx; var ynode=new YNode(Depth,i.Key,i.O,dupidx, IsMap(i)?YNode.Flag.Dic:YNode.Flag.None); if(dupidx!=-1) nodes[dupidx].Flags|=YNode.Flag.ReferredTo; if(i.Leaf) ynode.Flags|=YNode.Flag.Leaf; nodes.Add(ynode); } return nodes; }
// returns false if not a leaf or strlen(n.O)>maxlen public bool WriteLeaf(YNode n, int maxlen) { var o = n.O; if (o == null) { YAMLWriter.Write(n.Depth, "~"); return(true); } else if (n.IsLeaf) { var s = n.O.ToString(); if (s.Length > maxlen) { return(false); } if (n.O is string || n.O is char) { if (LineBreakp(s)) { var matches = LineBreaker.Matches(s); YAMLWriter.WriteLine(n.Depth, "|2"); var olddepth = YAMLWriter.Depth; YAMLWriter.Depth += " "; foreach (Match i in matches) { YAMLWriter.Lw.Column = 0; YAMLWriter.Write(n.Depth, i.Groups[0].Value); } YAMLWriter.Depth = olddepth; } else { YAMLWriter.Write(n.Depth, Escape(s)); } } else { YAMLWriter.Write(n.Depth, s); } return(true); } return(false); }
public new List <YNode> Walk(object key, object o) { var nodes = new List <YNode>(); foreach (Node i in base.Walk(key, o)) { int dupidx = i.Dupidx; var ynode = new YNode(Depth, i.Key, i.O, dupidx, IsMap(i)?YNode.Flag.Dic:YNode.Flag.None); if (dupidx != -1) { nodes[dupidx].Flags |= YNode.Flag.ReferredTo; } if (i.Leaf) { ynode.Flags |= YNode.Flag.Leaf; } nodes.Add(ynode); } return(nodes); }
// returns false if not a leaf public bool WriteLeaf(YNode n) { return(WriteLeaf(n, int.MaxValue)); }
bool WriteAnnotation(int idx,YNode n) { string s=GetAnnotation(idx,n); if(s!=null) { Write(n.Depth," # {0}",s); return true; } return false; }
string GetAnnotation(int idx,YNode n) { if(Annotate==null) return null; return Annotate(idx,n); }
// returns false if not a leaf or strlen(n.O)>maxlen public bool WriteLeaf(YNode n,int maxlen) { var o=n.O; if(o==null) { YAMLWriter.Write(n.Depth,"~"); return true; } else if(n.IsLeaf) { var s=n.O.ToString(); if(s.Length>maxlen) return false; if(n.O is string || n.O is char) { if(LineBreakp(s)) { var matches=LineBreaker.Matches(s); YAMLWriter.WriteLine(n.Depth,"|2"); var olddepth=YAMLWriter.Depth; YAMLWriter.Depth+=" "; foreach(Match i in matches) { YAMLWriter.Lw.Column=0; YAMLWriter.Write(n.Depth,i.Groups[0].Value); } YAMLWriter.Depth=olddepth; } else { YAMLWriter.Write(n.Depth,Escape(s)); } } else { YAMLWriter.Write(n.Depth,s); } return true; } return false; }
// returns false if not a leaf public bool WriteLeaf(YNode n) { return WriteLeaf(n,int.MaxValue); }