Module: wine Branch: master Commit: 12b1bcdb950b0ef5b9e849e7165a653880300909 URL: https://source.winehq.org/git/wine.git/?a=commit;h=12b1bcdb950b0ef5b9e849e71...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Jan 22 23:27:45 2020 +0100
vbscript: Simplify option explicit parsing.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/vbscript/parser.y | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/dlls/vbscript/parser.y b/dlls/vbscript/parser.y index b54d4af32f..16a673fac7 100644 --- a/dlls/vbscript/parser.y +++ b/dlls/vbscript/parser.y @@ -27,7 +27,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(vbscript);
static int parser_error(unsigned*,parser_ctx_t*,const char*);
-static void parse_complete(parser_ctx_t*,BOOL); static void handle_isexpression_script(parser_ctx_t *ctx, expression_t *expr);
static void source_add_statement(parser_ctx_t*,statement_t*); @@ -138,7 +137,7 @@ static statement_t *link_statements(statement_t*,statement_t*); %type <expression> ConstExpression NumericLiteralExpression %type <member> MemberExpression %type <expression> Arguments Arguments_opt ArgumentList ArgumentList_opt Step_opt ExpressionList -%type <boolean> OptionExplicit_opt DoType Preserve_opt +%type <boolean> DoType Preserve_opt %type <arg_decl> ArgumentsDecl_opt ArgumentDeclList ArgumentDecl %type <func_decl> FunctionDecl PropertyDecl %type <elseif> ElseIfs_opt ElseIfs ElseIf @@ -153,12 +152,12 @@ static statement_t *link_statements(statement_t*,statement_t*); %%
Program - : OptionExplicit_opt SourceElements { parse_complete(ctx, $1); } + : OptionExplicit_opt SourceElements | tEXPRESSION ExpressionNl_opt { handle_isexpression_script(ctx, $2); }
OptionExplicit_opt - : /* empty */ { $$ = FALSE; } - | tOPTION tEXPLICIT StSep { $$ = TRUE; } + : /* empty */ + | tOPTION tEXPLICIT StSep { ctx->option_explicit = TRUE; }
SourceElements : /* empty */ @@ -534,11 +533,6 @@ static void source_add_class(parser_ctx_t *ctx, class_decl_t *class_decl) ctx->class_decls = class_decl; }
-static void parse_complete(parser_ctx_t *ctx, BOOL option_explicit) -{ - ctx->option_explicit = option_explicit; -} - static void handle_isexpression_script(parser_ctx_t *ctx, expression_t *expr) { retval_statement_t *stat;