Jacek Caban : jscript: Store expression type in expression_t.
Alexandre Julliard
julliard at winehq.org
Fri Nov 18 10:19:06 CST 2011
Module: wine
Branch: master
Commit: 8b66110e51366c7c705240d7f0a90d0ef61ed1d4
URL: http://source.winehq.org/git/wine.git/?a=commit;h=8b66110e51366c7c705240d7f0a90d0ef61ed1d4
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Nov 18 14:05:57 2011 +0100
jscript: Store expression type in expression_t.
---
dlls/jscript/engine.h | 123 +++++++++++++++++++++++++------------------------
dlls/jscript/parser.y | 1 +
2 files changed, 63 insertions(+), 61 deletions(-)
diff --git a/dlls/jscript/engine.h b/dlls/jscript/engine.h
index 73d06c9..c346e5f 100644
--- a/dlls/jscript/engine.h
+++ b/dlls/jscript/engine.h
@@ -291,9 +291,71 @@ typedef struct {
} u;
} exprval_t;
+typedef enum {
+ EXPR_COMMA,
+ EXPR_OR,
+ EXPR_AND,
+ EXPR_BOR,
+ EXPR_BXOR,
+ EXPR_BAND,
+ EXPR_INSTANCEOF,
+ EXPR_IN,
+ EXPR_ADD,
+ EXPR_SUB,
+ EXPR_MUL,
+ EXPR_DIV,
+ EXPR_MOD,
+ EXPR_DELETE,
+ EXPR_VOID,
+ EXPR_TYPEOF,
+ EXPR_MINUS,
+ EXPR_PLUS,
+ EXPR_POSTINC,
+ EXPR_POSTDEC,
+ EXPR_PREINC,
+ EXPR_PREDEC,
+ EXPR_EQ,
+ EXPR_EQEQ,
+ EXPR_NOTEQ,
+ EXPR_NOTEQEQ,
+ EXPR_LESS,
+ EXPR_LESSEQ,
+ EXPR_GREATER,
+ EXPR_GREATEREQ,
+ EXPR_BITNEG,
+ EXPR_LOGNEG,
+ EXPR_LSHIFT,
+ EXPR_RSHIFT,
+ EXPR_RRSHIFT,
+ EXPR_ASSIGN,
+ EXPR_ASSIGNLSHIFT,
+ EXPR_ASSIGNRSHIFT,
+ EXPR_ASSIGNRRSHIFT,
+ EXPR_ASSIGNADD,
+ EXPR_ASSIGNSUB,
+ EXPR_ASSIGNMUL,
+ EXPR_ASSIGNDIV,
+ EXPR_ASSIGNMOD,
+ EXPR_ASSIGNAND,
+ EXPR_ASSIGNOR,
+ EXPR_ASSIGNXOR,
+ EXPR_COND,
+ EXPR_ARRAY,
+ EXPR_MEMBER,
+ EXPR_NEW,
+ EXPR_CALL,
+ EXPR_THIS,
+ EXPR_FUNC,
+ EXPR_IDENT,
+ EXPR_ARRAYLIT,
+ EXPR_PROPVAL,
+ EXPR_LITERAL
+} expression_type_t;
+
typedef HRESULT (*expression_eval_t)(script_ctx_t*,expression_t*,DWORD,jsexcept_t*,exprval_t*);
struct _expression_t {
+ expression_type_t type;
expression_eval_t eval;
};
@@ -396,67 +458,6 @@ typedef struct {
prop_val_t *property_list;
} property_value_expression_t;
-typedef enum {
- EXPR_COMMA,
- EXPR_OR,
- EXPR_AND,
- EXPR_BOR,
- EXPR_BXOR,
- EXPR_BAND,
- EXPR_INSTANCEOF,
- EXPR_IN,
- EXPR_ADD,
- EXPR_SUB,
- EXPR_MUL,
- EXPR_DIV,
- EXPR_MOD,
- EXPR_DELETE,
- EXPR_VOID,
- EXPR_TYPEOF,
- EXPR_MINUS,
- EXPR_PLUS,
- EXPR_POSTINC,
- EXPR_POSTDEC,
- EXPR_PREINC,
- EXPR_PREDEC,
- EXPR_EQ,
- EXPR_EQEQ,
- EXPR_NOTEQ,
- EXPR_NOTEQEQ,
- EXPR_LESS,
- EXPR_LESSEQ,
- EXPR_GREATER,
- EXPR_GREATEREQ,
- EXPR_BITNEG,
- EXPR_LOGNEG,
- EXPR_LSHIFT,
- EXPR_RSHIFT,
- EXPR_RRSHIFT,
- EXPR_ASSIGN,
- EXPR_ASSIGNLSHIFT,
- EXPR_ASSIGNRSHIFT,
- EXPR_ASSIGNRRSHIFT,
- EXPR_ASSIGNADD,
- EXPR_ASSIGNSUB,
- EXPR_ASSIGNMUL,
- EXPR_ASSIGNDIV,
- EXPR_ASSIGNMOD,
- EXPR_ASSIGNAND,
- EXPR_ASSIGNOR,
- EXPR_ASSIGNXOR,
- EXPR_COND,
- EXPR_ARRAY,
- EXPR_MEMBER,
- EXPR_NEW,
- EXPR_CALL,
- EXPR_THIS,
- EXPR_FUNC,
- EXPR_IDENT,
- EXPR_ARRAYLIT,
- EXPR_PROPVAL,
- EXPR_LITERAL
-} expression_type_t;
-
HRESULT function_expression_eval(script_ctx_t*,expression_t*,DWORD,jsexcept_t*,exprval_t*) DECLSPEC_HIDDEN;
HRESULT conditional_expression_eval(script_ctx_t*,expression_t*,DWORD,jsexcept_t*,exprval_t*) DECLSPEC_HIDDEN;
HRESULT array_expression_eval(script_ctx_t*,expression_t*,DWORD,jsexcept_t*,exprval_t*) DECLSPEC_HIDDEN;
diff --git a/dlls/jscript/parser.y b/dlls/jscript/parser.y
index 69b9483..db7a3c5 100644
--- a/dlls/jscript/parser.y
+++ b/dlls/jscript/parser.y
@@ -1369,6 +1369,7 @@ static void *new_expression(parser_ctx_t *ctx, expression_type_t type, size_t si
{
expression_t *ret = parser_alloc(ctx, size ? size : sizeof(*ret));
+ ret->type = type;
ret->eval = expression_eval_table[type];
return ret;
More information about the wine-cvs
mailing list