1 /*
2 * This file is part of flex.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * Neither the name of the University nor the names of its contributors
15 * may be used to endorse or promote products derived from this software
16 * without specific prior written permission.
17 *
18 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
19 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
20 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21 * PURPOSE.
22 */
23
24 #include "multiple_scanners_r_1.h"
25 #include "multiple_scanners_r_2.h"
26
27 int
main(int argc,char ** argv)28 main ( int argc, char** argv )
29 {
30 (void)argc;
31 (void)argv;
32
33 int S1_ok=1, S2_ok=1;
34 YY_BUFFER_STATE buff1, buff2;
35 yyscan_t scan1, scan2;
36
37 S1_lex_init(&scan1);
38 S2_lex_init(&scan2);
39
40 S1_set_out(stdout,scan1);
41 S2_set_out(S1_get_out(scan1),scan2);
42
43 buff1 = S1__scan_string("foo on bar off", scan1);
44 buff2 = S2__scan_string("on blah blah off foo on bar off", scan2);
45
46 /* scan simultaneously. */
47 while(S1_ok || S2_ok)
48 {
49 if (S1_ok)
50 S1_ok = S1_lex(scan1);
51 if (S2_ok)
52 S2_ok = S2_lex(scan2);
53 }
54 S1__delete_buffer(buff1, scan1);
55 S2__delete_buffer(buff2, scan2);
56
57 S1_lex_destroy(scan1);
58 S2_lex_destroy(scan2);
59 printf("TEST RETURNING OK.\n");
60 return 0;
61 }
62
63
64 /* vim:set tabstop=8 softtabstop=4 shiftwidth=4: */
65