Modified: trunk/reactos/tools/widl/ChangeLog
Modified: trunk/reactos/tools/widl/client.c
Modified: trunk/reactos/tools/widl/lex.yy.c
Modified: trunk/reactos/tools/widl/parser.y
Modified: trunk/reactos/tools/widl/proxy.c
Modified: trunk/reactos/tools/widl/server.c
Modified: trunk/reactos/tools/widl/y.tab.c
Modified: trunk/reactos/tools/widl/y.tab.h
--- trunk/reactos/tools/widl/ChangeLog 2005-07-24 21:42:00 UTC (rev 16720)
+++ trunk/reactos/tools/widl/ChangeLog 2005-07-24 22:17:02 UTC (rev 16721)
@@ -1,5 +1,17 @@
ChangeLog
+2005-07-25 ekohl
+
+ tools/widl/client.c
+ tools/widl/lex.yy.c
+ tools/widl/parser.y
+ tools/widl/proxy.c
+ tools/widl/server.c
+ tools/widl/y.tab.c
+ tools/widl/y.tab.h
+
+- Fix grammar of the size_is attribute so that size_is(*Length) gets accepted.
+
2005-07-23 ekohl
tools/widl/client.c
--- trunk/reactos/tools/widl/client.c 2005-07-24 21:42:00 UTC (rev 16720)
+++ trunk/reactos/tools/widl/client.c 2005-07-24 22:17:02 UTC (rev 16721)
@@ -522,7 +522,7 @@
{
unsigned char type_type = 0;
- type = get_type_by_name(func, ((expr_t *)sizeis_attr)->u.sval);
+ type = get_type_by_name(func, ((var_t *)sizeis_attr)->name);
if (type != NULL)
type_type = type->type;
@@ -541,10 +541,10 @@
fprintf(client, "#ifndef _ALPHA_\n");
print_client("NdrFcShort(0x%02X),\n",
- get_var_stack_offset_32(func, ((expr_t *)sizeis_attr)->u.sval));
+ get_var_stack_offset_32(func, ((var_t *)sizeis_attr)->name));
fprintf(client, "#else\n");
print_client("NdrFcShort(0x%02X),\n",
- get_var_stack_offset_64(func, ((expr_t *)sizeis_attr)->u.sval));
+ get_var_stack_offset_64(func, ((var_t *)sizeis_attr)->name));
fprintf(client, "#endif\n");
}
else
--- trunk/reactos/tools/widl/lex.yy.c 2005-07-24 21:42:00 UTC (rev 16720)
+++ trunk/reactos/tools/widl/lex.yy.c 2005-07-24 22:17:02 UTC (rev 16721)
@@ -1,3 +1,4 @@
+#line 2 "lex.yy.c"
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
@@ -9,7 +10,6 @@
#define YY_FLEX_MINOR_VERSION 5
#include <stdio.h>
-#include <unistd.h>
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
@@ -23,6 +23,7 @@
#ifdef __cplusplus
#include <stdlib.h>
+#include <unistd.h>
/* Use prototypes in function declarations. */
#define YY_USE_PROTOS
@@ -3087,7 +3088,7 @@
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
-#line 1 "./parser.l"
+#line 1 "parser.l"
#define INITIAL 0
/*
* IDL Compiler
@@ -3114,7 +3115,7 @@
#define pp_line 2
-#line 36 "./parser.l"
+#line 36 "parser.l"
#include "config.h"
@@ -3185,7 +3186,7 @@
* The flexer starts here
**************************************************************************
*/
-#line 3189 "lex.yy.c"
+#line 3190 "lex.yy.c"
/* Macros after this point can all be overridden by user definitions in
* section 1.
@@ -3336,12 +3337,12 @@
YY_DECL
{
register yy_state_type yy_current_state;
- register char *yy_cp = NULL, *yy_bp = NULL;
+ register char *yy_cp, *yy_bp;
register int yy_act;
-#line 108 "./parser.l"
+#line 108 "parser.l"
-#line 3345 "lex.yy.c"
+#line 3346 "lex.yy.c"
if ( yy_init )
{
@@ -3430,12 +3431,12 @@
case 1:
YY_RULE_SETUP
-#line 109 "./parser.l"
+#line 109 "parser.l"
yy_push_state(pp_line);
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 110 "./parser.l"
+#line 110 "parser.l"
{
int lineno;
char *cptr, *fname;
@@ -3458,12 +3459,12 @@
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 129 "./parser.l"
+#line 129 "parser.l"
yy_push_state(QUOTE); cbufidx = 0;
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 130 "./parser.l"
+#line 130 "parser.l"
{
yy_pop_state();
yylval.str = get_buffered_cstring();
@@ -3471,25 +3472,25 @@
}
YY_BREAK
case 5:
-#line 136 "./parser.l"
+#line 136 "parser.l"
case 6:
YY_RULE_SETUP
-#line 136 "./parser.l"
+#line 136 "parser.l"
addcchar(yytext[1]);
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 137 "./parser.l"
+#line 137 "parser.l"
addcchar('\\'); addcchar(yytext[1]);
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 138 "./parser.l"
+#line 138 "parser.l"
addcchar(yytext[0]);
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 139 "./parser.l"
+#line 139 "parser.l"
{
yylval.uuid = parse_uuid(yytext);
return aUUID;
@@ -3497,7 +3498,7 @@
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 143 "./parser.l"
+#line 143 "parser.l"
{
yylval.num = strtoul(yytext, NULL, 0);
return aHEXNUM;
@@ -3505,7 +3506,7 @@
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 147 "./parser.l"
+#line 147 "parser.l"
{
yylval.num = strtoul(yytext, NULL, 0);
return aNUM;
@@ -3513,38 +3514,38 @@
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 151 "./parser.l"
+#line 151 "parser.l"
return kw_token(yytext);
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 152 "./parser.l"
+#line 152 "parser.l"
line_number++;
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 153 "./parser.l"
+#line 153 "parser.l"
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 154 "./parser.l"
+#line 154 "parser.l"
return SHL;
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 155 "./parser.l"
+#line 155 "parser.l"
return SHR;
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 156 "./parser.l"
+#line 156 "parser.l"
return yytext[0];
YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(QUOTE):
case YY_STATE_EOF(pp_line):
-#line 157 "./parser.l"
+#line 157 "parser.l"
{
if (import_stack_ptr) {
pop_import();
@@ -3555,10 +3556,10 @@
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 164 "./parser.l"
+#line 164 "parser.l"
ECHO;
YY_BREAK
-#line 3562 "lex.yy.c"
+#line 3563 "lex.yy.c"
case YY_END_OF_BUFFER:
{
@@ -3934,7 +3935,6 @@
#endif /* ifndef YY_NO_UNPUT */
-#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput()
#else
@@ -4007,8 +4007,8 @@
return c;
}
-#endif /* YY_NO_INPUT */
+
#ifdef YY_USE_PROTOS
void yyrestart( FILE *input_file )
#else
@@ -4118,6 +4118,11 @@
}
+#ifndef YY_ALWAYS_INTERACTIVE
+#ifndef YY_NEVER_INTERACTIVE
+extern int isatty YY_PROTO(( int ));
+#endif
+#endif
#ifdef YY_USE_PROTOS
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
@@ -4435,7 +4440,7 @@
return 0;
}
#endif
-#line 164 "./parser.l"
+#line 164 "parser.l"
#ifndef yywrap
--- trunk/reactos/tools/widl/parser.y 2005-07-24 21:42:00 UTC (rev 16720)
+++ trunk/reactos/tools/widl/parser.y 2005-07-24 22:17:02 UTC (rev 16721)
@@ -363,7 +363,7 @@
| tIMPLICITHANDLE '(' tHANDLET aIDENTIFIER ')' { $$ = make_attrp(ATTR_IMPLICIT_HANDLE, $4); }
| tIN { $$ = make_attr(ATTR_IN); }
| tINPUTSYNC { $$ = make_attr(ATTR_INPUTSYNC); }
- | tLENGTHIS '(' m_exprs ')' { $$ = make_attrp(ATTR_LENGTHIS, $3); }
+ | tLENGTHIS '(' pident_list ')' { $$ = make_attrp(ATTR_LENGTHIS, $3); }
| tLOCAL { $$ = make_attr(ATTR_LOCAL); }
| tNONCREATABLE { $$ = make_attr(ATTR_NONCREATABLE); }
| tOBJECT { $$ = make_attr(ATTR_OBJECT); }
@@ -381,7 +381,7 @@
| tREF { $$ = make_attr(ATTR_REF); }
| tRESTRICTED { $$ = make_attr(ATTR_RESTRICTED); }
| tRETVAL { $$ = make_attr(ATTR_RETVAL); }
- | tSIZEIS '(' m_exprs ')' { $$ = make_attrp(ATTR_SIZEIS, $3); }
+ | tSIZEIS '(' pident_list ')' { $$ = make_attrp(ATTR_SIZEIS, $3); }
| tSOURCE { $$ = make_attr(ATTR_SOURCE); }
| tSTRING { $$ = make_attr(ATTR_STRING); }
| tSWITCHIS '(' expr ')' { $$ = make_attrp(ATTR_SWITCHIS, $3); }
--- trunk/reactos/tools/widl/proxy.c 2005-07-24 21:42:00 UTC (rev 16720)
+++ trunk/reactos/tools/widl/proxy.c 2005-07-24 22:17:02 UTC (rev 16721)
@@ -206,13 +206,13 @@
{
int index = 0;
type_t *type = get_base_type(arg);
- expr_t *expr;
+ var_t *var;
- expr = get_attrp( arg->attrs, ATTR_SIZEIS );
- if (expr)
+ var = get_attrp( arg->attrs, ATTR_SIZEIS );
+ if (var)
{
print_proxy( "_StubMsg.MaxCount = ", arg->name );
- write_expr(proxy, expr);
+ write_name(proxy, var);
fprintf(proxy, ";\n\n");
print_proxy( "NdrConformantArrayBufferSize( &_StubMsg, (unsigned char*)%s, ", arg->name );
fprintf(proxy, "&__MIDL_TypeFormatString.Format[%d]);\n", index );
@@ -238,7 +238,7 @@
case RPC_FC_ENUM32:
print_proxy( "_StubMsg.BufferLength += %d; /* %s */\n", 4, arg->name );
break;
-
+
case RPC_FC_STRUCT:
print_proxy( "NdrSimpleStructBufferSize(&_StubMsg, (unsigned char*)%s, ", arg->name );
fprintf(proxy, "&__MIDL_TypeFormatString.Format[%d] );\n", index );
@@ -285,7 +285,7 @@
END_OF_LIST(arg);
while (arg) {
- if (is_attr(arg->attrs, ATTR_IN))
+ if (is_attr(arg->attrs, ATTR_IN))
{
marshall_size_arg( arg );
fprintf(proxy, "\n");
@@ -298,13 +298,13 @@
{
int index = 0;
type_t *type = get_base_type(arg);
- expr_t *expr;
+ var_t *var;
- expr = get_attrp( arg->attrs, ATTR_SIZEIS );
- if (expr)
+ var = get_attrp( arg->attrs, ATTR_SIZEIS );
+ if (var)
{
print_proxy( "_StubMsg.MaxCount = ", arg->name );
- write_expr(proxy, expr);
+ write_name(proxy, var);
fprintf(proxy, ";\n\n");
print_proxy( "NdrConformantArrayMarshall( &_StubMsg, (unsigned char*)%s, ", arg->name );
fprintf(proxy, "&__MIDL_TypeFormatString.Format[%d]);\n", index );
@@ -326,7 +326,7 @@
write_type(proxy, arg->type, arg, arg->tname);
fprintf(proxy,"*)_StubMsg.Buffer)++ = %s;\n", arg->name );
break;
-
+
case RPC_FC_STRUCT:
/* FIXME: add the format string, and set the index below */
print_proxy( "NdrSimpleStructMarshall(&_StubMsg, (unsigned char*)%s, ", arg->name );
@@ -370,7 +370,7 @@
{
END_OF_LIST(arg);
while (arg) {
- if (is_attr(arg->attrs, ATTR_IN))
+ if (is_attr(arg->attrs, ATTR_IN))
{
marshall_copy_arg( arg );
fprintf(proxy, "\n");
@@ -397,10 +397,10 @@
{
int index = 0;
type_t *type = get_base_type(arg);
- expr_t *expr;
+ var_t *var;
- expr = get_attrp( arg->attrs, ATTR_SIZEIS );
- if (expr)
+ var = get_attrp( arg->attrs, ATTR_SIZEIS );
+ if (var)
{
print_proxy( "NdrConformantArrayUnmarshall( &_StubMsg, (unsigned char*)%s, ", arg->name );
fprintf(proxy, "&__MIDL_TypeFormatString.Format[%d]);\n", index );
@@ -422,7 +422,7 @@
write_type(proxy, arg->type, arg, arg->tname);
fprintf(proxy,"*)_StubMsg.Buffer)++;\n");
break;
-
+
case RPC_FC_STRUCT:
print_proxy( "NdrSimpleStructUnmarshall(&_StubMsg, (unsigned char**)%s, ", arg->name );
fprintf(proxy, "&__MIDL_TypeFormatString.Format[%d], 0);\n", index );
@@ -467,7 +467,7 @@
{
END_OF_LIST(arg);
while (arg) {
- if (is_attr(arg->attrs, ATTR_OUT))
+ if (is_attr(arg->attrs, ATTR_OUT))
{
unmarshall_copy_arg( arg );
fprintf(proxy, "\n");
@@ -481,13 +481,13 @@
var_t *constraint;
int index = 0; /* FIXME */
type_t *type;
- expr_t *expr;
+ var_t *var;
- expr = get_attrp( arg->attrs, ATTR_SIZEIS );
- if (expr)
+ var = get_attrp( arg->attrs, ATTR_SIZEIS );
+ if (var)
{
print_proxy( "_StubMsg.MaxCount = ", arg->name );
- write_expr(proxy, expr);
+ write_name(proxy, var);
fprintf(proxy, ";\n\n");
print_proxy( "NdrClearOutParameters( &_StubMsg, ");
fprintf(proxy, "&__MIDL_TypeFormatString.Format[%d], ", index );
@@ -529,7 +529,7 @@
{
END_OF_LIST(arg);
while (arg) {
- if (is_attr(arg->attrs, ATTR_OUT))
+ if (is_attr(arg->attrs, ATTR_OUT))
{
free_variable( arg );
fprintf(proxy, "\n");
@@ -587,7 +587,7 @@
gen_unmarshall( cur->args );
if (has_ret) {
- /*
+ /*
* FIXME: We only need to round the buffer up if it could be unaligned...
* We should calculate how much buffer we used and output the following
* line only if necessary.
@@ -790,7 +790,7 @@
fprintf(proxy, "\n");
if (has_ret) {
- /*
+ /*
* FIXME: We only need to round the buffer up if it could be unaligned...
* We should calculate how much buffer we used and output the following
* line only if necessary.
--- trunk/reactos/tools/widl/server.c 2005-07-24 21:42:00 UTC (rev 16720)
+++ trunk/reactos/tools/widl/server.c 2005-07-24 22:17:02 UTC (rev 16721)
@@ -113,7 +113,7 @@
get_var_type_offset(var_t *var)
{
unsigned int toffset = 0;
- void *size_is_attr;
+ void *sizeis_attr;
int string_attr;
if (var->ptr_level == 0)
@@ -138,10 +138,10 @@
}
else if (var->ptr_level == 1)
{
- size_is_attr = get_attrp(var->attrs, ATTR_SIZEIS);
+ sizeis_attr = get_attrp(var->attrs, ATTR_SIZEIS);
string_attr = is_attr(var->attrs, ATTR_STRING);
- if (size_is_attr)
+ if (sizeis_attr)
{
if (string_attr)
{
@@ -519,7 +519,7 @@
{
unsigned char type_type = 0;
- type = get_type_by_name(func, ((expr_t *)sizeis_attr)->u.sval);
+ type = get_type_by_name(func, ((var_t *)sizeis_attr)->name);
if (type != NULL)
type_type = type->type;
@@ -538,10 +538,10 @@
fprintf(server, "#ifndef _ALPHA_\n");
print_server("NdrFcShort(0x%02X),\n",
- get_var_stack_offset_32(func, ((expr_t *)sizeis_attr)->u.sval));
+ get_var_stack_offset_32(func, ((var_t *)sizeis_attr)->name));
fprintf(server, "#else\n");
print_server("NdrFcShort(0x%02X),\n",
- get_var_stack_offset_64(func, ((expr_t *)sizeis_attr)->u.sval));
+ get_var_stack_offset_64(func, ((var_t *)sizeis_attr)->name));
fprintf(server, "#endif\n");
}
else
@@ -815,7 +815,7 @@
var->type->type == RPC_FC_CHAR ||
var->type->type == RPC_FC_WCHAR))
{
- print_server("_StubMsg.MaxCount = %s;\n", ((expr_t *)sizeis_attr)->u.sval);
+ print_server("_StubMsg.MaxCount = %s;\n", ((var_t *)sizeis_attr)->name);
fprintf(server, "\n");
print_server("NdrConformantStringBufferSize(\n");
indent++;
@@ -1160,7 +1160,7 @@
if (string_attr)
{
fprintf(server, "\n");
- print_server("_StubMsg.MaxCount = %s;\n", ((expr_t *)sizeis_attr)->u.sval);
+ print_server("_StubMsg.MaxCount = %s;\n", ((var_t *)sizeis_attr)->name);
fprintf(server, "\n");
print_server("NdrConformantStringMarshall(\n");
indent++;
@@ -1360,7 +1360,7 @@
indent++;
if (string_attr)
{
- print_server("_StubMsg.MaxCount = %s;\n", ((expr_t *)sizeis_attr)->u.sval);
+ print_server("_StubMsg.MaxCount = %s;\n", ((var_t *)sizeis_attr)->name);
fprintf(server, "\n");
print_server("NdrPointerFree(\n");
indent++;
@@ -1406,7 +1406,7 @@
unsigned int i, sep;
int in_attr;
int out_attr;
- void *size_is_attr;
+ void *sizeis_attr;
while (NEXT_LINK(func)) func = NEXT_LINK(func);
while (func)
@@ -1462,11 +1462,11 @@
{
in_attr = is_attr(var->attrs, ATTR_IN);
out_attr = is_attr(var->attrs, ATTR_OUT);
- size_is_attr = get_attrp(var->attrs, ATTR_SIZEIS);
+ sizeis_attr = get_attrp(var->attrs, ATTR_SIZEIS);
if (!out_attr && !in_attr)
in_attr = 1;
- if (!in_attr && !size_is_attr)
+ if (!in_attr && !sizeis_attr)
{
if (var->type->type == RPC_FC_RP)
{
@@ -1567,16 +1567,16 @@
if (!out_attr && !in_attr)
in_attr = 1;
- size_is_attr = get_attrp(var->attrs, ATTR_SIZEIS);
+ sizeis_attr = get_attrp(var->attrs, ATTR_SIZEIS);
if (!in_attr)
{
- if (size_is_attr != NULL)
+ if (sizeis_attr != NULL)
{
print_server("");
write_name(server, var);
fprintf(server, " = NdrAllocate(&_StubMsg, %s * %d);\n",
- ((expr_t *)size_is_attr)->u.sval, get_type_size(var->type, 1));
+ ((var_t *)sizeis_attr)->name, get_type_size(var->type, 1));
sep = 1;
}
else
--- trunk/reactos/tools/widl/y.tab.c 2005-07-24 21:42:00 UTC (rev 16720)
+++ trunk/reactos/tools/widl/y.tab.c 2005-07-24 22:17:02 UTC (rev 16721)
@@ -1,134 +1,313 @@
-/* A Bison parser, made from ./parser.y
- by GNU bison 1.35. */
+/* A Bison parser, made by GNU Bison 1.875. */
-#define YYBISON 1 /* Identify Bison output. */
+/* Skeleton parser for Yacc-like parsing with Bison,
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
-# define aIDENTIFIER 257
-# define aKNOWNTYPE 258
-# define aNUM 259
-# define aHEXNUM 260
-# define aSTRING 261
-# define aUUID 262
-# define aEOF 263
-# define SHL 264
-# define SHR 265
-# define tAGGREGATABLE 266
-# define tALLOCATE 267
-# define tAPPOBJECT 268
-# define tARRAYS 269
-# define tASYNC 270
-# define tASYNCUUID 271
-# define tAUTOHANDLE 272
-# define tBINDABLE 273
-# define tBOOLEAN 274
-# define tBROADCAST 275
-# define tBYTE 276
-# define tBYTECOUNT 277
-# define tCALLAS 278
-# define tCALLBACK 279
-# define tCASE 280
-# define tCDECL 281
-# define tCHAR 282
-# define tCOCLASS 283
-# define tCODE 284
-# define tCOMMSTATUS 285
-# define tCONST 286
-# define tCONTEXTHANDLE 287
-# define tCONTEXTHANDLENOSERIALIZE 288
-# define tCONTEXTHANDLESERIALIZE 289
-# define tCONTROL 290
-# define tCPPQUOTE 291
-# define tDEFAULT 292
-# define tDEFAULTVALUE 293
-# define tDISPINTERFACE 294
-# define tDLLNAME 295
-# define tDOUBLE 296
-# define tDUAL 297
-# define tENDPOINT 298
-# define tENTRY 299
-# define tENUM 300
-# define tERRORSTATUST 301
-# define tEXPLICITHANDLE 302
-# define tEXTERN 303
-# define tFLOAT 304
-# define tHANDLE 305
-# define tHANDLET 306
-# define tHELPCONTEXT 307
-# define tHELPFILE 308
-# define tHELPSTRING 309
-# define tHELPSTRINGCONTEXT 310
-# define tHELPSTRINGDLL 311
-# define tHIDDEN 312
-# define tHYPER 313
-# define tID 314
-# define tIDEMPOTENT 315
-# define tIIDIS 316
-# define tIMPLICITHANDLE 317
-# define tIMPORT 318
-# define tIMPORTLIB 319
-# define tIN 320
-# define tINCLUDE 321
-# define tINLINE 322
-# define tINPUTSYNC 323
-# define tINT 324
-# define tINT64 325
-# define tINTERFACE 326
-# define tLENGTHIS 327
-# define tLIBRARY 328
-# define tLOCAL 329
-# define tLONG 330
-# define tMETHODS 331
-# define tMODULE 332
-# define tNONCREATABLE 333
-# define tOBJECT 334
-# define tODL 335
-# define tOLEAUTOMATION 336
-# define tOPTIONAL 337
-# define tOUT 338
-# define tPOINTERDEFAULT 339
-# define tPROPERTIES 340
-# define tPROPGET 341
-# define tPROPPUT 342
-# define tPROPPUTREF 343
-# define tPTR 344
-# define tPUBLIC 345
-# define tREADONLY 346
-# define tREF 347
-# define tRESTRICTED 348
-# define tRETVAL 349
-# define tSHORT 350
-# define tSIGNED 351
-# define tSINGLE 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
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
-#line 1 "./parser.y"
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+/* Written by Richard Stallman by simplifying the original so called
+ ``semantic'' parser. */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+ variables, as they might otherwise be expanded by user macros.
+ There are some unavoidable exceptions within include files to
+ define necessary library symbols; they are noted "INFRINGES ON
+ USER NAME SPACE" below. */
+
+/* Identify Bison output. */
+#define YYBISON 1
+
+/* Skeleton name. */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers. */
+#define YYPURE 0
+
+/* Using locations. */
+#define YYLSP_NEEDED 0
+
+
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ aIDENTIFIER = 258,
+ aKNOWNTYPE = 259,
+ aNUM = 260,
+ aHEXNUM = 261,
+ aSTRING = 262,
+ aUUID = 263,
+ aEOF = 264,
+ SHL = 265,
+ SHR = 266,
+ tAGGREGATABLE = 267,
+ tALLOCATE = 268,
+ tAPPOBJECT = 269,
+ tARRAYS = 270,
+ tASYNC = 271,
+ tASYNCUUID = 272,
+ tAUTOHANDLE = 273,
+ tBINDABLE = 274,
+ tBOOLEAN = 275,
+ tBROADCAST = 276,
+ tBYTE = 277,
+ tBYTECOUNT = 278,
+ tCALLAS = 279,
+ tCALLBACK = 280,
+ tCASE = 281,
+ tCDECL = 282,
+ tCHAR = 283,
+ tCOCLASS = 284,
+ tCODE = 285,
+ tCOMMSTATUS = 286,
+ tCONST = 287,
+ tCONTEXTHANDLE = 288,
+ tCONTEXTHANDLENOSERIALIZE = 289,
+ tCONTEXTHANDLESERIALIZE = 290,
+ tCONTROL = 291,
+ tCPPQUOTE = 292,
+ tDEFAULT = 293,
+ tDEFAULTVALUE = 294,
+ tDISPINTERFACE = 295,
+ tDLLNAME = 296,
+ tDOUBLE = 297,
+ tDUAL = 298,
+ tENDPOINT = 299,
+ tENTRY = 300,
+ tENUM = 301,
+ tERRORSTATUST = 302,
+ tEXPLICITHANDLE = 303,
+ tEXTERN = 304,
+ tFLOAT = 305,
+ tHANDLE = 306,
+ tHANDLET = 307,
+ tHELPCONTEXT = 308,
+ tHELPFILE = 309,
+ tHELPSTRING = 310,
+ tHELPSTRINGCONTEXT = 311,
+ tHELPSTRINGDLL = 312,
+ tHIDDEN = 313,
+ tHYPER = 314,
+ tID = 315,
+ tIDEMPOTENT = 316,
+ tIIDIS = 317,
+ tIMPLICITHANDLE = 318,
+ tIMPORT = 319,
+ tIMPORTLIB = 320,
+ tIN = 321,
+ tINCLUDE = 322,
+ tINLINE = 323,
+ tINPUTSYNC = 324,
+ tINT = 325,
+ tINT64 = 326,
+ tINTERFACE = 327,
+ tLENGTHIS = 328,
+ tLIBRARY = 329,
+ tLOCAL = 330,
+ tLONG = 331,
+ tMETHODS = 332,
+ tMODULE = 333,
+ tNONCREATABLE = 334,
+ tOBJECT = 335,
+ tODL = 336,
+ tOLEAUTOMATION = 337,
+ tOPTIONAL = 338,
+ tOUT = 339,
+ tPOINTERDEFAULT = 340,
+ tPROPERTIES = 341,
+ tPROPGET = 342,
+ tPROPPUT = 343,
+ tPROPPUTREF = 344,
+ tPTR = 345,
+ tPUBLIC = 346,
+ tREADONLY = 347,
+ tREF = 348,
+ tRESTRICTED = 349,
+ tRETVAL = 350,
+ tSHORT = 351,
+ tSIGNED = 352,
+ tSINGLE = 353,
+ tSIZEIS = 354,
+ tSIZEOF = 355,
+ tSMALL = 356,
+ tSOURCE = 357,
+ tSTDCALL = 358,
+ tSTRING = 359,
+ tSTRUCT = 360,
+ tSWITCH = 361,
+ tSWITCHIS = 362,
+ tSWITCHTYPE = 363,
+ tTRANSMITAS = 364,
+ tTYPEDEF = 365,
+ tUNION = 366,
+ tUNIQUE = 367,
+ tUNSIGNED = 368,
+ tUUID = 369,
+ tV1ENUM = 370,
+ tVARARG = 371,
+ tVERSION = 372,
+ tVOID = 373,
+ tWCHAR = 374,
+ tWIREMARSHAL = 375,
+ tPOINTERTYPE = 376,
+ COND = 377,
+ CAST = 378,
+ PPTR = 379,
+ NEG = 380
+ };
+#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 tSINGLE 353
+#define tSIZEIS 354
+#define tSIZEOF 355
+#define tSMALL 356
+#define tSOURCE 357
+#define tSTDCALL 358
+#define tSTRING 359
[truncated at 1000 lines; 4948 more skipped]