Commit eef966fa authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

vbscript: Added ME expression parser implementation.

parent 95d040e9
......@@ -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:
......
......@@ -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;
......
......@@ -34,6 +34,7 @@ typedef enum {
EXPR_IS,
EXPR_LT,
EXPR_LTEQ,
EXPR_ME,
EXPR_MEMBER,
EXPR_MOD,
EXPR_MUL,
......
......@@ -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; }
......
......@@ -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) \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment