Module: wine Branch: master Commit: 69bee9f00452ea526afea75199ba540b391ddee3 URL: http://source.winehq.org/git/wine.git/?a=commit;h=69bee9f00452ea526afea75199...
Author: Jacek Caban jacek@codeweavers.com Date: Thu Mar 13 17:44:14 2014 +0100
vbscript: Allow empty brackets in argument declarations.
---
dlls/vbscript/parser.y | 6 +++--- dlls/vbscript/tests/lang.vbs | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/dlls/vbscript/parser.y b/dlls/vbscript/parser.y index cd69f5d..6bd4907 100644 --- a/dlls/vbscript/parser.y +++ b/dlls/vbscript/parser.y @@ -434,9 +434,9 @@ ArgumentDeclList | ArgumentDecl ',' ArgumentDeclList { $1->next = $3; $$ = $1; }
ArgumentDecl - : Identifier { $$ = new_argument_decl(ctx, $1, TRUE); } - | tBYREF Identifier { $$ = new_argument_decl(ctx, $2, TRUE); } - | tBYVAL Identifier { $$ = new_argument_decl(ctx, $2, FALSE); } + : Identifier EmptyBrackets_opt { $$ = new_argument_decl(ctx, $1, TRUE); } + | tBYREF Identifier EmptyBrackets_opt { $$ = new_argument_decl(ctx, $2, TRUE); } + | tBYVAL Identifier EmptyBrackets_opt { $$ = new_argument_decl(ctx, $2, FALSE); }
/* 'property' may be both keyword and identifier, depending on context */ Identifier diff --git a/dlls/vbscript/tests/lang.vbs b/dlls/vbscript/tests/lang.vbs index c1af191..612c615 100644 --- a/dlls/vbscript/tests/lang.vbs +++ b/dlls/vbscript/tests/lang.vbs @@ -1115,4 +1115,21 @@ End Sub
Call arrarg(arr, arr, obj.classarr, obj.classarr)
+Sub arrarg2(byref refarr(), byval valarr(), byref refarr2(), byval valarr2()) + Call ok(getVT(refarr) = "VT_ARRAY|VT_BYREF|VT_VARIANT*", "getVT(refarr) = " & getVT(refarr)) + Call ok(getVT(valarr) = "VT_ARRAY|VT_VARIANT*", "getVT(valarr) = " & getVT(valarr)) + Call ok(getVT(refarr2) = "VT_ARRAY|VT_VARIANT*", "getVT(refarr2) = " & getVT(refarr2)) + Call ok(getVT(valarr2) = "VT_ARRAY|VT_VARIANT*", "getVT(valarr2) = " & getVT(valarr2)) +End Sub + +Call arrarg2(arr, arr, obj.classarr, obj.classarr) + +Sub testarrarg(arg(), vt) + Call ok(getVT(arg) = vt, "getVT() = " & getVT(arg) & " expected " & vt) +End Sub + +Call testarrarg(1, "VT_I2*") +Call testarrarg(false, "VT_BOOL*") +Call testarrarg(Empty, "VT_EMPTY*") + reportSuccess()