%PDF- %PDF-
| Direktori : /proc/thread-self/root/usr/share/doc/re2c/examples/go/encodings/ |
| Current File : //proc/thread-self/root/usr/share/doc/re2c/examples/go/encodings/unicode_identifier.re |
//go:generate re2go $INPUT -o $OUTPUT -8 -s -i
package main
/*!include:re2c "unicode_categories.re" */
func lex(str string) int {
var cur, mar int
/*!re2c
re2c:yyfill:enable = 0;
re2c:define:YYCTYPE = byte;
re2c:define:YYPEEK = "str[cur]";
re2c:define:YYSKIP = "cur += 1";
re2c:define:YYBACKUP = "mar = cur";
re2c:define:YYRESTORE = "cur = mar";
// Simplified "Unicode Identifier and Pattern Syntax"
// (see https://unicode.org/reports/tr31)
id_start = L | Nl | [$_];
id_continue = id_start | Mn | Mc | Nd | Pc | [\u200D\u05F3];
identifier = id_start id_continue*;
identifier { return 0 }
* { return 1 }
*/
}
func main() {
if lex("_Ыдентификатор\000") != 0 {
panic("error")
}
}