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