zclsyntax: peeker methods to get next and previous token ranges
This commit is contained in:
parent
23cb83ef3e
commit
14d256467a
@ -1,5 +1,9 @@
|
|||||||
package zclsyntax
|
package zclsyntax
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/zclconf/go-zcl/zcl"
|
||||||
|
)
|
||||||
|
|
||||||
type peeker struct {
|
type peeker struct {
|
||||||
Tokens Tokens
|
Tokens Tokens
|
||||||
NextIndex int
|
NextIndex int
|
||||||
@ -28,6 +32,18 @@ func (p *peeker) Read() Token {
|
|||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *peeker) NextRange() zcl.Range {
|
||||||
|
return p.Peek().Range
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *peeker) PrevRange() zcl.Range {
|
||||||
|
if p.NextIndex == 0 {
|
||||||
|
return p.NextRange()
|
||||||
|
}
|
||||||
|
|
||||||
|
return p.Tokens[p.NextIndex-1].Range
|
||||||
|
}
|
||||||
|
|
||||||
func (p *peeker) nextToken() (Token, int) {
|
func (p *peeker) nextToken() (Token, int) {
|
||||||
for i := p.NextIndex; i < len(p.Tokens); i++ {
|
for i := p.NextIndex; i < len(p.Tokens); i++ {
|
||||||
tok := p.Tokens[i]
|
tok := p.Tokens[i]
|
||||||
|
Loading…
Reference in New Issue
Block a user