//--------------------------------------------------------------- // examples of various parameter options //---------------------------------------------------------------- main module PARAMETER use TEXTIO procedure PARAMETER param I_def_def_noinit : integer //1 I_def_def_init : integer initially -2 //2 I_inout_ref_noinit : inout ref integer //3 I_inout_ref_init : inout ref integer initially -4 //4 I_inout_val_noinit : inout val integer //5 I_inout_val_init : inout val integer initially -6 //6 I_in_ref_noinit : in ref integer //7 //illegal I_in_ref_init : in ref integer initially .. //8 I_in_val_noinit : in val integer //9 //illegal I_in_val_init : in val integer initially .. //10 I_out_ref_noinit : out ref integer //11 I_out_ref_init : out ref integer initially -12 //12 I_out_val_noinit : out val integer //13 I_out_val_init : out val integer initially -14 //14 endparam tty_line ("At start of procedure:") out_string (TTY, "I_def_def_noinit = ") out_integer (TTY, I_def_def_noinit) out_record (TTY) out_string (TTY, "I_def_def_init = ") out_integer (TTY, I_def_def_init) out_record (TTY) out_string (TTY, "I_inout_ref_noinit = ") out_integer (TTY, I_inout_ref_noinit) out_record (TTY) out_string (TTY, "I_inout_ref_init = ") out_integer (TTY, I_inout_ref_init) out_record (TTY) out_string (TTY, "I_inout_val_noinit = ") out_integer (TTY, I_inout_val_noinit) out_record (TTY) out_string (TTY, "I_inout_val_init = ") out_integer (TTY, I_inout_val_init) out_record (TTY) out_string (TTY, "I_in_ref_noinit = ") out_integer (TTY, I_in_ref_noinit) out_record (TTY) out_string (TTY, "I_in_val_noinit = ") out_integer (TTY, I_in_val_noinit) out_record (TTY) out_string (TTY, "I_out_ref_noinit = ") out_integer (TTY, I_out_ref_noinit) out_record (TTY) out_string (TTY, "I_out_ref_init = ") out_integer (TTY, I_out_ref_init) out_record (TTY) out_string (TTY, "I_out_val_noinit = ") out_integer (TTY, I_out_val_noinit) out_record (TTY) out_string (TTY, "I_out_val_init = ") out_integer (TTY, I_out_val_init) out_record (TTY) //--- put new values into variables tty_line ("new values set in procedure are:") I_def_def_noinit *= + 100 I_def_def_init *= + 100 I_inout_ref_noinit *= + 100 I_inout_ref_init *= + 100 I_inout_val_noinit *= + 100 I_inout_val_init *= + 100 // I_in_ref_noinit *= + 100 // attempt to modify read only object //illegal I_in_ref_init *= + 100 I_in_val_noinit *= + 100 //illegal I_in_val_init *= + 100 I_out_ref_noinit *= + 100 I_out_ref_init *= + 100 I_out_val_noinit *= + 100 I_out_val_init *= + 100 out_string (TTY, "I_def_def_noinit = ") out_integer (TTY, I_def_def_noinit) out_record (TTY) out_string (TTY, "I_def_def_init = ") out_integer (TTY, I_def_def_init) out_record (TTY) out_string (TTY, "I_inout_ref_noinit = ") out_integer (TTY, I_inout_ref_noinit) out_record (TTY) out_string (TTY, "I_inout_ref_init = ") out_integer (TTY, I_inout_ref_init) out_record (TTY) out_string (TTY, "I_inout_val_noinit = ") out_integer (TTY, I_inout_val_noinit) out_record (TTY) out_string (TTY, "I_inout_val_init = ") out_integer (TTY, I_inout_val_init) out_record (TTY) out_string (TTY, "I_in_ref_noinit = ") out_integer (TTY, I_in_ref_noinit) out_record (TTY) out_string (TTY, "I_in_val_noinit = ") out_integer (TTY, I_in_val_noinit) out_record (TTY) out_string (TTY, "I_out_ref_noinit = ") out_integer (TTY, I_out_ref_noinit) out_record (TTY) out_string (TTY, "I_out_ref_init = ") out_integer (TTY, I_out_ref_init) out_record (TTY) out_string (TTY, "I_out_val_noinit = ") out_integer (TTY, I_out_val_noinit) out_record (TTY) out_string (TTY, "I_out_val_init = ") out_integer (TTY, I_out_val_init) out_record (TTY) tty_line ("exit from paramter procedure") endprocedure declare I1 : static integer initially 1 I2 : static integer initially 2 I3 : static integer initially 3 I4 : static integer initially 4 I5 : static integer initially 5 I6 : static integer initially 6 I7 : static integer initially 7 //illegal I8 : static integer initially 8 I9 : static integer initially 9 //illegal I10 : static integer initially 10 I11 : static integer initially 11 I12 : static integer initially 12 I13 : static integer initially 13 I14 : static integer initially 14 enddeclare Parameter (I1, I2, I3, I4, I5, I6, I7, I9, I11, I12, I13, I14) tty_line ("After return from parameter procedure:") out_string (TTY, "I_def_def_noinit = ") out_integer (TTY, I1) out_record (TTY) out_string (TTY, "I_def_def_init = ") out_integer (TTY, I2) out_record (TTY) out_string (TTY, "I_inout_ref_noinit = ") out_integer (TTY, I3) out_record (TTY) out_string (TTY, "I_inout_ref_init = ") out_integer (TTY, I4) out_record (TTY) out_string (TTY, "I_inout_val_noinit = ") out_integer (TTY, I5) out_record (TTY) out_string (TTY, "I_inout_val_init = ") out_integer (TTY, I6) out_record (TTY) out_string (TTY, "I_in_ref_noinit = ") out_integer (TTY, I7) out_record (TTY) out_string (TTY, "I_in_val_noinit = ") out_integer (TTY, I9) out_record (TTY) out_string (TTY, "I_out_ref_noinit = ") out_integer (TTY, I11) out_record (TTY) out_string (TTY, "I_out_ref_init = ") out_integer (TTY, I12) out_record (TTY) out_string (TTY, "I_out_val_noinit = ") out_integer (TTY, I13) out_record (TTY) out_string (TTY, "I_out_val_init = ") out_integer (TTY, I14) out_record (TTY) endmodule