コード例 #1
0
ファイル: ByteMethod.cs プロジェクト: Skinz3/Nova.Compiler
 public void Serialize(CppBinaryWriter writer)
 {
     writer.Write(Name);
     writer.Write((byte)Modifiers);
     writer.Write(ParametersCount);
     ByteBlock.Serialize(writer);
 }
コード例 #2
0
ファイル: NovFile.cs プロジェクト: Skinz3/Nova.Compiler
        public void Serialize(CppBinaryWriter writer)
        {
            writer.Write(HEADER);

            MainPointEntry.Serialize(writer);

            writer.Write(ByteClasses.Count);

            foreach (var pair in ByteClasses)
            {
                pair.Serialize(writer);
            }

            writer.Write(ConstantsTable.Count);

            foreach (var value in ConstantsTable)
            {
                if (value is string)
                {
                    writer.Write(1);
                    writer.Write(value.ToString());
                }
                else if (value is bool)
                {
                    writer.Write(2);
                    writer.Write((bool)value);
                }
                else
                {
                    throw new Exception("Unhandled constant serialization.");
                }
            }
        }
コード例 #3
0
ファイル: Symbol.cs プロジェクト: Skinz3/Nova.Compiler
        public void Serialize(CppBinaryWriter writer)
        {
            writer.Write(Symbols.Count);

            foreach (var pair in Symbols)
            {
                writer.Write(pair.Key);
                pair.Value.Serialize(writer);
            }
        }
コード例 #4
0
ファイル: SymbolTable.cs プロジェクト: Skinz3/Nova.Compiler
        public void Serialize(CppBinaryWriter writer)
        {
            writer.Write(m_table.Count);

            foreach (var symbol in m_table)
            {
                writer.Write(symbol.Key);
                symbol.Value.Serialize(writer);
            }
        }
コード例 #5
0
        public void Save()
        {
            if (File.Exists(OutputPath))
            {
                File.Delete(OutputPath);
            }

            FileStream      stream = new FileStream(OutputPath, FileMode.Append);
            CppBinaryWriter writer = new CppBinaryWriter(stream);

            this.Result.Serialize(writer);
            writer.Close();
            stream.Close();
        }
コード例 #6
0
ファイル: ByteBlock.cs プロジェクト: Skinz3/Nova.Compiler
        public void Serialize(CppBinaryWriter writer)
        {
            //SymbolTable.Serialize(writer);

            int size = Instructions.Sum(x => x.GetSize() + 1);

            writer.Write(size);

            foreach (var code in Instructions)
            {
                writer.Write(code.OpId);
                code.Serialize(writer);
            }

            writer.Write(LocalsCount);
        }
コード例 #7
0
ファイル: ByteClass.cs プロジェクト: Skinz3/Nova.Compiler
        public void Serialize(CppBinaryWriter writer)
        {
            writer.Write(Name);

            writer.Write((byte)Type);

            writer.Write(Methods.Count);

            foreach (var method in Methods)
            {
                method.Serialize(writer);
            }

            writer.Write(Fields.Count);

            foreach (var field in Fields)
            {
                field.Serialize(writer);
            }
        }
コード例 #8
0
 public void Serialize(CppBinaryWriter writer)
 {
     writer.Write(propertyId);
 }
コード例 #9
0
 public void Serialize(CppBinaryWriter writer)
 {
 }
コード例 #10
0
ファイル: PushConstCode.cs プロジェクト: Skinz3/Nova.Compiler
 public void Serialize(CppBinaryWriter writer)
 {
     writer.Write(constantId);
 }
コード例 #11
0
ファイル: CtorCallCode.cs プロジェクト: Skinz3/Nova.Compiler
 public void Serialize(CppBinaryWriter writer)
 {
     writer.Write(parametersCount);
     writer.Write(methodId);
 }
コード例 #12
0
 public void Serialize(CppBinaryWriter writer)
 {
     writer.Write(nativeId);
 }
コード例 #13
0
 public void Serialize(CppBinaryWriter writer)
 {
     writer.Write(targetIndex);
 }
コード例 #14
0
 public void Serialize(CppBinaryWriter writer)
 {
     writer.Write(classId);
     writer.Write(fieldId);
 }
コード例 #15
0
ファイル: Symbol.cs プロジェクト: Skinz3/Nova.Compiler
 public void Serialize(CppBinaryWriter writer)
 {
     writer.Write(Id);
     writer.Write(Type);
 }
コード例 #16
0
ファイル: ByteField.cs プロジェクト: Skinz3/Nova.Compiler
 public void Serialize(CppBinaryWriter writer)
 {
     writer.Write(Name);
     writer.Write((byte)Modifiers);
     Meta.Serialize(writer);
 }
コード例 #17
0
 public void Serialize(CppBinaryWriter writer)
 {
     writer.Write(ClassIndex);
     writer.Write(MethodIndex);
 }
コード例 #18
0
 public void Serialize(CppBinaryWriter writer)
 {
     writer.Write(variableId);
 }
コード例 #19
0
 public void Serialize(CppBinaryWriter writer)
 {
     writer.Write((int)type);
 }
コード例 #20
0
ファイル: PushIntCode.cs プロジェクト: Skinz3/Nova.Compiler
 public void Serialize(CppBinaryWriter writer)
 {
     writer.Write(value);
 }
コード例 #21
0
 public void Serialize(CppBinaryWriter writer)
 {
     writer.Write(methodId);
 }