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

完整的VB.NET的语法解析程序,第1张

  比较长 不过支持全部的关键字 直接就可以用了 using Systemusing System Textusing System Text RegularExpressions

namespace Com OSLeague Component{/// <summary>/// 语法分析器 将所有Code根据语法进行变色/// <list type= VB >支持VB NET</list>/// <list type= CS >支持CS</list>/// <author>掉掉</author>/// <date>年 月 日</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_MENT = @ <font colr=# >const string TAG_EMENT = @ </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 }

////设定转换代码颜色//

lishixinzhi/Article/program/net/201311/14615

通过完成预测分析法的语法分析程序,了解预测分析法和递归子程序法的区别和联系。使学生了解语法分析的功能,掌握语法分析程序设计的原理和构造方法,训练学生掌握开发应用程序的基本方法。有利于提高学生的专业素质,为培养适应社会多方面需要的能力。

根据某一文法编制调试 LL(1)分析程序,以便对任意输入的符号串进行分析。

构造预测分析表,并利用分析表和一个栈来实现对上述程序设计语言的分析程序。

分析法的功能是利用LL(1)控制程序根据显示栈栈顶内容、向前看符号以及LL(1)分析表,对输入符号串自上而下的分析过程。

对文法 的句子进行不含回溯的自上向下语法分析的充分必要条件是:

(1)文法不含左递归;

(2)对于文法中的每一个非终结符 的各个产生式的候选首符集两两不相交,即,若

Follow集合构造:

对于文法 的每个非终结符 构造 的算法是,连续使用下面的规则,直至每个 不再增大为止:

仅给出核心部分

(1) GrammerSymbol.java

(2) GrammerSymbols.java

(3) Grammer.java

(4) LL1Grammer.java


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11774574.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存