osl_scop_p cseed_scop_read_from_c(FILE* input, char* input_name) { clan_options_p clanoptions; osl_scop_p scop; clanoptions = clan_options_malloc(); clanoptions->precision = OSL_PRECISION_MP; CLAN_strdup(clanoptions->name, input_name); scop = clan_scop_extract(input, clanoptions); clan_options_free(clanoptions); return scop; }
/** * clan_scop_generate_clay function: * this function generates a clay extension for the scop passed as * an argument. * \param[in,out] scop The scop to add a clay extension to. * \param[in] script The clay script. */ void clan_scop_generate_clay(osl_scop_p scop, char* script) { osl_clay_p clay; osl_generic_p extension; if ((script != NULL) && (strlen(script) > 0)) { // Build the clay extension clay = osl_clay_malloc(); CLAN_strdup(clay->script, script); // Build the generic extension and insert it to the extension list. extension = osl_generic_malloc(); extension->interface = osl_clay_interface(); extension->data = clay; osl_generic_add(&scop->extension, extension); } }
/** * clan_scop_generate_coordinates function: * this function generates a coordinates extension for the scop passed as * an argument. * \param[in] name The name of the SCoP original file. * \param[in,out] scop The scop to add a scatnames extension to. */ void clan_scop_generate_coordinates(osl_scop_p scop, char* name) { osl_coordinates_p coordinates; osl_generic_p extension; // Build the coordinates extension coordinates = osl_coordinates_malloc(); CLAN_strdup(coordinates->name, name); coordinates->line_start = scanner_scop_start + 1; coordinates->line_end = scanner_scop_end; coordinates->column_start = 0; coordinates->column_end = 0; coordinates->indent = (parser_indent != CLAN_UNDEFINED) ? parser_indent : 0; // Build the generic extension and insert it to the extension list. extension = osl_generic_malloc(); extension->interface = osl_coordinates_interface(); extension->data = coordinates; osl_generic_add(&scop->extension, extension); }