[Prev][Next][Index]

T_ARRAY: Still a problem




I still have a problem with the T_ARRAY business, and I think this is
a legitimate one...

Basically, the structure
	T_PTR(-1) -> T_PTR(1) -> T_ARRAY (no ranges) -> T_DOUBLE
is used for two different expressions with completely different
meanings. Both y[3] and &(y[3]) have this problem type. Since they are
conceptually very different objects, this is a nasty problem for me.

The worst part about this is that I cannot reliably declare a
temporary variable that will hold &(y[3]) just knowing it's type! 

Notice that the true type of the current Sage++ type representation
is T_DOUBLE.

Since the parser actually complains about a type mismatch in the
following code, I have reason to hope this is fixable.

void main (void)
{
     double *x;
     double y[3];
     x = &(y[2]);
}


Let me know if I remain mistaken.

/Andrew/