/* ------------------------------------------------------------------------- */
/* "expressc" : The expression code generator */
/* */
/* ------------------------------------------------------------------------- */
/* "expressc" : The expression code generator */
/* */
index_ao;
int x = 0, y = 0, byte_flag = FALSE, read_flag = FALSE, from_module = FALSE;
index_ao;
int x = 0, y = 0, byte_flag = FALSE, read_flag = FALSE, from_module = FALSE;
/* If we recognise AO1 as arising textually from a declared
array, we can check bounds explicitly. */
/* If we recognise AO1 as arising textually from a declared
array, we can check bounds explicitly. */
{
int passed_label = next_label++, failed_label = next_label++,
final_label = next_label++;
{
int passed_label = next_label++, failed_label = next_label++,
final_label = next_label++;
/* If we recognise AO1 as arising textually from a declared
array, we can check bounds explicitly. */
/* If we recognise AO1 as arising textually from a declared
array, we can check bounds explicitly. */
{
/* Calculate the largest permitted array entry + 1
Here "size_ao.value" = largest permitted entry of its own kind */
{
/* Calculate the largest permitted array entry + 1
Here "size_ao.value" = largest permitted entry of its own kind */
arg_c++, arg_et = ET[arg_et].right)
{ if (ET[arg_et].value.type == VARIABLE_OT)
error("Only constants can be used as possible 'random' results");
arg_c++, arg_et = ET[arg_et].right)
{ if (ET[arg_et].value.type == VARIABLE_OT)
error("Only constants can be used as possible 'random' results");
assemblez_1_to(random_zc, AO, temp_var1);
assemblez_dec(temp_var1);
assemblez_1_to(random_zc, AO, temp_var1);
assemblez_dec(temp_var1);
{ if (ET[arg_et].value.type == LOCALVAR_OT
|| ET[arg_et].value.type == GLOBALVAR_OT)
error("Only constants can be used as possible 'random' results");
{ if (ET[arg_et].value.type == LOCALVAR_OT
|| ET[arg_et].value.type == GLOBALVAR_OT)
error("Only constants can be used as possible 'random' results");
assembleg_2(random_gc, AO, stack_pointer);
assembleg_3(aload_gc, AO2, stack_pointer, Result);
assembleg_2(random_gc, AO, stack_pointer);
assembleg_3(aload_gc, AO2, stack_pointer, Result);