21 #include <wine/port.h> 167 while(p1 < ctx->
end && *p2) {
229 while(
ctx->ptr <
ctx->end) {
230 if(*
ctx->ptr ==
'\n' || *
ctx->ptr ==
'\r') {
231 FIXME(
"newline inside string literal\n");
235 if(*
ctx->ptr ==
'"') {
236 if(
ctx->ptr[1] !=
'"')
244 if(
ctx->ptr ==
ctx->end) {
245 FIXME(
"unterminated string literal\n");
255 while(ptr < ctx->
ptr) {
273 if(*
ctx->ptr ==
'0' && !(
'0' <=
ctx->ptr[1] &&
ctx->ptr[1] <=
'9') &&
ctx->ptr[1] !=
'.')
277 hlp =
d*10 + *(
ctx->ptr++) -
'0';
290 if(*
ctx->ptr ==
'.') {
295 hlp =
d*10 + *(
ctx->ptr++) -
'0';
306 if(*
ctx->ptr ==
'e' || *
ctx->ptr ==
'E') {
310 if(*
ctx->ptr ==
'-') {
313 }
else if(*
ctx->ptr ==
'+') {
318 FIXME(
"Invalid numeric literal\n");
325 e =
e*10 + *(
ctx->ptr++) -
'0';
335 FIXME(
"Invalid numeric literal\n");
343 if(use_int && (
LONG)
d ==
d) {
350 FIXME(
"Invalid numeric literal\n");
360 if(
'0' <=
c &&
c <=
'9')
362 if(
'a' <=
c &&
c <=
'f')
364 if(
'A' <=
c &&
c <=
'F')
378 FIXME(
"invalid literal\n");
391 while(*
ctx->ptr ==
' ' || *
ctx->ptr ==
'\t')
416 if(
'0' <=
c &&
c <=
'9')
448 if(
ctx->is_html &&
ctx->ptr[1] ==
'-' &&
ctx->ptr[2] ==
'>')
459 if(*
ctx->ptr ==
')') {
467 if(*++
ctx->ptr ==
'h' || *
ctx->ptr ==
'H')
471 switch(*++
ctx->ptr) {
479 if(
ctx->is_html &&
ctx->ptr[1] ==
'-' &&
ctx->ptr[2] ==
'-')
484 if(*++
ctx->ptr ==
'=') {
510 if(*
ctx->ptr !=
'\n' && *
ctx->ptr !=
'\r') {
511 FIXME(
"'_' not followed by newline\n");
514 if(*
ctx->ptr ==
'\r')
516 if(*
ctx->ptr ==
'\n')
526 return (
ctx->last_token =
ret);
static const WCHAR functionW[]
static size_t double int int int * sign
static const WCHAR classW[]
static const WCHAR newlineW[]
static int comment_line(parser_ctx_t *ctx)
static int check_keyword(parser_ctx_t *ctx, const WCHAR *word, const WCHAR **lval)
static void skip_spaces(parser_ctx_t *ctx)
static const WCHAR whileW[]
BOOL is_identifier_char(WCHAR c)
static int parse_string_literal(parser_ctx_t *ctx, const WCHAR **ret)
GLdouble GLdouble GLdouble r
static const WCHAR nullW[]
static const WCHAR defaultW[]
static const WCHAR letW[]
static int parse_numeric_literal(parser_ctx_t *ctx, void **ret)
static int check_keywords(parser_ctx_t *ctx, const WCHAR **lval)
static const WCHAR eqvW[]
static int parse_identifier(parser_ctx_t *ctx, const WCHAR **ret)
static const WCHAR elseifW[]
static const WCHAR byvalW[]
static const WCHAR optionW[]
static const WCHAR gotoW[]
static const WCHAR loopW[]
float pow(float __x, int __y)
static const WCHAR falseW[]
static const WCHAR impW[]
static const WCHAR privateW[]
static const WCHAR errorW[]
static const WCHAR notW[]
static int parse_next_token(void *lval, parser_ctx_t *ctx)
static int hex_to_int(WCHAR c)
static const struct @564 keywords[]
static const WCHAR andW[]
static const WCHAR stopW[]
static const WCHAR trueW[]
static const WCHAR explicitW[]
static const WCHAR getW[]
static const WCHAR dimW[]
static const WCHAR constW[]
static const WCHAR stepW[]
static const WCHAR exitW[]
#define memcpy(s1, s2, n)
static const WCHAR nothingW[]
static const WCHAR newW[]
static const WCHAR modW[]
static const WCHAR untilW[]
static void * parser_alloc(parser_ctx_t *ctx, DWORD size)
static const WCHAR emptyW[]
static const WCHAR propertyW[]
static const WCHAR callW[]
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static const WCHAR eachW[]
static const WCHAR forW[]
static const WCHAR resumeW[]
static const WCHAR elseW[]
int parser_lex(void *lval, parser_ctx_t *ctx)
_Check_return_ _CRTIMP _CONST_RETURN wchar_t *__cdecl wcspbrk(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_Control)
static const WCHAR caseW[]
static const WCHAR byrefW[]
static const WCHAR wendW[]
static const WCHAR remW[]
static int parse_hex_literal(parser_ctx_t *ctx, LONG *ret)
static const WCHAR thenW[]
static const WCHAR subW[]
static const WCHAR selectW[]
static const WCHAR publicW[]
static const WCHAR endW[]
static const WCHAR setW[]
WINE_DEFAULT_DEBUG_CHANNEL(jscript)
static const WCHAR nextW[]
static const WCHAR xorW[]