void PrintVariable(SubscriptVariable v, int d) { SayLn("SubscriptVariable("); PrintVariable(v.Var, d + 1); SayLn(","); PrintExpression(v.Index, d + 1); Say(")"); }
ExpressionType TranslateVariable(SubscriptVariable sub) { ExpressionType var = TranslateVariable(sub.Var); if (var.Type.Actual is Types.ARRAY) { ExpressionType index = TranslateExpression(sub.Index); CheckInteger(sub.Index.Pos, index); return(new ExpressionType(Translate.TranslateSubscriptVar(var.Exp, index.Exp), (var.Type.Actual as Types.ARRAY).Element.Actual)); } else { Error.Report(sub.Pos, "Array type required"); return(new ExpressionType(null, Types.Type._unknown)); } }