#include #include #include #include #include // TODO: this should be included from grammartest.tab.h automatically #include "include/grammartest.h" #include "include/defs.h" #include "include/grammartest.tab.h" using namespace std; int main(int argc, const char *argv[]) { if (argc < 2) { fprintf(stderr, "usage: %s input-file\n", filenotdir(argv[0])); return 1; } const char *path = argv[1]; string content; if (YMisc::suck_in_file(path, content)<0) { slog(PRI_ERR, "failed to read [%s] (%s)", path, err()); return 1; } struct context context = { line: 0 }; struct vp_scanner *scanner = FB_SYM(init_scanner)(content.c_str()); int status = FB_SYM(parse)(&context, FB_SYM(scanner_get_data)(scanner)); FB_SYM(cleanup_scanner)(scanner); if (status) { slog(PRI_ERR, "failed to parse [%s] (%s)", path, err()); return -1; } return 0; }