mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-27 06:34:11 +00:00
Allow arrays to have ranges (not fully implmented)
This commit is contained in:
parent
25c36a51a8
commit
c5d0acf0fa
2 changed files with 15 additions and 0 deletions
|
@ -45,6 +45,7 @@ typedef struct type_s {
|
||||||
union {
|
union {
|
||||||
struct class_s *class; // for ev_class
|
struct class_s *class; // for ev_class
|
||||||
struct struct_s *strct; // for ev_struct
|
struct struct_s *strct; // for ev_struct
|
||||||
|
int base; // for arrays
|
||||||
} s;
|
} s;
|
||||||
} type_t;
|
} type_t;
|
||||||
|
|
||||||
|
@ -97,6 +98,7 @@ typedef_t *get_typedef (const char *name);
|
||||||
type_t *field_type (type_t *aux);
|
type_t *field_type (type_t *aux);
|
||||||
type_t *pointer_type (type_t *aux);
|
type_t *pointer_type (type_t *aux);
|
||||||
type_t *array_type (type_t *aux, int size);
|
type_t *array_type (type_t *aux, int size);
|
||||||
|
type_t *based_array_type (type_t *aux, int base, int top);
|
||||||
void print_type (type_t *type);
|
void print_type (type_t *type);
|
||||||
const char *encode_params (type_t *type);
|
const char *encode_params (type_t *type);
|
||||||
void encode_type (struct dstring_s *encoding, type_t *type);
|
void encode_type (struct dstring_s *encoding, type_t *type);
|
||||||
|
|
|
@ -229,6 +229,19 @@ array_type (type_t *aux, int size)
|
||||||
return find_type (&new);
|
return find_type (&new);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type_t *
|
||||||
|
based_array_type (type_t *aux, int base, int top)
|
||||||
|
{
|
||||||
|
type_t new;
|
||||||
|
|
||||||
|
memset (&new, 0, sizeof (new));
|
||||||
|
new.type = ev_array;
|
||||||
|
new.aux_type = aux;
|
||||||
|
new.num_parms = top - base + 1;
|
||||||
|
new.s.base = base;
|
||||||
|
return find_type (&new);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
print_type (type_t *type)
|
print_type (type_t *type)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue