mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-python
synced 2026-01-15 09:53:32 +01:00
44 lines
915 B
C++
44 lines
915 B
C++
|
|
#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;
|
||
|
|
}
|