Merge pull request #154 from abiggerhammer/master
Don't try to recall() primitive results
This commit is contained in:
commit
a3290770e2
1 changed files with 4 additions and 1 deletions
|
|
@ -181,7 +181,10 @@ HParseResult* lr_answer(HParserCacheKey *k, HParseState *state, HLeftRec *growab
|
||||||
HParseResult* h_do_parse(const HParser* parser, HParseState *state) {
|
HParseResult* h_do_parse(const HParser* parser, HParseState *state) {
|
||||||
HParserCacheKey *key = a_new(HParserCacheKey, 1);
|
HParserCacheKey *key = a_new(HParserCacheKey, 1);
|
||||||
key->input_pos = state->input_stream; key->parser = parser;
|
key->input_pos = state->input_stream; key->parser = parser;
|
||||||
HParserCacheValue *m = recall(key, state);
|
HParserCacheValue *m = NULL;
|
||||||
|
if (parser->vtable->higher) {
|
||||||
|
m = recall(key, state);
|
||||||
|
}
|
||||||
// check to see if there is already a result for this object...
|
// check to see if there is already a result for this object...
|
||||||
if (!m) {
|
if (!m) {
|
||||||
// It doesn't exist, so create a dummy result to cache
|
// It doesn't exist, so create a dummy result to cache
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue