V10/cmd/cyntax/cem/var.h
/*
* Structures for variables, initialisations
* and argument lists.
*/
typedef struct arg arg;
typedef struct args args;
typedef struct defn defn;
typedef struct init init;
struct arg
{
args *a_head;
args **a_tail;
int a_count;
symbol *a_file;
long a_line;
arg *a_next;
};
struct args
{
type *a_type;
args *a_next;
};
struct defn
{
obj_vars d_what;
type *d_type;
symbol *d_file;
long d_line;
defn *d_next;
};
struct init
{
symbol *i_file;
long i_line;
int i_varargs;
init *i_next;
};
struct inst
{
symbol *i_name;
arg *i_argdefn;
arg *i_args;
arg **i_tail;
defn *i_defn;
init *i_init;
inst *i_next;
};
struct var
{
obj_vars v_what;
symbol *v_name;
type *v_type;
symbol *v_file;
long v_line;
symbol *v_ifile;
long v_iline;
long v_index;
int v_varargs;
arg *v_argdefn;
arg *v_args;
arg **v_tail;
var *v_next;
};