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
 | |
| }
 |