clerk/journal/lexer/dump.go (view raw)
| 1 | package lexer |
| 2 | |
| 3 | import ( |
| 4 | "fmt" |
| 5 | "strings" |
| 6 | |
| 7 | "olexsmir.xyz/clerk/journal/token" |
| 8 | ) |
| 9 | |
| 10 | func (l *Lexer) Dump() string { |
| 11 | var b strings.Builder |
| 12 | for { |
| 13 | t := l.Next() |
| 14 | fmt.Fprintf(&b, "%-12s %-20q %d:%d-%d:%d\n", |
| 15 | t.Type, |
| 16 | t.Literal, |
| 17 | t.Span.Start.Line, |
| 18 | t.Span.Start.Col, |
| 19 | t.Span.End.Line, |
| 20 | t.Span.End.Col) |
| 21 | if t.Type == token.EOF { |
| 22 | break |
| 23 | } |
| 24 | } |
| 25 | return b.String() |
| 26 | } |