summaryrefslogtreecommitdiff
path: root/src/piraha/Lookup.cc
diff options
context:
space:
mode:
authorsbrandt <sbrandt@17b73243-c579-4c4c-a9d2-2d5706c11dac>2014-02-18 17:56:10 +0000
committersbrandt <sbrandt@17b73243-c579-4c4c-a9d2-2d5706c11dac>2014-02-18 17:56:10 +0000
commit375a3181eca67ade911daab563ff02cef15ddda4 (patch)
tree516108ec7b9072b790a9bbb66d25ec711827d321 /src/piraha/Lookup.cc
parent7bab271c2b988a8feb0e2aed226fbe563bdc674f (diff)
Make it possible to parse very large paramter files and to do it quickly.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@5086 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src/piraha/Lookup.cc')
-rw-r--r--src/piraha/Lookup.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/piraha/Lookup.cc b/src/piraha/Lookup.cc
index a1cc457c..24f56871 100644
--- a/src/piraha/Lookup.cc
+++ b/src/piraha/Lookup.cc
@@ -13,8 +13,8 @@ bool Lookup::match(Matcher *m) {
smart_ptr<Pattern> p = gram->patterns.get(name);
if(!p.valid()) std::cout << "Lookup of pattern [" << name << "] failed. Jmap = " << gram->patterns << std::endl;
assert(p.valid());
- vector<smart_ptr<Group> > chSave = m->children;
- m->children.clear();
+ smart_ptr<vector<smart_ptr<Group> > > chSave = m->children;
+ m->children = new vector<smart_ptr<Group> >();
int s = m->pos;
std::string save_name = m->inrule;
m->inrule += "::";
@@ -33,7 +33,7 @@ bool Lookup::match(Matcher *m) {
*/
smart_ptr<Group> g = new Group(name,m->input,s,e,m->children);
if(capture)
- chSave.push_back(g);
+ chSave->push_back(g);
}
m->children = chSave;
return b;