1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
//go:generate re2go $INPUT -o $OUTPUT --loop-switch
package main //
//
func lex(str string) { // Go code
var cursor int //
//
/*!re2c
re2c:define:YYCTYPE = byte; //
re2c:define:YYPEEK = "str[cursor]"; //
re2c:define:YYSKIP = "cursor += 1"; // configurations
re2c:yyfill:enable = 0; //
re2c:flags:nested-ifs = 1; //
//
number = [1-9][0-9]*; // named definition
//
number { return } // rules
* { panic("error!"); } //
*/
} //
//
func main() { // Go code
lex("1234\x00") //
} //
|