SCHEMA DFG_Nodes; USE FROM Objects; USE FROM Basic_Types; USE FROM CFG_Nodes; USE FROM CFGs; ENTITY DFG_Variable SUBTYPE OF ( Named_Object ); END_ENTITY; TYPE DFG_Variables_Range = Range; END_TYPE; TYPE DFG_Variables_Table = LIST OF DFG_Variable; END_TYPE; ENTITY DFG_Variables_Table_Package; table_range : DFG_Variables_Range; table : DFG_Variables_Table; END_ENTITY; ENTITY DFG_Statement SUBTYPE OF ( Named_Object ); Defined_Variable : DFG_Variable; Used_Variables : DFG_Variables_Table; END_ENTITY; TYPE DFG_Statements_Range = Range; END_TYPE; TYPE DFG_Statements_Table = LIST OF DFG_Statement; END_TYPE; ENTITY DFG_Statements_Table_Package; table_range : DFG_Statements_Range; table : DFG_Statements_Table; END_ENTITY; ENTITY DFG_Basic_Block SUBTYPE OF ( CFG_Node ); Statements : DFG_Statements_Table; DERIVE SELF\CFG_Node.graph_type : CFG_Graph_Type := DFG_Basic_block; END_ENTITY; (* to be removed, a table has a NB_Entries fonction to get the actual number of elements *) ENTITY DFG_Cfg_Type; Blocks : CFG_Nodes_Table; Nb_Blocks : Natural; END_ENTITY; (* use Definition instead of Def *) ENTITY DFG_Def_Use_Association; Def_Variable : DFG_Variable; Def_Statement : DFG_Statement; Use_Statement : DFG_Statement; END_ENTITY; TYPE DFG_Def_Use_Associations_Range = Range; END_TYPE; TYPE DFG_Def_Use_Associations_Table = LIST OF DFG_Def_Use_Association; END_TYPE; ENTITY DFG_Def_Use_Associations_Table_Package; table_range : DFG_Def_Use_Associations_Range; table : DFG_Def_Use_Associations_Table; END_ENTITY; (* use Variable instead of Var *) ENTITY DFG_Var_Association; Def_Variable : DFG_Variable; Statement : DFG_Statement; END_ENTITY; TYPE DFG_Var_Association_Defs_Range = Range; END_TYPE; TYPE DFG_Var_Association_Defs_Table = LIST OF DFG_Var_Association; END_TYPE; ENTITY DFG_Var_Association_Defs_Table_Package; table_range : DFG_Var_Association_Defs_Range; table : DFG_Var_Association_Defs_Table; END_ENTITY; TYPE DFG_Var_Association_Uses_Range = Range; END_TYPE; TYPE DFG_Var_Association_Uses_Table = LIST OF DFG_Var_Association; END_TYPE; ENTITY DFG_Var_Association_Uses_Table_Package; table_range : DFG_Var_Association_Uses_Range; table : DFG_Var_Association_Uses_Table; END_ENTITY; ENTITY DFG_Def_Use_Info; Def_In : DFG_Var_Association_Defs_Table; Def_Out : DFG_Var_Association_Defs_Table; Use_Out : DFG_Var_Association_Uses_Table; Def_Use_Asso : DFG_Def_Use_Associations_Table; END_ENTITY; TYPE DFG_Def_Use_Infos_Range = Range; END_TYPE; TYPE DFG_Def_Use_Infos_Table = LIST OF DFG_Def_Use_Info; END_TYPE; ENTITY DFG_Def_Use_Infos_Table_Package; table_range : DFG_Def_Use_Infos_Range; table : DFG_Def_Use_Infos_Table; END_ENTITY; END_SCHEMA;