Related articles |
---|
Implementation of 'C' like pointers and arrays... tfjellstrom@home.com (Tom Fjellstrom) (2000-08-05) |
Re: Implementation of 'C' like pointers and arrays... tfjellstrom@home.com (Tom Fjellstrom) (2000-08-09) |
Re: Implementation of 'C' like pointers and arrays... tfjellstrom@home.com (Tom Fjellstrom) (2000-08-13) |
From: | Tom Fjellstrom <tfjellstrom@home.com> |
Newsgroups: | comp.compilers |
Date: | 5 Aug 2000 21:27:57 -0400 |
Organization: | Excite@Home - The Leader in Broadband |
Keywords: | question, comment |
I've been writing a 'C' like scripting engine/language and I've gotten
stuck on how to get the parser (hand written) to create a variable
defined like:
char *ch[3]; // or char **ch;
but I don't understand how to get it to create a pointer to an array
of chars. (could be any type) Or even a pointer to a pointer. I'm
just plain stuck.
basically what I do now with a plain pointer or regular var is to
create the symbol and give it its type ([pointer to]/int/char...)
Here is a short version of the structs that I use.
union var_sym_t {
int ival;
double fval;
char cval;
char *sval;
void *vval;
};
struct symbol_t {
struct {
int offset;
int len; // len==??? for arrays
int size; // size==8-32bits
union var_sym_t val;
} data;
...
};
struct symtab_node_t {
struct symtab_node_t *prev, *next;
struct symtab_node_t *parent, *child;
int flags;
char *name;
struct symbol_t info;
};
I'm guessing that my symtab setup
won't cut it.
Any help would be appreciated.
--
Tom Fjellstrom
[C types are recursively defined wigth "array of", "pointer to", and
"function returning" either a base type or another array, pointer, or
function. I'd use a recursive data structure if you really want the
fully glory of C types. PCC, the 2nd C compiler, used a cute trick
using two-bit fields in the type word to describe the pointer, array,
and function bits. -John]
Return to the
comp.compilers page.
Search the
comp.compilers archives again.