* Contributors:
* Balasko, Jeno
* Raduly, Csaba
+ * Szabo, Bence Janos
* Zalanyi, Balazs Andor
*
******************************************************************************/
}
namespace Common {
-
+
class CodeGenHelper {
public:
enum split_type {
SPLIT_NONE, ///< original code generation
SPLIT_BY_KIND, ///< place different kind of types in their own file
SPLIT_BY_NAME, ///< place all definitions/assignments in their own file
- SPLIT_BY_HEURISTICS ///< heuristic function will decide the structure
+ SPLIT_BY_HEURISTICS,///< heuristic function will decide the structure
+ SPLIT_TO_SLICES ///< split large files into smaller ones
};
private:
output_map_t generated_code;
split_type split_mode;
+ unsigned int slice_num;
struct module_names_t {
string name;
void finalize_generation(Type* type);
void set_current_module(const string& name);
+
+ static void update_intervals(output_struct* const output);
+
+ size_t size_of_sources(output_struct * const output);
+
+ size_t get_next_chunk_pos(const output_struct * const from, output_struct * const to, const size_t base_pos, const size_t chunk_size);
+
+ void get_chunk_from_poslist(const char* from, char *& to, const size_t interval_array[], const size_t interval_array_size, const size_t base_pos, const size_t chunk_size, size_t& pos);
void write_output();