示例#1
0
 public string FormatBeginFile(IIntermediateProject project, IIntermediateCodeTranslatorOptions options)
 {
     if (options.GetLineNumber == null)
     {
         return("<html><body style=\"font-family:Courier New;font-size:10pt;\">");
     }
     else
     {
         return(string.Format("<html><body style=\"margin:0px;background-color:{1};\"><table cellpadding=\"0\" cellspacing=\"0\" style=\"font-family:Courier New;font-size:10pt;border:none;white-space:nowrap;width:100%;\"><tbody>{0}", FormatLineStart(project, options), textBackgroundColor));
     }
 }
示例#2
0
 public string DenoteNewLine(IIntermediateProject project, IIntermediateCodeTranslatorOptions options)
 {
     if (options.GetLineNumber == null)
     {
         return("<br/>");
     }
     else
     {
         return(string.Format("</td></tr>{0}", FormatLineStart(project, options)));
     }
 }
示例#3
0
            private static string FormatLineStart(IIntermediateProject project, IIntermediateCodeTranslatorOptions options)
            {
                int    lineIndex     = options.GetLineNumber(project);
                string lineColor     = textBackgroundColor;
                string lineBackColor = textBackgroundColorAlt;

                if (lineIndex % 2 == 0)
                {
                    lineColor     = textBackgroundColorAlt;
                    lineBackColor = textBackgroundColor;
                }
                return(string.Format("<tr><td style=\"text-align:right;background-color:{3};color:{2};padding-right:4px;padding-left:4px;\">{0}</td><td style=\"padding-left:20px;background-color:{1};width:100%;\">", lineIndex, lineColor, namespaceColor, lineBackColor));
            }
示例#4
0
            public string FormatTypeNameToken(string identifierToken, IType type, IIntermediateCodeTranslatorOptions options, bool declarePoint)
            {
                string color = "";
                bool   bold  = false;

                if (type.IsDelegate)
                {
                    color = delegateColor;
                }
                else if (type.IsClass)
                {
                    color = classColor;
                    bold  = true;
                }
                else if (type.IsInterface)
                {
                    color = interfaceColor;
                }
                else if (type.IsEnumerator)
                {
                    color = enumColor;
                }
                else if (type.IsStructure)
                {
                    color = structColor;
                }
                string result = identifierToken;

                if (declarePoint && type is IDeclaredType)
                {
                    result = string.Format("<a name=\"t:{1}\"></a>{0}", result, type.GetTypeName(options, true));
                }
                if (bold)
                {
                    result = string.Format("<span style=\"color:{0};font-weight:bolder;\">{1}</span>", color, result);
                }
                else
                {
                    result = string.Format("<span style=\"color:{0};\">{1}</span>", color, result);
                }
                if (!declarePoint && options.GetFileNameOf != null && type is IDeclaredType)
                {
                    result = string.Format("<a style=\"text-decoration:none;\" href=\"{1}#t:{2}\">{0}</a>", result, options.GetFileNameOf(type), type.GetTypeName(options, true));
                }
                return(result);
            }
示例#5
0
            public string FormatLabelToken(string labelName, ILabelStatement label, IIntermediateCodeTranslatorOptions options, bool declarePoint)
            {
                var         parentTarget = label.SourceBlock;
                Stack <int> indices      = new Stack <int>();

                indices.Push(parentTarget.IndexOf(label));
                while (parentTarget.Parent is IStatementBlock)
                {
                    var oldTarget = parentTarget;
                    parentTarget = (IStatementBlock)parentTarget.Parent;
                    indices.Push(parentTarget.IndexOf((IStatement)oldTarget));
                }
                var    parentMember = parentTarget.Parent as IMember;
                string uniqueIdentifier;
                string result     = labelName;
                var    activeType = options.BuildTrail.FirstOrDefault(p => p is IDeclaredType) as IDeclaredType;

                if (parentMember == null)
                {
                    uniqueIdentifier = label.Name;
                }
                else
                {
                    uniqueIdentifier = string.Format("{0}::{{{1}}}", parentMember.GetUniqueIdentifier(), string.Join("}.{", (from i in indices
                                                                                                                             select i.ToString()).ToArray()));
                }
                if (declarePoint)
                {
                    result = string.Format("<a name=\"{0}\"></a>{1}", uniqueIdentifier, result);
                }
                string titleText = string.Format("(label) {0}", labelName);

                result = FormatMemberNameToken(result, TranslatorFormatterMemberType.Label);
                if (!declarePoint)
                {
                    result = string.Format("<a style=\"text-decoration:none;\" {3}href=\"{0}#{1}\">{2}</a>", options.GetFileNameOf(activeType), uniqueIdentifier, result, string.IsNullOrEmpty(titleText) ? string.Empty : string.Format("title=\"{0}\" ", titleText));
                }
                return(result);
            }
示例#6
0
            public string FormatMemberNameToken(string token, IMember member, IIntermediateCodeTranslatorOptions options, bool declarePoint)
            {
                TranslatorFormatterMemberType memberType = TranslatorFormatterMemberType.Local;

                if (member is IMethodMember)
                {
                    memberType = TranslatorFormatterMemberType.Method;
                }
                else if (member is IMethodSignatureMember)
                {
                    memberType = TranslatorFormatterMemberType.MethodSignature;
                }
                else if (member is IPropertyMember || member is IIndexerMember)
                {
                    memberType = TranslatorFormatterMemberType.Property;
                }
                else if (member is IPropertySignatureMember || member is IIndexerSignatureMember)
                {
                    memberType = TranslatorFormatterMemberType.PropertySignature;
                }
                else if (member is IMethodParameterMember ||
                         member is IMethodSignatureParameterMember ||
                         member is IIndexerParameterMember ||
                         member is IIndexerSignatureParameterMember ||
                         member is IConstructorParameterMember)
                {
                    memberType = TranslatorFormatterMemberType.Parameter;
                }
                else if (member is IFieldMember)
                {
                    memberType = TranslatorFormatterMemberType.Field;
                }
                else if (member is IStatementBlockLocalMember)
                {
                    memberType = TranslatorFormatterMemberType.Local;
                }
                return(FormatMemberNameToken(token, memberType));
            }
示例#7
0
            public string FormatTypeNameToken(string identifierToken, IType type, IIntermediateCodeTranslatorOptions options, bool declarePoint)
            {
                string color = "";
                bool   bold  = false;

                if (type.IsDelegate)
                {
                    color = "DarkCyan";
                }
                else if (type.IsClass)
                {
                    color = "purple";
                    bold  = true;
                }
                else if (type.IsInterface)
                {
                    color = "Magenta";
                }
                else if (type.IsEnumerator)
                {
                    color = "#C08080";
                    bold  = true;
                }
                else if (type.IsStructure)
                {
                    color = "Dark Yellow";
                }
                if (bold)
                {
                    return(string.Format("[color={0}][font=courier new][b]{1}[/b][/font][/color]", color, identifierToken));
                }
                else
                {
                    return(string.Format("[color={0}][font=courier new]{1}[/font][/color]", color, identifierToken));
                }
            }
示例#8
0
 public string FormatLabelToken(string labelName, ILabelStatement label, IIntermediateCodeTranslatorOptions options, bool declarePoint)
 {
     return(labelName);
 }
示例#9
0
 public string FormatBeginFile(IIntermediateProject project, IIntermediateCodeTranslatorOptions options)
 {
     return(string.Empty);
 }
示例#10
0
 public string DenoteNewLine(IIntermediateProject project, IIntermediateCodeTranslatorOptions options)
 {
     return(String.Empty);
 }
