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

Reply via email to