using System;
using System.Text;
using System.Text.RegularExpressions;
namespace Com.OSLeague.Component
{
///
/// 语法分析器,将所有Code根据语法进行变色
/// 支持VB.NET
/// 支持CS
///
///
///
/// 练习正则表达式
///
///
public class CodeAnalysis
{
//
//定义HTML开始和结束的语句,用于语法变色
//
const string TAG_FNTRED = @"";
const string TAG_FNTBLUE = @"" ;
const string TAG_FNTGRN = @"" ;
const string TAG_FNTMRN = @"" ;
const string TAG_FNTBLACK = @"" ;
const string TAG_EFONT = @"" ;
const string TAG_SPNYELLOW = @"";
const string TAG_ESPAN = @"";
const string TAG_B = @"";
const string TAG_EB = @"";
const string TAG_COMMENT = @"";
const string TAG_ECOMMENT = @"";
//
public CodeAnalysis()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
///
/// 处理VB.NET代码,彩色化..
///
/// 传入的Code
///
public string ParseVB(string Code)
{
//
//定义VB.NET中关键字,将其存为数组
//
string[] VB_Keyword = new string[]
{
"AddHandler","AddressOf","AndAlso","Alias","And","Ansi","As","Assembly","Auto","Boolean",
"ByRef","Byte","ByVal","Call","Case","Catch","CBool","CByte","CChar",
"CDate","CDec","CDbl","Char","CInt","Class","CLng","CObj","Const",
"CShort","CSng","CStr","CType","Date","Decimal","Declare","Default",
"Delegate","Dim","DirectCast","Do","Double","Each","Else","ElseIf","End",
"Enum","Erase","Error","Event","Exit","False",
"Finally","For","Friend","Function","Get","GetType","GoTo","Handles","If",
"Implements","Imports","In","Inherits","Integer","Interface",
"Is","Let","Lib","Like","Long","Loop","Me","Mod","Module",
"MustInherit","MustOverride","MyBase","MyClass","Namespace","New","Next","Not","Nothing",
"NotInheritable","NotOverridable","Object","On","Option","Optional","Or","OrElse",
"Overloads","Overridable","Overrides","ParamArray","Preserve","Private","Property","Protected","Public",
"RaiseEvent","ReadOnly","ReDim","RemoveHandler","Resume","Return",
"Select","Set","Shadows","Shared","Short","Single","Static","Step","Stop",
"String","Structure","Sub","SyncLock","Then","Throw",
"To","True","Try","TypeOf","Unicode","Until","Variant","When","While",
"With","WithEvents","WriteOnly","Xor"
};
//
//设定转换代码颜色
//
string ReplaceVBComment = TAG_COMMENT + "$1" + TAG_ECOMMENT;
string ReplaceVBKeyword = TAG_FNTBLUE + "${char}" + TAG_EFONT;
//开始转换
for (int i=0;i { string TempDirectives = @"(? Code = Regex.Replace(Code,TempDirectives,ReplaceVBKeyword,RegexOptions.IgnoreCase); Code = Regex.Replace(Code,@"'(? Code = Regex.Replace(Code,@"REM (? } return Code; } }<

