37 lines
		
	
	
		
			574 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			574 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package govaluate
 | 
						|
 | 
						|
type tokenStream struct {
 | 
						|
	tokens      []ExpressionToken
 | 
						|
	index       int
 | 
						|
	tokenLength int
 | 
						|
}
 | 
						|
 | 
						|
func newTokenStream(tokens []ExpressionToken) *tokenStream {
 | 
						|
 | 
						|
	var ret *tokenStream
 | 
						|
 | 
						|
	ret = new(tokenStream)
 | 
						|
	ret.tokens = tokens
 | 
						|
	ret.tokenLength = len(tokens)
 | 
						|
	return ret
 | 
						|
}
 | 
						|
 | 
						|
func (this *tokenStream) rewind() {
 | 
						|
	this.index -= 1
 | 
						|
}
 | 
						|
 | 
						|
func (this *tokenStream) next() ExpressionToken {
 | 
						|
 | 
						|
	var token ExpressionToken
 | 
						|
 | 
						|
	token = this.tokens[this.index]
 | 
						|
 | 
						|
	this.index += 1
 | 
						|
	return token
 | 
						|
}
 | 
						|
 | 
						|
func (this tokenStream) hasNext() bool {
 | 
						|
 | 
						|
	return this.index < this.tokenLength
 | 
						|
}
 |