interpreter-in-go/pkg/ast/expression_statement.go

24 lines
708 B
Go
Raw Normal View History

package ast
import "code.jmug.me/jmug/interpreter-in-go/pkg/token"
// ExpressionStatement is a simple wrapper of an expression in a statement
// This is common in scripting languages and allows you to have a source line
// that is solely an expression, think of the Python REPL and how you can
// type `1 + 1` and get a result.
type ExpressionStatement struct {
Token token.Token // The first token in the expression.
Expression Expression
}
func (es *ExpressionStatement) statementNode() {}
func (es *ExpressionStatement) TokenLiteral() string {
return es.Token.Literal
}
func (es *ExpressionStatement) String() string {
if es.Expression != nil {
return es.Expression.String()
}
return ""
}