1//go:generate re2go -c $INPUT -o $OUTPUT -i 2package main 3 4import "testing" 5/*!include:re2c "definitions.go" */ 6 7func lex(str string) int { 8 var cursor, marker int 9 /*!re2c 10 re2c:define:YYCTYPE = byte; 11 re2c:define:YYPEEK = "str[cursor]"; 12 re2c:define:YYSKIP = "cursor += 1"; 13 re2c:define:YYBACKUP = "marker = cursor"; 14 re2c:define:YYRESTORE = "cursor = marker"; 15 re2c:yyfill:enable = 0; 16 17 number { return ResultOk } 18 !include "extra_rules.re.inc"; 19 * { return ResultFail } 20 */ 21} 22 23func TestLex(t *testing.T) { 24 if lex("123\000") != ResultOk { 25 t.Errorf("error") 26 } 27 if lex("123.4567\000") != ResultOk { 28 t.Errorf("error") 29 } 30} 31