2013-03-17 13:25:02 -07:00
|
|
|
#include "hammer.h"
|
|
|
|
|
#include "internal.h"
|
2013-03-16 14:47:31 -07:00
|
|
|
|
2013-03-17 13:25:02 -07:00
|
|
|
HCFChoice *h_desugar(HAllocator *mm__, const HParser *parser) {
|
2013-04-19 15:20:09 +02:00
|
|
|
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;
|
2013-03-16 14:47:31 -07:00
|
|
|
}
|