Exemplo n.º 1
0
        private void GenerateStructure(Model.Structure s, uint indent)
        {
            List <Model.Field> static_fields;
            List <Model.Field> dynamic_fields;

            AnalyzeFields(s, out static_fields, out dynamic_fields);
            bool dynamic_size = dynamic_fields.Count > 0;

            write_indented(indent, String.Format("class {0}", s.Name));
            write_indented(indent, "{");
            write_indented(indent, "public:");
            if (!dynamic_size)
            {
                WriteDeletedConstructor(s.Name, indent + 1);
                WriteDeletedCopyConstructor(s.Name, indent + 1);
                WriteDeletedAssignmentOperator(s.Name, indent + 1);
                foreach (var field in s.Fields)
                {
                    GenerateField(field, indent + 1);
                }
            }
            else
            {
                WriteConstructor(s.Name, indent + 1, dynamic_fields);
            }


            if (dynamic_size)
            {
                write_indented(indent, "private:");
                // TODO: Add milepost members
            }
            write_indented(indent, "};");
        }
Exemplo n.º 2
0
        private void AnalyzeFields(Model.Structure structure, out List <Model.Field> static_fields, out List <Model.Field> dynamic_fields)
        {
            static_fields  = new List <Model.Field>();
            dynamic_fields = new List <Model.Field>();

            foreach (var field in structure.Fields)
            {
                if (field.HasStaticSize())
                {
                    static_fields.Add(field);
                }
                else
                {
                    static_fields.Add(field);
                }
            }
        }
Exemplo n.º 3
0
 private String type_to_cpp_type(Model.Structure s)
 {
     return(s.Name);
 }