Esempio n. 1
0
 /// <summary>
 /// Writes a binary loyc tree file that contains the given list of nodes to the given output stream.
 /// </summary>
 /// <param name="OutputStream"></param>
 /// <param name="Nodes"></param>
 public static void WriteFile(Stream OutputStream, IReadOnlyList <LNode> Nodes)
 {
     using (var writer = new LoycBinaryWriter(OutputStream))
     {
         writer.WriteFile(Nodes);
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Writes the contents of a binary loyc file to the current output stream.
        /// </summary>
        /// <param name="Nodes"></param>
        public void WriteFileContents(IReadOnlyList <LNode> Nodes)
        {
            using (var memStream = new MemoryStream())
                using (var childWriter = new LoycBinaryWriter(memStream, this))
                {
                    var state = new WriterState();
                    childWriter.WriteList(Nodes, node => childWriter.WritePrefixedNode(state, node));

                    memStream.Seek(0, SeekOrigin.Begin);

                    WriteHeader(state);
                    memStream.CopyTo(Writer.BaseStream);
                }
        }
Esempio n. 3
0
 public LoycBinaryWriter(Stream outputStream, LoycBinaryWriter other)
     : this(new BinaryWriter(outputStream), other)
 {
 }
Esempio n. 4
0
 public LoycBinaryWriter(BinaryWriter writer, LoycBinaryWriter other)
     : this(writer, other.LiteralEncoders)
 {
 }
Esempio n. 5
0
 /// <summary>
 /// Writes a call node template definition.
 /// </summary>
 /// <param name="Writer"></param>
 public override void Write(LoycBinaryWriter Writer)
 {
     Writer.Writer.Write(TargetSymbolIndex);
     Writer.WriteList(ArgumentTypes, Writer.WriteEncodingType);
 }
Esempio n. 6
0
 /// <summary>
 /// Writes this node template's data to the given writer.
 /// </summary>
 /// <param name="Writer"></param>
 public abstract void Write(LoycBinaryWriter Writer);
Esempio n. 7
0
 /// <summary>
 /// Writes an attribute list node template definition.
 /// </summary>
 /// <param name="Writer"></param>
 public override void Write(LoycBinaryWriter Writer)
 {
     Writer.WriteList(ArgumentTypes, Writer.WriteEncodingType);
 }