public static string getCallString(CallData data, bool includeComment) { #if FULL_VERSION string lineNo = string.Empty;// string.Format("/* {0} */", data.GetLine()); string line = string.Empty; if (data.IsHighOrder) { line = getCallString(data.Call, includeComment); } else if (data.HaveId()) { line = quoteString(data.GetId(), data.GetIdType()); } if (data.HaveParam()) { int paramClass = (data.GetParamClass() & (int)CallData.ParamClassEnum.PARAM_CLASS_UNMASK); if ((int)CallData.ParamClassEnum.PARAM_CLASS_OPERATOR == paramClass) { switch (data.GetParamNum()) { case 1: return string.Format("{0} {1}", line, data.GetParam(0).ToScriptString(includeComment)); case 2: return string.Format("{0} {1} {2}", data.GetParam(0).ToScriptString(includeComment), line, data.GetParam(1).ToScriptString(includeComment)); default: return line; } } else { string lbracket = string.Empty; string rbracket = string.Empty; switch (paramClass) { case (int)CallData.ParamClassEnum.PARAM_CLASS_PARENTHESIS: lbracket = "("; rbracket = ")"; break; case (int)CallData.ParamClassEnum.PARAM_CLASS_BRACKET: lbracket = "["; rbracket = "]"; break; case (int)CallData.ParamClassEnum.PARAM_CLASS_PERIOD: lbracket = "."; rbracket = string.Empty; break; case (int)CallData.ParamClassEnum.PARAM_CLASS_PERIOD_PARENTHESIS: lbracket = ".("; rbracket = ")"; break; case (int)CallData.ParamClassEnum.PARAM_CLASS_PERIOD_BRACKET: lbracket = ".["; rbracket = "]"; break; case (int)CallData.ParamClassEnum.PARAM_CLASS_PERIOD_BRACE: lbracket = ".{"; rbracket = "}"; break; } StringBuilder stream = new StringBuilder(); stream.Append(lbracket); int ct = data.GetParamNum(); for (int i = 0; i < ct; ++i) { if (i > 0) stream.Append(","); ISyntaxComponent param = data.GetParam(i); if ((int)CallData.ParamClassEnum.PARAM_CLASS_PERIOD == paramClass) stream.Append(unquoteString(param.ToScriptString(includeComment))); else stream.Append(param.ToScriptString(includeComment)); } stream.Append(rbracket); return string.Format("{0}{1}{2}", lineNo, line, stream.ToString()); } } else { return string.Format("{0}{1}", lineNo, line); } #else return string.Empty; #endif }