52 extern std::ofstream
ofile;
111 const char* ofname =
"clparse.out";
113 ofile <<
"Output file open\n";
117 std::ifstream istr(fname);
119 while (line.
readLine(istr) && ! istr.eof())
123 for (
G4int i=0; i < ntokens; i++)
150 while (!(token1=next(
"\"")).isNull())
155 tokens[ntokens++] = token1;
160 while (!(token2=lev2()).isNull())
162 tokens[ntokens] = token2;
179 const char*
context = tokens[0];
180 const char* routine = tokens[1];
181 const char* wcard =
"*";
185 if ((select != 0) && (select != wcard))
187 if ( strcmp(select,context) ) {
return; }
192 ofile <<
"Do routine " << routine <<
" in context " << context <<
G4endl;
194 if ( !strcmp(routine,
"GSVOLU") ) {
PG4gsvolu(&tokens[2]);
return;}
195 if ( !strcmp(routine,
"GSPOS") ) {
PG4gspos (&tokens[2]);
return;}
196 if ( !strcmp(routine,
"GSPOSP") ) {
PG4gsposp(&tokens[2]);
return;}
197 if ( !strcmp(routine,
"GSATT") ) {
PG4gsatt (&tokens[2]);
return;}
198 if ( !strcmp(routine,
"GSROTM") ) {
PG4gsrotm(&tokens[2]);
return;}
199 if ( !strcmp(routine,
"GSDVN") ) {
PG4gsdvn (&tokens[2]);
return;}
200 if ( !strcmp(routine,
"GSDVT") ) {
PG4gsdvt (&tokens[2]);
return;}
201 if ( !strcmp(routine,
"GSDVX") ) {
PG4gsdvx (&tokens[2]);
return;}
202 if ( !strcmp(routine,
"GSDVN2") ) {
PG4gsdvn2(&tokens[2]);
return;}
203 if ( !strcmp(routine,
"GSDVT2") ) {
PG4gsdvt2(&tokens[2]);
return;}
204 if ( !strcmp(routine,
"GSMATE") ) {
PG4gsmate(&tokens[2]);
return;}
205 if ( !strcmp(routine,
"GSMIXT") ) {
PG4gsmixt(&tokens[2]);
return;}
206 if ( !strcmp(routine,
"GSTMED") ) {
PG4gstmed(&tokens[2]);
return;}
207 if ( !strcmp(routine,
"GSTPAR") ) {
PG4gstpar(&tokens[2]);
return;}
208 if ( !strcmp(routine,
"GSPART") ) {
PG4gspart(&tokens[2]);
return;}
209 if ( !strcmp(routine,
"GSDK") ) {
PG4gsdk (&tokens[2]);
return;}
210 if ( !strcmp(routine,
"GSDET") ) {
PG4gsdet (&tokens[2]);
return;}
211 if ( !strcmp(routine,
"GSDETV") ) {
PG4gsdetv(&tokens[2]);
return;}
212 if ( !strcmp(routine,
"GSDETA") ) {
PG4gsdeta(&tokens[2]);
return;}
213 if ( !strcmp(routine,
"GSDETH") ) {
PG4gsdeth(&tokens[2]);
return;}
214 if ( !strcmp(routine,
"GSDETD") ) {
PG4gsdetd(&tokens[2]);
return;}
215 if ( !strcmp(routine,
"GSDETU") ) {
PG4gsdetu(&tokens[2]);
return;}
216 if ( !strcmp(routine,
"GGCLOS") ) {
PG4ggclos();
return;}
228 G4int i =0, ipt = 0, k = 0;
229 G4int ni =0, nr = 0, nq = 0;
230 while (ptypes[i] !=
'\0')
235 Ipar[ni] = atoi(tokens[ipt].
data());
240 Rpar[nr] = atof(tokens[ipt].
data());
244 Spar[nq] = tokens[ipt];
248 for (k=0; k <
narray; k++)
250 Ipar[ni] = atoi(tokens[ipt].
data());
255 for (k=0; k <
narray; k++)
257 Rpar[nr] = atof(tokens[ipt].
data());
265 narray = 3 * std::abs(narray);
266 for (k=0; k <
narray; k++)
268 Rpar[nr] = atof(tokens[ipt].
data());
273 for (k=0; k <
narray; k++)
275 Spar[nq] = tokens[ipt];
280 ofile <<
"unidentified ptype '" << ptypes[i] <<
G4endl;
void PG4gsvolu(G4String *tokens)
void PG4gspos(G4String *tokens)
G3G4DLL_API G4double Rpar[1000]
G3G4DLL_API G3PartTable G3Part
void PG4gsdetd(G4String *tokens)
G3G4DLL_API G3RotTable G3Rot
void PG4gstmed(G4String *tokens)
G3G4DLL_API G3MedTable G3Med
G3G4DLL_API G3SensVolVector G3SensVol
void PG4gsdvt2(G4String *tokens)
void PG4gsposp(G4String *tokens)
G3G4DLL_API G3MatTable G3Mat
void PG4gsdk(G4String *tokens)
void PG4gsdetv(G4String *tokens)
G3G4DLL_API G3DetTable G3Det
void PG4gstpar(G4String *tokens)
void G3fillParams(G4String *tokens, const char *ptypes)
void PG4gsdvt(G4String *tokens)
std::istream & readLine(std::istream &, G4bool skipWhite=true)
void PG4gsdeth(G4String *tokens)
const XML_Char const XML_Char * data
std::vector< G4LogicalVolume * > G3SensVolVector
G3G4DLL_API G3EleTable G3Ele
G4int G3CLTokens(G4String *line, G4String *tokens)
G3G4DLL_API G4String Spar[1000]
void PG4gsmixt(G4String *tokens)
void PG4gsrotm(G4String *tokens)
void PG4gsmate(G4String *tokens)
void G3CLRead(G4String &fname, char *select=0)
G3G4DLL_API G4int Ipar[1000]
void PG4gsdvx(G4String *tokens)
void G3CLEval(G4String *tokens, char *select)
void PG4gspart(G4String *tokens)
G3G4DLL_API char gSeparator
void PG4gsatt(G4String *tokens)
void PG4gsdvn(G4String *tokens)
void PG4gsdetu(G4String *tokens)
void PG4gsdet(G4String *tokens)
G3G4DLL_API G3VolTable G3Vol
void PG4gsdvn2(G4String *tokens)
void PG4gsdeta(G4String *tokens)