jmoore Tue Nov 12 09:31:35 2002 EDT Added files: /php4/ext/w32api w32api_function_definition_parser.y w32api_function_definition_scanner.l w32api_type_definition_parser.y w32api_type_definition_scanner.l Log: Forgot the parsers and scanners
Index: php4/ext/w32api/w32api_function_definition_parser.y +++ php4/ext/w32api/w32api_function_definition_parser.y %{ /* +----------------------------------------------------------------------+ | PHP version 4.0 | +----------------------------------------------------------------------+ | Copyright (c) 1997-2001 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 2.02 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available at through the world-wide-web at | | http://www.php.net/license/2_02.txt. | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | [EMAIL PROTECTED] so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Authors: James Moore <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */
/* $Id: w32api_function_definition_parser.y,v 1.1 2002/11/12 14:31:33 jmoore Exp $ */ #include <stdio.h> #include <stdlib.h> #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <string.h> #include "php.h" #include "php_ini.h" #include "ext/standard/info.h" #include "ext/standard/php_string.h" #include "php_w32api.h" #define YYSTYPE w32api_parser_function_definition_union #define YYPARSE_PARAM fh int w32api_function_definition_lex(w32api_parser_function_definition_union *funcdef_lval); %} %pure_parser %token tFROM %token tBYREF %token tALIAS %token <s> tIDENTIFIER %token <s> tFILENAME %type <arg> argument argument_list %start funcdef %% funcdef: tIDENTIFIER tIDENTIFIER tALIAS tIDENTIFIER'(' argument_list ')' tFROM tFILENAME {((w32api_func_handle_ptr *)fh)->hnd = w32api_parser_load_alias_function($1, $2, $4, $6, $9);} | tIDENTIFIER tIDENTIFIER '(' argument_list ')' tFROM tFILENAME {((w32api_func_handle_ptr *)fh)->hnd = w32api_parser_load_function($1, $2, $4, $7);} ; argument_list: argument ',' argument_list { $$ = w32api_parser_join_arguments($1, $3);} | argument {$$ = $1;} | {$$ = NULL} ; argument: tIDENTIFIER tIDENTIFIER { $$ = w32api_parser_make_argument_byval($1, $2); } | tIDENTIFIER tBYREF tIDENTIFIER { $$ = w32api_parser_make_argument_byref($1, $3); } ; Index: php4/ext/w32api/w32api_function_definition_scanner.l +++ php4/ext/w32api/w32api_function_definition_scanner.l %{ /* +----------------------------------------------------------------------+ | PHP version 4.0 | +----------------------------------------------------------------------+ | Copyright (c) 1997-2001 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 2.02 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available at through the world-wide-web at | | http://www.php.net/license/2_02.txt. | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | [EMAIL PROTECTED] so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Authors: James Moore <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ /* $Id: w32api_function_definition_scanner.l,v 1.1 2002/11/12 14:31:34 jmoore Exp $ */ #include <stdio.h> #include <stdlib.h> #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <string.h> #include "php.h" #include "php_ini.h" #include "ext/standard/info.h" #include "ext/standard/php_string.h" #include "php_w32api.h" #include "w32api_function_definition_parser.h" #ifdef YYSTYPE #undef YYSTYPE #endif #define YYSTYPE w32api_parser_function_definition_union #define YY_DECL int w32api_function_definition_lex(w32api_parser_function_definition_union *funcdef_lval) %} ID [A-Za-z][A-Za-z0-9_]* FILENAME {ID}\.{ID} %option noyywrap %% "from" {return tFROM;} "alias" {return tALIAS;} "&" {return tBYREF;} {FILENAME} {funcdef_lval->s = estrdup(yytext); return tFILENAME;} {ID} {funcdef_lval->s = estrdup(yytext); return tIDENTIFIER;} [ \r\t\n] /* Ignore Whitespace */ {return *yytext;} %% Index: php4/ext/w32api/w32api_type_definition_parser.y +++ php4/ext/w32api/w32api_type_definition_parser.y %{ /* +----------------------------------------------------------------------+ | PHP version 4.0 | +----------------------------------------------------------------------+ | Copyright (c) 1997-2001 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 2.02 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available at through the world-wide-web at | | http://www.php.net/license/2_02.txt. | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | [EMAIL PROTECTED] so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Authors: James Moore <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ /* $Id: w32api_type_definition_parser.y,v 1.1 2002/11/12 14:31:34 jmoore Exp $ */ #include <stdio.h> #include <stdlib.h> #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <string.h> #include "php.h" #include "php_ini.h" #include "ext/standard/info.h" #include "ext/standard/php_string.h" #include "php_w32api.h" #define YYSTYPE w32api_parser_type_definition_union #define YYPARSE_PARAM th int w32api_type_definition_lex(w32api_parser_type_definition_union *typedef_lval); %} %pure_parser %token <s> tTYPEID %token tBYREF %type <type> value_list value %% start: type_definition ; type_definition: tTYPEID '{' value_list '}' {((w32api_type_handle_ptr *)th)->hnd = w32api_parser_register_type($1, $3);} ; value_list: value ';' value_list {$$ = w32api_parser_type_join_values($1, $3);} | value ';' {$$ = $1;} ; value: tTYPEID tTYPEID {$$ = w32api_parser_type_make_byval_value($1, $2);} | tTYPEID tBYREF tTYPEID {$$ = w32api_parser_type_make_byref_value($1, $3);} ; Index: php4/ext/w32api/w32api_type_definition_scanner.l +++ php4/ext/w32api/w32api_type_definition_scanner.l %{ /* +----------------------------------------------------------------------+ | PHP version 4.0 | +----------------------------------------------------------------------+ | Copyright (c) 1997-2001 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 2.02 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available at through the world-wide-web at | | http://www.php.net/license/2_02.txt. | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | [EMAIL PROTECTED] so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Authors: James Moore <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ /* $Id: w32api_type_definition_scanner.l,v 1.1 2002/11/12 14:31:34 jmoore Exp $ */ #include <stdio.h> #include <stdlib.h> #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <string.h> #include "php.h" #include "php_ini.h" #include "ext/standard/info.h" #include "ext/standard/php_string.h" #include "php_w32api.h" #include "w32api_type_definition_parser.h" #ifdef YYSTYPE #undef YYSTYPE #endif #define YYSTYPE w32api_parser_type_definition_union #define YY_DECL int w32api_type_definition_lex(w32api_parser_type_definition_union *typedef_lval) %} TYPEID [A-Za-z][A-Za-z0-9_]* %option noyywrap %% "&" {return tBYREF;} {TYPEID} {typedef_lval->s = estrdup(yytext); return tTYPEID;} [ \r\t\n] /* Ignore Whitespace */ {return *yytext;} %%
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php