Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
55e9c896
Commit
55e9c896
authored
Oct 29, 2019
by
Jacek Caban
Committed by
Alexandre Julliard
Oct 29, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vbscript: Use wide char literals for lexer keywords.
Signed-off-by:
Jacek Caban
<
jacek@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
0357dfbc
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
57 additions
and
115 deletions
+57
-115
lex.c
dlls/vbscript/lex.c
+57
-115
No files found.
dlls/vbscript/lex.c
View file @
55e9c896
...
...
@@ -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
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment