Sync to Wine-20050419:

Juan Lang <juan_lang@yahoo.com>
- Always initialize header file name, to prevent "#include (null)"
  statements in generated files.
- Put space between include directive and include file.
- Add proxy/stub options to widl man page.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Add support for single in idl files.
- Keep types sorted in alphabetical order.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.

svn path=/trunk/; revision=14798
This commit is contained in:
Gé van Geldorp 2005-04-25 10:58:34 +00:00
parent 2b5f3c76a1
commit 753a3c0e99
11 changed files with 3678 additions and 4322 deletions

View file

@ -1714,12 +1714,12 @@ static void init_client(void)
error("Could not open %s for output\n", client_name); error("Could not open %s for output\n", client_name);
print_client("/*** Autogenerated by WIDL %s from %s - Do not edit ***/\n", WIDL_FULLVERSION, input_name); print_client("/*** Autogenerated by WIDL %s from %s - Do not edit ***/\n", WIDL_FULLVERSION, input_name);
print_client("#include<string.h>\n"); print_client("#include <string.h>\n");
print_client("#ifdef _ALPHA_\n"); print_client("#ifdef _ALPHA_\n");
print_client("#include<stdarg.h>\n"); print_client("#include <stdarg.h>\n");
print_client("#endif\n"); print_client("#endif\n");
fprintf(client, "\n"); fprintf(client, "\n");
print_client("#include\"%s\"\n", header_name); print_client("#include \"%s\"\n", header_name);
fprintf(client, "\n"); fprintf(client, "\n");
} }

View file

