#include <stdio.h>
#include <stdlib.h>
%%{
machine test;
action one { printf("%c\n", *(&fc-1)); }
action two { printf("%c%c\n", *(&fc-2), *(&fc-1)); }
action ans { exit(0); }
TheUnknown = (
start: (
[4] -> StartsWithFour |
(digit - [4]) -> OneDigit
),
StartsWithFour: (
[2] @ans -> final |
(digit - [2]) -> TwoDigits |
'\n' @one -> start
),
OneDigit: (
digit -> TwoDigits |
'\n' @one -> start
),
TwoDigits: (
'\n' @two -> start
)
);
main := TheUnknown;
}%%
#define BUFSIZE 100
%% write data;
int main()
{
char buf[BUFSIZE];
char *p;
int cs;
while (fgets(buf, sizeof(buf), stdin) != 0) {
p = buf;
%%{
write init;
write exec noend;
}%%
}
return 0;
}