1// re2c $INPUT -o $OUTPUT
2#include <stdio.h>
3
4int scan(const char *p)
5{
6#define YYCTYPE char
7    const char *YYCURSOR = p;
8    const char *YYMARKER;
9
10/*!re2c
11    re2c:yyfill:enable = 0;
12
13    escaped_char = "\\b";
14
15    [<] ([x] | escaped_char | [y])* [>] { return YYCURSOR - p; }
16    ("a" | escaped_char)* { return YYCURSOR - p; }
17    . { return 0; }
18*/
19}
20
21int main()
22{
23    const char *str = "aaa\\baaa";
24    int res = scan(str);
25    printf("%d: %s\n", res, str + res);
26    return 0;
27}
28
29