示例#11
0
            public string FormatMemberNameToken(string token, IMember member, IIntermediateCodeTranslatorOptions options, bool declarePoint)
            {
                TranslatorFormatterMemberType memberType = TranslatorFormatterMemberType.Local;
                string titleText = string.Empty;

                if (member is IMethodMember)
                {
                    memberType = TranslatorFormatterMemberType.Method;
                    titleText  = string.Format("(method) {0}", member.GetUniqueIdentifier());
                }
                else if (member is IMethodSignatureMember)
                {
                    memberType = TranslatorFormatterMemberType.MethodSignature;
                    titleText  = string.Format("(method) {0}", member.GetUniqueIdentifier());
                }
                else if (member is IPropertyMember || member is IIndexerMember)
                {
                    memberType = TranslatorFormatterMemberType.Property;
                    var pMember = ((IPropertyMember)member);
                    titleText = string.Format("(property) {0} {1}", pMember.PropertyType.ToString(), member.GetUniqueIdentifier());
                }
                else if (member is IPropertySignatureMember || member is IIndexerSignatureMember)
                {
                    memberType = TranslatorFormatterMemberType.PropertySignature;
                    var pMember = ((IPropertySignatureMember)member);
                    titleText = string.Format("(property) {0} {1}", pMember.PropertyType.ToString(), member.GetUniqueIdentifier());
                }
                else if (member is IMethodParameterMember)
                {
                    memberType = TranslatorFormatterMemberType.Parameter;
                    var pMember = ((IMethodParameterMember)member);
                    titleText = string.Format("(parameter) {0} {1}", pMember.ParameterType.ToString(), member.GetUniqueIdentifier());
                }
                else if (member is IMethodSignatureParameterMember)
                {
                    memberType = TranslatorFormatterMemberType.Parameter;
                    var pMember = ((IMethodSignatureParameterMember)member);
                    titleText = string.Format("(parameter) {0} {1}", pMember.ParameterType.ToString(), member.GetUniqueIdentifier());
                }
                else if (member is IIndexerParameterMember)
                {
                    memberType = TranslatorFormatterMemberType.Parameter;
                    var pMember = ((IIndexerParameterMember)member);
                    titleText = string.Format("(parameter) {0} {1}", pMember.ParameterType.ToString(), member.GetUniqueIdentifier());
                }
                else if (member is IIndexerSignatureParameterMember)
                {
                    memberType = TranslatorFormatterMemberType.Parameter;
                    var pMember = ((IIndexerSignatureParameterMember)member);
                    titleText = string.Format("(parameter) {0} {1}", pMember.ParameterType.ToString(), member.GetUniqueIdentifier());
                }
                else if (member is IConstructorParameterMember)
                {
                    memberType = TranslatorFormatterMemberType.Parameter;
                    var pMember = ((IConstructorParameterMember)member);
                    titleText = string.Format("(parameter) {0} {1}", pMember.ParameterType.ToString(), member.GetUniqueIdentifier());
                }
                else if (member is IFieldMember)
                {
                    var fMember = ((IFieldMember)member);
                    titleText  = string.Format("(field) {0} {1}", fMember.FieldType.ToString(), member.GetUniqueIdentifier());
                    memberType = TranslatorFormatterMemberType.Field;
                }
                else if (member is IStatementBlockLocalMember)
                {
                    var lMember = ((IStatementBlockLocalMember)member);
                    titleText  = string.Format("(local variable) {0} {1}", lMember.LocalType.ToString(), member.GetUniqueIdentifier());
                    memberType = TranslatorFormatterMemberType.Local;
                }
                var    activeType = options.BuildTrail.FirstOrDefault(p => p is IDeclaredType) as IDeclaredType;
                string result     = token.HtmlEncode();

                if (declarePoint)
                {
                    string targetName = string.Format("m:{0}::{1}", activeType.GetTypeName(options, true), GetMemberUniqueIdentifier(member).Replace("<", "[").Replace(">", "]").Replace("(", "%28").Replace(")", "%29"));
                    result = string.Format("<a name=\"{1}\"></a>{0}", result, targetName);
                }
                result = FormatMemberNameToken(result, memberType);

                var declaringType = GetDeclaringType(member);

                if (!declarePoint && declaringType != null)
                {
                    string targetName = string.Format("m:{0}::{1}", declaringType.GetTypeName(options, true), GetMemberUniqueIdentifier(member).Replace("<", "[").Replace(">", "]").Replace("(", "%28").Replace(")", "%29"));
                    result = string.Format("<a style=\"text-decoration:none;\" {3}href=\"{0}#{1}\">{2}</a>", options.GetFileNameOf(declaringType), targetName, result, string.IsNullOrEmpty(titleText) ? string.Empty : string.Format("title=\"{0}\" ", titleText));
                }
                return(result);
            }
示例#12
0
 public MixedOptions(IIntermediateCodeTranslatorOptions o)
 {
     originalDom  = false;
     this.options = o;
 }