Import Geant4 10.7.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2020-06-26 10:23:25 +02:00
parent c02c370437
commit 67ba86d073
1871 changed files with 174422 additions and 131884 deletions
+59 -59
View File
@@ -23,78 +23,78 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// G4Tokenizer
//
// Class description:
//
//
//---------------------------------------------------------------
// GEANT 4 class header file
//
// G4Tokenizer
//
// Class description:
//
// String tokenizer.
// It derives from the implementation of the Rogue Wave
// RWTokenizer. It intrinsically uses STL string.
// String tokenizer.
// It derives from the implementation of the Rogue Wave RWTokenizer.
// It intrinsically uses STL string.
//---------------------------------------------------------------
#ifndef __G4Tokenizer
#define __G4Tokenizer
// Author: G.Cosmo, 11 October 2001
// --------------------------------------------------------------------
#ifndef G4Tokenizer_hh
#define G4Tokenizer_hh 1
#include "G4String.hh"
class G4Tokenizer
class G4Tokenizer
{
public:
G4Tokenizer(const G4String& stn):string2tokenize(stn),actual(0){}
public:
G4Tokenizer(const G4String& stn)
: string2tokenize(stn)
, actual(0)
{}
G4String operator()(const char* str=" \t\n",size_t l=0)
G4String operator()(const char* str = " \t\n", std::size_t l = 0)
{
std::size_t i, j, tmp;
G4bool hasws = false;
if(l == 0)
l = strlen(str);
// Skip leading delimeters
while(actual < string2tokenize.size())
{
size_t i,j,tmp;
G4bool hasws=false;
if(l==0) l=strlen(str);
//Skip leading delimeters
while(actual<string2tokenize.size())
{
for(i=0;i<l;i++)
if(string2tokenize[actual]==str[i]) hasws=true;
if(hasws)
{
actual++;
hasws=false;
}
else
break;
}
for(j=actual;j<string2tokenize.size();j++)
{
for(i=0;i<l;i++)
if(string2tokenize[j]==str[i]) break;
if(i<l) break;
}
if(j!=string2tokenize.size())
{
tmp=actual;
actual=j+1;
return string2tokenize(tmp,j-tmp);
}
for(i = 0; i < l; ++i)
{
if(string2tokenize[actual] == str[i])
hasws = true;
}
if(hasws)
{
++actual;
hasws = false;
}
else
{
tmp=actual;
actual=j;
return string2tokenize(tmp,j-tmp);
}
}
break;
}
private:
for(j = actual; j < string2tokenize.size(); ++j)
{
for(i = 0; i < l; ++i)
if(string2tokenize[j] == str[i])
break;
if(i < l)
break;
}
if(j != string2tokenize.size())
{
tmp = actual;
actual = j + 1;
return string2tokenize(tmp, j - tmp);
}
else
{
tmp = actual;
actual = j;
return string2tokenize(tmp, j - tmp);
}
}
private:
G4String string2tokenize;
size_t actual;
std::size_t actual;
};
#endif