1#include <stdlib.h>
2#include <stdio.h>
3#include <string.h>
4
5#define RET(n) printf("%d\n", n); return n
6
7int scan(char *s, int l){
8char *p = s;
9char *q;
10#define YYCTYPE         char
11#define YYCURSOR        p
12#define YYLIMIT         (s+l)
13#define YYMARKER        q
14#define YYFILL(n)
15/*!re2c
16	'a'{1}"\n"	    {RET(1);}
17	'a'{2,3}"\n"	{RET(2);}
18	'a'{6}"\n"	    {RET(4);}
19	'a'{4,}"\n"	    {RET(3);}
20	[^aq]|"\n"      {RET(0);}
21*/
22}
23
24#define do_scan(str) scan(str, strlen(str))
25
26main()
27{
28	do_scan("a\n");
29	do_scan("aa\n");
30	do_scan("aaa\n");
31	do_scan("aaaa\n");
32	do_scan("q");
33	do_scan("a");
34	do_scan("A\n");
35	do_scan("AA\n");
36	do_scan("aAa\n");
37	do_scan("AaaA\n");
38	do_scan("Q");
39	do_scan("AaaAa\n");
40	do_scan("AaaAaA\n");
41	do_scan("A");
42	do_scan("\n");
43	do_scan("0");
44}
45