mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-01-31 05:00:35 +00:00
fix -expr handling. generates sucky code atm, but at least it's generating
code now:P
This commit is contained in:
parent
638cd005b0
commit
0c2cd8633c
2 changed files with 20 additions and 18 deletions
|
@ -1233,6 +1233,8 @@ emit_sub_expr (expr_t *e, def_t *dest)
|
||||||
} else {
|
} else {
|
||||||
abort ();
|
abort ();
|
||||||
}
|
}
|
||||||
|
if (!dest)
|
||||||
|
dest = PR_GetTempDef (e->e.expr.type, pr_scope);
|
||||||
op = PR_Opcode_Find (operator, priority, def_a, def_b, dest);
|
op = PR_Opcode_Find (operator, priority, def_a, def_b, dest);
|
||||||
return emit_statement (e->line, op, def_a, def_b, dest);
|
return emit_statement (e->line, op, def_a, def_b, dest);
|
||||||
case ex_def:
|
case ex_def:
|
||||||
|
|
|
@ -427,26 +427,26 @@ statement
|
||||||
;
|
;
|
||||||
|
|
||||||
expr
|
expr
|
||||||
: expr '=' expr { $$ = binary_expr ('=', $1, $3); }
|
: expr '=' expr { $$ = binary_expr ('=', $1, $3); }
|
||||||
| expr AND expr { $$ = binary_expr (AND, $1, $3); }
|
| expr AND expr { $$ = binary_expr (AND, $1, $3); }
|
||||||
| expr OR expr { $$ = binary_expr (OR, $1, $3); }
|
| expr OR expr { $$ = binary_expr (OR, $1, $3); }
|
||||||
| expr EQ expr { $$ = binary_expr (EQ, $1, $3); }
|
| expr EQ expr { $$ = binary_expr (EQ, $1, $3); }
|
||||||
| expr NE expr { $$ = binary_expr (NE, $1, $3); }
|
| expr NE expr { $$ = binary_expr (NE, $1, $3); }
|
||||||
| expr LE expr { $$ = binary_expr (LE, $1, $3); }
|
| expr LE expr { $$ = binary_expr (LE, $1, $3); }
|
||||||
| expr GE expr { $$ = binary_expr (GE, $1, $3); }
|
| expr GE expr { $$ = binary_expr (GE, $1, $3); }
|
||||||
| expr LT expr { $$ = binary_expr (LT, $1, $3); }
|
| expr LT expr { $$ = binary_expr (LT, $1, $3); }
|
||||||
| expr GT expr { $$ = binary_expr (GT, $1, $3); }
|
| expr GT expr { $$ = binary_expr (GT, $1, $3); }
|
||||||
| expr '+' expr { $$ = binary_expr ('+', $1, $3); }
|
| expr '+' expr { $$ = binary_expr ('+', $1, $3); }
|
||||||
| expr '-' expr { $$ = binary_expr ('-', $1, $3); }
|
| expr '-' expr { $$ = binary_expr ('-', $1, $3); }
|
||||||
| expr '*' expr { $$ = binary_expr ('*', $1, $3); }
|
| expr '*' expr { $$ = binary_expr ('*', $1, $3); }
|
||||||
| expr '/' expr { $$ = binary_expr ('/', $1, $3); }
|
| expr '/' expr { $$ = binary_expr ('/', $1, $3); }
|
||||||
| expr '&' expr { $$ = binary_expr ('&', $1, $3); }
|
| expr '&' expr { $$ = binary_expr ('&', $1, $3); }
|
||||||
| expr '|' expr { $$ = binary_expr ('|', $1, $3); }
|
| expr '|' expr { $$ = binary_expr ('|', $1, $3); }
|
||||||
| expr '(' arg_list ')' { $$ = function_expr ($1, $3); }
|
| expr '(' arg_list ')' { $$ = function_expr ($1, $3); }
|
||||||
| expr '(' ')' { $$ = function_expr ($1, 0); }
|
| expr '(' ')' { $$ = function_expr ($1, 0); }
|
||||||
| expr '.' expr { $$ = binary_expr ('.', $1, $3); }
|
| expr '.' expr { $$ = binary_expr ('.', $1, $3); }
|
||||||
| '-' expr { $$ = unary_expr ('-', $2); }
|
| '-' expr %prec '!' { $$ = unary_expr ('-', $2); }
|
||||||
| '!' expr { $$ = unary_expr ('!', $2); }
|
| '!' expr { $$ = unary_expr ('!', $2); }
|
||||||
| NAME
|
| NAME
|
||||||
{
|
{
|
||||||
$$ = new_expr ();
|
$$ = new_expr ();
|
||||||
|
|
Loading…
Reference in a new issue