interpreter.go
最后更新于:2022-04-02 04:49:49
~~~
/*
Interpreter 解释器模式:
给定一个语言,定义它的文法的一种表示,
并定义一个解释器,这个解释器使用该表示来解释语言中的句子
个人想法:
作者: HCLAC
日期: 20170310
*/
package interpreter
import (
"fmt"
)
type Context struct {
text string
}
// 抽象表达式
type IAbstractExpression interface {
Interpret(*Context)
}
// 终结符表达式
type TerminalExpression struct {
}
func (t *TerminalExpression) Interpret(context *Context) {
if t == nil {
return
}
context.text = context.text[:len(context.text)-1]
fmt.Println(context)
}
// 非终结符表达式
type NonterminalExpression struct {
}
func (t *NonterminalExpression) Interpret(context *Context) {
if t == nil {
return
}
context.text = context.text[:len(context.text)-1]
fmt.Println(context)
}
~~~
';