2012-11-02 17:16:53 -04:00
|
|
|
// This file contains functions related to managing multiple parse backends
|
|
|
|
|
#include "hammer.h"
|
|
|
|
|
#include "internal.h"
|
|
|
|
|
|
|
|
|
|
static HParserBackendVTable *backends[PB_MAX] = {
|
|
|
|
|
&h__packrat_backend_vtable,
|
2013-04-17 15:10:33 +02:00
|
|
|
&h__ll_backend_vtable,
|
2012-11-02 17:16:53 -04:00
|
|
|
};
|
|
|
|
|
|
2013-05-08 18:01:55 +02:00
|
|
|
int h_compile(HParser* parser, HParserBackend backend, const void* params) {
|
2012-11-02 17:16:53 -04:00
|
|
|
return h_compile__m(&system_allocator, parser, backend, params);
|
|
|
|
|
}
|
|
|
|
|
|
2013-05-08 18:01:55 +02:00
|
|
|
int h_compile__m(HAllocator* mm__, HParser* parser, HParserBackend backend, const void* params) {
|
2012-11-02 17:16:53 -04:00
|
|
|
return backends[backend]->compile(mm__, parser, params);
|
|
|
|
|
}
|