Module: wine Branch: master Commit: 78beca78875eccb7fc4d15ba52092d618e2d8dcd URL: https://source.winehq.org/git/wine.git/?a=commit;h=78beca78875eccb7fc4d15ba5...
Author: Jacek Caban jacek@codeweavers.com Date: Mon Sep 16 15:53:34 2019 +0200
jscript: Use wide-char literals in lexer.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/jscript/lex.c | 137 ++++++++++++++++++----------------------------------- 1 file changed, 46 insertions(+), 91 deletions(-)
diff --git a/dlls/jscript/lex.c b/dlls/jscript/lex.c index 4d77f8a20f..4f0ea45362 100644 --- a/dlls/jscript/lex.c +++ b/dlls/jscript/lex.c @@ -32,76 +32,42 @@
WINE_DEFAULT_DEBUG_CHANNEL(jscript);
-static const WCHAR breakW[] = {'b','r','e','a','k',0}; -static const WCHAR caseW[] = {'c','a','s','e',0}; -static const WCHAR catchW[] = {'c','a','t','c','h',0}; -static const WCHAR continueW[] = {'c','o','n','t','i','n','u','e',0}; -static const WCHAR defaultW[] = {'d','e','f','a','u','l','t',0}; -static const WCHAR deleteW[] = {'d','e','l','e','t','e',0}; -static const WCHAR doW[] = {'d','o',0}; -static const WCHAR elseW[] = {'e','l','s','e',0}; -static const WCHAR falseW[] = {'f','a','l','s','e',0}; -static const WCHAR finallyW[] = {'f','i','n','a','l','l','y',0}; -static const WCHAR forW[] = {'f','o','r',0}; -static const WCHAR functionW[] = {'f','u','n','c','t','i','o','n',0}; -static const WCHAR getW[] = {'g','e','t',0}; -static const WCHAR ifW[] = {'i','f',0}; -static const WCHAR inW[] = {'i','n',0}; -static const WCHAR instanceofW[] = {'i','n','s','t','a','n','c','e','o','f',0}; -static const WCHAR newW[] = {'n','e','w',0}; -static const WCHAR nullW[] = {'n','u','l','l',0}; -static const WCHAR returnW[] = {'r','e','t','u','r','n',0}; -static const WCHAR setW[] = {'s','e','t',0}; -static const WCHAR switchW[] = {'s','w','i','t','c','h',0}; -static const WCHAR thisW[] = {'t','h','i','s',0}; -static const WCHAR throwW[] = {'t','h','r','o','w',0}; -static const WCHAR trueW[] = {'t','r','u','e',0}; -static const WCHAR tryW[] = {'t','r','y',0}; -static const WCHAR typeofW[] = {'t','y','p','e','o','f',0}; -static const WCHAR varW[] = {'v','a','r',0}; -static const WCHAR voidW[] = {'v','o','i','d',0}; -static const WCHAR whileW[] = {'w','h','i','l','e',0}; -static const WCHAR withW[] = {'w','i','t','h',0}; - -static const WCHAR elifW[] = {'e','l','i','f',0}; -static const WCHAR endW[] = {'e','n','d',0}; - static const struct { const WCHAR *word; int token; BOOL no_nl; unsigned min_version; } keywords[] = { - {breakW, kBREAK, TRUE}, - {caseW, kCASE}, - {catchW, kCATCH}, - {continueW, kCONTINUE, TRUE}, - {defaultW, kDEFAULT}, - {deleteW, kDELETE}, - {doW, kDO}, - {elseW, kELSE}, - {falseW, kFALSE}, - {finallyW, kFINALLY}, - {forW, kFOR}, - {functionW, kFUNCTION}, - {getW, kGET, FALSE, SCRIPTLANGUAGEVERSION_ES5}, - {ifW, kIF}, - {inW, kIN}, - {instanceofW, kINSTANCEOF}, - {newW, kNEW}, - {nullW, kNULL}, - {returnW, kRETURN, TRUE}, - {setW, kSET, FALSE, SCRIPTLANGUAGEVERSION_ES5}, - {switchW, kSWITCH}, - {thisW, kTHIS}, - {throwW, kTHROW}, - {trueW, kTRUE}, - {tryW, kTRY}, - {typeofW, kTYPEOF}, - {varW, kVAR}, - {voidW, kVOID}, - {whileW, kWHILE}, - {withW, kWITH} + {L"break", kBREAK, TRUE}, + {L"case", kCASE}, + {L"catch", kCATCH}, + {L"continue", kCONTINUE, TRUE}, + {L"default", kDEFAULT}, + {L"delete", kDELETE}, + {L"do", kDO}, + {L"else", kELSE}, + {L"false", kFALSE}, + {L"finally", kFINALLY}, + {L"for", kFOR}, + {L"function", kFUNCTION}, + {L"get", kGET, FALSE, SCRIPTLANGUAGEVERSION_ES5}, + {L"if", kIF}, + {L"in", kIN}, + {L"instanceof", kINSTANCEOF}, + {L"new", kNEW}, + {L"null", kNULL}, + {L"return", kRETURN, TRUE}, + {L"set", kSET, FALSE, SCRIPTLANGUAGEVERSION_ES5}, + {L"switch", kSWITCH}, + {L"this", kTHIS}, + {L"throw", kTHROW}, + {L"true", kTRUE}, + {L"try", kTRY}, + {L"typeof", kTYPEOF}, + {L"var", kVAR}, + {L"void", kVOID}, + {L"while", kWHILE}, + {L"with", kWITH} };
static int lex_error(parser_ctx_t *ctx, HRESULT hres) @@ -895,14 +861,6 @@ static BOOL init_cc(parser_ctx_t *ctx) { cc_ctx_t *cc;
- static const WCHAR _win32W[] = {'_','w','i','n','3','2',0}; - static const WCHAR _win64W[] = {'_','w','i','n','6','4',0}; - static const WCHAR _x86W[] = {'_','x','8','6',0}; - static const WCHAR _amd64W[] = {'_','a','m','d','6','4',0}; - static const WCHAR _jscriptW[] = {'_','j','s','c','r','i','p','t',0}; - static const WCHAR _jscript_buildW[] = {'_','j','s','c','r','i','p','t','_','b','u','i','l','d',0}; - static const WCHAR _jscript_versionW[] = {'_','j','s','c','r','i','p','t','_','v','e','r','s','i','o','n',0}; - if(ctx->script->cc) return TRUE;
@@ -914,11 +872,11 @@ static BOOL init_cc(parser_ctx_t *ctx)
cc->vars = NULL;
- if(!new_cc_var(cc, _jscriptW, -1, ccval_bool(TRUE)) - || !new_cc_var(cc, sizeof(void*) == 8 ? _win64W : _win32W, -1, ccval_bool(TRUE)) - || !new_cc_var(cc, sizeof(void*) == 8 ? _amd64W : _x86W, -1, ccval_bool(TRUE)) - || !new_cc_var(cc, _jscript_versionW, -1, ccval_num(JSCRIPT_MAJOR_VERSION + (DOUBLE)JSCRIPT_MINOR_VERSION/10.0)) - || !new_cc_var(cc, _jscript_buildW, -1, ccval_num(JSCRIPT_BUILD_VERSION))) { + if(!new_cc_var(cc, L"_jscript", -1, ccval_bool(TRUE)) + || !new_cc_var(cc, sizeof(void*) == 8 ? L"_win64" : L"_win32", -1, ccval_bool(TRUE)) + || !new_cc_var(cc, sizeof(void*) == 8 ? L"_amd64" : L"_x86", -1, ccval_bool(TRUE)) + || !new_cc_var(cc, L"_jscript_version", -1, ccval_num(JSCRIPT_MAJOR_VERSION + (DOUBLE)JSCRIPT_MINOR_VERSION/10.0)) + || !new_cc_var(cc, L"_jscript_build", -1, ccval_num(JSCRIPT_BUILD_VERSION))) { release_cc(cc); lex_error(ctx, E_OUTOFMEMORY); return FALSE; @@ -974,12 +932,12 @@ int try_parse_ccval(parser_ctx_t *ctx, ccval_t *r) return 1; }
- if(!check_keyword(ctx, trueW, NULL)) { + if(!check_keyword(ctx, L"true", NULL)) { *r = ccval_bool(TRUE); return 1; }
- if(!check_keyword(ctx, falseW, NULL)) { + if(!check_keyword(ctx, L"false", NULL)) { *r = ccval_bool(FALSE); return 1; } @@ -1000,13 +958,13 @@ static int skip_code(parser_ctx_t *ctx, BOOL exec_else) } ctx->ptr = ptr+1;
- if(!check_keyword(ctx, endW, NULL)) { + if(!check_keyword(ctx, L"end", NULL)) { if(--if_depth) continue; return 0; }
- if(exec_else && !check_keyword(ctx, elifW, NULL)) { + if(exec_else && !check_keyword(ctx, L"elif", NULL)) { if(if_depth > 1) continue;
@@ -1024,7 +982,7 @@ static int skip_code(parser_ctx_t *ctx, BOOL exec_else) return 0; }
- if(exec_else && !check_keyword(ctx, elseW, NULL)) { + if(exec_else && !check_keyword(ctx, L"else", NULL)) { if(if_depth > 1) continue;
@@ -1033,7 +991,7 @@ static int skip_code(parser_ctx_t *ctx, BOOL exec_else) return 0; }
- if(!check_keyword(ctx, ifW, NULL)) { + if(!check_keyword(ctx, L"if", NULL)) { if_depth++; continue; } @@ -1047,15 +1005,12 @@ static int cc_token(parser_ctx_t *ctx, void *lval) unsigned id_len = 0; cc_var_t *var;
- static const WCHAR cc_onW[] = {'c','c','_','o','n',0}; - static const WCHAR setW[] = {'s','e','t',0}; - ctx->ptr++;
- if(!check_keyword(ctx, cc_onW, NULL)) + if(!check_keyword(ctx, L"cc_on", NULL)) return init_cc(ctx) ? 0 : -1;
- if(!check_keyword(ctx, setW, NULL)) { + if(!check_keyword(ctx, L"set", NULL)) { const WCHAR *ident; unsigned ident_len; cc_var_t *var; @@ -1089,7 +1044,7 @@ static int cc_token(parser_ctx_t *ctx, void *lval) return 0; }
- if(!check_keyword(ctx, ifW, NULL)) { + if(!check_keyword(ctx, L"if", NULL)) { if(!init_cc(ctx)) return -1;
@@ -1108,14 +1063,14 @@ static int cc_token(parser_ctx_t *ctx, void *lval) return skip_code(ctx, TRUE); }
- if(!check_keyword(ctx, elifW, NULL) || !check_keyword(ctx, elseW, NULL)) { + if(!check_keyword(ctx, L"elif", NULL) || !check_keyword(ctx, L"else", NULL)) { if(!ctx->cc_if_depth) return lex_error(ctx, JS_E_SYNTAX);
return skip_code(ctx, FALSE); }
- if(!check_keyword(ctx, endW, NULL)) { + if(!check_keyword(ctx, L"end", NULL)) { if(!ctx->cc_if_depth) return lex_error(ctx, JS_E_SYNTAX);