示例#1
0
 /// <summary>
 /// Called to evaluate the HTML fragment corresponding to each
 /// matching token in the code.
 /// </summary>
 /// <param name="match">The <see cref="Match"/> resulting from a
 /// single regular expression match.</param>
 /// <returns>A string containing the HTML code fragment.</returns>
 protected override string MatchEval(Match match)
 {
     if (match.Groups[1].Success)            //JavaScript code
     {
         string s = match.ToString();
         return(jsf.FormatSubCode(match.ToString()));
     }
     if (match.Groups[2].Success)            //comment
     {
         StringReader  reader = new StringReader(match.ToString());
         string        line;
         StringBuilder sb = new StringBuilder();
         while ((line = reader.ReadLine()) != null)
         {
             if (sb.Length > 0)
             {
                 sb.Append("\n");
             }
             sb.Append("<span class=\"rem\">");
             sb.Append(line);
             sb.Append("</span>");
         }
         return(sb.ToString());
     }
     if (match.Groups[3].Success)            //asp tag
     {
         return("<span class=\"asp\">" + match.ToString() + "</span>");
     }
     if (match.Groups[4].Success)            //asp C# code
     {
         return(csf.FormatSubCode(match.ToString()));
     }
     if (match.Groups[5].Success)            //tag delimiter
     {
         return("<span class=\"kwrd\">" + match.ToString() + "</span>");
     }
     if (match.Groups[6].Success)            //html tagname
     {
         return("<span class=\"html\">" + match.ToString() + "</span>");
     }
     if (match.Groups[7].Success)            //attributes
     {
         return(attribRegex.Replace(match.ToString(),
                                    new MatchEvaluator(this.AttributeMatchEval)));
     }
     if (match.Groups[8].Success)            //entity
     {
         return("<span class=\"attr\">" + match.ToString() + "</span>");
     }
     return(match.ToString());
 }