예제 #1
0
        protected virtual string Translate(Computation.CallAPI node, Context context)
        {
            StringBuilder ret     = new StringBuilder();
            bool          isfirst = true;

            ret.AppendFormat("{0}(", context.APIName(node));

            if (context.This("") == "")
            {
                ret.Append("data");
                isfirst = false;
            }

            for (int i = 0; i < node.Arguments.Length; ++i)
            {
                if (!isfirst)
                {
                    ret.Append(", ");
                }
                else
                {
                    isfirst = false;
                }

                var arg = node.Arguments[i];

                string eq = InstructionTranslator.QuickTranslate((Context)context.Base().Push(arg));
                ret.Append(eq);
            }

            ret.AppendFormat(");");
            return(ret.ToString());
        }
예제 #2
0
파일: Context.cs 프로젝트: codyn-net/rawc
 public override string APIName(Computation.CallAPI node)
 {
     return(ThisCall(node.Function.Name));
 }
예제 #3
0
파일: Context.cs 프로젝트: codyn-net/rawc
 public virtual string APIName(Computation.CallAPI node)
 {
     return(ThisCall(node.Function.Name));
 }
예제 #4
0
파일: Context.cs 프로젝트: codyn-net/rawc
 public override string APIName(Computation.CallAPI node)
 {
     return(String.Format("{0}_{1}", Options.CPrefixDown, node.Function.Name));
 }