https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e0b80a0929ec41313ac65…
commit e0b80a0929ec41313ac65ce2cc844f0f8703feca
Author: Amine Khaldi <amine.khaldi(a)reactos.org>
AuthorDate: Sat Jan 20 13:39:40 2018 +0100
Commit: Amine Khaldi <amine.khaldi(a)reactos.org>
CommitDate: Sat Jan 20 13:39:40 2018 +0100
[VBSCRIPT] Sync with Wine 3.0. CORE-14225
---
dll/win32/vbscript/CMakeLists.txt | 1 +
dll/win32/vbscript/global.c | 80 ++-
dll/win32/vbscript/interp.c | 59 +-
dll/win32/vbscript/parser.tab.c | 1286 +++++++++++++++++++------------------
dll/win32/vbscript/parser.tab.h | 8 +-
dll/win32/vbscript/parser.y | 35 +-
dll/win32/vbscript/utils.c | 189 ++++++
dll/win32/vbscript/vbdisp.c | 2 +-
dll/win32/vbscript/vbscript.c | 3 +
dll/win32/vbscript/vbscript.h | 2 +
media/doc/README.WINE | 2 +-
11 files changed, 973 insertions(+), 694 deletions(-)
diff --git a/dll/win32/vbscript/CMakeLists.txt b/dll/win32/vbscript/CMakeLists.txt
index 81ba90b372..99df1c3163 100644
--- a/dll/win32/vbscript/CMakeLists.txt
+++ b/dll/win32/vbscript/CMakeLists.txt
@@ -10,6 +10,7 @@ list(APPEND SOURCE
lex.c
parser.tab.c
regexp.c
+ utils.c
vbdisp.c
vbregexp.c
vbscript.c
diff --git a/dll/win32/vbscript/global.c b/dll/win32/vbscript/global.c
index 1534805259..16bd9bbd20 100644
--- a/dll/win32/vbscript/global.c
+++ b/dll/win32/vbscript/global.c
@@ -815,8 +815,40 @@ static HRESULT Global_LBound(vbdisp_t *This, VARIANT *arg, unsigned
args_cnt, VA
static HRESULT Global_UBound(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT
*res)
{
- FIXME("\n");
- return E_NOTIMPL;
+ SAFEARRAY *sa;
+ HRESULT hres;
+ LONG ubound;
+ int dim;
+
+ assert(args_cnt == 1 || args_cnt == 2);
+
+ TRACE("%s %s\n", debugstr_variant(arg), args_cnt == 2 ?
debugstr_variant(arg + 1) : "1");
+
+ switch(V_VT(arg)) {
+ case VT_VARIANT|VT_ARRAY:
+ sa = V_ARRAY(arg);
+ break;
+ case VT_VARIANT|VT_ARRAY|VT_BYREF:
+ sa = *V_ARRAYREF(arg);
+ break;
+ default:
+ FIXME("arg %s not supported\n", debugstr_variant(arg));
+ return E_NOTIMPL;
+ }
+
+ if(args_cnt == 2) {
+ hres = to_int(arg + 1, &dim);
+ if(FAILED(hres))
+ return hres;
+ }else {
+ dim = 1;
+ }
+
+ hres = SafeArrayGetUBound(sa, dim, &ubound);
+ if(FAILED(hres))
+ return hres;
+
+ return return_int(res, ubound);
}
static HRESULT Global_RGB(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)
@@ -1785,8 +1817,44 @@ static HRESULT Global_TypeName(vbdisp_t *This, VARIANT *arg,
unsigned args_cnt,
static HRESULT Global_Array(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT
*res)
{
- FIXME("\n");
- return E_NOTIMPL;
+ SAFEARRAYBOUND bounds;
+ SAFEARRAY *sa;
+ VARIANT *data;
+ HRESULT hres;
+ unsigned i;
+
+ TRACE("arg_cnt=%u\n", args_cnt);
+
+ bounds.lLbound = 0;
+ bounds.cElements = args_cnt;
+ sa = SafeArrayCreate(VT_VARIANT, 1, &bounds);
+ if(!sa)
+ return E_OUTOFMEMORY;
+
+ hres = SafeArrayAccessData(sa, (void**)&data);
+ if(FAILED(hres)) {
+ SafeArrayDestroy(sa);
+ return hres;
+ }
+
+ for(i=0; i<args_cnt; i++) {
+ hres = VariantCopyInd(data+i, arg+i);
+ if(FAILED(hres)) {
+ SafeArrayUnaccessData(sa);
+ SafeArrayDestroy(sa);
+ return hres;
+ }
+ }
+ SafeArrayUnaccessData(sa);
+
+ if(res) {
+ V_VT(res) = VT_ARRAY|VT_VARIANT;
+ V_ARRAY(res) = sa;
+ }else {
+ SafeArrayDestroy(sa);
+ }
+
+ return S_OK;
}
static HRESULT Global_Erase(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT
*res)
@@ -2213,7 +2281,7 @@ static const builtin_prop_t global_props[] = {
{DISPID_GLOBAL_RND, Global_Rnd, 0, 1},
{DISPID_GLOBAL_TIMER, Global_Timer, 0, 0},
{DISPID_GLOBAL_LBOUND, Global_LBound, 0, 1},
- {DISPID_GLOBAL_UBOUND, Global_UBound, 0, 1},
+ {DISPID_GLOBAL_UBOUND, Global_UBound, 0, 1, 2},
{DISPID_GLOBAL_RGB, Global_RGB, 0, 3},
{DISPID_GLOBAL_LEN, Global_Len, 0, 1},
{DISPID_GLOBAL_LENB, Global_LenB, 0, 1},
@@ -2265,7 +2333,7 @@ static const builtin_prop_t global_props[] = {
{DISPID_GLOBAL_DATEDIFF, Global_DateDiff, 0, 3, 5},
{DISPID_GLOBAL_DATEPART, Global_DatePart, 0, 2, 4},
{DISPID_GLOBAL_TYPENAME, Global_TypeName, 0, 1},
- {DISPID_GLOBAL_ARRAY, Global_Array, 0, 1},
+ {DISPID_GLOBAL_ARRAY, Global_Array, 0, 0, MAXDWORD},
{DISPID_GLOBAL_ERASE, Global_Erase, 0, 1},
{DISPID_GLOBAL_FILTER, Global_Filter, 0, 2, 4},
{DISPID_GLOBAL_JOIN, Global_Join, 0, 1, 2},
diff --git a/dll/win32/vbscript/interp.c b/dll/win32/vbscript/interp.c
index 9e30715915..56eaf9114f 100644
--- a/dll/win32/vbscript/interp.c
+++ b/dll/win32/vbscript/interp.c
@@ -475,10 +475,8 @@ static void vbstack_to_dp(exec_ctx_t *ctx, unsigned arg_cnt, BOOL
is_propput, DI
static HRESULT array_access(exec_ctx_t *ctx, SAFEARRAY *array, DISPPARAMS *dp, VARIANT
**ret)
{
- unsigned cell_off = 0, dim_size = 1, i;
- unsigned argc = arg_cnt(dp);
- VARIANT *data;
- LONG idx;
+ unsigned i, argc = arg_cnt(dp);
+ LONG *indices;
HRESULT hres;
if(!array) {
@@ -486,34 +484,35 @@ static HRESULT array_access(exec_ctx_t *ctx, SAFEARRAY *array,
DISPPARAMS *dp, V
return E_FAIL;
}
+ hres = SafeArrayLock(array);
+ if(FAILED(hres))
+ return hres;
+
if(array->cDims != argc) {
FIXME("argc %d does not match cDims %d\n", dp->cArgs,
array->cDims);
+ SafeArrayUnlock(array);
return E_FAIL;
}
- for(i=0; i < argc; i++) {
- hres = to_int(get_arg(dp, i), &idx);
- if(FAILED(hres))
- return hres;
+ indices = heap_alloc(sizeof(*indices) * argc);
+ if(!indices) {
+ SafeArrayUnlock(array);
+ return E_OUTOFMEMORY;
+ }
- idx -= array->rgsabound[i].lLbound;
- if(idx >= array->rgsabound[i].cElements) {
- FIXME("out of bound element %d in dim %d of size %d\n", idx, i+1,
array->rgsabound[i].cElements);
- return E_FAIL;
+ for(i=0; i<argc; i++) {
+ hres = to_int(get_arg(dp, i), indices+i);
+ if(FAILED(hres)) {
+ heap_free(indices);
+ SafeArrayUnlock(array);
+ return hres;
}
-
- cell_off += idx*dim_size;
- dim_size *= array->rgsabound[i].cElements;
}
- hres = SafeArrayAccessData(array, (void**)&data);
- if(FAILED(hres))
- return hres;
-
- *ret = data+cell_off;
-
- SafeArrayUnaccessData(array);
- return S_OK;
+ hres = SafeArrayPtrOfIndex(array, indices, (void**)ret);
+ SafeArrayUnlock(array);
+ heap_free(indices);
+ return hres;
}
static HRESULT do_icall(exec_ctx_t *ctx, VARIANT *res)
@@ -1143,6 +1142,18 @@ static HRESULT interp_newenum(exec_ctx_t *ctx)
V_UNKNOWN(r) = (IUnknown*)iter;
break;
}
+ case VT_VARIANT|VT_ARRAY:
+ case VT_VARIANT|VT_ARRAY|VT_BYREF: {
+ IEnumVARIANT *iter;
+
+ hres = create_safearray_iter(V_ISBYREF(v.v) ? *V_ARRAYREF(v.v) : V_ARRAY(v.v),
&iter);
+ if(FAILED(hres))
+ return hres;
+
+ V_VT(r) = VT_UNKNOWN;
+ V_UNKNOWN(r) = (IUnknown*)iter;
+ break;
+ }
default:
FIXME("Unsupported for %s\n", debugstr_variant(v.v));
release_val(&v);
@@ -1186,7 +1197,7 @@ static HRESULT interp_enumnext(exec_ctx_t *ctx)
if(do_continue) {
ctx->instr++;
}else {
- stack_pop(ctx);
+ stack_popn(ctx, 1);
instr_jmp(ctx, loop_end);
}
return S_OK;
diff --git a/dll/win32/vbscript/parser.tab.c b/dll/win32/vbscript/parser.tab.c
index 1396fdcfed..39842e6bf5 100644
--- a/dll/win32/vbscript/parser.tab.c
+++ b/dll/win32/vbscript/parser.tab.c
@@ -127,7 +127,7 @@ static const WCHAR propertyW[] =
{'p','r','o','p','e','r','t','y',0};
#define CHECK_ERROR if(((parser_ctx_t*)ctx)->hres != S_OK) YYABORT
-#line 136 "parser.tab.c" /* yacc.c:339 */
+#line 131 "parser.tab.c" /* yacc.c:339 */
# ifndef YY_NULL
# if defined __cplusplus && 201103L <= __cplusplus
@@ -147,8 +147,8 @@ static const WCHAR propertyW[] =
{'p','r','o','p','e','r','t','y',0};
/* In a future release of Bison, this section will be replaced
by #include "parser.tab.h". */
-#ifndef YY_PARSER_E_REACTOS_SYNC_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED
-# define YY_PARSER_E_REACTOS_SYNC_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED
+#ifndef YY_PARSER_E_REACTOSSYNC3_0_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED
+# define YY_PARSER_E_REACTOSSYNC3_0_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
@@ -238,7 +238,7 @@ extern int parser_debug;
typedef union YYSTYPE YYSTYPE;
union YYSTYPE
{
-#line 88 "parser.y" /* yacc.c:355 */
+#line 83 "parser.y" /* yacc.c:355 */
const WCHAR *string;
statement_t *statement;
@@ -257,7 +257,7 @@ union YYSTYPE
BOOL boolean;
double dbl;
-#line 266 "parser.tab.c" /* yacc.c:355 */
+#line 261 "parser.tab.c" /* yacc.c:355 */
};
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
@@ -267,11 +267,11 @@ union YYSTYPE
int parser_parse (parser_ctx_t *ctx);
-#endif /* !YY_PARSER_E_REACTOS_SYNC_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED */
+#endif /* !YY_PARSER_E_REACTOSSYNC3_0_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED */
/* Copy the second part of user declarations. */
-#line 280 "parser.tab.c" /* yacc.c:358 */
+#line 275 "parser.tab.c" /* yacc.c:358 */
#ifdef short
# undef short
@@ -494,16 +494,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 5
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 909
+#define YYLAST 944
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 87
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 60
/* YYNRULES -- Number of rules. */
-#define YYNRULES 167
+#define YYNRULES 169
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 341
+#define YYNSTATES 343
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
@@ -556,23 +556,23 @@ static const yytype_uint8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 147, 147, 150, 151, 153, 155, 156, 159, 160,
- 163, 164, 167, 170, 171, 172, 173, 174, 177, 178,
- 179, 181, 182, 183, 185, 188, 191, 192, 193, 194,
- 195, 196, 197, 198, 200, 201, 202, 203, 204, 206,
- 208, 212, 213, 216, 217, 220, 221, 222, 225, 226,
- 229, 230, 233, 236, 237, 240, 241, 244, 245, 248,
- 250, 251, 254, 256, 259, 260, 263, 264, 267, 271,
- 272, 275, 276, 277, 281, 282, 285, 286, 289, 290,
- 291, 293, 295, 298, 299, 302, 303, 306, 307, 310,
- 311, 314, 315, 318, 319, 322, 323, 326, 327, 328,
- 329, 330, 331, 332, 333, 336, 337, 340, 341, 342,
- 345, 346, 349, 350, 354, 355, 357, 361, 362, 365,
- 366, 367, 368, 371, 372, 375, 376, 377, 378, 379,
- 380, 381, 384, 385, 386, 387, 390, 391, 392, 395,
- 396, 399, 402, 403, 405, 407, 408, 411, 413, 415,
- 419, 421, 425, 426, 429, 430, 431, 434, 435, 438,
- 439, 442, 443, 444, 448, 449, 453, 454
+ 0, 142, 142, 145, 146, 148, 150, 151, 154, 155,
+ 158, 159, 162, 165, 166, 167, 168, 169, 172, 173,
+ 174, 176, 177, 178, 180, 183, 186, 187, 188, 189,
+ 190, 191, 192, 193, 195, 196, 197, 198, 199, 201,
+ 203, 207, 208, 211, 212, 215, 216, 217, 220, 221,
+ 224, 225, 228, 231, 232, 235, 236, 239, 240, 243,
+ 245, 246, 249, 251, 254, 255, 258, 259, 262, 266,
+ 267, 270, 271, 272, 276, 277, 280, 281, 284, 285,
+ 286, 288, 290, 293, 294, 297, 298, 301, 302, 305,
+ 306, 309, 310, 313, 314, 317, 318, 321, 322, 323,
+ 324, 325, 326, 327, 328, 331, 332, 335, 336, 337,
+ 340, 341, 344, 345, 349, 350, 352, 356, 357, 360,
+ 361, 362, 363, 366, 367, 370, 371, 372, 373, 374,
+ 375, 376, 379, 380, 381, 382, 385, 386, 387, 390,
+ 391, 394, 397, 398, 400, 402, 403, 406, 408, 410,
+ 414, 416, 420, 421, 424, 425, 426, 429, 430, 433,
+ 434, 437, 438, 439, 443, 444, 448, 449, 450, 451
};
#endif
@@ -628,10 +628,10 @@ static const yytype_uint16 yytoknum[] =
};
# endif
-#define YYPACT_NINF -159
+#define YYPACT_NINF -205
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-159)))
+ (!!((Yystate) == (-205)))
#define YYTABLE_NINF -153
@@ -642,41 +642,41 @@ static const yytype_uint16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 15, 4, 58, -159, 73, -159, 320, -159, -159, 41,
- 44, -159, 44, 511, 140, 511, 10, 19, 96, -159,
- 44, 41, 84, -159, -159, 42, -159, 604, 511, -159,
- 128, 78, 401, -159, 82, -159, -159, -159, 8, -159,
- -159, 6, -159, 83, 7, -159, 94, 108, -159, -159,
- 511, -159, -159, -159, 44, -159, -159, -159, -159, -159,
- 545, 6, 22, 180, 184, 187, 189, -159, 34, 119,
- -12, 183, 120, 39, 118, -159, 82, -159, -159, -159,
- -159, -159, -159, -159, 31, -159, -159, -159, -159, 511,
- 645, 44, 133, 511, 202, 6, -159, 70, -159, 11,
- -159, 604, -159, 431, 431, 145, -159, -159, -33, 12,
- 44, 44, 44, 431, 146, -159, 44, -159, -13, 44,
- 182, -159, -159, -159, -159, 511, 361, 511, 511, 511,
- 511, 545, 545, 545, 545, 545, 545, 545, 545, 545,
- 545, 545, 545, 545, 545, 545, 698, 31, 185, -159,
- 604, 176, 511, 31, 90, 153, 164, 154, -159, -159,
- -159, 151, -3, 511, 431, -159, 16, 16, -159, -159,
- -159, -159, 161, 155, -159, 97, -159, -159, 180, 604,
- 87, 184, 187, 189, -159, 119, 119, 119, 119, 119,
- 119, 119, -12, 183, 183, 120, 39, 118, 118, -159,
- 196, 645, 81, -159, 511, 24, 197, 44, 210, 243,
- 244, 162, 198, 511, -159, -159, -159, 239, -159, 33,
- -159, 259, 261, -159, -13, -159, 236, 833, 240, -159,
- -159, 230, 511, 31, 511, 481, 238, 266, 217, 90,
- 90, 21, 268, 239, 44, 44, 199, 200, 267, 739,
- 739, -159, 511, 245, -159, 236, 249, -159, -159, 239,
- 780, 18, 20, 20, 14, 237, 90, 278, -159, -159,
- 221, 223, 224, 90, 267, 267, -159, 33, -159, 260,
- 262, 98, 291, 269, -159, -159, 235, 511, 20, 833,
- 604, 511, -159, -159, -159, 16, 222, 226, -159, -159,
- -159, -159, 282, 283, 303, 739, 280, -159, 239, 780,
- -159, 197, -159, 305, 33, 33, -159, -159, 604, -159,
- -159, 248, -159, 739, 234, 247, -159, -159, 284, 309,
- 312, 296, 739, 739, -159, 290, 294, 298, 306, -159,
- -159
+ -12, -8, 47, -205, 22, -205, 346, 22, 22, -205,
+ -205, 34, 35, -205, 35, 537, 134, 537, 12, 32,
+ 60, -205, 35, 34, -10, -205, -205, 65, -205, 639,
+ 537, -205, 57, 2, 427, -205, 85, -205, -205, -205,
+ 109, -205, -205, -205, -205, 4, -205, 33, 5, -205,
+ 46, 81, -205, -205, 537, -205, -205, -205, 35, -205,
+ -205, -205, -205, -205, 571, 4, 16, 126, 155, 160,
+ 168, -205, 37, 117, 29, 181, 119, 79, 130, -205,
+ 85, -205, -205, -205, -205, -205, -205, -205, 18, -205,
+ -205, 537, 680, 35, 146, 537, 22, 4, -205, 121,
+ -205, 13, -205, 639, -205, 457, 457, 147, -205, -205,
+ 77, 0, 35, 35, 35, 457, 148, -205, 35, -205,
+ 111, 35, 601, -205, -205, -205, -205, 537, 387, 537,
+ 537, 537, 537, 571, 571, 571, 571, 571, 571, 571,
+ 571, 571, 571, 571, 571, 571, 571, 571, 733, 18,
+ 183, -205, 639, 178, 537, 18, 8, 152, 165, 156,
+ -205, -205, -205, 151, 1, 537, 457, -205, 6, 6,
+ -205, -205, -205, -205, 154, 157, -205, 136, -205, -205,
+ 126, 639, 143, 155, 160, 168, -205, 117, 117, 117,
+ 117, 117, 117, 117, 29, 181, 181, 119, 79, 130,
+ 130, -205, 198, 680, 95, -205, 537, 28, 189, 35,
+ 204, 22, 22, 96, 170, 537, -205, -205, -205, 223,
+ -205, -3, -205, 22, 22, -205, 111, -205, 210, 868,
+ 214, -205, -205, 212, 537, 18, 537, 507, 221, 22,
+ 199, 8, 8, 70, 22, 223, 35, 35, 177, 180,
+ 253, 774, 774, -205, 537, 231, -205, 210, 230, -205,
+ -205, 223, 815, 71, 22, 22, 17, 219, 8, 22,
+ -205, -205, 201, 202, 206, 8, 253, 253, -205, -3,
+ -205, 234, 239, 19, 269, 243, -205, -205, 213, 537,
+ 22, 868, 639, 537, -205, -205, -205, 6, 200, 203,
+ -205, -205, -205, -205, 255, 257, 274, 774, 254, -205,
+ 223, 815, -205, 189, -205, 22, -3, -3, -205, -205,
+ 639, -205, -205, 222, -205, 774, 216, 220, -205, -205,
+ 250, 22, 22, 259, 774, 774, -205, 267, 268, 266,
+ 278, -205, -205
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -684,63 +684,63 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 3, 0, 0, 5, 0, 1, 152, 4, 2, 0,
- 0, 165, 0, 0, 0, 0, 0, 0, 0, 34,
- 0, 0, 155, 156, 140, 0, 164, 13, 0, 6,
- 0, 15, 81, 22, 0, 123, 7, 27, 0, 153,
- 41, 81, 21, 43, 45, 37, 50, 0, 125, 126,
- 0, 131, 129, 130, 0, 127, 134, 132, 135, 133,
- 0, 81, 0, 85, 87, 89, 91, 93, 95, 97,
- 105, 107, 110, 112, 114, 117, 120, 119, 128, 32,
- 30, 31, 28, 29, 0, 166, 55, 56, 167, 0,
- 152, 0, 0, 0, 0, 81, 154, 0, 14, 0,
- 12, 17, 82, 0, 0, 124, 18, 77, 76, 78,
- 0, 0, 0, 0, 19, 74, 0, 47, 0, 0,
- 0, 96, 121, 122, 124, 0, 152, 0, 0, 0,
+ 3, 0, 0, 5, 0, 1, 152, 166, 167, 4,
+ 2, 0, 0, 165, 0, 0, 0, 0, 0, 0,
+ 0, 34, 0, 0, 155, 156, 140, 0, 164, 13,
+ 0, 6, 0, 15, 81, 22, 0, 123, 7, 27,
+ 0, 153, 41, 168, 169, 81, 21, 43, 45, 37,
+ 50, 0, 125, 126, 0, 131, 129, 130, 0, 127,
+ 134, 132, 135, 133, 0, 81, 0, 85, 87, 89,
+ 91, 93, 95, 97, 105, 107, 110, 112, 114, 117,
+ 120, 119, 128, 32, 30, 31, 28, 29, 0, 55,
+ 56, 0, 152, 0, 0, 0, 0, 81, 154, 0,
+ 14, 0, 12, 17, 82, 0, 0, 124, 18, 77,
+ 76, 78, 0, 0, 0, 0, 19, 74, 0, 47,
+ 0, 0, 0, 96, 121, 122, 124, 0, 152, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 152, 0, 0, 9,
- 10, 0, 0, 0, 152, 124, 0, 0, 139, 16,
- 80, 0, 0, 0, 0, 42, 81, 81, 44, 138,
- 136, 137, 0, 48, 51, 0, 52, 53, 86, 8,
- 62, 88, 90, 92, 94, 99, 104, 103, 102, 98,
- 100, 101, 106, 109, 108, 111, 113, 115, 116, 118,
- 0, 152, 26, 11, 0, 0, 71, 0, 0, 0,
- 0, 0, 153, 0, 35, 36, 75, 20, 79, 0,
- 157, 0, 0, 46, 0, 54, 64, 152, 0, 60,
- 23, 0, 0, 0, 0, 0, 0, 0, 0, 152,
- 152, 0, 0, 33, 0, 0, 0, 159, 81, 152,
- 152, 49, 0, 69, 65, 66, 62, 63, 24, 25,
- 152, 57, 0, 0, 83, 0, 152, 0, 146, 143,
- 0, 0, 0, 152, 81, 81, 158, 0, 161, 0,
- 0, 0, 0, 0, 67, 61, 0, 0, 0, 152,
- 8, 0, 40, 145, 141, 81, 0, 0, 144, 162,
- 163, 160, 0, 0, 0, 152, 0, 39, 58, 152,
- 72, 71, 84, 0, 0, 0, 150, 151, 8, 70,
- 59, 0, 73, 152, 0, 0, 68, 38, 0, 0,
- 0, 0, 152, 152, 147, 0, 0, 0, 0, 148,
- 149
+ 0, 0, 0, 0, 0, 0, 0, 0, 152, 0,
+ 0, 9, 10, 0, 0, 0, 152, 124, 0, 0,
+ 139, 16, 80, 0, 0, 0, 0, 42, 81, 81,
+ 44, 138, 136, 137, 0, 48, 51, 0, 52, 53,
+ 86, 8, 62, 88, 90, 92, 94, 99, 104, 103,
+ 102, 98, 100, 101, 106, 109, 108, 111, 113, 115,
+ 116, 118, 0, 152, 26, 11, 0, 0, 71, 0,
+ 0, 0, 0, 0, 153, 0, 35, 36, 75, 20,
+ 79, 0, 157, 0, 0, 46, 0, 54, 64, 152,
+ 0, 60, 23, 0, 0, 0, 0, 0, 0, 0,
+ 0, 152, 152, 0, 0, 33, 0, 0, 0, 159,
+ 81, 152, 152, 49, 0, 69, 65, 66, 62, 63,
+ 24, 25, 152, 57, 0, 0, 83, 0, 152, 0,
+ 146, 143, 0, 0, 0, 152, 81, 81, 158, 0,
+ 161, 0, 0, 0, 0, 0, 67, 61, 0, 0,
+ 0, 152, 8, 0, 40, 145, 141, 81, 0, 0,
+ 144, 162, 163, 160, 0, 0, 0, 152, 0, 39,
+ 58, 152, 72, 71, 84, 0, 0, 0, 150, 151,
+ 8, 70, 59, 0, 73, 152, 0, 0, 68, 38,
+ 0, 0, 0, 0, 152, 152, 147, 0, 0, 0,
+ 0, 148, 149
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -159, -159, -159, -159, 28, -144, 328, -26, -159, -6,
- 219, 129, 114, 220, -159, -159, 141, -159, -159, 86,
- -159, 95, -159, -159, 38, 1, -159, -25, -16, 54,
- 5, 227, 228, 229, 233, -40, -159, 79, 225, 32,
- 231, 216, 48, -52, -4, 246, 192, -159, -159, -159,
- -79, -159, -135, -114, -85, -158, 91, -137, 17, -80
+ -205, -205, -205, -205, -124, -148, 298, -26, -205, -6,
+ 188, 99, 83, 190, -205, -205, 106, -205, -205, 54,
+ -205, 58, -205, -205, 7, -25, -205, -21, -33, 20,
+ 135, 191, 193, 194, 192, -45, -205, 56, 185, 66,
+ 195, 182, 67, -56, -4, 211, 158, -205, -205, -205,
+ -204, -205, -138, -128, -87, -163, 53, -102, 48, 27
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 2, 3, 6, 148, 149, 150, 30, 31, 61,
- 42, 43, 172, 45, 46, 176, 89, 288, 33, 229,
- 253, 254, 255, 283, 236, 105, 106, 161, 115, 263,
- 109, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 173, 35, 36,
- 208, 209, 37, 38, 39, 221, 246, 247, 40, 90
+ -1, 2, 3, 6, 150, 151, 152, 32, 33, 65,
+ 46, 47, 174, 49, 50, 178, 91, 290, 35, 231,
+ 255, 256, 257, 285, 238, 107, 108, 163, 117, 265,
+ 111, 67, 68, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 175, 37, 38,
+ 210, 211, 39, 40, 41, 223, 248, 249, 42, 9
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -748,233 +748,241 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 32, 98, 34, 41, 146, 34, 203, 107, 123, 222,
- 121, 125, 102, 117, 85, 95, 108, 34, 62, 210,
- 84, 32, 102, 34, 85, 125, 125, 44, 125, 47,
- 111, 112, 125, 99, 92, 85, 125, 94, 125, -74,
- 211, -74, 114, 11, 86, 125, 270, 271, 87, 131,
- 132, 133, 134, 4, 126, 169, 170, 11, 5, 287,
- 171, 91, 124, 1, 234, 11, 139, 201, 11, 212,
- 140, 122, 164, 206, 158, 159, 272, 7, 160, 244,
- 245, 88, 113, 118, 32, 26, 34, 164, 158, 291,
- 184, 88, 219, 199, 147, 32, 155, 34, 153, 26,
- 180, 24, 88, 97, 210, 210, 135, 26, 151, 162,
- 26, 207, 125, 136, 137, 86, 227, 28, 228, 87,
- 32, -142, 34, 143, 144, 211, 211, 165, 166, 167,
- 304, 210, 100, 44, 156, 157, 47, 313, 210, 218,
- 32, 93, 34, 96, 32, 310, 34, 22, 23, 101,
- 220, 220, 211, 260, 212, 212, 110, 205, 116, 211,
- 268, 269, 79, 80, 81, 56, 57, 58, 217, 119,
- 59, 193, 194, 32, 200, 34, 82, 324, 325, 83,
- 120, 212, 289, 290, 111, 112, 241, 293, 212, 48,
- 49, 197, 198, 127, 298, 32, 128, 34, 129, 130,
- 138, 256, 141, 142, 145, 152, 154, 226, 309, 233,
- 185, 186, 187, 188, 189, 190, 191, 163, 243, 204,
- -124, 32, 202, 34, 44, 213, 214, 215, 216, 231,
- 224, 230, 278, 51, 52, 53, 248, 259, 223, 261,
- 264, 238, 235, 32, 32, 34, 34, 239, 240, 55,
- 56, 57, 58, 125, 32, 59, 34, 281, 299, 300,
- 175, 274, 275, 249, 242, 250, 252, 258, 257, 265,
- 266, 267, 273, 102, 282, 277, 276, 279, 280, 220,
- 228, 292, 294, 32, 32, 34, 34, 295, 286, 296,
- 297, 302, 308, 303, 248, 305, 264, 307, 314, 32,
- 306, 34, 315, 32, 316, 34, 317, 318, 320, 323,
- 327, 329, 32, 332, 34, 331, 333, 32, 311, 34,
- 334, 337, 339, 8, 330, 338, 32, 32, 34, 34,
- 340, 248, 248, 319, 29, 168, 237, 321, 251, 174,
- 9, 10, 285, 232, 11, 312, 326, 12, 13, 322,
- 284, 328, 178, 14, 15, 181, 16, 182, 196, 17,
- 335, 336, 183, 192, 18, 179, 177, 225, 301, 0,
- 19, 0, 195, 0, 20, 21, 0, 22, 23, 0,
- 24, 9, 10, 25, 0, 11, 26, 0, 12, 13,
- 0, 27, 0, 0, 14, 15, 28, 16, 0, 0,
- 17, 0, 0, 0, 0, 18, 0, 102, 48, 49,
- 50, 19, 0, 0, 0, 0, 21, 0, 22, 23,
- 0, 24, 0, 0, 25, 11, 0, 26, 0, 0,
- 0, 0, 27, 0, 0, 0, 0, 28, 48, 49,
- 50, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 51, 52, 53, 11, 0, 54, 0, 0,
- 0, 24, 0, 0, 0, 0, 0, 26, 55, 56,
- 57, 58, 0, 0, 59, 0, 103, 104, 0, 60,
- 0, 0, 51, 52, 53, 0, 0, 54, 48, 49,
- 50, 24, 0, 0, 0, 0, 0, 26, 55, 56,
- 57, 58, 0, 0, 59, 11, 103, 28, 0, 60,
- 262, 0, 0, 0, 0, 0, 0, 0, 48, 49,
- 50, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 51, 52, 53, 11, 0, 54, 0, 0,
- 0, 24, 0, 0, 0, 0, 0, 26, 55, 56,
- 57, 58, 48, 49, 59, 0, 0, 28, 0, 60,
- 0, 0, 51, 52, 53, 0, 0, 54, 0, 11,
- 0, 24, 0, 0, 0, 0, 0, 26, 55, 56,
- 57, 58, 0, 0, 59, 0, 0, 28, 0, 60,
- 0, 0, 0, 0, 0, 0, 51, 52, 53, 0,
- 0, 54, 0, 0, 0, 24, 0, 0, 0, 0,
- 0, 26, 55, 56, 57, 58, 0, 0, 59, 0,
- 0, 28, 0, 60, 9, 10, -152, -152, 11, 0,
- 0, 12, 13, 0, 0, 0, 0, 14, 15, 0,
- 16, 0, 0, 17, 0, 0, 0, 0, 18, 0,
- 0, 0, 0, 0, 19, 0, 0, 0, 0, 21,
- 0, 22, 23, 0, 24, 9, 10, 25, 0, 11,
- 26, 0, 12, 13, 0, 27, 0, 0, 14, 15,
- 28, 16, -8, 0, 17, 0, 0, 0, 0, 18,
- 0, 0, 0, 0, 0, 19, 0, 0, 0, 0,
- 21, 0, 22, 23, 0, 24, 0, 0, 25, 0,
- 0, 26, 0, 0, 0, 0, 27, 0, 9, 10,
- 0, 28, 11, 0, 0, 12, 13, 0, 0, 0,
- 0, 14, 15, -8, 16, 0, 0, 17, 0, 0,
- 0, 0, 18, 0, 0, 0, 0, 0, 19, 0,
- 0, 0, 0, 21, 0, 22, 23, 0, 24, 9,
- 10, 25, 0, 11, 26, 0, 12, 13, 0, 27,
- -8, 0, 14, 15, 28, 16, 0, 0, 17, 0,
- 0, 0, 0, 18, 0, 0, 0, 0, 0, 19,
- 0, 0, 0, 0, 21, 0, 22, 23, 0, 24,
- 9, 10, 25, 0, 11, 26, 0, 12, 13, 0,
- 27, 0, 0, 14, 15, 28, 16, 0, 0, 17,
- 0, 0, 0, 0, 18, 0, 0, 0, 0, 0,
- 19, 0, 0, 0, 0, 21, 0, 22, 23, 0,
- 24, 0, -8, 25, 0, 0, 26, 0, 0, 0,
- 0, 27, 0, 9, 10, 0, 28, 11, 0, 0,
- 12, 13, 0, 0, 0, 0, 14, 15, 0, 16,
- 0, 0, 17, 0, 0, 0, 0, 18, 0, 0,
- 0, 0, 0, 19, 0, 0, 0, 0, 21, 0,
- 22, 23, 0, 24, 0, 0, 25, 0, 0, 26,
- 0, 0, 0, 0, 27, 0, 0, 0, 0, 28
+ 34, 110, 36, 100, 205, 45, 224, 36, 125, 123,
+ 104, 119, 104, 109, 127, 127, 7, 97, 212, 36,
+ 116, 13, 7, 34, 202, 36, 7, 127, 213, 209,
+ 127, 127, 127, 127, 43, 44, 1, 270, 271, -142,
+ 126, 4, 127, 246, 247, 92, 89, 5, 128, 98,
+ 90, 306, 133, 134, 135, 136, 13, 228, 13, 13,
+ 48, 102, 51, 28, 295, 24, 25, 94, 236, 214,
+ 96, 300, 157, 103, 93, 166, 166, 161, 160, 233,
+ 115, 120, 221, 8, 162, 127, 34, 186, 36, 8,
+ 160, 201, 293, 8, 26, 272, 273, 34, 28, 36,
+ 28, 28, 182, 212, 212, 95, 124, 141, 118, 137,
+ 30, 142, 289, 213, 213, 148, 138, 139, 113, 114,
+ 243, 121, 34, 156, 36, 274, 99, 281, 282, 89,
+ 212, 113, 114, 90, 315, 222, 222, 212, 288, 129,
+ 213, 153, 34, 312, 36, 220, 34, 213, 36, -74,
+ 66, -74, 88, 122, 214, 214, 83, 84, 85, 112,
+ 167, 168, 169, 145, 146, 101, 48, 130, 313, 51,
+ 86, 131, 229, 87, 230, 34, 203, 36, 132, 171,
+ 172, 214, 208, 321, 173, 158, 159, 323, 214, 187,
+ 188, 189, 190, 191, 192, 193, 328, 34, 140, 36,
+ 143, 330, 144, 258, 60, 61, 62, 195, 196, 63,
+ 337, 338, 199, 200, 326, 327, 147, 280, 154, 165,
+ 204, 206, -124, 34, 215, 36, 149, 216, 218, 217,
+ 155, 225, 226, 232, 237, 240, 244, 127, 241, 242,
+ 254, 164, 259, 301, 302, 34, 34, 36, 36, 260,
+ 251, 252, 267, 269, 278, 279, 34, 48, 36, 104,
+ 284, 230, 262, 294, 222, 304, 268, 297, 298, 250,
+ 305, 275, 299, 307, 308, 309, 316, 318, 320, 317,
+ 319, 333, 322, 336, 329, 34, 34, 36, 36, 207,
+ 341, 291, 292, 331, 276, 277, 296, 332, 339, 340,
+ 219, 34, 342, 36, 31, 34, 170, 36, 239, 253,
+ 234, 176, 287, 314, 34, 286, 36, 311, 180, 34,
+ 324, 36, 183, 185, 184, 194, 198, 250, 34, 34,
+ 36, 36, 303, 179, 0, 227, 0, 0, 197, 0,
+ 0, 235, 325, 0, 0, 0, 0, 0, 0, 10,
+ 245, 0, 0, 0, 0, 0, 0, 0, 334, 335,
+ 0, 0, 0, 0, 250, 250, 11, 12, 0, 261,
+ 13, 263, 266, 14, 15, 0, 0, 0, 0, 16,
+ 17, 0, 18, 0, 0, 19, 0, 0, 0, 283,
+ 20, 181, 0, 0, 0, 0, 21, 0, 0, 0,
+ 22, 23, 0, 24, 25, 0, 26, 11, 12, 27,
+ 0, 13, 28, 0, 14, 15, 0, 29, 0, 0,
+ 16, 17, 30, 18, 310, 0, 19, 0, 266, 0,
+ 0, 20, 0, 104, 52, 53, 54, 21, 0, 0,
+ 0, 0, 23, 0, 24, 25, 0, 26, 0, 0,
+ 27, 13, 0, 28, 0, 0, 0, 0, 29, 0,
+ 0, 0, 0, 30, 52, 53, 54, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 55, 56,
+ 57, 13, 0, 58, 0, 0, 0, 26, 0, 0,
+ 0, 0, 0, 28, 59, 60, 61, 62, 0, 0,
+ 63, 0, 105, 106, 0, 64, 0, 0, 55, 56,
+ 57, 0, 0, 58, 52, 53, 54, 26, 0, 0,
+ 0, 0, 0, 28, 59, 60, 61, 62, 0, 0,
+ 63, 13, 105, 30, 0, 64, 264, 0, 0, 0,
+ 0, 0, 0, 0, 52, 53, 54, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 55, 56,
+ 57, 13, 0, 58, 0, 0, 0, 26, 0, 0,
+ 0, 0, 0, 28, 59, 60, 61, 62, 52, 53,
+ 63, 0, 0, 30, 0, 64, 0, 0, 55, 56,
+ 57, 0, 0, 58, 0, 13, 0, 26, 0, 0,
+ 0, 0, 0, 28, 59, 60, 61, 62, 52, 53,
+ 63, 0, 0, 30, 0, 64, 0, 0, 0, 0,
+ 0, 0, 55, 56, 57, 0, 0, 58, 0, 0,
+ 0, 26, 0, 0, 0, 0, 0, 28, 59, 60,
+ 61, 62, 0, 0, 63, 0, 0, 30, 0, 64,
+ 0, 0, 55, 56, 57, 0, 0, 0, 0, 11,
+ 12, -152, -152, 13, 0, 0, 14, 15, 59, 60,
+ 61, 62, 16, 17, 63, 18, 0, 0, 19, 177,
+ 0, 0, 0, 20, 0, 0, 0, 0, 0, 21,
+ 0, 0, 0, 0, 23, 0, 24, 25, 0, 26,
+ 11, 12, 27, 0, 13, 28, 0, 14, 15, 0,
+ 29, 0, 0, 16, 17, 30, 18, -8, 0, 19,
+ 0, 0, 0, 0, 20, 0, 0, 0, 0, 0,
+ 21, 0, 0, 0, 0, 23, 0, 24, 25, 0,
+ 26, 0, 0, 27, 0, 0, 28, 0, 0, 0,
+ 0, 29, 0, 11, 12, 0, 30, 13, 0, 0,
+ 14, 15, 0, 0, 0, 0, 16, 17, -8, 18,
+ 0, 0, 19, 0, 0, 0, 0, 20, 0, 0,
+ 0, 0, 0, 21, 0, 0, 0, 0, 23, 0,
+ 24, 25, 0, 26, 11, 12, 27, 0, 13, 28,
+ 0, 14, 15, 0, 29, -8, 0, 16, 17, 30,
+ 18, 0, 0, 19, 0, 0, 0, 0, 20, 0,
+ 0, 0, 0, 0, 21, 0, 0, 0, 0, 23,
+ 0, 24, 25, 0, 26, 11, 12, 27, 0, 13,
+ 28, 0, 14, 15, 0, 29, 0, 0, 16, 17,
+ 30, 18, 0, 0, 19, 0, 0, 0, 0, 20,
+ 0, 0, 0, 0, 0, 21, 0, 0, 0, 0,
+ 23, 0, 24, 25, 0, 26, 0, -8, 27, 0,
+ 0, 28, 0, 0, 0, 0, 29, 0, 11, 12,
+ 0, 30, 13, 0, 0, 14, 15, 0, 0, 0,
+ 0, 16, 17, 0, 18, 0, 0, 19, 0, 0,
+ 0, 0, 20, 0, 0, 0, 0, 0, 21, 0,
+ 0, 0, 0, 23, 0, 24, 25, 0, 26, 0,
+ 0, 27, 0, 0, 28, 0, 0, 0, 0, 29,
+ 0, 0, 0, 0, 30
};
static const yytype_int16 yycheck[] =
{
- 6, 27, 6, 9, 84, 9, 150, 32, 60, 167,
- 50, 14, 6, 6, 4, 21, 32, 21, 13, 154,
- 15, 27, 6, 27, 4, 14, 14, 10, 14, 12,
- 22, 23, 14, 28, 17, 4, 14, 20, 14, 72,
- 154, 74, 41, 24, 34, 14, 25, 26, 38, 15,
- 16, 17, 18, 49, 32, 68, 69, 24, 0, 41,
- 73, 42, 61, 48, 40, 24, 78, 147, 24, 154,
- 82, 54, 75, 153, 77, 101, 55, 4, 103, 46,
- 47, 71, 76, 76, 90, 66, 90, 75, 77, 75,
- 130, 71, 76, 145, 89, 101, 95, 101, 93, 66,
- 126, 60, 71, 61, 239, 240, 72, 66, 91, 104,
- 66, 21, 14, 79, 80, 34, 29, 76, 31, 38,
- 126, 31, 126, 84, 85, 239, 240, 110, 111, 112,
- 32, 266, 4, 116, 64, 65, 119, 295, 273, 164,
- 146, 45, 146, 59, 150, 289, 150, 57, 58, 71,
- 166, 167, 266, 233, 239, 240, 74, 152, 75, 273,
- 239, 240, 22, 23, 24, 68, 69, 70, 163, 75,
- 73, 139, 140, 179, 146, 179, 36, 314, 315, 39,
- 72, 266, 262, 263, 22, 23, 24, 266, 273, 7,
- 8, 143, 144, 13, 273, 201, 12, 201, 11, 10,
- 81, 227, 19, 83, 86, 72, 4, 179, 288, 204,
- 131, 132, 133, 134, 135, 136, 137, 72, 213, 43,
- 74, 227, 37, 227, 207, 72, 62, 73, 77, 201,
- 75, 35, 248, 51, 52, 53, 219, 232, 77, 234,
- 235, 31, 45, 249, 250, 249, 250, 4, 4, 67,
- 68, 69, 70, 14, 260, 73, 260, 252, 274, 275,
- 78, 244, 245, 4, 66, 4, 30, 37, 28, 31,
- 4, 54, 4, 6, 29, 75, 77, 249, 250, 295,
- 31, 44, 4, 289, 290, 289, 290, 66, 260, 66,
- 66, 31, 287, 31, 277, 4, 291, 62, 76, 305,
- 31, 305, 76, 309, 22, 309, 23, 4, 28, 4,
- 62, 77, 318, 4, 318, 31, 4, 323, 290, 323,
- 24, 31, 24, 3, 77, 31, 332, 333, 332, 333,
- 24, 314, 315, 305, 6, 116, 207, 309, 224, 119,
- 20, 21, 256, 202, 24, 291, 318, 27, 28, 311,
- 255, 323, 125, 33, 34, 127, 36, 128, 142, 39,
- 332, 333, 129, 138, 44, 4, 120, 175, 277, -1,
- 50, -1, 141, -1, 54, 55, -1, 57, 58, -1,
- 60, 20, 21, 63, -1, 24, 66, -1, 27, 28,
- -1, 71, -1, -1, 33, 34, 76, 36, -1, -1,
- 39, -1, -1, -1, -1, 44, -1, 6, 7, 8,
- 9, 50, -1, -1, -1, -1, 55, -1, 57, 58,
- -1, 60, -1, -1, 63, 24, -1, 66, -1, -1,
- -1, -1, 71, -1, -1, -1, -1, 76, 7, 8,
- 9, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 51, 52, 53, 24, -1, 56, -1, -1,
- -1, 60, -1, -1, -1, -1, -1, 66, 67, 68,
- 69, 70, -1, -1, 73, -1, 75, 76, -1, 78,
- -1, -1, 51, 52, 53, -1, -1, 56, 7, 8,
- 9, 60, -1, -1, -1, -1, -1, 66, 67, 68,
- 69, 70, -1, -1, 73, 24, 75, 76, -1, 78,
- 29, -1, -1, -1, -1, -1, -1, -1, 7, 8,
- 9, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 51, 52, 53, 24, -1, 56, -1, -1,
- -1, 60, -1, -1, -1, -1, -1, 66, 67, 68,
- 69, 70, 7, 8, 73, -1, -1, 76, -1, 78,
- -1, -1, 51, 52, 53, -1, -1, 56, -1, 24,
+ 6, 34, 6, 29, 152, 11, 169, 11, 64, 54,
+ 6, 6, 6, 34, 14, 14, 4, 23, 156, 23,
+ 45, 24, 4, 29, 148, 29, 4, 14, 156, 21,
+ 14, 14, 14, 14, 7, 8, 48, 241, 242, 31,
+ 65, 49, 14, 46, 47, 18, 34, 0, 32, 59,
+ 38, 32, 15, 16, 17, 18, 24, 181, 24, 24,
+ 12, 4, 14, 66, 268, 57, 58, 19, 40, 156,
+ 22, 275, 97, 71, 42, 75, 75, 103, 77, 203,
+ 76, 76, 76, 71, 105, 14, 92, 132, 92, 71,
+ 77, 147, 75, 71, 60, 25, 26, 103, 66, 103,
+ 66, 66, 128, 241, 242, 45, 58, 78, 75, 72,
+ 76, 82, 41, 241, 242, 88, 79, 80, 22, 23,
+ 24, 75, 128, 96, 128, 55, 61, 251, 252, 34,
+ 268, 22, 23, 38, 297, 168, 169, 275, 262, 13,
+ 268, 93, 148, 291, 148, 166, 152, 275, 152, 72,
+ 15, 74, 17, 72, 241, 242, 22, 23, 24, 74,
+ 112, 113, 114, 84, 85, 30, 118, 12, 292, 121,
+ 36, 11, 29, 39, 31, 181, 149, 181, 10, 68,
+ 69, 268, 155, 307, 73, 64, 65, 311, 275, 133,
+ 134, 135, 136, 137, 138, 139, 320, 203, 81, 203,
+ 19, 325, 83, 229, 68, 69, 70, 141, 142, 73,
+ 334, 335, 145, 146, 316, 317, 86, 250, 72, 72,
+ 37, 43, 74, 229, 72, 229, 91, 62, 77, 73,
+ 95, 77, 75, 35, 45, 31, 66, 14, 211, 212,
+ 30, 106, 28, 276, 277, 251, 252, 251, 252, 37,
+ 223, 224, 31, 54, 77, 75, 262, 209, 262, 6,
+ 29, 31, 235, 44, 297, 31, 239, 66, 66, 221,
+ 31, 244, 66, 4, 31, 62, 76, 22, 4, 76,
+ 23, 31, 28, 24, 62, 291, 292, 291, 292, 154,
+ 24, 264, 265, 77, 246, 247, 269, 77, 31, 31,
+ 165, 307, 24, 307, 6, 311, 118, 311, 209, 226,
+ 204, 121, 258, 293, 320, 257, 320, 290, 127, 325,
+ 313, 325, 129, 131, 130, 140, 144, 279, 334, 335,
+ 334, 335, 279, 122, -1, 177, -1, -1, 143, -1,
+ -1, 206, 315, -1, -1, -1, -1, -1, -1, 3,
+ 215, -1, -1, -1, -1, -1, -1, -1, 331, 332,
+ -1, -1, -1, -1, 316, 317, 20, 21, -1, 234,
+ 24, 236, 237, 27, 28, -1, -1, -1, -1, 33,
+ 34, -1, 36, -1, -1, 39, -1, -1, -1, 254,
+ 44, 4, -1, -1, -1, -1, 50, -1, -1, -1,
+ 54, 55, -1, 57, 58, -1, 60, 20, 21, 63,
+ -1, 24, 66, -1, 27, 28, -1, 71, -1, -1,
+ 33, 34, 76, 36, 289, -1, 39, -1, 293, -1,
+ -1, 44, -1, 6, 7, 8, 9, 50, -1, -1,
+ -1, -1, 55, -1, 57, 58, -1, 60, -1, -1,
+ 63, 24, -1, 66, -1, -1, -1, -1, 71, -1,
+ -1, -1, -1, 76, 7, 8, 9, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 51, 52,
+ 53, 24, -1, 56, -1, -1, -1, 60, -1, -1,
+ -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
+ 73, -1, 75, 76, -1, 78, -1, -1, 51, 52,
+ 53, -1, -1, 56, 7, 8, 9, 60, -1, -1,
+ -1, -1, -1, 66, 67, 68, 69, 70, -1, -1,
+ 73, 24, 75, 76, -1, 78, 29, -1, -1, -1,
+ -1, -1, -1, -1, 7, 8, 9, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 51, 52,
+ 53, 24, -1, 56, -1, -1, -1, 60, -1, -1,
+ -1, -1, -1, 66, 67, 68, 69, 70, 7, 8,
+ 73, -1, -1, 76, -1, 78, -1, -1, 51, 52,
+ 53, -1, -1, 56, -1, 24, -1, 60, -1, -1,
+ -1, -1, -1, 66, 67, 68, 69, 70, 7, 8,
+ 73, -1, -1, 76, -1, 78, -1, -1, -1, -1,
+ -1, -1, 51, 52, 53, -1, -1, 56, -1, -1,
-1, 60, -1, -1, -1, -1, -1, 66, 67, 68,
69, 70, -1, -1, 73, -1, -1, 76, -1, 78,
- -1, -1, -1, -1, -1, -1, 51, 52, 53, -1,
- -1, 56, -1, -1, -1, 60, -1, -1, -1, -1,
- -1, 66, 67, 68, 69, 70, -1, -1, 73, -1,
- -1, 76, -1, 78, 20, 21, 22, 23, 24, -1,
- -1, 27, 28, -1, -1, -1, -1, 33, 34, -1,
- 36, -1, -1, 39, -1, -1, -1, -1, 44, -1,
- -1, -1, -1, -1, 50, -1, -1, -1, -1, 55,
- -1, 57, 58, -1, 60, 20, 21, 63, -1, 24,
- 66, -1, 27, 28, -1, 71, -1, -1, 33, 34,
- 76, 36, 37, -1, 39, -1, -1, -1, -1, 44,
- -1, -1, -1, -1, -1, 50, -1, -1, -1, -1,
- 55, -1, 57, 58, -1, 60, -1, -1, 63, -1,
- -1, 66, -1, -1, -1, -1, 71, -1, 20, 21,
- -1, 76, 24, -1, -1, 27, 28, -1, -1, -1,
- -1, 33, 34, 35, 36, -1, -1, 39, -1, -1,
- -1, -1, 44, -1, -1, -1, -1, -1, 50, -1,
- -1, -1, -1, 55, -1, 57, 58, -1, 60, 20,
- 21, 63, -1, 24, 66, -1, 27, 28, -1, 71,
- 31, -1, 33, 34, 76, 36, -1, -1, 39, -1,
+ -1, -1, 51, 52, 53, -1, -1, -1, -1, 20,
+ 21, 22, 23, 24, -1, -1, 27, 28, 67, 68,
+ 69, 70, 33, 34, 73, 36, -1, -1, 39, 78,
-1, -1, -1, 44, -1, -1, -1, -1, -1, 50,
-1, -1, -1, -1, 55, -1, 57, 58, -1, 60,
20, 21, 63, -1, 24, 66, -1, 27, 28, -1,
- 71, -1, -1, 33, 34, 76, 36, -1, -1, 39,
+ 71, -1, -1, 33, 34, 76, 36, 37, -1, 39,
-1, -1, -1, -1, 44, -1, -1, -1, -1, -1,
50, -1, -1, -1, -1, 55, -1, 57, 58, -1,
- 60, -1, 62, 63, -1, -1, 66, -1, -1, -1,
+ 60, -1, -1, 63, -1, -1, 66, -1, -1, -1,
-1, 71, -1, 20, 21, -1, 76, 24, -1, -1,
- 27, 28, -1, -1, -1, -1, 33, 34, -1, 36,
+ 27, 28, -1, -1, -1, -1, 33, 34, 35, 36,
-1, -1, 39, -1, -1, -1, -1, 44, -1, -1,
-1, -1, -1, 50, -1, -1, -1, -1, 55, -1,
- 57, 58, -1, 60, -1, -1, 63, -1, -1, 66,
- -1, -1, -1, -1, 71, -1, -1, -1, -1, 76
+ 57, 58, -1, 60, 20, 21, 63, -1, 24, 66,
+ -1, 27, 28, -1, 71, 31, -1, 33, 34, 76,
+ 36, -1, -1, 39, -1, -1, -1, -1, 44, -1,
+ -1, -1, -1, -1, 50, -1, -1, -1, -1, 55,
+ -1, 57, 58, -1, 60, 20, 21, 63, -1, 24,
+ 66, -1, 27, 28, -1, 71, -1, -1, 33, 34,
+ 76, 36, -1, -1, 39, -1, -1, -1, -1, 44,
+ -1, -1, -1, -1, -1, 50, -1, -1, -1, -1,
+ 55, -1, 57, 58, -1, 60, -1, 62, 63, -1,
+ -1, 66, -1, -1, -1, -1, 71, -1, 20, 21,
+ -1, 76, 24, -1, -1, 27, 28, -1, -1, -1,
+ -1, 33, 34, -1, 36, -1, -1, 39, -1, -1,
+ -1, -1, 44, -1, -1, -1, -1, -1, 50, -1,
+ -1, -1, -1, 55, -1, 57, 58, -1, 60, -1,
+ -1, 63, -1, -1, 66, -1, -1, -1, -1, 71,
+ -1, -1, -1, -1, 76
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 48, 88, 89, 49, 0, 90, 4, 3, 20,
- 21, 24, 27, 28, 33, 34, 36, 39, 44, 50,
- 54, 55, 57, 58, 60, 63, 66, 71, 76, 93,
- 94, 95, 96, 105, 131, 135, 136, 139, 140, 141,
- 145, 96, 97, 98, 145, 100, 101, 145, 7, 8,
- 9, 51, 52, 53, 56, 67, 68, 69, 70, 73,
- 78, 96, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, 22,
- 23, 24, 36, 39, 117, 4, 34, 38, 71, 103,
- 146, 42, 145, 45, 145, 96, 59, 61, 94, 117,
- 4, 71, 6, 75, 76, 112, 113, 114, 115, 117,
- 74, 22, 23, 76, 112, 115, 75, 6, 76, 75,
- 72, 122, 145, 130, 112, 14, 32, 13, 12, 11,
- 10, 15, 16, 17, 18, 72, 79, 80, 81, 78,
- 82, 19, 83, 84, 85, 86, 146, 117, 91, 92,
- 93, 145, 72, 117, 4, 112, 64, 65, 77, 94,
- 114, 114, 117, 72, 75, 145, 145, 145, 97, 68,
- 69, 73, 99, 134, 100, 78, 102, 132, 118, 4,
- 94, 119, 120, 121, 122, 124, 124, 124, 124, 124,
- 124, 124, 125, 126, 126, 127, 128, 129, 129, 130,
- 91, 146, 37, 92, 43, 117, 146, 21, 137, 138,
- 139, 140, 141, 72, 62, 73, 77, 117, 114, 76,
- 115, 142, 142, 77, 75, 133, 91, 29, 31, 106,
- 35, 91, 103, 117, 40, 45, 111, 98, 31, 4,
- 4, 24, 66, 117, 46, 47, 143, 144, 145, 4,
- 4, 99, 30, 107, 108, 109, 94, 28, 37, 117,
- 146, 117, 29, 116, 117, 31, 4, 54, 137, 137,
- 25, 26, 55, 4, 145, 145, 77, 75, 115, 91,
- 91, 117, 29, 110, 108, 106, 91, 41, 104, 146,
- 146, 75, 44, 137, 4, 66, 66, 66, 137, 115,
- 115, 143, 31, 31, 32, 4, 31, 62, 117, 146,
- 92, 91, 116, 142, 76, 76, 22, 23, 4, 91,
- 28, 91, 111, 4, 144, 144, 91, 62, 91, 77,
- 77, 31, 4, 4, 24, 91, 91, 31, 31, 24,
- 24
+ 0, 48, 88, 89, 49, 0, 90, 4, 71, 146,
+ 3, 20, 21, 24, 27, 28, 33, 34, 36, 39,
+ 44, 50, 54, 55, 57, 58, 60, 63, 66, 71,
+ 76, 93, 94, 95, 96, 105, 131, 135, 136, 139,
+ 140, 141, 145, 146, 146, 96, 97, 98, 145, 100,
+ 101, 145, 7, 8, 9, 51, 52, 53, 56, 67,
+ 68, 69, 70, 73, 78, 96, 117, 118, 119, 120,
+ 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
+ 131, 132, 133, 22, 23, 24, 36, 39, 117, 34,
+ 38, 103, 146, 42, 145, 45, 145, 96, 59, 61,
+ 94, 117, 4, 71, 6, 75, 76, 112, 113, 114,
+ 115, 117, 74, 22, 23, 76, 112, 115, 75, 6,
+ 76, 75, 72, 122, 145, 130, 112, 14, 32, 13,
+ 12, 11, 10, 15, 16, 17, 18, 72, 79, 80,
+ 81, 78, 82, 19, 83, 84, 85, 86, 146, 117,
+ 91, 92, 93, 145, 72, 117, 146, 112, 64, 65,
+ 77, 94, 114, 114, 117, 72, 75, 145, 145, 145,
+ 97, 68, 69, 73, 99, 134, 100, 78, 102, 132,
+ 118, 4, 94, 119, 120, 121, 122, 124, 124, 124,
+ 124, 124, 124, 124, 125, 126, 126, 127, 128, 129,
+ 129, 130, 91, 146, 37, 92, 43, 117, 146, 21,
+ 137, 138, 139, 140, 141, 72, 62, 73, 77, 117,
+ 114, 76, 115, 142, 142, 77, 75, 133, 91, 29,
+ 31, 106, 35, 91, 103, 117, 40, 45, 111, 98,
+ 31, 146, 146, 24, 66, 117, 46, 47, 143, 144,
+ 145, 146, 146, 99, 30, 107, 108, 109, 94, 28,
+ 37, 117, 146, 117, 29, 116, 117, 31, 146, 54,
+ 137, 137, 25, 26, 55, 146, 145, 145, 77, 75,
+ 115, 91, 91, 117, 29, 110, 108, 106, 91, 41,
+ 104, 146, 146, 75, 44, 137, 146, 66, 66, 66,
+ 137, 115, 115, 143, 31, 31, 32, 4, 31, 62,
+ 117, 146, 92, 91, 116, 142, 76, 76, 22, 23,
+ 4, 91, 28, 91, 111, 146, 144, 144, 91, 62,
+ 91, 77, 77, 31, 146, 146, 24, 91, 91, 31,
+ 31, 24, 24
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -996,7 +1004,7 @@ static const yytype_uint8 yyr1[] =
132, 132, 133, 133, 133, 133, 134, 134, 134, 135,
135, 136, 137, 137, 137, 137, 137, 138, 138, 138,
139, 139, 140, 140, 141, 141, 141, 142, 142, 143,
- 143, 144, 144, 144, 145, 145, 146, 146
+ 143, 144, 144, 144, 145, 145, 146, 146, 146, 146
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1018,7 +1026,7 @@ static const yytype_uint8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
1, 7, 0, 3, 4, 4, 3, 9, 11, 11,
8, 8, 0, 1, 2, 1, 1, 1, 3, 1,
- 3, 2, 3, 3, 1, 1, 1, 1
+ 3, 2, 3, 3, 1, 1, 1, 1, 2, 2
};
@@ -1701,964 +1709,964 @@ yyreduce:
switch (yyn)
{
case 2:
-#line 147 "parser.y" /* yacc.c:1646 */
+#line 142 "parser.y" /* yacc.c:1646 */
{ parse_complete(ctx, (yyvsp[-2].boolean)); }
-#line 1712 "parser.tab.c" /* yacc.c:1646 */
+#line 1715 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 3:
-#line 150 "parser.y" /* yacc.c:1646 */
+#line 145 "parser.y" /* yacc.c:1646 */
{ (yyval.boolean) = FALSE; }
-#line 1718 "parser.tab.c" /* yacc.c:1646 */
+#line 1721 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 4:
-#line 151 "parser.y" /* yacc.c:1646 */
+#line 146 "parser.y" /* yacc.c:1646 */
{ (yyval.boolean) = TRUE; }
-#line 1724 "parser.tab.c" /* yacc.c:1646 */
+#line 1727 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 6:
-#line 155 "parser.y" /* yacc.c:1646 */
+#line 150 "parser.y" /* yacc.c:1646 */
{ source_add_statement(ctx, (yyvsp[0].statement)); }
-#line 1730 "parser.tab.c" /* yacc.c:1646 */
+#line 1733 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 7:
-#line 156 "parser.y" /* yacc.c:1646 */
+#line 151 "parser.y" /* yacc.c:1646 */
{ source_add_class(ctx, (yyvsp[0].class_decl)); }
-#line 1736 "parser.tab.c" /* yacc.c:1646 */
+#line 1739 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 8:
-#line 159 "parser.y" /* yacc.c:1646 */
+#line 154 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = NULL; }
-#line 1742 "parser.tab.c" /* yacc.c:1646 */
+#line 1745 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 9:
-#line 160 "parser.y" /* yacc.c:1646 */
+#line 155 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = (yyvsp[0].statement); }
-#line 1748 "parser.tab.c" /* yacc.c:1646 */
+#line 1751 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 10:
-#line 163 "parser.y" /* yacc.c:1646 */
+#line 158 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = (yyvsp[0].statement); }
-#line 1754 "parser.tab.c" /* yacc.c:1646 */
+#line 1757 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 11:
-#line 164 "parser.y" /* yacc.c:1646 */
+#line 159 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = link_statements((yyvsp[-1].statement), (yyvsp[0].statement));
}
-#line 1760 "parser.tab.c" /* yacc.c:1646 */
+#line 1763 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 12:
-#line 167 "parser.y" /* yacc.c:1646 */
+#line 162 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = (yyvsp[-1].statement); }
-#line 1766 "parser.tab.c" /* yacc.c:1646 */
+#line 1769 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 13:
-#line 170 "parser.y" /* yacc.c:1646 */
+#line 165 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = NULL; }
-#line 1772 "parser.tab.c" /* yacc.c:1646 */
+#line 1775 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 14:
-#line 171 "parser.y" /* yacc.c:1646 */
+#line 166 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = (yyvsp[0].statement); }
-#line 1778 "parser.tab.c" /* yacc.c:1646 */
+#line 1781 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 15:
-#line 172 "parser.y" /* yacc.c:1646 */
+#line 167 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = (yyvsp[0].statement); }
-#line 1784 "parser.tab.c" /* yacc.c:1646 */
+#line 1787 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 16:
-#line 173 "parser.y" /* yacc.c:1646 */
+#line 168 "parser.y" /* yacc.c:1646 */
{ (yyvsp[-2].statement)->next = (yyvsp[0].statement); (yyval.statement) =
(yyvsp[-2].statement); }
-#line 1790 "parser.tab.c" /* yacc.c:1646 */
+#line 1793 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 17:
-#line 174 "parser.y" /* yacc.c:1646 */
+#line 169 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = (yyvsp[-1].statement); }
-#line 1796 "parser.tab.c" /* yacc.c:1646 */
+#line 1799 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 18:
-#line 177 "parser.y" /* yacc.c:1646 */
+#line 172 "parser.y" /* yacc.c:1646 */
{ (yyvsp[-1].member)->args = (yyvsp[0].expression); (yyval.statement) =
new_call_statement(ctx, FALSE, (yyvsp[-1].member)); CHECK_ERROR; }
-#line 1802 "parser.tab.c" /* yacc.c:1646 */
+#line 1805 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 19:
-#line 178 "parser.y" /* yacc.c:1646 */
+#line 173 "parser.y" /* yacc.c:1646 */
{ (yyvsp[-1].member)->args = (yyvsp[0].expression); (yyval.statement) =
new_call_statement(ctx, TRUE, (yyvsp[-1].member)); CHECK_ERROR; }
-#line 1808 "parser.tab.c" /* yacc.c:1646 */
+#line 1811 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 20:
-#line 180 "parser.y" /* yacc.c:1646 */
+#line 175 "parser.y" /* yacc.c:1646 */
{ (yyvsp[-3].member)->args = (yyvsp[-2].expression); (yyval.statement) =
new_assign_statement(ctx, (yyvsp[-3].member), (yyvsp[0].expression)); CHECK_ERROR; }
-#line 1814 "parser.tab.c" /* yacc.c:1646 */
+#line 1817 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 21:
-#line 181 "parser.y" /* yacc.c:1646 */
+#line 176 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_dim_statement(ctx, (yyvsp[0].dim_decl)); CHECK_ERROR; }
-#line 1820 "parser.tab.c" /* yacc.c:1646 */
+#line 1823 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 22:
-#line 182 "parser.y" /* yacc.c:1646 */
+#line 177 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = (yyvsp[0].statement); }
-#line 1826 "parser.tab.c" /* yacc.c:1646 */
+#line 1829 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 23:
-#line 184 "parser.y" /* yacc.c:1646 */
+#line 179 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_while_statement(ctx, STAT_WHILE, (yyvsp[-3].expression),
(yyvsp[-1].statement)); CHECK_ERROR; }
-#line 1832 "parser.tab.c" /* yacc.c:1646 */
+#line 1835 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 24:
-#line 186 "parser.y" /* yacc.c:1646 */
+#line 181 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_while_statement(ctx, (yyvsp[-4].boolean) ? STAT_WHILELOOP :
STAT_UNTIL, (yyvsp[-3].expression), (yyvsp[-1].statement));
CHECK_ERROR; }
-#line 1839 "parser.tab.c" /* yacc.c:1646 */
+#line 1842 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 25:
-#line 189 "parser.y" /* yacc.c:1646 */
+#line 184 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_while_statement(ctx, (yyvsp[-1].boolean) ? STAT_DOWHILE :
STAT_DOUNTIL, (yyvsp[0].expression), (yyvsp[-3].statement));
CHECK_ERROR; }
-#line 1846 "parser.tab.c" /* yacc.c:1646 */
+#line 1849 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 26:
-#line 191 "parser.y" /* yacc.c:1646 */
+#line 186 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_while_statement(ctx, STAT_DOWHILE, NULL,
(yyvsp[-1].statement)); CHECK_ERROR; }
-#line 1852 "parser.tab.c" /* yacc.c:1646 */
+#line 1855 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 27:
-#line 192 "parser.y" /* yacc.c:1646 */
+#line 187 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_function_statement(ctx, (yyvsp[0].func_decl)); CHECK_ERROR;
}
-#line 1858 "parser.tab.c" /* yacc.c:1646 */
+#line 1861 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 28:
-#line 193 "parser.y" /* yacc.c:1646 */
+#line 188 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_statement(ctx, STAT_EXITDO, 0); CHECK_ERROR; }
-#line 1864 "parser.tab.c" /* yacc.c:1646 */
+#line 1867 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 29:
-#line 194 "parser.y" /* yacc.c:1646 */
+#line 189 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_statement(ctx, STAT_EXITFOR, 0); CHECK_ERROR; }
-#line 1870 "parser.tab.c" /* yacc.c:1646 */
+#line 1873 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 30:
-#line 195 "parser.y" /* yacc.c:1646 */
+#line 190 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_statement(ctx, STAT_EXITFUNC, 0); CHECK_ERROR; }
-#line 1876 "parser.tab.c" /* yacc.c:1646 */
+#line 1879 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 31:
-#line 196 "parser.y" /* yacc.c:1646 */
+#line 191 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_statement(ctx, STAT_EXITPROP, 0); CHECK_ERROR; }
-#line 1882 "parser.tab.c" /* yacc.c:1646 */
+#line 1885 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 32:
-#line 197 "parser.y" /* yacc.c:1646 */
+#line 192 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_statement(ctx, STAT_EXITSUB, 0); CHECK_ERROR; }
-#line 1888 "parser.tab.c" /* yacc.c:1646 */
+#line 1891 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 33:
-#line 199 "parser.y" /* yacc.c:1646 */
+#line 194 "parser.y" /* yacc.c:1646 */
{ (yyvsp[-3].member)->args = (yyvsp[-2].expression); (yyval.statement) =
new_set_statement(ctx, (yyvsp[-3].member), (yyvsp[0].expression)); CHECK_ERROR; }
-#line 1894 "parser.tab.c" /* yacc.c:1646 */
+#line 1897 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 34:
-#line 200 "parser.y" /* yacc.c:1646 */
+#line 195 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_statement(ctx, STAT_STOP, 0); CHECK_ERROR; }
-#line 1900 "parser.tab.c" /* yacc.c:1646 */
+#line 1903 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 35:
-#line 201 "parser.y" /* yacc.c:1646 */
+#line 196 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_onerror_statement(ctx, TRUE); CHECK_ERROR; }
-#line 1906 "parser.tab.c" /* yacc.c:1646 */
+#line 1909 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 36:
-#line 202 "parser.y" /* yacc.c:1646 */
+#line 197 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_onerror_statement(ctx, FALSE); CHECK_ERROR; }
-#line 1912 "parser.tab.c" /* yacc.c:1646 */
+#line 1915 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 37:
-#line 203 "parser.y" /* yacc.c:1646 */
+#line 198 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_const_statement(ctx, (yyvsp[0].const_decl)); CHECK_ERROR;
}
-#line 1918 "parser.tab.c" /* yacc.c:1646 */
+#line 1921 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 38:
-#line 205 "parser.y" /* yacc.c:1646 */
+#line 200 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_forto_statement(ctx, (yyvsp[-8].string),
(yyvsp[-6].expression), (yyvsp[-4].expression), (yyvsp[-3].expression),
(yyvsp[-1].statement)); CHECK_ERROR; }
-#line 1924 "parser.tab.c" /* yacc.c:1646 */
+#line 1927 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 39:
-#line 207 "parser.y" /* yacc.c:1646 */
+#line 202 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_foreach_statement(ctx, (yyvsp[-5].string),
(yyvsp[-3].expression), (yyvsp[-1].statement)); }
-#line 1930 "parser.tab.c" /* yacc.c:1646 */
+#line 1933 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 40:
-#line 209 "parser.y" /* yacc.c:1646 */
+#line 204 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_select_statement(ctx, (yyvsp[-4].expression),
(yyvsp[-2].case_clausule)); }
-#line 1936 "parser.tab.c" /* yacc.c:1646 */
+#line 1939 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 41:
-#line 212 "parser.y" /* yacc.c:1646 */
+#line 207 "parser.y" /* yacc.c:1646 */
{ (yyval.member) = new_member_expression(ctx, NULL, (yyvsp[0].string)); CHECK_ERROR;
}
-#line 1942 "parser.tab.c" /* yacc.c:1646 */
+#line 1945 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 42:
-#line 213 "parser.y" /* yacc.c:1646 */
+#line 208 "parser.y" /* yacc.c:1646 */
{ (yyval.member) = new_member_expression(ctx, (yyvsp[-2].expression),
(yyvsp[0].string)); CHECK_ERROR; }
-#line 1948 "parser.tab.c" /* yacc.c:1646 */
+#line 1951 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 43:
-#line 216 "parser.y" /* yacc.c:1646 */
+#line 211 "parser.y" /* yacc.c:1646 */
{ (yyval.dim_decl) = (yyvsp[0].dim_decl); }
-#line 1954 "parser.tab.c" /* yacc.c:1646 */
+#line 1957 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 44:
-#line 217 "parser.y" /* yacc.c:1646 */
+#line 212 "parser.y" /* yacc.c:1646 */
{ (yyvsp[-2].dim_decl)->next = (yyvsp[0].dim_decl); (yyval.dim_decl) =
(yyvsp[-2].dim_decl); }
-#line 1960 "parser.tab.c" /* yacc.c:1646 */
+#line 1963 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 45:
-#line 220 "parser.y" /* yacc.c:1646 */
+#line 215 "parser.y" /* yacc.c:1646 */
{ (yyval.dim_decl) = new_dim_decl(ctx, (yyvsp[0].string), FALSE, NULL); CHECK_ERROR;
}
-#line 1966 "parser.tab.c" /* yacc.c:1646 */
+#line 1969 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 46:
-#line 221 "parser.y" /* yacc.c:1646 */
+#line 216 "parser.y" /* yacc.c:1646 */
{ (yyval.dim_decl) = new_dim_decl(ctx, (yyvsp[-3].string), TRUE,
(yyvsp[-1].dim_list)); CHECK_ERROR; }
-#line 1972 "parser.tab.c" /* yacc.c:1646 */
+#line 1975 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 47:
-#line 222 "parser.y" /* yacc.c:1646 */
+#line 217 "parser.y" /* yacc.c:1646 */
{ (yyval.dim_decl) = new_dim_decl(ctx, (yyvsp[-1].string), TRUE, NULL); CHECK_ERROR;
}
-#line 1978 "parser.tab.c" /* yacc.c:1646 */
+#line 1981 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 48:
-#line 225 "parser.y" /* yacc.c:1646 */
+#line 220 "parser.y" /* yacc.c:1646 */
{ (yyval.dim_list) = new_dim(ctx, (yyvsp[0].uint), NULL); }
-#line 1984 "parser.tab.c" /* yacc.c:1646 */
+#line 1987 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 49:
-#line 226 "parser.y" /* yacc.c:1646 */
+#line 221 "parser.y" /* yacc.c:1646 */
{ (yyval.dim_list) = new_dim(ctx, (yyvsp[-2].uint), (yyvsp[0].dim_list)); }
-#line 1990 "parser.tab.c" /* yacc.c:1646 */
+#line 1993 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 50:
-#line 229 "parser.y" /* yacc.c:1646 */
+#line 224 "parser.y" /* yacc.c:1646 */
{ (yyval.const_decl) = (yyvsp[0].const_decl); }
-#line 1996 "parser.tab.c" /* yacc.c:1646 */
+#line 1999 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 51:
-#line 230 "parser.y" /* yacc.c:1646 */
+#line 225 "parser.y" /* yacc.c:1646 */
{ (yyvsp[-2].const_decl)->next = (yyvsp[0].const_decl); (yyval.const_decl) =
(yyvsp[-2].const_decl); }
-#line 2002 "parser.tab.c" /* yacc.c:1646 */
+#line 2005 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 52:
-#line 233 "parser.y" /* yacc.c:1646 */
+#line 228 "parser.y" /* yacc.c:1646 */
{ (yyval.const_decl) = new_const_decl(ctx, (yyvsp[-2].string),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2008 "parser.tab.c" /* yacc.c:1646 */
+#line 2011 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 53:
-#line 236 "parser.y" /* yacc.c:1646 */
+#line 231 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2014 "parser.tab.c" /* yacc.c:1646 */
+#line 2017 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 54:
-#line 237 "parser.y" /* yacc.c:1646 */
+#line 232 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_unary_expression(ctx, EXPR_NEG, (yyvsp[0].expression));
CHECK_ERROR; }
-#line 2020 "parser.tab.c" /* yacc.c:1646 */
+#line 2023 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 55:
-#line 240 "parser.y" /* yacc.c:1646 */
+#line 235 "parser.y" /* yacc.c:1646 */
{ (yyval.boolean) = TRUE; }
-#line 2026 "parser.tab.c" /* yacc.c:1646 */
+#line 2029 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 56:
-#line 241 "parser.y" /* yacc.c:1646 */
+#line 236 "parser.y" /* yacc.c:1646 */
{ (yyval.boolean) = FALSE; }
-#line 2032 "parser.tab.c" /* yacc.c:1646 */
+#line 2035 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 57:
-#line 244 "parser.y" /* yacc.c:1646 */
+#line 239 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = NULL;}
-#line 2038 "parser.tab.c" /* yacc.c:1646 */
+#line 2041 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 58:
-#line 245 "parser.y" /* yacc.c:1646 */
+#line 240 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2044 "parser.tab.c" /* yacc.c:1646 */
+#line 2047 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 59:
-#line 249 "parser.y" /* yacc.c:1646 */
+#line 244 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_if_statement(ctx, (yyvsp[-7].expression),
(yyvsp[-4].statement), (yyvsp[-3].elseif), (yyvsp[-2].statement)); CHECK_ERROR; }
-#line 2050 "parser.tab.c" /* yacc.c:1646 */
+#line 2053 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 60:
-#line 250 "parser.y" /* yacc.c:1646 */
+#line 245 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_if_statement(ctx, (yyvsp[-3].expression),
(yyvsp[-1].statement), NULL, NULL); CHECK_ERROR; }
-#line 2056 "parser.tab.c" /* yacc.c:1646 */
+#line 2059 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 61:
-#line 252 "parser.y" /* yacc.c:1646 */
+#line 247 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = new_if_statement(ctx, (yyvsp[-5].expression),
(yyvsp[-3].statement), NULL, (yyvsp[-1].statement)); CHECK_ERROR; }
-#line 2062 "parser.tab.c" /* yacc.c:1646 */
+#line 2065 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 64:
-#line 259 "parser.y" /* yacc.c:1646 */
+#line 254 "parser.y" /* yacc.c:1646 */
{ (yyval.elseif) = NULL; }
-#line 2068 "parser.tab.c" /* yacc.c:1646 */
+#line 2071 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 65:
-#line 260 "parser.y" /* yacc.c:1646 */
+#line 255 "parser.y" /* yacc.c:1646 */
{ (yyval.elseif) = (yyvsp[0].elseif); }
-#line 2074 "parser.tab.c" /* yacc.c:1646 */
+#line 2077 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 66:
-#line 263 "parser.y" /* yacc.c:1646 */
+#line 258 "parser.y" /* yacc.c:1646 */
{ (yyval.elseif) = (yyvsp[0].elseif); }
-#line 2080 "parser.tab.c" /* yacc.c:1646 */
+#line 2083 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 67:
-#line 264 "parser.y" /* yacc.c:1646 */
+#line 259 "parser.y" /* yacc.c:1646 */
{ (yyvsp[-1].elseif)->next = (yyvsp[0].elseif); (yyval.elseif) =
(yyvsp[-1].elseif); }
-#line 2086 "parser.tab.c" /* yacc.c:1646 */
+#line 2089 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 68:
-#line 268 "parser.y" /* yacc.c:1646 */
+#line 263 "parser.y" /* yacc.c:1646 */
{ (yyval.elseif) = new_elseif_decl(ctx, (yyvsp[-3].expression),
(yyvsp[0].statement)); }
-#line 2092 "parser.tab.c" /* yacc.c:1646 */
+#line 2095 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 69:
-#line 271 "parser.y" /* yacc.c:1646 */
+#line 266 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = NULL; }
-#line 2098 "parser.tab.c" /* yacc.c:1646 */
+#line 2101 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 70:
-#line 272 "parser.y" /* yacc.c:1646 */
+#line 267 "parser.y" /* yacc.c:1646 */
{ (yyval.statement) = (yyvsp[0].statement); }
-#line 2104 "parser.tab.c" /* yacc.c:1646 */
+#line 2107 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 71:
-#line 275 "parser.y" /* yacc.c:1646 */
+#line 270 "parser.y" /* yacc.c:1646 */
{ (yyval.case_clausule) = NULL; }
-#line 2110 "parser.tab.c" /* yacc.c:1646 */
+#line 2113 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 72:
-#line 276 "parser.y" /* yacc.c:1646 */
+#line 271 "parser.y" /* yacc.c:1646 */
{ (yyval.case_clausule) = new_case_clausule(ctx, NULL, (yyvsp[0].statement), NULL);
}
-#line 2116 "parser.tab.c" /* yacc.c:1646 */
+#line 2119 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 73:
-#line 278 "parser.y" /* yacc.c:1646 */
+#line 273 "parser.y" /* yacc.c:1646 */
{ (yyval.case_clausule) = new_case_clausule(ctx, (yyvsp[-3].expression),
(yyvsp[-1].statement), (yyvsp[0].case_clausule)); }
-#line 2122 "parser.tab.c" /* yacc.c:1646 */
+#line 2125 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 74:
-#line 281 "parser.y" /* yacc.c:1646 */
+#line 276 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = NULL; }
-#line 2128 "parser.tab.c" /* yacc.c:1646 */
+#line 2131 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 75:
-#line 282 "parser.y" /* yacc.c:1646 */
+#line 277 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[-1].expression); }
-#line 2134 "parser.tab.c" /* yacc.c:1646 */
+#line 2137 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 76:
-#line 285 "parser.y" /* yacc.c:1646 */
+#line 280 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = NULL; }
-#line 2140 "parser.tab.c" /* yacc.c:1646 */
+#line 2143 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 77:
-#line 286 "parser.y" /* yacc.c:1646 */
+#line 281 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2146 "parser.tab.c" /* yacc.c:1646 */
+#line 2149 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 78:
-#line 289 "parser.y" /* yacc.c:1646 */
+#line 284 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2152 "parser.tab.c" /* yacc.c:1646 */
+#line 2155 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 79:
-#line 290 "parser.y" /* yacc.c:1646 */
+#line 285 "parser.y" /* yacc.c:1646 */
{ (yyvsp[-2].expression)->next = (yyvsp[0].expression); (yyval.expression) =
(yyvsp[-2].expression); }
-#line 2158 "parser.tab.c" /* yacc.c:1646 */
+#line 2161 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 80:
-#line 291 "parser.y" /* yacc.c:1646 */
+#line 286 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_expression(ctx, EXPR_NOARG, 0); CHECK_ERROR;
(yyval.expression)->next = (yyvsp[0].expression); }
-#line 2164 "parser.tab.c" /* yacc.c:1646 */
+#line 2167 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 83:
-#line 298 "parser.y" /* yacc.c:1646 */
+#line 293 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2170 "parser.tab.c" /* yacc.c:1646 */
+#line 2173 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 84:
-#line 299 "parser.y" /* yacc.c:1646 */
+#line 294 "parser.y" /* yacc.c:1646 */
{ (yyvsp[-2].expression)->next = (yyvsp[0].expression); (yyval.expression) =
(yyvsp[-2].expression); }
-#line 2176 "parser.tab.c" /* yacc.c:1646 */
+#line 2179 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 85:
-#line 302 "parser.y" /* yacc.c:1646 */
+#line 297 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2182 "parser.tab.c" /* yacc.c:1646 */
+#line 2185 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 86:
-#line 303 "parser.y" /* yacc.c:1646 */
+#line 298 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_IMP, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2188 "parser.tab.c" /* yacc.c:1646 */
+#line 2191 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 87:
-#line 306 "parser.y" /* yacc.c:1646 */
+#line 301 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2194 "parser.tab.c" /* yacc.c:1646 */
+#line 2197 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 88:
-#line 307 "parser.y" /* yacc.c:1646 */
+#line 302 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_EQV, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2200 "parser.tab.c" /* yacc.c:1646 */
+#line 2203 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 89:
-#line 310 "parser.y" /* yacc.c:1646 */
+#line 305 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2206 "parser.tab.c" /* yacc.c:1646 */
+#line 2209 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 90:
-#line 311 "parser.y" /* yacc.c:1646 */
+#line 306 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_XOR, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2212 "parser.tab.c" /* yacc.c:1646 */
+#line 2215 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 91:
-#line 314 "parser.y" /* yacc.c:1646 */
+#line 309 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2218 "parser.tab.c" /* yacc.c:1646 */
+#line 2221 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 92:
-#line 315 "parser.y" /* yacc.c:1646 */
+#line 310 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_OR, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2224 "parser.tab.c" /* yacc.c:1646 */
+#line 2227 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 93:
-#line 318 "parser.y" /* yacc.c:1646 */
+#line 313 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2230 "parser.tab.c" /* yacc.c:1646 */
+#line 2233 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 94:
-#line 319 "parser.y" /* yacc.c:1646 */
+#line 314 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_AND, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2236 "parser.tab.c" /* yacc.c:1646 */
+#line 2239 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 95:
-#line 322 "parser.y" /* yacc.c:1646 */
+#line 317 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2242 "parser.tab.c" /* yacc.c:1646 */
+#line 2245 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 96:
-#line 323 "parser.y" /* yacc.c:1646 */
+#line 318 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_unary_expression(ctx, EXPR_NOT, (yyvsp[0].expression));
CHECK_ERROR; }
-#line 2248 "parser.tab.c" /* yacc.c:1646 */
+#line 2251 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 97:
-#line 326 "parser.y" /* yacc.c:1646 */
+#line 321 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2254 "parser.tab.c" /* yacc.c:1646 */
+#line 2257 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 98:
-#line 327 "parser.y" /* yacc.c:1646 */
+#line 322 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_EQUAL, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2260 "parser.tab.c" /* yacc.c:1646 */
+#line 2263 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 99:
-#line 328 "parser.y" /* yacc.c:1646 */
+#line 323 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_NEQUAL,
(yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; }
-#line 2266 "parser.tab.c" /* yacc.c:1646 */
+#line 2269 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 100:
-#line 329 "parser.y" /* yacc.c:1646 */
+#line 324 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_GT, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2272 "parser.tab.c" /* yacc.c:1646 */
+#line 2275 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 101:
-#line 330 "parser.y" /* yacc.c:1646 */
+#line 325 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_LT, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2278 "parser.tab.c" /* yacc.c:1646 */
+#line 2281 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 102:
-#line 331 "parser.y" /* yacc.c:1646 */
+#line 326 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_GTEQ, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2284 "parser.tab.c" /* yacc.c:1646 */
+#line 2287 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 103:
-#line 332 "parser.y" /* yacc.c:1646 */
+#line 327 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_LTEQ, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2290 "parser.tab.c" /* yacc.c:1646 */
+#line 2293 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 104:
-#line 333 "parser.y" /* yacc.c:1646 */
+#line 328 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_IS, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2296 "parser.tab.c" /* yacc.c:1646 */
+#line 2299 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 105:
-#line 336 "parser.y" /* yacc.c:1646 */
+#line 331 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2302 "parser.tab.c" /* yacc.c:1646 */
+#line 2305 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 106:
-#line 337 "parser.y" /* yacc.c:1646 */
+#line 332 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_CONCAT,
(yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; }
-#line 2308 "parser.tab.c" /* yacc.c:1646 */
+#line 2311 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 107:
-#line 340 "parser.y" /* yacc.c:1646 */
+#line 335 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2314 "parser.tab.c" /* yacc.c:1646 */
+#line 2317 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 108:
-#line 341 "parser.y" /* yacc.c:1646 */
+#line 336 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_ADD, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2320 "parser.tab.c" /* yacc.c:1646 */
+#line 2323 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 109:
-#line 342 "parser.y" /* yacc.c:1646 */
+#line 337 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_SUB, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2326 "parser.tab.c" /* yacc.c:1646 */
+#line 2329 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 110:
-#line 345 "parser.y" /* yacc.c:1646 */
+#line 340 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2332 "parser.tab.c" /* yacc.c:1646 */
+#line 2335 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 111:
-#line 346 "parser.y" /* yacc.c:1646 */
+#line 341 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_MOD, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2338 "parser.tab.c" /* yacc.c:1646 */
+#line 2341 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 112:
-#line 349 "parser.y" /* yacc.c:1646 */
+#line 344 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2344 "parser.tab.c" /* yacc.c:1646 */
+#line 2347 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 113:
-#line 351 "parser.y" /* yacc.c:1646 */
+#line 346 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_IDIV, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2350 "parser.tab.c" /* yacc.c:1646 */
+#line 2353 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 114:
-#line 354 "parser.y" /* yacc.c:1646 */
+#line 349 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2356 "parser.tab.c" /* yacc.c:1646 */
+#line 2359 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 115:
-#line 356 "parser.y" /* yacc.c:1646 */
+#line 351 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_MUL, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2362 "parser.tab.c" /* yacc.c:1646 */
+#line 2365 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 116:
-#line 358 "parser.y" /* yacc.c:1646 */
+#line 353 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_DIV, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2368 "parser.tab.c" /* yacc.c:1646 */
+#line 2371 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 117:
-#line 361 "parser.y" /* yacc.c:1646 */
+#line 356 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2374 "parser.tab.c" /* yacc.c:1646 */
+#line 2377 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 118:
-#line 362 "parser.y" /* yacc.c:1646 */
+#line 357 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_binary_expression(ctx, EXPR_EXP, (yyvsp[-2].expression),
(yyvsp[0].expression)); CHECK_ERROR; }
-#line 2380 "parser.tab.c" /* yacc.c:1646 */
+#line 2383 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 119:
-#line 365 "parser.y" /* yacc.c:1646 */
+#line 360 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2386 "parser.tab.c" /* yacc.c:1646 */
+#line 2389 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 120:
-#line 366 "parser.y" /* yacc.c:1646 */
+#line 361 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2392 "parser.tab.c" /* yacc.c:1646 */
+#line 2395 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 121:
-#line 367 "parser.y" /* yacc.c:1646 */
+#line 362 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_new_expression(ctx, (yyvsp[0].string)); CHECK_ERROR; }
-#line 2398 "parser.tab.c" /* yacc.c:1646 */
+#line 2401 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 122:
-#line 368 "parser.y" /* yacc.c:1646 */
+#line 363 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_unary_expression(ctx, EXPR_NEG, (yyvsp[0].expression));
CHECK_ERROR; }
-#line 2404 "parser.tab.c" /* yacc.c:1646 */
+#line 2407 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 123:
-#line 371 "parser.y" /* yacc.c:1646 */
+#line 366 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2410 "parser.tab.c" /* yacc.c:1646 */
+#line 2413 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 124:
-#line 372 "parser.y" /* yacc.c:1646 */
+#line 367 "parser.y" /* yacc.c:1646 */
{ (yyvsp[-1].member)->args = (yyvsp[0].expression); (yyval.expression) =
&(yyvsp[-1].member)->expr; }
-#line 2416 "parser.tab.c" /* yacc.c:1646 */
+#line 2419 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 125:
-#line 375 "parser.y" /* yacc.c:1646 */
+#line 370 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_bool_expression(ctx, VARIANT_TRUE); CHECK_ERROR; }
-#line 2422 "parser.tab.c" /* yacc.c:1646 */
+#line 2425 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 126:
-#line 376 "parser.y" /* yacc.c:1646 */
+#line 371 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_bool_expression(ctx, VARIANT_FALSE); CHECK_ERROR; }
-#line 2428 "parser.tab.c" /* yacc.c:1646 */
+#line 2431 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 127:
-#line 377 "parser.y" /* yacc.c:1646 */
+#line 372 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_string_expression(ctx, (yyvsp[0].string)); CHECK_ERROR; }
-#line 2434 "parser.tab.c" /* yacc.c:1646 */
+#line 2437 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 128:
-#line 378 "parser.y" /* yacc.c:1646 */
+#line 373 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = (yyvsp[0].expression); }
-#line 2440 "parser.tab.c" /* yacc.c:1646 */
+#line 2443 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 129:
-#line 379 "parser.y" /* yacc.c:1646 */
+#line 374 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_expression(ctx, EXPR_EMPTY, 0); CHECK_ERROR; }
-#line 2446 "parser.tab.c" /* yacc.c:1646 */
+#line 2449 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 130:
-#line 380 "parser.y" /* yacc.c:1646 */
+#line 375 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_expression(ctx, EXPR_NULL, 0); CHECK_ERROR; }
-#line 2452 "parser.tab.c" /* yacc.c:1646 */
+#line 2455 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 131:
-#line 381 "parser.y" /* yacc.c:1646 */
+#line 376 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_expression(ctx, EXPR_NOTHING, 0); CHECK_ERROR; }
-#line 2458 "parser.tab.c" /* yacc.c:1646 */
+#line 2461 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 132:
-#line 384 "parser.y" /* yacc.c:1646 */
+#line 379 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_long_expression(ctx, EXPR_USHORT, (yyvsp[0].lng));
CHECK_ERROR; }
-#line 2464 "parser.tab.c" /* yacc.c:1646 */
+#line 2467 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 133:
-#line 385 "parser.y" /* yacc.c:1646 */
+#line 380 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_long_expression(ctx, EXPR_USHORT, 0); CHECK_ERROR; }
-#line 2470 "parser.tab.c" /* yacc.c:1646 */
+#line 2473 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 134:
-#line 386 "parser.y" /* yacc.c:1646 */
+#line 381 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_long_expression(ctx, EXPR_ULONG, (yyvsp[0].lng));
CHECK_ERROR; }
-#line 2476 "parser.tab.c" /* yacc.c:1646 */
+#line 2479 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 135:
-#line 387 "parser.y" /* yacc.c:1646 */
+#line 382 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_double_expression(ctx, (yyvsp[0].dbl)); CHECK_ERROR; }
-#line 2482 "parser.tab.c" /* yacc.c:1646 */
+#line 2485 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 136:
-#line 390 "parser.y" /* yacc.c:1646 */
+#line 385 "parser.y" /* yacc.c:1646 */
{ (yyval.uint) = (yyvsp[0].lng); }
-#line 2488 "parser.tab.c" /* yacc.c:1646 */
+#line 2491 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 137:
-#line 391 "parser.y" /* yacc.c:1646 */
+#line 386 "parser.y" /* yacc.c:1646 */
{ (yyval.uint) = 0; }
-#line 2494 "parser.tab.c" /* yacc.c:1646 */
+#line 2497 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 138:
-#line 392 "parser.y" /* yacc.c:1646 */
+#line 387 "parser.y" /* yacc.c:1646 */
{ (yyval.uint) = (yyvsp[0].lng); }
-#line 2500 "parser.tab.c" /* yacc.c:1646 */
+#line 2503 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 139:
-#line 395 "parser.y" /* yacc.c:1646 */
+#line 390 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_unary_expression(ctx, EXPR_BRACKETS,
(yyvsp[-1].expression)); }
-#line 2506 "parser.tab.c" /* yacc.c:1646 */
+#line 2509 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 140:
-#line 396 "parser.y" /* yacc.c:1646 */
+#line 391 "parser.y" /* yacc.c:1646 */
{ (yyval.expression) = new_expression(ctx, EXPR_ME, 0); CHECK_ERROR; }
-#line 2512 "parser.tab.c" /* yacc.c:1646 */
+#line 2515 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 141:
-#line 399 "parser.y" /* yacc.c:1646 */
+#line 394 "parser.y" /* yacc.c:1646 */
{ (yyvsp[-3].class_decl)->name = (yyvsp[-5].string); (yyval.class_decl) =
(yyvsp[-3].class_decl); }
-#line 2518 "parser.tab.c" /* yacc.c:1646 */
+#line 2521 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 142:
-#line 402 "parser.y" /* yacc.c:1646 */
+#line 397 "parser.y" /* yacc.c:1646 */
{ (yyval.class_decl) = new_class_decl(ctx); }
-#line 2524 "parser.tab.c" /* yacc.c:1646 */
+#line 2527 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 143:
-#line 403 "parser.y" /* yacc.c:1646 */
+#line 398 "parser.y" /* yacc.c:1646 */
{ (yyval.class_decl) = add_class_function(ctx, (yyvsp[0].class_decl),
(yyvsp[-2].func_decl)); CHECK_ERROR; }
-#line 2530 "parser.tab.c" /* yacc.c:1646 */
+#line 2533 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 144:
-#line 405 "parser.y" /* yacc.c:1646 */
+#line 400 "parser.y" /* yacc.c:1646 */
{ dim_decl_t *dim_decl = new_dim_decl(ctx, (yyvsp[-2].string), FALSE, NULL);
CHECK_ERROR;
(yyval.class_decl) = add_dim_prop(ctx,
(yyvsp[0].class_decl), dim_decl, (yyvsp[-3].uint)); CHECK_ERROR; }
-#line 2537 "parser.tab.c" /* yacc.c:1646 */
+#line 2540 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 145:
-#line 407 "parser.y" /* yacc.c:1646 */
+#line 402 "parser.y" /* yacc.c:1646 */
{ (yyval.class_decl) = add_dim_prop(ctx, (yyvsp[0].class_decl), (yyvsp[-2].dim_decl),
0); CHECK_ERROR; }
-#line 2543 "parser.tab.c" /* yacc.c:1646 */
+#line 2546 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 146:
-#line 408 "parser.y" /* yacc.c:1646 */
+#line 403 "parser.y" /* yacc.c:1646 */
{ (yyval.class_decl) = add_class_function(ctx, (yyvsp[0].class_decl),
(yyvsp[-2].func_decl)); CHECK_ERROR; }
-#line 2549 "parser.tab.c" /* yacc.c:1646 */
+#line 2552 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 147:
-#line 412 "parser.y" /* yacc.c:1646 */
+#line 407 "parser.y" /* yacc.c:1646 */
{ (yyval.func_decl) = new_function_decl(ctx, (yyvsp[-5].string), FUNC_PROPGET,
(yyvsp[-8].uint), (yyvsp[-4].arg_decl), (yyvsp[-2].statement)); CHECK_ERROR; }
-#line 2555 "parser.tab.c" /* yacc.c:1646 */
+#line 2558 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 148:
-#line 414 "parser.y" /* yacc.c:1646 */
+#line 409 "parser.y" /* yacc.c:1646 */
{ (yyval.func_decl) = new_function_decl(ctx, (yyvsp[-7].string), FUNC_PROPLET,
(yyvsp[-10].uint), (yyvsp[-5].arg_decl), (yyvsp[-2].statement)); CHECK_ERROR; }
-#line 2561 "parser.tab.c" /* yacc.c:1646 */
+#line 2564 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 149:
-#line 416 "parser.y" /* yacc.c:1646 */
+#line 411 "parser.y" /* yacc.c:1646 */
{ (yyval.func_decl) = new_function_decl(ctx, (yyvsp[-7].string), FUNC_PROPSET,
(yyvsp[-10].uint), (yyvsp[-5].arg_decl), (yyvsp[-2].statement)); CHECK_ERROR; }
-#line 2567 "parser.tab.c" /* yacc.c:1646 */
+#line 2570 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 150:
-#line 420 "parser.y" /* yacc.c:1646 */
+#line 415 "parser.y" /* yacc.c:1646 */
{ (yyval.func_decl) = new_function_decl(ctx, (yyvsp[-5].string), FUNC_SUB,
(yyvsp[-7].uint), (yyvsp[-4].arg_decl), (yyvsp[-2].statement)); CHECK_ERROR; }
-#line 2573 "parser.tab.c" /* yacc.c:1646 */
+#line 2576 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 151:
-#line 422 "parser.y" /* yacc.c:1646 */
+#line 417 "parser.y" /* yacc.c:1646 */
{ (yyval.func_decl) = new_function_decl(ctx, (yyvsp[-5].string), FUNC_FUNCTION,
(yyvsp[-7].uint), (yyvsp[-4].arg_decl), (yyvsp[-2].statement)); CHECK_ERROR; }
-#line 2579 "parser.tab.c" /* yacc.c:1646 */
+#line 2582 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 152:
-#line 425 "parser.y" /* yacc.c:1646 */
+#line 420 "parser.y" /* yacc.c:1646 */
{ (yyval.uint) = 0; }
-#line 2585 "parser.tab.c" /* yacc.c:1646 */
+#line 2588 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 153:
-#line 426 "parser.y" /* yacc.c:1646 */
+#line 421 "parser.y" /* yacc.c:1646 */
{ (yyval.uint) = (yyvsp[0].uint); }
-#line 2591 "parser.tab.c" /* yacc.c:1646 */
+#line 2594 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 154:
-#line 429 "parser.y" /* yacc.c:1646 */
+#line 424 "parser.y" /* yacc.c:1646 */
{ (yyval.uint) = STORAGE_IS_DEFAULT; }
-#line 2597 "parser.tab.c" /* yacc.c:1646 */
+#line 2600 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 155:
-#line 430 "parser.y" /* yacc.c:1646 */
+#line 425 "parser.y" /* yacc.c:1646 */
{ (yyval.uint) = 0; }
-#line 2603 "parser.tab.c" /* yacc.c:1646 */
+#line 2606 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 156:
-#line 431 "parser.y" /* yacc.c:1646 */
+#line 426 "parser.y" /* yacc.c:1646 */
{ (yyval.uint) = STORAGE_IS_PRIVATE; }
-#line 2609 "parser.tab.c" /* yacc.c:1646 */
+#line 2612 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 157:
-#line 434 "parser.y" /* yacc.c:1646 */
+#line 429 "parser.y" /* yacc.c:1646 */
{ (yyval.arg_decl) = NULL; }
-#line 2615 "parser.tab.c" /* yacc.c:1646 */
+#line 2618 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 158:
-#line 435 "parser.y" /* yacc.c:1646 */
+#line 430 "parser.y" /* yacc.c:1646 */
{ (yyval.arg_decl) = (yyvsp[-1].arg_decl); }
-#line 2621 "parser.tab.c" /* yacc.c:1646 */
+#line 2624 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 159:
-#line 438 "parser.y" /* yacc.c:1646 */
+#line 433 "parser.y" /* yacc.c:1646 */
{ (yyval.arg_decl) = (yyvsp[0].arg_decl); }
-#line 2627 "parser.tab.c" /* yacc.c:1646 */
+#line 2630 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 160:
-#line 439 "parser.y" /* yacc.c:1646 */
+#line 434 "parser.y" /* yacc.c:1646 */
{ (yyvsp[-2].arg_decl)->next = (yyvsp[0].arg_decl); (yyval.arg_decl) =
(yyvsp[-2].arg_decl); }
-#line 2633 "parser.tab.c" /* yacc.c:1646 */
+#line 2636 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 161:
-#line 442 "parser.y" /* yacc.c:1646 */
+#line 437 "parser.y" /* yacc.c:1646 */
{ (yyval.arg_decl) = new_argument_decl(ctx, (yyvsp[-1].string), TRUE); }
-#line 2639 "parser.tab.c" /* yacc.c:1646 */
+#line 2642 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 162:
-#line 443 "parser.y" /* yacc.c:1646 */
+#line 438 "parser.y" /* yacc.c:1646 */
{ (yyval.arg_decl) = new_argument_decl(ctx, (yyvsp[-1].string), TRUE); }
-#line 2645 "parser.tab.c" /* yacc.c:1646 */
+#line 2648 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 163:
-#line 444 "parser.y" /* yacc.c:1646 */
+#line 439 "parser.y" /* yacc.c:1646 */
{ (yyval.arg_decl) = new_argument_decl(ctx, (yyvsp[-1].string), FALSE); }
-#line 2651 "parser.tab.c" /* yacc.c:1646 */
+#line 2654 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 164:
-#line 448 "parser.y" /* yacc.c:1646 */
+#line 443 "parser.y" /* yacc.c:1646 */
{ (yyval.string) = (yyvsp[0].string); }
-#line 2657 "parser.tab.c" /* yacc.c:1646 */
+#line 2660 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
case 165:
-#line 449 "parser.y" /* yacc.c:1646 */
+#line 444 "parser.y" /* yacc.c:1646 */
{ (yyval.string) = propertyW; }
-#line 2663 "parser.tab.c" /* yacc.c:1646 */
+#line 2666 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
break;
-#line 2667 "parser.tab.c" /* yacc.c:1646 */
+#line 2670 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /*
yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -2886,7 +2894,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 456 "parser.y" /* yacc.c:1906 */
+#line 453 "parser.y" /* yacc.c:1906 */
static int parser_error(parser_ctx_t *ctx, const char *str)
diff --git a/dll/win32/vbscript/parser.tab.h b/dll/win32/vbscript/parser.tab.h
index 6e55096456..513c2ef053 100644
--- a/dll/win32/vbscript/parser.tab.h
+++ b/dll/win32/vbscript/parser.tab.h
@@ -30,8 +30,8 @@
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
-#ifndef YY_PARSER_E_REACTOS_SYNC_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED
-# define YY_PARSER_E_REACTOS_SYNC_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED
+#ifndef YY_PARSER_E_REACTOSSYNC3_0_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED
+# define YY_PARSER_E_REACTOSSYNC3_0_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
@@ -121,7 +121,7 @@ extern int parser_debug;
typedef union YYSTYPE YYSTYPE;
union YYSTYPE
{
-#line 88 "parser.y" /* yacc.c:1909 */
+#line 83 "parser.y" /* yacc.c:1909 */
const WCHAR *string;
statement_t *statement;
@@ -150,4 +150,4 @@ union YYSTYPE
int parser_parse (parser_ctx_t *ctx);
-#endif /* !YY_PARSER_E_REACTOS_SYNC_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED */
+#endif /* !YY_PARSER_E_REACTOSSYNC3_0_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED */
diff --git a/dll/win32/vbscript/parser.y b/dll/win32/vbscript/parser.y
index 6b303eea35..34a07ad94b 100644
--- a/dll/win32/vbscript/parser.y
+++ b/dll/win32/vbscript/parser.y
@@ -19,11 +19,6 @@
%{
#include "vbscript.h"
-#include "parse.h"
-
-#include "wine/debug.h"
-
-WINE_DEFAULT_DEBUG_CHANNEL(vbscript);
static int parser_error(parser_ctx_t *,const char*);
@@ -148,7 +143,7 @@ Program
OptionExplicit_opt
: /* empty */ { $$ = FALSE; }
- | tOPTION tEXPLICIT tNL { $$ = TRUE; }
+ | tOPTION tEXPLICIT StSep { $$ = TRUE; }
SourceElements
: /* empty */
@@ -164,7 +159,7 @@ StatementsNl
| StatementNl StatementsNl { $$ = link_statements($1, $2); }
StatementNl
- : Statement tNL { $$ = $1; }
+ : Statement tNL { $$ = $1; }
Statement
: ':' { $$ = NULL; }
@@ -396,29 +391,29 @@ PrimaryExpression
| tME { $$ = new_expression(ctx, EXPR_ME, 0); CHECK_ERROR;
}
ClassDeclaration
- : tCLASS Identifier tNL ClassBody tEND tCLASS tNL { $4->name = $2; $$ = $4;
}
+ : tCLASS Identifier StSep ClassBody tEND tCLASS StSep { $4->name = $2; $$ =
$4; }
ClassBody
- : /* empty */ { $$ = new_class_decl(ctx); }
- | FunctionDecl tNL ClassBody { $$ = add_class_function(ctx, $3, $1);
CHECK_ERROR; }
+ : /* empty */ { $$ = new_class_decl(ctx); }
+ | FunctionDecl StSep ClassBody { $$ = add_class_function(ctx, $3, $1);
CHECK_ERROR; }
/* FIXME: We should use DimDecl here to support arrays, but that conflicts with
PropertyDecl. */
- | Storage tIdentifier tNL ClassBody { dim_decl_t *dim_decl =
new_dim_decl(ctx, $2, FALSE, NULL); CHECK_ERROR;
+ | Storage tIdentifier StSep ClassBody { dim_decl_t *dim_decl =
new_dim_decl(ctx, $2, FALSE, NULL); CHECK_ERROR;
$$ = add_dim_prop(ctx, $4, dim_decl,
$1); CHECK_ERROR; }
- | tDIM DimDecl tNL ClassBody { $$ = add_dim_prop(ctx, $4, $2, 0);
CHECK_ERROR; }
- | PropertyDecl tNL ClassBody { $$ = add_class_function(ctx, $3, $1);
CHECK_ERROR; }
+ | tDIM DimDecl StSep ClassBody { $$ = add_dim_prop(ctx, $4, $2, 0);
CHECK_ERROR; }
+ | PropertyDecl StSep ClassBody { $$ = add_class_function(ctx, $3, $1);
CHECK_ERROR; }
PropertyDecl
- : Storage_opt tPROPERTY tGET tIdentifier ArgumentsDecl_opt tNL StatementsNl_opt tEND
tPROPERTY
+ : Storage_opt tPROPERTY tGET tIdentifier ArgumentsDecl_opt StSep StatementsNl_opt
tEND tPROPERTY
{ $$ = new_function_decl(ctx, $4, FUNC_PROPGET, $1,
$5, $7); CHECK_ERROR; }
- | Storage_opt tPROPERTY tLET tIdentifier '(' ArgumentDecl ')' tNL
StatementsNl_opt tEND tPROPERTY
+ | Storage_opt tPROPERTY tLET tIdentifier '(' ArgumentDecl ')' StSep
StatementsNl_opt tEND tPROPERTY
{ $$ = new_function_decl(ctx, $4, FUNC_PROPLET, $1,
$6, $9); CHECK_ERROR; }
- | Storage_opt tPROPERTY tSET tIdentifier '(' ArgumentDecl ')' tNL
StatementsNl_opt tEND tPROPERTY
+ | Storage_opt tPROPERTY tSET tIdentifier '(' ArgumentDecl ')' StSep
StatementsNl_opt tEND tPROPERTY
{ $$ = new_function_decl(ctx, $4, FUNC_PROPSET, $1,
$6, $9); CHECK_ERROR; }
FunctionDecl
- : Storage_opt tSUB Identifier ArgumentsDecl_opt tNL StatementsNl_opt tEND tSUB
+ : Storage_opt tSUB Identifier ArgumentsDecl_opt StSep StatementsNl_opt tEND tSUB
{ $$ = new_function_decl(ctx, $3, FUNC_SUB, $1, $4,
$6); CHECK_ERROR; }
- | Storage_opt tFUNCTION Identifier ArgumentsDecl_opt tNL StatementsNl_opt tEND
tFUNCTION
+ | Storage_opt tFUNCTION Identifier ArgumentsDecl_opt StSep StatementsNl_opt tEND
tFUNCTION
{ $$ = new_function_decl(ctx, $3, FUNC_FUNCTION, $1,
$4, $6); CHECK_ERROR; }
Storage_opt
@@ -448,10 +443,12 @@ Identifier
: tIdentifier { $$ = $1; }
| tPROPERTY { $$ = propertyW; }
-/* Some statements accept both new line and ':' as a separator */
+/* Most statements accept both new line and ':' as separators */
StSep
: tNL
| ':'
+ | tNL StSep
+ | ':' StSep
%%
diff --git a/dll/win32/vbscript/utils.c b/dll/win32/vbscript/utils.c
new file mode 100644
index 0000000000..9444c4778f
--- /dev/null
+++ b/dll/win32/vbscript/utils.c
@@ -0,0 +1,189 @@
+/*
+ * Copyright 2017 Piotr Caban for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "vbscript.h"
+
+typedef struct {
+ IEnumVARIANT IEnumVARIANT_iface;
+
+ LONG ref;
+
+ SAFEARRAY *sa;
+ ULONG i, size;
+} safearray_iter;
+
+static inline safearray_iter *impl_from_IEnumVARIANT(IEnumVARIANT *iface)
+{
+ return CONTAINING_RECORD(iface, safearray_iter, IEnumVARIANT_iface);
+}
+
+static HRESULT WINAPI safearray_iter_IEnumVARIANT_QueryInterface(
+ IEnumVARIANT *iface, REFIID riid, void **ppv)
+{
+ safearray_iter *This = impl_from_IEnumVARIANT(iface);
+
+ if(IsEqualGUID(riid, &IID_IUnknown)) {
+ TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
+ *ppv = &This->IEnumVARIANT_iface;
+ }else if(IsEqualGUID(riid, &IID_IEnumVARIANT)) {
+ TRACE("(%p)->(IID_IEnumVARIANT %p)\n", This, ppv);
+ *ppv = &This->IEnumVARIANT_iface;
+ }else {
+ FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
+ *ppv = NULL;
+ return E_NOINTERFACE;
+ }
+
+ IUnknown_AddRef((IUnknown*)*ppv);
+ return S_OK;
+}
+
+static ULONG WINAPI safearray_iter_IEnumVARIANT_AddRef(IEnumVARIANT *iface)
+{
+ safearray_iter *This = impl_from_IEnumVARIANT(iface);
+ LONG ref = InterlockedIncrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", This, ref);
+
+ return ref;
+}
+
+static ULONG WINAPI safearray_iter_IEnumVARIANT_Release(IEnumVARIANT *iface)
+{
+ safearray_iter *This = impl_from_IEnumVARIANT(iface);
+ LONG ref = InterlockedDecrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", iface, ref);
+
+ if(!ref) {
+ if(This->sa)
+ SafeArrayUnlock(This->sa);
+ heap_free(This);
+ }
+
+ return ref;
+}
+
+static HRESULT WINAPI safearray_iter_IEnumVARIANT_Next(IEnumVARIANT *iface,
+ ULONG celt, VARIANT *rgVar, ULONG *pCeltFetched)
+{
+ safearray_iter *This = impl_from_IEnumVARIANT(iface);
+ HRESULT hres;
+ VARIANT *v;
+
+ TRACE("(%p)->(%u %p %p)\n", This, celt, rgVar, pCeltFetched);
+
+ if(celt != 1) {
+ FIXME("celt != 1\n");
+ return E_NOTIMPL;
+ }
+
+ if(This->i >= This->size) {
+ if(pCeltFetched)
+ *pCeltFetched = 0;
+ return S_FALSE;
+ }
+
+ if(!This->sa->cLocks)
+ ERR("SAFEARRAY not locked\n");
+
+ v = (VARIANT*)(((BYTE*)This->sa->pvData) + This->i *
This->sa->cbElements);
+ V_VT(rgVar) = VT_EMPTY;
+ hres = VariantCopy(rgVar, v);
+ if(FAILED(hres))
+ return hres;
+
+ This->i++;
+ if(pCeltFetched)
+ *pCeltFetched = 1;
+ return S_OK;
+}
+
+static HRESULT WINAPI safearray_iter_IEnumVARIANT_Skip(IEnumVARIANT *iface, ULONG celt)
+{
+ FIXME("\n");
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI safearray_iter_IEnumVARIANT_Reset(IEnumVARIANT *iface)
+{
+ FIXME("\n");
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI safearray_iter_IEnumVARIANT_Clone(
+ IEnumVARIANT *iface, IEnumVARIANT **ppEnum)
+{
+ FIXME("\n");
+ return E_NOTIMPL;
+}
+
+static const IEnumVARIANTVtbl safearray_iter_EnumVARIANTVtbl = {
+ safearray_iter_IEnumVARIANT_QueryInterface,
+ safearray_iter_IEnumVARIANT_AddRef,
+ safearray_iter_IEnumVARIANT_Release,
+ safearray_iter_IEnumVARIANT_Next,
+ safearray_iter_IEnumVARIANT_Skip,
+ safearray_iter_IEnumVARIANT_Reset,
+ safearray_iter_IEnumVARIANT_Clone
+};
+
+static ULONG get_safearray_size(SAFEARRAY *sa)
+{
+ ULONG ret = 1;
+ USHORT i;
+
+ if(!sa)
+ return 0;
+
+ for(i=0; i<sa->cDims && ret; i++)
+ ret *= sa->rgsabound[i].cElements;
+ return ret;
+}
+
+HRESULT create_safearray_iter(SAFEARRAY *sa, IEnumVARIANT **ev)
+{
+ safearray_iter *iter;
+ HRESULT hres;
+
+ if(sa && !(sa->fFeatures & FADF_VARIANT)) {
+ FIXME("enumeration not supported: %x\n", sa->fFeatures);
+ return E_NOTIMPL;
+ }
+
+ iter = heap_alloc(sizeof(*iter));
+ if(!iter)
+ return E_OUTOFMEMORY;
+
+ if(sa) {
+ hres = SafeArrayLock(sa);
+ if(FAILED(hres)) {
+ heap_free(iter);
+ return hres;
+ }
+ }
+
+ iter->IEnumVARIANT_iface.lpVtbl = &safearray_iter_EnumVARIANTVtbl;
+ iter->ref = 1;
+ iter->sa = sa;
+ iter->i = 0;
+ iter->size = get_safearray_size(sa);
+
+ *ev = &iter->IEnumVARIANT_iface;
+ return S_OK;
+}
diff --git a/dll/win32/vbscript/vbdisp.c b/dll/win32/vbscript/vbdisp.c
index 7e1f2472d4..5a4b1f8806 100644
--- a/dll/win32/vbscript/vbdisp.c
+++ b/dll/win32/vbscript/vbdisp.c
@@ -549,7 +549,7 @@ static IDispatchExVtbl DispatchExVtbl = {
static inline vbdisp_t *unsafe_impl_from_IDispatch(IDispatch *iface)
{
return iface->lpVtbl == (IDispatchVtbl*)&DispatchExVtbl
- ? CONTAINING_RECORD((IDispatchEx *)iface, vbdisp_t, IDispatchEx_iface)
+ ? CONTAINING_RECORD(iface, vbdisp_t, IDispatchEx_iface)
: NULL;
}
diff --git a/dll/win32/vbscript/vbscript.c b/dll/win32/vbscript/vbscript.c
index 25be31a445..1fc788117c 100644
--- a/dll/win32/vbscript/vbscript.c
+++ b/dll/win32/vbscript/vbscript.c
@@ -345,6 +345,9 @@ static HRESULT WINAPI VBScript_SetScriptState(IActiveScript *iface,
SCRIPTSTATE
case SCRIPTSTATE_INITIALIZED:
FIXME("unimplemented SCRIPTSTATE_INITIALIZED\n");
return S_OK;
+ case SCRIPTSTATE_DISCONNECTED:
+ FIXME("unimplemented SCRIPTSTATE_DISCONNECTED\n");
+ return S_OK;
default:
FIXME("unimplemented state %d\n", ss);
return E_NOTIMPL;
diff --git a/dll/win32/vbscript/vbscript.h b/dll/win32/vbscript/vbscript.h
index 070079eb71..5bb1577e4f 100644
--- a/dll/win32/vbscript/vbscript.h
+++ b/dll/win32/vbscript/vbscript.h
@@ -402,6 +402,8 @@ HRESULT create_regexp(IDispatch**) DECLSPEC_HIDDEN;
HRESULT map_hres(HRESULT) DECLSPEC_HIDDEN;
+HRESULT create_safearray_iter(SAFEARRAY *sa, IEnumVARIANT **ev) DECLSPEC_HIDDEN;
+
#define FACILITY_VBS 0xa
#define MAKE_VBSERROR(code) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_VBS, code)
diff --git a/media/doc/README.WINE b/media/doc/README.WINE
index 14089f8b59..a9f299e28c 100644
--- a/media/doc/README.WINE
+++ b/media/doc/README.WINE
@@ -191,7 +191,7 @@ reactos/dll/win32/url # Synced to WineStaging-2.9
reactos/dll/win32/urlmon # Synced to Wine-3.0
reactos/dll/win32/usp10 # Synced to Wine-3.0
reactos/dll/win32/uxtheme # Forked
-reactos/dll/win32/vbscript # Synced to WineStaging-2.9
+reactos/dll/win32/vbscript # Synced to Wine-3.0
reactos/dll/win32/version # Synced to WineStaging-2.9
reactos/dll/win32/vssapi # Synced to WineStaging-2.9
reactos/dll/win32/wbemdisp # Synced to WineStaging-2.16