%PDF- %PDF-
| Direktori : /proc/thread-self/root/usr/share/doc/re2c/examples/go/includes/ |
| Current File : //proc/thread-self/root/usr/share/doc/re2c/examples/go/includes/include.go |
// Code generated by re2c, DO NOT EDIT.
//go:generate re2go $INPUT -o $OUTPUT -i
package main
const (
ResultOk = iota
ResultFail
)
func lex(str string) int {
var cur, mar int
{
var yych byte
yyaccept := 0
yych = str[cur]
switch (yych) {
case '.':
goto yy3
case '0':
goto yy4
case '1','2','3','4','5','6','7','8','9':
goto yy5
default:
goto yy1
}
yy1:
cur += 1
yy2:
{ return ResultFail }
yy3:
cur += 1
yych = str[cur]
switch (yych) {
case '0','1','2','3','4','5','6','7','8','9':
goto yy7
default:
goto yy2
}
yy4:
yyaccept = 0
cur += 1
mar = cur
yych = str[cur]
switch (yych) {
case '.':
goto yy7
case '0','1','2','3','4','5','6','7','8','9':
goto yy9
case 'E':
fallthrough
case 'e':
goto yy11
default:
goto yy2
}
yy5:
yyaccept = 1
cur += 1
mar = cur
yych = str[cur]
switch (yych) {
case '.':
goto yy7
case '0','1','2','3','4','5','6','7','8','9':
goto yy5
case 'E':
fallthrough
case 'e':
goto yy11
default:
goto yy6
}
yy6:
{ return ResultOk }
yy7:
yyaccept = 2
cur += 1
mar = cur
yych = str[cur]
switch (yych) {
case '0','1','2','3','4','5','6','7','8','9':
goto yy7
case 'E':
fallthrough
case 'e':
goto yy11
default:
goto yy8
}
yy8:
{ return ResultOk }
yy9:
cur += 1
yych = str[cur]
switch (yych) {
case '.':
goto yy7
case '0','1','2','3','4','5','6','7','8','9':
goto yy9
case 'E':
fallthrough
case 'e':
goto yy11
default:
goto yy10
}
yy10:
cur = mar
switch (yyaccept) {
case 0:
goto yy2
case 1:
goto yy6
default:
goto yy8
}
yy11:
cur += 1
yych = str[cur]
switch (yych) {
case '+':
fallthrough
case '-':
goto yy12
case '0','1','2','3','4','5','6','7','8','9':
goto yy13
default:
goto yy10
}
yy12:
cur += 1
yych = str[cur]
switch (yych) {
case '0','1','2','3','4','5','6','7','8','9':
goto yy13
default:
goto yy10
}
yy13:
cur += 1
yych = str[cur]
switch (yych) {
case '0','1','2','3','4','5','6','7','8','9':
goto yy13
default:
goto yy8
}
}
}
func main() {
assert_eq := func(x, y int) { if x != y { panic("error") } }
assert_eq(lex("123\000"), ResultOk)
assert_eq(lex("123.4567\000"), ResultOk)
}