// Code generated by re2go, DO NOT EDIT.
//go:generate re2go $INPUT -o $OUTPUT -i --header lexer/state.go
package main

import "./lexer" // the package is generated by re2c



func lex(yyrecord *lexer.State) int {
	var t int
	
{
	var yych byte
	goto yy0
yy1:
	yyrecord.Cur += 1
yy0:
	yych = yyrecord.Data[yyrecord.Cur]
	switch (yych) {
	case 'a':
		goto yy1
	case 'b':
		yyrecord.Tag1 = yyrecord.Cur
		goto yy3
	default:
		yyrecord.Tag1 = yyrecord.Cur
		goto yy2
	}
yy2:
	t = yyrecord.Tag1
	{ return t }
yy3:
	yyrecord.Cur += 1
	yych = yyrecord.Data[yyrecord.Cur]
	switch (yych) {
	case 'b':
		goto yy3
	default:
		goto yy2
	}
}

}

func main() {
	st := &lexer.State{Data:"ab\x00",}
	if lex(st) != 1 {
		panic("error")
	}
}
// Code generated by re2go, DO NOT EDIT.

package lexer

type State struct {
	Data string
	Cur , Tag1 int
}
go/headers/header.re:27:15: warning: rule matches empty string [-Wmatch-empty-string]
