王朝网络
分享
 
 
 

完整的VB.NET的语法解析程序

王朝厨房·作者佚名  2007-01-03
宽屏版  字体: |||超大  

比较长,不过支持全部的关键字,直接就可以用了。

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[]

{

"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<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>[^\r\n]*)",ReplaceVBComment);

Code = Regex.Replace(Code,@"REM (?<x>[^\r\n]*)",ReplaceVBComment);

}

return Code;

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有