Module: wine Branch: master Commit: 9f8492692c1b241e3b55d6bb0cab8edbdc1b29c4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9f8492692c1b241e3b55d6bb0c...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Sep 7 14:07:54 2011 +0200
vbscript: Added lexer support for newlines and comments.
---
dlls/vbscript/lex.c | 19 +++++++++++++++++-- dlls/vbscript/tests/run.c | 1 + 2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/dlls/vbscript/lex.c b/dlls/vbscript/lex.c index 0e7ecce..f3dc8ee 100644 --- a/dlls/vbscript/lex.c +++ b/dlls/vbscript/lex.c @@ -36,8 +36,23 @@ static int parse_next_token(void *lval, parser_ctx_t *ctx) return ctx->last_token == tNL ? tEOF : tNL;
c = *ctx->ptr; - FIXME("Unhandled char %c in %s\n", *ctx->ptr, debugstr_w(ctx->ptr)); - return c; + + switch(c) { + case '\n': + ctx->ptr++; + return tNL; + case ''': + ctx->ptr = strchrW(ctx->ptr, '\n'); + if(ctx->ptr) + ctx->ptr++; + else + ctx->ptr = ctx->end; + return tNL; + default: + FIXME("Unhandled char %c in %s\n", *ctx->ptr, debugstr_w(ctx->ptr)); + } + + return 0; }
int parser_lex(void *lval, parser_ctx_t *ctx) diff --git a/dlls/vbscript/tests/run.c b/dlls/vbscript/tests/run.c index 6ccd466..d61b81f 100644 --- a/dlls/vbscript/tests/run.c +++ b/dlls/vbscript/tests/run.c @@ -462,6 +462,7 @@ static void run_tests(void) strict_dispid_check = TRUE;
parse_script_a(""); + parse_script_a("' empty ;"); }
static BOOL check_vbscript(void)