mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-25 05:01:24 +00:00
[qfcc] Support field expressions in dot output
Some other types were added with null functions to make things a little easier when I get around to implementing them.
This commit is contained in:
parent
e4e04b183a
commit
7b80ec2a14
1 changed files with 21 additions and 0 deletions
|
@ -348,6 +348,22 @@ print_type_expr (dstring_t *dstr, const expr_t *e, int level, int id,
|
|||
str, e->loc.line);
|
||||
}
|
||||
|
||||
static void
|
||||
print_field (dstring_t *dstr, const expr_t *e, int level, int id,
|
||||
const expr_t *next)
|
||||
{
|
||||
int indent = level * 2 + 2;
|
||||
|
||||
_print_expr (dstr, e->field.object, level, id, next);
|
||||
_print_expr (dstr, e->field.member, level, id, next);
|
||||
dasprintf (dstr, "%*se_%p -> \"e_%p\" [label=\"f\"];\n", indent, "", e,
|
||||
e->field.object);
|
||||
dasprintf (dstr, "%*se_%p -> \"e_%p\" [label=\"o\"];\n", indent, "", e,
|
||||
e->field.member);
|
||||
dasprintf (dstr, "%*se_%p [label=\"%s\\n%d\"];\n", indent, "", e,
|
||||
".", e->loc.line);
|
||||
}
|
||||
|
||||
static void
|
||||
print_subexpr (dstring_t *dstr, const expr_t *e, int level, int id, const expr_t *next)
|
||||
{
|
||||
|
@ -797,6 +813,11 @@ _print_expr (dstring_t *dstr, const expr_t *e, int level, int id,
|
|||
[ex_multivec] = print_multivec,
|
||||
[ex_list] = print_list,
|
||||
[ex_type] = print_type_expr,
|
||||
[ex_incop] = nullptr,
|
||||
[ex_cond] = nullptr,
|
||||
[ex_field] = print_field,
|
||||
[ex_array] = nullptr,
|
||||
[ex_decl] = nullptr,
|
||||
};
|
||||
int indent = level * 2 + 2;
|
||||
|
||||
|
|
Loading…
Reference in a new issue