Example #1
0
 public static EocArrayLiteralExpression Translate(CodeConverter C, ArrayLiteralExpression expr)
 {
     if (expr == null)
     {
         return(null);
     }
     return(new EocArrayLiteralExpression(C, expr.Select(x => EocExpression.Translate(C, x)).ToList()));
 }
 public static EocAccessArrayExpression Translate(CodeConverter C, AccessArrayExpression expr)
 {
     if (expr == null)
     {
         return(null);
     }
     return(new EocAccessArrayExpression(C, EocExpression.Translate(C, expr.Target), EocExpression.Translate(C, expr.Index)));
 }
 public static EocAccessMemberExpression Translate(CodeConverter C, AccessMemberExpression expr)
 {
     if (expr == null)
     {
         return(null);
     }
     return(new EocAccessMemberExpression(C, EocExpression.Translate(C, expr.Target), C.P.GetEocMemberInfo(expr)));
 }
 public static EocCallExpression Translate(CodeConverter C, CallExpression expr)
 {
     if (expr == null)
     {
         return(null);
     }
     return(new EocCallExpression(
                C,
                C.P.GetEocCmdInfo(expr),
                EocExpression.Translate(C, expr.Target),
                expr.ParamList?.Select(x => EocExpression.Translate(C, x)).ToList(),
                expr.LibraryId >= 0 ? C.P.EocLibs[expr.LibraryId]?.SuperTemplateAssembly : null));
 }
        public static EocCallExpression Translate(CodeConverter C, CallExpression expr)
        {
            var P = C.P;

            if (expr == null)
            {
                return(null);
            }
            var result = new EocCallExpression(
                C,
                P.GetEocCmdInfo(expr),
                EocExpression.Translate(C, expr.Target),
                expr.ParamList?.Select(x => EocExpression.Translate(C, x)).ToList(),
                expr.LibraryId >= 0 ? P.EocLibs[expr.LibraryId]?.SuperTemplateAssembly : null);

            if (expr.InvokeSpecial)
            {
                result.SpecialScope = "raw_" + P.GetUserDefinedName_SimpleCppName(P.MethodIdToClassMap[expr.MethodId].Id);
            }
            return(result);
        }
Example #6
0
        public static EocCallExpression Translate(CodeConverter C, CallExpression expr)
        {
            var P = C.P;

            if (expr == null)
            {
                return(null);
            }
            var paramList           = expr.ParamList?.Select(x => EocExpression.Translate(C, x)).ToList();
            var countOfDefaultAtEnd = 0;

            for (int i = paramList.Count - 1; i >= 0; i--)
            {
                if (paramList[i] != null)
                {
                    break;
                }
                countOfDefaultAtEnd++;
            }
            if (countOfDefaultAtEnd != 0)
            {
                paramList.RemoveRange(paramList.Count - countOfDefaultAtEnd, countOfDefaultAtEnd);
            }
            var result = new EocCallExpression(
                C,
                P.GetEocCmdInfo(expr),
                EocExpression.Translate(C, expr.Target),
                paramList,
                expr.LibraryId >= 0 ? P.EocLibs[expr.LibraryId]?.SuperTemplateAssembly : null);

            if (expr.InvokeSpecial)
            {
                result.SpecialScope = "raw_" + P.GetUserDefinedName_SimpleCppName(P.MethodIdToClassMap[expr.MethodId].Id);
            }
            return(result);
        }