digraph CODEOBJECT_GENERATOR
{
// Определения функций-обработчиков
	FUNC_1 [module=case_gen_funcs, entry_func=function_1]
	FUNC_2 [module=case_gen_funcs, entry_func=function_2]
	FUNC_3 [module=case_gen_funcs, entry_func=function_3]
	SAVE_TO_DB [module=case_gen_funcs, entry_func=save_to_db]
	SAVE_TO_FILE [module=case_gen_funcs, entry_func=save_to_file]
	REPEAT [module=case_gen_funcs, entry_func=repeat]
	EXIT [module=case_gen_funcs, entry_func=exit]
	CREATE_DUMP [module=case_gen_funcs, entry_func=create_dump]
	CHECK_DUMP [module=case_gen_funcs, entry_func=check_dump]
// Определения функций-предикатов
	PREDICATE_X [module=predicate_funcs, entry_func=predicate_x]
	PREDICATE_Y [module=predicate_funcs, entry_func=predicate_y]
	SELECTOR [module=predicate_funcs, entry_func=selector]
// Определения функций перехода
	EDGE_1 [predicate=PREDICATE_X, function=FUNC_1]
	EDGE_2 [predicate=PREDICATE_Y, function=FUNC_2]
	EDGE_3 [predicate=PREDICATE_X, function=FUNC_3]
	EDGE_4 [predicate=PREDICATE_Y, function=SAVE_TO_DB]
	EDGE_5 [predicate=PREDICATE_X, function=SAVE_TO_FILE]
	EDGE_6 [predicate=PREDICATE_Y, function=REPEAT]
	EDGE_7 [predicate=PREDICATE_X, function=EXIT]
	EDGE_8 [function=EXIT]
	EDGE_9 [predicate=CHECK_DUMP, function=EXIT]
	EDGE_10 [function=CREATE_DUMP]
// В узле указана стратегия распараллеливания	
	CONTENT_SUBSTITUTED [parallelism=threading]
// Определение графовой модели
	__BEGIN__ -> INPUT_READY
	INPUT_READY -> TEPMLATE_COPIED [morphism=EDGE_1]
	TEPMLATE_COPIED -> NAMES_SUBSTITUTED [morphism=EDGE_2]
	NAMES_SUBSTITUTED -> CONTENT_SUBSTITUTED [morphism=EDGE_3]
	CONTENT_SUBSTITUTED -> DUMP_CREATED [morphism=EDGE_10, order=3]
	CONTENT_SUBSTITUTED -> RESULT_SAVED [morphism=EDGE_4, order=2]
	CONTENT_SUBSTITUTED -> RESULT_SAVED [morphism=EDGE_5,order=1,comment="test comment to cpp"]
// В зависимости от результата вычисления функции-SELECTOR осуществляется переход по
//первому или второму ребру
	RESULT_SAVED -> __END__ [morphism=EDGE_8, order=(40)]
	RESULT_SAVED -> INPUT_READY,FAKE,__END__ [selector=SELECTOR, morphism=(EDGE_6,EDGE_1,EDGE_7), order=(30,20,10)]
}