vbscript: Added ME expression parser implementation.

oldstable
Jacek Caban 2011-09-19 14:09:57 +02:00 committed by Alexandre Julliard
parent 95d040e99e
commit eef966faf7
5 changed files with 11 additions and 0 deletions

View File

@ -405,6 +405,8 @@ static HRESULT compile_expression(compile_ctx_t *ctx, expression_t *expr)
return compile_binary_expression(ctx, (binary_expression_t*)expr, OP_lt);
case EXPR_LTEQ:
return compile_binary_expression(ctx, (binary_expression_t*)expr, OP_lteq);
case EXPR_ME:
return push_instr(ctx, OP_me) != -1 ? S_OK : E_OUTOFMEMORY;
case EXPR_MEMBER:
return compile_member_expression(ctx, (member_expression_t*)expr, TRUE);
case EXPR_MOD:

View File

@ -708,6 +708,12 @@ static HRESULT interp_stop(exec_ctx_t *ctx)
return S_OK;
}
static HRESULT interp_me(exec_ctx_t *ctx)
{
FIXME("\n");
return E_NOTIMPL;
}
static HRESULT interp_bool(exec_ctx_t *ctx)
{
const VARIANT_BOOL arg = ctx->instr->arg1.lng;

View File

@ -34,6 +34,7 @@ typedef enum {
EXPR_IS,
EXPR_LT,
EXPR_LTEQ,
EXPR_ME,
EXPR_MEMBER,
EXPR_MOD,
EXPR_MUL,

View File

@ -307,6 +307,7 @@ LiteralExpression
PrimaryExpression
: '(' Expression ')' { $$ = $2; }
| tME { $$ = new_expression(ctx, EXPR_ME, 0); CHECK_ERROR; }
ClassDeclaration
: tCLASS tIdentifier tNL ClassBody tEND tCLASS tNL { $4->name = $2; $$ = $4; }

View File

@ -203,6 +203,7 @@ typedef enum {
X(lteq, 1, 0, 0) \
X(mcall, 1, ARG_BSTR, ARG_UINT) \
X(mcallv, 1, ARG_BSTR, ARG_UINT) \
X(me, 1, 0, 0) \
X(mod, 1, 0, 0) \
X(mul, 1, 0, 0) \
X(neg, 1, 0, 0) \