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);
|
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
|
static void
|
||||||
print_subexpr (dstring_t *dstr, const expr_t *e, int level, int id, const expr_t *next)
|
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_multivec] = print_multivec,
|
||||||
[ex_list] = print_list,
|
[ex_list] = print_list,
|
||||||
[ex_type] = print_type_expr,
|
[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;
|
int indent = level * 2 + 2;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue