mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-25 05:01:24 +00:00
[qfcc] Fix some more unsupported expressions in dot
This commit is contained in:
parent
674fbae225
commit
8cc71395cc
1 changed files with 21 additions and 1 deletions
|
@ -99,6 +99,7 @@ get_op_string (int op)
|
|||
case QC_HADAMARD: return "@hadamard";
|
||||
case QC_CROSS: return "@cross";
|
||||
case QC_DOT: return "@dot";
|
||||
case QC_OUTER: return "@outer";
|
||||
case QC_WEDGE: return "@wedge";
|
||||
case QC_REGRESSIVE: return "@regressive";
|
||||
case QC_REVERSE: return "@reverse";
|
||||
|
@ -399,6 +400,25 @@ print_array (dstring_t *dstr, const expr_t *e, int level, int id,
|
|||
"[]", e->loc.line);
|
||||
}
|
||||
|
||||
static void
|
||||
print_select (dstring_t *dstr, const expr_t *e, int level, int id,
|
||||
const expr_t *next)
|
||||
{
|
||||
int indent = level * 2 + 2;
|
||||
|
||||
_print_expr (dstr, e->select.test, level, id, next);
|
||||
_print_expr (dstr, e->select.true_body, level, id, next);
|
||||
_print_expr (dstr, e->select.false_body, level, id, next);
|
||||
dasprintf (dstr, "%*se_%p -> \"e_%p\" [label=\"\"];\n", indent, "", e,
|
||||
e->select.test);
|
||||
dasprintf (dstr, "%*se_%p -> \"e_%p\" [label=\"t\"];\n", indent, "", e,
|
||||
e->select.true_body);
|
||||
dasprintf (dstr, "%*se_%p -> \"e_%p\" [label=\"f\"];\n", indent, "", e,
|
||||
e->select.false_body);
|
||||
dasprintf (dstr, "%*se_%p [label=\"%s\\n%d\"];\n", indent, "", e,
|
||||
"select", e->loc.line);
|
||||
}
|
||||
|
||||
static void
|
||||
print_intrinsic (dstring_t *dstr, const expr_t *e, int level, int id,
|
||||
const expr_t *next)
|
||||
|
@ -875,7 +895,7 @@ _print_expr (dstring_t *dstr, const expr_t *e, int level, int id,
|
|||
[ex_array] = print_array,
|
||||
[ex_decl] = nullptr,
|
||||
[ex_loop] = nullptr,
|
||||
[ex_select] = nullptr,
|
||||
[ex_select] = print_select,
|
||||
[ex_intrinsic] = print_intrinsic,
|
||||
};
|
||||
int indent = level * 2 + 2;
|
||||
|
|
Loading…
Reference in a new issue