Initialize Tizen 2.3
[external/ragel.git] / test / builtin.rl
1 /*
2  * @LANG: c
3  */
4
5 #include <stdio.h>
6
7 void alph(const char *type)
8 {
9         printf("%s\n", type);
10 }
11
12 struct builtin
13 {
14         int cs;
15 };
16
17 %%{
18         machine builtin;
19         alphtype unsigned int;
20         variable cs fsm->cs;
21
22         main := (
23                 any    @{alph("any");} |
24                 ascii  @{alph("ascii");} |
25                 extend @{alph("extend");} |
26                 alpha  @{alph("alpha");} |
27                 digit  @{alph("digit");} |
28                 alnum  @{alph("alnum");} |
29                 lower  @{alph("lower");} |
30                 upper  @{alph("upper");} |
31                 cntrl  @{alph("cntrl");} |
32                 graph  @{alph("graph");} |
33                 print  @{alph("print");} |
34                 punct  @{alph("punct");} |
35                 space  @{alph("space");} |
36                 xdigit @{alph("xdigit");}
37         )*;
38 }%%
39
40 %% write data;
41
42 void builtin_init( struct builtin *fsm )
43 {
44         %% write init;
45 }
46
47 void builtin_execute( struct builtin *fsm, const unsigned int *data, int len )
48 {
49         const unsigned int *p = data;
50         const unsigned int *pe = data+len;
51         %% write exec;
52 }
53
54 int builtin_finish( struct builtin *fsm )
55 {
56         if ( fsm->cs == builtin_error )
57                 return -1;
58         else if ( fsm->cs >= builtin_first_final )
59                 return 1;
60         return 0;
61 }
62
63 #include <stdio.h>
64 #define BUFSIZE 2048
65
66 struct builtin fsm;
67 char buf[BUFSIZE];
68 unsigned int i;
69
70 int test( const unsigned int *data, int len )
71 {
72         builtin_init( &fsm );
73         builtin_execute( &fsm, data, len );
74         if ( builtin_finish( &fsm ) > 0 )
75                 printf("ACCEPT\n");
76         else
77                 printf("FAIL\n");
78         return 0;
79 }
80
81 #define DLEN 258
82 unsigned int data[DLEN] = {
83         -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
84         20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
85         39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
86         58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
87         77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
88         96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
89         112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
90         127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
91         142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
92         157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
93         172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
94         187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
95         202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
96         217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
97         232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
98         247, 248, 249, 250, 251, 252, 253, 254, 255, 256
99 };
100
101 int main()
102 {
103         test( data, DLEN );
104         return 0;
105 }
106
107 #ifdef _____OUTPUT_____
108 any
109 any
110 ascii
111 extend
112 cntrl
113 any
114 ascii
115 extend
116 cntrl
117 any
118 ascii
119 extend
120 cntrl
121 any
122 ascii
123 extend
124 cntrl
125 any
126 ascii
127 extend
128 cntrl
129 any
130 ascii
131 extend
132 cntrl
133 any
134 ascii
135 extend
136 cntrl
137 any
138 ascii
139 extend
140 cntrl
141 any
142 ascii
143 extend
144 cntrl
145 any
146 ascii
147 extend
148 cntrl
149 space
150 any
151 ascii
152 extend
153 cntrl
154 space
155 any
156 ascii
157 extend
158 cntrl
159 space
160 any
161 ascii
162 extend
163 cntrl
164 space
165 any
166 ascii
167 extend
168 cntrl
169 space
170 any
171 ascii
172 extend
173 cntrl
174 any
175 ascii
176 extend
177 cntrl
178 any
179 ascii
180 extend
181 cntrl
182 any
183 ascii
184 extend
185 cntrl
186 any
187 ascii
188 extend
189 cntrl
190 any
191 ascii
192 extend
193 cntrl
194 any
195 ascii
196 extend
197 cntrl
198 any
199 ascii
200 extend
201 cntrl
202 any
203 ascii
204 extend
205 cntrl
206 any
207 ascii
208 extend
209 cntrl
210 any
211 ascii
212 extend
213 cntrl
214 any
215 ascii
216 extend
217 cntrl
218 any
219 ascii
220 extend
221 cntrl
222 any
223 ascii
224 extend
225 cntrl
226 any
227 ascii
228 extend
229 cntrl
230 any
231 ascii
232 extend
233 cntrl
234 any
235 ascii
236 extend
237 cntrl
238 any
239 ascii
240 extend
241 cntrl
242 any
243 ascii
244 extend
245 print
246 space
247 any
248 ascii
249 extend
250 graph
251 print
252 punct
253 any
254 ascii
255 extend
256 graph
257 print
258 punct
259 any
260 ascii
261 extend
262 graph
263 print
264 punct
265 any
266 ascii
267 extend
268 graph
269 print
270 punct
271 any
272 ascii
273 extend
274 graph
275 print
276 punct
277 any
278 ascii
279 extend
280 graph
281 print
282 punct
283 any
284 ascii
285 extend
286 graph
287 print
288 punct
289 any
290 ascii
291 extend
292 graph
293 print
294 punct
295 any
296 ascii
297 extend
298 graph
299 print
300 punct
301 any
302 ascii
303 extend
304 graph
305 print
306 punct
307 any
308 ascii
309 extend
310 graph
311 print
312 punct
313 any
314 ascii
315 extend
316 graph
317 print
318 punct
319 any
320 ascii
321 extend
322 graph
323 print
324 punct
325 any
326 ascii
327 extend
328 graph
329 print
330 punct
331 any
332 ascii
333 extend
334 graph
335 print
336 punct
337 any
338 ascii
339 extend
340 digit
341 alnum
342 graph
343 print
344 xdigit
345 any
346 ascii
347 extend
348 digit
349 alnum
350 graph
351 print
352 xdigit
353 any
354 ascii
355 extend
356 digit
357 alnum
358 graph
359 print
360 xdigit
361 any
362 ascii
363 extend
364 digit
365 alnum
366 graph
367 print
368 xdigit
369 any
370 ascii
371 extend
372 digit
373 alnum
374 graph
375 print
376 xdigit
377 any
378 ascii
379 extend
380 digit
381 alnum
382 graph
383 print
384 xdigit
385 any
386 ascii
387 extend
388 digit
389 alnum
390 graph
391 print
392 xdigit
393 any
394 ascii
395 extend
396 digit
397 alnum
398 graph
399 print
400 xdigit
401 any
402 ascii
403 extend
404 digit
405 alnum
406 graph
407 print
408 xdigit
409 any
410 ascii
411 extend
412 digit
413 alnum
414 graph
415 print
416 xdigit
417 any
418 ascii
419 extend
420 graph
421 print
422 punct
423 any
424 ascii
425 extend
426 graph
427 print
428 punct
429 any
430 ascii
431 extend
432 graph
433 print
434 punct
435 any
436 ascii
437 extend
438 graph
439 print
440 punct
441 any
442 ascii
443 extend
444 graph
445 print
446 punct
447 any
448 ascii
449 extend
450 graph
451 print
452 punct
453 any
454 ascii
455 extend
456 graph
457 print
458 punct
459 any
460 ascii
461 extend
462 alpha
463 alnum
464 upper
465 graph
466 print
467 xdigit
468 any
469 ascii
470 extend
471 alpha
472 alnum
473 upper
474 graph
475 print
476 xdigit
477 any
478 ascii
479 extend
480 alpha
481 alnum
482 upper
483 graph
484 print
485 xdigit
486 any
487 ascii
488 extend
489 alpha
490 alnum
491 upper
492 graph
493 print
494 xdigit
495 any
496 ascii
497 extend
498 alpha
499 alnum
500 upper
501 graph
502 print
503 xdigit
504 any
505 ascii
506 extend
507 alpha
508 alnum
509 upper
510 graph
511 print
512 xdigit
513 any
514 ascii
515 extend
516 alpha
517 alnum
518 upper
519 graph
520 print
521 any
522 ascii
523 extend
524 alpha
525 alnum
526 upper
527 graph
528 print
529 any
530 ascii
531 extend
532 alpha
533 alnum
534 upper
535 graph
536 print
537 any
538 ascii
539 extend
540 alpha
541 alnum
542 upper
543 graph
544 print
545 any
546 ascii
547 extend
548 alpha
549 alnum
550 upper
551 graph
552 print
553 any
554 ascii
555 extend
556 alpha
557 alnum
558 upper
559 graph
560 print
561 any
562 ascii
563 extend
564 alpha
565 alnum
566 upper
567 graph
568 print
569 any
570 ascii
571 extend
572 alpha
573 alnum
574 upper
575 graph
576 print
577 any
578 ascii
579 extend
580 alpha
581 alnum
582 upper
583 graph
584 print
585 any
586 ascii
587 extend
588 alpha
589 alnum
590 upper
591 graph
592 print
593 any
594 ascii
595 extend
596 alpha
597 alnum
598 upper
599 graph
600 print
601 any
602 ascii
603 extend
604 alpha
605 alnum
606 upper
607 graph
608 print
609 any
610 ascii
611 extend
612 alpha
613 alnum
614 upper
615 graph
616 print
617 any
618 ascii
619 extend
620 alpha
621 alnum
622 upper
623 graph
624 print
625 any
626 ascii
627 extend
628 alpha
629 alnum
630 upper
631 graph
632 print
633 any
634 ascii
635 extend
636 alpha
637 alnum
638 upper
639 graph
640 print
641 any
642 ascii
643 extend
644 alpha
645 alnum
646 upper
647 graph
648 print
649 any
650 ascii
651 extend
652 alpha
653 alnum
654 upper
655 graph
656 print
657 any
658 ascii
659 extend
660 alpha
661 alnum
662 upper
663 graph
664 print
665 any
666 ascii
667 extend
668 alpha
669 alnum
670 upper
671 graph
672 print
673 any
674 ascii
675 extend
676 graph
677 print
678 punct
679 any
680 ascii
681 extend
682 graph
683 print
684 punct
685 any
686 ascii
687 extend
688 graph
689 print
690 punct
691 any
692 ascii
693 extend
694 graph
695 print
696 punct
697 any
698 ascii
699 extend
700 graph
701 print
702 punct
703 any
704 ascii
705 extend
706 graph
707 print
708 punct
709 any
710 ascii
711 extend
712 alpha
713 alnum
714 lower
715 graph
716 print
717 xdigit
718 any
719 ascii
720 extend
721 alpha
722 alnum
723 lower
724 graph
725 print
726 xdigit
727 any
728 ascii
729 extend
730 alpha
731 alnum
732 lower
733 graph
734 print
735 xdigit
736 any
737 ascii
738 extend
739 alpha
740 alnum
741 lower
742 graph
743 print
744 xdigit
745 any
746 ascii
747 extend
748 alpha
749 alnum
750 lower
751 graph
752 print
753 xdigit
754 any
755 ascii
756 extend
757 alpha
758 alnum
759 lower
760 graph
761 print
762 xdigit
763 any
764 ascii
765 extend
766 alpha
767 alnum
768 lower
769 graph
770 print
771 any
772 ascii
773 extend
774 alpha
775 alnum
776 lower
777 graph
778 print
779 any
780 ascii
781 extend
782 alpha
783 alnum
784 lower
785 graph
786 print
787 any
788 ascii
789 extend
790 alpha
791 alnum
792 lower
793 graph
794 print
795 any
796 ascii
797 extend
798 alpha
799 alnum
800 lower
801 graph
802 print
803 any
804 ascii
805 extend
806 alpha
807 alnum
808 lower
809 graph
810 print
811 any
812 ascii
813 extend
814 alpha
815 alnum
816 lower
817 graph
818 print
819 any
820 ascii
821 extend
822 alpha
823 alnum
824 lower
825 graph
826 print
827 any
828 ascii
829 extend
830 alpha
831 alnum
832 lower
833 graph
834 print
835 any
836 ascii
837 extend
838 alpha
839 alnum
840 lower
841 graph
842 print
843 any
844 ascii
845 extend
846 alpha
847 alnum
848 lower
849 graph
850 print
851 any
852 ascii
853 extend
854 alpha
855 alnum
856 lower
857 graph
858 print
859 any
860 ascii
861 extend
862 alpha
863 alnum
864 lower
865 graph
866 print
867 any
868 ascii
869 extend
870 alpha
871 alnum
872 lower
873 graph
874 print
875 any
876 ascii
877 extend
878 alpha
879 alnum
880 lower
881 graph
882 print
883 any
884 ascii
885 extend
886 alpha
887 alnum
888 lower
889 graph
890 print
891 any
892 ascii
893 extend
894 alpha
895 alnum
896 lower
897 graph
898 print
899 any
900 ascii
901 extend
902 alpha
903 alnum
904 lower
905 graph
906 print
907 any
908 ascii
909 extend
910 alpha
911 alnum
912 lower
913 graph
914 print
915 any
916 ascii
917 extend
918 alpha
919 alnum
920 lower
921 graph
922 print
923 any
924 ascii
925 extend
926 graph
927 print
928 punct
929 any
930 ascii
931 extend
932 graph
933 print
934 punct
935 any
936 ascii
937 extend
938 graph
939 print
940 punct
941 any
942 ascii
943 extend
944 graph
945 print
946 punct
947 any
948 ascii
949 extend
950 cntrl
951 any
952 extend
953 any
954 extend
955 any
956 extend
957 any
958 extend
959 any
960 extend
961 any
962 extend
963 any
964 extend
965 any
966 extend
967 any
968 extend
969 any
970 extend
971 any
972 extend
973 any
974 extend
975 any
976 extend
977 any
978 extend
979 any
980 extend
981 any
982 extend
983 any
984 extend
985 any
986 extend
987 any
988 extend
989 any
990 extend
991 any
992 extend
993 any
994 extend
995 any
996 extend
997 any
998 extend
999 any
1000 extend
1001 any
1002 extend
1003 any
1004 extend
1005 any
1006 extend
1007 any
1008 extend
1009 any
1010 extend
1011 any
1012 extend
1013 any
1014 extend
1015 any
1016 extend
1017 any
1018 extend
1019 any
1020 extend
1021 any
1022 extend
1023 any
1024 extend
1025 any
1026 extend
1027 any
1028 extend
1029 any
1030 extend
1031 any
1032 extend
1033 any
1034 extend
1035 any
1036 extend
1037 any
1038 extend
1039 any
1040 extend
1041 any
1042 extend
1043 any
1044 extend
1045 any
1046 extend
1047 any
1048 extend
1049 any
1050 extend
1051 any
1052 extend
1053 any
1054 extend
1055 any
1056 extend
1057 any
1058 extend
1059 any
1060 extend
1061 any
1062 extend
1063 any
1064 extend
1065 any
1066 extend
1067 any
1068 extend
1069 any
1070 extend
1071 any
1072 extend
1073 any
1074 extend
1075 any
1076 extend
1077 any
1078 extend
1079 any
1080 extend
1081 any
1082 extend
1083 any
1084 extend
1085 any
1086 extend
1087 any
1088 extend
1089 any
1090 extend
1091 any
1092 extend
1093 any
1094 extend
1095 any
1096 extend
1097 any
1098 extend
1099 any
1100 extend
1101 any
1102 extend
1103 any
1104 extend
1105 any
1106 extend
1107 any
1108 extend
1109 any
1110 extend
1111 any
1112 extend
1113 any
1114 extend
1115 any
1116 extend
1117 any
1118 extend
1119 any
1120 extend
1121 any
1122 extend
1123 any
1124 extend
1125 any
1126 extend
1127 any
1128 extend
1129 any
1130 extend
1131 any
1132 extend
1133 any
1134 extend
1135 any
1136 extend
1137 any
1138 extend
1139 any
1140 extend
1141 any
1142 extend
1143 any
1144 extend
1145 any
1146 extend
1147 any
1148 extend
1149 any
1150 extend
1151 any
1152 extend
1153 any
1154 extend
1155 any
1156 extend
1157 any
1158 extend
1159 any
1160 extend
1161 any
1162 extend
1163 any
1164 extend
1165 any
1166 extend
1167 any
1168 extend
1169 any
1170 extend
1171 any
1172 extend
1173 any
1174 extend
1175 any
1176 extend
1177 any
1178 extend
1179 any
1180 extend
1181 any
1182 extend
1183 any
1184 extend
1185 any
1186 extend
1187 any
1188 extend
1189 any
1190 extend
1191 any
1192 extend
1193 any
1194 extend
1195 any
1196 extend
1197 any
1198 extend
1199 any
1200 extend
1201 any
1202 extend
1203 any
1204 extend
1205 any
1206 extend
1207 any
1208 ACCEPT
1209 #endif