1. AbstractExpression(抽象表达式),声明一个抽象的解释操作,这个接口为抽象语法树中所有的节点所共享。
Public MustInherit Class AbstractExpression
Public MustOverride Sub Interpret(ByVal context As Context)
End Class
2. TerminalExpression(终结符表达式),实现与文法中的终结符相关联的解释操作。实现抽象表达式中所要求的接口,主要是一个interpret()方法。文法中每一个终结符都有一个具体终结表达式与之相对应。
Public Class TerminalExpression
Inherits AbstractExpression
Public Overrides Sub Interpret(ByVal context As Context)
Console.WriteLine("终端解释器")
End Sub
End Class
3. NonterminaIExpression(非终结符表达式),为文法中的非终结符实现解释操作t对文法中每一条规则R1、R2---Rn都需要一个具体的非终结符表达式类。通过实现抽象表达式的interpret0方法实现解释操作。解释操作以递归方式调用上面所提到的代表Rl、R2--…Rn中各个符号的实例变量.
Public Class NonTerminalExpression
Inherits Abstrac