using System;
using System.Text;
using System.Text.RegularExpressions; namespace Com.OSLeague.Component
{
/// <summary>
/// 语法分析器,将所有Code根据语法进行变色
/// <list type="VB">支持VB.NET</list>
/// <list type="CS">支持CS</list>
/// <author>掉掉</author>
/// <date>2002年5月14日</date>
/// <Memo>
/// 练习正则表达式
/// </Memo>
/// </summary>
public class CodeAnalysis
{
//
//定义HTML开始和结束的语句,用于语法变色
//
const string TAG_FNTRED = @"<font color=""red"">";
const string TAG_FNTBLUE = @"<font color=""blue"">" ;
const string TAG_FNTGRN = @"<font color=""green"">" ;
const string TAG_FNTMRN = @"<font color=""maroon"">" ;
const string TAG_FNTBLACK = @"<font color=""black"">" ;
const string TAG_EFONT = @"</font>" ;
const string TAG_SPNYELLOW = @"<span style=""background-color: yellow;"">";
const string TAG_ESPAN = @"</span>";
const string TAG_B = @"<b>";
const string TAG_EB = @"</b>";
const string TAG_COMMENT = @"<font colr=#008200>";
const string TAG_ECOMMENT = @"</font>";
// public CodeAnalysis()
{
//
// TODO: 在此处添加构造函数逻辑
//
} /// <summary>
/// 处理VB.NET代码,彩色化..
/// </summary>
/// <param name="Code">传入的Code</param>
/// <returns>处理过后的代码</returns>
public string ParseVB(string Code)
{
//
//定义VB.NET中关键字,将其存为数组
// string[] VB_Keyword = new string[]
; //
//设定转换代码颜色
// string ReplaceVBComment = TAG_COMMENT + "" + TAG_ECOMMENT;string ReplaceVBKeyword = TAG_FNTBLUE + "$" + TAG_EFONT;//开始转换for (int i=0;i<VB_Keyword.Length;i++){string TempDirectives = @"(?<char>(s" + VB_Keyword[i] + "|" + VB_Keyword[i] + @"s))";Code = Regex.Replace(Code,TempDirectives,ReplaceVBKeyword,RegexOptions.IgnoreCase);Code = Regex.Replace(Code,@"'(?<x>[^rn]*)",ReplaceVBComment);Code = Regex.Replace(Code,@"REM (?<x>[^rn]*)",ReplaceVBComment);}return Code; }}} |