save a parser's desugared form when h_desugar is called on it for the first time

This commit is contained in:
Sven M. Hallberg 2013-04-19 15:20:09 +02:00
parent 1325ebcdd1
commit 7180169af4

View file

@ -2,5 +2,10 @@
#include "internal.h"
HCFChoice *h_desugar(HAllocator *mm__, const HParser *parser) {
return parser->vtable->desugar(mm__, parser->env);
if(parser->desugared == NULL) {
// we're going to do something naughty and cast away the const to memoize
((HParser *)parser)->desugared = parser->vtable->desugar(mm__, parser->env);
}
return parser->desugared;
}