diff --git a/dlls/vbscript/parser.y b/dlls/vbscript/parser.y index 681a0c96e4a..fb95dfbbf8b 100644 --- a/dlls/vbscript/parser.y +++ b/dlls/vbscript/parser.y @@ -246,10 +246,10 @@ Step_opt IfStatement : tIF Expression tTHEN tNL StatementsNl_opt ElseIfs_opt Else_opt tEND tIF - { $$ = new_if_statement(ctx, $2, $5, $6, $7); CHECK_ERROR; } - | tIF Expression tTHEN Statement { $$ = new_if_statement(ctx, $2, $4, NULL, NULL); CHECK_ERROR; } + { $$ = new_if_statement(ctx, $2, $5, $6, $7); CHECK_ERROR; } + | tIF Expression tTHEN Statement EndIf_opt { $$ = new_if_statement(ctx, $2, $4, NULL, NULL); CHECK_ERROR; } | tIF Expression tTHEN Statement tELSE Statement EndIf_opt - { $$ = new_if_statement(ctx, $2, $4, NULL, $6); CHECK_ERROR; } + { $$ = new_if_statement(ctx, $2, $4, NULL, $6); CHECK_ERROR; } EndIf_opt : /* empty */ diff --git a/dlls/vbscript/tests/lang.vbs b/dlls/vbscript/tests/lang.vbs index 3ee445c8d4a..b23b70982aa 100644 --- a/dlls/vbscript/tests/lang.vbs +++ b/dlls/vbscript/tests/lang.vbs @@ -234,6 +234,7 @@ if false then : if false then x = y : if true then call ok(false, "embedded if called") if false then x=1 else x=2 end if +if true then x=1 end if x = false if false then x = true : x = true