this change removes the state field from the lexer,
because it's only used by the run method and can be
replaced with a local variable
Change-Id: Ib7a90ab6e9a894716cba2c7d9ed71bf2ad1240c0
Reviewed-on: https://go-review.googlesource.com/47338
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
        input      string    // the string being scanned
        leftDelim  string    // start of action
        rightDelim string    // end of action
-       state      stateFn   // the next lexing function to enter
        pos        Pos       // current position in the input
        start      Pos       // start position of this item
        width      Pos       // width of last rune read from input
 
 // run runs the state machine for the lexer.
 func (l *lexer) run() {
-       for l.state = lexText; l.state != nil; {
-               l.state = l.state(l)
+       for state := lexText; state != nil; {
+               state = state(l)
        }
        close(l.items)
 }