grammar.py and friends: Make test/grammar compile and start

Doesn't successfully parse grammartest.code, yet, it errors out with a
syntax error on whitespace. But at least it compiles and starts.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2017-10-30 13:05:22 +01:00
commit 16ce7abd93
5 changed files with 129 additions and 77 deletions

44
test/grammar/main.cpp Normal file
View file

@ -0,0 +1,44 @@
#include <string>
#include <stdio.h>
#include <misc.h>
#include <slog.h>
#include <YMisc.h>
// 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;
}