%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/share/doc/re2c/examples/go/includes/
Upload File :
Create Path :
Current File : //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)
}

Zerion Mini Shell 1.0