Fix grammar of the size_is attribute so that size_is(*Length) gets accepted. 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 _____
Modified: trunk/reactos/tools/widl/ChangeLog --- 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 _____
Modified: trunk/reactos/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 _____
Modified: trunk/reactos/tools/widl/lex.yy.c --- 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 _____
Modified: trunk/reactos/tools/widl/parser.y --- 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); } _____
Modified: trunk/reactos/tools/widl/proxy.c --- 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. _____
Modified: trunk/reactos/tools/widl/server.c --- 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 _____
Modified: trunk/reactos/tools/widl/y.tab.c --- 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]