21 lines
555 B
Go
21 lines
555 B
Go
|
|
package ast
|
||
|
|
|
||
|
|
import "code.jmug.me/jmug/interpreter-in-go/pkg/token"
|
||
|
|
|
||
|
|
// Identifier is treated as an expression because in certain
|
||
|
|
// circumstances they can return values (think `let some = other` where `other`
|
||
|
|
// is actually an expression returning a value) and this makes them easier to
|
||
|
|
// handle (according to the author).
|
||
|
|
type Identifier struct {
|
||
|
|
Token token.Token
|
||
|
|
Value string
|
||
|
|
}
|
||
|
|
|
||
|
|
func (i *Identifier) expressionNode() {}
|
||
|
|
func (i *Identifier) TokenLiteral() string {
|
||
|
|
return i.Token.Literal
|
||
|
|
}
|
||
|
|
func (i *Identifier) String() string {
|
||
|
|
return i.Value
|
||
|
|
}
|