vbscript: Added ME expression parser implementation.
This commit is contained in:
parent
95d040e99e
commit
eef966faf7
|
@ -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) \
|
||||
|
|
Loading…
Reference in New Issue