1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
// Code generated by re2go, DO NOT EDIT.
//line "codegen/go/loop_switch/basic.re":1
//go:generate re2go $INPUT -o $OUTPUT --loop-switch
package main //
//
func lex(str string) { // Go code
var cursor int //
//
//line "codegen/go/loop_switch/basic.go":12
{
var yych byte
yystate := 0
yyl:
for {
switch (yystate) {
case 0:
yych = str[cursor]
cursor += 1
if (yych <= '0') {
yystate = 1
continue yyl
}
if (yych <= '9') {
yystate = 2
continue yyl
}
yystate = 1
continue yyl
case 1:
//line "codegen/go/loop_switch/basic.re":18
{ panic("error!"); }
//line "codegen/go/loop_switch/basic.go":35
case 2:
yych = str[cursor]
if (yych <= '/') {
yystate = 3
continue yyl
}
if (yych <= '9') {
cursor += 1
yystate = 2
continue yyl
}
yystate = 3
continue yyl
case 3:
//line "codegen/go/loop_switch/basic.re":17
{ return }
//line "codegen/go/loop_switch/basic.go":52
default:
panic("internal lexer error")
}
}
}
//line "codegen/go/loop_switch/basic.re":19
} //
//
func main() { // Go code
lex("1234\x00") //
} //
|