This repository has been archived on 2021-09-07. You can view files and clone it, but cannot push or open issues or pull requests.
2018-01-20 13:38:03 +03:00

34 lines
688 B
Go

package interpreter
import (
"strings"
)
type Expression interface {
interpret(string) bool
}
type MainInterpreter struct {
state string
}
func (i *MainInterpreter) interpret(context string) bool{
if strings.Contains(i.state, context) {
return true
}
return false
}
type OrExpressionInterpreter struct {
expOne, expTwo Expression
}
func (o *OrExpressionInterpreter) interpret(context string) bool {
return o.expOne.interpret(context) || o.expTwo.interpret(context)
}
type AndExpressionInterpreter struct {
expOne, expTwo Expression
}
func (o *AndExpressionInterpreter) interpret(context string) bool {
return o.expOne.interpret(context) && o.expTwo.interpret(context)
}