summaryrefslogtreecommitdiff
path: root/internal/token/linked_token_list.go
blob: 5115f75450c26821eca00a66f77991cafd9730fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package token

type LinkedTokenList struct {
	head, tail *Token
}

func (lts *LinkedTokenList) GetHead() *Token {
	return lts.head
}

func (lts *LinkedTokenList) GetTail() *Token {
	return lts.tail
}

func (lts *LinkedTokenList) AddToken(content string) {
	newToken := &Token{
		content: content,
		prev:    nil,
		next:    nil,
	}

	if lts.head == nil {
		lts.head = newToken
		lts.tail = newToken
	} else {
		newToken.SetPreviousToken(lts.tail)
		lts.tail.SetNextToken(newToken)
		lts.tail = newToken
	}
}