equal
deleted
inserted
replaced
173 { |
173 { |
174 for (int i=stack.size()-1; i>=1; i--) |
174 for (int i=stack.size()-1; i>=1; i--) |
175 { |
175 { |
176 Step& step = stack[i]; |
176 Step& step = stack[i]; |
177 Step& parent = stack[step.iParent]; |
177 Step& parent = stack[step.iParent]; |
178 parent.iResult.iChildren.push_front(step.iResult); |
178 parent.iResult.iChildren.insert(0,step.iResult);//push_front |
179 if (parent.iResult.iEnd < step.iResult.iEnd) |
179 if (parent.iResult.iEnd < step.iResult.iEnd) |
180 parent.iResult.iEnd = step.iResult.iEnd; |
180 parent.iResult.iEnd = step.iResult.iEnd; |
181 } |
181 } |
182 |
182 |
183 return stack[0].iResult; |
183 return stack[0].iResult; |
194 switch (iOp) |
194 switch (iOp) |
195 { |
195 { |
196 case EExact: |
196 case EExact: |
197 { |
197 { |
198 string match(iMatch); |
198 string match(iMatch); |
199 int mLen = match.size(); |
199 unsigned int mLen = match.size(); |
200 if (mLen + aPos > aString.size()) |
200 if (mLen + aPos > aString.size()) |
201 return EFail; |
201 return EFail; |
202 else if (aString.substr(aPos, mLen) != match) |
202 else if (aString.substr(aPos, mLen) != match) |
203 return EFail; |
203 return EFail; |
204 else |
204 else |
206 return EPass; |
206 return EPass; |
207 } |
207 } |
208 |
208 |
209 case EEos: |
209 case EEos: |
210 { |
210 { |
211 if (aPos != aString.size()) |
211 if (static_cast<unsigned int>( aPos ) != aString.size()) |
212 return EFail; |
212 return EFail; |
213 else |
213 else |
214 step.iResult.iEnd = aPos; |
214 step.iResult.iEnd = aPos; |
215 return EPass; |
215 return EPass; |
216 } |
216 } |
317 { |
317 { |
318 cout << res.iRuleId << " " << res.iStart << "..." << res.iEnd << " "; |
318 cout << res.iRuleId << " " << res.iStart << "..." << res.iEnd << " "; |
319 if (res.iChildren.size()) |
319 if (res.iChildren.size()) |
320 { |
320 { |
321 cout << "{ "; |
321 cout << "{ "; |
322 for (int i=0; i<res.iChildren.size(); i++) |
322 for (unsigned int i=0; i<res.iChildren.size(); i++) |
323 DoPrint(res.iChildren[i]); |
323 DoPrint(res.iChildren[i]); |
324 cout << "} "; |
324 cout << "} "; |
325 } |
325 } |
326 } |
326 } |
327 |
327 |