Move AST nodes to their own files.

Signed-off-by: jmug <u.g.a.mariano@gmail.com>
This commit is contained in:
Mariano Uvalle 2025-01-05 13:05:35 -08:00
parent 4acc09faf9
commit 5367fbd29d
9 changed files with 164 additions and 134 deletions

View file

@ -0,0 +1,23 @@
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 ""
}