github.com/hashicorp/hcl/v2@v2.20.0/json/peeker.go (about)

     1  // Copyright (c) HashiCorp, Inc.
     2  // SPDX-License-Identifier: MPL-2.0
     3  
     4  package json
     5  
     6  type peeker struct {
     7  	tokens []token
     8  	pos    int
     9  }
    10  
    11  func newPeeker(tokens []token) *peeker {
    12  	return &peeker{
    13  		tokens: tokens,
    14  		pos:    0,
    15  	}
    16  }
    17  
    18  func (p *peeker) Peek() token {
    19  	return p.tokens[p.pos]
    20  }
    21  
    22  func (p *peeker) Read() token {
    23  	ret := p.tokens[p.pos]
    24  	if ret.Type != tokenEOF {
    25  		p.pos++
    26  	}
    27  	return ret
    28  }