MCPcopy Create free account
hub / github.com/Geant4/geant4 / DoIt

Method DoIt

source/intercoms/src/G4UIcommand.cc:122–225  ·  view source on GitHub ↗

--------------------------------------------------------------------

Source from the content-addressed store, hash-verified

120
121// --------------------------------------------------------------------
122G4int G4UIcommand::DoIt(const G4String& parameterList)
123{
124 G4String correctParameters;
125 std::size_t n_parameterEntry = parameter.size();
126 if (n_parameterEntry != 0) {
127 G4String aToken;
128 G4String correctToken;
129 G4Tokenizer parameterToken(parameterList);
130 for (std::size_t i_thParameter = 0; i_thParameter < n_parameterEntry; ++i_thParameter) {
131 if (i_thParameter > 0) {
132 correctParameters.append(" ");
133 }
134 aToken = parameterToken();
135 if (aToken.length() > 0 && aToken[0] == '"') {
136 while (aToken.back() != '"' || (aToken.length() == 1 && aToken[0] == '"')) {
137 G4String additionalToken = parameterToken();
138 if (additionalToken.empty()) {
139 return G4int(fParameterUnreadable + i_thParameter);
140 }
141 aToken += " ";
142 aToken += additionalToken;
143 }
144 }
145 else if (i_thParameter == n_parameterEntry - 1
146 && parameter[i_thParameter]->GetParameterType() == 's')
147 {
148 G4String anotherToken;
149 while (!((anotherToken = parameterToken()).empty())) {
150 std::size_t idxs = anotherToken.find('#');
151 if (idxs == std::string::npos) {
152 aToken += " ";
153 aToken += anotherToken;
154 }
155 else if (idxs > 0) {
156 aToken += " ";
157 aToken += anotherToken.substr(0, idxs);
158 break;
159 }
160 else {
161 break;
162 }
163 }
164 }
165
166 if (aToken.empty() || aToken == "!") {
167 if (parameter[i_thParameter]->IsOmittable()) {
168 if (parameter[i_thParameter]->GetCurrentAsDefault()) {
169 G4Tokenizer cvSt(messenger->GetCurrentValue(this));
170 G4String parVal;
171 for (std::size_t ii = 0; ii < i_thParameter; ++ii) {
172 parVal = cvSt();
173 if (parVal[0] == '"') {
174 while (parVal.back() != '"') {
175 G4String additionalToken = cvSt();
176 if (additionalToken.empty()) {
177 return G4int(fParameterUnreadable + i_thParameter);
178 }
179 parVal += " ";

Callers 1

ApplyCommandMethod · 0.45

Calls 13

backMethod · 0.80
GetParameterTypeMethod · 0.80
substrMethod · 0.80
IsOmittableMethod · 0.80
GetCurrentAsDefaultMethod · 0.80
sizeMethod · 0.45
appendMethod · 0.45
lengthMethod · 0.45
emptyMethod · 0.45
findMethod · 0.45
GetCurrentValueMethod · 0.45
CheckNewValueMethod · 0.45

Tested by

no test coverage detected