/// <summary>
        /// constructor
        /// </summary>
        /// <param name="n">function name</param>
        /// <param name="p">function parameters</param>
        /// <param name="r">register count</param>
        /// <param name="f">flags for automatic register allocation</param>
        /// <param name="actionRec">inner action block (body)</param>
        public ActionDefineFunction2(string n,
		                             RegParamPair[] p,
		                             int r,
		                             VariableFlagSet f,
		                             ArrayList actionRec)
            : base(ActionCode.DefineFunction2)
        {
            Name = n;
            ParameterList = p;
            RegisterCount = r;
            flags = f;
            ActionRecord = actionRec;
        }
 /// <summary>
 /// constructor
 /// </summary>
 /// <param name="n">function name</param>
 /// <param name="p">function parameters</param>
 /// <param name="r">register count</param>
 /// <param name="f">flags for automatic register allocation</param>
 /// <param name="actionRec">inner action block (body)</param>
 public ActionDefineFunction2(string n,
                              RegParamPair[] p,
                              int r,
                              VariableFlagSet f,
                              ArrayList actionRec)
     : base(ActionCode.DefineFunction2)
 {
     Name          = n;
     ParameterList = p;
     RegisterCount = r;
     flags         = f;
     ActionRecord  = actionRec;
 }