From da234bc3e4e44693a6464140d2dee91a948a6145 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 5 Sep 2012 20:56:31 +0100 Subject: set lexers input properly add node idl file --- src/Makefile | 2 +- src/genjsbind-parser.y | 17 ++++++++++------- src/genjsbind.c | 17 ++++++++++------- 3 files changed, 21 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/Makefile b/src/Makefile index 6740140..e2eb873 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,4 +1,4 @@ -CFLAGS := $(CFLAGS) -I$(BUILDDIR) -Isrc/ +CFLAGS := $(CFLAGS) -I$(BUILDDIR) -Isrc/ -g # Sources in this directory DIR_SOURCES := genjsbind.c diff --git a/src/genjsbind-parser.y b/src/genjsbind-parser.y index 08b8926..5c5bed5 100644 --- a/src/genjsbind-parser.y +++ b/src/genjsbind-parser.y @@ -41,15 +41,18 @@ int genjsbind_wrap() %% /* [1] start with Statements */ -Statements: - /* empty */ - | - IdlFile +Statements + : Statement + | Statement Statements ; - /* [2] load a web IDL file */ -IdlFile: - TOK_IDLFILE TOK_STRING_LITERAL ';' +Statement + : IdlFile + ; + + /* [3] load a web IDL file */ +IdlFile + : TOK_IDLFILE TOK_STRING_LITERAL ';' { if (loadwebidl($2) != 0) { YYABORT; diff --git a/src/genjsbind.c b/src/genjsbind.c index 145c16e..89d2fb0 100644 --- a/src/genjsbind.c +++ b/src/genjsbind.c @@ -13,12 +13,12 @@ extern int webidl_debug; extern int webidl__flex_debug; -extern FILE* webidl_in; +extern void webidl_restart(FILE*); extern int webidl_parse(void); extern int genjsbind_debug; extern int genjsbind__flex_debug; -extern FILE* genjsbind_in; +extern void genjsbind_restart(FILE*); extern int genjsbind_parse(void); struct options { @@ -57,8 +57,9 @@ static FILE *idlopen(const char *filename) int loadwebidl(char *filename) { /* set flex to read from file */ - webidl_in = idlopen(filename); - if (!webidl_in) { + FILE *idlfile; + idlfile = idlopen(filename); + if (!idlfile) { fprintf(stderr, "Error opening %s: %s\n", filename, strerror(errno)); @@ -69,6 +70,8 @@ int loadwebidl(char *filename) webidl_debug = 1; webidl__flex_debug = 1; } + + webidl_restart(idlfile); /* parse the file */ return webidl_parse(); @@ -160,13 +163,13 @@ int main(int argc, char **argv) return 3; } - /* set flex to read from file */ - genjsbind_in = infile; - if (options->debug) { genjsbind_debug = 1; genjsbind__flex_debug = 1; } + + /* set flex to read from file */ + genjsbind_restart(infile); parse_res = genjsbind_parse(); if (parse_res) { -- cgit v1.2.3