Jacek Caban : vbscript: Use wide char literals for lexer keywords.

Alexandre Julliard julliard at winehq.org
Tue Oct 29 17:41:47 CDT 2019


Module: wine
Branch: master
Commit: 55e9c896cac1160a43f79e508b323bd23167589f
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=55e9c896cac1160a43f79e508b323bd23167589f

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Oct 29 19:01:02 2019 +0100

vbscript: Use wide char literals for lexer keywords.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/vbscript/lex.c | 172 +++++++++++++++++-----------------------------------
 1 file changed, 57 insertions(+), 115 deletions(-)

diff --git a/dlls/vbscript/lex.c b/dlls/vbscript/lex.c
index 510ac0918b..6b20d1979d 100644
--- a/dlls/vbscript/lex.c
+++ b/dlls/vbscript/lex.c
@@ -28,125 +28,67 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(vbscript);
 
-static const WCHAR andW[] = {'a','n','d',0};
-static const WCHAR byrefW[] = {'b','y','r','e','f',0};
-static const WCHAR byvalW[] = {'b','y','v','a','l',0};
-static const WCHAR callW[] = {'c','a','l','l',0};
-static const WCHAR caseW[] = {'c','a','s','e',0};
-static const WCHAR classW[] = {'c','l','a','s','s',0};
-static const WCHAR constW[] = {'c','o','n','s','t',0};
-static const WCHAR defaultW[] = {'d','e','f','a','u','l','t',0};
-static const WCHAR dimW[] = {'d','i','m',0};
-static const WCHAR doW[] = {'d','o',0};
-static const WCHAR eachW[] = {'e','a','c','h',0};
-static const WCHAR elseW[] = {'e','l','s','e',0};
-static const WCHAR elseifW[] = {'e','l','s','e','i','f',0};
-static const WCHAR emptyW[] = {'e','m','p','t','y',0};
-static const WCHAR endW[] = {'e','n','d',0};
-static const WCHAR eqvW[] = {'e','q','v',0};
-static const WCHAR errorW[] = {'e','r','r','o','r',0};
-static const WCHAR exitW[] = {'e','x','i','t',0};
-static const WCHAR explicitW[] = {'e','x','p','l','i','c','i','t',0};
-static const WCHAR falseW[] = {'f','a','l','s','e',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 gotoW[] = {'g','o','t','o',0};
-static const WCHAR ifW[] = {'i','f',0};
-static const WCHAR impW[] = {'i','m','p',0};
-static const WCHAR inW[] = {'i','n',0};
-static const WCHAR isW[] = {'i','s',0};
-static const WCHAR letW[] = {'l','e','t',0};
-static const WCHAR loopW[] = {'l','o','o','p',0};
-static const WCHAR meW[] = {'m','e',0};
-static const WCHAR modW[] = {'m','o','d',0};
-static const WCHAR newW[] = {'n','e','w',0};
-static const WCHAR nextW[] = {'n','e','x','t',0};
-static const WCHAR notW[] = {'n','o','t',0};
-static const WCHAR nothingW[] = {'n','o','t','h','i','n','g',0};
-static const WCHAR nullW[] = {'n','u','l','l',0};
-static const WCHAR onW[] = {'o','n',0};
-static const WCHAR optionW[] = {'o','p','t','i','o','n',0};
-static const WCHAR orW[] = {'o','r',0};
-static const WCHAR privateW[] = {'p','r','i','v','a','t','e',0};
-static const WCHAR propertyW[] = {'p','r','o','p','e','r','t','y',0};
-static const WCHAR publicW[] = {'p','u','b','l','i','c',0};
-static const WCHAR remW[] = {'r','e','m',0};
-static const WCHAR resumeW[] = {'r','e','s','u','m','e',0};
-static const WCHAR selectW[] = {'s','e','l','e','c','t',0};
-static const WCHAR setW[] = {'s','e','t',0};
-static const WCHAR stepW[] = {'s','t','e','p',0};
-static const WCHAR stopW[] = {'s','t','o','p',0};
-static const WCHAR subW[] = {'s','u','b',0};
-static const WCHAR thenW[] = {'t','h','e','n',0};
-static const WCHAR toW[] = {'t','o',0};
-static const WCHAR trueW[] = {'t','r','u','e',0};
-static const WCHAR untilW[] = {'u','n','t','i','l',0};
-static const WCHAR wendW[] = {'w','e','n','d',0};
-static const WCHAR whileW[] = {'w','h','i','l','e',0};
-static const WCHAR xorW[] = {'x','o','r',0};
-
 static const struct {
     const WCHAR *word;
     int token;
 } keywords[] = {
-    {andW,       tAND},
-    {byrefW,     tBYREF},
-    {byvalW,     tBYVAL},
-    {callW,      tCALL},
-    {caseW,      tCASE},
-    {classW,     tCLASS},
-    {constW,     tCONST},
-    {defaultW,   tDEFAULT},
-    {dimW,       tDIM},
-    {doW,        tDO},
-    {eachW,      tEACH},
-    {elseW,      tELSE},
-    {elseifW,    tELSEIF},
-    {emptyW,     tEMPTY},
-    {endW,       tEND},
-    {eqvW,       tEQV},
-    {errorW,     tERROR},
-    {exitW,      tEXIT},
-    {explicitW,  tEXPLICIT},
-    {falseW,     tFALSE},
-    {forW,       tFOR},
-    {functionW,  tFUNCTION},
-    {getW,       tGET},
-    {gotoW,      tGOTO},
-    {ifW,        tIF},
-    {impW,       tIMP},
-    {inW,        tIN},
-    {isW,        tIS},
-    {letW,       tLET},
-    {loopW,      tLOOP},
-    {meW,        tME},
-    {modW,       tMOD},
-    {newW,       tNEW},
-    {nextW,      tNEXT},
-    {notW,       tNOT},
-    {nothingW,   tNOTHING},
-    {nullW,      tNULL},
-    {onW,        tON},
-    {optionW,    tOPTION},
-    {orW,        tOR},
-    {privateW,   tPRIVATE},
-    {propertyW,  tPROPERTY},
-    {publicW,    tPUBLIC},
-    {remW,       tREM},
-    {resumeW,    tRESUME},
-    {selectW,    tSELECT},
-    {setW,       tSET},
-    {stepW,      tSTEP},
-    {stopW,      tSTOP},
-    {subW,       tSUB},
-    {thenW,      tTHEN},
-    {toW,        tTO},
-    {trueW,      tTRUE},
-    {untilW,     tUNTIL},
-    {wendW,      tWEND},
-    {whileW,     tWHILE},
-    {xorW,       tXOR}
+    {L"and",       tAND},
+    {L"byref",     tBYREF},
+    {L"byval",     tBYVAL},
+    {L"call",      tCALL},
+    {L"case",      tCASE},
+    {L"class",     tCLASS},
+    {L"const",     tCONST},
+    {L"default",   tDEFAULT},
+    {L"dim",       tDIM},
+    {L"do",        tDO},
+    {L"each",      tEACH},
+    {L"else",      tELSE},
+    {L"elseif",    tELSEIF},
+    {L"empty",     tEMPTY},
+    {L"end",       tEND},
+    {L"eqv",       tEQV},
+    {L"error",     tERROR},
+    {L"exit",      tEXIT},
+    {L"explicit",  tEXPLICIT},
+    {L"false",     tFALSE},
+    {L"for",       tFOR},
+    {L"function",  tFUNCTION},
+    {L"get",       tGET},
+    {L"goto",      tGOTO},
+    {L"if",        tIF},
+    {L"imp",       tIMP},
+    {L"in",        tIN},
+    {L"is",        tIS},
+    {L"let",       tLET},
+    {L"loop",      tLOOP},
+    {L"me",        tME},
+    {L"mod",       tMOD},
+    {L"new",       tNEW},
+    {L"next",      tNEXT},
+    {L"not",       tNOT},
+    {L"nothing",   tNOTHING},
+    {L"null",      tNULL},
+    {L"on",        tON},
+    {L"option",    tOPTION},
+    {L"or",        tOR},
+    {L"private",   tPRIVATE},
+    {L"property",  tPROPERTY},
+    {L"public",    tPUBLIC},
+    {L"rem",       tREM},
+    {L"resume",    tRESUME},
+    {L"select",    tSELECT},
+    {L"set",       tSET},
+    {L"step",      tSTEP},
+    {L"stop",      tSTOP},
+    {L"sub",       tSUB},
+    {L"then",      tTHEN},
+    {L"to",        tTO},
+    {L"true",      tTRUE},
+    {L"until",     tUNTIL},
+    {L"wend",      tWEND},
+    {L"while",     tWHILE},
+    {L"xor",       tXOR}
 };
 
 static inline BOOL is_identifier_char(WCHAR c)




More information about the wine-cvs mailing list