diff options
author | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2012-10-23 17:43:09 +0100 |
---|---|---|
committer | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2012-10-23 17:43:09 +0100 |
commit | b00346cd08b55d25e427cfabafbaa66e09a8444b (patch) | |
tree | e3b6477843762d86698b70fd27fec28b52fc22db /src/genjsbind-parser.y | |
parent | 0c61abc9f71a128c5045738af3489aac743986bd (diff) | |
download | nsgenbind-b00346cd08b55d25e427cfabafbaa66e09a8444b.tar.gz nsgenbind-b00346cd08b55d25e427cfabafbaa66e09a8444b.tar.bz2 |
The name of teh tool is nsgenbind correct this everywhere
Diffstat (limited to 'src/genjsbind-parser.y')
-rw-r--r-- | src/genjsbind-parser.y | 228 |
1 files changed, 0 insertions, 228 deletions
diff --git a/src/genjsbind-parser.y b/src/genjsbind-parser.y deleted file mode 100644 index cf9ab61..0000000 --- a/src/genjsbind-parser.y +++ /dev/null @@ -1,228 +0,0 @@ -%{ -/* parser for the binding generation config file - * - * This file is part of nsgenjsbind. - * Licensed under the MIT License, - * http://www.opensource.org/licenses/mit-license.php - * Copyright 2012 Vincent Sanders <vince@netsurf-browser.org> - */ - -#include <stdio.h> -#include <string.h> - -#include "genjsbind-parser.h" -#include "genjsbind-lexer.h" -#include "webidl-ast.h" -#include "genjsbind-ast.h" - -char *errtxt; - - static void genjsbind_error(YYLTYPE *locp, struct genbind_node **genbind_ast, const char *str) -{ - locp = locp; - genbind_ast = genbind_ast; - errtxt = strdup(str); -} - - -%} - -%locations -%define api.pure -%error-verbose -%parse-param { struct genbind_node **genbind_ast } - -%union -{ - char* text; - struct genbind_node *node; -} - -%token TOK_IDLFILE -%token TOK_HDR_COMMENT -%token TOK_PREAMBLE - -%token TOK_BINDING -%token TOK_OPERATION -%token TOK_INTERFACE -%token TOK_TYPE -%token TOK_PRIVATE - -%token <text> TOK_IDENTIFIER -%token <text> TOK_STRING_LITERAL -%token <text> TOK_CCODE_LITERAL - -%type <text> CBlock - -%type <node> Statement -%type <node> Statements -%type <node> IdlFile -%type <node> Preamble -%type <node> HdrComment -%type <node> Strings -%type <node> Binding -%type <node> BindingArgs -%type <node> BindingArg -%type <node> Type -%type <node> Private -%type <node> Interface -%type <node> Operation - -%% - -Input - : - Statements - { - *genbind_ast = $1; - } - ; - - -Statements - : - Statement - | - Statements Statement - { - $$ = genbind_node_link($2, $1); - } - | - error ';' - { - fprintf(stderr, "%d: %s\n", yylloc.first_line, errtxt); - free(errtxt); - YYABORT ; - } - ; - -Statement - : - IdlFile - | - HdrComment - | - Preamble - | - Binding - | - Operation - ; - - /* [3] load a web IDL file */ -IdlFile - : - TOK_IDLFILE TOK_STRING_LITERAL ';' - { - $$ = genbind_new_node(GENBIND_NODE_TYPE_WEBIDLFILE, NULL, $2); - } - ; - -HdrComment - : - TOK_HDR_COMMENT Strings ';' - { - $$ = genbind_new_node(GENBIND_NODE_TYPE_HDRCOMMENT, NULL, $2); - } - ; - -Strings - : - TOK_STRING_LITERAL - { - $$ = genbind_new_node(GENBIND_NODE_TYPE_STRING, NULL, $1); - } - | - Strings TOK_STRING_LITERAL - { - $$ = genbind_new_node(GENBIND_NODE_TYPE_STRING, $1, $2); - } - ; - -Preamble - : - TOK_PREAMBLE CBlock - { - $$ = genbind_new_node(GENBIND_NODE_TYPE_PREAMBLE, NULL, $2); - } - ; - -CBlock - : - TOK_CCODE_LITERAL - | - CBlock TOK_CCODE_LITERAL - { - $$ = genbind_strapp($1, $2); - } - ; - -Operation - : - TOK_OPERATION TOK_IDENTIFIER CBlock - { - $$ = genbind_new_node(GENBIND_NODE_TYPE_OPERATION, - NULL, - genbind_new_node(GENBIND_NODE_TYPE_IDENT, - genbind_new_node(GENBIND_NODE_TYPE_CBLOCK, - NULL, - $3), - $2)); - } - -Binding - : - TOK_BINDING TOK_IDENTIFIER '{' BindingArgs '}' - { - $$ = genbind_new_node(GENBIND_NODE_TYPE_BINDING, - NULL, - genbind_new_node(GENBIND_NODE_TYPE_IDENT, $4, $2)); - } - ; - -BindingArgs - : - BindingArg - | - BindingArgs BindingArg - { - $$ = genbind_node_link($2, $1); - } - ; - -BindingArg - : - Type - | - Private - | - Interface - ; - -Type - : - TOK_TYPE TOK_IDENTIFIER ';' - { - $$ = genbind_new_node(GENBIND_NODE_TYPE_BINDING_TYPE, NULL, $2); - } - ; - -Private - : - TOK_PRIVATE TOK_STRING_LITERAL TOK_IDENTIFIER ';' - { - $$ = genbind_new_node(GENBIND_NODE_TYPE_BINDING_PRIVATE, NULL, - genbind_new_node(GENBIND_NODE_TYPE_IDENT, - genbind_new_node(GENBIND_NODE_TYPE_STRING, NULL, $2), $3)); - } - ; - -Interface - : - TOK_INTERFACE TOK_IDENTIFIER ';' - { - $$ = genbind_new_node(GENBIND_NODE_TYPE_BINDING_INTERFACE, NULL, $2); - } - ; - -%% |