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:
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;
EXPR_IS,
EXPR_LT,
EXPR_LTEQ,
+ EXPR_ME,
EXPR_MEMBER,
EXPR_MOD,
EXPR_MUL,
PrimaryExpression
: '(' Expression ')' { $$ = $2; }
+ | tME { $$ = new_expression(ctx, EXPR_ME, 0); CHECK_ERROR; }
ClassDeclaration
: tCLASS tIdentifier tNL ClassBody tEND tCLASS tNL { $4->name = $2; $$ = $4; }
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) \