]> Creatis software - cpPlugins.git/blobdiff - appli/bash/cpPlugins_CreateInstances.cxx
Cleaning...
[cpPlugins.git] / appli / bash / cpPlugins_CreateInstances.cxx
diff --git a/appli/bash/cpPlugins_CreateInstances.cxx b/appli/bash/cpPlugins_CreateInstances.cxx
deleted file mode 100644 (file)
index a286d93..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-#include <cpPlugins_Config.h>
-#include <map>
-#include <vector>
-#include <sstream>
-
-// -------------------------------------------------------------------------
-typedef std::vector< std::string >      TLines;
-typedef std::map< char, TLines >        TParsedLines;
-typedef std::map< std::string, TLines > TVariables;
-
-// -------------------------------------------------------------------------
-bool ReadFile( TParsedLines& lines, const std::string& fname );
-void ExpandGroups( TLines& res, const TLines& lines );
-void ExpandDefinitions(
-  TLines& res, const TLines& lines, const TVariables& vars
-  );
-void PrintLines(
-  const std::string& prefix, const std::string& suffix,
-  const TLines& lines, std::ostream& out
-  );
-
-// -------------------------------------------------------------------------
-int main( int argc, char* argv[] )
-{
-  if( argc < 5 )
-  {
-    std::cerr
-      << "Usage: " << argv[ 0 ]
-      << " input_definitions library_name header_file source_file"
-      << std::endl;
-    return( 1 );
-
-  } // fi
-  std::string input_definitions_fname = argv[ 1 ];
-  std::string library_name = argv[ 2 ];
-  std::string header_file_fname = argv[ 3 ];
-  std::string source_file_fname = argv[ 4 ];
-
-  // Read file and simple parse it
-  TParsedLines lines;
-  if( !ReadFile( lines, input_definitions_fname ) )
-  {
-    std::cerr
-      << "Error opening file: \""
-      << input_definitions_fname << "\""
-      << std::endl;
-    return( 1 );
-
-  } // fi
-
-  // Expand definitions
-  TVariables vars;
-  for( auto dIt = lines[ 'd' ].begin( ); dIt != lines[ 'd' ].end( ); ++dIt )
-  {
-    TLines tokens;
-    cpPlugins::TokenizeString( tokens, *dIt, "=;" );
-    auto tIt = tokens.begin( );
-    auto vName = *tIt;
-    tIt++;
-    for( ; tIt != tokens.end( ); ++tIt )
-      vars[ vName ].push_back( *tIt );
-
-    TLines res;
-    ExpandDefinitions( res, vars[ vName ], vars );
-    vars[ vName ] = res;
-
-  } // rof
-
-  // Expand groups
-  TLines f_includes_groups, includes_groups, templates_groups, classes_groups;
-  ExpandGroups( f_includes_groups, lines[ 'f' ] );
-  ExpandGroups( includes_groups, lines[ 'i' ] );
-  ExpandGroups( templates_groups, lines[ 't' ] );
-  ExpandGroups( classes_groups, lines[ 'c' ] );
-
-  // Expand definitions
-  TLines f_includes_list, includes_list, templates_list, classes_list;
-  ExpandDefinitions( f_includes_list, f_includes_groups, vars );
-  ExpandDefinitions( includes_list, includes_groups, vars );
-  ExpandDefinitions( templates_list, templates_groups, vars );
-  ExpandDefinitions( classes_list, classes_groups, vars );
-
-  // Write header file
-  std::ofstream header_file( header_file_fname.c_str( ) );
-  if( !header_file )
-  {
-    std::cerr
-      << "Error opening \"" << header_file_fname
-      << "\" for writing." << std::endl;
-    return( 1 );
-
-  } // fi
-
-  // Print header
-  header_file
-    << "#ifndef __" << library_name << "__H__" << std::endl
-    << "#define __" << library_name << "__H__" << std::endl<< std::endl
-    << "#include <cpPlugins_Config.h>" << std::endl
-    << "#include <" << library_name << "_Export.h>" << std::endl << std::endl;
-  PrintLines( "", "", lines[ 'b' ], header_file );
-  header_file << std::endl;
-  PrintLines( "#include <", ">", f_includes_list, header_file );
-  header_file
-    << "#ifdef " << library_name << "_EXPORTS" << std::endl
-    << "#  define " << library_name << "_PREFIX template class "
-    << library_name << "_EXPORT" << std::endl
-    << "#else // " << library_name << "_EXPORTS" << std::endl
-    << "#  define " << library_name
-    << "_PREFIX extern template class" << std::endl
-    << "#endif // "
-    << library_name << "_EXPORTS" << std::endl << std::endl;
-  PrintLines( "#include <", ">", includes_list, header_file );
-  PrintLines( "#include <", ">", templates_list, header_file );
-  header_file
-    << std::endl << "#ifdef " << library_name << "_EXPORTS" << std::endl;
-  PrintLines( "#include <", "xx>", templates_list, header_file );
-  header_file
-    << "#endif // " << library_name << "_EXPORTS" << std::endl << std::endl;
-  PrintLines(
-    library_name + std::string( "_PREFIX " ), ";", classes_list, header_file
-    );
-  header_file
-    << std::endl << "#endif // __" << library_name << "__H__" << std::endl;
-  header_file.close( );
-
-  // Write source file
-  std::ofstream source_file( source_file_fname );
-  if( !source_file )
-  {
-    std::cerr
-      << "Error opening \"" << header_file_fname << "\" for writing." << std::endl;
-    return( 1 );
-
-  } // fi
-  source_file
-    << "#include \"" << header_file_fname << "\"" << std::endl;
-  source_file.close( );
-
-  return( 0 );
-}
-
-// -------------------------------------------------------------------------
-bool ReadFile( TParsedLines& lines, const std::string& fname )
-{
-  std::string buffer;
-  if( cpPlugins::ReadFileIntoString( buffer, fname ) )
-  {
-    std::istringstream input_stream( buffer );
-
-    // Read line by line
-    std::string line;
-    while( std::getline( input_stream, line ) )
-    {
-      auto cmd_pos = line.end( );
-      auto arg_pos = line.end( );
-      auto lIt = line.begin( );
-      while( lIt != line.end( ) )
-      {
-        if( !cpPlugins::IsBlank( *lIt ) )
-        {
-          if( cmd_pos == line.end( ) )
-          {
-            cmd_pos = lIt;
-            ++lIt;
-          }
-          else if( arg_pos == line.end( ) )
-          {
-            arg_pos = lIt;
-            lIt = line.end( );
-
-          } // fi
-        }
-        else
-          ++lIt;
-
-      } // elihw
-      char cmd = *cmd_pos;
-      std::string arg;
-      arg.resize( line.end( ) - arg_pos );
-      std::copy( arg_pos, line.end( ), arg.begin( ) );
-      lines[ cmd ].push_back( arg );
-
-    } // elihw
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-void ExpandGroups( TLines& res, const TLines& lines )
-{
-  for( auto lIt = lines.begin( ); lIt != lines.end( ); ++lIt )
-  {
-    auto b_pos = lIt->find( "@{" );
-    if( b_pos != std::string::npos )
-    {
-      unsigned int braces_count = 1;
-      auto e_pos = b_pos;
-      e_pos += 2;
-      while( braces_count != 0 && e_pos < lIt->size( ) )
-      {
-        auto v = ( *lIt )[ e_pos ];
-        braces_count += ( v == '{' )? 1: ( ( v == '}' )? -1: 0 );
-        e_pos++;
-
-      } // elihw
-      if( braces_count == 0 )
-      {
-        auto replace = lIt->substr( b_pos, e_pos - b_pos );
-        auto expansion = replace.substr( 2, replace.size( ) - 3 );
-        TLines tokens;
-        cpPlugins::TokenizeString( tokens, expansion, ";" );
-        for( auto tIt = tokens.begin( ); tIt != tokens.end( ); ++tIt )
-          *tIt = cpPlugins::ReplaceString( *lIt, replace, *tIt );
-        ExpandGroups( res, tokens );
-
-      } // fi
-    }
-    else
-      res.push_back( *lIt );
-
-  } // rof
-}
-
-// -------------------------------------------------------------------------
-void ExpandDefinitions(
-  TLines& res, const TLines& lines, const TVariables& vars
-  )
-{
-  std::string seps = " ,;:{}[]()\"$&<>*.";
-
-  for( auto lIt = lines.begin( ); lIt != lines.end( ); ++lIt )
-  {
-    auto b_pos = lIt->find( "#" );
-    if( b_pos != std::string::npos )
-    {
-      TLines tokens;
-      cpPlugins::TokenizeString( tokens, lIt->substr( b_pos ), seps );
-      std::string cmd = tokens[ 0 ];
-      auto vIt = vars.find( cmd );
-      if( vIt != vars.end( ) )
-      {
-        if( vIt->second.size( ) > 0 )
-        {
-          TLines new_res;
-          for(
-            auto wIt = vIt->second.begin( ); wIt != vIt->second.end( ); ++wIt
-            )
-            new_res.push_back( cpPlugins::ReplaceString( *lIt, cmd, *wIt ) );
-          ExpandDefinitions( res, new_res, vars );
-
-        } // fi
-
-      } // fi
-    }
-    else
-      res.push_back(
-        cpPlugins::ReplaceString(
-          cpPlugins::ReplaceString( *lIt, "{", "" ), "}", ""
-          )
-        );
-
-  } // rof
-}
-
-// -------------------------------------------------------------------------
-void PrintLines(
-  const std::string& prefix, const std::string& suffix,
-  const TLines& lines, std::ostream& out
-  )
-{
-  for( auto i = lines.begin( ); i != lines.end( ); ++i )
-    out << prefix << *i << suffix << std::endl;
-}
-
-// eof - $RCSfile$