예제 #1
0
        public override void gen(int begin, int after)
        {
            CurrentGenerator.Goto(after);
            foreach (var item in Params.ParamList)
            {
                if (item is OptParam)
                {
                    CurrentGenerator.OptParam(item as OptParam, (item as OptParam).DefaultValue, item.ParamType);
                }
                else
                {
                    CurrentGenerator.Param(item, item.ParamType);
                }
            }

            int label  = CurrentGenerator.AllocLabel();
            int label2 = CurrentGenerator.AllocLabel();

            ExitLabel = label2;
            CurrentGenerator.Label(label);
            CurrentGenerator.LabelFunc(this);
            Stmt.gen(begin, after);
            CurrentGenerator.LabelFuncEnd(this);
            CurrentGenerator.Label(ExitLabel);
            //CurrentGenerator.Return(null);
        }