Python 3 interpreter in Go
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

40 lines
777 B

package token
import "fmt"
type Token struct {
ColumnEnd int
LineEnd int
ID TokenID
Literal string
ColumnStart int
LineStart int
}
func (token *Token) String() string {
return TokenNames[token.ID]
}
func (token *Token) Start() []int {
return []int{token.LineStart, token.ColumnStart}
}
func (token *Token) End() []int {
return []int{token.LineEnd, token.ColumnEnd}
}
func (token *Token) IsLiteral(literal string) bool {
return token.ID == NAME && token.Literal == literal
}
func (token *Token) Repr() string {
return fmt.Sprintf(
"Token{ID: %#v, Literal: %#v, LineStart: %#v, ColumnStart: %#v, LineEnd: %#v, ColumnEnd: %#v}",
token.ID,
token.Literal,
token.LineStart,
token.ColumnStart,
token.LineEnd,
token.ColumnEnd,
)
}