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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
// Code generated by re2v, DO NOT EDIT.
// re2v $INPUT -o $OUTPUT -i
enum Result {
ok
fail
}
fn lex(yyinput string) Result {
mut yycursor, mut yymarker := 0, 0
mut yych := u8(0)
mut yyaccept := u32(0)
yych = yyinput[yycursor]
match yych {
0x2E { unsafe { goto yy3 } }
0x30 { unsafe { goto yy4 } }
0x31...0x39 { unsafe { goto yy5 } }
else { unsafe { goto yy1 } }
}
yy1:
yycursor += 1
yy2:
return .fail
yy3:
yycursor += 1
yych = yyinput[yycursor]
match yych {
0x30...0x39 { unsafe { goto yy7 } }
else { unsafe { goto yy2 } }
}
yy4:
yyaccept = 0
yycursor += 1
yymarker = yycursor
yych = yyinput[yycursor]
match yych {
0x2E { unsafe { goto yy7 } }
0x30...0x39 { unsafe { goto yy9 } }
0x45, 0x65 { unsafe { goto yy11 } }
else { unsafe { goto yy2 } }
}
yy5:
yyaccept = 1
yycursor += 1
yymarker = yycursor
yych = yyinput[yycursor]
match yych {
0x2E { unsafe { goto yy7 } }
0x30...0x39 { unsafe { goto yy5 } }
0x45, 0x65 { unsafe { goto yy11 } }
else { unsafe { goto yy6 } }
}
yy6:
return .ok
yy7:
yyaccept = 2
yycursor += 1
yymarker = yycursor
yych = yyinput[yycursor]
match yych {
0x30...0x39 { unsafe { goto yy7 } }
0x45, 0x65 { unsafe { goto yy11 } }
else { unsafe { goto yy8 } }
}
yy8:
return .ok
yy9:
yycursor += 1
yych = yyinput[yycursor]
match yych {
0x2E { unsafe { goto yy7 } }
0x30...0x39 { unsafe { goto yy9 } }
0x45, 0x65 { unsafe { goto yy11 } }
else { unsafe { goto yy10 } }
}
yy10:
yycursor = yymarker
match yyaccept {
0 { unsafe { goto yy2 } }
1 { unsafe { goto yy6 } }
else { unsafe { goto yy8 } }
}
yy11:
yycursor += 1
yych = yyinput[yycursor]
match yych {
0x2B, 0x2D { unsafe { goto yy12 } }
0x30...0x39 { unsafe { goto yy13 } }
else { unsafe { goto yy10 } }
}
yy12:
yycursor += 1
yych = yyinput[yycursor]
match yych {
0x30...0x39 { unsafe { goto yy13 } }
else { unsafe { goto yy10 } }
}
yy13:
yycursor += 1
yych = yyinput[yycursor]
match yych {
0x30...0x39 { unsafe { goto yy13 } }
else { unsafe { goto yy8 } }
}
}
fn main() {
assert lex("123\0") == .ok
assert lex("123.4567\0") == .ok
}
|