123456789101112131415161718192021222324252627282930313233343536373839 |
- package govaluate
- type lexerStream struct {
- source []rune
- position int
- length int
- }
- func newLexerStream(source string) *lexerStream {
- var ret *lexerStream
- var runes []rune
- for _, character := range source {
- runes = append(runes, character)
- }
- ret = new(lexerStream)
- ret.source = runes
- ret.length = len(runes)
- return ret
- }
- func (this *lexerStream) readCharacter() rune {
- var character rune
- character = this.source[this.position]
- this.position += 1
- return character
- }
- func (this *lexerStream) rewind(amount int) {
- this.position -= amount
- }
- func (this lexerStream) canRead() bool {
- return this.position < this.length
- }
|