@ -1,4 +1,3 @@
#line 2 "lex.yy.c"
/* A lexical scanner generated by flex */ /* A lexical scanner generated by flex */
/* Scanner skeleton version: /* Scanner skeleton version:
@ -10,6 +9,7 @@
#define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_MINOR_VERSION 5
#include <stdio.h> #include <stdio.h>
#include <unistd.h>
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
@ -23,7 +23,6 @@
#ifdef __cplusplus #ifdef __cplusplus
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h>
/* Use prototypes in function declarations. */ /* Use prototypes in function declarations. */
#define YY_USE_PROTOS #define YY_USE_PROTOS
@ -3088,7 +3087,7 @@ static yyconst short int yy_rule_linenum[18] =
#define YY_MORE_ADJ 0 #define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET #define YY_RESTORE_YY_MORE_OFFSET
char *yytext; char *yytext;
#line 1 "parser.l" #line 1 "./parser.l"
#define INITIAL 0 #define INITIAL 0
/* /*
* IDL Compiler * IDL Compiler
@ -3115,7 +3114,7 @@ char *yytext;
#define pp_line 2 #define pp_line 2
#line 36 "parser.l" #line 36 "./parser.l"
#include "config.h" #include "config.h"
@ -3186,7 +3185,7 @@ static UUID* parse_uuid(const char*u)
* The flexer starts here * The flexer starts here
************************************************************************** **************************************************************************
*/ */
#line 3190 "lex.yy.c" #line 3189 "lex.yy.c"
/* Macros after this point can all be overridden by user definitions in /* Macros after this point can all be overridden by user definitions in
* section 1. * section 1.
@ -3337,12 +3336,12 @@ YY_MALLOC_DECL
YY_DECL YY_DECL
{ {
register yy_state_type yy_current_state; register yy_state_type yy_current_state;
register char *yy_cp, *yy_bp; register char *yy_cp = NULL, *yy_bp = NULL;
register int yy_act; register int yy_act;
#line 108 "parser.l" #line 108 "./parser.l"
#line 3346 "lex.yy.c" #line 3345 "lex.yy.c"
if ( yy_init ) if ( yy_init )
{ {
@ -3431,12 +3430,12 @@ do_action: /* This label is used only to access EOF actions. */
case 1: case 1:
YY_RULE_SETUP YY_RULE_SETUP
#line 109 "parser.l" #line 109 "./parser.l"
yy_push_state(pp_line); yy_push_state(pp_line);
YY_BREAK YY_BREAK
case 2: case 2:
YY_RULE_SETUP YY_RULE_SETUP
#line 110 "parser.l" #line 110 "./parser.l"
{ {
int lineno; int lineno;
char *cptr, *fname; char *cptr, *fname;
@ -3459,12 +3458,12 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 3: case 3:
YY_RULE_SETUP YY_RULE_SETUP
#line 129 "parser.l" #line 129 "./parser.l"
yy_push_state(QUOTE); cbufidx = 0; yy_push_state(QUOTE); cbufidx = 0;
YY_BREAK YY_BREAK
case 4: case 4:
YY_RULE_SETUP YY_RULE_SETUP
#line 130 "parser.l" #line 130 "./parser.l"
{ {
yy_pop_state(); yy_pop_state();
yylval.str = get_buffered_cstring(); yylval.str = get_buffered_cstring();
@ -3472,25 +3471,25 @@ YY_RULE_SETUP
} }
YY_BREAK YY_BREAK
case 5: case 5:
#line 136 "parser.l" #line 136 "./parser.l"
case 6: case 6:
YY_RULE_SETUP YY_RULE_SETUP
#line 136 "parser.l" #line 136 "./parser.l"
addcchar(yytext[1]); addcchar(yytext[1]);
YY_BREAK YY_BREAK
case 7: case 7:
YY_RULE_SETUP YY_RULE_SETUP
#line 137 "parser.l" #line 137 "./parser.l"
addcchar('\\'); addcchar(yytext[1]); addcchar('\\'); addcchar(yytext[1]);
YY_BREAK YY_BREAK
case 8: case 8:
YY_RULE_SETUP YY_RULE_SETUP
#line 138 "parser.l" #line 138 "./parser.l"
addcchar(yytext[0]); addcchar(yytext[0]);
YY_BREAK YY_BREAK
case 9: case 9:
YY_RULE_SETUP YY_RULE_SETUP
#line 139 "parser.l" #line 139 "./parser.l"
{ {
yylval.uuid = parse_uuid(yytext); yylval.uuid = parse_uuid(yytext);
return aUUID; return aUUID;
@ -3498,7 +3497,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 10: case 10:
YY_RULE_SETUP YY_RULE_SETUP
#line 143 "parser.l" #line 143 "./parser.l"
{ {
yylval.num = strtoul(yytext, NULL, 0); yylval.num = strtoul(yytext, NULL, 0);
return aHEXNUM; return aHEXNUM;
@ -3506,7 +3505,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 11: case 11:
YY_RULE_SETUP YY_RULE_SETUP
#line 147 "parser.l" #line 147 "./parser.l"
{ {
yylval.num = strtoul(yytext, NULL, 0); yylval.num = strtoul(yytext, NULL, 0);
return aNUM; return aNUM;
@ -3514,38 +3513,38 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 12: case 12:
YY_RULE_SETUP YY_RULE_SETUP
#line 151 "parser.l" #line 151 "./parser.l"
return kw_token(yytext); return kw_token(yytext);
YY_BREAK YY_BREAK
case 13: case 13:
YY_RULE_SETUP YY_RULE_SETUP
#line 152 "parser.l" #line 152 "./parser.l"
line_number++; line_number++;
YY_BREAK YY_BREAK
case 14: case 14:
YY_RULE_SETUP YY_RULE_SETUP
#line 153 "parser.l" #line 153 "./parser.l"
YY_BREAK YY_BREAK
case 15: case 15:
YY_RULE_SETUP YY_RULE_SETUP
#line 154 "parser.l" #line 154 "./parser.l"
return SHL; return SHL;
YY_BREAK YY_BREAK
case 16: case 16:
YY_RULE_SETUP YY_RULE_SETUP
#line 155 "parser.l" #line 155 "./parser.l"
return SHR; return SHR;
YY_BREAK YY_BREAK
case 17: case 17:
YY_RULE_SETUP YY_RULE_SETUP
#line 156 "parser.l" #line 156 "./parser.l"
return yytext[0]; return yytext[0];
YY_BREAK YY_BREAK
case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(QUOTE): case YY_STATE_EOF(QUOTE):
case YY_STATE_EOF(pp_line): case YY_STATE_EOF(pp_line):
#line 157 "parser.l" #line 157 "./parser.l"
{ {
if (import_stack_ptr) { if (import_stack_ptr) {
pop_import(); pop_import();
@ -3556,10 +3555,10 @@ case YY_STATE_EOF(pp_line):
YY_BREAK YY_BREAK
case 18: case 18:
YY_RULE_SETUP YY_RULE_SETUP
#line 164 "parser.l" #line 164 "./parser.l"
ECHO; ECHO;
YY_BREAK YY_BREAK
#line 3563 "lex.yy.c" #line 3562 "lex.yy.c"
case YY_END_OF_BUFFER: case YY_END_OF_BUFFER:
{ {
@ -3935,6 +3934,7 @@ register char *yy_bp;
#endif /* ifndef YY_NO_UNPUT */ #endif /* ifndef YY_NO_UNPUT */
#ifndef YY_NO_INPUT
#ifdef __cplusplus #ifdef __cplusplus
static int yyinput() static int yyinput()
#else #else
@ -4007,7 +4007,7 @@ static int input()
return c; return c;
} }
#endif /* YY_NO_INPUT */
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
void yyrestart( FILE *input_file ) void yyrestart( FILE *input_file )
@ -4118,11 +4118,6 @@ YY_BUFFER_STATE b;
} }
#ifndef YY_ALWAYS_INTERACTIVE
#ifndef YY_NEVER_INTERACTIVE
extern int isatty YY_PROTO(( int ));
#endif
#endif
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
@ -4440,7 +4435,7 @@ int main()
return 0; return 0;
} }
#endif #endif
#line 164 "parser.l" #line 164 "./parser.l"
#ifndef yywrap #ifndef yywrap
@ -4566,6 +4561,7 @@ static struct keyword {
/* ... */ /* ... */
{"short", tSHORT}, {"short", tSHORT},
{"signed", tSIGNED}, {"signed", tSIGNED},
{"single", tSINGLE},
{"size_is", tSIZEIS}, {"size_is", tSIZEIS},
{"sizeof", tSIZEOF}, {"sizeof", tSIZEOF},
/* ... */ /* ... */

View file

@ -286,6 +286,7 @@ static struct keyword {
/* ... */ /* ... */
{"short", tSHORT}, {"short", tSHORT},
{"signed", tSIGNED}, {"signed", tSIGNED},
{"single", tSINGLE},
{"size_is", tSIZEIS}, {"size_is", tSIZEIS},
{"sizeof", tSIZEOF}, {"sizeof", tSIZEOF},
/* ... */ /* ... */

View file

@ -169,6 +169,7 @@ static type_t std_uhyper = { "MIDL_uhyper" };
%token tRETVAL %token tRETVAL
%token tSHORT %token tSHORT
%token tSIGNED %token tSIGNED
%token tSINGLE
%token tSIZEIS tSIZEOF %token tSIZEIS tSIZEOF
%token tSMALL %token tSMALL
%token tSOURCE %token tSOURCE
@ -565,9 +566,9 @@ base_type: tBYTE { $$ = make_type(RPC_FC_BYTE, NULL); }
default: break; default: break;
} }
} }
| tUNSIGNED { $$ = make_type(RPC_FC_ULONG, &std_int); | tUNSIGNED { $$ = make_type(RPC_FC_ULONG, &std_int); $$->sign = -1; }
$$->sign = -1; }
| tFLOAT { $$ = make_type(RPC_FC_FLOAT, NULL); } | tFLOAT { $$ = make_type(RPC_FC_FLOAT, NULL); }
| tSINGLE { $$ = make_type(RPC_FC_FLOAT, NULL); }
| tDOUBLE { $$ = make_type(RPC_FC_DOUBLE, NULL); } | tDOUBLE { $$ = make_type(RPC_FC_DOUBLE, NULL); }
| tBOOLEAN { $$ = make_type(RPC_FC_SMALL, &std_bool); } | tBOOLEAN { $$ = make_type(RPC_FC_SMALL, &std_bool); }
| tERRORSTATUST { $$ = make_type(RPC_FC_ERROR_STATUS_T, NULL); } | tERRORSTATUST { $$ = make_type(RPC_FC_ERROR_STATUS_T, NULL); }

View file

@ -1665,9 +1665,9 @@ static void init_server(void)
error("Could not open %s for output\n", server_name); error("Could not open %s for output\n", server_name);
print_server("/*** Autogenerated by WIDL %s from %s - Do not edit ***/\n", WIDL_FULLVERSION, input_name); print_server("/*** Autogenerated by WIDL %s from %s - Do not edit ***/\n", WIDL_FULLVERSION, input_name);
print_server("#include<string.h>\n"); print_server("#include <string.h>\n");
fprintf(server, "\n"); fprintf(server, "\n");
print_server("#include\"%s\"\n", header_name); print_server("#include \"%s\"\n", header_name);
fprintf(server, "\n"); fprintf(server, "\n");
} }

View file

@ -165,7 +165,7 @@ typedef struct tagMSFT_ImpInfo {
/* function description data */ /* function description data */
typedef struct { typedef struct {
/* INT recsize; record size including some xtra stuff */ /* INT recsize; record size including some xtra stuff */
INT DataType; /* data type of the memeber, eg return of function */ INT DataType; /* data type of the member, eg return of function */
INT Flags; /* something to do with attribute flags (LOWORD) */ INT Flags; /* something to do with attribute flags (LOWORD) */
#ifdef WORDS_BIGENDIAN #ifdef WORDS_BIGENDIAN
INT16 funcdescsize; /* size of reconstituted FUNCDESC and related structs */ INT16 funcdescsize; /* size of reconstituted FUNCDESC and related structs */

View file

@ -236,7 +236,7 @@ int main(int argc,char *argv[])
(debuglevel & DEBUGLEVEL_PPTRACE) != 0, (debuglevel & DEBUGLEVEL_PPTRACE) != 0,
(debuglevel & DEBUGLEVEL_PPMSG) != 0 ); (debuglevel & DEBUGLEVEL_PPMSG) != 0 );
if (!header_name && do_header) { if (!header_name) {
header_name = dup_basename(input_name, ".idl"); header_name = dup_basename(input_name, ".idl");
strcat(header_name, ".h"); strcat(header_name, ".h");
} }

View file

@ -31,6 +31,20 @@ Generate a type library.
Define the name of the type library to be generated. Define the name of the type library to be generated.
The default filename is infile.tlb. The default filename is infile.tlb.
.PP .PP
.B Proxy/stub generation options:
.IP \fB-c\fR
Generate client stub.
.IP \fB-C \fIfile\fR
Name of client stub file (default is infile_c.c)
.IP \fB-c\fR
Generate proxy.
.IP \fB-P \fIfile\fR
Name of proxy file (default is infile_p.c)
.IP \fB-s\fR
Generate server stub.
.IP \fB-S \fIfile\fR
Name of server stub file (default is infile_s.c)
.PP
.B Preprocessor options: .B Preprocessor options:
.IP "\fB-I \fIpath\fR" .IP "\fB-I \fIpath\fR"
Add a header search dir to path. Multiple search Add a header search dir to path. Multiple search

View file

@ -66,11 +66,12 @@ enum attr_type
ATTR_DEFAULT, ATTR_DEFAULT,
ATTR_DEFAULTVALUE_EXPR, ATTR_DEFAULTVALUE_EXPR,
ATTR_DEFAULTVALUE_STRING, ATTR_DEFAULTVALUE_STRING,
ATTR_DISPINTERFACE,
ATTR_DLLNAME, ATTR_DLLNAME,
ATTR_DUAL, ATTR_DUAL,
ATTR_ENDPOINT, ATTR_ENDPOINT,
ATTR_ENTRY_STRING,
ATTR_ENTRY_ORDINAL, ATTR_ENTRY_ORDINAL,
ATTR_ENTRY_STRING,
ATTR_EXPLICIT_HANDLE, ATTR_EXPLICIT_HANDLE,
ATTR_HANDLE, ATTR_HANDLE,
ATTR_HELPCONTEXT, ATTR_HELPCONTEXT,
@ -115,8 +116,7 @@ enum attr_type
ATTR_V1ENUM, ATTR_V1ENUM,
ATTR_VARARG, ATTR_VARARG,
ATTR_VERSION, ATTR_VERSION,
ATTR_WIREMARSHAL, ATTR_WIREMARSHAL
ATTR_DISPINTERFACE
}; };
enum expr_type enum expr_type

File diff suppressed because it is too large Load diff

View file

@ -1,307 +1,148 @@
/* A Bison parser, made by GNU Bison 1.875. */ #ifndef BISON_Y_TAB_H
# define BISON_Y_TAB_H
/* Skeleton parser for Yacc-like parsing with Bison,
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc. #ifndef YYSTYPE
typedef union {
This program is free software; you can redistribute it and/or modify attr_t *attr;
it under the terms of the GNU General Public License as published by expr_t *expr;
the Free Software Foundation; either version 2, or (at your option) type_t *type;
any later version. typeref_t *tref;
var_t *var;
This program is distributed in the hope that it will be useful, func_t *func;
but WITHOUT ANY WARRANTY; without even the implied warranty of ifref_t *ifref;
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the class_t *clas;
GNU General Public License for more details. char *str;
UUID *uuid;
You should have received a copy of the GNU General Public License unsigned int num;
along with this program; if not, write to the Free Software } yystype;
Foundation, Inc., 59 Temple Place - Suite 330, # define YYSTYPE yystype
Boston, MA 02111-1307, USA. */ # define YYSTYPE_IS_TRIVIAL 1
#endif
/* As a special exception, when this file is copied by Bison into a # define aIDENTIFIER 257
Bison output file, you may use that output file without restriction. # define aKNOWNTYPE 258
This special exception was added by the Free Software Foundation # define aNUM 259
in version 1.24 of Bison. */ # define aHEXNUM 260
# define aSTRING 261
/* Tokens. */ # define aUUID 262
#ifndef YYTOKENTYPE # define aEOF 263
# define YYTOKENTYPE # define SHL 264
/* Put the tokens into the symbol table, so that GDB and other debuggers # define SHR 265
know about them. */ # define tAGGREGATABLE 266
enum yytokentype { # define tALLOCATE 267
aIDENTIFIER = 258, # define tAPPOBJECT 268
aKNOWNTYPE = 259, # define tARRAYS 269
aNUM = 260, # define tASYNC 270
aHEXNUM = 261, # define tASYNCUUID 271
aSTRING = 262, # define tAUTOHANDLE 272
aUUID = 263, # define tBINDABLE 273
aEOF = 264, # define tBOOLEAN 274
SHL = 265, # define tBROADCAST 275
SHR = 266, # define tBYTE 276
tAGGREGATABLE = 267, # define tBYTECOUNT 277
tALLOCATE = 268, # define tCALLAS 278
tAPPOBJECT = 269, # define tCALLBACK 279
tARRAYS = 270, # define tCASE 280
tASYNC = 271, # define tCDECL 281
tASYNCUUID = 272, # define tCHAR 282
tAUTOHANDLE = 273, # define tCOCLASS 283
tBINDABLE = 274, # define tCODE 284
tBOOLEAN = 275, # define tCOMMSTATUS 285
tBROADCAST = 276, # define tCONST 286
tBYTE = 277, # define tCONTEXTHANDLE 287
tBYTECOUNT = 278, # define tCONTEXTHANDLENOSERIALIZE 288
tCALLAS = 279, # define tCONTEXTHANDLESERIALIZE 289
tCALLBACK = 280, # define tCONTROL 290
tCASE = 281, # define tCPPQUOTE 291
tCDECL = 282, # define tDEFAULT 292
tCHAR = 283, # define tDEFAULTVALUE 293
tCOCLASS = 284, # define tDISPINTERFACE 294
tCODE = 285, # define tDLLNAME 295
tCOMMSTATUS = 286, # define tDOUBLE 296
tCONST = 287, # define tDUAL 297
tCONTEXTHANDLE = 288, # define tENDPOINT 298
tCONTEXTHANDLENOSERIALIZE = 289, # define tENTRY 299
tCONTEXTHANDLESERIALIZE = 290, # define tENUM 300
tCONTROL = 291, # define tERRORSTATUST 301
tCPPQUOTE = 292, # define tEXPLICITHANDLE 302
tDEFAULT = 293, # define tEXTERN 303
tDEFAULTVALUE = 294, # define tFLOAT 304
tDISPINTERFACE = 295, # define tHANDLE 305
tDLLNAME = 296, # define tHANDLET 306
tDOUBLE = 297, # define tHELPCONTEXT 307
tDUAL = 298, # define tHELPFILE 308
tENDPOINT = 299, # define tHELPSTRING 309
tENTRY = 300, # define tHELPSTRINGCONTEXT 310
tENUM = 301, # define tHELPSTRINGDLL 311
tERRORSTATUST = 302, # define tHIDDEN 312
tEXPLICITHANDLE = 303, # define tHYPER 313
tEXTERN = 304, # define tID 314
tFLOAT = 305, # define tIDEMPOTENT 315
tHANDLE = 306, # define tIIDIS 316
tHANDLET = 307, # define tIMPLICITHANDLE 317
tHELPCONTEXT = 308, # define tIMPORT 318
tHELPFILE = 309, # define tIMPORTLIB 319
tHELPSTRING = 310, # define tIN 320
tHELPSTRINGCONTEXT = 311, # define tINCLUDE 321
tHELPSTRINGDLL = 312, # define tINLINE 322
tHIDDEN = 313, # define tINPUTSYNC 323
tHYPER = 314, # define tINT 324
tID = 315, # define tINT64 325
tIDEMPOTENT = 316, # define tINTERFACE 326
tIIDIS = 317, # define tLENGTHIS 327
tIMPLICITHANDLE = 318, # define tLIBRARY 328
tIMPORT = 319, # define tLOCAL 329
tIMPORTLIB = 320, # define tLONG 330
tIN = 321, # define tMETHODS 331
tINCLUDE = 322, # define tMODULE 332
tINLINE = 323, # define tNONCREATABLE 333
tINPUTSYNC = 324, # define tOBJECT 334
tINT = 325, # define tODL 335
tINT64 = 326, # define tOLEAUTOMATION 336
tINTERFACE = 327, # define tOPTIONAL 337
tLENGTHIS = 328, # define tOUT 338
tLIBRARY = 329, # define tPOINTERDEFAULT 339
tLOCAL = 330, # define tPROPERTIES 340
tLONG = 331, # define tPROPGET 341
tMETHODS = 332, # define tPROPPUT 342
tMODULE = 333, # define tPROPPUTREF 343
tNONCREATABLE = 334, # define tPTR 344
tOBJECT = 335, # define tPUBLIC 345
tODL = 336, # define tREADONLY 346
tOLEAUTOMATION = 337, # define tREF 347
tOPTIONAL = 338, # define tRESTRICTED 348
tOUT = 339, # define tRETVAL 349
tPOINTERDEFAULT = 340, # define tSHORT 350
tPROPERTIES = 341, # define tSIGNED 351
tPROPGET = 342, # define tSINGLE 352
tPROPPUT = 343, # define tSIZEIS 353
tPROPPUTREF = 344, # define tSIZEOF 354
tPTR = 345, # define tSMALL 355
tPUBLIC = 346, # define tSOURCE 356
tREADONLY = 347, # define tSTDCALL 357
tREF = 348, # define tSTRING 358
tRESTRICTED = 349, # define tSTRUCT 359
tRETVAL = 350, # define tSWITCH 360
tSHORT = 351, # define tSWITCHIS 361
tSIGNED = 352, # define tSWITCHTYPE 362
tSIZEIS = 353, # define tTRANSMITAS 363
tSIZEOF = 354, # define tTYPEDEF 364
tSMALL = 355, # define tUNION 365
tSOURCE = 356, # define tUNIQUE 366
tSTDCALL = 357, # define tUNSIGNED 367
tSTRING = 358, # define tUUID 368
tSTRUCT = 359, # define tV1ENUM 369
tSWITCH = 360, # define tVARARG 370
tSWITCHIS = 361, # define tVERSION 371
tSWITCHTYPE = 362, # define tVOID 372
tTRANSMITAS = 363, # define tWCHAR 373
tTYPEDEF = 364, # define tWIREMARSHAL 374
tUNION = 365, # define tPOINTERTYPE 375
tUNIQUE = 366, # define COND 376
tUNSIGNED = 367, # define CAST 377
tUUID = 368, # define PPTR 378
tV1ENUM = 369, # define NEG 379
tVARARG = 370,
tVERSION = 371,
tVOID = 372, extern YYSTYPE yylval;
tWCHAR = 373,
tWIREMARSHAL = 374, #endif /* not BISON_Y_TAB_H */
tPOINTERTYPE = 375,
COND = 376,
CAST = 377,
PPTR = 378,
NEG = 379
};
#endif
#define aIDENTIFIER 258
#define aKNOWNTYPE 259
#define aNUM 260
#define aHEXNUM 261
#define aSTRING 262
#define aUUID 263
#define aEOF 264
#define SHL 265
#define SHR 266
#define tAGGREGATABLE 267
#define tALLOCATE 268
#define tAPPOBJECT 269
#define tARRAYS 270
#define tASYNC 271
#define tASYNCUUID 272
#define tAUTOHANDLE 273
#define tBINDABLE 274
#define tBOOLEAN 275
#define tBROADCAST 276
#define tBYTE 277
#define tBYTECOUNT 278
#define tCALLAS 279
#define tCALLBACK 280
#define tCASE 281
#define tCDECL 282
#define tCHAR 283
#define tCOCLASS 284
#define tCODE 285
#define tCOMMSTATUS 286
#define tCONST 287
#define tCONTEXTHANDLE 288
#define tCONTEXTHANDLENOSERIALIZE 289
#define tCONTEXTHANDLESERIALIZE 290
#define tCONTROL 291
#define tCPPQUOTE 292
#define tDEFAULT 293
#define tDEFAULTVALUE 294
#define tDISPINTERFACE 295
#define tDLLNAME 296
#define tDOUBLE 297
#define tDUAL 298
#define tENDPOINT 299
#define tENTRY 300
#define tENUM 301
#define tERRORSTATUST 302
#define tEXPLICITHANDLE 303
#define tEXTERN 304
#define tFLOAT 305
#define tHANDLE 306
#define tHANDLET 307
#define tHELPCONTEXT 308
#define tHELPFILE 309
#define tHELPSTRING 310
#define tHELPSTRINGCONTEXT 311
#define tHELPSTRINGDLL 312
#define tHIDDEN 313
#define tHYPER 314
#define tID 315
#define tIDEMPOTENT 316
#define tIIDIS 317
#define tIMPLICITHANDLE 318
#define tIMPORT 319
#define tIMPORTLIB 320
#define tIN 321
#define tINCLUDE 322
#define tINLINE 323
#define tINPUTSYNC 324
#define tINT 325
#define tINT64 326
#define tINTERFACE 327
#define tLENGTHIS 328
#define tLIBRARY 329
#define tLOCAL 330
#define tLONG 331
#define tMETHODS 332
#define tMODULE 333
#define tNONCREATABLE 334
#define tOBJECT 335
#define tODL 336
#define tOLEAUTOMATION 337
#define tOPTIONAL 338
#define tOUT 339
#define tPOINTERDEFAULT 340
#define tPROPERTIES 341
#define tPROPGET 342
#define tPROPPUT 343
#define tPROPPUTREF 344
#define tPTR 345
#define tPUBLIC 346
#define tREADONLY 347
#define tREF 348
#define tRESTRICTED 349
#define tRETVAL 350
#define tSHORT 351
#define tSIGNED 352
#define tSIZEIS 353
#define tSIZEOF 354
#define tSMALL 355
#define tSOURCE 356
#define tSTDCALL 357
#define tSTRING 358
#define tSTRUCT 359
#define tSWITCH 360
#define tSWITCHIS 361
#define tSWITCHTYPE 362
#define tTRANSMITAS 363
#define tTYPEDEF 364
#define tUNION 365
#define tUNIQUE 366
#define tUNSIGNED 367
#define tUUID 368
#define tV1ENUM 369
#define tVARARG 370
#define tVERSION 371
#define tVOID 372
#define tWCHAR 373
#define tWIREMARSHAL 374
#define tPOINTERTYPE 375
#define COND 376
#define CAST 377
#define PPTR 378
#define NEG 379
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
#line 106 "parser.y"
typedef union YYSTYPE {
attr_t *attr;
expr_t *expr;
type_t *type;
typeref_t *tref;
var_t *var;
func_t *func;
ifref_t *ifref;
class_t *clas;
char *str;
UUID *uuid;
unsigned int num;
} YYSTYPE;
/* Line 1248 of yacc.c. */
#line 298 "y.tab.h"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif
extern YYSTYPE yylval;