Esempio n. 1
0
        public static void _EmitReturn(ReturnStatement rs,  List<ILInstuction> il)
        {
            if (rs.Expression != null) {
                var returnVariable = _EmitExpression(rs.Expression, il);

                CurrentFunction.AddLocal(returnVariable, rs.Expression.ResultType);

                ILReturn ilReturn = new ILReturn();
                ilReturn.Line = GetLabel();
                ilReturn.Return = _constructVariableAccess(returnVariable);
                il.Add(ilReturn);
            } else {
                ILReturn ilReturn = new ILReturn();
                ilReturn.Line = GetLabel();
                il.Add(ilReturn);
            }
        }
Esempio n. 2
0
 public static void EmitReturn(ReturnStatement rs,  List<ILInstuction> il)
 {
     ILReturn ilReturn = new ILReturn();
     ilReturn.Line = GetLabel();
     ilReturn.Return = ConstructILExpression(rs.Expression);
     il.Add(ilReturn);
 }